:root{--ink:#0e0d0b;--ink-raised:#171510;--line:#3b362c;--bone:#e9dfc7;--bone-dim:#a39a85;--ember:#c9552f;--ember-hover:#d9653d;--sage:#8f9f78;--error:#e68a69;--f-display:"Grenze Gotisch", "UnifrakturMaguntia", Georgia, serif;--f-body:"Figtree", "Helvetica Neue", Arial, sans-serif;--f-label:"IM Fell English SC", "Cormorant SC", Georgia, serif;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:72px;--r:14px;--tabbar-h:64px;--gutter-l:max(16px, env(safe-area-inset-left,0px));--gutter-r:max(16px, env(safe-area-inset-right,0px));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--ink);-webkit-text-size-adjust:100%}body{background:var(--ink);color:var(--bone);font:400 16px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0}body:after{content:"";pointer-events:none;z-index:50;opacity:.09;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .91 0 0 0 0 .87 0 0 0 0 .78 0 0 0 1.4 -.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}a{color:inherit}img{max-width:100%;display:block}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ember);outline-offset:3px}a,button,summary,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.label{font:400 13px/1.2 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim)}.muted{color:var(--bone-dim)}.small{font-size:14px}.page{max-width:600px;padding-left:var(--gutter-l);padding-right:var(--gutter-r);padding-block:var(--s-6) calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + var(--s-7));gap:var(--s-6);align-content:start;margin:0 auto;display:grid}.page>*{min-width:0}.page{align-content:center;min-height:100dvh}.page-head{gap:var(--s-2);text-align:center;justify-items:center;display:grid}.page-head p{max-width:52ch;margin-inline:auto}.page>.chips{justify-content:center}.page-head .art{object-fit:contain;width:100%;height:150px;margin-bottom:var(--s-2)}.page-head h1{font:700 clamp(44px, 12vw, 60px)/.92 var(--f-display)}.page-head p{color:var(--bone-dim)}.folio{border:1px solid var(--line);border-radius:var(--r);background:var(--ink-raised);padding:var(--s-7) clamp(var(--s-4), 6vw, var(--s-7));position:relative}.folio:before{content:"";border:1px solid var(--line);border-radius:calc(var(--r) - 6px);pointer-events:none;opacity:.6;position:absolute;inset:8px}.corner{width:30px;height:30px;color:var(--bone-dim);position:absolute}.corner.tl{top:13px;left:13px}.corner.tr{top:13px;right:13px;transform:scaleX(-1)}.corner.bl{bottom:13px;left:13px;transform:scaleY(-1)}.corner.br{bottom:13px;right:13px;transform:scale(-1)}.tab-label{background:var(--bone);color:var(--ink);font:700 11px/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,8px 100%,0 50%);padding:7px 18px;position:absolute;top:-13px;left:50%;transform:translate(-50%)}.hero-band .page{padding-top:var(--s-7)}.hero{text-align:center;justify-items:center;gap:var(--s-4);background:#0e0d0bf0;display:grid;box-shadow:0 40px 80px -40px #000000e6}.hero .presents{font:600 13px/1 var(--f-body)}.hero .vignette{aspect-ratio:1;object-fit:contain;width:min(220px,64%)}.hero h1{font:800 clamp(58px, 17vw, 104px)/.82 var(--f-display)}.hero .date{gap:var(--s-3);color:var(--bone-dim);align-items:center;font-size:14px;display:flex}.hero .date i{background:var(--ember);width:5px;height:5px;display:block;transform:rotate(45deg)}.hero form,.hero .stack{text-align:left;width:100%;max-width:340px}.step-label{font:600 11px/1 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim);justify-self:center}.onboarding-step{animation:fade-up .5s var(--ease-out) backwards}.pin-big{font:800 72px/1 var(--f-display);letter-spacing:.08em;color:var(--bone);text-align:center;font-variant-numeric:tabular-nums}.chapter-grid{gap:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;display:grid}.chapter-tile{text-align:center;padding:var(--s-5) var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r);background:var(--ink-raised);transition:border-color .2s ease, transform .16s var(--ease-out);animation:fade-up .6s var(--ease-out) backwards;-webkit-tap-highlight-color:transparent;align-content:start;justify-items:center;gap:4px;text-decoration:none;display:grid;position:relative}.chapter-tile:nth-child(2){animation-delay:80ms}.chapter-tile:nth-child(3){animation-delay:.16s}.chapter-tile:nth-child(4){animation-delay:.24s}.chapter-tile:active{transform:scale(.97)}.chapter-tile img{object-fit:contain;width:64px;height:64px;margin-bottom:var(--s-2);transition:transform .3s var(--ease-stamp)}.chapter-tile .num{font:700 18px/1 var(--f-display);color:var(--ember);position:absolute;top:10px;left:12px}.chapter-tile strong{font:700 clamp(19px, 5.4vw, 26px)/1.05 var(--f-display);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;max-width:100%}.chapter-tile .what{color:var(--bone-dim);font-size:13px;line-height:1.35}.chapter-tile .when{font:700 9px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;padding:4px 6px;position:absolute;top:10px;right:10px}.chapter-tile .when.now{color:var(--sage);box-shadow:inset 0 0 0 1px #8f9f7880}.btn{--bg:var(--bone);--fg:var(--ink);appearance:none;cursor:pointer;justify-content:center;align-items:center;gap:var(--s-2);background:var(--bg);min-height:48px;color:var(--fg);font:700 12px/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%);transition:background-color .18s ease, transform .16s var(--ease-out);-webkit-tap-highlight-color:transparent;border:0;padding:0 30px;text-decoration:none;display:inline-flex}.btn:before,.btn:after{content:"";background:var(--fg);flex:none;width:5px;height:5px;transform:rotate(45deg)}.btn:not([disabled]):active{transform:scale(.97)}.btn.ember{--bg:var(--ember);--fg:var(--bone)}.btn.alt{--bg:#bdb197;--fg:var(--ink)}.btn.ghost{--bg:transparent;--fg:var(--bone);box-shadow:inset 0 0 0 1px var(--bone-dim);clip-path:none;border-radius:999px}.btn.ghost:before,.btn.ghost:after{display:none}.btn.small{min-height:36px;padding:0 18px;font-size:11px}.btn.block{width:100%}.btn[disabled]{--bg:var(--line);--fg:var(--bone-dim);cursor:not-allowed}.linkish{appearance:none;color:var(--bone-dim);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:14px;text-decoration:underline;transition:color .15s,opacity .15s}.icon-btn{appearance:none;color:var(--bone-dim);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:6px 4px;font-size:13px;text-decoration:underline;transition:color .15s,opacity .15s}.stack{gap:var(--s-4);display:grid}.field{gap:var(--s-2);display:grid}.field label,.field .field-label{font:400 13px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim)}.field textarea{width:100%;min-height:96px;padding:12px var(--s-4);resize:vertical;background:var(--ink);color:var(--bone);border:1px solid var(--line);font:400 16px/1.5 var(--f-body);border-radius:10px;transition:border-color .15s,box-shadow .15s}.field textarea::placeholder{color:#6f685a}.field textarea:focus{border-color:var(--bone-dim);outline:none;box-shadow:0 0 0 3px #c9552f59}.field input,.field select{width:100%;min-height:48px;padding:0 var(--s-4);background:var(--ink);color:var(--bone);border:1px solid var(--line);font:500 16px/1 var(--f-body);border-radius:10px;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:#6f685a}.field input.pin-input{max-width:160px;font:600 22px/1 var(--f-body);letter-spacing:.4em;font-variant-numeric:tabular-nums}.field input.pin-input::placeholder{letter-spacing:0;font-size:15px;font-weight:500}.field input:focus,.field select:focus{border-color:var(--bone-dim);outline:none;box-shadow:0 0 0 3px #c9552f59}.field .hint{color:var(--bone-dim);font-size:13px}.error-msg{color:var(--error);font-size:14px}.ok-msg{color:var(--sage);font-size:14px}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{appearance:none;cursor:pointer;border:1px solid var(--line);color:var(--bone-dim);-webkit-tap-highlight-color:transparent;background:0 0;border-radius:999px;padding:7px 14px;font-size:14px}.chip[aria-pressed=true]{background:var(--bone);color:var(--ink);border-color:var(--bone);font-weight:600}.chip .count{opacity:.6;font-variant-numeric:tabular-nums;margin-left:4px}.panel{border:1px solid var(--line);border-radius:var(--r);background:var(--ink-raised);padding:var(--s-5) var(--s-4)}.similar{border-left:2px solid var(--ember);padding-left:var(--s-3);color:var(--bone-dim);font-size:14px}.similar b{color:var(--bone);font-weight:600}.group{display:grid}.group-head{justify-content:space-between;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-2);display:flex}.group-head h2{font:700 34px/1 var(--f-display)}.group-head small{color:var(--bone-dim);font-variant-numeric:tabular-nums;font-size:13px}.row{gap:var(--s-3);border-bottom:1px dotted var(--line);grid-template-columns:1fr auto;align-items:center;padding-block:12px;display:grid}.row>*{min-width:0}.row .what{overflow-wrap:anywhere;font-weight:500}.row .who{color:var(--bone-dim);font-size:14px}.row .who .you{color:var(--ember)}.row .actions{gap:var(--s-2);align-items:center;display:flex}.row.need .what{color:var(--bone-dim);font-style:italic;font-weight:400}.row.done .what{color:var(--bone-dim);text-decoration:line-through}.confirm{gap:var(--s-2);color:var(--error);flex-wrap:wrap;justify-content:flex-end;align-items:center;font-size:13px;display:flex}.empty{text-align:center;justify-items:center;gap:var(--s-3);padding-block:var(--s-5);color:var(--bone-dim);display:grid}.empty img{width:auto;max-width:70%;height:150px}.tabbar{z-index:40;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);-webkit-backdrop-filter:blur(8px);background:#0e0d0bf5;position:fixed;bottom:0;left:0;right:0}.tabbar nav{max-width:640px;height:var(--tabbar-h);grid-template-columns:repeat(6,minmax(0,1fr));margin:0 auto;display:grid}@media (width<=420px){.tabbar a{letter-spacing:.04em;font-size:10px}}.tabbar a{font:600 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--bone-dim);-webkit-tap-highlight-color:transparent;place-content:center;justify-items:center;gap:6px;text-decoration:none;transition:color .2s;display:grid}.tabbar a img{object-fit:contain;opacity:.5;width:26px;height:26px;transition:opacity .2s, transform .3s var(--ease-stamp)}.tabbar a[aria-current=page]{color:var(--ember)}.tabbar a[aria-current=page] img{opacity:1;transform:scale(1.08)}.admin-list{display:grid}.admin-list .row{grid-template-columns:1fr auto auto}.pin-chip{color:var(--bone-dim);background:var(--ink);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font:600 13px/1 ui-monospace,Menlo,monospace}.badge{font:700 11px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;display:inline-flex;box-shadow:inset 0 0 0 1px #8f9f7880}:root{--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-stamp:cubic-bezier(.3, 1.4, .5, 1)}.page{animation:page-in .5s var(--ease-out) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}}.page-head .art{animation:art-in 1.1s var(--ease-out) backwards}@keyframes art-in{0%{opacity:0;filter:blur(3px);transform:scale(.94)}}.page-intro{animation:fade-up .7s var(--ease-out) .35s backwards}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}.reveal .word{animation:word-in 1.1s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 90ms + .12s);display:inline-block}@keyframes word-in{0%{opacity:0;color:var(--bone-dim);filter:blur(4px);transform:translateY(.28em)}45%{opacity:1;filter:blur();color:var(--bone-dim)}to{color:var(--bone);transform:none}}.screen-frame{pointer-events:none;z-index:30;position:fixed;inset:0}.screen-frame:before{content:"";height:calc(env(safe-area-inset-top,0px) + 20px);background:var(--ink);position:absolute;inset:0 0 auto}.screen-frame-inner{top:calc(env(safe-area-inset-top,0px) + 20px);left:calc(env(safe-area-inset-left,0px) + 8px);right:calc(env(safe-area-inset-right,0px) + 8px);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 8px);border:1px solid var(--line);animation:frame-in 1.2s var(--ease-out) backwards;border-radius:12px;position:absolute}.screen-frame .corner{width:26px;height:26px}.screen-frame .corner.tl{top:5px;left:5px}.screen-frame .corner.tr{top:5px;right:5px}.screen-frame .corner.bl{bottom:5px;left:5px}.screen-frame .corner.br{bottom:5px;right:5px}@keyframes frame-in{0%{opacity:0;transform:scale(1.015)}}.frame-label{pointer-events:auto;top:calc(env(safe-area-inset-top,0px) + 20px - 13px);animation:label-in .8s var(--ease-out) .3s backwards;text-decoration:none;position:fixed}@keyframes label-in{0%{opacity:0;transform:translate(-50%,-6px)}}body:has(.screen-frame) .page{padding-top:calc(env(safe-area-inset-top,0px) + var(--s-7))}.loading{align-content:center;place-items:center;gap:var(--s-4);min-height:70dvh;display:grid}.candle{width:64px;height:128px;overflow:visible}.candle-flame,.candle-flame-core{transform-origin:30px 40px;animation:1.6s ease-in-out infinite flicker}.candle-flame-core{animation-duration:1.1s}.candle-glow{transform-origin:30px 30px;animation:2.4s ease-in-out infinite glow}@keyframes flicker{0%,to{transform:scale(1)rotate(-1deg)}25%{transform:scale(.92,1.08)rotate(2deg)}50%{transform:scale(1.04,.94)rotate(-2deg)}75%{transform:scale(.96,1.04)rotate(1deg)}}@keyframes glow{50%{opacity:.55;transform:scale(.9)}}.loading-text{font:400 15px/1.3 var(--f-label);letter-spacing:.1em;color:var(--bone-dim);animation:fade-up .6s var(--ease-out) backwards}.skeleton{gap:var(--s-3);display:grid}.skeleton i{background:linear-gradient(90deg, var(--ink-raised) 0%, #221f18 40%, var(--ink-raised) 80%);background-size:200% 100%;border-radius:8px;height:52px;animation:1.4s linear infinite shimmer;display:block}.skeleton i:nth-child(2){width:82%}.skeleton i:nth-child(3){width:64%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.row.stamp{animation:stamp .55s var(--ease-stamp) backwards}@keyframes stamp{0%{opacity:0;transform:scale(1.12)rotate(-2.5deg)}60%{opacity:1;transform:scale(.985)rotate(.4deg)}to{transform:none}}.row.stamp .what:after{content:"";background:var(--ember);vertical-align:middle;width:6px;height:6px;margin-left:8px;animation:2.4s ease-out 1s both dot-out;display:inline-block;transform:rotate(45deg)}@keyframes dot-out{to{opacity:0}}.row.leaving{animation:leave .25s var(--ease-out) both}@keyframes leave{to{opacity:0;transform:translate(14px)}}.btn.done{--bg:var(--sage);--fg:var(--ink)}.group{animation:fade-up .6s var(--ease-out) backwards}.countdown{align-items:baseline;gap:var(--s-3);justify-content:center;display:flex}.countdown-num{font:800 64px/1 var(--f-display);color:var(--ember);font-variant-numeric:tabular-nums;text-align:center;min-width:1.1em}.countdown-num.landed{animation:num-land .45s var(--ease-stamp)}@keyframes num-land{0%{transform:scale(1.14)}}.countdown-text{font:400 16px/1.2 var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim)}.hero-band{isolation:isolate;background:var(--ink);position:relative;overflow:hidden}.hero-band:before{content:"";z-index:-2;background:url(/img/fog.jpg) 50% 30%/cover no-repeat;animation:60s ease-in-out infinite alternate fog-drift;position:absolute;inset:-4%}.hero-band:after{content:"";z-index:-1;background:linear-gradient(180deg, #0e0d0b26, #0e0d0b66 60%, var(--ink));position:absolute;inset:0}@keyframes fog-drift{0%{transform:scale(1.04)translate(-1.5%)}to{transform:scale(1.1)translate(1.5%,-1%)}}.fog-wisps{z-index:-1;pointer-events:none;opacity:.5;filter:blur(12px);background:radial-gradient(40% 60% at 25% 60%,#e9dfc729,#0000 70%),radial-gradient(35% 50% at 70% 40%,#e9dfc71f,#0000 70%);height:40%;animation:38s ease-in-out infinite alternate wisps;position:absolute;inset:auto -20% 18%}@keyframes wisps{0%{transform:translate(-6%)}to{transform:translate(6%)}}.hero-band .page{animation:none}.hero .vignette{animation:art-in 1.4s var(--ease-out) .1s backwards}.hero .presents,.hero .date{animation:fade-up .8s var(--ease-out) backwards}.hero .date{animation-delay:.7s}.hero form,.hero .stack,.hero .countdown{animation:fade-up .8s var(--ease-out) .9s backwards}.music{z-index:45;left:calc(env(safe-area-inset-left,0px) + 18px);bottom:calc(env(safe-area-inset-bottom,0px) + 18px);cursor:pointer;border:1px solid var(--line);color:var(--bone-dim);font:700 10px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);animation:fade-up .8s var(--ease-out) 1.2s backwards;transition:color .2s ease, border-color .2s ease, transform .16s var(--ease-out);background:#0e0d0bd9;border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 10px;display:inline-flex;position:fixed}.music.raised{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 18px)}.music.framed{left:calc(env(safe-area-inset-left,0px) + 46px);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 22px)}.music[aria-pressed=true]{color:var(--bone);border-color:var(--bone-dim)}.bars{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.bars i{background:currentColor;border-radius:1px;width:2px;height:3px;transition:height .3s}.bars.on i{animation:1s ease-in-out infinite bar}.bars.on i:nth-child(2){animation-delay:-.3s}.bars.on i:nth-child(3){animation-delay:-.6s}.bars.on i:nth-child(4){animation-delay:-.15s}@keyframes bar{0%,to{height:3px}50%{height:12px}}.tabbar a[aria-current=page] img{animation:icon-in .45s var(--ease-stamp)}@keyframes icon-in{0%{transform:rotate(-12deg)scale(.7)}}.center{text-align:center}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.row-actions{align-items:center;gap:var(--s-4);flex-wrap:wrap;display:flex}.badge.phase-upload{color:var(--bone-dim);box-shadow:inset 0 0 0 1px var(--line)}.badge.phase-voting:before{content:"";background:var(--sage);border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite pulse}.badge.phase-closed{color:var(--ember);box-shadow:inset 0 0 0 1px #c9552f80}.badge.phase-revealed{color:var(--bone);box-shadow:inset 0 0 0 1px var(--bone-dim)}@keyframes pulse{50%{opacity:.3}}.my-costume{gap:var(--s-5);grid-template-columns:minmax(0,140px) 1fr;align-items:start;display:grid}@media (width<=560px){.my-costume{grid-template-columns:1fr}}.drop{aspect-ratio:3/4;border:1px dashed var(--bone-dim);cursor:pointer;background:var(--ink);border-radius:10px;justify-self:center;place-items:center;width:100%;max-width:220px;transition:border-color .2s,background-color .2s;display:grid;position:relative;overflow:hidden}.drop:focus-within{outline:2px solid var(--ember);outline-offset:3px}.drop.has-photo{border-style:solid;border-color:var(--line)}.drop>img{object-fit:cover;width:100%;height:100%;animation:fade-up .4s var(--ease-out) backwards}.drop-empty{text-align:center;padding:var(--s-3);color:var(--bone-dim);justify-items:center;gap:4px;font-size:13px;display:grid}.drop-empty img{opacity:.8;width:auto;height:96px;margin-bottom:6px}.drop-empty b{color:var(--bone);font-size:15px}.drop-change{text-align:center;font:700 10px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(#0000,#0e0d0beb);padding:8px;position:absolute;inset:auto 0 0}.costume-grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));display:grid}@media (width<=420px){.costume-grid{gap:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr))}}.costume{gap:var(--s-2);animation:fade-up .5s var(--ease-out) backwards;display:grid;position:relative}.costume .photo{appearance:none;border:1px solid var(--line);background:var(--ink-raised);cursor:pointer;aspect-ratio:3/4;outline-offset:3px;width:100%;transition:transform .16s var(--ease-out), outline-color .2s ease;-webkit-tap-highlight-color:transparent;border-radius:10px;outline:2px solid #0000;padding:0;display:block;position:relative;overflow:hidden}.costume .photo img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .5s}.costume .photo img.is-loaded{opacity:1}.costume .photo:active{transform:scale(.97)}.costume.picked .photo{outline-color:var(--ember)}.costume.disabled .photo{cursor:not-allowed;opacity:.55}.costume .rank{background:var(--ember);min-width:40px;height:40px;color:var(--bone);font:800 21px/1 var(--f-display);animation:stamp .45s var(--ease-stamp) backwards;border-radius:999px;place-items:center;padding:0 8px;display:grid;position:absolute;top:8px;left:8px;box-shadow:0 6px 18px -6px #000c}.costume .note{background:var(--bone);color:var(--ink);font:700 10px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;padding:5px 9px;position:absolute;top:8px;left:8px}.costume .zoom{cursor:pointer;width:34px;height:34px;color:var(--bone);background:#0e0d0bbf;border:0;border-radius:999px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.costume .zoom svg{width:16px;height:16px}.costume .caption{min-width:0}.costume .name{overflow-wrap:anywhere;font-size:15px;font-weight:600}.costume .who{color:var(--bone-dim);font-size:13px}.ballot{gap:var(--s-4);display:grid}.slots{gap:8px;margin:0;padding:0;list-style:none;display:grid}.slot{appearance:none;text-align:left;cursor:pointer;border:1px solid var(--line);background:var(--ink-raised);width:100%;animation:fade-up .4s var(--ease-out) backwards;border-radius:10px;grid-template-columns:36px 44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 12px 8px 8px;font-size:15px;display:grid}.slot .n{font:800 24px/1 var(--f-display);text-align:center;color:var(--ember)}.slot .th{object-fit:cover;background:var(--ink);border-radius:6px;width:44px;height:54px;display:block}.slot .slot-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slot .pts{color:var(--bone-dim);font-variant-numeric:tabular-nums;font-size:12px}.slot.empty{color:var(--bone-dim);cursor:default;background:0 0;border-style:dashed}.slot.empty .th{border:1px dashed var(--line);background:0 0}.seal{position:relative}.sparks{pointer-events:none;z-index:5;width:0;height:0;position:absolute;top:40%;left:50%}.sparks i{width:var(--s);height:var(--s);background:radial-gradient(circle, #ffd9a0 0%, var(--ember) 60%, transparent 70%);animation:spark var(--d) var(--ease-out) var(--delay) both;border-radius:50%;position:absolute}@keyframes spark{0%{opacity:0;transform:translate(0)scale(.6)}15%{opacity:1}to{opacity:0;transform:translate(var(--x), -160px) scale(.2)}}.winners{gap:10px;margin:0;padding:0;list-style:none;display:grid}.winners li>button,.winners .winner-row{appearance:none;text-align:left;cursor:pointer;width:100%;color:inherit;border:1px solid var(--line);background:var(--ink-raised);border-radius:12px;grid-template-columns:44px 56px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 14px 10px 10px;display:grid}.winners li{animation:fade-up .6s var(--ease-out) backwards}.winners li:nth-child(2){animation-delay:.1s}.winners li:nth-child(3){animation-delay:.2s}.winners li:nth-child(4){animation-delay:.3s}.winners li:nth-child(5){animation-delay:.4s}.winners .place{font:800 28px/1 var(--f-display);color:var(--ember);text-align:center}.winners img{object-fit:cover;border-radius:6px;width:56px;height:70px}.winners .who{min-width:0;display:grid}.winners .who b{overflow-wrap:anywhere;font-weight:600}.winners .who span{color:var(--bone-dim);font-size:14px}.winners .pts{font-variant-numeric:tabular-nums;color:var(--bone-dim);font-size:14px}.winners li.first>button,.winners li.first .winner-row{border-color:var(--ember);box-shadow:0 0 0 1px #c9552f59,0 20px 40px -24px #c9552f99}.winners li.first .place{font-size:36px}.lightbox{z-index:60;align-content:center;place-items:center;gap:var(--s-4);padding:max(16px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) max(16px, env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));animation:fade-up .22s var(--ease-out) backwards;background:#080706f0;display:grid;position:fixed;inset:0}.lightbox figure{gap:var(--s-3);justify-items:center;max-width:min(92vw,720px);margin:0;display:grid}.lightbox img{border:1px solid var(--line);border-radius:10px;width:auto;max-height:72dvh}.lightbox figcaption{text-align:center;display:grid}.lightbox figcaption b{font:700 30px/1 var(--f-display)}.lightbox figcaption span{color:var(--bone-dim);font-size:14px}.phase-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.phase-step{appearance:none;cursor:pointer;text-align:left;border:1px solid var(--line);color:var(--bone-dim);background:0 0;border-radius:10px;align-items:baseline;gap:10px;padding:12px 14px;font-size:14px;display:flex}.phase-step .num{font:700 20px/1 var(--f-display);color:var(--bone-dim)}.phase-step[aria-pressed=true]{background:var(--bone);color:var(--ink);border-color:var(--bone);font-weight:600}.phase-step[aria-pressed=true] .num{color:var(--ember)}.score-table{border-top:1px solid var(--line);font-size:14px;overflow-x:auto}.score-row{border-bottom:1px solid var(--line);grid-template-columns:44px minmax(0,1fr) 56px 120px;align-items:baseline;gap:10px;padding-block:10px;display:grid}.score-row.head{font:400 12px/1.2 var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim)}.score-row .place{font:700 20px/1 var(--f-display);color:var(--ember)}.score-row .pts,.score-row .counts{font-variant-numeric:tabular-nums}.score-row .counts{color:var(--bone-dim)}@media (width<=480px){.score-row{grid-template-columns:32px minmax(0,1fr) 40px;row-gap:2px}.score-row .counts{grid-column:2/-1;font-size:12px}.score-row.head .counts{display:none}}.kroenung{align-content:safe center;place-items:center;gap:var(--s-6);min-height:100dvh;padding:var(--s-7) max(16px, 4vw);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(ellipse 80% 60% at 50% 40%, #1d1912 0%, var(--ink) 70%);display:grid;position:relative;overflow-x:hidden}.krone-exit,.krone-full{z-index:5;position:absolute;top:14px}.krone-exit{left:18px}.krone-full{right:18px}.krone-intro{justify-items:center;gap:var(--s-3);animation:fade-up 1s var(--ease-out) backwards;display:grid}.krone-intro img{width:min(300px,40vh)}.krone-intro h1{font:800 clamp(64px, 11vw, 150px)/.9 var(--f-display)}.krone-finale h1{font:800 clamp(44px, 6vw, 90px)/.95 var(--f-display)}.krone-hint{color:var(--bone-dim);margin-top:var(--s-4);font-size:13px}.crown-card{justify-items:center;gap:var(--s-4);width:min(1100px,100%);animation:crown-in .9s var(--ease-stamp) backwards;display:grid;position:relative}@keyframes crown-in{0%{opacity:0;filter:blur(6px);transform:translateY(30px)scale(.94)}to{filter:blur()}}.crown-card .folio{width:100%}.crown-card.first .folio{border-color:var(--ember);box-shadow:0 0 80px -20px #c9552f8c}.crown-card.first .tab-label{background:var(--ember);color:var(--bone)}.crown-art{width:min(200px,22vh);animation:art-in 1.2s var(--ease-out) .2s backwards}.crown-body{text-align:left;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,64px);display:grid}.crown-photo{border:1px solid var(--line);max-width:100%;max-height:58dvh;animation:fade-up 1s var(--ease-out) .25s backwards;border-radius:10px;justify-self:end}@media (width<=900px),(aspect-ratio<=1){.crown-body{text-align:center;grid-template-columns:1fr;justify-items:center}.crown-photo{justify-self:center;max-height:46dvh}}.crown-text h2{font:800 clamp(48px, 7vw, 110px)/.9 var(--f-display);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;animation:fade-up .9s var(--ease-out) .5s backwards}.crown-who{font:400 clamp(18px, 2vw, 26px)/1.2 var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim);margin-top:var(--s-3)}.crown-points{margin-top:var(--s-5);color:var(--bone-dim);font-size:clamp(18px,2vw,24px)}.crown-points span{font:800 clamp(56px, 7vw, 96px)/1 var(--f-display);color:var(--ember);font-variant-numeric:tabular-nums;margin-right:10px}.crown-card .sparks{top:55%;transform:scale(1.8)}.krone-finale{justify-items:center;gap:var(--s-5);cursor:default;width:min(760px,100%);display:grid}.krone-finale .winners{text-align:left;width:100%}.krone-trail{color:var(--bone-dim);flex-wrap:wrap;justify-content:center;gap:8px 18px;font-size:14px;display:flex;position:absolute;bottom:18px;left:0;right:0}.krone-trail b{font:700 18px/1 var(--f-display);color:var(--ember);margin-right:4px}.phase-steps.three{grid-template-columns:repeat(3,minmax(0,1fr))}.phase-steps.three .phase-step{text-align:center;justify-content:center}.bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.bar i{background:var(--ember);height:100%;transition:width .3s var(--ease-out);display:block}.upload-panel{gap:var(--s-3);display:grid}.upload-head{gap:var(--s-3);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.upload-list{gap:6px;max-height:340px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.up{background:var(--ink);animation:fade-up .3s var(--ease-out) backwards;border-radius:8px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 8px;display:grid;position:relative;overflow:hidden}.up img,.up .up-ph{object-fit:cover;background:var(--ink-raised);border-radius:6px;width:40px;height:40px}.up-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.up-name small{color:var(--bone-dim);text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.up-pct{color:var(--bone-dim);font-variant-numeric:tabular-nums;font-size:12px}.up-bar{background:var(--ember);height:2px;transition:width .3s var(--ease-out);position:absolute;bottom:0;left:0}.up-done .up-pct{color:var(--sage)}.up-done .up-bar{background:var(--sage)}.up-error .up-name small{color:var(--error);white-space:normal}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,120px),1fr));gap:4px;display:grid}@media (width<=420px){.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}}.photo-tile{appearance:none;cursor:pointer;aspect-ratio:1;background:var(--ink-raised);border:0;border-radius:4px;padding:0;overflow:hidden}.photo-tile img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .5s, transform .6s var(--ease-out);transform:scale(1.04)}.photo-tile img.is-loaded{opacity:1;transform:none}.viewer{z-index:60;gap:var(--s-3);padding:max(12px, env(safe-area-inset-top,0px)) max(12px, env(safe-area-inset-right,0px)) max(12px, env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,0px));animation:fade-up .22s var(--ease-out) backwards;touch-action:pan-y;background:#080706;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.viewer-top,.viewer-bottom{gap:var(--s-3);flex-wrap:wrap;justify-content:space-between;align-items:center;width:100%;max-width:1100px;margin:0 auto;display:flex}.viewer-stage{place-items:center;min-height:0;display:grid;position:relative}.viewer-stage img{object-fit:contain;opacity:0;-webkit-user-select:none;user-select:none;border-radius:6px;max-width:100%;max-height:100%;transition:opacity .35s}.viewer-stage img.is-loaded{opacity:1}.viewer-nav{z-index:2;cursor:pointer;width:44px;height:64px;color:var(--bone);font:400 40px/1 var(--f-display);background:#0e0d0b99;border:0;border-radius:10px;position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav.prev{left:0}.viewer-nav.next{right:0}.viewer-nav:disabled{opacity:.2;cursor:default}.download-all{margin-top:var(--s-4)}.pre{white-space:pre-line;overflow-wrap:anywhere}.info-panel{padding-block:var(--s-4);animation:fade-up .8s var(--ease-out) .9s backwards}.info-panel summary{cursor:pointer;justify-content:space-between;align-items:center;gap:var(--s-3);-webkit-tap-highlight-color:transparent;list-style:none;display:flex}.info-panel summary::-webkit-details-marker{display:none}.info-summary{gap:4px;min-width:0;display:grid}.info-short{color:var(--bone);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.info-toggle{border-right:1.5px solid var(--bone-dim);border-bottom:1.5px solid var(--bone-dim);width:10px;height:10px;transition:transform .3s var(--ease-out), border-color .2s ease;flex:none;transform:rotate(45deg)translate(-2px,-2px)}.info-panel[open] .info-toggle{transform:rotate(225deg)translate(-2px,-2px)}.info-panel[open] .info-list{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line);animation:fade-up .4s var(--ease-out) backwards}.info-list{gap:0;margin:0;display:grid}.info-list>div{gap:var(--s-3);padding-block:var(--s-3);border-top:1px solid var(--line);grid-template-columns:96px minmax(0,1fr);display:grid}.info-list>div:first-child{border-top:0;padding-top:0}.info-list dt{font:400 13px/1.5 var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim)}.info-list dd{min-width:0;margin:0}.info-actions{margin-top:var(--s-3);gap:var(--s-2) var(--s-3)}@media (width<=420px){.info-list>div{grid-template-columns:1fr;gap:2px}}.gb-list{gap:var(--s-4);display:grid}.gb-entry{gap:var(--s-3);padding:var(--s-5) var(--s-5) var(--s-4);border:1px solid var(--line);border-radius:var(--r);background:var(--ink-raised);animation:fade-up .5s var(--ease-out) backwards;display:grid;position:relative}.gb-entry:before{content:"“";font:800 48px/1 var(--f-display);color:var(--ember);opacity:.7;position:absolute;top:2px;left:12px}.gb-text{white-space:pre-line;overflow-wrap:anywhere;padding-left:14px;font-size:17px;line-height:1.55}.gb-entry footer{gap:var(--s-2) var(--s-4);color:var(--bone-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;padding-left:14px;font-size:13px;display:flex}.gb-entry footer b{color:var(--bone);font-weight:600}.gb-entry.stamp{animation:stamp .55s var(--ease-stamp) backwards}.gb-entry.leaving{animation:leave .25s var(--ease-out) both}.admin-page{gap:var(--s-5);align-content:start}.admin-head{text-align:center;justify-items:center;gap:4px;display:grid}.admin-head h1{font:700 clamp(36px, 10vw, 52px)/.95 var(--f-display)}.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.admin-stats .stat{border:1px solid var(--line);background:var(--ink-raised);animation:fade-up .5s var(--ease-out) backwards;border-radius:12px;justify-items:center;gap:2px;padding:12px 6px;text-decoration:none;display:grid}.admin-stats .stat b{font:800 28px/1 var(--f-display);font-variant-numeric:tabular-nums}.admin-stats .stat span{font:600 10px/1.2 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim)}.admin-sections{gap:10px;display:grid}.admin-section{padding:0;overflow:hidden}.admin-section summary{cursor:pointer;-webkit-tap-highlight-color:transparent;grid-template-columns:38px minmax(0,1fr) 12px;align-items:center;gap:14px;min-height:64px;padding:14px 16px;list-style:none;display:grid}.admin-section summary::-webkit-details-marker{display:none}.admin-section summary img{object-fit:contain;width:38px;height:38px}.admin-section-head{justify-items:start;gap:6px;min-width:0;display:grid}.admin-section-title{font:700 22px/1.05 var(--f-display);overflow-wrap:break-word}.admin-chip{font:700 10px/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim);box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap;border-radius:999px;padding:6px 8px}.admin-chip.ok{color:var(--sage);box-shadow:inset 0 0 0 1px #8f9f7880}.admin-chip.warn{color:#d9b26a;box-shadow:inset 0 0 0 1px #d9b26a73}.admin-chip.hot{color:var(--ember);box-shadow:inset 0 0 0 1px #c9552f80}.admin-section[open] .info-toggle{transform:rotate(225deg)translate(-2px,-2px)}.admin-section-body{border-top:1px solid var(--line);animation:fade-up .35s var(--ease-out) backwards;padding:16px 16px 18px}.stepper{gap:6px;margin:0;padding:0;list-style:none;display:grid}.step{appearance:none;text-align:left;cursor:pointer;width:100%;color:inherit;border:1px solid var(--line);background:var(--ink);border-radius:10px;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:10px;padding:12px;display:grid}.step .num{font:700 20px/1.1 var(--f-display);color:var(--bone-dim);text-align:center}.step-text{gap:2px;display:grid}.step-text b{font-size:15px;font-weight:600}.step-text small{color:var(--bone-dim);font-size:13px;line-height:1.4}.step[aria-current=step]{border-color:var(--ember);background:#c9552f1a}.step[aria-current=step] .num{color:var(--ember)}.step .radio{width:18px;height:18px;box-shadow:inset 0 0 0 1.5px var(--bone-dim);border-radius:50%;margin:2px auto 0}.step[aria-current=step] .radio{box-shadow:inset 0 0 0 1.5px var(--ember), inset 0 0 0 5px var(--ink), inset 0 0 0 9px var(--ember)}.panel-inset{border:1px dashed var(--ember);border-radius:10px;padding:12px}.score-list{margin:0;padding:0;list-style:none;display:grid}.score-list li{border-bottom:1px solid var(--line);grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding-block:10px;display:grid}.score-list .place{font:700 20px/1 var(--f-display);color:var(--ember);text-align:center}.score-list .who{min-width:0;display:grid}.score-list .who b{overflow-wrap:anywhere;font-weight:600}.score-list .who small{color:var(--bone-dim);font-size:12px}.score-list .counts{font-variant-numeric:tabular-nums}.score-list .pts{font:800 22px/1 var(--f-display);font-variant-numeric:tabular-nums}.score-list .pts small{font:600 11px/1 var(--f-body);color:var(--bone-dim);margin-left:2px}.inline-add{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.inline-add input{background:var(--ink);width:100%;min-height:44px;color:var(--bone);border:1px solid var(--line);font:500 16px/1 var(--f-body);border-radius:10px;padding:0 14px;transition:border-color .15s,box-shadow .15s}.inline-add input:focus{border-color:var(--bone-dim);outline:none;box-shadow:0 0 0 3px #c9552f59}.field input[type=search]{min-height:44px}.guest-row{grid-template-columns:minmax(0,1fr) auto auto}.host-tag{font:700 9px/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ember);margin-left:8px}body:has(.screen-frame){--gutter-l:calc(env(safe-area-inset-left,0px) + 20px);--gutter-r:calc(env(safe-area-inset-right,0px) + 20px)}.chip,.phase-step,.step,.slot,.winners li>button,.admin-stats .stat,.costume .zoom,.drop,.photo-tile,.viewer-nav{transition:transform .16s var(--ease-out), border-color .2s ease, background-color .2s ease, color .2s ease}.chip:active,.phase-step:active,.step:active,.slot:not(:disabled):not(.empty):active,.winners li>button:active,.admin-stats a.stat:active,.music:active,.costume .zoom:active{transform:scale(.97)}.drop:active{transform:scale(.98)}.photo-tile:active{transform:scale(.96)}.viewer-nav:not(:disabled):active{transform:translateY(-50%)scale(.94)}.tabbar a:active img{transform:scale(.88)}.linkish:active,.icon-btn:active{opacity:.6}@media (hover:hover) and (pointer:fine){.chapter-tile:hover{border-color:var(--bone-dim)}.chapter-tile:hover img{transform:rotate(-4deg)scale(1.06)}.btn:not([disabled]):hover{background:#fff6e2}.btn.ember:not([disabled]):hover{background:var(--ember-hover)}.btn.alt:not([disabled]):hover{background:#cec3a9}.btn.ghost:not([disabled]):hover{background:#e9dfc714}.linkish:hover,.icon-btn:hover{color:var(--bone)}.icon-btn.danger:hover{color:var(--error)}.frame-label:hover{background:#fff6e2}.drop:hover{border-color:var(--bone);background:#13110d}.slot:hover:not(:disabled){border-color:var(--bone-dim)}.photo-tile:hover img.is-loaded{transform:scale(1.03)}.admin-stats a.stat:hover{border-color:var(--bone-dim)}.chip:hover:not([aria-pressed=true]){color:var(--bone);border-color:var(--bone-dim)}.phase-step:hover:not([aria-pressed=true]),.step:hover:not([aria-current=step]){border-color:var(--bone-dim)}.tabbar a:hover:not([aria-current=page]){color:var(--bone)}.tabbar a:hover:not([aria-current=page]) img{opacity:.8}.music:hover{color:var(--bone)}summary:hover .info-toggle{border-color:var(--bone)}}@supports (interpolate-size:allow-keywords) and selector(::details-content){.info-panel,.admin-section{interpolate-size:allow-keywords}.info-panel::details-content{block-size:0;transition:block-size .3s var(--ease-out), content-visibility .3s allow-discrete;overflow-y:clip}.admin-section::details-content{block-size:0;transition:block-size .3s var(--ease-out), content-visibility .3s allow-discrete;overflow-y:clip}.info-panel[open]::details-content{block-size:auto}.admin-section[open]::details-content{block-size:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
