@font-face{font-family:"Space Grotesk";src:url(fonts/space-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url(fonts/space-grotesk-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/inter-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --bg:#07080b; --bg2:#0d0f14; --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14);
  --text:#eef0f3; --muted:#9097a3; --accent:#ff5a1f; --accent2:#ffb36b; --violet:#7c8cff;
  --radius:22px; --pad:clamp(16px,4vw,48px);
  --display:"Space Grotesk",system-ui,sans-serif; --body:Inter,system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font:400 16px/1.6 var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:#000}
a{color:inherit}
em{font-style:normal}

/* ---------- Hintergrund: Aurora, Druckbett-Raster, Korn ---------- */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;animation:drift 22s ease-in-out infinite alternate}
.b1{width:46vw;height:46vw;left:-10vw;top:-12vw;background:radial-gradient(circle,#ff5a1f 0,transparent 65%)}
.b2{width:40vw;height:40vw;right:-12vw;top:18vh;background:radial-gradient(circle,#5b4bff 0,transparent 65%);animation-duration:28s;opacity:.45}
.b3{width:36vw;height:36vw;left:30vw;bottom:-18vw;background:radial-gradient(circle,#ffb36b 0,transparent 65%);animation-duration:32s;opacity:.25}
@keyframes drift{to{transform:translate3d(6vw,4vh,0) scale(1.15)}}
.plate{position:absolute;inset:-2px;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000 20%,transparent 75%);opacity:.6}
.grain{position:absolute;inset:-50%;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-2%,6%)}80%{transform:translate(5%,-2%)}100%{transform:translate(0,0)}}

.cursor{position:fixed;left:0;top:0;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(255,90,31,.13),transparent 60%);transform:translate3d(var(--x,-999px),var(--y,-999px),0);transition:opacity .3s}
@media (hover:none){.cursor{display:none}}

/* ---------- Navigation ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);background:linear-gradient(to bottom,rgba(7,8,11,.75),rgba(7,8,11,.2));border-bottom:1px solid transparent;transition:border-color .3s}
.nav.scrolled{border-bottom-color:var(--line)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 19px/1 var(--display);letter-spacing:.18em}
.logo svg{width:32px;height:32px;color:var(--text)}
.logo .layers rect{fill:var(--accent);transform-origin:center;animation:layer 3.2s ease-in-out infinite}
.logo .layers rect:nth-child(2){animation-delay:.12s}.logo .layers rect:nth-child(3){animation-delay:.24s}.logo .layers rect:nth-child(4){animation-delay:.36s}.logo .layers rect:nth-child(5){animation-delay:.48s}
@keyframes layer{0%,60%,100%{opacity:1}30%{opacity:.35}}
.status{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid var(--line2);border-radius:99px;font:500 13px/1 var(--body);color:var(--muted);background:rgba(255,255,255,.03)}
.status i{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(255,90,31,.7);animation:ping 1.8s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(255,90,31,0)}100%{box-shadow:0 0 0 0 rgba(255,90,31,0)}}

/* ---------- Hero ---------- */
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:clamp(16px,3vw,48px);padding:110px var(--pad) 40px;max-width:1440px;margin:0 auto}
.eyebrow{font:500 13px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--accent2);margin-bottom:22px}
h1{font:700 clamp(48px,8.4vw,128px)/.92 var(--display);letter-spacing:-.045em;margin-bottom:26px}
h1 em,.steps h2 em{background:linear-gradient(100deg,var(--accent) 10%,var(--accent2) 55%,#fff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.split .w>span{display:inline-block;transform:translateY(110%);transition:transform 1s cubic-bezier(.16,1,.3,1)}
.split.in .w>span{transform:none}
.lead{font-size:clamp(17px,1.5vw,20px);color:var(--muted);max-width:34ch;margin-bottom:34px}
.lead strong{color:var(--text);font-weight:500}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:16px 24px;border-radius:99px;text-decoration:none;font:500 15px/1 var(--body);transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s,box-shadow .25s;will-change:transform}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.btn:hover svg{transform:translateX(4px)}
.btn.primary{background:var(--accent);color:#120600;box-shadow:0 10px 40px -10px rgba(255,90,31,.8),inset 0 1px 0 rgba(255,255,255,.35)}
.btn.primary:hover{box-shadow:0 16px 60px -10px rgba(255,90,31,.95),inset 0 1px 0 rgba(255,255,255,.35)}
.btn.ghost{border:1px solid var(--line2);background:rgba(255,255,255,.03)}
.btn.ghost:hover{background:rgba(255,255,255,.08)}

.stage{position:relative;aspect-ratio:1/1;width:100%;max-height:78svh;justify-self:center;border-radius:28px}
#three{width:100%;height:100%;display:block;touch-action:pan-y;-webkit-mask-image:radial-gradient(ellipse 72% 68% at 50% 52%,#000 50%,transparent 100%);mask-image:radial-gradient(ellipse 72% 68% at 50% 52%,#000 50%,transparent 100%)}
.stage-fallback{position:absolute;inset:auto 0 12px;text-align:center;color:var(--muted);font-size:13px;opacity:0}
.no-webgl .stage-fallback{opacity:1}
.hud{position:absolute;left:clamp(8px,2vw,20px);bottom:clamp(8px,2vw,20px);min-width:210px;padding:14px 16px;border:1px solid var(--line2);border-radius:16px;background:rgba(10,11,15,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font:500 11.5px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em}
.hud-row{display:flex;justify-content:space-between;gap:18px;padding:4px 0;color:var(--muted)}
.hud-v{color:var(--text)}.hud-v b{font-weight:500;color:var(--accent2)}
#hudStatus.done{color:#7dffb0}
.hud-bar{height:3px;margin-top:9px;border-radius:3px;background:var(--line2);overflow:hidden}
.hud-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));box-shadow:0 0 12px var(--accent)}
.click-flash{position:absolute;right:8%;top:14%;font:700 clamp(22px,3vw,38px)/1 var(--display);letter-spacing:-.02em;color:var(--accent2);opacity:0;transform:scale(.8) rotate(-6deg);pointer-events:none;text-shadow:0 0 30px rgba(255,90,31,.6)}
.click-flash.show{animation:flash 1.1s cubic-bezier(.16,1,.3,1)}
@keyframes flash{0%{opacity:0;transform:scale(.6) rotate(-6deg)}20%{opacity:1;transform:scale(1.08) rotate(-6deg)}100%{opacity:0;transform:scale(1) translateY(-14px) rotate(-6deg)}}

/* ---------- Laufband ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:22px 0;background:rgba(255,255,255,.015);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.track{display:flex;gap:34px;width:max-content;animation:marquee 38s linear infinite;font:500 clamp(18px,2.2vw,28px)/1 var(--display);letter-spacing:-.01em;white-space:nowrap}
.track b{color:var(--accent);font-weight:500}
.marquee:hover .track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Bento ---------- */
section{position:relative}
.bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:clamp(60px,9vw,120px) var(--pad);max-width:1440px;margin:0 auto}
.card{position:relative;padding:clamp(22px,2.6vw,34px);border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));overflow:hidden;isolation:isolate}
.card.big{grid-column:span 2;display:flex;flex-direction:column}
.lidcard{grid-row:span 2}
.spot::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .35s;background:radial-gradient(520px circle at var(--mx,50%) var(--my,50%),rgba(255,90,31,.14),transparent 45%)}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;opacity:0;transition:opacity .35s;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(255,179,107,.7),transparent 60%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.spot:hover::before,.spot:hover::after{opacity:1}
.tag{display:inline-block;font:500 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent2);margin-bottom:18px}
.card h2{font:700 clamp(34px,4.4vw,64px)/.98 var(--display);letter-spacing:-.04em;margin-bottom:20px}
.card h3{font:700 clamp(22px,2.2vw,30px)/1.05 var(--display);letter-spacing:-.03em;margin-bottom:12px}
.card p{color:var(--muted);max-width:52ch}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:auto;padding-top:34px}
.stats div{border-top:1px solid var(--line2);padding-top:16px}
.stats b{display:block;font:700 clamp(30px,3.6vw,52px)/1 var(--display);letter-spacing:-.04em}
.stats span{font-size:13px;color:var(--muted)}

.lid{--lid:#ece7de;--ink:#1a1c20;position:relative;aspect-ratio:190/115;border-radius:14px;background:var(--lid);margin:14px 0 18px;display:grid;place-content:center;text-align:center;gap:6px;color:var(--ink);box-shadow:0 30px 60px -25px rgba(0,0,0,.8),inset 0 -6px 0 rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.4);transition:background .4s,color .4s;transform:perspective(700px) rotateX(18deg);overflow:hidden}
.lid::after{content:"";position:absolute;left:50%;top:-1px;width:23%;height:10px;transform:translateX(-50%);background:var(--bg);border-radius:0 0 8px 8px;opacity:0}
.lid-brand{font:700 clamp(20px,2.4vw,30px)/1 var(--display);letter-spacing:.16em;text-shadow:0 1px 0 rgba(255,255,255,.25),0 -1px 0 rgba(0,0,0,.25);opacity:.85}
.lid-text{font:700 clamp(10px,1vw,13px)/1 var(--display);letter-spacing:.32em;min-height:1em;text-shadow:0 1px 0 rgba(255,255,255,.25),0 -1px 0 rgba(0,0,0,.25);opacity:.8}
.field{display:grid;gap:6px;font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.field input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:rgba(0,0,0,.35);color:var(--text);font:500 15px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(255,90,31,.18)}
.swatches{display:flex;gap:10px;margin-top:14px}
.sw{width:30px;height:30px;border-radius:50%;border:2px solid transparent;background:var(--c);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);transition:transform .2s,border-color .2s}
.sw:hover{transform:scale(1.12)}
.sw.on{border-color:var(--text);transform:scale(1.12)}

/* ---------- Konfigurator ---------- */
.config{padding:0 var(--pad) clamp(60px,9vw,120px);max-width:1440px;margin:0 auto}
.config-head{max-width:720px;margin-bottom:30px}
.config-head h2,.steps h2{font:700 clamp(36px,5.4vw,78px)/.96 var(--display);letter-spacing:-.045em;margin-bottom:16px}
.config-head p{color:var(--muted)}
.config-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(20px,4vw,56px);align-items:center}
.sliders{display:grid;gap:26px}
.range{display:grid;gap:12px}
.range span{display:flex;justify-content:space-between;color:var(--muted);font-size:14px}
.range output{font:700 22px/1 var(--display);color:var(--text);margin-left:auto;margin-right:6px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--accent) var(--p,50%),var(--line2) var(--p,50%));outline:none;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:5px solid var(--accent);box-shadow:0 0 0 6px rgba(255,90,31,.18),0 6px 16px rgba(0,0,0,.5);transition:transform .15s}
input[type=range]::-webkit-slider-thumb:active{transform:scale(1.15)}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:5px solid var(--accent)}
.result{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-top:6px}
.result div{padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.25)}
.result dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.result dd{font:700 20px/1 var(--display);letter-spacing:-.02em}
.grid-view{position:relative;min-height:clamp(340px,48vw,560px);border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,rgba(255,90,31,.08),transparent 70%)}
.grid-view canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}
.grid-view canvas:active{cursor:grabbing}
.dimlabel{position:absolute;left:0;top:0;padding:5px 10px;border-radius:99px;background:rgba(10,11,15,.7);border:1px solid var(--line2);font:500 12px/1 var(--body);color:var(--text);pointer-events:none;white-space:nowrap;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.cfg-tools{position:absolute;left:12px;top:12px;right:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cfg-tools i{width:1px;height:20px;background:var(--line2);margin:0 4px}
.cfg-tools button{padding:8px 12px;border-radius:99px;border:1px solid var(--line2);background:rgba(10,11,15,.6);color:var(--muted);font:500 12.5px/1 var(--body);cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:color .2s,border-color .2s,background .2s}
.cfg-tools button:hover{color:var(--text)}
.cfg-tools button.on{color:var(--text);border-color:rgba(255,90,31,.7);background:rgba(255,90,31,.16)}
.cfg-hint{position:absolute;right:14px;bottom:12px;font-size:12px;color:var(--muted);pointer-events:none;transition:opacity .6s}
.grid-view.touched .cfg-hint{opacity:0}
#gridSvg{display:none;width:100%;max-height:520px;overflow:visible}
.no-webgl #gridSvg{display:block}
.no-webgl .grid-view canvas,.no-webgl .dimlabel,.no-webgl .cfg-tools,.no-webgl .cfg-hint{display:none}
#gridSvg .drawer{fill:rgba(255,255,255,.02);stroke:var(--line2);stroke-width:2}
#gridSvg .fill{fill:rgba(255,179,107,.14)}
#gridSvg .cell{fill:rgba(255,90,31,.10);stroke:rgba(255,120,60,.75);stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:pop .5s cubic-bezier(.2,1.4,.4,1) both}
#gridSvg .dim{fill:var(--muted);font:500 13px var(--body)}
@keyframes pop{from{opacity:0;transform:scale(.4)}}

/* ---------- Schritte ---------- */
.steps{padding:clamp(60px,9vw,120px) var(--pad);max-width:1440px;margin:0 auto}
.steps ol{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:44px;counter-reset:s}
.steps li{position:relative;padding:30px;border-top:1px solid var(--line2)}
.steps li::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:linear-gradient(90deg,var(--accent),transparent);transition:width 1.4s cubic-bezier(.16,1,.3,1) .2s}
.steps li.in::before{width:100%}
.num{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);font:700 18px/1 var(--display);margin-bottom:22px;color:var(--accent2)}
.steps h3{font:700 26px/1.1 var(--display);letter-spacing:-.03em;margin-bottom:10px}
.steps p{color:var(--muted)}

/* ---------- Finale ---------- */
.finale{padding:clamp(60px,10vw,160px) var(--pad);text-align:center;overflow:hidden}
.huge{display:grid;font:700 clamp(44px,11vw,190px)/.9 var(--display);letter-spacing:-.055em}
.huge .outline{color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.55);transition:-webkit-text-stroke-color .4s}
.huge:hover .outline{-webkit-text-stroke-color:var(--accent)}
.soon{margin-top:28px;color:var(--muted);font-size:18px}

.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:28px var(--pad) calc(28px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.foot nav{display:flex;gap:22px}
.foot a{text-decoration:none}.foot a:hover{color:var(--text)}

/* ---------- Einblenden beim Scrollen ---------- */
.reveal{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s}
.reveal.in{opacity:1;transform:none;filter:none}

/* ---------- Mobil ---------- */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;padding-top:96px;text-align:left}
  .stage{max-height:none;aspect-ratio:1/1;order:2}
  .bento{grid-template-columns:1fr 1fr}
  .card.big{grid-column:span 2}
  .lidcard{grid-row:auto}
  .config-body{grid-template-columns:1fr}
}
@media (max-width:640px){
  .bento{grid-template-columns:1fr}
  .card.big{grid-column:auto}
  .stats{grid-template-columns:1fr 1fr 1fr}
  .steps ol{grid-template-columns:1fr}
  .status{font-size:12px;padding:7px 11px}
  .hud{min-width:0;left:8px;right:8px;bottom:8px;display:grid;grid-template-columns:1fr 1fr;column-gap:14px}
  .hud-bar{grid-column:span 2}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.split .w>span{opacity:1;transform:none;filter:none}
  html{scroll-behavior:auto}
}
