/* ============================================================
   LOUCOM DESIGN SYSTEM — precision minimalism
   paper + ink + one light blue accent family
   Teko (display) · Raleway (body) · Handjet (technical labels)
   ============================================================ */

@font-face {
	font-family: Raleway;
	src: url('./Raleway/Raleway-VariableFont_wght.ttf');
	font-weight: 100 900;
	font-display: swap;
}
@font-face {
	font-family: Open Sans;
	src: url('./Open_Sans/OpenSans.ttf');
	font-weight: 100 900;
	font-display: swap;
}
@font-face {
	font-family: Handjet;
	src: url('./Handjet/Handjet-VariableFont_ELGR,ELSH,wght.ttf');
	font-weight: 100 900;
	font-display: swap;
}
@font-face {
	font-family: Teko;
	src: url('./Teko/Teko-VariableFont_wght.ttf');
	font-weight: 300 700;
	font-display: swap;
}

:root{
	--paper: #f7f8fc;
	--card: #ffffff;
	--ink: #15171f;
	--ink-soft: #555b75;
	--accent: #e7ebff;        /* THE light blue */
	--accent-soft: #f1f3ff;
	--periwinkle: #747bab;
	--deep: #454b78;
	--footer-ink: #1b1e2e;
	--line: #e0e4f3;
	--grid-line: rgba(116, 123, 171, 0.07);
	--nav-height: 72px;
}

@keyframes fadeIn{
	from {opacity: 0;}
	to {opacity: 1;}
}

*{
	margin: 0px;
	padding: 0px;
	box-sizing: border-box;
	font-family: Raleway, Open Sans, sans-serif;
}
html{
	overflow-x: hidden;
	scroll-behavior: smooth;
}

::selection {
	background: var(--accent);
	color: var(--ink);
}
::-moz-selection {
	background: var(--accent);
	color: var(--ink);
}

.handjet, .handjet *{
	font-family: Handjet, monospace;
}
.teko, .teko *{
	font-family: Teko, sans-serif;
}

.unselectable{
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}

body{
	min-height: 100vh;
	min-height: 100svh;
	position: relative;
	color: var(--ink);
	background-color: var(--paper);
	/* blueprint grid */
	background-image:
		linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
		linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
	background-size: 56px 56px;
	animation: fadeIn 0.4s ease;
}

.wrapper{
	margin: 0;
	padding: 0;
}

/* accessibility: respect reduced motion */
@media (prefers-reduced-motion: reduce){
	*{
		animation: none !important;
		transition: none !important;
	}
	html{
		scroll-behavior: auto;
	}
}

/* ============================================================
   NAVIGATION — sticky hairline bar
   ============================================================ */

nav{
	position: sticky;
	top: 0;
	z-index: 50;
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: var(--nav-height);
	padding: 0 6%;
	background-color: rgba(247, 248, 252, 0.82);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--line);

	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}

.logo a{
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--ink);
	text-transform: uppercase;
	text-decoration: none;
}
.logo a h4{
	font-family: Teko, sans-serif;
	font-size: 27px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1;
	transform: translateY(2px);
}
/* brand mark — the two Loucom triangles */
.logo a h4::before{
	content: "";
	display: inline-block;
	width: 31px;
	height: 17px;
	margin-right: 12px;
	background: var(--ink);
	-webkit-mask: url("../logo_dark.svg") no-repeat center / contain;
	mask: url("../logo_dark.svg") no-repeat center / contain;
	transform: translateY(-1px);
	transition: background 0.25s;
}
.logo a:hover h4::before{
	background: var(--periwinkle);
}

.nav-links{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 30px;
	width: auto;
}

.nav-links a{
	color: var(--ink);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	margin: 0;
	padding-bottom: 2px;
}

.nav-links img{ /* language flags */
	height: 16px;
	width: 26px;
	margin: 2px 0 0 0;
	cursor: pointer;
	display: block;
	opacity: 0.85;
	transition: opacity 0.2s;
}
.nav-links img:hover{
	opacity: 1;
}

.nav-links li{
	list-style: none;
	position: relative;
}

/* dropdown — minimal card */
nav .dropdown-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: -16px;
	padding: 6px 0;
	background-color: var(--card);
	min-width: 200px;
	border: 1px solid var(--line);
	box-shadow: 0 18px 40px -18px rgba(69, 75, 120, 0.35);
	z-index: 55;
}
nav .dropdown-menu a {
	margin: 0;
	color: var(--ink);
	padding: 10px 16px;
	text-decoration: none;
	display: block;
	font-size: 12px;
	transition: background 0.2s, padding-left 0.2s;
}
nav .dropdown-menu a:hover {
	background-color: var(--accent);
	padding-left: 22px;
}
nav li:hover .dropdown-menu {
	display: block;
}

.burger{
	display: none;
	cursor: pointer;
	padding: 6px 0;
}
.burger div{
	width: 26px;
	height: 2px;
	background-color: var(--ink);
	margin: 6px 0;
	transition: 0.4s ease;
}

/* marker swipe — the brand interaction */
.cool-text-background{
	position: relative;
	background-image: linear-gradient(var(--accent), var(--accent));
	background-size: 100% 3px;
	background-repeat: no-repeat;
	background-position: 100% 100%;
	transition: background-size .6s, background-position .4s ease-in-out;
}
.cool-text-background:hover, .cool-text-background.cool-marked {
	background-size: 100% 100%;
	background-position: 0% 100%;
	transition: background-position .6s, background-size .4s ease-in-out;
}

@media screen and (max-width: 900px){
	body{
		overflow-x: hidden;
	}
	nav li:hover .dropdown-menu {
		display: none;
	}
	.nav-links{
		position: absolute;
		right: 0px;
		height: calc(100vh - var(--nav-height));
		height: calc(100dvh - var(--nav-height));
		top: var(--nav-height);
		background-color: var(--paper);
		background-image:
			linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
			linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
		background-size: 56px 56px;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 8px;
		padding-left: 10%;
		transform: translateX(100%);
		transition: transform 0.45s cubic-bezier(0.7, 0, 0.2, 1);
		width: 100%;
		z-index: 49;
		padding-bottom: var(--nav-height);
	}
	.nav-links li{
		opacity: 0;
	}
	.burger{
		display: block;
	}
	.nav-links a{
		font-family: Teko, sans-serif;
		font-size: 52px;
		font-weight: 400;
		letter-spacing: 0.04em;
		line-height: 1.1;
	}
	.nav-links img{
		height: 22px;
		width: 36px;
		margin-top: 24px;
	}
	.cool-text-background{
		background-size: 100% 8px;
	}
}

.nav-active{
	transform: translateX(0%) !important;
}

@keyframes navLinkFade{
	from{
		opacity: 0;
		transform: translateX(50px);
	}
	to{
		opacity: 1;
		transform: translateX(0px);
	}
}

.toggle .line-one{
	transform: rotate(-45deg) translate(-5px,6px);
}
.toggle .line-two{
	opacity: 0;
}
.toggle .line-three{
	transform: rotate(45deg) translate(-5px,-6px);
}

/* ============================================================
   GENERAL
   ============================================================ */

.floatleft{
	float: left;
	text-align: left;
}
.floatright{
	float: right;
	text-align: right;
}

/* shared button — outline with marker-sweep hover */
.describe-buttonlink a,
.btn{
	display: inline-block;
	font-family: Raleway, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ink);
	border: 1px solid var(--ink);
	background-color: transparent;
	background-image: linear-gradient(var(--accent), var(--accent));
	background-size: 0% 100%;
	background-repeat: no-repeat;
	background-position: 0% 100%;
	padding: 14px 28px;
	cursor: pointer;
	transition: background-size 0.35s ease, border-color 0.25s, color 0.25s;
}
.describe-buttonlink a:hover,
.btn:hover{
	background-size: 100% 100%;
	border-color: var(--periwinkle);
	color: var(--ink);
}
.describe-buttonlink.accent a,
.btn-primary{
	color: #ffffff;
	background-color: var(--ink);
	border-color: var(--ink);
	background-image: linear-gradient(var(--deep), var(--deep));
}
.describe-buttonlink.accent a:hover,
.btn-primary:hover{
	color: #ffffff;
	border-color: var(--deep);
}
.btn-light{
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.85);
	background-image: linear-gradient(var(--accent), var(--accent));
}
.btn-light:hover{
	color: var(--ink);
	border-color: var(--accent);
}

/* technical eyebrow label */
.eyebrow{
	font-family: Handjet, monospace;
	font-size: 19px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--periwinkle);
}

.obvious-link{
	color: var(--periwinkle);
	font-weight: bold;
	text-decoration: none;
}
.obvious-link:hover{
	color: var(--deep);
}

/* ============================================================
   FOOTER — dark ink band
   ============================================================ */

.footer{
	background-color: var(--footer-ink);
	min-height: 0;
	height: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	padding: 34px 6%;
	position: relative;
	z-index: 1;
	border-top: 4px solid var(--accent);
}
.footer .floatleft,
.footer .floatright{
	float: none;
}
.footer .copyright{
	font-family: Handjet, monospace;
	font-size: 17px;
	letter-spacing: 0.14em;
	line-height: 1.4;
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
}
.footer .footerlink{
	line-height: 1.4;
	margin: 0 0 0 28px;
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transition: color 0.2s;
}
.footer .footerlink:hover{
	color: #ffffff;
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 3px;
	text-underline-offset: 5px;
}

@media screen and (max-width: 925px){
	.footer{
		justify-content: center;
		text-align: center;
	}
	.footer .floatright{
		text-align: center;
	}
	.footer .footerlink{
		margin: 0 12px;
	}
}

/* ============================================================
   PAGE HEADER (all pages but startpage) — editorial banner
   ============================================================ */

.heading{
	height: auto;
	background-color: transparent;
	text-transform: uppercase;
	text-align: left;
	color: var(--ink);
	padding: 64px 6% 30px 6%;
	border-bottom: 1px solid var(--line);
	position: relative;
}
.heading::before{
	content: "[ loucom · potsdam — berlin ]";
	display: block;
	font-family: Handjet, monospace;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.22em;
	color: var(--periwinkle);
	margin-bottom: 6px;
}
.heading h1{
	font-family: Teko, sans-serif;
	font-size: clamp(56px, 9vw, 110px);
	font-weight: 500;
	line-height: 0.92;
	display: inline-block;
	/* marker underline */
	background-image: linear-gradient(var(--accent), var(--accent));
	background-repeat: no-repeat;
	background-size: 100% 30%;
	background-position: 0% 92%;
}
/* crosshair detail */
.heading::after{
	content: "+";
	position: absolute;
	right: 6%;
	bottom: 18px;
	font-family: Handjet, monospace;
	font-size: 26px;
	color: var(--periwinkle);
	opacity: 0.6;
}

/* ============================================================
   MAIN CONTENT DIV (all pages but startpage)
   ============================================================ */

.maincontent{
	margin: 0px 10% 0px 10%;
	min-height: 72vh;
	min-height: 72svh;
}
@media screen and (max-width: 650px){
	.maincontent{
		margin: 0px 5% 0px 5%;
		overflow-x: hidden;
	}
}
