@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#f3ead7;--muted:#bec8bc;--gold:#d9b777;--line:rgba(218,186,124,.25);--green:#071c16;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;font-family:var(--sans);font-size:16px;background:var(--green);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;min-width:280px}button,a,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}a:hover,button:hover{color:#fff4d5}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #ffe2a2;outline-offset:6px}button:focus-visible{outline-offset:4px}[hidden]{display:none!important}p{line-height:1.65}h1,h2,p{margin-top:0}.screen-reader,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{position:fixed;left:1rem;top:1rem;z-index:30;background:#fff;color:#071c16;padding:1rem}
.room-backdrop{position:absolute;inset:0 0 auto;height:min(1100px,110vw);min-height:820px;background:linear-gradient(180deg,rgba(3,17,12,.25),rgba(5,24,17,.4) 42%,#071c16 97%),url('../assets/draw/sealed-key-desk.webp') center top/cover no-repeat;pointer-events:none;z-index:-1}.room-masthead{max-width:1320px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:28px 48px;border-bottom:1px solid var(--line);gap:24px}.case-brand{text-decoration:none;font-family:var(--serif);letter-spacing:.05em;font-size:26px;line-height:1}.case-brand strong{font-weight:500;color:var(--gold)}.case-brand span{display:block;font:10px var(--sans);letter-spacing:.23em;margin-top:10px}.room-masthead nav{display:flex;gap:30px;font-size:14px}.room-masthead nav a{text-decoration:none;color:#e1dfcf}.draw-room{max-width:1320px;padding:0 48px;margin:auto}.room-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0}.edition,.eyebrow{font:500 12px/1.5 var(--sans);letter-spacing:.18em;color:var(--gold)}.edition{font-size:11px;letter-spacing:.15em}.connection{color:var(--muted);font-size:12px;white-space:nowrap}.connection[data-state=live]:before{content:'';display:inline-block;width:5px;height:5px;background:#bed8b8;border-radius:50%;margin-right:8px;vertical-align:middle}.connection[data-state=offline]{color:#e6bd98}.draw-stage{display:grid;grid-template-columns:.9fr 1.25fr;gap:20px;align-items:center;min-height:555px;padding:32px 0 44px}.draw-introduction{position:relative;z-index:2}.draw-introduction .eyebrow{margin-bottom:21px}h1{font-family:var(--serif);font-size:clamp(76px,8.1vw,114px);font-weight:400;letter-spacing:-.045em;line-height:.9;margin-bottom:27px}h1 em{font-weight:400;color:var(--gold)}.draw-deck{font-size:17px;color:#d9dece;line-height:1.65;margin:0 0 28px;max-width:29ch}.countdown-wrap{padding-top:3px}.countdown-label{font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.15em;margin-bottom:12px}.countdown{display:flex;gap:13px;align-items:flex-start;width:max-content;max-width:100%;font-variant-numeric:tabular-nums}.countdown>span{display:grid;text-align:center;gap:6px}.countdown b{font-size:38px;letter-spacing:.015em;font-weight:400;line-height:1}.countdown small{font-size:9px;letter-spacing:.17em;color:var(--muted)}.countdown i{font-style:normal;font-size:24px;color:var(--gold);line-height:1.4}.clock-note{color:var(--muted);font-size:12px;line-height:1.7;margin:16px 0 0;max-width:36ch}.room-controls{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:24px}.text-button{background:none;border:0;border-bottom:1px solid rgba(215,186,128,.35);border-radius:0;padding:7px 0;color:#d8d5c5;font:500 12px/1.5 var(--sans);text-decoration:none;min-height:36px}.text-button[aria-pressed=true]{color:#ffe0a3;border-color:#ffe0a3}.reveal-scene{isolation:isolate;position:relative;min-width:0;height:470px;display:grid;place-items:center;perspective:1400px}.scene-halo{position:absolute;width:75%;height:80%;background:radial-gradient(ellipse,rgba(194,158,84,.12),transparent 65%);filter:blur(22px);z-index:-1}.envelope-stack{position:relative;width:110%;max-width:710px;aspect-ratio:1.5;transform:rotate(-6deg) translateX(-1%);filter:drop-shadow(0 35px 30px rgba(0,0,0,.55));transition:transform 1.5s ease,opacity 1.4s ease}.envelope-stack img{width:100%;height:auto;display:block}.envelope-back,.envelope-middle{position:absolute;inset:0}.envelope-back{transform:rotate(-7deg) translate(-12px,3px);opacity:.6}.envelope-middle{transform:rotate(6deg) translate(10px,-6px);opacity:.85}.envelope-front{position:relative}.envelope-inscription{position:absolute;inset:auto 15% 15%;text-align:center;color:#4e3928;font:600 11px/1.4 var(--sans);letter-spacing:.17em}.scene-caption{position:absolute;bottom:8px;left:8%;right:0;display:flex;align-items:center;gap:18px;text-align:center}.scene-caption p{font:500 10px/1.5 var(--sans);letter-spacing:.2em;color:#c8bb9e;margin:0;white-space:nowrap}.caption-rule{height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold));opacity:.45}.caption-rule:last-child{transform:rotate(180deg)}.interference{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse,rgba(24,77,49,.82),transparent 75%);text-shadow:0 0 16px #99c19b;opacity:0;pointer-events:none;transition:opacity .7s}.interference span{font-size:16px;letter-spacing:.23em;color:#e1f1da}.interference small{font-size:10px;letter-spacing:.18em;margin-top:10px;color:#c3d5b6}.reveal-scene[data-stage=interference] .interference{opacity:1}.reveal-scene[data-stage=interference] .envelope-stack{filter:drop-shadow(0 0 30px #42624a);transform:rotate(-3deg) scale(.94)}.reveal-scene[data-stage=shuffling] .envelope-stack{animation:sealed-breathe 2.6s ease-in-out infinite}.reveal-scene[data-stage=opening] .envelope-stack{transform:rotate(0) scale(1.045);filter:drop-shadow(0 0 26px rgba(226,189,105,.24))}.reveal-scene[data-stage=revealed] .envelope-stack{transform:translateY(140px) rotate(8deg) scale(.83);opacity:0;pointer-events:none}.winner-card{position:absolute;inset:4% 11% 9%;text-align:center;padding:22px 20px;background:linear-gradient(145deg,#152e20,#0a2118);border:1px solid #b19256;outline:1px solid rgba(215,186,128,.26);outline-offset:7px;box-shadow:0 20px 80px #0008;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:card-arrive 1.5s ease both}.winner-card .eyebrow{font-size:10px;margin:0}.winner-key{width:126px;height:116px;object-fit:cover;mix-blend-mode:screen;border-radius:50%;margin:7px 0}.winner-caption{font-size:13px;color:var(--muted);margin:0 0 6px}.winner-card h2{font:500 clamp(28px,3vw,48px)/1.1 var(--serif);color:#f3d496;margin:0 0 12px;overflow-wrap:anywhere;max-width:100%}.winner-note{font:italic 19px/1.3 var(--serif);margin:0}.signature{font:italic 16px var(--serif);color:var(--gold);margin:16px 0 0}.notice:empty{display:none}.notice{font-size:14px;color:#ecdbc0;padding:14px 18px;border:1px solid var(--line);background:#12291f;margin:0 0 20px}.notice.error{border-color:#bb7962;color:#f3cdb8}.special-banner{padding:12px 16px;border:1px solid #d9b777;background:#253727;font-size:13px;text-align:center;letter-spacing:.04em}.entry-register{border-top:1px solid var(--line);padding:32px 0 24px}.register-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:25px}.register-heading .eyebrow{font-size:10px;margin-bottom:7px}.register-heading h2{font:400 35px/1.1 var(--serif);margin:0}.register-heading>p{color:var(--muted);font-size:12px;text-align:right;margin:0}.entry-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.entry-list li{display:flex;gap:15px;align-items:center;border-top:1px solid rgba(212,178,108,.2);border-bottom:1px solid rgba(212,178,108,.1);background:linear-gradient(135deg,rgba(218,187,116,.06),rgba(6,27,19,.1));padding:18px 16px;min-width:0;transition:border-color .5s,background .5s}.ticket-number{font:italic 27px var(--serif);color:#ba9b68;min-width:24px}.ticket-name{font:500 16px/1.35 var(--serif);color:#f1e6ce;overflow-wrap:anywhere}.ticket-name small{display:block;font:9px var(--sans);letter-spacing:.16em;color:#a6b6a4;margin-top:8px}.entry-list li.is-highlighted{border-color:#d8b56c;background:rgba(216,181,108,.16)}.entry-list li.is-winner{border-color:#ead299;background:rgba(216,181,108,.17)}.register-fine{font-size:11px;color:#aebbaf;margin:18px 0 0}.result-actions{border-top:1px solid var(--line);padding:26px 0 32px;text-align:center}.result-actions p{font-size:14px;color:var(--muted);margin-bottom:14px}.result-actions .text-button{margin-left:20px}.gold-button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:14px 23px;background:linear-gradient(140deg,#e5c790,#cbaa69);color:#13251a;border:1px solid #e1c289;font-size:13px;line-height:1.35;font-weight:700;text-decoration:none;border-radius:2px;box-shadow:0 4px 18px #0002}.gold-button:hover{background:#f1d7a6;color:#081d13}.host-panel{border:1px solid #8a7447;background:rgba(27,45,29,.8);padding:26px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:25px;margin:24px 0}.host-panel h2{font:400 29px var(--serif);margin:0 0 9px}.host-panel .eyebrow{font-size:10px;margin-bottom:8px}.host-panel p{font-size:13px;margin:0;color:#cfdbc8}.host-actions{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.host-actions .gold-button{width:100%;margin-bottom:5px}.access-panel{padding:28px;background:#0e281e;border:1px solid var(--line);max-width:600px;margin:0 auto 38px;text-align:center}.access-panel h2{font:400 30px var(--serif);margin-bottom:10px}.access-panel p{font-size:15px;color:#c7d3c3}.access-panel .text-button{display:block;margin:12px auto 0}.draw-rules{border-top:1px solid var(--line);padding:22px 0;color:var(--muted)}.draw-rules summary{font-size:13px;cursor:pointer;padding:5px 0}.draw-rules>div{max-width:760px;padding-top:18px}.draw-rules p{font-size:14px;line-height:1.75}.room-footer{border-top:1px solid var(--line);padding:23px 0 30px;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.14em;color:#a8b9a7}.draw-confirm{max-width:520px;width:calc(100% - 32px);background:#102b20;color:var(--ink);border:1px solid #bb9b63;padding:32px;box-shadow:0 30px 100px #000}.draw-confirm::backdrop{background:rgba(1,11,6,.85);backdrop-filter:blur(5px)}.draw-confirm h2{font:400 36px var(--serif)}.draw-confirm p{font-size:15px}.dialog-actions{display:grid;gap:15px;margin-top:25px}.dialog-actions form{text-align:center}.is-reduced *,.is-reduced *:before,.is-reduced *:after{animation:none!important;transition:none!important}.is-reduced .envelope-stack{transform:none!important}.is-reduced .interference{background:#142b20}.is-reduced .reveal-scene[data-stage=revealed] .envelope-stack{opacity:0}
@keyframes sealed-breathe{50%{transform:rotate(-3deg) translateY(-8px)}}@keyframes card-arrive{from{opacity:0;transform:translateY(-18px) scale(.97)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(min-width:1440px){.draw-stage{min-height:600px}.reveal-scene{height:500px}}
@media(max-width:1000px){.room-masthead{padding:25px 32px}.draw-room{padding:0 32px}.draw-stage{grid-template-columns:1fr 1.15fr;gap:0}.entry-list{grid-template-columns:repeat(3,minmax(0,1fr))}.reveal-scene{height:430px}.envelope-inscription{font-size:9px}.winner-card{inset:10% 8% 13%}.winner-key{width:90px;height:86px}.winner-note{font-size:17px}.scene-caption p{font-size:9px;white-space:normal}.scene-caption{left:0;gap:8px}}
@media(max-width:700px){.room-backdrop{height:880px;min-height:0;background-position:58% 0;background-size:auto 820px}.room-masthead{padding:20px 21px;gap:16px;align-items:center}.case-brand{font-size:23px}.case-brand span{font-size:8px;letter-spacing:.15em}.room-masthead nav{gap:14px;font-size:12px}.room-masthead nav a:last-child{display:none}.draw-room{padding:0 22px}.room-topline{padding:19px 0;align-items:flex-start;gap:12px}.edition{font-size:8px;max-width:180px;line-height:1.6}.connection{font-size:10px;max-width:130px;white-space:normal;text-align:right}.draw-stage{grid-template-columns:1fr;padding:15px 0 24px;gap:6px;min-height:0}.draw-introduction{text-align:center}.draw-introduction .eyebrow{font-size:10px;margin-bottom:18px}h1{font-size:78px;line-height:.91;letter-spacing:-.05em;margin-bottom:19px}h1 br{display:none}h1 em{display:block}.draw-deck{font-size:14px;line-height:1.7;max-width:none;margin-bottom:22px}.countdown-wrap{display:flex;flex-direction:column;align-items:center}.countdown-label{font-size:10px;margin-bottom:11px}.countdown b{font-size:31px}.countdown small{font-size:8px}.countdown{gap:12px}.clock-note{font-size:11px;margin-top:12px;max-width:38ch}.room-controls{justify-content:center;gap:16px;margin-top:14px}.text-button{font-size:11px;min-height:36px}.reveal-scene{height:auto;min-height:290px;aspect-ratio:1.16;margin-top:12px}.envelope-stack{width:105%;transform:rotate(-5deg)}.envelope-inscription{font-size:8px;letter-spacing:.12em;bottom:16%}.scene-caption{bottom:0;left:5%;right:5%;gap:12px}.scene-caption p{font-size:8px;letter-spacing:.15em;white-space:nowrap}.winner-card{inset:0 8% 13%;padding:16px}.winner-key{width:76px;height:72px;margin:3px 0}.winner-card .eyebrow{font-size:8px}.winner-card h2{font-size:33px;margin-bottom:8px}.winner-caption{font-size:11px}.winner-note{font-size:16px}.signature{font-size:13px;margin-top:10px}.interference span{font-size:11px;letter-spacing:.16em}.interference small{font-size:8px}.entry-register{padding-top:23px}.register-heading{gap:15px;align-items:center;margin-bottom:19px}.register-heading .eyebrow{font-size:8px}.register-heading h2{font-size:27px}.register-heading>p{font-size:10px;max-width:130px}.entry-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.entry-list li{padding:14px 9px;gap:10px}.ticket-number{font-size:23px;min-width:20px}.ticket-name{font-size:17px}.ticket-name small{font-size:8px;letter-spacing:.08em}.register-fine{font-size:10px;line-height:1.75}.host-panel{grid-template-columns:1fr;padding:21px;gap:19px}.host-actions{align-items:stretch}.host-actions .text-button{text-align:left}.host-panel h2{font-size:29px}.host-panel p{font-size:13px}.room-footer{font-size:8px;line-height:1.6}.room-footer span{max-width:145px}.room-footer span:last-child{text-align:right}.special-banner{font-size:11px}.result-actions .text-button{display:block;width:max-content;margin:14px auto 0}.draw-rules summary{font-size:12px}.draw-confirm{padding:25px}.draw-confirm h2{font-size:31px}}
@media(max-width:360px){.draw-room{padding:0 16px}h1{font-size:70px}.entry-list{grid-template-columns:1fr}.reveal-scene{min-height:255px}.winner-card h2{font-size:27px}.winner-key{width:64px;height:60px}.register-heading>p{font-size:9px}.scene-caption p{font-size:7px}}

/* Keep essential timing and controls readable at phone size. */
.reveal-scene{overflow-x:clip;overflow-y:visible}
.clock-note{font-size:14px;max-width:40ch}.room-controls .text-button{font-size:13px}.countdown small{font-size:10px}.special-banner{display:flex;justify-content:space-between;align-items:center;gap:16px}.special-banner .text-button{flex-shrink:0}.entry-list .ticket-name small{font-size:10px}.register-fine{font-size:12px}.register-heading>p{font-size:13px}.scene-caption p{font-size:10px}.connection{font-size:12px}.draw-deck{font-size:17px}
@media(max-width:700px){.clock-note{font-size:13px}.draw-deck{font-size:16px}.room-controls{gap:13px}.room-controls .text-button{font-size:12px}.register-heading>p{font-size:12px}.register-fine{font-size:12px}.scene-caption p{font-size:9px;white-space:normal}.special-banner{align-items:flex-start;text-align:left}.special-banner .text-button{font-size:10px;max-width:92px}.connection{font-size:11px}.entry-list .ticket-name small{font-size:9px}}

/* A slow positional tear, never a flashing light effect. */
.grinch-takeover{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:24px;border:0;background:#030a06;color:#ccdfb2;overflow:auto;z-index:1000}
.grinch-takeover::backdrop{background:#010402}.takeover-copy{position:relative;min-height:calc(100dvh - 48px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:monospace}.takeover-copy h2{font:700 clamp(36px,8vw,110px)/1.05 monospace;letter-spacing:-.04em;text-shadow:4px 1px #376826,-3px 0 #702824;margin:20px 0;animation:signal-tear 2.7s steps(1,end) infinite}.takeover-copy>p{max-width:40ch}.takeover-small{font-size:13px;color:#92a487}.redacted-name{font-size:clamp(18px,5vw,60px);max-width:100%;overflow:hidden;background:#91b357;color:#020904;transform:skew(-4deg);margin:15px 0 30px}.takeover-noise{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 7px,#4e703019 8px 10px),linear-gradient(120deg,#16260899,transparent 60%);opacity:.8}.takeover-copy .text-button{margin:8px 14px;color:#e2ecd7}.reveal-scene[data-stage=blocked] .envelope-stack{filter:grayscale(1) brightness(.35);opacity:.45}.grinch-letter-panel{max-width:900px;margin:40px auto;padding:28px;border:1px solid #6c8438;background:#071008;scroll-margin-top:20px}.grinch-letter-panel h2{font:500 clamp(30px,5vw,48px)/1.15 var(--serif)}.grinch-letter-panel figure{margin:25px 0}.grinch-letter-panel img{display:block;width:100%;height:auto}.grinch-letter-panel>p{color:#b9c8ad;font-size:14px}.grinch-transcript{padding:18px;border:1px solid #597038}.grinch-transcript summary{cursor:pointer;font-size:16px}.grinch-letter-text{white-space:pre-wrap;font-size:17px;line-height:1.8;margin:24px 0 0}.private-award{border:1px solid #dcc281;background:#203620;padding:24px;margin:20px 0;color:#f8ebc9}.private-award h3{font:500 32px/1.15 var(--serif);margin:0 0 12px}.private-award p{font-size:15px}.private-award .eyebrow{font-size:11px}.is-reduced .takeover-copy h2{animation:none;text-shadow:none}
@keyframes signal-tear{0%,100%{transform:none}35%{transform:translateX(-5px) skew(-2deg)}70%{transform:translateX(4px)}}
@media(max-width:700px){.grinch-letter-panel{margin:24px 0;padding:17px}.grinch-letter-text{font-size:16px}.private-award{padding:18px}.takeover-copy>p{font-size:14px}}
