/* =====================================================================
   BLNK Digitals · Stylesheet
   Konzept „Augenblick“: BLNK steht für blink. Das wiederkehrende Motiv ist die
   Blende, die sich wie ein Auge öffnet (Startbereich, Projektbilder, Leistungs-
   Vorschau, Seitenwechsel). Dazu das Punkteraster aus dem Logo und Signalblau als
   einziger Akzent. Weiß als Fläche, Navy als Tinte, Nachtblau für dunkle Kapitel.
   ===================================================================== */
@font-face{font-family:'Michroma';src:url('/assets/fonts/michroma.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Schibsted Grotesk';src:url('/assets/fonts/schibsted-var.woff') format('woff');font-weight:400 900;font-style:normal;font-display:swap}

:root{
  --paper:#ffffff;
  --mist:#eef1f6;
  --navy:#0d1d44;     /* Logo, Schrift */
  --night:#081230;    /* dunkle Kapitel */
  --slate:#4f5873;
  --rule:#d6dbe6;
  --signal:#2f4cff;
  --on-dark:#eef1f8;
  --dim-dark:rgba(238,241,248,.62);
  --line-dark:rgba(238,241,248,.16);
  --bad:#b4312b; --ok:#1d6b4a;
  --f-disp:'Michroma','Eurostile','Helvetica Neue',Arial,sans-serif;
  --f-body:'Schibsted Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --wrap:1320px; --pad:clamp(20px,4.5vw,56px);
  --ease:cubic-bezier(.65,0,.15,1);
  --hh:84px;
  --out:cubic-bezier(.16,1,.3,1);
  color-scheme:light;
}

/* ---------- Grundlagen ---------- */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--paper);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--slate);font:18px/1.65 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
::selection{background:var(--signal);color:#fff}
:focus-visible{outline:2px solid var(--signal);outline-offset:4px}
.ic{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.skip{position:absolute;left:16px;top:-60px;z-index:300;padding:10px 16px;background:var(--navy);color:#fff;transition:top .2s}
.skip:focus{top:12px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{max-width:calc(var(--wrap) + 2 * var(--pad));margin-inline:auto;padding-inline:var(--pad)}
main>section{position:relative}
.pad{padding-block:clamp(96px,11vw,180px)}
.pad-s{padding-block:clamp(64px,7vw,112px)}
.dark{background:var(--night);color:var(--dim-dark)}
.dark h1,.dark h2,.dark h3{color:var(--on-dark)}
.mistbg{background:var(--mist)}

/* ---------- Schrift ---------- */
h1,h2,h3,h4{margin:0;color:var(--navy);text-wrap:balance}
h1,h2,.disp{font-family:var(--f-disp);font-weight:400;letter-spacing:-.025em}
h1{font-size:clamp(30px,5vw,78px);line-height:1.08}
h2{font-size:clamp(26px,3.4vw,54px);line-height:1.12}
h3{font:600 21px/1.3 var(--f-body);letter-spacing:-.01em}
p{margin:0}
.lead{font-size:clamp(18px,1.45vw,21px);line-height:1.6;max-width:50ch}
.eyebrow{display:flex;align-items:center;gap:12px;font:600 13px/1.4 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--signal);flex:none}
.dark .eyebrow{color:var(--on-dark)}
.ph{color:#8a4b00;background:#fff3dc;box-shadow:0 0 0 3px #fff3dc;border-radius:2px}
/* Michroma hat nur eine Stärke; eine feine Kontur macht Titel so kräftig wie „BLNK“ im Logo */
h1,h2,.disp,.mega{-webkit-text-stroke:.026em currentColor;paint-order:stroke fill}
h3.disp,.svc-name,.case h3,.step h3,.mnav nav a,.ft-claim{-webkit-text-stroke:.016em currentColor}

/* Kopf eines Abschnitts: Titel links, Text rechts */
.sh{display:grid;gap:22px;margin-bottom:clamp(48px,6vw,96px)}
@media (min-width:980px){.sh.two{grid-template-columns:1.1fr .9fr;align-items:end;column-gap:64px}.sh.two .lead{justify-self:end}}

/* ---------- Buttons & Links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:0 30px;border:1.5px solid currentColor;border-radius:999px;background:transparent;color:var(--navy);font:600 16px var(--f-body);white-space:nowrap;position:relative;overflow:hidden;isolation:isolate;transition:color .45s var(--ease),border-color .45s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--navy);border-radius:inherit;clip-path:inset(50% 0 50% 0);transition:clip-path .5s var(--ease)}
.btn:hover{color:#fff;border-color:var(--navy)}
.btn:hover::before{clip-path:inset(0)}
.btn .ic{width:18px;height:18px;transition:transform .5s var(--ease)}
.btn:hover .ic{transform:translateX(4px)}
.btn.pri{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.pri::before{background:var(--signal)}
.btn.pri:hover{border-color:var(--signal)}
.btn.light{color:var(--on-dark);border-color:var(--line-dark)}
.btn.light::before{background:var(--on-dark)}
.btn.light:hover{color:var(--night);border-color:var(--on-dark)}
.btn.inv{background:var(--on-dark);border-color:var(--on-dark);color:var(--night)}
.btn.inv::before{background:var(--signal)}
.btn.inv:hover{color:#fff;border-color:var(--signal)}
.btn.sm{min-height:46px;padding:0 22px;font-size:15px}
.btn:disabled{opacity:.5;cursor:default}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.ulink{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--navy);padding-bottom:4px;background:linear-gradient(currentColor,currentColor) right bottom/100% 1.5px no-repeat;transition:background-size .6s var(--ease),color .3s}
.ulink .ic{width:17px;height:17px;transition:transform .5s var(--ease)}
.ulink:hover{color:var(--signal);animation:uline .9s var(--ease)}
.ulink:hover .ic{transform:translateX(5px)}
.ulink.ext:hover .ic{transform:translate(3px,-3px)}
@keyframes uline{0%{background-size:100% 1.5px;background-position:right bottom}45%{background-size:0 1.5px;background-position:right bottom}46%{background-position:left bottom}100%{background-size:100% 1.5px;background-position:left bottom}}
.dark .ulink{color:var(--on-dark)}
.chip{padding:10px 18px;border:1.5px solid var(--rule);border-radius:999px;background:#fff;color:var(--slate);font:500 15px var(--f-body);transition:all .3s var(--ease)}
.chip:hover{border-color:var(--navy);color:var(--navy)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.tags li,.tags span{font-size:13.5px;padding:4px 12px;border:1.5px solid var(--rule);border-radius:999px;color:var(--navy)}
.dark .tags li,.dark .tags span{border-color:var(--line-dark);color:var(--on-dark)}

/* ---------- Kopfzeile ---------- */
.hdr{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .4s,transform .5s var(--ease)}
.hdr.scrolled{border-bottom-color:var(--rule)}
.hdr.away{transform:translateY(-100%)}
.hdr-in{max-width:calc(var(--wrap) + 2 * var(--pad));margin:0 auto;padding:0 var(--pad);height:84px;display:flex;align-items:center;gap:40px;transition:height .4s var(--ease)}
.hdr.scrolled .hdr-in{height:70px}
.logo img{height:38px;width:auto}
.nav{display:none;gap:34px;margin-left:auto}
.nav a{position:relative;padding:6px 0;font:500 16px var(--f-body);color:var(--navy)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--signal);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a.cur::after{transform:scaleX(1);transform-origin:left}
.hdr .cta{display:none}
.burger{margin-left:auto;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--navy);display:grid;place-items:center}
.burger span,.burger span::before,.burger span::after{display:block;width:18px;height:1.5px;background:var(--navy);transition:transform .4s var(--ease),background .2s}
.burger span{position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-6px}.burger span::after{top:6px}
.open .burger span{background:transparent}
.open .burger span::before{transform:translateY(6px) rotate(45deg)}
.open .burger span::after{transform:translateY(-6px) rotate(-45deg)}
.mnav{position:fixed;inset:70px 0 0;z-index:75;background:var(--night);padding:28px var(--pad) 32px;display:grid;grid-template-rows:1fr auto;gap:24px;overflow:auto;animation:mopen .6s var(--ease)}
@keyframes mopen{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.mnav nav{display:grid;align-content:start}
.mnav nav a{padding:16px 0;border-bottom:1px solid var(--line-dark);font:400 clamp(22px,6.4vw,32px)/1.2 var(--f-disp);letter-spacing:-.02em;color:var(--on-dark);opacity:0;transform:translateY(16px);animation:mitem .6s var(--out) forwards;animation-delay:calc(.12s + var(--i,0) * .05s)}
@keyframes mitem{to{opacity:1;transform:none}}
.mnav nav a.cur{color:#8fa0ff}
.mnav .btn{justify-self:stretch}
body.menu-open{overflow:hidden}
@media (min-width:940px){.nav{display:flex}.hdr .cta{display:inline-flex}.burger{display:none}.mnav{display:none!important}}
@media (max-width:620px){:root{--hh:70px}.hdr-in{height:70px}.logo img{height:31px}}

/* Logo in der Kopfzeile: Punkte sammeln sich beim ersten Besuch, dann entsteht das Logo */
.logo{position:relative;display:block}
.logo img{position:relative}
.logo-dots{position:absolute;left:-60px;top:-24px;width:calc(100% + 120px);height:calc(100% + 48px);pointer-events:none;opacity:0}
.logo.intro img{opacity:0}
.logo.intro .logo-dots{opacity:1}
.logo.landed img{animation:logoIn .8s ease forwards}
.logo.landed .logo-dots{animation:dotsOut .8s ease .15s forwards;opacity:1}
@keyframes logoIn{from{opacity:0}to{opacity:1}}
@keyframes dotsOut{to{opacity:0}}

/* ---------- Zeilen-Masken für Überschriften ---------- */
.ln{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.ln>span{display:inline-block}
.js .lines .ln>span{transform:translateY(112%);animation:lnUp 1.1s var(--out) forwards;animation-delay:calc(.2s + var(--i,0) * .09s)}
.js .lines:not(.ready){opacity:0}
@keyframes lnUp{to{transform:none}}
.js .lines-io .ln>span{transform:translateY(112%);transition:transform 1.1s var(--out);transition-delay:calc(var(--i,0) * .08s)}
.js .lines-io.in .ln>span{transform:none}
.fade-in{opacity:0;animation:fadeUp 1s var(--out) forwards;animation-delay:var(--d,.7s)}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* =====================================================================
   1 · Startbereich: Überschrift, Punktefeld und die Blende, die sich öffnet
   ===================================================================== */
.opener{height:240vh;background:var(--paper);margin-top:calc(-1 * var(--hh))}
.intro-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;isolation:isolate}
.field{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero-c{position:relative;height:100%;display:grid;grid-template-rows:auto 1fr auto;padding-block:calc(var(--hh) + clamp(20px,6vh,72px)) clamp(28px,5vh,52px)}
.hero-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px}
.hero-meta ul{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding:0;list-style:none;font:500 15px var(--f-body);color:var(--navy)}
.hero-meta li{display:flex;align-items:center;gap:22px}
.hero-meta li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--rule);margin-left:-22px;margin-right:0;position:relative;left:-9px}
.mega{align-self:center;margin:0;font:400 clamp(30px,7.3vw,140px)/1.02 var(--f-disp);letter-spacing:-.035em;color:var(--navy)}
.mega .row{display:block;will-change:transform}
.mega .row:nth-child(2){padding-left:8vw}
.mega .row:nth-child(3){text-align:right}
.mega .blue{color:var(--signal)}
.hero-foot{display:grid;gap:28px;align-items:end}
@media (min-width:900px){.hero-foot{grid-template-columns:1fr auto}}
.hero-foot .lead{max-width:46ch;color:var(--slate)}
.scroll-hint{display:none;align-items:center;gap:12px;font:500 14px var(--f-body);color:var(--slate)}
.scroll-hint i{position:relative;width:1.5px;height:44px;background:var(--rule);overflow:hidden}
.scroll-hint i::after{content:"";position:absolute;left:0;top:0;width:100%;height:40%;background:var(--navy);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-100%)}100%{transform:translateY(260%)}}
@media (min-width:900px){.scroll-hint{display:flex}}

/* Die Blende: ein Augenschlitz, der sich beim Scrollen öffnet */
.eye{position:absolute;inset:0;z-index:2;background:var(--night);color:var(--on-dark);clip-path:ellipse(0% 0% at 50% 52%);display:grid;place-items:center;padding:0 var(--pad);will-change:clip-path}
.eye-in{max-width:calc(var(--wrap));width:100%;display:grid;gap:clamp(28px,4vh,48px);will-change:transform}
.eye .eyebrow{color:var(--on-dark)}
.words{font:400 clamp(22px,3.3vw,54px)/1.28 var(--f-disp);letter-spacing:-.025em;color:var(--on-dark);max-width:24ch;-webkit-text-stroke:.012em currentColor}
.words .wd{opacity:.18;transition:opacity .4s linear}
.words .wd.on{opacity:1}
.words em{font-style:normal;color:#8fa0ff}
.eye-lash{position:absolute;left:50%;top:52%;width:min(64vw,860px);height:2px;border-radius:2px;background:var(--signal);transform:translate(-50%,-50%) scaleX(0);transform-origin:center;z-index:1;pointer-events:none}

/* Kennzahlen ohne Zahlen: drei Versprechen */
.promise-band{border-top:1px solid var(--line-dark)}
.promise-band dl{display:grid;margin:0}
.promise-band dl>div{display:grid;gap:10px;padding:34px 0;border-bottom:1px solid var(--line-dark)}
@media (min-width:860px){.promise-band dl{grid-template-columns:repeat(3,1fr)}.promise-band dl>div{border-bottom:0;padding:44px 40px 44px 0}.promise-band dl>div+div{border-left:1px solid var(--line-dark);padding-left:40px}}
.promise-band dt{font:400 clamp(17px,1.5vw,22px)/1.3 var(--f-disp);letter-spacing:-.02em;color:var(--on-dark);-webkit-text-stroke:.014em currentColor}
.promise-band dd{margin:0;font-size:16.5px}

/* =====================================================================
   2 · Leistungen: große Schrift links, feststehende Vorschau rechts
   ===================================================================== */
.svc{display:grid;gap:0}
@media (min-width:1040px){.svc{grid-template-columns:1.05fr .95fr;column-gap:clamp(40px,5vw,96px);align-items:start}}
.svc-list{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--navy)}
.svc-list>li{border-bottom:1px solid var(--rule)}
.svc-item{display:grid;gap:14px;padding:clamp(26px,3.2vw,44px) 0;position:relative}
.svc-name{display:flex;align-items:baseline;gap:18px;font:400 clamp(26px,3.9vw,62px)/1.08 var(--f-disp);letter-spacing:-.03em;color:var(--navy);transition:color .5s var(--ease),letter-spacing .7s var(--out),transform .7s var(--out)}
.svc-name .ic{width:.5em;height:.5em;stroke-width:1.4;opacity:0;transform:translate(-10px,0);transition:all .6s var(--out)}
.svc-sub{font:600 13px/1.4 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.svc-txt{max-width:46ch;font-size:17px;display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.svc-txt>span{overflow:hidden}
.svc-item .ulink{justify-self:start;opacity:0;transition:opacity .5s}
.svc-vis-m{display:none}
@media (min-width:1040px){
  .svc-list>li:not(.on) .svc-name{color:#a9b1c6}
  .svc-list>li.on .svc-name{letter-spacing:-.015em;transform:translateX(10px)}
  .svc-list>li.on .svc-name .ic{opacity:1;transform:none}
  .svc-list>li.on .svc-txt{grid-template-rows:1fr}
  .svc-list>li.on .ulink{opacity:1}
  .svc-list>li .svc-name:hover{color:var(--navy)}
}
@media (max-width:1039px){
  .svc-txt{grid-template-rows:1fr}
  .svc-item .ulink{opacity:1}
  .svc-vis-m{display:block;position:relative;inset:auto;margin-top:10px;border-radius:12px;overflow:hidden;aspect-ratio:16/11}
  .svc-stage{display:none}
  .svc-vis-m.vis{position:relative;inset:auto;aspect-ratio:auto;padding:7% 8%}
  .svc-vis-m img{width:100%;height:auto}
  .svc-vis-m .frm,.svc-vis-m .plate{position:relative!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;width:100%!important;transform:none!important}
}
.svc-stage{position:sticky;top:110px;height:min(72vh,640px);border-radius:16px;overflow:hidden;background:var(--mist)}
.stage-item{position:absolute;inset:0;clip-path:inset(50% 0 50% 0);transition:clip-path .9s var(--ease);will-change:clip-path}
.stage-item.on{clip-path:inset(0);z-index:1}
.stage-item.was{clip-path:inset(0);z-index:0}
.stage-cap{position:absolute;left:24px;bottom:22px;z-index:3;display:flex;align-items:center;gap:10px;font:600 12.5px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);background:rgba(255,255,255,.86);padding:8px 14px;border-radius:999px}
.stage-cap i{width:7px;height:7px;border-radius:50%;background:var(--signal)}

/* Kompositionen in der Vorschau, aus echten Projekten gebaut */
.vis{position:absolute;inset:0;overflow:hidden}
.vis .frm{position:absolute;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 40px 80px -40px rgba(8,18,48,.45);border:1px solid rgba(13,29,68,.08)}
.vis .frm .bar{display:flex;align-items:center;gap:5px;height:24px;padding:0 10px;background:#f3f5f9;border-bottom:1px solid var(--rule)}
.vis .frm .bar i{width:7px;height:7px;border-radius:50%;background:var(--rule)}
.vis .frm img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.v-web{background:linear-gradient(160deg,#e9edf5,#dfe5f0)}
.v-web .f1{left:8%;top:12%;width:74%;transform:rotate(-2deg)}
.v-web .f2{right:6%;bottom:9%;width:48%;transform:rotate(3deg)}
.v-brand{background:#07111f}
.v-brand .plate{position:absolute;border-radius:10px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.v-brand .p1{left:7%;top:10%;width:62%}
.v-brand .p2{right:7%;bottom:10%;width:56%;border:1px solid rgba(255,255,255,.1)}
.v-brand .sw{position:absolute;right:9%;top:13%;display:grid;gap:10px}
.v-brand .sw i{width:30px;height:30px;border-radius:50%;display:block;border:1px solid rgba(255,255,255,.2)}
.v-seo{background:var(--paper);display:grid;place-items:center}
.serp{width:78%;display:grid;gap:16px}
.serp-q{display:flex;align-items:center;gap:12px;padding:16px 20px;border:1.5px solid var(--rule);border-radius:999px;font:500 17px var(--f-body);color:var(--navy)}
.serp-q .ic{width:18px;height:18px;color:var(--slate)}
.serp-q b{font-weight:500}
.serp-q b::after{content:"";display:inline-block;width:1.5px;height:1.1em;background:var(--signal);margin-left:2px;vertical-align:-3px;animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.serp-r{display:grid;gap:7px;padding:16px 20px;border-radius:12px}
.serp-r.top{background:var(--mist);outline:1.5px solid var(--signal);outline-offset:-1.5px}
.serp-r small{font:500 13px var(--f-body);color:var(--slate)}
.serp-r strong{font:600 17px var(--f-body);color:var(--navy)}
.serp-r span{height:8px;border-radius:4px;background:var(--rule);width:92%}
.serp-r span+span{width:66%}
.serp-note{font-size:13px;color:var(--slate);text-align:right}
.v-soc{background:linear-gradient(160deg,#0d1d44,#081230);display:grid;place-items:center}
.phone{width:44%;aspect-ratio:9/18.5;border-radius:34px;background:#fff;padding:12px;box-shadow:0 50px 90px -40px rgba(0,0,0,.7);display:grid;grid-template-rows:auto 1fr;gap:10px}
.phone-h{display:flex;align-items:center;gap:8px;padding:6px 6px 0}
.phone-h i{width:26px;height:26px;border-radius:50%;background:var(--navy)}
.phone-h span{height:8px;width:40%;border-radius:4px;background:var(--rule)}
.phone-g{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;align-content:start}
.phone-g i{aspect-ratio:1;border-radius:4px;background:var(--mist)}
.phone-g i:nth-child(3n+1){background:#dfe5f0}
.phone-g i:nth-child(4){background:var(--navy)}
.phone-g i:nth-child(8){background:var(--signal)}
.phone-g i:nth-child(6){background:#c9d2e6}
.phone-g i.img{background-size:cover;background-position:center top}
.v-soft{background:#06100b}
.v-soft .f1{left:6%;top:11%;width:88%}

/* =====================================================================
   3 · Projekte als Fallbeispiele: Bilder öffnen sich wie ein Auge
   ===================================================================== */
.cases{display:grid;gap:clamp(96px,12vw,180px)}
.case{display:grid;gap:clamp(28px,3.5vw,48px)}
.case-media{position:relative;display:block;border-radius:14px;overflow:hidden;perspective:1400px;--c:0;--t:0}
.case-media .shot{display:block;transform-origin:50% 100%;transform:rotateX(calc(var(--t) * 14deg)) scale(calc(1 - var(--t) * .08));clip-path:inset(calc(var(--c) * 34%) calc(var(--c) * 18%) round 14px);will-change:transform,clip-path}
.case-media img{width:100%;height:auto;aspect-ratio:16/9.4;object-fit:cover;object-position:top;transform:scale(calc(1.08 + var(--c) * .25));transition:transform 1.4s var(--out)}
.case-media:hover img{transform:scale(1.02)}
.case-media .bar{display:flex;align-items:center;gap:6px;height:34px;padding:0 16px;background:#f3f5f9;border-bottom:1px solid var(--rule)}
.case-media .bar i{width:9px;height:9px;border-radius:50%;background:var(--rule)}
.case-media .bar em{margin-left:12px;font:500 12.5px var(--f-body);font-style:normal;color:var(--slate)}
.case-body{display:grid;gap:28px}
@media (min-width:980px){.case-body{grid-template-columns:.9fr 1.1fr;column-gap:72px;align-items:start}}
.case-title{display:grid;gap:16px;align-content:start}
.case h3{font:400 clamp(24px,2.6vw,40px)/1.15 var(--f-disp);letter-spacing:-.025em;color:var(--navy)}
.case-facts{margin:0;display:grid;border-top:1.5px solid var(--navy)}
.case-facts>div{display:grid;gap:6px;padding:18px 0;border-bottom:1px solid var(--rule)}
@media (min-width:640px){.case-facts>div{grid-template-columns:150px 1fr;gap:24px}}
.case-facts dt{font:600 13px/1.6 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.case-facts dd{margin:0;font-size:17px}
@media (min-width:980px){
  .case.wide .case-media{margin-inline:calc(-1 * min(var(--pad),40px))}
  .case.left{width:86%}
  .case.right{width:86%;justify-self:end}
}
.logo-pair{display:grid;gap:clamp(28px,4vw,56px)}
@media (min-width:820px){.logo-pair{grid-template-columns:1fr 1fr}.logo-pair>.case:nth-child(2){margin-top:clamp(60px,9vw,140px)}}
.logo-pair .case-media img{aspect-ratio:16/10;object-position:center}
.logo-pair .case-media{box-shadow:inset 0 0 0 1px var(--rule)}
.logo-pair .case-media .shot{border:1px solid var(--rule);border-radius:14px;overflow:hidden}
.logo-pair .case-facts>div{grid-template-columns:1fr;gap:4px}

/* =====================================================================
   4 · Ablauf: am Desktop horizontal, sonst untereinander
   ===================================================================== */
.process{position:relative}
.proc-pin{padding-block:clamp(96px,11vw,160px)}
.proc-track{display:grid;gap:0;list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark)}
.step{display:grid;gap:16px;padding:36px 0;border-bottom:1px solid var(--line-dark)}
.step h3{font:400 clamp(24px,3vw,44px)/1.1 var(--f-disp);letter-spacing:-.025em;color:var(--on-dark)}
.step p{max-width:36ch;font-size:17px}
.step small{font:600 12.5px var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:#8fa0ff}
.proc-bar{display:none}
@media (min-width:1040px){
  .process.h{height:var(--ph,320vh)}
  .process.h .proc-pin{position:sticky;top:0;height:100vh;padding:0;display:grid;grid-template-rows:auto 1fr auto;padding-block:clamp(100px,14vh,150px) clamp(36px,6vh,64px);overflow:hidden}
  .process.h .proc-track{display:flex;width:max-content;border-top:0;will-change:transform;align-self:center}
  .process.h .step{width:min(32vw,480px);min-height:46vh;align-content:end;padding:0 clamp(40px,4vw,72px) 0 0;margin-right:clamp(40px,4vw,72px);border-bottom:0;border-right:1px solid var(--line-dark)}
  .process.h .step:last-child{border-right:0}
  .process.h .step h3{font-size:clamp(34px,3.3vw,56px)}
  .process.h .proc-bar{display:block;height:1.5px;background:var(--line-dark);position:relative}
  .process.h .proc-bar i{position:absolute;inset:0;background:var(--on-dark);transform:scaleX(var(--p,0));transform-origin:left}
}

/* =====================================================================
   5 · Über uns (Teaser) und Kontakt-Finale
   ===================================================================== */
.about-t{display:grid;gap:clamp(36px,5vw,80px)}
@media (min-width:980px){.about-t{grid-template-columns:.8fr 1.2fr;align-items:center}}
.portrait{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:var(--mist);display:grid;place-items:center;text-align:center;padding:24px}
.portrait canvas{position:absolute;inset:0;width:100%;height:100%}
.portrait span{position:relative;font:500 15px var(--f-body);color:var(--slate);max-width:24ch}
.about-t .txt{display:grid;gap:26px;justify-items:start}
.about-t h2{max-width:16ch}

.finale{overflow:hidden}
.finale-in{display:grid;gap:clamp(40px,5vw,72px);padding-block:clamp(110px,13vw,200px) clamp(56px,6vw,88px)}
.finale .big{display:block;font:400 clamp(30px,5.6vw,92px)/1 var(--f-disp);letter-spacing:-.045em;color:var(--on-dark);-webkit-text-stroke:.024em currentColor}
.finale .big .ln>span{transition:transform .9s var(--out),color .5s}
.finale .big a{display:inline-block;position:relative}
.finale .big a:hover{color:#8fa0ff}
.finale .big a .ic{width:.42em;height:.42em;stroke-width:1.2;transition:transform .7s var(--out);vertical-align:.08em}
.finale .big a:hover .ic{transform:translateX(.12em) rotate(-45deg)}
.finale-row{display:grid;gap:28px;align-items:end;border-top:1px solid var(--line-dark);padding-top:clamp(28px,3vw,40px)}
@media (min-width:900px){.finale-row{grid-template-columns:1.2fr 1fr auto}}
.finale-row .lead{color:var(--dim-dark)}
.mailbig{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.mailbig a{font:500 clamp(19px,1.8vw,26px) var(--f-body);color:var(--on-dark);background:linear-gradient(currentColor,currentColor) left bottom/100% 1.5px no-repeat;padding-bottom:3px}
.mailbig a:hover{color:#8fa0ff}
.copy{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--rule);font:500 14px var(--f-body);color:var(--navy);transition:border-color .3s,background .3s,color .3s}
.copy em{font-style:normal}.copy .ic{width:15px;height:15px}
.copy:hover{border-color:var(--navy)}
.copy.done{background:var(--navy);border-color:var(--navy);color:#fff}
.dark .copy{border-color:var(--line-dark);color:var(--on-dark)}
.dark .copy:hover{border-color:var(--on-dark)}
.dark .copy.done{background:var(--on-dark);color:var(--night)}

/* ---------- Häufige Fragen ---------- */
.faq{display:grid;gap:clamp(32px,4vw,64px)}
@media (min-width:980px){.faq{grid-template-columns:5fr 7fr;align-items:start}.faq>h2{position:sticky;top:120px}}
.faq-l{border-top:1.5px solid var(--navy)}
.faq-l details{border-bottom:1px solid var(--rule)}
.faq-l summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font:600 clamp(18px,1.5vw,21px)/1.35 var(--f-body);color:var(--navy)}
.faq-l summary::-webkit-details-marker{display:none}
.pm{flex:none;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--rule);display:grid;place-items:center;transition:transform .5s var(--ease),background .3s,border-color .3s,color .3s}
.pm .ic{width:16px;height:16px;stroke-width:2}
.faq-l summary:hover .pm{border-color:var(--navy)}
.faq-l details[open] .pm{transform:rotate(135deg);background:var(--navy);border-color:var(--navy);color:#fff}
.faq-l details p{padding:0 64px 28px 0;max-width:62ch}
@media (max-width:560px){.faq-l details p{padding-right:0}}

/* =====================================================================
   Unterseiten
   ===================================================================== */
.phero{padding-block:clamp(64px,9vw,140px) clamp(56px,7vw,110px);overflow:hidden;isolation:isolate}
.phero-in{display:grid;gap:30px;position:relative}
.phero h1{font-size:clamp(32px,6vw,104px);line-height:1.02;letter-spacing:-.035em;max-width:15ch}
.phero .lead{max-width:56ch}
.phero-line{height:1.5px;background:var(--rule);position:relative;overflow:hidden;margin-top:12px}
.phero-line::after{content:"";position:absolute;inset:0;background:var(--navy);transform:scaleX(0);transform-origin:left;animation:lineIn 1.6s var(--ease) .5s forwards}
@keyframes lineIn{to{transform:scaleX(1)}}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:15px;color:var(--slate)}
.crumbs a{color:var(--navy);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--rule)}
.crumbs a:hover{text-decoration-color:var(--navy)}
.crumbs span::before{content:"/";margin-right:8px;color:var(--rule)}
.phero .field{-webkit-mask-image:linear-gradient(100deg,transparent 35%,#000 85%);mask-image:linear-gradient(100deg,transparent 35%,#000 85%);opacity:.9}

/* Leistungsübersicht */
.svc-rows{display:grid;border-top:1.5px solid var(--navy)}
.svc-row{display:grid;gap:28px;padding-block:clamp(40px,5vw,72px);border-bottom:1px solid var(--rule)}
@media (min-width:900px){.svc-row{grid-template-columns:1.15fr .85fr;column-gap:72px}}
.row-main{display:grid;gap:18px;justify-items:start}
.svc-row h2{font-size:clamp(28px,3.4vw,52px)}
.checks{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.checks li{display:flex;align-items:center;gap:12px;color:var(--navy);font-weight:500}
.checks li .ic{width:18px;height:18px;color:var(--signal);stroke-width:2.2}
.side{display:grid;gap:22px;align-content:start}
.for{border-left:2px solid var(--navy);padding:4px 0 4px 22px}
.for small{font-size:14px;color:var(--slate)}
.for p{color:var(--navy);font-size:19px;line-height:1.5;margin-top:6px}
.side .btn{justify-self:start}

.grid3{display:grid;border-top:1.5px solid var(--navy)}
@media (min-width:760px){.grid3{grid-template-columns:repeat(2,1fr);column-gap:56px}}
@media (min-width:1080px){.grid3{grid-template-columns:repeat(3,1fr)}}
.feat{display:grid;gap:10px;align-content:start;padding:30px 0 34px;border-bottom:1px solid var(--rule)}
.feat h3{display:flex;align-items:center;gap:12px;font:400 clamp(15px,1.2vw,17px)/1.35 var(--f-disp);letter-spacing:-.02em;-webkit-text-stroke:.016em currentColor}
.feat h3 .ic{width:22px;height:22px;color:var(--signal);stroke-width:1.8}
.feat p{font-size:16.5px}

/* Über uns */
.person{display:grid;gap:32px;align-items:center}
@media (min-width:760px){.person{grid-template-columns:auto 1fr}}
.avatar{width:160px;height:160px;border-radius:50%;display:grid;place-items:center;background:var(--mist);color:var(--navy);font:400 26px var(--f-disp);letter-spacing:-.02em}
.person small{font-size:15px;color:var(--slate)}
.person h3{font:400 clamp(19px,1.8vw,26px)/1.3 var(--f-disp);letter-spacing:-.02em;margin-top:6px}
.person p{margin-top:12px;max-width:60ch}

/* Rechtliches */
.legal-page{display:grid;gap:14px;max-width:900px}
.legal-page h1{font-size:clamp(30px,4vw,60px);margin-bottom:10px}
.legal-page h2{font:600 21px var(--f-body);letter-spacing:-.01em;margin-top:26px;-webkit-text-stroke:0}
.legal-page .note{font-size:15px}
.legal-page dl{display:grid;grid-template-columns:minmax(0,230px) 1fr;gap:14px 24px;margin:16px 0 0;padding:24px 0;border-block:1.5px solid var(--navy)}
.legal-page dt{font-weight:600;font-size:15.5px;color:var(--navy)}
.legal-page dd{margin:0;overflow-wrap:anywhere}
@media (max-width:560px){.legal-page dl{grid-template-columns:1fr;gap:2px}.legal-page dd{margin-bottom:12px}}
.wip p{max-width:56ch}
.wip a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.wip-badge{display:inline-flex;align-items:center;gap:10px;justify-self:start;margin:6px 0 10px;padding:8px 16px;border:1.5px solid var(--rule);border-radius:999px;font-weight:600;color:var(--navy)}
.wip-badge i{width:8px;height:8px;border-radius:50%;background:var(--signal);animation:wipPulse 1.6s ease-in-out infinite}
@keyframes wipPulse{0%,100%{opacity:1}50%{opacity:.25}}

/* 404 */
.nf{min-height:70vh;display:grid;place-items:center;text-align:center;padding-block:80px}
.nf .nf-code{display:block;font:400 clamp(90px,18vw,260px)/1 var(--f-disp);letter-spacing:-.04em;color:var(--navy);-webkit-text-stroke:.026em currentColor}
.nf .nf-code i{font-style:normal;display:inline-block;animation:nfBlink 4.5s var(--ease) infinite;transform-origin:50% 55%}
@keyframes nfBlink{0%,88%,100%{transform:scaleY(1)}93%{transform:scaleY(.06)}}

/* ---------- Kontakt ---------- */
.ct{display:grid;gap:clamp(40px,5vw,80px)}
@media (min-width:1000px){.ct{grid-template-columns:.9fr 1.1fr;align-items:start}}
.ct-l{display:grid;gap:40px;align-content:start}
.ct-l h1{font-size:clamp(32px,4.6vw,76px);line-height:1.04}
.dl{display:grid;border-top:1.5px solid var(--navy)}
.dl-r{display:grid;grid-template-columns:28px 1fr auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--rule)}
.dl-r>div{display:grid;gap:2px;min-width:0}
.ci{color:var(--signal)}
.ci .ic{width:22px;height:22px}
.dl small{font-size:14px;color:var(--slate)}
.dl-r>div>a,.dl-r>div>span{font:500 clamp(17px,1.5vw,20px) var(--f-body);color:var(--navy);overflow-wrap:anywhere}
.dl-r>div>a:hover{color:var(--signal)}
.dl .booking-cta{margin-top:22px;justify-self:start}
.ct-f{display:grid;gap:30px}
.frow{display:grid;gap:30px}
@media (min-width:620px){.frow{grid-template-columns:1fr 1fr}}
.fl{display:grid;gap:4px;font:500 15px var(--f-body);color:var(--slate)}
.fl input,.fl textarea{width:100%;padding:10px 0 12px;border:0;border-bottom:1.5px solid var(--rule);border-radius:0;background:transparent;color:var(--navy);font:500 20px var(--f-body);transition:border-color .3s}
.fl textarea{min-height:120px;resize:vertical}
.fl input:focus,.fl textarea:focus{outline:none;border-bottom-color:var(--signal)}
.fl input::placeholder,.fl textarea::placeholder{color:#a7aec0;font-weight:400}
.fl.err input{border-bottom-color:var(--bad)}
.opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fout{font-size:16px;padding:14px 0 14px 18px;border-left:2px solid var(--ok);color:var(--ok)}
.fout.e{border-left-color:var(--bad);color:var(--bad)}
.fout:empty{display:none}
.send{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px}
.send small{max-width:38ch;font-size:14px}
.lnk{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.sent-pulse{animation:sentP .7s var(--out)}
@keyframes sentP{0%{transform:scale(1)}40%{transform:scale(.96)}100%{transform:scale(1)}}

/* ---------- Fußzeile (dunkel, schließt an das Finale an) ---------- */
.ft{background:var(--night);color:var(--dim-dark)}
.ft-in{max-width:calc(var(--wrap) + 2 * var(--pad));margin:0 auto;padding:clamp(56px,6vw,88px) var(--pad) 28px;border-top:1px solid var(--line-dark)}
.ft-grid{display:grid;gap:36px;padding-bottom:clamp(40px,5vw,72px)}
@media (min-width:900px){.ft-grid{grid-template-columns:1.6fr 1fr 1fr 1.2fr}}
.ft-claim{font:400 clamp(16px,1.4vw,20px)/1.45 var(--f-disp);letter-spacing:-.02em;color:var(--on-dark);max-width:22ch}
.ft h4{margin:0 0 14px;font:600 13px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark)}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:16px}
.ft a{transition:color .3s}
.ft a:hover{color:var(--on-dark)}
.legal{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;font-size:14.5px;padding-top:24px;border-top:1px solid var(--line-dark)}
.legal>span:last-child{display:flex;gap:24px}

/* ---------- Einblenden ---------- */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity 1s var(--out),transform 1.2s var(--out);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.rule-draw{position:relative;border-top-color:transparent!important}
.rule-draw::before{content:"";position:absolute;left:0;right:0;top:-1.5px;height:1.5px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform 1.3s var(--ease)}
.dark .rule-draw::before{background:var(--on-dark)}
.rule-draw.in::before{transform:scaleX(1)}

/* ---------- Seitenwechsel: zwei Lider schließen und öffnen sich ---------- */
.blinker{position:fixed;inset:0;z-index:250;pointer-events:none}
.blinker i{position:absolute;left:0;right:0;height:50.5%;background:var(--night);transform:scaleY(0);transition:transform .36s cubic-bezier(.7,0,.3,1)}
.blinker i:first-child{top:0;transform-origin:top}
.blinker i:last-child{bottom:0;transform-origin:bottom}
.blinker.closed i,.nav-in .blinker i{transform:scaleY(1)}
.nav-in .blinker.opening i{transform:scaleY(0)}

/* ---------- Cursor (nur Maus) ---------- */
.cur-ring{position:fixed;left:0;top:0;z-index:240;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;border:1.5px solid var(--navy);pointer-events:none;display:grid;place-items:center;opacity:0;transition:width .45s var(--out),height .45s var(--out),margin .45s var(--out),background .35s,border-color .35s,opacity .3s;mix-blend-mode:normal}
.cur-ring b{font:600 12px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .25s}
.cur-on .cur-ring{opacity:1}
.cur-ring.hov{width:58px;height:58px;margin:-29px 0 0 -29px;border-color:var(--signal)}
.cur-ring.lab{width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--signal);border-color:var(--signal)}
.cur-ring.lab b{opacity:1}
.cur-ring.on-dark{border-color:var(--on-dark)}
.cur-ring.down{transform:scale(.82)}
@media (hover:none),(pointer:coarse){.cur-ring{display:none}}

.mag{transition:transform .55s cubic-bezier(.2,.9,.3,1.25),color .45s var(--ease),border-color .45s}

/* ---------- Handy ---------- */
@media (max-width:560px){
  .btn{white-space:normal;text-align:center;line-height:1.3;padding-block:12px}
  .ctas .btn{flex:1 1 100%}
  .mega .row:nth-child(2){padding-left:0}
  .mega{font-size:min(8.9vw,44px)}
  .hero-meta ul:last-child{display:none}
}
@media (max-width:899px){
  .opener{height:200vh}
}


/* =====================================================================
   Mehr Bewegung: Gewerke, Probleme, Vorhänge, Punkt-Auge, Hero-Motive, Stapel
   ===================================================================== */
.pad-t{padding-top:clamp(96px,11vw,180px);padding-bottom:clamp(64px,7vw,110px)}

/* Gewerke-Laufband: Tempo und Richtung folgen dem Scrollen */
.trades{display:grid;gap:clamp(6px,1vw,14px);margin-block:clamp(8px,2vw,24px) clamp(56px,7vw,110px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.trade-row{overflow:hidden;white-space:nowrap}
.trade-track{display:inline-flex;will-change:transform}
.trade-track span{display:inline-flex;align-items:center;gap:clamp(18px,2.4vw,40px);padding-right:clamp(18px,2.4vw,40px);font:400 clamp(34px,6.4vw,112px)/1.1 var(--f-disp);letter-spacing:-.035em;color:var(--navy);-webkit-text-stroke:.022em currentColor;transition:color .4s}
.trade-track span::after{content:"";width:.18em;height:.18em;border-radius:50%;background:var(--signal);flex:none}
.trade-row.out .trade-track span{color:transparent;-webkit-text-stroke:1.5px var(--navy)}
.trade-row.out .trade-track span::after{background:transparent;box-shadow:inset 0 0 0 1.5px var(--navy)}
@media (hover:hover){.trade-row:not(.out) .trade-track span:hover{color:var(--signal)}}

/* Probleme werden beim Scrollen durchgestrichen, die Lösung erscheint */
.pains{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--navy)}
.pains li{display:grid;gap:14px 64px;padding:clamp(28px,3.4vw,48px) 0;border-bottom:1px solid var(--rule)}
@media (min-width:900px){.pains li{grid-template-columns:1.15fr .85fr;align-items:center}}
.pain{font:400 clamp(22px,2.7vw,42px)/1.15 var(--f-disp);letter-spacing:-.025em;color:var(--navy);-webkit-text-stroke:.016em currentColor}
.pain span{background:linear-gradient(var(--signal),var(--signal)) 0 58%/0 3px no-repeat;transition:background-size 1.1s var(--ease) .15s,color .8s .5s;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.pains li.in .pain span{background-size:100% 3px;color:#9aa3ba}
.fix{display:grid;gap:6px;font-size:17px;max-width:44ch;opacity:0;transform:translateX(30px);transition:opacity .9s var(--out) .65s,transform 1.1s var(--out) .65s}
.fix b{font:600 13px/1.5 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--signal)}
.pains li.in .fix{opacity:1;transform:none}
@media (max-width:899px){.fix{transform:translateY(16px)}}

/* Dunkle Kapitel öffnen sich beim Hineinscrollen wie ein Vorhang */
.curtain{clip-path:inset(0 calc(var(--cv,0) * 4.5%) round calc(var(--cv,0) * 36px));will-change:clip-path}
.curtain>*{transform:translateY(calc(var(--cv,0) * 60px));transition:none}

/* Abschluss: Punkt-Auge folgt der Maus und blinzelt */
.finale-top{display:grid;gap:clamp(32px,4vw,64px);align-items:center}
@media (min-width:980px){.finale-top{grid-template-columns:1.35fr .65fr}}
.finale-copy{display:grid;gap:clamp(28px,3vw,44px)}
.eye-dots{width:100%;aspect-ratio:1.6;display:block;max-width:560px;justify-self:end}
@media (max-width:979px){.eye-dots{max-width:360px;justify-self:start;order:-1}}
.finale .big .ch{display:inline-block;transition:transform .5s var(--out),color .4s}
.finale .big a:hover .ch{color:#8fa0ff}

/* Unterseiten: großes Hintergrundwort und Motiv rechts */
.ghost{position:absolute;right:-.06em;bottom:-.16em;z-index:-1;font:400 clamp(90px,19vw,340px)/1 var(--f-disp);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px #dfe4ee;white-space:nowrap;pointer-events:none;will-change:transform}
.ghost:empty{display:none}
.phero-slot{display:contents}
.js .phero-slot>.ctas{opacity:0;animation:fadeUp 1s var(--out) .9s forwards}
/* Referenzen: Projekte stapeln sich beim Scrollen */
@media (min-width:1040px){
  .stack .cases{gap:0}
  .stack .cases>.case{position:sticky;top:96px;background:var(--paper);padding:clamp(24px,2.4vw,40px);border-radius:20px;border:1px solid var(--rule);box-shadow:0 -30px 60px -50px rgba(8,18,48,.35);margin-bottom:12vh;grid-template-columns:1.25fr .75fr;align-items:start;transform-origin:50% 0;will-change:transform}
  .stack .cases>.case.left,.stack .cases>.case.right{width:auto}
  .stack .cases>.case .case-media{margin:0}
  .stack .cases>.case .case-body{grid-template-columns:1fr;gap:20px}
  .stack .case-facts>div{grid-template-columns:1fr;gap:4px;padding:12px 0}
  .stack .case-facts dd{font-size:15.5px}
  .stack .case h3{font-size:clamp(22px,2vw,30px)}
}

/* Symbole zeichnen sich beim Einblenden */
.feat h3 .ic{stroke-dasharray:90;stroke-dashoffset:90;transition:stroke-dashoffset 1.6s var(--ease) .2s}
.feat.in h3 .ic,.grid3.in .feat h3 .ic{stroke-dashoffset:0}
.grid3 .feat{transition:transform .6s var(--out)}
.grid3 .feat:hover{transform:translateY(-4px)}
.grid3.in .feat{animation:featIn .9s var(--out) both;animation-delay:calc(var(--k,0) * .08s)}
@keyframes featIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.js .grid3:not(.in) .feat{opacity:0}

/* Fragen öffnen sich weich */
.faq-l details .ans{overflow:hidden}

/* Formular: Erfolg mit Haken */
.fout.okk::before{content:"";display:inline-block;width:18px;height:10px;border-left:2.4px solid currentColor;border-bottom:2.4px solid currentColor;transform:rotate(-45deg) scale(0);margin-right:12px;vertical-align:3px;animation:okTick .6s var(--out) .1s forwards}
@keyframes okTick{to{transform:rotate(-45deg) scale(1)}}
.fl{position:relative}
.fl input,.fl textarea{background:linear-gradient(var(--signal),var(--signal)) left bottom/0 1.5px no-repeat;transition:background-size .6s var(--ease),border-color .3s}
.fl input:focus,.fl textarea:focus{background-size:100% 1.5px}

/* Wörter, die beim Scrollen aufleuchten (Unterseiten) */
.dark .words.wscroll{max-width:26ch}

@media (prefers-reduced-motion:reduce){
  .curtain{clip-path:none}.curtain>*{transform:none}
  .pains li .pain span{background-size:100% 3px;color:#9aa3ba}.fix{opacity:1;transform:none}
  .stack .cases>.case{transform:none!important}
  .js .grid3:not(.in) .feat{opacity:1}
  .feat h3 .ic{stroke-dashoffset:0}
}

/* Startseite: Projekte als Liste, Vorschau folgt der Maus */
.work{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--navy)}
.work li{border-bottom:1px solid var(--rule)}
.work a{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 56px;gap:24px;align-items:center;padding:clamp(26px,3.2vw,46px) 0;isolation:isolate}
.work a::before{content:"";position:absolute;inset:0 calc(-1 * var(--pad));z-index:-1;background:var(--paper);clip-path:inset(50% 0 50% 0);transition:clip-path .7s var(--ease)}
.w-name{font:400 clamp(26px,4.6vw,76px)/1.05 var(--f-disp);letter-spacing:-.035em;color:var(--navy);-webkit-text-stroke:.022em currentColor;transition:transform .8s var(--out),color .4s}
.w-meta{font:600 13px/1.4 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--slate);text-align:right}
.w-arrow{width:56px;height:56px;border-radius:50%;border:1.5px solid var(--rule);display:grid;place-items:center;color:var(--navy);transition:all .6s var(--out)}
.w-arrow .ic{width:22px;height:22px;transition:transform .6s var(--out)}
.w-thumb{display:none}
@media (hover:hover){
  .work:hover a .w-name{color:#b4bbcd}
  .work a:hover::before{clip-path:inset(0)}
  .work a:hover .w-name{color:var(--navy);transform:translateX(24px)}
  .work a:hover .w-arrow{background:var(--navy);border-color:var(--navy);color:#fff}
  .work a:hover .w-arrow .ic{transform:rotate(-45deg)}
}
@media (max-width:760px){
  .work a{grid-template-columns:72px minmax(0,1fr) 44px;gap:6px 16px;padding:20px 0}
  .w-thumb{display:block;grid-row:1 / span 2;width:72px;height:72px;border-radius:10px;background:var(--mist) center top/cover}
  .w-name{grid-column:2;font-size:clamp(19px,5.6vw,26px);overflow-wrap:anywhere}.w-meta{grid-column:2;grid-row:2;text-align:left;font-size:11.5px;letter-spacing:.08em;overflow-wrap:anywhere;min-width:0}
  .w-arrow{grid-column:3;grid-row:1 / span 2;width:44px;height:44px}
}
.work-more{margin-top:40px}
.peek{position:fixed;left:0;top:0;z-index:70;width:min(30vw,420px);aspect-ratio:16/10;pointer-events:none;opacity:0;transition:opacity .4s}
.peek.on{opacity:1}
.peek-in{width:100%;height:100%;border-radius:12px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(8,18,48,.55);clip-path:inset(50% 0 50% 0 round 12px);transition:clip-path .6s var(--ease)}
.peek.on .peek-in{clip-path:inset(0 round 12px)}
.peek img{width:100%;height:100%;object-fit:cover;object-position:top;transform:scale(1.15);transition:transform .9s var(--out)}
.peek.on img{transform:scale(1)}
@media (hover:none),(max-width:900px){.peek{display:none}}
.case-side{display:grid;gap:28px;align-content:start}
.logo-solo .case-media img{aspect-ratio:16/10;object-position:center}
.logo-solo .case-media .shot{border:1px solid var(--rule);border-radius:14px;overflow:hidden}
@media (min-width:980px){.cases>.logo-solo{grid-template-columns:1.1fr .9fr;column-gap:72px;align-items:center}}
.logo-one{display:grid}
@media (min-width:900px){.logo-one>.case{width:62%}}
.logo-one .case-media img{aspect-ratio:16/10;object-position:center}
.logo-one .case-media .shot{border:1px solid var(--rule);border-radius:14px;overflow:hidden}

/* Leistungen: schlichte Liste, Name links, Text rechts */
.svc.simple{display:block}
.svc.simple .svc-item{grid-template-columns:1fr;gap:12px}
@media (min-width:1040px){
  .svc.simple .svc-item{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:64px;align-items:center}
  .svc.simple .svc-sub{grid-column:1}
  .svc.simple .svc-name{grid-column:1;grid-row:2}
  .svc.simple .svc-txt{grid-column:2;grid-row:1 / span 2;align-self:center}
  .svc.simple .ulink{grid-column:2;grid-row:3}
  .svc.simple .svc-list>li:not(.on) .svc-name{color:var(--navy)}
  .svc.simple .svc-list>li .svc-txt{grid-template-rows:1fr}
  .svc.simple .svc-list>li .ulink{opacity:1}
  .svc.simple .svc-list>li.on .svc-name{transform:none;letter-spacing:-.03em}
  .svc.simple .svc-list>li .svc-name .ic{opacity:0}
  .svc.simple .svc-list>li:hover .svc-name{transform:translateX(12px)}
  .svc.simple .svc-list>li:hover .svc-name .ic{opacity:1;transform:none}
}

/* ===== Ordnung und Rhythmus ===== */
/* Für wen: drei Probleme nebeneinander statt Liste */
.pains.grid{display:grid;gap:clamp(40px,4vw,64px);border-top:0}
@media (min-width:900px){.pains.grid{grid-template-columns:repeat(3,1fr)}}
.pains.grid li{display:grid;grid-template-columns:1fr;gap:18px;align-content:start;padding:28px 0 0;border-bottom:0;border-top:1.5px solid var(--navy)}
.pains.grid .pain{font-size:clamp(22px,2.1vw,32px);min-height:2.4em}
.pains.grid .fix{transform:translateY(16px)}
.pains.grid li.in .fix{transform:none}
.trades{margin-block:clamp(16px,3vw,40px) clamp(64px,8vw,120px)}

/* Leistungen: Titel bleibt links stehen, Liste rechts */
.svc-split{display:grid;gap:clamp(40px,5vw,72px)}
@media (min-width:1040px){.svc-split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:clamp(56px,7vw,120px);align-items:start}.svc-head{position:sticky;top:120px}}
.svc-head{display:grid;gap:24px;justify-items:start}
.svc-split .svc-list{border-top:1.5px solid var(--navy)}
.svc-split .svc-list>li{border-bottom-color:#d3d9e5}
.svc-split .svc.simple .svc-item{grid-template-columns:1fr!important;gap:10px;padding:clamp(26px,2.6vw,38px) 0}
.svc-split .svc.simple .svc-item>*{grid-column:auto!important;grid-row:auto!important}
.svc-split .svc-name{font-size:clamp(26px,2.8vw,44px)}
.svc-split .svc-txt{max-width:52ch}

/* Arbeiten: Bilder in versetztem Raster */
.gallery{display:grid;gap:clamp(28px,3vw,48px) clamp(20px,2.4vw,40px)}
@media (min-width:860px){.gallery{grid-template-columns:repeat(12,1fr)}.g-a{grid-column:1 / span 7}.g-b{grid-column:8 / span 5;margin-top:clamp(60px,9vw,140px)}.g-c{grid-column:1 / span 5}.g-d{grid-column:6 / span 7}}
.g-item{display:grid;gap:16px;align-content:start}
.g-img{display:block;border-radius:14px;overflow:hidden;background:var(--mist);box-shadow:0 40px 80px -56px rgba(8,18,48,.5)}
.g-img img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:top;transition:transform 1.2s var(--out)}
.g-c .g-img img{object-position:center}
.g-c .g-img{border:1px solid var(--rule)}
.g-item:hover .g-img img{transform:scale(1.04)}
.g-cap{display:grid;gap:6px}
.g-cap b{font:400 clamp(17px,1.5vw,22px)/1.3 var(--f-disp);letter-spacing:-.02em;color:var(--navy);-webkit-text-stroke:.014em currentColor}
.g-cap small{font:600 12.5px/1.4 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
.g-item:hover .g-cap b{color:var(--signal)}

/* Unterseiten: Aussage auf Dunkel, Leistungsumfang zweispaltig */
.statement{display:grid;gap:36px}
.statement .words{max-width:28ch}
.feat-split{display:grid;gap:clamp(36px,4vw,64px)}
.feat-split>.sh{margin:0;align-content:start}
@media (min-width:1040px){.feat-split{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);column-gap:clamp(56px,7vw,120px);align-items:start}.feat-split>.sh{position:sticky;top:120px}.feat-split .grid3{grid-template-columns:repeat(2,1fr)}}
.dark .grid3{border-top-color:var(--on-dark)}
.dark .feat{border-bottom-color:var(--line-dark)}
.dark .feat h3{color:var(--on-dark)}
.dark .feat p{color:var(--dim-dark)}

.about-t.solo{grid-template-columns:1fr}
@media (min-width:980px){.about-t.solo .txt{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:72px;align-items:end}.about-t.solo .txt .eyebrow{grid-column:1 / -1}.about-t.solo .txt h2{grid-column:1}.about-t.solo .txt .lead{grid-column:2;grid-row:2}.about-t.solo .txt .ulink{grid-column:2}}

/* =====================================================================
   Automatisch abspielende Animationen (nicht ans Scrollen gebunden)
   ===================================================================== */
/* Startbereich: Seite öffnet sich beim Laden wie ein Auge */
.hero-x{position:relative;height:100vh;height:100svh;min-height:620px;margin-top:calc(-1 * var(--hh));background:var(--night);overflow:hidden;isolation:isolate}
.hx-stage{position:absolute;inset:0;background:var(--paper);clip-path:ellipse(42% 0% at 50% 52%);animation:eyeOpen 1.7s cubic-bezier(.77,0,.18,1) .75s forwards}
@keyframes eyeOpen{0%{clip-path:ellipse(42% 0% at 50% 52%)}35%{clip-path:ellipse(60% 9% at 50% 52%)}100%{clip-path:ellipse(120% 130% at 50% 52%)}}
.hero-x .eye-lash{transform:translate(-50%,-50%) scaleX(0);animation:lashIn 1.4s cubic-bezier(.77,0,.18,1) .05s forwards}
@keyframes lashIn{0%{transform:translate(-50%,-50%) scaleX(0);opacity:1}50%{transform:translate(-50%,-50%) scaleX(1);opacity:1}75%{opacity:1}100%{transform:translate(-50%,-50%) scaleX(1.4);opacity:0}}
.hero-x .mega .row{opacity:0;transform:translateY(.35em);filter:blur(8px);animation:rowIn 1.3s var(--out) forwards}
.hero-x .mega .row:nth-child(1){animation-delay:1.25s}
.hero-x .mega .row:nth-child(2){animation-delay:1.4s}
.hero-x .mega .row:nth-child(3){animation-delay:1.55s}
@keyframes rowIn{to{opacity:1;transform:none;filter:none}}
.hero-x .mega .row{transition:translate .9s var(--out)}
.hero-x .field{opacity:0;animation:fadeOnly 1.6s ease 1.6s forwards}
@keyframes fadeOnly{to{opacity:1}}
.manifest{padding-block:clamp(110px,13vw,200px)}
.mf-in{display:grid;gap:clamp(28px,3vw,44px)}
.words.wauto .wd{transition:opacity .5s ease}

/* Dunkle Kapitel öffnen sich einmal, wenn sie ins Bild kommen */
.curtain{clip-path:inset(0 4.5% round 36px);transition:clip-path 1.5s var(--ease)}
.curtain>*{transform:translateY(50px);opacity:.0;transition:transform 1.4s var(--out) .2s,opacity 1s ease .2s}
.curtain.in{clip-path:inset(0 0 round 0)}
.curtain.in>*{transform:none;opacity:1}

/* Projektbilder öffnen sich einmal wie ein Auge */
.case-media .shot{clip-path:inset(34% 18% round 14px);transform:rotateX(14deg) scale(.92);transition:clip-path 1.6s var(--ease),transform 1.8s var(--out)}
.case-media img{transform:scale(1.3);transition:transform 2s var(--out)}
.case-media.in .shot{clip-path:inset(0 round 14px);transform:none}
.case-media.in img{transform:scale(1.04)}
.case-media.in:hover img{transform:scale(1)}

/* Ablauf: fünf Schritte erscheinen nacheinander, Linie zieht sich durch */
@media (min-width:1040px){
  .proc-track{grid-template-columns:repeat(5,1fr);border-top:0;position:relative;padding-top:40px}
  .proc-track::before{content:"";position:absolute;left:0;right:0;top:0;height:1.5px;background:var(--line-dark)}
  .proc-track::after{content:"";position:absolute;left:0;right:0;top:0;height:1.5px;background:var(--on-dark);transform:scaleX(0);transform-origin:left;transition:transform 2.4s var(--ease) .3s}
  .proc-track.in::after{transform:scaleX(1)}
  .proc-track .step{border-bottom:0;padding:0 28px 0 0;align-content:start}
  .proc-track .step h3{font-size:clamp(20px,1.7vw,28px)}
  .proc-track .step::before{content:"";position:absolute;margin-top:-46px;width:11px;height:11px;border-radius:50%;background:var(--night);box-shadow:inset 0 0 0 2px var(--on-dark)}
  .proc-track .step.in::before{background:#8fa0ff;box-shadow:inset 0 0 0 2px #8fa0ff;transition:background .4s ease calc(var(--d,0s) + .4s)}
}

/* ---------- Ohne Bewegung ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hx-stage{clip-path:none}.hero-x .eye-lash{display:none}.hero-x .mega .row,.hero-x .field{opacity:1;transform:none;filter:none}
  .curtain{clip-path:none}.curtain>*{opacity:1;transform:none}
  .case-media .shot{clip-path:none;transform:none}.proc-track::after{transform:none}
  .js .lines .ln>span,.js .lines-io .ln>span{transform:none}
  .fade-in{opacity:1}
  .js .rv{opacity:1;transform:none}
  .rule-draw::before{transform:none}
  .blinker,.cur-ring{display:none}
  .opener{height:auto}
  .intro-pin{position:relative;height:auto;overflow:visible}
  .hero-c{min-height:100svh}
  .eye{position:relative;clip-path:none;padding-block:120px}
  .words .wd{opacity:1}
  .case-media .shot{transform:none;clip-path:none}
  .case-media img{transform:none}
  .stage-item{transition:none}
}
