/* Zugabe – Gestaltung „Schwarz & Kupfer“
 * Grund: tiefes Schwarz · Flächen: Anthrazit-Glas (Liquid Glass) · einziger Akzent: gedecktes Kupfer
 * Partner: A = Kupfer, B = Silber · Zahlen in Serife, alles andere in schlanker Grotesk
 * Effekte (Glut, Kippglanz, Federn, Embers) hängen an html.fx – ohne die Klasse läuft die App ruhig und statisch. */
:root{
  --bg:#050506; --anth:#151619; --anth2:#1d1e22; --anth3:#26272c;
  --kante:rgba(255,255,255,.085); --kante2:rgba(255,255,255,.16);
  --txt:#EFEAE4; --mut:#A09B94; --leise:#6E6A64;
  --cu:#C98A5E; --cu-hi:#EDB68D; --cu-lo:#8A5233; --cu-rgb:201,138,94;
  --ag:#CBD0D6; --ag-hi:#F4F6F8; --ag-lo:#7C828A; --ag-rgb:203,208,214;
  --a:var(--cu); --b:var(--ag);
  --serif:ui-serif,"New York","Iowan Old Style","Palatino Linotype",Georgia,"Liberation Serif",serif;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",system-ui,"Liberation Sans",sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --feder:cubic-bezier(.34,1.45,.5,1);
  --oben:env(safe-area-inset-top,0px); --unten:env(safe-area-inset-bottom,0px);
  /* Kipp-/Zeigerwerte (von app.js geschrieben, −1…1) */
  --tx:0; --ty:0; --sheen:50; --ang:140;
}
@supports (transition-timing-function:linear(0,1)){
  :root{--feder:linear(0,.28 6%,.72 13%,1.06 22%,1.1 28%,1.03 38%,.99 48%,1.005 62%,1)}
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--bg);color-scheme:dark}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--txt);
  font:300 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;letter-spacing:.005em;
  user-select:none;-webkit-user-select:none;overscroll-behavior:none}
/* Samt: warmer Umbra-Hauch am Rand, Seide: breite, sehr leise Lichtbahnen, die mit dem Kippen wandern */
body::before{content:"";position:fixed;inset:-20%;z-index:0;pointer-events:none;
  background:
    radial-gradient(60% 40% at 8% 0%,rgba(138,82,51,.20),transparent 70%),
    radial-gradient(50% 35% at 100% 100%,rgba(138,82,51,.12),transparent 70%),
    repeating-linear-gradient(118deg,transparent 0 90px,rgba(255,255,255,.012) 120px,transparent 170px 260px);
  transform:translate3d(calc(var(--tx)*14px),calc(var(--ty)*10px),0)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.06;mix-blend-mode:overlay;z-index:50;
  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='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;touch-action:manipulation}
input{font:inherit;color:inherit}
svg{display:block}
h1,h2,h3,p{margin:0}
.ikon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}

/* Glut: weiches Kupferlicht, folgt dem Finger (liegt hinter dem Glas und scheint dadurch hindurch) */
#glut{position:fixed;left:0;top:0;width:460px;height:460px;margin:-230px 0 0 -230px;z-index:1;pointer-events:none;opacity:0;will-change:transform,opacity;
  background:radial-gradient(closest-side,rgba(var(--cu-rgb),.30),rgba(var(--cu-rgb),.10) 46%,transparent 72%);mix-blend-mode:screen;transition:opacity .9s var(--ease)}
html.fx #glut{opacity:var(--glut,.5)}
#fxlayer{position:fixed;inset:0;z-index:80;pointer-events:none;overflow:hidden}
.ember{position:absolute;left:0;top:0;width:4px;height:4px;margin:-2px;border-radius:50%;background:var(--cu-hi);box-shadow:0 0 10px 2px rgba(var(--cu-rgb),.65);will-change:transform,opacity}
.ember.ag{background:var(--ag-hi);box-shadow:0 0 10px 2px rgba(var(--ag-rgb),.55)}
.ring{position:absolute;left:0;top:0;width:24px;height:24px;margin:-12px;border-radius:50%;border:1px solid rgba(var(--cu-rgb),.8);will-change:transform,opacity}
.ring.ag{border-color:rgba(var(--ag-rgb),.75)}

/* Liquid Glass: durchscheinend, weiche Ränder, Lichtkante, die mit dem Kippen läuft */
.glas{position:relative;isolation:isolate;
  background:linear-gradient(150deg,rgba(255,255,255,.075) 0%,rgba(255,255,255,.022) 38%,rgba(255,255,255,.04) 100%),rgba(22,23,26,.55);
  -webkit-backdrop-filter:blur(26px) saturate(150%);backdrop-filter:blur(26px) saturate(150%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13),inset 0 -1px 0 rgba(0,0,0,.55),inset 0 0 26px rgba(255,255,255,.02),0 24px 48px -26px rgba(0,0,0,.95),0 2px 6px rgba(0,0,0,.4)}
.glas::before,.metall::before,.rand::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:2;
  background:conic-gradient(from calc(var(--ang)*1deg) at 50% 50%,rgba(255,255,255,.07),rgba(255,255,255,.34) 12%,rgba(255,255,255,.06) 28%,rgba(255,255,255,.05) 60%,rgba(255,255,255,.24) 74%,rgba(255,255,255,.07));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.glas::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;opacity:var(--spec,0);transition:opacity .6s var(--ease);
  background:radial-gradient(240px circle at var(--px,50%) var(--py,-30%),rgba(var(--cu-rgb),.13),rgba(255,255,255,.035) 45%,transparent 70%)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glas{background:var(--anth)}}
@media (prefers-reduced-transparency:reduce){.glas{background:var(--anth);-webkit-backdrop-filter:none;backdrop-filter:none}}

/* Rahmen */
#app{position:relative;z-index:2;max-width:520px;margin:0 auto;padding:calc(var(--oben) + 10px) 18px calc(112px + var(--unten))}
.kopf{display:flex;align-items:center;gap:6px;height:52px}
.marke{display:flex;align-items:center;gap:11px;flex:1;min-width:0}
.marke svg{width:30px;height:30px}
.marke b{font:300 15px/1 var(--sans);letter-spacing:.42em;text-transform:uppercase;padding-left:2px}
.kopf .ib{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--leise);transition:color .25s,background .25s,transform .6s var(--feder)}
.kopf .ib:active{transform:scale(.88);transition-duration:.08s;color:var(--txt)}
.kopf .ib.an{color:var(--cu)}
.chip{display:inline-flex;align-items:center;gap:8px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);padding:7px 12px 7px 10px;border:1px solid var(--kante);border-radius:99px;margin-right:4px}
.chip i{width:5px;height:5px;border-radius:50%;background:var(--cu);box-shadow:0 0 8px rgba(var(--cu-rgb),.9);animation:puls 2.8s infinite}
.chip.aus i{background:var(--leise);box-shadow:none;animation:none}
@keyframes puls{50%{opacity:.35}}
.titel{font:200 clamp(34px,10.4vw,44px)/1.06 var(--sans);letter-spacing:-.03em;margin:30px 0 10px}
.titel em{font-style:normal;font-weight:300;color:var(--cu)}
.unter{color:var(--mut);font-size:15px;max-width:36ch;line-height:1.55}
.klein{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--leise);font-weight:400}
/* Linienornament */
.orn{display:flex;align-items:center;gap:12px;margin:22px 0 4px;color:var(--cu);opacity:.9}
.orn i{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--cu-rgb),.5))}
.orn i:last-child{background:linear-gradient(270deg,transparent,rgba(var(--cu-rgb),.5))}
.orn svg{width:34px;height:14px;stroke:currentColor;fill:none;stroke-width:.9}

/* Segment (flüssiges Glas, Indikator gleitet per View-Transition) */
.seg{display:flex;border-radius:99px;padding:3px;gap:2px}
.seg button{position:relative;flex:1;height:40px;border-radius:99px;font-size:13px;letter-spacing:.06em;color:var(--leise);transition:color .3s}
.seg button span{position:relative;z-index:1}
.seg button[aria-pressed=true]{color:var(--txt)}
.seg .gl{position:absolute;inset:0;border-radius:99px;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 6px 14px -6px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.07)}
.zeile{display:flex;flex-direction:column;gap:10px;margin:22px 0 18px}

/* Zähler-Karten */
.karte{border-radius:32px;padding:22px 20px 20px;margin-bottom:18px;overflow:hidden}
.karte>header{display:flex;align-items:center;gap:11px;color:var(--cu)}
.karte>header .ikon{width:20px;height:20px}
.karte>header h2{font:400 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;flex:1;color:var(--txt)}
.karte>header .sub{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--leise)}
.stand{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;margin:26px 0 16px}
.seite{display:flex;flex-direction:column;gap:10px}
.seite.b{align-items:flex-end;text-align:right}
.zahl{display:block;font:300 clamp(66px,21vw,90px)/.9 var(--serif);letter-spacing:-.045em;font-variant-numeric:lining-nums tabular-nums;
  background-size:240% 100%;background-position:calc(50% + var(--tx)*30%) 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;transition:filter .3s}
.seite.a .zahl{background-image:linear-gradient(100deg,var(--cu-lo) 0%,var(--cu) 28%,var(--cu-hi) 46%,var(--cu) 62%,var(--cu-lo) 100%)}
.seite.b .zahl{background-image:linear-gradient(100deg,var(--ag-lo) 0%,var(--ag) 28%,var(--ag-hi) 46%,var(--ag) 62%,var(--ag-lo) 100%)}
.seite span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);display:flex;align-items:center;gap:8px}
.seite.b span{flex-direction:row-reverse}
.seite span::before{content:"";width:7px;height:7px;border-radius:50%;border:1px solid currentColor;flex:none}
.seite.a span::before{color:var(--cu)}.seite.b span::before{color:var(--ag)}
.mitte{width:1px;height:62px;margin:0 8px 6px;background:linear-gradient(180deg,transparent,var(--kante2),transparent)}
.verdeckt .zahl{filter:blur(14px)}
.balken{display:flex;height:2px;gap:4px;margin-bottom:18px}
.balken i{display:block;border-radius:2px;transition:flex .9s var(--ease);min-width:4px}
.balken i:first-child{background:linear-gradient(90deg,var(--cu-lo),var(--cu))}.balken i:last-child{background:linear-gradient(90deg,var(--ag-lo),var(--ag))}
.fuehrt{font:300 15.5px/1.5 var(--sans);min-height:3em;color:var(--mut)}
.fuehrt b{font-weight:400;color:var(--cu)}.fuehrt b.pb{color:var(--ag)}

/* Die große Taste: Anthrazit-Metall, feine Kante, schmaler Kupferrand, Beschriftung in Kupfer */
.gross{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;width:100%;height:92px;margin-top:18px;padding:0 16px 0 28px;border-radius:30px;
  --k:var(--cu);--k-hi:var(--cu-hi);--k-lo:var(--cu-lo);--k-rgb:var(--cu-rgb);
  background:
    linear-gradient(105deg,transparent calc(var(--sheen)*1% - 16%),rgba(255,255,255,.075) calc(var(--sheen)*1%),transparent calc(var(--sheen)*1% + 16%)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px),
    linear-gradient(180deg,#2a2b30 0%,#1b1c20 46%,#131417 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 3px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.04),0 1px 0 rgba(0,0,0,.8),0 20px 34px -18px rgba(0,0,0,.95),0 14px 40px -26px rgba(var(--k-rgb),.5);
  transition:transform .7s var(--feder),box-shadow .4s;text-align:left}
.gross.pb{--k:var(--ag);--k-hi:var(--ag-hi);--k-lo:var(--ag-lo);--k-rgb:var(--ag-rgb)}
.gross::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:2;
  background:conic-gradient(from calc(var(--ang)*1deg) at 50% 50%,rgba(var(--k-rgb),.32),var(--k-hi) 10%,rgba(var(--k-rgb),.28) 24%,rgba(var(--k-rgb),.22) 55%,var(--k) 72%,rgba(var(--k-rgb),.3));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.gross::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;
  background:radial-gradient(150px circle at var(--lx,50%) var(--ly,50%),rgba(var(--k-rgb),.26),transparent 70%);opacity:0;transition:opacity .5s var(--ease)}
.gross:active{transform:scale(.962) translateY(1px);transition-duration:.07s;box-shadow:inset 0 2px 6px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.03),0 6px 12px -8px rgba(0,0,0,.9)}
.gross:active::after{opacity:1;transition-duration:.05s}
.gross .t{position:relative;z-index:3;display:block;font:300 15px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--k-hi)}
.gross .t small{display:block;font:300 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:none;color:var(--mut);margin-top:11px}
.gross .plus{position:relative;z-index:3;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;font:300 27px/1 var(--serif);color:var(--k-hi);
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015));box-shadow:inset 0 0 0 1px rgba(var(--k-rgb),.42),inset 0 1px 0 rgba(255,255,255,.14),0 6px 14px -6px rgba(0,0,0,.9)}
.fuss{font-size:11.5px;letter-spacing:.03em;color:var(--leise);margin-top:16px}
.bump{animation:bump .9s var(--ease)}
@keyframes bump{0%{filter:drop-shadow(0 0 0 rgba(var(--cu-rgb),0))}22%{transform:translateY(-5px) scale(1.05);filter:drop-shadow(0 0 22px rgba(var(--cu-rgb),.65))}100%{transform:none;filter:drop-shadow(0 0 0 rgba(var(--cu-rgb),0))}}
.seite.b .bump{animation-name:bumpb}
@keyframes bumpb{0%{filter:drop-shadow(0 0 0 rgba(var(--ag-rgb),0))}22%{transform:translateY(-5px) scale(1.05);filter:drop-shadow(0 0 22px rgba(var(--ag-rgb),.6))}100%{transform:none;filter:drop-shadow(0 0 0 rgba(var(--ag-rgb),0))}}
.live{animation:live 1.6s var(--ease)}
@keyframes live{0%{filter:brightness(2.4) drop-shadow(0 0 18px rgba(var(--cu-rgb),.7))}100%{filter:none}}

/* Navigation */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;padding:10px 16px calc(10px + var(--unten));pointer-events:none}
.nav nav{pointer-events:auto;display:flex;width:100%;max-width:488px;border-radius:30px;padding:5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.6),0 22px 40px -12px rgba(0,0,0,.95),0 0 0 1px rgba(0,0,0,.5)}
.nav button{position:relative;flex:1;height:58px;border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--leise);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;transition:color .3s,transform .6s var(--feder)}
.nav button:active{transform:scale(.93);transition-duration:.07s}
.nav button[aria-current=page]{color:var(--cu)}
.nav .ikon{width:21px;height:21px}
.nav .ind{position:absolute;top:2px;left:50%;width:22px;height:2px;margin-left:-11px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--cu-hi),transparent);box-shadow:0 0 12px 1px rgba(var(--cu-rgb),.7)}

/* Rückblick */
.fuehrkarte{border-radius:32px;padding:22px 22px 24px;margin-bottom:16px}
.fuehrkarte .gross-name{font:300 clamp(42px,13vw,58px)/1 var(--serif);letter-spacing:-.04em;margin:16px 0 10px}
.fuehrkarte .gross-name.a{color:var(--cu-hi)}.fuehrkarte .gross-name.b{color:var(--ag-hi)}
.fuehrkarte p{color:var(--mut);font-size:15px}
.nav-zeit{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}
.nav-zeit button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--mut);transition:transform .6s var(--feder),color .2s}
.nav-zeit button:active{transform:scale(.86);transition-duration:.07s;color:var(--cu)}
.nav-zeit button:disabled{opacity:.2}
.nav-zeit b{font:300 12px var(--sans);letter-spacing:.24em;text-transform:uppercase}
.diagr{border-radius:28px;padding:18px 14px 12px;margin-bottom:16px}
.diagr .kopfz{display:flex;justify-content:space-between;align-items:baseline;padding:0 6px 12px}
.leg{display:flex;gap:16px;font-size:11px;letter-spacing:.1em;color:var(--mut)}
.leg i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:0;border:1px solid}
.diagr svg{width:100%;height:auto;overflow:visible}
.diagr text{font:300 10px var(--sans);fill:var(--leise)}
.diagr text.heute{fill:var(--txt);font-weight:500}
.diagr .rl{padding:10px 6px 4px;font-size:13.5px;color:var(--mut);min-height:2.4em}
.diagr .rl b{font-weight:400;color:var(--txt)}
.kachel3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.kachel{border-radius:24px;padding:16px 13px}
.kachel b{display:block;font:300 36px/1 var(--serif);margin:12px 0 7px;letter-spacing:-.04em}
.kachel b.a{color:var(--cu-hi)}.kachel b.b{color:var(--ag-hi)}
.kachel span{font-size:11.5px;color:var(--mut);line-height:1.35;display:block}
.kachel .klein{font-size:9.5px}

/* Abzeichen: schlichte Medaillen aus feinen Linien */
.raster{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.abz{border-radius:28px;padding:20px 16px 16px;display:flex;flex-direction:column;gap:7px;min-height:232px;align-items:flex-start}
.abz:not(.ok){background:rgba(21,22,25,.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.abz:not(.ok)::before{opacity:.35}
.medaille{width:68px;height:68px;margin-bottom:10px;color:var(--leise)}
.medaille svg{width:100%;height:100%;overflow:visible}
.medaille .r1{fill:none;stroke:currentColor;stroke-width:.8}
.medaille .r2{fill:none;stroke:currentColor;stroke-width:.5;opacity:.7}
.medaille .tk{stroke:currentColor;stroke-width:.5;opacity:.55}
.medaille .ic{fill:none;stroke:currentColor;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round}
.abz:not(.ok) .r1{stroke-dasharray:1.5 2.4}
.abz:not(.ok) .tk{opacity:.25}
.abz.ok .medaille{color:var(--cu-hi);filter:drop-shadow(0 0 7px rgba(var(--cu-rgb),.4))}
.abz h3{font:400 15px/1.2 var(--sans);letter-spacing:.02em}
.abz p{font-size:12px;color:var(--mut);flex:1;line-height:1.5}
.abz .pg{height:1px;width:100%;background:var(--kante2);position:relative;margin-top:4px}
.abz .pg i{position:absolute;left:0;top:-.5px;height:2px;background:var(--leise);border-radius:2px}
.abz.ok .pg i{background:linear-gradient(90deg,var(--cu-lo),var(--cu-hi));box-shadow:0 0 8px rgba(var(--cu-rgb),.6)}
.abz .wer{display:flex;gap:7px;align-items:center;font-size:10.5px;letter-spacing:.1em;color:var(--leise);width:100%}
.abz .wer>span:last-child{margin-left:auto}
.punkt{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:400 9.5px var(--sans);border:1px solid var(--kante2);color:var(--leise)}
.punkt.a.an{border-color:var(--cu);color:var(--cu-hi);box-shadow:0 0 8px rgba(var(--cu-rgb),.35)}.punkt.b.an{border-color:var(--ag);color:var(--ag-hi);box-shadow:0 0 8px rgba(var(--ag-rgb),.3)}

/* Gutscheine: Karten mit Linienrahmen */
.gs{position:relative;margin-bottom:16px;border-radius:26px;padding:22px 24px 20px;
  -webkit-mask:radial-gradient(circle 11px at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 11px at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat}
.gs .rahmen{position:absolute;inset:7px;border-radius:19px;border:1px solid rgba(var(--cu-rgb),.2);pointer-events:none;z-index:2}
.gs.von-b .rahmen{border-color:rgba(var(--ag-rgb),.2)}
.gs .nr{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--leise);position:relative;z-index:3}
.gs .nr span:first-child{font-family:var(--serif);letter-spacing:.14em;color:var(--cu)}
.gs.von-b .nr span:first-child{color:var(--ag)}
.gs h3{font:300 22px/1.25 var(--sans);letter-spacing:-.01em;margin:16px 0 10px;position:relative;z-index:3}
.gs p{font-size:12.5px;color:var(--mut);position:relative;z-index:3;line-height:1.55}
.gs .btn{margin-top:18px;position:relative;z-index:3}
.gs.erl{opacity:.58}
.stempel{position:relative;z-index:3;display:inline-block;margin-top:14px;border:1px solid var(--cu);color:var(--cu);border-radius:4px;padding:6px 12px;font:400 10px var(--sans);letter-spacing:.3em;opacity:.9;transform:rotate(-3deg)}
.gs.von-b .stempel{border-color:var(--ag);color:var(--ag)}
.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:54px;padding:0 28px;border-radius:99px;font-weight:400;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;
  --k:var(--cu);--k-hi:var(--cu-hi);--k-rgb:var(--cu-rgb);color:var(--k-hi);
  background:linear-gradient(180deg,#2a2b30,#17181b);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 3px rgba(0,0,0,.5),0 12px 22px -12px rgba(0,0,0,.95);
  transition:transform .7s var(--feder)}
.btn::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:conic-gradient(from calc(var(--ang)*1deg),rgba(var(--k-rgb),.3),var(--k-hi) 12%,rgba(var(--k-rgb),.25) 30%,rgba(var(--k-rgb),.2) 60%,var(--k) 76%,rgba(var(--k-rgb),.3));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.btn:active{transform:scale(.96);transition-duration:.07s}
.btn.zweit{background:transparent;color:var(--mut);box-shadow:none}
.btn.zweit::before{background:var(--kante2)}
.btn.block{width:100%}
.btn.pb{--k:var(--ag);--k-hi:var(--ag-hi);--k-rgb:var(--ag-rgb)}
.btn .ikon{width:17px;height:17px}
.leer{border:1px dashed var(--kante2);border-radius:24px;padding:24px;color:var(--mut);font-size:13.5px;margin-bottom:16px;text-align:center;line-height:1.55}
.abschnitt{margin:34px 0 14px}

/* Sheet & Toast */
.vorhang{position:fixed;inset:0;z-index:60;background:rgba(2,2,3,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .4s}
.vorhang.da{opacity:1}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;max-width:520px;margin:0 auto;max-height:88dvh;overflow:auto;border-radius:34px 34px 0 0;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02) 30%),rgba(18,19,22,.82);
  -webkit-backdrop-filter:blur(34px) saturate(160%);backdrop-filter:blur(34px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 -30px 60px -20px rgba(0,0,0,.9);
  padding:12px 24px calc(28px + var(--unten));transform:translateY(105%);transition:transform .7s var(--ease)}
.sheet.da{transform:none}
.sheet .griff{width:38px;height:3px;border-radius:3px;background:var(--kante2);margin:2px auto 22px}
.sheet h2{font:200 30px/1.1 var(--sans);letter-spacing:-.025em;margin-bottom:8px}
.sheet .unter{margin-bottom:22px}
.feld{display:block;margin:0 0 16px}
.feld>span{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--leise);margin:0 0 9px 4px}
.feld input{width:100%;height:56px;border-radius:20px;background:rgba(0,0,0,.35);border:1px solid var(--kante);padding:0 18px;font-size:16px;font-weight:300;outline:none;user-select:text;-webkit-user-select:text;transition:border-color .3s,box-shadow .3s;box-shadow:inset 0 2px 6px rgba(0,0,0,.5)}
.feld input:focus{border-color:rgba(var(--cu-rgb),.7);box-shadow:inset 0 2px 6px rgba(0,0,0,.5),0 0 22px -4px rgba(var(--cu-rgb),.5)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.chips button{min-height:44px;padding:8px 16px;border-radius:99px;border:1px solid var(--kante2);font-size:12.5px;color:var(--mut);text-align:left;line-height:1.3;transition:border-color .3s,color .3s,transform .6s var(--feder)}
.chips button:active{border-color:var(--cu);color:var(--cu-hi);transform:scale(.96);transition-duration:.07s}
.reihe{display:flex;align-items:center;gap:14px;min-height:66px;border-top:1px solid var(--kante)}
.reihe>div:first-child{flex:1}.reihe b{display:block;font-weight:400;font-size:15px}.reihe small{color:var(--leise);font-size:12px}
.schalter{width:54px;height:30px;border-radius:99px;background:rgba(0,0,0,.4);border:1px solid var(--kante2);position:relative;transition:background .3s,border-color .3s;flex:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.6)}
.schalter::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:linear-gradient(180deg,#d9dce0,#8d9298);transition:transform .6s var(--feder),background .3s;box-shadow:0 2px 4px rgba(0,0,0,.6)}
.schalter[aria-checked=true]{border-color:rgba(var(--cu-rgb),.8);background:rgba(var(--cu-rgb),.12)}
.schalter[aria-checked=true]::after{transform:translateX(24px);background:linear-gradient(180deg,var(--cu-hi),var(--cu-lo));box-shadow:0 0 12px rgba(var(--cu-rgb),.6),0 2px 4px rgba(0,0,0,.6)}
.wahl{display:flex;gap:6px}
.wahl button{min-width:44px;height:40px;padding:0 13px;border-radius:99px;border:1px solid var(--kante);font-size:12.5px;color:var(--mut);transition:border-color .3s,color .3s,transform .6s var(--feder)}
.wahl button:active{transform:scale(.94);transition-duration:.07s}
.wahl button[aria-pressed=true]{border-color:rgba(var(--cu-rgb),.8);color:var(--cu-hi)}
#toast-root{position:fixed;left:0;right:0;bottom:calc(104px + var(--unten));z-index:70;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 16px}
.toast{pointer-events:auto;display:flex;align-items:center;gap:14px;max-width:440px;width:100%;padding:8px 8px 8px 22px;min-height:58px;border-radius:99px;font-size:13.5px;animation:rein .8s var(--feder);
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03)),rgba(20,21,24,.78);-webkit-backdrop-filter:blur(26px) saturate(150%);backdrop-filter:blur(26px) saturate(150%);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 18px 34px -14px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.06)}
.toast span{flex:1;line-height:1.35}
.toast b{font-weight:400;color:var(--cu-hi)}
.toast button{height:42px;padding:0 18px;border-radius:99px;color:var(--cu-hi);font-size:11px;letter-spacing:.2em;text-transform:uppercase;box-shadow:inset 0 0 0 1px rgba(var(--cu-rgb),.45)}
.toast.weg{opacity:0;transform:translateY(10px);transition:.4s}
.toast.neu{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 0 1px rgba(var(--cu-rgb),.5),0 0 30px -6px rgba(var(--cu-rgb),.5),0 18px 34px -14px rgba(0,0,0,.95)}
@keyframes rein{from{opacity:0;transform:translateY(22px) scale(.94)}}

/* Sperre / Schutz */
#schutz,#sperre{position:fixed;inset:0;z-index:100;display:none;background:var(--bg);flex-direction:column;align-items:center;justify-content:center}
#schutz.da,#sperre.da{display:flex}
#schutz svg{width:84px;height:84px;opacity:.9}
#sperre{justify-content:space-between;padding:calc(var(--oben) + 64px) 24px calc(34px + var(--unten));z-index:99;
  background:radial-gradient(70% 38% at 50% 8%,rgba(var(--cu-rgb),.14),transparent 70%),var(--bg)}
#sperre .oben{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
#sperre .oben svg{width:60px;height:60px}
#sperre h1{font:200 30px/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;padding-left:.34em}
#sperre p{color:var(--mut);font-size:13.5px;min-height:1.4em;max-width:30ch}
.punkte{display:flex;gap:18px;margin-top:10px}
.punkte i{width:12px;height:12px;border-radius:50%;border:1px solid var(--kante2);transition:background .25s,border-color .25s,box-shadow .25s}
.punkte i.an{background:var(--cu);border-color:var(--cu-hi);box-shadow:0 0 14px rgba(var(--cu-rgb),.8)}
.punkte.zittern{animation:zittern .45s}
@keyframes zittern{20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
.tasten{display:grid;grid-template-columns:repeat(3,78px);gap:16px 24px;justify-content:center}
.tasten button{width:78px;height:78px;border-radius:50%;font:300 31px var(--serif);display:grid;place-items:center;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02));box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 0 0 1px rgba(255,255,255,.05),0 10px 20px -10px #000;
  transition:transform .6s var(--feder),box-shadow .35s}
.tasten button:active{transform:scale(.92);transition-duration:.06s;box-shadow:inset 0 0 0 1px rgba(var(--cu-rgb),.8),0 0 26px -2px rgba(var(--cu-rgb),.55);color:var(--cu-hi)}
.tasten button.leer2{visibility:hidden}
.tasten button.fn{background:none;box-shadow:none;font:300 10.5px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}

/* Bühne (Desktop) */
.buehne{position:relative;z-index:2;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:44px 24px;gap:26px}
.buehne h1{font:200 clamp(26px,3vw,36px)/1 var(--sans);letter-spacing:.5em;text-transform:uppercase;padding-left:.5em;text-align:center}
.buehne p{color:var(--mut);max-width:62ch;text-align:center;font-size:14.5px}
.telefone{display:flex;gap:64px;flex-wrap:wrap;justify-content:center}
.tel{display:flex;flex-direction:column;align-items:center;gap:16px}
.tel .rahmen{width:390px;height:844px;border-radius:58px;padding:0;border:1px solid rgba(255,255,255,.16);background:#000;overflow:hidden;
  box-shadow:0 0 0 7px #101113,0 0 0 8px rgba(255,255,255,.1),0 50px 80px -30px #000}
.tel iframe{width:100%;height:100%;border:0;display:block}
.tel b{font:300 11px var(--sans);letter-spacing:.32em;text-transform:uppercase}
.tel.a b{color:var(--cu)}.tel.b b{color:var(--ag)}

/* Wechsel zwischen Ansichten: Einblenden mit leichtem Schärfezug, gestaffelt */
html.fx .wechsel>*{animation:ein .8s var(--ease) backwards;animation-delay:calc(var(--i,0)*55ms)}
@keyframes ein{from{opacity:0;transform:translateY(16px);filter:blur(6px)}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.32s}
::view-transition-group(*){animation-duration:.55s;animation-timing-function:var(--ease)}

/* Bewegung reduzieren: alles ruhig, keine Federn, keine Glut-Bewegung */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  #glut,#fxlayer{display:none}
}
.gross .blitz{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;opacity:0;
  background:radial-gradient(70% 120% at var(--lx,50%) var(--ly,50%),rgba(var(--k-rgb),.34),transparent 70%)}

/* ---------- Kopplung (Willkommen · Code · QR) ---------- */
#kopplung{position:fixed;inset:0;z-index:110;display:none;overflow:auto;
  background:radial-gradient(80% 42% at 50% 0%,rgba(var(--cu-rgb),.16),transparent 70%),radial-gradient(60% 30% at 100% 100%,rgba(var(--ag-rgb),.05),transparent 70%),var(--bg)}
#kopplung.da{display:block;animation:kein .9s var(--ease) both}
@keyframes kein{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.koppelt #app,body.koppelt #sperre{display:none}
.kseite{min-height:100dvh;max-width:440px;margin:0 auto;display:flex;flex-direction:column;justify-content:space-between;gap:22px;
  padding:calc(var(--oben) + 56px) 26px calc(30px + var(--unten))}
.kseite .oben{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.kseite .oben svg{width:64px;height:64px;filter:drop-shadow(0 0 22px rgba(var(--cu-rgb),.35))}
.kseite h1{font:200 29px/1.1 var(--sans);letter-spacing:.32em;text-transform:uppercase;padding-left:.32em}
.kseite .oben p{color:var(--mut);font-size:14px;line-height:1.55;max-width:31ch}
.kseite .mitte{width:auto;height:auto;margin:0;background:none;display:flex;flex-direction:column;align-items:center;gap:6px}
.kseite .mitte .feld{width:100%}
.kseite .unten{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.kseite .klein{display:block;text-align:center;color:var(--leise);font-size:11.5px;line-height:1.5;margin-top:8px}
.kqr{width:min(240px,62vw);aspect-ratio:1;padding:10px;border-radius:26px;background:#EFEAE4;
  box-shadow:0 0 0 1px rgba(var(--cu-rgb),.55),0 0 46px -8px rgba(var(--cu-rgb),.5),0 28px 50px -24px #000}
.kqr svg{width:100%;height:100%;border-radius:16px}
.kcode{margin-top:20px;font:300 38px/1 var(--serif);letter-spacing:.16em;padding-left:.16em;color:var(--cu-hi);text-shadow:0 0 28px rgba(var(--cu-rgb),.4);user-select:text;-webkit-user-select:text}
.kgilt{color:var(--leise);font-size:12px;margin-top:6px;font-variant-numeric:tabular-nums}
.kcodefeld{text-align:center;font:300 28px var(--serif)!important;letter-spacing:.2em;text-transform:uppercase}
.kfehler{min-height:1.5em;color:#E7A48A;font-size:13px;text-align:center;margin-top:8px}
.kfehler.da{animation:zittern .45s}
#kopplung.laedt .btn:first-child{opacity:.6}
.kseite.ok{justify-content:center}
.kseite.ok .oben svg{animation:kein 1s var(--feder) both}
.kneu{display:flex;flex-direction:column;align-items:center;margin:14px 0 20px}
.kneu .kqr{width:200px}.kneu .kcode{font-size:32px}
.btn:disabled{opacity:.55;pointer-events:none}
@media (prefers-reduced-motion:reduce){#kopplung.da,.kseite.ok .oben svg{animation:none}}
