@font-face{font-family:"Panchang";src:url(assets/fonts/Panchang-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Switzer";src:url(assets/fonts/Switzer-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Switzer";src:url(assets/fonts/Switzer-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Switzer";src:url(assets/fonts/Switzer-600.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --bg:#000; --surface:#1d1d1f; --ink:#f5f5f7; --muted:#8e8e93; --rot:#ff3b1f; --error:#ff9f8f;
  --margin:clamp(20px,4vw,56px);
  --small:.875rem; --body:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --lead:clamp(1.3125rem,1.1rem + .9vw,1.75rem);
  --head:clamp(2.5rem,1.5rem + 3.6vw,5rem);
  --out:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-color:#3a3a3c #000}
html.stage{scroll-behavior:auto}
body{background:var(--bg);color:var(--ink);font:400 var(--body)/1.5 "Switzer",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
::selection{background:var(--ink);color:#000}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-weight:600;letter-spacing:-.03em;line-height:1.04;text-wrap:balance}
h2{font-size:var(--head)}
.lead{font-size:var(--lead);line-height:1.3;letter-spacing:-.012em;font-weight:500}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.skip{position:fixed;left:var(--margin);top:-60px;z-index:20;background:var(--ink);color:#000;padding:10px 16px;border-radius:99px}
.skip:focus{top:12px}

#stage{display:none;position:fixed;inset:0;width:100%;height:100lvh;z-index:0;pointer-events:none}
.stage #stage{display:block}
main,.end{position:relative;z-index:1}

.bar{position:fixed;inset:0 0 auto 0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px var(--margin);font-size:var(--small);font-weight:500}
.bar nav{display:flex;align-items:center;gap:clamp(14px,2.4vw,32px)}
.bar a{text-decoration:none}
.bar nav a:not(.pill){transition:opacity .25s}
.bar nav a:not(.pill):hover{opacity:.62}
.mark{font-family:"Panchang",sans-serif;font-weight:700;font-size:.8125rem;letter-spacing:.02em}

.pill{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px;border:0;border-radius:999px;background:var(--ink);color:#000;font:500 1rem/1 "Switzer",sans-serif;text-decoration:none;cursor:pointer;transition:transform .35s var(--out),background .25s}
.pill:hover{background:#fff;transform:scale(1.03)}
.pill:active{transform:scale(.97)}
.pill-small{min-height:34px;padding:0 15px;font-size:var(--small)}

/* Ohne Bühne: ruhige, vollständige Seite */
.act{position:relative}
.pin{min-height:100svh;display:flex;align-items:center;padding:96px var(--margin) 64px}
.hero{width:100%;text-align:center}
#word{font-family:"Panchang",sans-serif;font-weight:700;font-size:11.2vw;letter-spacing:0;line-height:1;white-space:nowrap;will-change:transform}
#word span{display:inline-block}
.hero-foot{display:flex;flex-direction:column;align-items:center;gap:26px;margin-top:40px}
.hero-foot p{max-width:38ch;font-size:var(--lead);line-height:1.3;font-weight:500;letter-spacing:-.012em}
.finish,.disc{width:100%;display:grid;gap:clamp(32px,5vw,80px);align-items:center}
.still{width:100%;max-width:640px}
.stage .still{display:none}
.finish-copy{max-width:540px}
.finish-copy .lead{margin-top:18px}
.steps{list-style:none;padding:0;margin-top:34px;display:grid;gap:14px}
.steps strong{font-weight:600}
.try{margin-top:32px}
.try label,.field label{display:block;font-size:var(--small);font-weight:500;margin-bottom:8px}
input,textarea{font:inherit;color:var(--ink);background:var(--surface);border:0;border-radius:14px;width:100%;padding:14px 16px;transition:background .25s}
input::placeholder{color:var(--muted)}
input:focus,textarea:focus{outline:2px solid var(--ink);outline-offset:0}
.rows{list-style:none;padding:0;margin-top:40px;display:grid;gap:30px}
.rows h3{font-size:clamp(1.75rem,1.2rem + 1.5vw,2.5rem)}
.rows p{margin-top:8px;max-width:44ch}
.row-img{margin-top:18px;aspect-ratio:4/3;object-fit:cover;width:100%;max-width:640px;filter:grayscale(1) contrast(1.15) brightness(.85)}
.frame{display:none}

.invite{position:relative;padding:112px var(--margin) 140px;display:grid;justify-items:center;align-content:start;text-align:center;gap:32px}
.invite-copy{width:100%;max-width:780px;display:grid;justify-items:center;align-content:start;gap:20px}
.invite form{width:100%;display:grid;justify-items:center;align-content:start;gap:18px;margin-top:14px}
.invite form[hidden]{display:none}
.cells{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(6px,1.4vw,10px);width:min(100%,400px)}
.cells span{aspect-ratio:4/5;display:grid;place-items:center;background:var(--surface);border-radius:12px;font:700 clamp(1rem,3.4vw,1.25rem)/1 "Panchang",sans-serif;transition:background .25s}
.cells span.now{outline:2px solid var(--ink)}
.cells span.full{background:#2c2c2e}
.cells input{position:absolute;inset:0;z-index:1;padding:0;opacity:0;cursor:text}
.cells.shake{animation:shake .42s var(--out)}
@keyframes shake{20%{transform:translateX(-8px)}45%{transform:translateX(6px)}70%{transform:translateX(-3px)}}
.msg{min-height:1.5em;font-size:1rem}
.msg.bad{color:var(--error)}
.field{width:100%;text-align:left}

.end{padding:0 var(--margin) 28px;background:var(--bg)}
.end-word{font:700 10.6vw/1 "Panchang",sans-serif;text-align:center;white-space:nowrap;color:var(--ink);margin-top:32px}
.end-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin-top:32px;font-size:1rem}
.end-row a{margin-left:18px}
.end-row a:first-child{margin-left:0}
.credits{margin-top:20px;color:var(--muted);font-size:.8125rem;max-width:70ch}

/* Mit Bühne: durchgehende Scroll-Inszenierung */
.stage .act-hero{height:220vh}
.stage .act-finish{height:460vh}
.stage .act-disc{height:480vh}
.stage .act>.pin{position:sticky;top:0;height:100svh;min-height:0;padding:0 var(--margin)}
.stage .act-hero>.pin{padding:0}
.stage .hero{position:relative;height:100%;display:grid;place-items:center}
.stage .hero-foot{position:absolute;left:0;right:0;margin-top:0;padding:0 var(--margin);top:62%}
.stage .letter{display:inline-block;font-style:normal;opacity:0;transform:translateY(.12em) scale(1.08);filter:blur(16px);animation:letter 1.5s var(--out) forwards}
@keyframes letter{to{opacity:1;transform:none;filter:blur(0)}}
.stage .hero-foot>*{opacity:0;animation:rise 1.2s var(--out) 1.15s forwards}
.stage .hero-foot>*:nth-child(2){animation-delay:1.3s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

.stage .finish{height:100%;grid-template-columns:minmax(0,1fr);align-content:end;padding-bottom:max(40px,6svh)}
.stage .finish-copy{max-width:none;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.8fr);column-gap:clamp(32px,5vw,72px);align-items:end;opacity:var(--o,0);transform:translateY(calc((1 - var(--o,0))*24px))}
.stage .steps{position:relative;grid-template-columns:1fr;gap:0;margin-top:0;min-height:6.4em}
.stage .try{margin-top:0}
.stage .finish-head h2{font-size:clamp(2.5rem,1.2rem + 3vw,4.25rem)}
.stage .steps li{position:absolute;inset:auto 0 0 0;opacity:0;transform:translateY(12px);transition:opacity .5s,transform .7s var(--out)}
.stage .steps li.on{opacity:1;transform:none}
.stage .steps strong{display:block;font-size:var(--lead);letter-spacing:-.02em;margin-bottom:6px}

.stage .disc{height:100%;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.stage .disc-copy{opacity:var(--o,0);transform:translateY(calc((1 - var(--o,0))*24px))}
.stage .rows{gap:22px;margin-top:36px}
.stage .rows li{color:var(--muted);transition:color .5s}
.stage .rows li.on{color:var(--ink)}
.stage .rows h3{transition:transform .7s var(--out);transform-origin:left center;transform:scale(.86)}
.stage .rows li.on h3{transform:none}
.stage .rows p{margin-top:0;max-height:0;opacity:0;overflow:hidden;transition:max-height .6s var(--out),opacity .5s,margin .6s var(--out)}
.stage .rows li.on p{max-height:5em;opacity:1;margin-top:6px}
.stage .row-img{display:none}
.stage .frame{display:block;position:relative;height:min(74svh,44vw);overflow:hidden;clip-path:inset(50%)}
.stage .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .9s,transform 2.6s var(--out);filter:grayscale(1) contrast(1.15) brightness(.85)}
.stage .frame img.on{opacity:1;transform:none}

.stage .invite{min-height:100svh;padding-top:calc(var(--cardtop,48svh) + 28px)}
.stage .invite-copy{opacity:var(--o,0)}

@media (max-width:959px){
  .finish,.disc{grid-template-columns:minmax(0,1fr)}
  .stage .finish{padding-bottom:max(24px,4svh);gap:0}
  .stage .finish-copy{grid-template-columns:minmax(0,1fr)}
  .stage .steps li{inset:0 0 auto 0}
  .stage .disc{grid-template-columns:minmax(0,1fr);align-content:stretch;grid-template-rows:minmax(0,1fr) auto;padding:68px 0 24px;gap:20px}
  .stage .frame{order:-1;height:auto;min-height:0;align-self:stretch}
  .stage .disc-copy h2{font-size:clamp(1.75rem,6.6vw,2.75rem)}
  .stage .rows{margin-top:14px;gap:4px;min-height:11.5em;align-content:start}
  .stage .rows h3{font-size:1.3125rem}
  .stage .rows li.on p{font-size:1rem}
  .stage .steps{margin-top:18px;min-height:6.4em}
  .stage .try{margin-top:6px}
  .stage .finish-copy{max-width:640px}
  .stage .finish-copy h2{font-size:clamp(2.25rem,9vw,3.5rem)}
  .stage .finish-head .lead{margin-top:10px}
  .bar nav a:not(.pill){display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}

.legal{max-width:640px;margin:0 auto;padding:40px var(--margin) 96px;display:grid;gap:20px}
.legal h1{font-size:var(--head);margin-top:48px}

.invite .lead{max-width:44ch}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pill[aria-busy=true]{opacity:.55;pointer-events:none}

.rot{color:var(--rot)}
.reno{position:relative;padding:clamp(96px,14vw,200px) var(--margin);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:end;background:var(--bg)}
.reno .lead{margin-top:24px;max-width:30ch}
.reno-body>p{max-width:52ch}
.way{list-style:none;padding:0;margin-top:40px;display:grid;gap:10px}
.way li{background:var(--surface);padding:20px 24px}
.way h3{font-size:var(--lead);letter-spacing:-.02em}
.way p{margin-top:4px}
@media (max-width:959px){.reno{grid-template-columns:minmax(0,1fr)}}

.granted{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;text-align:left;margin:16px 0}
.granted[hidden]{display:none}
.granted img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(1) contrast(1.15) brightness(.85)}
.granted h3{font-size:var(--lead);letter-spacing:-.02em;margin-top:12px}
.granted p{margin-top:4px}
@media (max-width:640px){.granted{grid-template-columns:minmax(0,1fr)}}
