/* ========== FONTS (self-hosted, variable WOFF2) ========== */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/bricolage-grotesque.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/geist.woff2') format('woff2');
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/instrument-serif-italic.woff2') format('woff2');
}

/* ========== TOKENS ========== */
:root {
  --paper: #F5F2EB; --paper-2: #ECE8DF; --paper-3: #E5E0D4;
  --ink: #0E0E0C; --ink-soft: #1A1A17;
  --muted: #65635B; --muted-soft: #9A9890;
  --accent: #D4FD39; --accent-deep: #D4FD39; --accent-glow: rgba(183,230,0,0.35);
  --border: rgba(14,14,12,0.12);
  --f-display: 'Bricolage Grotesque', system-ui, sans-serif;
  --f-serif: 'Instrument Serif', Georgia, serif;
  --f-body: 'Geist', system-ui, sans-serif;
  --container: 1440px; --gutter: clamp(20px,4vw,56px);
  --ease: cubic-bezier(0.6,0.05,0.1,1); --ease-out: cubic-bezier(0.22,1,0.36,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:var(--f-body);background:var(--paper);color:var(--ink);font-size:16px;line-height:1.5;overflow-x:hidden;}
img{max-width:100%;display:block;}
button,input,textarea,select{font:inherit;color:inherit;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--accent);color:var(--ink);}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;}
  .reveal{opacity:1!important;transform:none!important;}
  html{scroll-behavior:auto;}
}

/* Grain */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:0.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");mix-blend-mode:multiply;}

/* Scroll progress */
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--accent);z-index:200;will-change:width;}

/* Layout */
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);}

/* ========== HEADER ========== */
.top{position:fixed;top:0;left:0;right:0;z-index:100;color:var(--ink);transition:color .3s var(--ease);}
.top.is-light{color:var(--paper);}
.top-inner{max-width:var(--container);margin:0 auto;padding:18px var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:24px;}
.top a,.top .logo,.nav a{color:inherit;}
.logo{font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:-0.02em;display:flex;align-items:center;gap:10px;cursor:pointer;background:none;border:none;padding:0;}
.logo .dot{width:9px;height:9px;background:currentColor;border-radius:50%;display:inline-block;animation:pulse 2.4s infinite var(--ease-out);}
.logo .suffix{font-weight:500;opacity:.65;font-size:.9em;}
@keyframes pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.35);}}
.nav{display:flex;gap:32px;font-size:14px;}
.nav a{position:relative;padding:4px 0;cursor:pointer;}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .3s var(--ease-out);}
.nav a:hover::after,.nav a.is-active::after{width:100%;}

/* Mobile hamburger */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:4px;z-index:200;}
.hamburger span{display:block;width:22px;height:1.5px;background:currentColor;transition:transform .3s var(--ease),opacity .3s;}
.hamburger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.is-open span:nth-child(2){opacity:0;}
.hamburger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
@media(max-width:820px){
  .nav{display:none;}
  .hamburger{display:flex;}
}

/* Mobile nav overlay */
.mobile-nav{position:fixed;top:0;left:0;right:0;bottom:0;min-height:100vh;min-height:100dvh;height:-webkit-fill-available;background:var(--ink);z-index:90;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:36px;opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out);padding:40px 20px;overscroll-behavior:contain;}
.mobile-nav.is-open{opacity:1;pointer-events:all;}
.mobile-nav .m-link{font-family:var(--f-display);font-size:clamp(36px,10vw,56px);font-weight:500;letter-spacing:-0.03em;color:var(--paper);background:none;border:none;cursor:pointer;line-height:1;transition:color .25s,transform .25s;display:block;}
.mobile-nav .m-link:hover,.mobile-nav .m-link:focus-visible{color:var(--accent);transform:translateX(4px);outline:none;}
.mobile-nav-sub{margin-top:24px;display:flex;gap:24px;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(245,242,235,.5);}
.mobile-nav-sub a,.mobile-nav-sub button{color:rgba(245,242,235,.5);font-family:var(--f-body);font-size:12px;font-weight:400;background:none;border:none;cursor:pointer;}
.mobile-nav-sub a:hover,.mobile-nav-sub button:hover{color:var(--accent);}

/* ========== BUTTONS ========== */
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 24px;background:var(--ink);color:var(--paper);font-family:var(--f-body);font-size:14px;font-weight:500;letter-spacing:0.02em;border:1px solid var(--ink);border-radius:999px;cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),padding .3s var(--ease),box-shadow .3s var(--ease);white-space:nowrap;}
.btn:hover,.btn:focus-visible{background:var(--accent);color:var(--ink);border-color:var(--accent);padding-right:32px;outline:none;box-shadow:0 0 0 6px var(--accent-glow);}
.btn .arrow{width:16px;height:16px;transition:transform .3s var(--ease-out);}
.btn:hover .arrow,.btn:focus-visible .arrow{transform:translateX(4px);}
.btn--ghost{background:transparent;color:var(--ink);}
.btn--ghost:hover,.btn--ghost:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 0 0 6px rgba(14,14,12,.08);}
.btn--accent{background:var(--ink);color:var(--paper);}
.btn--accent:hover,.btn--accent:focus-visible{background:var(--paper);color:var(--ink);border-color:var(--ink);}

/* ========== MARQUEE ========== */
.marquee{background:var(--ink);color:var(--paper);padding:32px 0;overflow:hidden;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);}
.marquee-track{display:flex;gap:60px;white-space:nowrap;animation:mscroll 45s linear infinite;width:max-content;will-change:transform;}
.marquee-item{font-family:var(--f-display);font-size:clamp(36px,6vw,88px);font-weight:500;letter-spacing:-0.03em;line-height:1;display:flex;align-items:center;gap:60px;}
.marquee-item .star{color:var(--accent);font-family:var(--f-serif);font-style:italic;font-weight:400;}
@keyframes mscroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ========== SECTIONS ========== */
section{padding:clamp(80px,12vh,160px) 0;}
.section-head{display:grid;grid-template-columns:200px 1fr;gap:40px;margin-bottom:80px;align-items:end;border-bottom:1px solid var(--ink);padding-bottom:24px;}
.section-num{font-family:var(--f-body);font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}
.section-num span{color:var(--ink);}
.section-title{font-family:var(--f-display);font-size:clamp(36px,5vw,72px);line-height:0.95;letter-spacing:-0.03em;font-weight:500;margin-left:-0.03em;}
.section-title .it{font-family:var(--f-serif);font-style:italic;font-weight:400;}
.br-desktop{display:none;}
@media(min-width:900px){.br-desktop{display:inline;}}
@media(max-width:720px){.section-head{grid-template-columns:1fr;gap:16px;margin-bottom:48px;}}

/* ========== HERO ========== */
.hero{min-height:100vh;padding:140px var(--gutter) 120px;display:flex;flex-direction:column;position:relative;max-width:var(--container);margin:0 auto;}
.hero::before{content:"";position:absolute;left:var(--mx,50%);top:var(--my,40%);width:700px;height:700px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(183,230,0,.18) 0%,rgba(183,230,0,.06) 30%,transparent 60%);pointer-events:none;z-index:0;opacity:0;transition:opacity .6s var(--ease-out);will-change:left,top;filter:blur(20px);}
.hero.has-cursor::before{opacity:1;}
.hero > *{position:relative;z-index:1;}
.hero-meta{display:grid;grid-template-columns:1fr 1fr;gap:40px;font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--ink);padding-top:18px;max-width:600px;}
.hero-meta strong{display:block;color:var(--ink);font-weight:500;margin-bottom:4px;}
.hero-headline{font-family:var(--f-display);font-weight:500;font-size:clamp(56px,13vw,220px);line-height:0.88;letter-spacing:-0.04em;margin:80px 0 0;margin-left:-0.03em;}
.hero-headline .it{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-0.01em;}
.hero-headline .accent-dot{color:var(--accent-deep);}
.hero-headline .line{display:block;padding-bottom:0.1em;}
.hero-headline .ch{display:inline;opacity:0;animation:write 0.28s var(--ease-out) forwards;transition:font-variation-settings .35s var(--ease-out),color .35s var(--ease-out);font-variation-settings:"wght" 500;}
.hero-headline .ch:hover{font-variation-settings:"wght" 700;color:var(--accent-deep);}
.hero-headline .hero-hl.is-live .ch:hover{color:var(--ink);}
@keyframes write{from{opacity:0;}to{opacity:1;}}
.hero-hl{background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-position:left center;background-size:0% 82%;padding:0 4px;transition:background-size 1.1s cubic-bezier(0.25,0.46,0.45,0.94);}
.hero-hl.is-live{background-size:110% 82%;}
.hero-sub{display:grid;grid-template-columns:1fr auto;gap:60px;align-items:center;margin-top:-16px;}
.hero-sub p{max-width:520px;font-size:clamp(15px,1.2vw,18px);line-height:1.55;color:var(--ink-soft);}
.badge.badge--hero{position:relative;top:auto;right:auto;width:280px;height:280px;z-index:auto;align-self:start;margin-top:-200px;pointer-events:none;transform:scale(0);transform-origin:50% 50%;}
.badge.badge--hero.is-revealed{pointer-events:auto;transform:scale(1);transition:transform .75s cubic-bezier(0.22,1,0.36,1);}
.badge.badge--hero .badge-arrow{width:56px;height:56px;}
.badge.badge--hero .badge-arrow svg{width:22px;height:22px;}
@media(max-width:720px){.hero-meta{grid-template-columns:1fr;gap:16px;}.hero-sub{margin-top:0;}}

/* Badge */
.badge{position:absolute;top:110px;right:var(--gutter);width:130px;height:130px;z-index:10;cursor:pointer;background:none;border:none;padding:0;}
@media(max-width:720px){.badge{width:100px;height:100px;top:90px;}}
.badge svg.ring{width:100%;height:100%;animation:spin 22s linear infinite;will-change:transform;}
.badge text{font-family:var(--f-body);font-size:11px;letter-spacing:0.18em;fill:var(--ink);text-transform:uppercase;}
.badge-center{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;}
.badge-arrow{width:32px;height:32px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:var(--ink);transition:transform .35s var(--ease);}
.badge:hover .badge-arrow,.badge:focus-visible .badge-arrow{transform:rotate(45deg) scale(1.15);}
.badge:focus-visible{outline:none;}
.badge:focus-visible svg.ring text{fill:var(--accent-deep);}
@keyframes spin{to{transform:rotate(360deg);}}


/* ========== SERVICES ========== */
.services-list{border-top:1px solid var(--ink);}
.service{display:grid;grid-template-columns:80px 1fr 1fr 60px;gap:32px;padding:36px var(--gutter);align-items:center;border-bottom:1px solid var(--ink);cursor:pointer;position:relative;overflow:hidden;transition:padding .4s var(--ease);background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;font:inherit;color:inherit;}
@media(min-width:1441px){.service{padding-left:calc((100vw - var(--container)) / 2 + var(--gutter));padding-right:calc((100vw - var(--container)) / 2 + var(--gutter));}}
.service:focus-visible{outline:2px solid var(--accent-deep);outline-offset:-2px;}
.service::before{content:"";position:absolute;inset:0;background:var(--accent);transform:translateY(100%);transition:transform .5s var(--ease);z-index:0;}
.service:hover::before,.service:focus-visible::before{transform:translateY(0);}
.service:hover,.service:focus-visible{padding-left:calc(var(--gutter) + 16px);}
@media(min-width:1441px){.service:hover,.service:focus-visible{padding-left:calc((100vw - var(--container)) / 2 + var(--gutter) + 16px);}}
.service > *{position:relative;z-index:1;}
.service-num{font-family:var(--f-body);font-size:13px;color:var(--muted);letter-spacing:0.05em;}
.service:hover .service-num,.service:focus-visible .service-num{color:var(--ink);}
.service-title{font-family:var(--f-display);font-size:clamp(28px,4vw,56px);font-weight:500;letter-spacing:-0.02em;line-height:1;}
.service-desc{font-size:15px;color:var(--muted);max-width:520px;line-height:1.6;}
.service:hover .service-desc,.service:focus-visible .service-desc{color:var(--ink-soft);}
.service-arrow{width:36px;height:36px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;transition:transform .4s var(--ease),background .4s var(--ease);justify-self:end;}
.service:hover .service-arrow,.service:focus-visible .service-arrow{background:var(--ink);color:var(--accent);transform:rotate(-45deg);}
@media(max-width:900px){.service{grid-template-columns:1fr;gap:12px;padding:28px var(--gutter);}.service-arrow{display:none;}}

/* ========== WHY CARDS (Section 02) ========== */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
.why-card{display:flex;flex-direction:column;gap:20px;padding:32px;background:var(--paper-2);border:1px solid var(--border);border-radius:18px;transition:transform .18s var(--ease-out),border-color .18s var(--ease-out);}
.why-card:hover{transform:translateY(-2px);border-color:var(--accent);}
.why-icon{width:36px;height:36px;color:var(--ink);}
.why-icon svg{width:100%;height:100%;display:block;}
.why-title{font-family:var(--f-display);font-weight:500;font-size:clamp(22px,2vw,28px);line-height:1.15;letter-spacing:-0.02em;color:var(--ink);margin:0;}
.why-desc{font-family:var(--f-body);font-size:15px;line-height:1.55;color:var(--ink-soft);margin:0;}
@media(max-width:900px){.why-grid{grid-template-columns:1fr;gap:16px;}.why-card{padding:24px;}}
@media(prefers-reduced-motion:reduce){.why-card:hover{transform:none;}}

/* ========== HOMEPAGE WORK TEASER ========== */
.work-home{padding:clamp(80px,12vh,160px) 0;border-bottom:1px solid var(--ink);}
.work-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:48px;}
@media(max-width:900px){.work-home-grid{grid-template-columns:1fr;gap:24px;}}
.work-home-card{display:flex;flex-direction:column;gap:16px;padding:24px;border:1px solid var(--border);border-radius:18px;background:var(--paper-2);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);cursor:pointer;}
.work-home-card:hover,.work-home-card:focus-visible{transform:translateY(-6px);box-shadow:0 24px 48px -24px rgba(14,14,12,.18);border-color:var(--ink);outline:none;}
.work-home-visual{aspect-ratio:16/10;border-radius:10px;overflow:hidden;}
.work-home-visual img{display:block;width:100%;height:calc(100% + 5px);margin-top:-5px;object-fit:cover;object-position:top center;}
.work-home-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;}
.work-home-meta-left{display:flex;flex-direction:column;gap:4px;}
.work-home-card h3{font-family:var(--f-display);font-size:clamp(22px,2.4vw,30px);font-weight:500;letter-spacing:-0.02em;line-height:1.05;}
.work-home-card h3 em{font-family:var(--f-serif);font-style:italic;font-weight:400;color:var(--accent-deep);}
.work-home-card .meta-line{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.work-home-card .ext{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.work-home-card .ext svg{width:10px;height:10px;}
.work-home-card:hover .ext,.work-home-card:focus-visible .ext{color:var(--ink);}
.work-home-cta{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.work-home-cta p{font-size:14px;color:var(--muted);max-width:480px;line-height:1.55;}

/* ========== STUDIO TEASER (HOME) ========== */
.team-photos{list-style:none;padding:0;margin:0 0 48px;display:flex;justify-content:center;align-items:flex-start;gap:clamp(2rem,5vw,4rem);flex-wrap:wrap;}
.team-photo-item{display:flex;flex-direction:column;align-items:center;gap:14px;}
.team-photo{width:100px;height:100px;border-radius:50%;overflow:hidden;background:var(--paper-3);position:relative;}
.team-photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%;}
.team-name{font-family:var(--f-body);font-size:0.9rem;color:var(--ink-soft);letter-spacing:-0.005em;}
@media(max-width:600px){.team-photos{gap:1.25rem;margin-bottom:36px;}.team-photo{width:80px;height:80px;}.team-name{font-size:0.8rem;}}
.studio-teaser-text{font-family:var(--f-display);font-size:clamp(22px,2.4vw,32px);font-weight:500;letter-spacing:-0.01em;line-height:1.3;max-width:720px;margin-bottom:40px;}
.studio-teaser-cta{display:flex;}

/* ========== STATS (HONEST) ========== */
.stats{background:var(--ink);color:var(--paper);padding:clamp(60px,10vh,120px) 0;position:relative;overflow:hidden;}
.stats::after{content:"";position:absolute;left:50%;top:0;width:1px;height:48px;background:var(--accent);transform:translateX(-50%);}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;}
@media(max-width:800px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:32px 24px;}}
.stat-num{font-family:var(--f-display);font-size:clamp(48px,7vw,96px);font-weight:500;line-height:1;letter-spacing:-0.04em;color:var(--accent);display:flex;align-items:baseline;}
.stat-num .it{font-family:var(--f-serif);font-style:italic;font-weight:400;margin-left:2px;font-size:.5em;color:rgba(183,230,0,.65);}
.stat-num .pre{font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:.55em;color:rgba(183,230,0,.7);margin-right:4px;}
.stat-label{margin-top:16px;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;color:var(--paper);opacity:0.7;}
.stats-line{margin-top:80px;padding-top:24px;border-top:1px solid rgba(245,242,235,.15);display:flex;justify-content:space-between;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.6;}
@media(max-width:720px){.stats-line{flex-direction:column;gap:8px;}}

/* ========== ABLAUF ========== */
.principles{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:60px var(--gutter);}
@media(max-width:800px){.principles{grid-template-columns:1fr;gap:32px;}}
.principles li{border-top:1px solid var(--ink);padding-top:28px;transition:padding-top .4s var(--ease);}
.principles li:hover{padding-top:22px;}
.p-num{font-family:var(--f-body);font-size:13px;letter-spacing:0.1em;color:var(--muted);display:block;margin-bottom:18px;transition:letter-spacing .3s var(--ease);}
.principles li:hover .p-num{letter-spacing:0.18em;}
.principles h3{font-family:var(--f-display);font-size:clamp(28px,3.5vw,52px);font-weight:500;line-height:1;letter-spacing:-0.02em;margin-bottom:18px;}
.principles h3 em{font-family:var(--f-serif);font-style:italic;font-weight:400;opacity:0.5;}
.principles p{font-size:15px;line-height:1.6;color:var(--ink-soft);max-width:400px;}

/* ========== STUDIO / TEAM ========== */
.about-content{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
@media(max-width:800px){.about-content{grid-template-columns:1fr;gap:40px;}}
.about-big{font-family:var(--f-display);font-size:clamp(28px,3.4vw,48px);line-height:1.1;letter-spacing:-0.02em;font-weight:400;}
.about-big .it{font-family:var(--f-serif);font-style:italic;}
.about-big .hl{
  background-image:linear-gradient(var(--accent),var(--accent));
  background-repeat:no-repeat;
  background-position:left center;
  background-size:0% 85%;
  padding:0 6px;
  transition:background-size 1.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.about-big .hl.is-live{background-size:100% 85%;}
.about-detail p{margin-bottom:20px;font-size:15px;line-height:1.65;color:var(--ink-soft);}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:80px;}
@media(max-width:900px){.team-grid{grid-template-columns:1fr;gap:24px;}}
.team-member{padding:32px;border:1px solid var(--ink);background:var(--paper-2);display:flex;flex-direction:column;gap:16px;transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
.team-member:hover{transform:translateY(-8px);box-shadow:6px 6px 0px 0px var(--ink);}
.team-member h2{font-family:var(--f-display);font-size:28px;font-weight:500;line-height:1.1;}
.team-member .role{font-family:var(--f-body);font-size:14px;font-weight:400;color:var(--muted);display:block;margin-top:6px;}
.team-member p{font-size:15px;color:var(--ink-soft);line-height:1.6;flex:1;margin-bottom:24px;}
.team-member a{font-family:var(--f-display);font-size:16px;font-weight:500;border-bottom:1px solid var(--ink);align-self:flex-start;padding-bottom:2px;transition:color .3s,border-color .3s;}
.team-member a:hover,.team-member a:focus-visible{color:var(--accent-deep);border-color:var(--accent-deep);outline:none;}

/* ========== TEAM MEMBER PHOTO (ueber-uns card) ========== */
.team-member-photo{width:140px;height:140px;border-radius:50%;overflow:hidden;background:var(--paper-3);align-self:flex-start;}
.team-member-photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%;}
@media(max-width:900px){.team-member-photo{width:120px;height:120px;}}

/* ========== CONTACT ========== */
.contact{background:var(--accent);color:var(--ink);padding:clamp(80px,14vh,180px) 0 clamp(40px,6vh,80px);overflow:hidden;}
.contact-pre{font-size:13px;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:24px;border-top:1px solid var(--ink);padding-top:16px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.contact-headline{font-family:var(--f-display);font-size:clamp(54px,11vw,180px);line-height:0.9;letter-spacing:-0.04em;font-weight:500;margin-bottom:60px;margin-left:-0.07em;}
.contact-headline .it{font-family:var(--f-serif);font-style:italic;font-weight:400;}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;margin-bottom:60px;}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr;gap:40px;}}
.contact-block h3{font-family:var(--f-body);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:16px;font-weight:500;}
.contact-block a,.contact-block address{font-family:var(--f-display);font-size:clamp(20px,2.2vw,28px);font-weight:500;line-height:1.3;font-style:normal;display:block;}
.contact-block a:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
.contact-block .small{font-size:14px;color:var(--ink-soft);margin-top:24px;font-family:var(--f-body);font-weight:400;line-height:1.55;max-width:340px;}
.contact-form{display:grid;gap:18px;}
.contact-form label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;display:block;margin-bottom:6px;}
.contact-form .row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:600px){.contact-form .row-2{grid-template-columns:1fr;}}
.contact-form input,.contact-form textarea,.contact-form select{background:transparent;border:none;border-bottom:1px solid var(--ink);padding:10px 0;font-size:16px;outline:none;width:100%;resize:none;font-family:var(--f-body);color:var(--ink);}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--ink);opacity:0.65;}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-bottom-width:2px;padding-bottom:9px;}
.contact-form select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%230E0E0C' stroke-width='1.6'><path d='M1 1l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 4px center;padding-right:24px;cursor:pointer;}
.contact-form textarea{min-height:100px;}
.contact-form .submit-row{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:8px;}
.contact-form .submit-row .cf-turnstile{flex:0 0 auto;order:2;transition:opacity .3s var(--ease-out);}
.contact-form .submit-row .btn{margin:0;order:1;}
.contact-form .submit-row .btn .btn-label--hint{display:none;}
.contact-form .submit-row .btn.is-invalid-hint:hover .btn-label{display:none;}
.contact-form .submit-row .btn.is-invalid-hint:hover .btn-label--hint{display:inline;}
.contact-form .submit-row .btn.is-invalid-hint:hover .arrow{transform:rotate(-90deg);}
.contact-form button:disabled{opacity:0.5;cursor:not-allowed;}
.contact-form button:disabled:hover{background:transparent;color:var(--ink);border-color:var(--ink);padding-right:24px;box-shadow:none;}

/* ========== PAGE HERO (Projekte / FAQ) ========== */
.page-hero{padding:180px 0 80px;border-bottom:1px solid var(--ink);}
.page-hero-meta{display:flex;gap:24px;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-bottom:40px;flex-wrap:wrap;}
.page-hero-meta strong{color:var(--ink);font-weight:500;}
.page-hero h1{font-family:var(--f-display);font-size:clamp(56px,11vw,180px);line-height:0.9;letter-spacing:-0.04em;font-weight:500;margin-bottom:40px;margin-left:-0.03em;}
.page-hero h1 .it{font-family:var(--f-serif);font-style:italic;font-weight:400;}
.page-hero p{max-width:560px;font-size:clamp(15px,1.2vw,18px);line-height:1.55;color:var(--ink-soft);}

/* Definition-lead sentences (SEO/AI) */
.page-definition{font-family:var(--f-body);font-size:14px;line-height:1.6;color:var(--muted);max-width:620px;margin:16px 0 32px;}
@media(max-width:720px){
  .page-definition{font-size:13px;}
}

/* Work section: section-head line spans full viewport width via pseudo-element */
.work .section-head{border-bottom:none;position:relative;}
.work .section-head::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100vw;height:1px;background:var(--ink);pointer-events:none;}

/* ========== CASES (Projekte page) ========== */
.work{padding:clamp(60px,10vh,120px) 0 clamp(80px,12vh,160px);}
.work-grid{display:flex;flex-direction:column;gap:64px;}
.case{display:grid;grid-template-columns:1fr 1.4fr;gap:64px;align-items:center;padding:32px 0;border-top:1px solid var(--ink);cursor:pointer;transition:background-color .45s var(--ease-out);background:none;border-left:none;border-right:none;border-bottom:none;width:100%;text-align:left;font:inherit;color:inherit;}
.case:hover,.case:focus-visible{background-color:rgba(14,14,12,0.03);outline:none;}
.case:focus-visible h3{color:var(--accent-deep);}
.case-info{display:flex;flex-direction:column;gap:24px;transition:transform .5s var(--ease-out);}
.case:hover .case-info,.case:focus-visible .case-info{transform:translateX(10px);}
.case-meta{display:flex;gap:24px;font-size:11px;color:var(--muted);letter-spacing:0.05em;text-transform:uppercase;flex-wrap:wrap;}
.case-meta strong{color:var(--ink);font-weight:500;}
.case h3{font-family:var(--f-display);font-size:clamp(36px,4.5vw,56px);font-weight:500;letter-spacing:-0.04em;line-height:0.95;color:var(--ink);display:flex;align-items:center;gap:18px;flex-wrap:wrap;transition:color .3s;margin-left:-0.03em;}
.case h3 em{font-family:var(--f-serif);font-style:italic;font-weight:400;color:var(--accent-deep);}
.case-desc{font-size:16px;line-height:1.65;color:var(--ink-soft);max-width:440px;}
.case-tags{display:flex;gap:8px;flex-wrap:wrap;}
.case-tag{font-size:11px;font-weight:500;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:100px;padding:5px 12px;}
.case-visual{aspect-ratio:3024/1720;background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;position:relative;transition:transform .6s var(--ease-out);}
.case:hover .case-visual,.case:focus-visible .case-visual{transform:scale(1.01);}
.preview{position:absolute;inset:0;overflow:hidden;background:#fff;}
.preview-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform 1.4s var(--ease-out);}
.case:hover .preview-img,.case:focus-visible .preview-img{transform:scale(1.02);}
.reel-link-badge{position:absolute;top:14px;right:14px;z-index:12;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);color:var(--ink);padding:6px 11px;border-radius:100px;font-size:10px;letter-spacing:0.06em;text-transform:uppercase;font-weight:500;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.04);transition:transform .3s var(--ease),background .2s,color .2s;pointer-events:none;}
.reel-link-badge svg{width:9px;height:9px;}
.case:hover .reel-link-badge,.case:focus-visible .reel-link-badge{background:var(--accent);color:var(--ink);transform:translateY(-2px);}
.reel-link-badge.is-internal{background:var(--ink);color:var(--paper);border-color:transparent;}
.mock-soon{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:28px 32px;background-image:linear-gradient(135deg,var(--paper) 0%,var(--paper-2) 100%),repeating-linear-gradient(0deg,transparent 0,transparent 28px,rgba(14,14,12,.035) 28px,rgba(14,14,12,.035) 29px),repeating-linear-gradient(90deg,transparent 0,transparent 28px,rgba(14,14,12,.035) 28px,rgba(14,14,12,.035) 29px);background-blend-mode:normal,multiply,multiply;}
.mock-soon-top,.mock-soon-bottom{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}
.mock-soon-top strong,.mock-soon-bottom strong{color:var(--ink);font-weight:500;margin-left:6px;}
.mock-soon-center{display:flex;flex-direction:column;align-items:flex-start;gap:14px;}
.mock-soon-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent-deep);background:#fff;border:1px solid var(--border);border-radius:100px;padding:5px 12px;}
.mock-soon-eyebrow::before{content:'';width:6px;height:6px;background:var(--accent-deep);border-radius:50%;}
.mock-soon-num{font-size:clamp(100px,18vw,200px);font-weight:300;letter-spacing:-0.06em;line-height:0.85;color:var(--ink);font-family:var(--f-serif);font-style:italic;}
.mock-soon-text{font-size:14px;color:var(--ink-soft);max-width:280px;line-height:1.5;}
@media(max-width:1024px){.case{grid-template-columns:1fr;gap:32px;}.case-info{order:2;}.case-visual{order:1;}}

/* ========== BEFORE/AFTER COMPARE SLIDER ========== */
.compare{position:relative;width:100%;height:100%;overflow:hidden;background:var(--paper-2);user-select:none;-webkit-user-select:none;touch-action:none;cursor:ew-resize;border-radius:inherit;--cmp-p:50%;}
.compare-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;display:block;pointer-events:none;-webkit-user-drag:none;user-drag:none;}
.compare-new{z-index:1;}
.compare-old{z-index:2;clip-path:inset(0 calc(100% - var(--cmp-p)) 0 0);-webkit-clip-path:inset(0 calc(100% - var(--cmp-p)) 0 0);}
.compare-divider{position:absolute;top:0;bottom:0;left:var(--cmp-p);width:2px;background:rgba(255,255,255,.95);transform:translateX(-50%);z-index:3;pointer-events:none;box-shadow:0 0 18px rgba(0,0,0,.35);}
.compare-handle{position:absolute;top:50%;left:var(--cmp-p);transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;border:2px solid rgba(255,255,255,.98);background:rgba(14,14,12,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;cursor:ew-resize;z-index:4;color:#fff;padding:0;transition:background .25s var(--ease-out),color .25s var(--ease-out),border-color .25s var(--ease-out),transform .25s var(--ease-out),box-shadow .25s var(--ease-out);box-shadow:0 6px 22px rgba(0,0,0,.32);}
.compare-handle:hover,.compare-handle:focus-visible{background:var(--accent);color:var(--ink);border-color:var(--ink);outline:none;box-shadow:0 8px 28px rgba(0,0,0,.4);}
.compare.is-dragging{cursor:grabbing;}
.compare.is-dragging .compare-handle{transform:translate(-50%,-50%) scale(1.08);background:var(--accent);color:var(--ink);border-color:var(--ink);}
.compare-handle svg{width:18px;height:18px;}
.compare-label{position:absolute;top:14px;font-family:var(--f-body);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:6px 11px;border-radius:999px;background:rgba(14,14,12,.55);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:3;pointer-events:none;opacity:0;transition:opacity .25s var(--ease-out);}
.compare-label--old{left:14px;}
.compare-label--new{right:14px;}
.compare:hover .compare-label,.compare.is-dragging .compare-label,.compare:focus-within .compare-label{opacity:1;}
.compare-divider,.compare-handle{transition:left .12s var(--ease-out),transform .25s var(--ease-out),background .25s,color .25s,border-color .25s,box-shadow .25s;}
.compare-old{transition:clip-path .12s var(--ease-out),-webkit-clip-path .12s var(--ease-out);}
.compare.is-dragging .compare-divider,.compare.is-dragging .compare-handle,.compare.is-dragging .compare-old{transition:none;}
@media(prefers-reduced-motion:reduce){
  .compare-divider,.compare-handle,.compare-old{transition:none;}
}
@media(max-width:600px){
  .compare-handle{width:40px;height:40px;}
  .compare-handle svg{width:16px;height:16px;}
  .compare-label{font-size:9px;padding:4px 9px;top:10px;}
  .compare-label--old{left:10px;}
  .compare-label--new{right:10px;}
}

/* ========== FAQ ========== */
.faq-list{border-top:1px solid var(--ink);}
.faq-item{border-bottom:1px solid var(--ink);}
.faq-q{width:100%;display:grid;grid-template-columns:60px 1fr 32px;gap:24px;align-items:center;padding:32px 0;font-family:var(--f-display);font-size:clamp(20px,2.5vw,28px);font-weight:500;background:none;border:none;text-align:left;cursor:pointer;transition:padding-left .4s var(--ease);letter-spacing:-0.02em;color:inherit;}
.faq-q:hover,.faq-q:focus-visible{padding-left:16px;outline:none;}
.faq-q:focus-visible .faq-icon{border-color:var(--accent-deep);}
.faq-q-num{font-family:var(--f-body);font-size:12px;color:var(--muted);letter-spacing:0.1em;font-weight:500;}
.faq-icon{width:32px;height:32px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;transition:transform .4s var(--ease),background .3s,color .3s,border-color .3s;justify-self:end;}
.faq-icon svg{width:12px;height:12px;}
.faq-item.is-open .faq-icon{transform:rotate(45deg);background:var(--ink);color:var(--accent);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease);}
.faq-a-inner{padding:0 0 32px calc(60px + 24px);font-size:16px;line-height:1.65;color:var(--ink-soft);max-width:760px;}
@media(max-width:720px){.faq-q{grid-template-columns:40px 1fr 28px;gap:16px;}.faq-a-inner{padding-left:calc(40px + 16px);}}

/* ========== CTA STRIP ========== */
.cta{background:var(--accent);color:var(--ink);padding:clamp(60px,10vh,120px) 0;border-top:1px solid var(--ink);}
.cta-inner{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;}
.cta-headline{font-family:var(--f-display);font-size:clamp(40px,7vw,96px);line-height:0.95;letter-spacing:-0.04em;font-weight:500;}
.cta-headline .it{font-family:var(--f-serif);font-style:italic;font-weight:400;}
@media(max-width:720px){.cta-inner{grid-template-columns:1fr;}}

/* ========== FOOTER ========== */
footer{background:var(--ink);color:var(--paper);padding:80px 0 32px;}
.footer-massive{font-family:var(--f-display);font-size:clamp(80px,18vw,260px);font-weight:700;letter-spacing:-.06em;line-height:.85;color:var(--paper);display:flex;align-items:baseline;flex-wrap:wrap;gap:.04em;margin-bottom:60px;margin-left:-0.06em;overflow:visible;}
.footer-massive .dot{width:.12em;height:.12em;background:var(--accent);border-radius:50%;align-self:flex-end;margin-bottom:.09em;}
.footer-massive .suffix{font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:.18em;color:rgba(245,242,235,.5);margin-left:0.333em;flex-basis:100%;letter-spacing:0;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(245,242,235,.12);}
.footer-col h2{font-family:var(--f-body);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(245,242,235,.6);margin-bottom:18px;font-weight:500;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-col a,.footer-col button.flink{font-size:14px;color:rgba(245,242,235,.7);transition:color .2s;cursor:pointer;background:none;border:none;padding:0;font-family:inherit;text-align:left;}
.footer-col a:hover,.footer-col a:focus-visible,.footer-col button.flink:hover,.footer-col button.flink:focus-visible{color:var(--accent);outline:none;}
.footer-desc{font-size:14px;line-height:1.65;color:rgba(245,242,235,.55);max-width:280px;}
.footer-bottom{padding-top:28px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:rgba(245,242,235,.6);letter-spacing:.05em;flex-wrap:wrap;gap:12px;}
.footer-bottom-links{display:flex;gap:24px;}
.footer-bottom-links a,.footer-bottom-links button.flink{transition:color .2s;cursor:pointer;background:none;border:none;font-family:inherit;font-size:inherit;color:inherit;letter-spacing:inherit;}
.footer-bottom-links a:hover,.footer-bottom-links a:focus-visible,.footer-bottom-links button.flink:hover,.footer-bottom-links button.flink:focus-visible{color:var(--paper);outline:none;}
.footer-instagram{display:inline-flex;align-items:center;margin-top:14px;opacity:.7;transition:opacity .2s;}
.footer-instagram:hover,.footer-instagram:focus-visible{opacity:1;outline:none;}
.footer-updated{font-size:11px;color:var(--muted-soft);margin-top:8px;letter-spacing:0.05em;}
@media(max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px;}}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr;}.footer-bottom{flex-direction:column;gap:12px;text-align:center;}}

/* ========== REVEAL ========== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal.delay-1{transition-delay:.1s;}
.reveal.delay-2{transition-delay:.2s;}
.reveal.delay-3{transition-delay:.3s;}

/* ========== MOBILE OVERRIDES ========== */
@media(max-width:820px){
  /* Root cause of horizontal scroll on iOS: the 700px glow element overflows the hero.
     On touch devices the cursor-luminance effect never activates anyway. */
  .hero{overflow:hidden;}
  .hero::before{content:none;}
  /* Badge circle: removed on mobile — CTA accessible via nav and section buttons */
  .badge.badge--hero{display:none;}
}

@media(max-width:720px){
  /* Hero layout */
  .hero{padding-top:96px;padding-bottom:20px;min-height:auto;}
  .hero-meta{display:none;}
  .hero-headline{margin-top:24px;font-size:clamp(64px,17vw,220px);}
  .hero-sub{margin-top:0;display:block;padding:32px 0 24px;}
  .marquee{padding:16px 0;}
  /* Subpage heroes */
  .page-hero{padding:110px 0 56px;}
  .page-hero h1{margin-bottom:24px;}
  /* Contact */
  .contact-headline{margin-bottom:40px;}
  /* Work CTA stacked */
  .work-home-cta{flex-direction:column;align-items:flex-start;}
}

/* Footer: keep accent dot beside "LumaWeb" on small screens
   (at 80px min the text overflows its flex container and the dot wraps) */
@media(max-width:520px){
  .footer-massive{font-size:clamp(48px,14.5vw,80px);}
}

/* ── CONTACT FORM PRIVACY + MODAL ── */
.form-privacy{font-size:12px;color:rgba(14,14,12,.7);margin-top:12px;line-height:1.5;max-width:420px;}
.field-error{display:block;font-size:11px;font-weight:500;font-style:italic;letter-spacing:0.04em;color:var(--ink);opacity:0.75;margin-top:6px;min-height:16px;}
.contact-form .is-error{border-bottom:2px solid var(--ink)!important;padding-bottom:9px;}

.modal{position:fixed;inset:0;z-index:300;display:none;opacity:0;transition:opacity .25s var(--ease-out);}
.modal.is-open{display:block;opacity:1;}
.modal-backdrop{position:absolute;inset:0;background:rgba(14,14,12,0.55);backdrop-filter:blur(2px);}
.modal-content{position:relative;max-width:480px;margin:10vh auto 0;background:var(--paper);border:1px solid var(--border);border-radius:18px;padding:40px;box-shadow:0 10px 40px rgba(14,14,12,.18);}
.modal-close{position:absolute;top:14px;right:18px;width:36px;height:36px;border-radius:50%;background:transparent;border:none;color:var(--ink);font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s var(--ease-out);}
.modal-close:hover,.modal-close:focus-visible{background:var(--paper-2);outline:none;}
.modal-title{font-family:var(--f-display);font-size:28px;font-weight:500;letter-spacing:-0.02em;color:var(--ink);margin-bottom:12px;line-height:1.1;}
.modal-text{font-family:var(--f-body);font-size:15px;line-height:1.55;color:var(--ink-soft);}
.modal-text a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;}
.modal--wide .modal-content{max-width:680px;margin:5vh auto;max-height:90vh;display:flex;flex-direction:column;padding:0;}
.modal-scroll{overflow-y:auto;padding:48px 40px 40px;flex:1;}
.modal-prose h2.modal-title{font-size:32px;margin-bottom:24px;}
.modal-prose h3{font-family:var(--f-display);font-size:17px;font-weight:600;letter-spacing:-0.01em;color:var(--ink);margin:28px 0 8px;}
.modal-prose p,.modal-prose li{font-family:var(--f-body);font-size:15px;line-height:1.65;color:var(--ink-soft);}
.modal-prose ul{padding-left:20px;margin:8px 0 16px;}
.modal-prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;}
.modal-stand{font-size:13px;color:var(--muted);margin-top:32px;}
@media(max-width:600px){
  .modal-content{max-width:90vw;padding:28px 20px;margin-top:15vh;}
  .modal--wide .modal-content{margin:0;border-radius:18px 18px 0 0;max-height:95vh;position:fixed;bottom:0;left:0;right:0;}
  .modal-scroll{padding:56px 20px 32px;}
}
