
/* =====================================================================
   NOVARYS® — DESIGN SYSTEM
   Konzept: Schweizer Signaletik-Modernismus / "Wayfinding fürs Geschäft"
   ===================================================================== */
:root{
  --paper:#E9E7DF;        /* kühles Kreide-Papier */
  --paper-2:#E0DED4;      /* Panel / etwas dunkler */
  --paper-3:#D6D4C8;      /* tiefster Papierton */
  --ink:#14151A;          /* Tinte, fast schwarz, kühl */
  --ink-2:#23242B;
  --stone:#6E6F6A;        /* gedämpfter Text */
  --stone-2:#9A9A91;
  --klar:#1B22D6;         /* Klarblau — Ultramarin, die Marke */
  --klar-bright:#3340FF;  /* helleres Klarblau für Glow */
  --klar-deep:#10157E;
  --signal:#FF5A1F;       /* Safety-Orange, seltener Pop */
  --line:rgba(20,21,26,.16);
  --line-soft:rgba(20,21,26,.09);
  --line-light:rgba(233,231,223,.18);
  --f-display:'Bricolage Grotesque',Georgia,sans-serif;
  --f-body:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  --f-mono:'Space Mono','Courier New',monospace;
  --ease:cubic-bezier(.7,0,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --maxw:1320px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-body);
  font-weight:400;
  line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:var(--klar);color:var(--paper)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font-family:inherit;cursor:pointer}
ul{list-style:none}

/* Film-Grain Overlay (Schweizer Druck-Anmutung) */
body::after{
  content:'';position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.045;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* =================== CUSTOM CURSOR (Wegweiser-Reticle) =================== */
.reticle{
  position:fixed;top:0;left:0;z-index:9800;pointer-events:none;
  width:34px;height:34px;margin:-17px 0 0 -17px;
  border:1px solid var(--ink);border-radius:50%;
  transition:width .3s var(--ease-out),height .3s var(--ease-out),margin .3s var(--ease-out),background .3s,border-color .3s,opacity .3s;
  mix-blend-mode:normal;
}
.reticle::before,.reticle::after{
  content:'';position:absolute;background:var(--ink);transition:background .3s;
}
.reticle::before{left:50%;top:50%;width:3px;height:3px;border-radius:50%;transform:translate(-50%,-50%)}
.dot{
  position:fixed;top:0;left:0;z-index:9801;pointer-events:none;
  width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--klar);
  transition:opacity .3s,transform .2s;
}
.reticle.hov{width:62px;height:62px;margin:-31px 0 0 -31px;background:var(--klar);border-color:var(--klar)}
.reticle.hov::before{background:var(--paper);width:0;height:0}
.reticle.hov .lbl{opacity:1}
.lbl{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-size:.72rem;color:var(--paper);opacity:0;transition:opacity .25s;font-weight:700;
}
.reticle.hov + .dot{opacity:0}
@media(hover:none),(max-width:860px){.reticle,.dot{display:none!important}}

/* =================== PRELOADER =================== */
.loader{
  position:fixed;inset:0;background:var(--ink);z-index:9500;color:var(--paper);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  transition:transform 1s var(--ease);
}
.loader.done{transform:translateY(-101%)}
.loader-grid{position:absolute;inset:0;opacity:.12;
  background-image:linear-gradient(var(--paper) 1px,transparent 1px),linear-gradient(90deg,var(--paper) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(circle at 50% 50%,#000,transparent 78%);-webkit-mask-image:radial-gradient(circle at 50% 50%,#000,transparent 78%);}
.loader-mark{font-family:var(--f-display);font-weight:700;font-size:clamp(2.6rem,9vw,6rem);letter-spacing:-.02em;line-height:1;position:relative;z-index:2;overflow:hidden}
.loader-mark span{display:inline-block;transform:translateY(110%);animation:rise .9s var(--ease-out) forwards}
.loader-mark sup{color:var(--klar-bright);font-size:.32em;vertical-align:super}
@keyframes rise{to{transform:translateY(0)}}
.loader-meta{position:relative;z-index:2;margin-top:26px;display:flex;align-items:center;gap:18px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.18em;color:var(--stone-2);text-transform:uppercase;opacity:0;animation:fadein .6s .5s forwards}
@keyframes fadein{to{opacity:1}}
.loader-count{color:var(--paper);min-width:3.4ch;text-align:right}
.loader-line{position:relative;z-index:2;margin-top:18px;width:min(320px,60vw);height:1px;background:rgba(233,231,223,.18)}
.loader-line i{position:absolute;inset:0;width:0;background:var(--klar-bright);transition:width .1s linear}

/* =================== NAV =================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px clamp(18px,4vw,52px);
  transition:padding .45s var(--ease),background .45s,border-color .45s,backdrop-filter .45s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{padding:13px clamp(18px,4vw,52px);background:rgba(233,231,223,.78);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-color:var(--line-soft)}
.brand{font-family:var(--f-display);font-weight:700;font-size:1.18rem;letter-spacing:-.01em;display:flex;align-items:center;gap:2px}
.brand sup{color:var(--klar);font-size:.5em;vertical-align:super}
.brand .blink{width:7px;height:7px;border-radius:50%;background:var(--signal);margin-left:8px;animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,90,31,.55)}55%{box-shadow:0 0 0 7px rgba(255,90,31,0)}}
.nav-links{display:flex;align-items:center;gap:8px}
.nav-link{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);
  padding:9px 15px;border-radius:2px;position:relative;transition:color .3s;
}
.nav-link span{color:var(--klar);margin-right:6px;font-size:.86em}
.nav-link:hover{color:var(--ink)}
.nav-link.active{color:var(--ink)}
.nav-link.active::after{content:'';position:absolute;left:15px;right:15px;bottom:3px;height:1.5px;background:var(--klar)}
.nav-cta{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  padding:11px 20px;background:var(--ink);color:var(--paper);border-radius:2px;
  display:inline-flex;align-items:center;gap:9px;transition:background .35s,transform .35s var(--ease-out);
}
.nav-cta:hover{background:var(--klar);transform:translateY(-1px)}
.nav-cta .ar{transition:transform .35s var(--ease-out)}
.nav-cta:hover .ar{transform:translate(3px,-3px)}
.burger{display:none;flex-direction:column;gap:6px;background:none;border:none;padding:8px;z-index:1100}
.burger span{width:26px;height:2px;background:var(--ink);transition:.4s var(--ease)}
.burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media(max-width:860px){
  .nav-links{
    position:fixed;inset:0;height:100vh;height:100dvh;z-index:1050;
    background:var(--ink);flex-direction:column;justify-content:center;gap:6px;overflow-y:auto;
    transform:translateY(-100%);transition:transform .5s var(--ease);will-change:transform;
  }
  .nav-links.open{transform:translateY(0)}
  .nav-link{color:var(--paper);font-size:1.4rem;font-family:var(--f-display);font-weight:500;letter-spacing:-.01em;text-transform:none;padding:14px 24px}
  .nav-link span{color:var(--klar-bright)}
  .nav-link.active::after{display:none}
  .nav-link.active{color:var(--klar-bright)}
  .nav-cta{margin-top:18px;font-size:.9rem}
  .burger{display:flex}
  body.no-scroll{overflow:hidden;height:100vh;height:100dvh}
}

/* =================== ROUTE TRANSITION OVERLAY =================== */
.route-ovl{position:fixed;inset:0;z-index:5000;background:var(--klar);transform:translateY(100%);pointer-events:none;display:flex;align-items:center;justify-content:center;flex-direction:column}
.route-ovl .ro-name{font-family:var(--f-display);font-weight:700;color:var(--paper);font-size:clamp(2.4rem,11vw,8rem);letter-spacing:-.03em;line-height:.9;opacity:0;transform:translateY(40px)}
.route-ovl .ro-coord{font-family:var(--f-mono);color:rgba(233,231,223,.6);font-size:.78rem;letter-spacing:.2em;margin-top:18px;text-transform:uppercase;opacity:0}
.route-ovl.show .ro-name{opacity:1;transform:translateY(0);transition:.5s .15s var(--ease-out)}
.route-ovl.show .ro-coord{opacity:1;transition:.5s .25s var(--ease-out)}

/* =================== LAYOUT PRIMITIVES =================== */
.app{position:relative;z-index:1}
.page{display:none}
.page.active{display:block;animation:pagein .7s var(--ease-out)}
@keyframes pagein{from{opacity:0}to{opacity:1}}
.has-raster{position:relative}
.page{position:relative}
.page-raster{display:none}
.page::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.26;
  background-image:linear-gradient(rgba(20,21,26,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(20,21,26,.07) 1px,transparent 1px);
  background-size:clamp(48px,6vw,84px) clamp(48px,6vw,84px);
  mask-image:linear-gradient(180deg,transparent,#000 4%,#000 96%,transparent);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 4%,#000 96%,transparent)}
.signalband,.manifest{position:relative;z-index:1}
/* Hero hat jetzt das seitenweite Gitter im Hintergrund — eigenes Hero-Gitter ausgeblendet, um Doppel-Raster zu vermeiden */
.hero-grid-bg{display:none}
/* Process — Aside + Status */
.procwrap{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(30px,5vw,80px);align-items:start}
@media(max-width:880px){.procwrap{grid-template-columns:1fr;gap:clamp(24px,4vw,40px)}}
.proc-aside{position:sticky;top:clamp(96px,13vh,140px)}
@media(max-width:880px){.proc-aside{position:static}}
.proc-now{margin-top:clamp(26px,3.5vw,42px);border:1px solid var(--line);background:rgba(233,231,223,.55);border-radius:3px;padding:clamp(20px,2.4vw,28px);position:relative;overflow:hidden}
.proc-now .pn-head{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.proc-now .pn-no{font-family:var(--f-display);font-weight:700;font-size:clamp(3.2rem,6vw,5rem);line-height:.9;letter-spacing:-.04em;color:var(--klar);margin-top:10px;display:flex;align-items:baseline}
.proc-now .pn-no small{font-size:.28em;color:var(--stone);font-weight:700;margin-left:6px;letter-spacing:0}
.proc-now .pn-title{font-family:var(--f-display);font-weight:600;font-size:clamp(1.3rem,2vw,1.8rem);margin-top:4px;letter-spacing:-.01em}
.proc-now .pn-bar{margin-top:20px;height:3px;background:var(--line);border-radius:3px;overflow:hidden;position:relative}
.proc-now .pn-bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--klar),var(--klar-bright));transition:width .35s var(--ease)}
.proc-now .pn-meta{margin-top:10px;display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
.wrap{max-width:var(--maxw);margin:0 auto;width:100%}
.sect{padding:clamp(72px,11vw,150px) clamp(18px,4vw,52px);position:relative;z-index:1}
.sect-tight{padding:clamp(54px,7vw,90px) clamp(18px,4vw,52px);position:relative;z-index:1}

/* Wegweiser-Schild (signature device) */
.plate{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);padding:7px 13px;border:1px solid var(--line);border-radius:2px;background:rgba(233,231,223,.4)}
.plate .ar{color:var(--klar);font-weight:700}
.plate .no{color:var(--ink);font-weight:700}
.plate.on-ink{color:var(--stone-2);border-color:var(--line-light);background:transparent}
.plate.on-ink .ar{color:var(--klar-bright)}
.plate.on-ink .no{color:var(--paper)}

.eyebrow{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--klar);display:flex;align-items:center;gap:10px}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--klar)}

h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;letter-spacing:-.02em;line-height:1.02}
.h-xl{font-size:clamp(2.7rem,8.5vw,7.4rem);font-weight:700;line-height:.96;letter-spacing:-.035em}
.h-lg{font-size:clamp(2.1rem,5.4vw,4.4rem);font-weight:700;letter-spacing:-.03em;line-height:1.0}
.h-md{font-size:clamp(1.6rem,3.4vw,2.9rem);font-weight:600;letter-spacing:-.02em;line-height:1.05}
.h-sm{font-size:clamp(1.25rem,2vw,1.7rem);font-weight:600;letter-spacing:-.01em}
.accent{color:var(--klar)}
.italic{font-style:italic;font-weight:500}
.lead{font-size:clamp(1.05rem,1.5vw,1.35rem);color:var(--ink-2);max-width:58ch;line-height:1.5;font-weight:400}
.muted{color:var(--stone)}

/* Buttons */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:12px;font-family:var(--f-mono);
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  padding:17px 30px;border-radius:2px;transition:transform .35s var(--ease-out),background .35s,color .35s,border-color .35s;overflow:hidden;
}
.btn .ar{transition:transform .35s var(--ease-out)}
.btn-fill{background:var(--ink);color:var(--paper)}
.btn-fill:hover{background:var(--klar);transform:translateY(-2px)}
.btn-fill:hover .ar{transform:translate(4px,-4px)}
.btn-blue{background:var(--klar);color:var(--paper)}
.btn-blue:hover{background:var(--klar-deep);transform:translateY(-2px)}
.btn-blue:hover .ar{transform:translate(4px,-4px)}
.btn-ghost{border:1px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.btn-ghost:hover .ar{transform:translate(4px,-4px)}
.btn-ghost.on-ink{border-color:var(--line-light);color:var(--paper)}
.btn-ghost.on-ink:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}

.linkrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--ink);transition:gap .3s var(--ease-out),color .3s}
.linkrow .ar{color:var(--klar);transition:transform .3s var(--ease-out)}
.linkrow:hover{gap:16px;color:var(--klar)}

/* Reveal system */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
.reveal.d4{transition-delay:.32s}.reveal.d5{transition-delay:.40s}.reveal.d6{transition-delay:.48s}
.reveal-clip{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease)}
.reveal-clip.in{clip-path:inset(0 0 0 0)}

/* =================== HERO =================== */
.hero{min-height:100svh;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:30px;padding:118px clamp(18px,4vw,52px) 70px;position:relative}
.hero-grid-bg{position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:clamp(48px,6vw,84px) clamp(48px,6vw,84px);
  mask-image:linear-gradient(160deg,#000 10%,transparent 75%);-webkit-mask-image:linear-gradient(160deg,#000 10%,transparent 75%)}
#heroParticles{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-left{position:relative;z-index:3}
.hero-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:30px}
.hero h1{margin-top:6px}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln i{display:block;font-style:normal;transform:translateY(110%);animation:rise 1s var(--ease-out) forwards;animation-delay:calc(var(--i)*.09s + .2s)}
.hero-sub{margin-top:30px;max-width:46ch}
.hero-ctas{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-stage{position:relative;z-index:2;height:min(74vh,640px);align-self:center}
#crystal{position:absolute;inset:0;width:100%;height:100%}
.hero-stage .stage-glow{position:absolute;left:50%;top:50%;width:70%;height:70%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(27,34,214,.16),transparent 65%);filter:blur(20px);z-index:0;pointer-events:none}
.crystal-cap{position:absolute;bottom:4px;left:0;right:0;display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);z-index:3;pointer-events:none}
.hero-foot{position:absolute;left:clamp(18px,4vw,52px);right:clamp(18px,4vw,52px);bottom:26px;display:flex;justify-content:space-between;align-items:flex-end;z-index:3;gap:20px}
.scrollcue{display:flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--stone)}
.scrollcue .bar{width:1px;height:46px;background:linear-gradient(var(--klar),transparent);position:relative;overflow:hidden}
.scrollcue .bar::after{content:'';position:absolute;inset:0;background:var(--klar);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
.hero-coord{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);text-align:right;line-height:1.9}
@media(max-width:980px){
  .hero{grid-template-columns:1fr;gap:10px;padding-top:130px}
  .hero-stage{height:50vh;order:-1;margin-bottom:6px}
  .hero-foot{position:static;margin-top:34px;padding:0}
}

/* =================== MARQUEE (Signalband) =================== */
.signalband{background:var(--klar);color:var(--paper);padding:20px 0;overflow:hidden;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.mq{display:flex;width:max-content;animation:mq 30s linear infinite}
.signalband:hover .mq{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
.mq .it{display:flex;align-items:center;gap:44px;white-space:nowrap;font-family:var(--f-display);font-weight:600;font-size:clamp(1.1rem,2vw,1.7rem);letter-spacing:-.01em;margin-right:44px}
.mq .it::after{content:'/';font-size:.92em;color:var(--paper);opacity:.5;font-weight:400}

/* =================== STATS =================== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.stat{background:var(--paper);padding:clamp(26px,3vw,42px) clamp(20px,2.4vw,34px);position:relative;overflow:hidden}
.stat:hover{background:var(--paper-2)}
.stat .num{font-family:var(--f-display);font-weight:700;font-size:clamp(2.4rem,4.6vw,3.8rem);letter-spacing:-.04em;line-height:1;display:flex;align-items:baseline}
.stat .num .suf{font-size:.42em;color:var(--klar);margin-left:3px;font-weight:700}
.stat .lab{margin-top:12px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);line-height:1.5}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}

/* =================== SECTION HEADERS =================== */
.sec-head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;margin-bottom:clamp(40px,5vw,70px)}
.sec-head .sh-right{text-align:right;max-width:34ch}
@media(max-width:780px){.sec-head{grid-template-columns:1fr}.sec-head .sh-right{text-align:left}}

/* =================== MANIFEST =================== */
.manifest{padding:clamp(80px,12vw,170px) clamp(18px,4vw,52px)}
.manifest-grid{display:grid;grid-template-columns:1.4fr .85fr;gap:clamp(30px,5vw,70px);align-items:center}
.manifest-txt{font-family:var(--f-display);font-weight:500;font-size:clamp(1.6rem,3.5vw,3rem);line-height:1.18;letter-spacing:-.02em}
.manifest-txt .w{color:var(--stone-2);transition:color .25s var(--ease)}
.manifest-txt .w.lit{color:var(--ink)}
.manifest-txt em{font-style:italic;color:var(--klar)}
.manifest-media{position:relative;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line)}
.manifest-media img{width:100%;height:115%;object-fit:cover;filter:grayscale(.15) contrast(1.02)}
.manifest-media .mm-tag{position:absolute;bottom:14px;left:14px;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper);background:var(--ink);padding:6px 11px}
@media(max-width:880px){.manifest-grid{grid-template-columns:1fr}.manifest-media{aspect-ratio:16/10;order:-1}}

/* =================== SERVICE CARDS =================== */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--paper);padding:clamp(28px,3vw,44px);min-height:340px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:background .4s}
.svc:hover{background:var(--ink);color:var(--paper)}
.svc .svc-no{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;color:var(--klar);transition:color .4s}
.svc:hover .svc-no{color:var(--klar-bright)}
.svc h3{margin-top:auto;font-size:clamp(1.5rem,2.4vw,2.1rem);transition:transform .4s var(--ease-out)}
.svc:hover h3{transform:translateY(-2px)}
.svc p{margin-top:14px;color:var(--stone);font-size:.96rem;transition:color .4s}
.svc:hover p{color:var(--stone-2)}
.svc .svc-arr{margin-top:22px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--ink);transition:color .4s,gap .3s var(--ease-out)}
.svc:hover .svc-arr{color:var(--paper);gap:14px}
.svc .svc-arr .ar{color:var(--klar)}
.svc:hover .svc-arr .ar{color:var(--klar-bright)}
.svc::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--klar);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.svc:hover::before{transform:scaleX(1)}
@media(max-width:880px){.svc-grid{grid-template-columns:1fr}.svc{min-height:auto}}

/* =================== WORK CARDS =================== */
.work-list{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.6vw,38px)}
.work{position:relative;cursor:pointer;display:block}
.work-media{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);background:var(--paper-2)}
.work-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.1s var(--ease-out),filter .6s;filter:grayscale(.12)}
.work:hover .work-media img{transform:scale(1.08);filter:grayscale(0)}
.work-media::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(20,21,26,.5),transparent 55%);opacity:.7;transition:opacity .5s}
.work:hover .work-media::after{opacity:.4}
.work-num{position:absolute;top:16px;left:16px;z-index:2;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;color:var(--paper);background:var(--klar);padding:5px 10px}
.work-tag{position:absolute;top:16px;right:16px;z-index:2;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--paper);padding:5px 10px}
.work-meta{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:14px}
.work-meta h3{color:var(--paper);font-size:clamp(1.3rem,2.3vw,1.9rem)}
.work-meta .wm-sub{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(233,231,223,.75);margin-top:5px}
.work-meta .wm-go{width:42px;height:42px;border-radius:50%;border:1px solid rgba(233,231,223,.4);display:flex;align-items:center;justify-content:center;color:var(--paper);flex-shrink:0;transition:background .4s,color .4s,border-color .4s}
.work:hover .wm-go{background:var(--paper);color:var(--ink);border-color:var(--paper)}
@media(max-width:760px){.work-list{grid-template-columns:1fr}}

/* =================== ATMOSPHERE BAND =================== */
.atmo{position:relative;min-height:62vh;display:flex;align-items:center;overflow:hidden;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.atmo-bg{position:absolute;inset:0;z-index:0}
.atmo-bg img{width:100%;height:120%;object-fit:cover;filter:grayscale(.3) brightness(.85)}
.atmo::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,21,26,.78),rgba(20,21,26,.35))}
.atmo-inner{position:relative;z-index:2;color:var(--paper);padding:clamp(40px,7vw,80px) clamp(18px,4vw,52px);max-width:var(--maxw);margin:0 auto;width:100%}
.atmo-inner h2{color:var(--paper);max-width:18ch}
.atmo-inner .lead{color:rgba(233,231,223,.78);margin-top:22px}

/* =================== CTA BLOCK =================== */
.cta-block{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.cta-block .cta-grid{position:absolute;inset:0;opacity:.16;
  background-image:linear-gradient(var(--line-light) 1px,transparent 1px),linear-gradient(90deg,var(--line-light) 1px,transparent 1px);
  background-size:62px 62px;mask-image:radial-gradient(circle at 70% 30%,#000,transparent 70%);-webkit-mask-image:radial-gradient(circle at 70% 30%,#000,transparent 70%)}
.cta-block .glow{position:absolute;right:-10%;top:-30%;width:55%;height:120%;background:radial-gradient(circle,rgba(27,34,214,.45),transparent 60%);filter:blur(40px)}
.cta-inner{position:relative;z-index:2;text-align:center;max-width:900px;margin:0 auto}
.cta-inner h2{color:var(--paper)}
.cta-inner h2 em{color:var(--klar-bright);font-style:italic}
.cta-inner .lead{color:rgba(233,231,223,.7);margin:24px auto 0}
.cta-inner .hero-ctas{justify-content:center;margin-top:38px}

/* =================== FOOTER =================== */
.foot{background:var(--paper-3);border-top:1px solid var(--line);padding:clamp(54px,7vw,86px) clamp(18px,4vw,52px) 30px;position:relative;overflow:hidden}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px;max-width:var(--maxw);margin:0 auto;position:relative;z-index:2}
.foot-brand .brand{font-size:1.5rem;margin-bottom:16px}
.foot-brand p{color:var(--stone);max-width:34ch;font-size:.94rem}
.foot-col h5{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:16px}
.foot-col a,.foot-col span{display:block;color:var(--stone);font-size:.92rem;padding:5px 0;transition:color .3s,padding-left .3s}
.foot-col a:hover{color:var(--klar);padding-left:6px}
.foot-word{font-family:var(--f-display);font-weight:700;font-size:clamp(3rem,17vw,15rem);letter-spacing:-.04em;line-height:.8;color:transparent;-webkit-text-stroke:1px var(--line);text-align:center;margin:clamp(30px,5vw,60px) 0 8px;position:relative;z-index:1;user-select:none}
.foot-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;max-width:var(--maxw);margin:0 auto;padding-top:22px;border-top:1px solid var(--line);font-family:var(--f-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);position:relative;z-index:2}
.foot-meta a{color:var(--stone);text-decoration:underline;text-decoration-color:var(--line);transition:color .3s}
.foot-meta a:hover{color:var(--klar)}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}

/* =================== PAGE HEADER (Unterseiten) =================== */
.pagehead{padding:clamp(118px,15vw,180px) clamp(18px,4vw,52px) clamp(40px,5vw,70px);position:relative;z-index:1;border-bottom:1px solid var(--line)}
.pagehead .ph-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;margin-bottom:clamp(30px,4vw,52px)}
.pagehead h1{max-width:16ch}
.pagehead .ph-lead{margin-top:26px;max-width:54ch}
.ph-index{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}

/* =================== LEISTUNGEN detail =================== */
.svc-row{display:grid;grid-template-columns:.5fr 1.5fr 1fr;gap:clamp(24px,3vw,50px);padding:clamp(38px,4vw,60px) 0;border-bottom:1px solid var(--line);align-items:start}
.svc-row:first-child{border-top:1px solid var(--line)}
.svc-row .sr-no{font-family:var(--f-display);font-weight:700;font-size:clamp(2rem,3.4vw,3rem);color:var(--klar);letter-spacing:-.03em;line-height:1}
.svc-row h3{font-size:clamp(1.5rem,2.6vw,2.3rem);margin-bottom:14px}
.svc-row .sr-desc{color:var(--stone);max-width:46ch}
.svc-row .sr-price{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-top:18px;display:inline-flex;align-items:center;gap:8px}
.svc-row .sr-price b{color:var(--klar)}
.svc-row ul li{display:flex;align-items:flex-start;gap:11px;padding:7px 0;color:var(--ink-2);font-size:.95rem;border-bottom:1px solid var(--line-soft)}
.svc-row ul li::before{content:'→';color:var(--klar);font-family:var(--f-mono);flex-shrink:0}
@media(max-width:880px){.svc-row{grid-template-columns:1fr;gap:14px}.svc-row .sr-no{font-size:1.4rem}}

/* Process — Vertical Flow (scroll-gebunden) */
.flowproc{--node:48px;--rail:62px;position:relative}
.flowproc::before{content:'';position:absolute;left:calc(var(--node)/2);top:12px;bottom:12px;width:2px;background:var(--line);transform:translateX(-1px)}
.fp-fill{position:absolute;left:calc(var(--node)/2);top:12px;width:2px;height:0;background:linear-gradient(var(--klar),var(--klar-bright));transform:translateX(-1px);box-shadow:0 0 11px rgba(27,34,214,.45);z-index:1;transition:height .12s linear}
.fp-step{position:relative;display:grid;grid-template-columns:var(--rail) 1fr;gap:clamp(16px,2vw,30px);padding:clamp(20px,2.6vw,36px) 0;align-items:start}
.fp-step .fp-node{position:relative;z-index:2;width:var(--node);height:var(--node);border-radius:50%;background:var(--paper);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:.82rem;font-weight:700;color:var(--stone);transition:.45s var(--ease)}
.fp-step.on .fp-node{border-color:var(--klar);background:var(--klar);color:var(--paper);transform:scale(1.06)}
.fp-step .fp-body{opacity:.45;transform:translateX(10px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.fp-step.on .fp-body{opacity:1;transform:none}
.fp-step .fp-body h4{font-size:clamp(1.2rem,2.2vw,1.7rem);margin-bottom:9px}
.fp-step .fp-body p{color:var(--stone);max-width:54ch;font-size:.96rem}
@media(max-width:600px){.flowproc{--node:38px;--rail:50px}}

/* Pricing */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.tier{background:var(--paper);padding:clamp(28px,3vw,42px);display:flex;flex-direction:column;position:relative;transition:background .4s}
.tier.feat{background:var(--ink);color:var(--paper)}
.tier .t-name{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--klar)}
.tier.feat .t-name{color:var(--klar-bright)}
.tier .t-price{font-family:var(--f-display);font-weight:700;font-size:clamp(2rem,3.4vw,2.8rem);letter-spacing:-.03em;margin:14px 0 4px}
.tier .t-price small{font-size:.4em;color:var(--stone);font-weight:400;font-family:var(--f-mono)}
.tier .t-for{font-size:.9rem;color:var(--stone);min-height:42px}
.tier.feat .t-for{color:var(--stone-2)}
.tier ul{margin:22px 0 26px;flex:1}
.tier ul li{padding:8px 0;font-size:.92rem;display:flex;gap:10px;border-bottom:1px solid var(--line-soft)}
.tier.feat ul li{border-color:var(--line-light)}
.tier ul li::before{content:'✓';color:var(--klar);font-weight:700}
.tier.feat ul li::before{color:var(--klar-bright)}
.tier .t-badge{position:absolute;top:18px;right:18px;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;background:var(--signal);color:var(--ink);padding:5px 9px;font-weight:700}
@media(max-width:880px){.tiers{grid-template-columns:1fr}}

/* =================== ARBEITEN case studies =================== */
.case{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,64px);align-items:center;padding:clamp(40px,6vw,90px) 0;border-bottom:1px solid var(--line)}
.case:nth-child(even) .case-media,.case:nth-child(even) .case-media-svg{order:2}
.case-media{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line)}
.case-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out);filter:grayscale(.1)}
.case:hover .case-media img{transform:scale(1.05)}
.case-media .cm-no{position:absolute;top:16px;left:16px;font-family:var(--f-mono);font-size:.72rem;color:var(--paper);background:var(--klar);padding:5px 10px;z-index:3}
.case-media .cm-live{position:absolute;bottom:14px;right:14px;z-index:3;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--paper);padding:6px 11px;display:inline-flex;align-items:center;gap:6px;opacity:0;transform:translateY(6px);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}
.case:hover .case-media .cm-live{opacity:1;transform:none}
.case-body .c-client{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--klar);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.case-body h3{font-size:clamp(1.7rem,3vw,2.6rem);margin-bottom:16px}
.case-body .c-desc{color:var(--stone);max-width:48ch;margin-bottom:26px}
.case-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,3vw,30px);margin-bottom:26px}
.case-metric{min-width:0}
.case-metric .cm-n{font-family:var(--f-display);font-weight:700;font-size:clamp(1.22rem,5.6vw,2.6rem);letter-spacing:-.03em;line-height:1;color:var(--ink);display:flex;align-items:baseline;white-space:nowrap}
.case-metric .cm-n .suf{color:var(--klar);font-size:.5em}
.case-metric .cm-l{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);margin-top:7px}
.case-tags{display:flex;gap:8px;flex-wrap:wrap}
.case-tags span{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);border:1px solid var(--line);padding:5px 10px;border-radius:2px}
.case-quote{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);display:flex;gap:14px;align-items:flex-start}
.case-quote .cq-mark{font-family:var(--f-display);font-weight:700;font-size:2.2rem;line-height:.5;color:var(--klar);flex-shrink:0;margin-top:6px}
.case-quote blockquote{font-style:italic;color:var(--ink-2);font-size:.96rem;max-width:48ch;line-height:1.5}
.case-quote cite{display:block;margin-top:10px;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);font-style:normal}
.rating-star{width:13px;height:13px;display:inline-block;vertical-align:-2px;color:var(--klar);margin:0 1px;flex-shrink:0}
.case-media-svg{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);background:var(--paper-2)}
.case-media-svg svg{width:100%;height:100%;display:block}
.case-media-svg .cm-no{position:absolute;top:16px;left:16px;z-index:3;font-family:var(--f-mono);font-size:.72rem;color:var(--paper);background:var(--klar);padding:5px 10px}
@media(max-width:880px){.case{grid-template-columns:1fr}.case:nth-child(even) .case-media,.case:nth-child(even) .case-media-svg{order:0}.case-media{aspect-ratio:16/11}}

/* =================== STUDIO =================== */
.studio-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
.studio-media{position:relative;aspect-ratio:1/1;overflow:hidden;border:1px solid var(--line)}
.studio-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2)}
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.value{background:var(--paper);padding:clamp(28px,3vw,44px);transition:background .4s}
.value:hover{background:var(--paper-2)}
.value .v-no{font-family:var(--f-mono);font-size:.74rem;color:var(--klar);letter-spacing:.08em}
.value h4{margin:16px 0 12px;font-size:clamp(1.3rem,2vw,1.7rem)}
.value p{color:var(--stone);font-size:.96rem;max-width:42ch}
@media(max-width:780px){.studio-intro{grid-template-columns:1fr}.studio-media{order:-1;aspect-ratio:16/11}.values{grid-template-columns:1fr}}

/* =================== KONTAKT form =================== */
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(34px,5vw,70px);align-items:start}
.form{display:grid;gap:22px}
.field{position:relative;display:flex;flex-direction:column}
.field label{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--stone);margin-bottom:9px}
.field input,.field textarea,.field select{
  font-family:var(--f-body);font-size:1rem;color:var(--ink);background:transparent;
  border:none;border-bottom:1.5px solid var(--line);padding:11px 2px;transition:border-color .35s;width:100%;
}
.field textarea{resize:vertical;min-height:110px}
.field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231B22D6' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--klar)}
.field input::placeholder,.field textarea::placeholder{color:var(--stone-2)}
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.chip{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;padding:9px 15px;border:1px solid var(--line);border-radius:2px;color:var(--stone);transition:all .3s;user-select:none}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.on{background:var(--klar);border-color:var(--klar);color:var(--paper)}
.form-foot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px}
.form-note{font-size:.82rem;color:var(--stone);max-width:30ch}
.form-success{display:none;padding:30px;border:1.5px solid var(--klar);background:rgba(27,34,214,.05);border-radius:2px}
.form-success.show{display:block;animation:pagein .6s var(--ease-out)}
.form-success h3{color:var(--klar);margin-bottom:10px}
.contact-side{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.contact-card{background:var(--paper);padding:clamp(22px,2.4vw,30px)}
.contact-card .cc-lab{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--klar);margin-bottom:9px}
.contact-card .cc-val{font-size:1.1rem;font-weight:500}
.contact-card a.cc-val:hover{color:var(--klar)}
@media(max-width:880px){.contact-grid{grid-template-columns:1fr}.field-2{grid-template-columns:1fr}}

/* =================== FAQ =================== */
.faq{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 4px;cursor:pointer}
.faq-q h4{font-size:clamp(1.1rem,1.8vw,1.45rem);font-weight:600;transition:color .3s}
.faq-item:hover .faq-q h4{color:var(--klar)}
.faq-q .ic{width:24px;height:24px;flex-shrink:0;position:relative}
.faq-q .ic::before,.faq-q .ic::after{content:'';position:absolute;background:var(--klar);transition:transform .4s var(--ease)}
.faq-q .ic::before{left:0;top:50%;width:100%;height:1.5px;transform:translateY(-50%)}
.faq-q .ic::after{top:0;left:50%;height:100%;width:1.5px;transform:translateX(-50%)}
.faq-item.open .faq-q .ic::after{transform:translateX(-50%) scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.faq-a p{padding:0 4px 28px;color:var(--stone);max-width:64ch;font-size:.98rem}

/* utility */
.center{text-align:center}
.mt-l{margin-top:clamp(40px,5vw,70px)}
.mt-m{margin-top:clamp(26px,3vw,42px)}
.split-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,48px)}
@media(max-width:760px){.split-2{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal{opacity:1;transform:none}.reveal-clip{clip-path:none}
  .fp-step .fp-body{opacity:1;transform:none}
}


/* =================== INVESTITION — Umfang-Meter + Note =================== */
.tier .scope{display:flex;align-items:center;gap:12px;margin:6px 0 16px}
.tier .scope-lab{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}
.tier.feat .scope-lab{color:var(--stone-2)}
.tier .scope-bars{display:flex;gap:5px}
.tier .scope-bars i{width:24px;height:5px;border-radius:2px;background:var(--line);transition:background .4s var(--ease)}
.tier.feat .scope-bars i{background:var(--line-light)}
.tier .scope-bars i.on{background:var(--klar)}
.tier.feat .scope-bars i.on{background:var(--klar-bright)}
/* „Auf Mass" / „Individuell" als Wort statt Zahl — etwas kleiner, damit es elegant sitzt */
.tier .t-price{font-size:clamp(1.7rem,2.8vw,2.3rem)}
.invest-note{margin-top:clamp(28px,3.5vw,46px);max-width:64ch;border-left:2px solid var(--klar);padding:2px 0 2px 24px}
.invest-note .in-head{font-family:var(--f-display);font-weight:600;font-size:clamp(1.15rem,1.9vw,1.55rem);letter-spacing:-.01em;color:var(--ink);display:flex;align-items:center;gap:11px;margin-bottom:11px}
.invest-note .in-head .ar{color:var(--klar);font-weight:700}
.invest-note p{color:var(--stone);font-size:.98rem;line-height:1.62;max-width:60ch}
