:root{--font-display:Fraunces;--font-ui:Manrope;--ink:#17151a;--night:#0e0d12;--ivory:#f3efe5;--parchment:#e6d9bd;--forest:#34483d;--burgundy:#873d43;--gold:#c5a45b;--sage:#a7b4a0;--soft:rgba(243,239,229,.64);--line:rgba(243,239,229,.12);--panel:rgba(243,239,229,.07);--display:var(--font-display),Georgia,serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;background:var(--night);color:var(--ivory)}body{font-family:var(--font-ui),system-ui,sans-serif;font-size:16px;line-height:1.45}h1,h2,h3{font-family:var(--display);font-weight:500;margin:0;line-height:1.12}p{margin:0}a,button,input{color:inherit}button,input{font:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.btn{display:flex;width:100%;min-height:54px;align-items:center;justify-content:center;padding:0 22px;border:0;border-radius:27px;font-weight:700;text-decoration:none;background:var(--ivory);color:var(--ink);transition:transform .12s,opacity .12s}.btn:active{transform:scale(.98);opacity:.86}.btn:disabled{opacity:.35;cursor:default}.btn.ghost{background:var(--panel);color:var(--ivory)}.btn.small{min-height:42px;width:auto;font-size:14px;padding:0 16px}.btn.danger{background:var(--burgundy);color:var(--ivory)}.field{width:100%;min-height:54px;padding:0 18px;border-radius:16px;border:1px solid var(--line);background:var(--panel)}.field::placeholder{color:var(--soft)}.code-field{text-transform:uppercase;letter-spacing:.3em;font-weight:700;text-align:center}.brand{display:inline-flex;align-items:center;gap:9px;font-family:var(--display);font-size:17px;text-decoration:none}.brand svg{width:28px;height:28px}.muted{color:var(--soft)}.error,.small{font-size:14px}.error{color:#f0a8a8;min-height:20px}.hero{min-height:100svh;flex-direction:column;padding:max(20px,env(safe-area-inset-top)) 20px 20px;gap:16px;background:radial-gradient(90% 55% at 50% 38%,#2a2733 0,var(--night) 72%)}.hero,.nav{display:flex}.nav{justify-content:space-between;align-items:center;max-width:1040px;width:100%;margin:0 auto}.nav nav{display:flex;gap:16px;font-size:14px;color:var(--soft)}.nav nav a{text-decoration:none}.hero-body{flex:1 1;justify-content:center;gap:22px;text-align:center;max-width:1040px;margin:0 auto}.hero-body,.hero-copy{display:flex;flex-direction:column;align-items:center;width:100%}.hero-copy{gap:16px}.hero h1{font-size:clamp(38px,10vw,68px)}.fan{--w:min(38vw,25svh,210px);position:relative;flex:none;width:calc(var(--w) * 1.9);height:calc(var(--w) * 1.62)}.fan>div{position:absolute;left:calc(50% - var(--w) / 2);top:calc(var(--w) * .1);width:var(--w);height:calc(var(--w) * 1.4);transform-origin:50% 120%;filter:drop-shadow(0 16px 24px rgba(0,0,0,.55))}.fan>div:first-child{transform:rotate(-17deg)}.fan>div:nth-child(2){transform:rotate(17deg)}@media (min-width:860px){.hero-body{flex-direction:row-reverse;justify-content:space-between;gap:48px;text-align:left}.hero-copy{align-items:flex-start;max-width:520px}.fan{--w:min(24vw,44svh,300px)}}.cta{width:100%;max-width:360px;display:grid;grid-gap:10px;gap:10px}.sheet{background:var(--ivory);color:var(--ink);padding:56px 20px}.sheet.dark{background:var(--parchment)}.sheet-inner{max-width:1040px;margin:0 auto}.sheet h2{font-size:34px;margin-bottom:8px}.sheet .lead{color:#5d574f;margin-bottom:28px}.steps{display:grid;grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.steps b{display:block;font-family:var(--display);font-size:22px;font-weight:500;margin-bottom:4px}.gallery{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.gallery figure{margin:0;aspect-ratio:5/7;content-visibility:auto;contain-intrinsic-size:150px 210px}.footer{padding:28px 20px;text-align:center;font-size:13px;color:var(--soft)}.join-box{display:grid;grid-gap:10px;gap:10px}.room{min-height:100svh;display:flex;flex-direction:column;gap:16px;padding:max(16px,env(safe-area-inset-top)) 20px max(26px,env(safe-area-inset-bottom));max-width:620px;margin:0 auto}.room.wide{max-width:960px}.bg{position:fixed;inset:0;z-index:-1;transition:background .9s;background:var(--night)}.bg.night{background:radial-gradient(90% 55% at 50% 30%,#1d2233 0,#08080d 75%)}.bg.day{background:radial-gradient(90% 60% at 50% 25%,#4a4032 0,#17151a 78%)}.bar{justify-content:space-between;gap:12px;font-size:13px;color:var(--soft)}.bar,.grow{display:flex;align-items:center}.grow{flex:1 1;flex-direction:column;justify-content:center;gap:18px;text-align:center}.title{font-size:32px}.timer{font-family:var(--display);font-size:56px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.code{font-family:var(--display);font-size:48px;letter-spacing:.12em}.moon{width:84px;height:84px;border-radius:50%;background:var(--parchment);box-shadow:0 0 60px rgba(230,217,189,.35);position:relative;overflow:hidden}.moon:after{content:"";position:absolute;inset:-8px -8px -8px 26px;border-radius:50%;background:#10111a}.stage{--w:min(72vw,40svh,340px);perspective:1400px;width:var(--w);height:calc(var(--w) * 1.4);flex:none}.flip{all:unset;display:block;width:100%;height:100%;position:relative;cursor:pointer;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.75,.25,1)}.flip:focus-visible{outline:2px solid var(--gold);outline-offset:8px;border-radius:20px}.flip.up{transform:rotateY(180deg)}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;filter:drop-shadow(0 18px 28px rgba(0,0,0,.6))}.face.front{transform:rotateY(180deg)}.note{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px;font-size:14px;width:100%;text-align:left}.note b{color:var(--gold);font-weight:700}.list{display:grid;grid-gap:8px;gap:8px;width:100%}.pick{display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:0 16px;border-radius:16px;border:1px solid var(--line);background:var(--panel);text-align:left;width:100%}.pick.on{background:var(--ivory);color:var(--ink);border-color:var(--ivory);font-weight:700}.pick:disabled{opacity:.4}.task{width:100%;display:grid;grid-gap:12px;gap:12px;text-align:left}.task h2{font-size:24px}.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;background:var(--panel);font-size:14px}.chip.dead{opacity:.45;text-decoration:line-through}.dot{width:7px;height:7px;border-radius:50%;background:var(--sage)}.dot.off{background:#65605c}.events{width:100%;display:grid;grid-gap:6px;gap:6px;text-align:left;font-size:14px;color:var(--soft)}.events p:last-child{color:var(--ivory)}.tally{width:100%;display:grid;grid-gap:4px;gap:4px;font-size:14px}.tally div{display:flex;justify-content:space-between}.row{display:flex;gap:8px;width:100%}.row>*{flex:1 1}.panel{background:var(--panel);border-radius:18px;padding:14px;display:grid;grid-gap:10px;gap:10px;width:100%;text-align:left}.panel h3{font-size:18px}.deck-row{justify-content:space-between;gap:8px;font-size:14px;min-height:40px}.deck-row,.stepper{display:flex;align-items:center}.stepper{gap:6px}.stepper button{width:36px;height:36px;border-radius:50%;border:0;background:var(--panel)}.stepper span{min-width:22px;text-align:center;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.seg{display:flex;gap:4px;padding:4px;border-radius:16px;background:var(--panel)}.seg button{flex:1 1;min-height:40px;border:0;border-radius:12px;background:transparent}.seg button.on{background:var(--ivory);color:var(--ink);font-weight:700}.picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:12px;gap:12px}.pick-card{display:grid;grid-gap:6px;gap:6px}.pick-card>div:first-child{width:100%;aspect-ratio:5/7;transition:opacity .15s}.pick-card.off>div:first-child{opacity:.42}.pick-card .stepper{justify-content:center}.big-count{font-family:var(--display);font-size:44px;line-height:1;min-width:64px;text-align:center}.big-count,.pcount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.player-line{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;min-height:34px}.player-line .out{opacity:.45;text-decoration:line-through}.result{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:10px;gap:10px;width:100%}.result figure{margin:0;text-align:center;font-size:12px}.result figure>div{aspect-ratio:5/7;margin-bottom:4px}.result .gone{opacity:.55}.screen{min-height:100svh;padding:4vh 5vw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vh;text-align:center}.screen .code{font-size:9vh}.screen .title{font-size:7vh}.screen .timer{font-size:14vh}@media (prefers-reduced-motion:reduce){.bg,.btn,.flip{transition:none}}.scene{width:100%;aspect-ratio:16/9;max-height:30svh;border-radius:18px;overflow:hidden;flex:none;background:#0b0c14;animation:scene-in .8s ease both}.scene svg{display:block;width:100%;height:100%}@keyframes scene-in{0%{opacity:0;transform:translateY(6px)}}@keyframes twinkle{50%{opacity:.25}}@keyframes drift{to{transform:translateX(40px)}}@keyframes rise{0%{transform:translateY(26px)}}@keyframes blink{0%,92%,to{opacity:1}96%{opacity:0}}@keyframes sway{50%{transform:translateY(-5px)}}.tw{animation:twinkle 3s infinite}.tw2{animation:twinkle 4.4s 1s infinite}.fog{animation:drift 14s ease-in-out infinite alternate}.rise{animation:rise 2.4s ease-out both}.eyes{animation:blink 5s infinite}.sway{animation:sway 4s ease-in-out infinite}.tale{width:100%;font-family:var(--display);font-size:19px;line-height:1.35;text-align:left}.tale-host{font-size:21px;border-left:3px solid var(--gold);padding-left:14px}.lore{width:100%;text-align:left;display:grid;grid-gap:8px;gap:8px;font-size:14px}.lore ul{margin:0;padding-left:18px;display:grid;grid-gap:4px;gap:4px}.lore b{color:var(--gold)}.lore em{font-family:var(--display);font-size:16px;font-style:normal}.stage-sm{--w:min(58vw,30svh,260px)}@media (prefers-reduced-motion:reduce){.eyes,.fog,.rise,.scene,.sway,.tw,.tw2{animation:none}}.warn{color:#e8c98a;font-size:14px;line-height:1.4;background:rgba(197,164,91,.12);border-radius:12px;padding:10px 12px}