.door-screen{background:radial-gradient(ellipse at 50% 35%, #1d170d 0%, var(--black) 60%);flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100dvh;padding:24px 20px 120px;display:flex}.door-stage{perspective:900px;aspect-ratio:200/380;width:min(62vw,250px);position:relative}.doorway{clip-path:polygon(0 12%,9% 12%,9% 6.3%,21% 6.3%,21% 0,79% 0,79% 6.3%,91% 6.3%,91% 12%,100% 12%,100% 100%,0 100%);background:radial-gradient(ellipse at 50% 60%, #fff6d8 0%, var(--gold-hi) 35%, var(--gold) 65%, #5a4510 100%);position:absolute;inset:4% 0 0}.door{transform-origin:0%;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.6,.05,.3,1);position:absolute;inset:0}.door svg{filter:drop-shadow(0 0 18px #d4af3726);width:100%;height:100%;display:block}.door.open{transform:rotateY(-104deg)}.door.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.slot{border:1.5px solid var(--gold);background:#000;width:40%;height:6.5%;position:absolute;top:19%;left:30%;overflow:hidden}.slot-light{background:radial-gradient(#3a2a10 0%,#1a1208 70%);justify-content:center;align-items:center;gap:18%;display:flex;position:absolute;inset:0;box-shadow:inset 0 0 12px #f3d77a99}.eye{background:var(--cream);clip-path:ellipse(50% 38%);border-radius:50%;width:16%;height:46%;animation:4.5s infinite blink;position:relative}.eye:after{content:"";aspect-ratio:1;background:var(--black);border-radius:50%;width:42%;animation:6s infinite look;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes blink{0%,46%,50%,to{transform:scaleY(1)}48%{transform:scaleY(.1)}}@keyframes look{0%,30%{margin-left:0}40%,60%{margin-left:-22%}70%,to{margin-left:18%}}.slot-cover{border-right:1.5px solid var(--gold);background:repeating-linear-gradient(90deg,#2a2114 0 6px,#1b150c 6px 8px);transition:transform .7s;position:absolute;inset:0}.slot.open .slot-cover{transform:translate(-100%)}.slot.slam .slot-cover,.slot.instant .slot-cover{transition:transform 80ms ease-in}.door-title{font-family:var(--display);letter-spacing:.5em;color:var(--gold);text-align:center;margin-left:.5em;font-size:15px}.speech{font-family:var(--deco);text-align:center;max-width:320px;min-height:2.6em;color:var(--cream);font-size:22px;line-height:1.3;transition:opacity .3s}.pw-form{justify-content:center;gap:10px;width:min(84vw,320px);display:flex}.pw-form input{border:none;border-bottom:1px solid var(--gold);letter-spacing:.15em;text-align:center;background:0 0;border-radius:0;outline:none;flex:1;min-width:0;padding:10px 4px;font-size:18px}.pw-form input::placeholder{color:var(--dim);letter-spacing:.3em}.flood{pointer-events:none;z-index:50;opacity:0;background:radial-gradient(circle at 50% 45%, #fff9e6 0%, var(--gold-hi) 25%, var(--gold) 45%, #d4af3700 70%);position:fixed;inset:0;transform:scale(.2)}.flood.on{opacity:1;transition:transform 1.1s ease-in,opacity .3s;transform:scale(3)}.flood.fade{opacity:0;transition:opacity .9s ease-out}.page{padding-bottom:140px}.hero{text-align:center;padding:56px 20px 8px;position:relative;overflow:hidden}.hero:before{content:"";background:repeating-conic-gradient(from -90deg at 50% 100%, #d4af3729 0 1.5deg, transparent 1.5deg 9deg);pointer-events:none;position:absolute;inset:-20% -50% 30%;-webkit-mask:radial-gradient(at 50% 100%,#000 20%,#0000 70%);mask:radial-gradient(at 50% 100%,#000 20%,#0000 70%)}.hero .eyebrow{position:relative}.hero h1{font-family:var(--display);margin:14px 0 0;font-weight:400;line-height:.9;position:relative}.hero .name{letter-spacing:.08em;color:var(--cream);font-size:clamp(48px,18.18vw - 10.18px,58px);display:block}.hero .forty{letter-spacing:-.02em;font-size:150px;display:block}.hero p{font-family:var(--deco);margin:10px 0 0;font-size:21px;position:relative}.countdown{padding-top:34px}.frame{border:2px solid var(--gold);background:var(--ink);width:min(68vw,270px);margin:0 auto;padding:9px;position:relative}.frame:before{content:"";border:1px solid var(--gold-lo);pointer-events:none;position:absolute;inset:4px}.frame .corner{background:var(--black);border:2px solid var(--gold);width:12px;height:12px;position:absolute;transform:rotate(45deg)}.frame .tl{top:-8px;left:-8px}.frame .tr{top:-8px;right:-8px}.frame .bl{bottom:-8px;left:-8px}.frame .br{bottom:-8px;right:-8px}.frame .fan{width:60px;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.photo{position:relative}.photo svg{filter:grayscale()contrast(1.08);width:100%;display:block}.grain{pointer-events:none;opacity:.22;mix-blend-mode:overlay;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%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1.4 -.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.tower-wrap{position:relative}.tower{z-index:2;width:min(94vw,400px);margin:-10px auto 0;display:block;position:relative;overflow:visible}.tower .glass{fill:#ffffff09;stroke:#f3d77abf;stroke-width:.9px}.tower .rim{fill:none;stroke:#f3d77ae6;stroke-width:.8px}.tower .stem{fill:none;stroke:#f3d77abf;stroke-width:1.1px;stroke-linecap:round}.tower .liq{fill:url(#champ)}.tower .filling .glass,.tower .filling .rim{stroke:#fff1bf;filter:drop-shadow(0 0 3px #f3d77a)}.tower .bubble{fill:#fff6d8;opacity:0;transform-box:fill-box;animation:2.4s infinite rise}.tower .filling .bubble{opacity:.9}@keyframes rise{0%{opacity:0;transform:translateY(0)}20%{opacity:.9}to{opacity:0;transform:translateY(-7px)}}.tower .stream{stroke:url(#pour);stroke-width:2.4px;stroke-dasharray:5 3;stroke-linecap:round;animation:.5s linear infinite pour}@keyframes pour{to{stroke-dashoffset:-8px}}.tower .sparkles{display:none}.tower.full .sparkles{display:inline}.tower .sparkle{fill:#fff6d8;opacity:0;transform-box:fill-box;transform-origin:50%;animation:3.2s ease-in-out infinite twinkle}@keyframes twinkle{0%,to{opacity:0;transform:scale(.3)}50%{opacity:.9;transform:scale(1)}}.tower.flash .glass,.tower.flash .rim{animation:1.6s ease-out flash}@keyframes flash{30%{stroke:#fff6d8;filter:drop-shadow(0 0 6px #f3d77a)}}.numerals{text-align:center;justify-content:center;gap:22px;margin-top:22px;display:flex}.numerals b{font-family:var(--display);font-size:34px;font-weight:400;display:block}.numerals span{font-family:var(--deco);letter-spacing:.3em;color:var(--muted);font-size:12px}.caption{text-align:center;font-family:var(--deco);color:var(--muted);max-width:300px;margin:14px auto 0;font-size:17px;line-height:1.35}.sub{text-align:center;font-family:var(--deco);color:var(--gold);margin:0 0 22px;font-size:18px}.card{border:1px solid var(--gold);background:linear-gradient(#d4af370f,#0000 60%);padding:22px 20px;position:relative}.card:before{content:"";pointer-events:none;border:1px solid #8a6d1f99;position:absolute;inset:5px}.detail{grid-template-columns:70px 1fr;align-items:baseline;gap:6px 12px;margin:0 0 16px;display:grid}.detail dt{font-family:var(--deco);letter-spacing:.25em;color:var(--gold);font-size:13px}.detail dd{margin:0;font-size:18px;line-height:1.4}.detail dd small{color:var(--muted);font-size:15px;display:block}.field{margin-bottom:22px}.field>label,.field>.q{font-family:var(--deco);color:var(--cream);margin-bottom:10px;font-size:19px;display:block}.field>label small,.field>.q small{color:var(--muted);font-size:14px}.text{border:none;border-bottom:1px solid var(--gold);background:#ffffff08;border-radius:0;outline:none;width:100%;padding:12px 6px;font-size:18px}.text::placeholder{color:var(--dim)}.duo{grid-template-columns:1fr 1fr;gap:12px;display:grid}.big{border:1px solid var(--gold-lo);font-family:var(--display);letter-spacing:.08em;cursor:pointer;background:0 0;padding:16px;font-size:22px}.big.sel,.chip.sel{background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:#1a1408;border-color:var(--gold-hi)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--gold-lo);cursor:pointer;background:0 0;border-radius:999px;padding:9px 14px;font-size:16px}.err{color:var(--warn);margin-top:6px;font-size:14px}.err:empty{display:none}.deadline{text-align:center;font-family:var(--deco);color:var(--gold-hi);margin:-10px 0 24px;font-size:18px}.returning{text-align:center;font-family:var(--deco);color:var(--muted);margin:-10px 0 24px;font-size:17px}.notice{border:1px solid var(--gold);text-align:center;background:#d4af3714;margin:0 0 22px;padding:16px}.notice p{font-family:var(--deco);margin:0 0 12px;font-size:20px}.notice .big{padding:14px 8px;font-size:17px}.send{width:100%;padding:16px}.send-err{text-align:center;margin-top:12px;font-size:16px}.done{text-align:center;padding:10px 0}.done .big-msg{font-family:var(--display);margin:6px 0 10px;font-size:28px}.done p{font-family:var(--deco);color:var(--muted);margin:0 0 20px;font-size:18px}.closing{font-family:var(--display);text-align:center;margin:0;font-size:26px;line-height:1.25}footer{text-align:center;color:var(--dim);font-family:var(--deco);padding:40px 20px 0;font-size:14px}.horn{top:max(12px, env(safe-area-inset-top));z-index:40;border:1px solid var(--gold);cursor:pointer;background:#0b0a08cc;border-radius:50%;place-items:center;width:46px;height:46px;padding:0;display:grid;position:fixed;right:12px}.horn svg{width:28px;height:28px}.horn .strike{display:none}.horn.muted .strike{display:inline}.horn.muted .notes{display:none}.horn .notes{transform-box:fill-box;animation:1.6s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(-2px)}}.confetti{pointer-events:none;z-index:30;width:100%;height:100%;position:fixed;inset:0}.resting{pointer-events:none;z-index:3;height:0;position:absolute;left:0;right:0}.resting svg{position:absolute;overflow:visible}.resting-tower{bottom:-6px}.resting-card{top:0}.fading{transition:opacity .9s}.faded{opacity:0}
