:root{--gold:#d5a758;--red:#ed001c;--bone:#eee3ce;--muted:#c0aea0;--line:#785839;--panel:#17110fed}*{box-sizing:border-box}body{margin:0;color:var(--bone);background:#100c0b;font-family:system-ui,sans-serif}button,input,a{font:inherit}button,a.button,.button{cursor:pointer;color:var(--bone);background:linear-gradient(#3c2c20,#21170f);border:1px solid #8b6941;border-radius:3px;padding:13px 20px;text-decoration:none;font-weight:750;box-shadow:inset 0 1px #dfb67530,0 4px 10px #0006}button:hover,.button:hover{border-color:#ecc584;background:linear-gradient(#503322,#27190f)}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:linear-gradient(#b82b18,#651007)!important;border-color:#dd7143!important}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}a{color:var(--gold)}.world{position:fixed;inset:0;background:linear-gradient(90deg,#100908b5,#10090820,#10090865),url('assets/dungeon-rhr.webp') center/cover;z-index:-3}.world:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,#0b0607e8)}header{position:relative;z-index:30;height:88px;padding:10px 4vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#100b09ed,transparent)}header img{width:133px}nav{display:flex;align-items:center;gap:10px}nav button,nav a{background:#140d0cb0;border:1px solid #72543960;text-decoration:none;padding:9px 13px;color:#ead3b8;font-size:14px}h1,h2{font-family:Georgia,serif;letter-spacing:-.04em;line-height:1.02}h1{font-size:clamp(34px,5vw,74px);margin:14px 0 22px;text-shadow:0 3px 12px #000}h1 em{color:#efa45b;font-style:normal}h2{font-size:32px}.kicker{text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-size:12px;font-weight:800}.lede{font-size:19px;line-height:1.6;color:#dfd1be;max-width:600px}.fine{font-size:13px;color:#baa99a;line-height:1.5}.screen{display:none;width:min(1180px,92vw);margin:0 auto;padding:20px 0 100px;min-height:calc(100svh - 88px)}.screen.active{display:block;animation:arrive .35s ease-out}.intro.active{display:flex;align-items:center}.intro-copy{width:64%;padding:40px 0 100px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 16px}.sheet{border:1px solid #856039;background:linear-gradient(130deg,#23180fec,#110c09ec);box-shadow:0 22px 90px #0009,inset 0 0 0 5px #b58d4a0b;padding:32px;width:72%;position:relative}.sheet:before{content:'';position:absolute;inset:8px;border:1px solid #a77b3b25;pointer-events:none}.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.door{padding:14px 8px;background:linear-gradient(#100b0a,#342115);text-align:center}.door img{height:100px;width:100%;object-fit:contain;filter:drop-shadow(0 3px 10px #c7381655)}.door b,.door span{display:block;margin-top:12px}.door b{font-size:14px}.door span{font-size:12px;color:#c7b8a3}.door.selected{border-color:#f1b754;box-shadow:0 0 20px #d862182a}.guide-copy{padding:16px 0;line-height:1.65;min-height:120px;color:#d4c4b1}.tutorial-art img{height:150px;object-fit:contain;margin:auto}.setup-sheet{max-width:770px}.choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}.choice-grid button{font:700 32px Georgia}.choice-grid .selected{border-color:#ffc66e;background:#792517}.nickname{display:block;margin:12px 0}.nickname span{display:block;color:#c8b7a0;font-size:14px;margin-bottom:5px}.nickname input,input[type=number]{width:100%;border:1px solid #795334;background:#0e0908;color:var(--bone);padding:13px;border-radius:2px}.names-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;margin:15px 0}.check input{accent-color:#b62c14;width:20px;height:20px;flex:none}.form-error{color:#ffb7a3;min-height:20px}.proof-choice{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.proof-choice .selected{border-color:#ffba62;background:#572719}.host{position:fixed;z-index:35;right:7vw;top:24vh;width:230px;display:flex;flex-direction:column;align-items:center;pointer-events:none;transition:top .6s,right .6s,transform .6s}.avatar{width:170px;aspect-ratio:1178/2048;position:relative;pointer-events:auto;cursor:pointer;animation:float 4s ease-in-out infinite;filter:drop-shadow(0 0 22px #d7181944);transform-style:preserve-3d;--look:0deg}.avatar img{width:100%;height:100%;position:absolute;inset:0;object-fit:fill}.skull-head,.skull-jaw{position:absolute;inset:0;transform:rotateY(var(--look));transition:transform .2s}.skull-head{clip-path:polygon(0 0,100% 0,100% 67%,0 67%)}.skull-jaw{clip-path:polygon(0 67%,100% 67%,100% 100%,0 100%);transform-origin:50% 68%}.talking .skull-jaw{animation:jaw .24s ease-in-out infinite alternate}.talking .avatar{filter:drop-shadow(0 0 26px #e33a2360)}.eye{position:absolute;inset:0;background:#220100;opacity:1}.eye.left{clip-path:polygon(17% 46%,18% 36%,26% 29%,35% 32%,39% 39%,37% 46%,29% 47%)}.eye.right{clip-path:polygon(62% 45%,62% 34%,70% 24%,78% 22%,86% 32%,87% 44%,78% 48%)}.eye img{opacity:.13}.eyes-on .eye img{opacity:1;animation:eyeFlicker .42s ease-in-out infinite alternate;transform-origin:50% 48%}.eyes-on .eye.right img{animation-delay:-.2s}.eye.wink img{opacity:0!important;animation:none}.eye-target{position:absolute;top:28%;width:29%;height:21%;z-index:6}.eye-target.left{left:13%}.eye-target.right{right:10%}.mouth-fire{opacity:0;clip-path:polygon(15% 68%,82% 68%,88% 100%,0 100%);pointer-events:none}.mouth-on .mouth-fire{opacity:1;animation:breath .55s ease-in-out infinite alternate}.inferno-aura{position:absolute;inset:-26% -50% -12%;background:url('assets/flame1.webp') center/cover;opacity:0;filter:drop-shadow(0 0 18px #ff6600);mix-blend-mode:screen;z-index:-1}.inferno .inferno-aura{opacity:.9;animation:breath .3s infinite alternate}.speech{position:relative;text-align:center;padding:17px;background:#e6d0a9;color:#2e1b11;border:3px double #7c4f28;border-radius:2px;box-shadow:0 8px 30px #0007;font:700 15px/1.45 Georgia;width:260px;margin-top:22px;pointer-events:auto}.host.fly{animation:flyback 1.5s}.host.lunge{animation:lunge .9s}.host.laugh .avatar{animation:laugh .18s 6 alternate}.host.arena-host{right:calc(50% - 115px);top:110px}.arena{width:min(1060px,94vw);min-height:calc(100dvh - 88px);padding:8px 0 60px}.arena-top{display:flex;justify-content:space-between;align-items:center}.arena-center{text-align:center}.host-space{height:340px}.rank-label{font-size:12px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;margin:10px 0}.clock{font:700 clamp(68px,10vw,122px)/1 ui-monospace,monospace;color:#ffb45d;text-shadow:0 0 35px #ff450055;letter-spacing:-.05em}.milestones{display:flex;justify-content:center;gap:16px;margin:18px 0;color:#988574;font-size:11px}.milestones .won{color:#ffbd64}.arena-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.arena-actions button{font-size:14px}small{font-size:12px}#recordLabel{position:fixed;right:18px;bottom:45px;font-size:11px;color:#e5bb8c}.floor-fire{position:fixed;left:0;right:0;bottom:-90px;height:135px;pointer-events:none;background:url('assets/flame2.webp') repeat-x bottom/auto 130px;z-index:9;opacity:.6;animation:fireDrift 40s linear infinite}dialog{padding:0;border:1px solid #a5763c;background:linear-gradient(#261a12,#110b08);color:var(--bone);width:min(560px,94vw);max-height:90dvh;box-shadow:0 0 100px #000}dialog::backdrop{background:#050301dd;backdrop-filter:blur(5px)}.modal-shell{padding:32px;position:relative}.close{position:absolute;right:8px;top:8px;padding:4px 10px;font-size:24px}.wheel-wrap{position:relative;margin:24px auto;width:min(320px,70vw);touch-action:none}.wheel-wrap:before{content:'▼';position:absolute;z-index:3;left:calc(50% - 14px);top:-18px;color:#ffe2a4;font-size:32px;filter:drop-shadow(0 2px 4px #000)}.wheel-image{width:100%;display:block;cursor:grab;user-select:none;-webkit-user-drag:none}.wheel-caption{text-align:center;color:var(--gold);min-height:45px}.answers{display:grid;gap:10px}.players-list{display:grid;gap:10px}.players-list button{display:flex;justify-content:space-between;gap:15px}.result-row{padding:17px 0;border-bottom:1px solid #765032;display:flex;justify-content:space-between;gap:16px}.result-row strong{color:#ffd18c}.result-row small{display:block;color:var(--muted);margin-top:6px}.trim{display:grid;grid-template-columns:1fr 1fr;gap:15px}.trim label{font-size:14px}.trim input{display:block;margin-top:8px}progress{width:100%;accent-color:#da622c}.countdown{position:fixed;inset:0;background:#0a0503f8;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.countdown strong{font:700 130px Georgia;color:#ffb564}.countdown p{line-height:1.6}.host.hidden{display:none}.empty{padding:40px;text-align:center}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse}td,th{padding:15px;text-align:left;border-bottom:1px solid #634a32;font-size:14px}th{color:var(--gold)}
@keyframes float{50%{transform:translateY(-9px) rotate(-1deg)}}@keyframes jaw{to{transform:translateY(8px) rotate(3deg)}}@keyframes eyeFlicker{to{transform:scaleY(.91) skewX(2deg);filter:brightness(1.35)}}@keyframes breath{to{transform:scaleX(1.04) scaleY(1.06);filter:brightness(1.25)}}@keyframes flyback{50%{transform:scale(.5) translateY(-90px) rotate(10deg)}}@keyframes lunge{40%{transform:scale(1.35) rotate(-6deg)}}@keyframes laugh{to{transform:rotate(5deg) translateY(-5px)}}@keyframes fireDrift{to{background-position:800px bottom}}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-height:820px) and (min-width:801px){.host.arena-host{top:87px}.arena-host .avatar{width:120px}.arena-host .speech{margin-top:5px;font-size:14px;padding:10px}.host-space{height:255px}.clock{font-size:86px}.milestones{margin:10px 0}}
@media(max-width:800px){header{height:72px;padding:8px 4vw}header img{width:100px}nav{gap:5px}nav button,nav a{font-size:12px;padding:8px}nav a{display:none}.screen{padding:12px 0 64px;min-height:calc(100svh - 72px)}.sheet{width:100%;padding:23px}.intro.active{display:block}.intro-copy{width:100%;text-align:center;padding:10px 0 320px}.intro-copy .actions{justify-content:center}.intro-copy h1{font-size:clamp(32px,8.6vw,57px)}.lede{font-size:16px}.host.home{position:absolute;top:440px;right:calc(50% - 115px)}.host.home .avatar{width:125px}.host:not(.home):not(.arena-host){position:relative;right:auto;top:auto;width:100%;margin:-30px auto 65px}.host:not(.home):not(.arena-host) .avatar{width:85px}.host:not(.home):not(.arena-host) .speech{margin-top:8px;width:min(90vw,430px)}.host.arena-host{top:109px;right:calc(50% - 115px)}.arena-host .avatar{width:106px}.arena-host .speech{font-size:14px;padding:10px;margin-top:7px;width:min(290px,90vw)}.host-space{height:285px}.arena-top .kicker{font-size:10px}.arena-top button{font-size:12px;padding:8px}.clock{font-size:76px}.milestones{gap:9px;font-size:9px;margin:13px 0}.arena-actions{gap:8px}.arena-actions button{font-size:13px;padding:11px 13px}.arena-actions .primary{width:100%}.arena .fine{font-size:12px}.doors{gap:7px}.door{padding:9px 5px}.door img{height:76px}.door b{font-size:12px}.door span{font-size:12px}.names-grid{grid-template-columns:1fr}.choice-grid{grid-template-columns:repeat(4,1fr);gap:8px}.choice-grid button{padding:10px}.speech{width:250px}.modal-shell{padding:27px 20px}.trim{gap:10px}.result-row{font-size:14px}#recordLabel{display:none}}
@media(max-height:700px) and (max-width:800px){.arena-host .avatar{width:76px}.host.arena-host{top:102px}.host-space{height:229px}.clock{font-size:62px}.arena-actions button{padding:9px}.arena .fine{margin:8px 0}.intro-copy{padding-bottom:280px}.host.home{top:430px}.host.home .avatar{width:105px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:800px){.intro.active{min-height:0;padding-bottom:12px}.intro-copy{padding:10px 0 0}.host.home{position:relative;top:auto;right:auto;margin:12px auto 60px}}
/* The elevator journey: real layered artwork, no cropped skull stand-ins. */
:root{--pointer-x:0px;--pointer-y:0px;--bone:#f8ebd9;--muted:#cbbda9}body{overflow-x:hidden;background:#0a0b14}header{height:76px}header img{width:110px}.world{inset:-20px;background:linear-gradient(#09081322,#0806108c),url('assets/library-rhr.webp') center/cover;transform:translate(calc(var(--pointer-x)*-.35),calc(var(--pointer-y)*-.35));transition:opacity .65s}.world:after{background:linear-gradient(transparent 30%,#070609a6)}[data-scene=library] .world{background-image:linear-gradient(#06061212,#06050b77),url('assets/library-rhr.webp')}[data-scene=arena] .world{background-image:linear-gradient(#10061044,#100509b0),url('assets/dungeon-rhr.webp')}[data-scene=gates] .world{background-image:linear-gradient(#08071266,#080710aa),url('assets/lift-gate-rhr.webp'),url('assets/lift-shaft.webp');background-size:cover,cover,cover}[data-scene=descending] .world{opacity:0}.shaft{position:fixed;inset:0;z-index:-2;opacity:0;transition:opacity .5s;pointer-events:none;overflow:hidden}[data-scene=descending] .shaft{opacity:1}.shaft-far,.shaft-near{position:absolute;inset:-25px;background-image:linear-gradient(#09091977,#09091977),url('assets/lift-shaft.webp');background-size:auto 960px;background-repeat:repeat-y;background-position:center 0;animation:shaftDown 13s linear infinite;transform:translateX(calc(var(--pointer-x)*-.3));animation-play-state:paused}.shaft-near{inset:-25px -3vw;background-size:auto 1500px;animation:shaftNear 8s linear infinite;animation-play-state:paused;clip-path:polygon(0 0,13% 0,13% 100%,0 100%,0 0,100% 0,100% 100%,87% 100%,87% 0);filter:brightness(.7);transform:translateX(calc(var(--pointer-x)*.7))}[data-scene=descending] .shaft-far,[data-scene=descending] .shaft-near{animation-play-state:running}.lift-gates{position:fixed;inset:0;z-index:170;pointer-events:none;overflow:hidden}.gate-half{position:absolute;top:0;bottom:0;width:50%;background-image:url('assets/lift-gate-rhr.webp');background-repeat:no-repeat;background-size:200% 100%;transition:transform .65s cubic-bezier(.65,.05,.36,1);filter:drop-shadow(0 0 20px #000)}.gate-left{left:0;background-position:left;transform:translateX(-102%)}.gate-right{right:0;background-position:right;transform:translateX(102%)}.gate-closed .gate-half{transform:translateX(0)}.skip-ride{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:180}.screen{width:min(1120px,92vw);min-height:calc(100svh - 76px);padding:10px 0 120px}.sheet{width:min(760px,100%);margin:18px auto 0;background:linear-gradient(135deg,#17111dee,#100c15ef);border-color:#977450;padding:28px;box-shadow:0 18px 70px #0008}.sheet h1{font-size:clamp(30px,4.5vw,52px)}.sheet p{line-height:1.6}h1{letter-spacing:-.025em}h1 em{color:#ffd08a}.kicker{font-size:12px}.fine{font-size:14px}.intro.active{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0;min-height:calc(100svh - 76px)}.intro-copy{padding:0;width:100%}.intro-copy h1{font-size:clamp(32px,4vw,54px);margin:20px 0 12px}.intro-copy .lede{margin:0 auto;font-size:16px}.actions{justify-content:center}.intro .kicker{margin:0 0 15px}.host-slot{position:relative;display:flex;justify-content:center;width:100%;isolation:isolate}.host,.host.home,.host:not(.home):not(.arena-host){position:relative;top:auto;right:auto;transform:none;width:auto;margin:0;display:flex;align-items:center;pointer-events:none;transition:none;z-index:2}.avatar,.host:not(.home):not(.arena-host) .avatar{position:relative;width:clamp(105px,12vw,165px);aspect-ratio:1823/3169;filter:drop-shadow(0 0 20px #e7181933);animation:float 4s ease-in-out infinite;perspective:600px}.avatar img{object-fit:contain;height:auto;pointer-events:none}.skull-head{inset:0;clip-path:none;z-index:2}.skull-head>img{width:100%;top:0;height:auto}.skull-jaw{inset:auto;top:48.25%;left:1.1%;width:97.86%;height:51.75%;clip-path:none;transform-origin:50% 8%;z-index:1;transform:rotateY(var(--look))}.skull-jaw>img{width:100%;height:auto}.talking .skull-jaw{animation:jawTalk .65s ease-in-out infinite}.eye,.eye.left,.eye.right{inset:auto;background:none;clip-path:none;z-index:3;opacity:0;pointer-events:none;transition:opacity .2s}.eye.left{left:19%;top:30%;width:15.65%;height:16.08%}.eye.right{left:64%;top:23.5%;width:23.92%;height:24.58%}.eye-motion{position:absolute;inset:0;transform:translate(var(--eye-x,0px),var(--eye-y,0px));transition:transform .12s ease-out}.eyes-on .eye,.angry .eye{opacity:1}.eye img,.eyes-on .eye img{opacity:1;inset:auto;bottom:0;animation:none;transform-origin:50% 100%}.eye .layer-1{left:0;width:100%;height:100%}.eye .layer-2{left:16.5%;width:65.83%;height:67.14%}.eye .layer-3{left:31.65%;width:41.98%;height:42.36%}.eyes-on .layer-1,.angry .layer-1{animation:flameOuter .67s ease-in-out infinite alternate}.eyes-on .layer-2,.angry .layer-2{animation:flameInner .43s ease-in-out infinite alternate}.eyes-on .layer-3,.angry .layer-3{animation:flameCore .31s ease-in-out infinite alternate}.eye.right .layer-1{animation-delay:-.3s}.eye.right .layer-2{animation-delay:-.19s}.eye.wink{opacity:0!important}.eye-target{top:26%;height:23%;width:29%}.eye-target.left{left:10%}.eye-target.right{right:6%}.mouth-fire{inset:auto!important;top:67%!important;left:26%!important;width:50%!important;height:auto!important;clip-path:none;z-index:4;transform:scaleY(-1);transform-origin:50% 10%;opacity:0}.mouth-on .mouth-fire{animation:mouthBreath .38s infinite alternate}.inferno-aura{inset:-15% -30% -8%;background:none;filter:drop-shadow(0 0 12px #fa571a);mix-blend-mode:normal;opacity:0;z-index:0}.inferno-aura img{height:100%;width:72%;left:-5%;bottom:0;top:auto;object-fit:fill;transform-origin:50% 100%}.inferno-aura img+img{left:35%;transform:scaleX(-1)}.inferno .inferno-aura{opacity:.92;animation:none}.inferno .inferno-aura img{animation:flameOuter .6s infinite alternate}.inferno .inferno-aura img+img{animation:infernoRight .43s infinite alternate}.speech,.host:not(.home):not(.arena-host) .speech{width:min(480px,86vw);min-height:64px;font:700 16px/1.45 Georgia;margin:14px 0 0;padding:12px 18px;background:#ead7b8;border:3px double #694527;color:#301b13}.host.fly{animation:flyback 1.5s}.host.lunge{animation:lunge .9s}.host.recoil .avatar{animation:recoil .7s}.host.laugh .avatar{animation:laugh .18s 6 alternate}.compact-host .host{flex-direction:row;gap:18px;max-width:760px;width:100%;justify-content:center}.compact-host .avatar,.compact-host .host:not(.home):not(.arena-host) .avatar{width:66px;flex:none}.compact-host .speech,.compact-host .host:not(.home):not(.arena-host) .speech{margin:0;max-width:510px}.edition{display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 8px;background:linear-gradient(#2d2335,#171020)}.edition img{height:70px;width:74px;object-fit:contain;filter:drop-shadow(0 0 10px #ec1a1433)}.edition.selected,.goal-options .selected{border-color:#ffce7f;background:linear-gradient(#643322,#2a1b20);box-shadow:0 0 18px #d4803022}.quantity{display:flex;align-items:center;justify-content:space-between;gap:20px;font-weight:700}.quantity input{width:90px;font-size:22px}.goal-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.goal-options button{padding:20px 12px}.goal-options b,.goal-options span{display:block}.goal-options span{font-size:14px;font-weight:400;margin-top:8px;color:#dccaba}#tutorial{text-align:center}#tutorial .avatar{width:125px}.rules-sheet{margin-top:20px}.rules-sheet h1{font-size:30px}.rules-sheet .lede{font-size:17px;max-width:none}.rule-progress{font-size:14px;color:var(--gold)}.arena{padding-top:0}.arena-top{gap:20px;margin-bottom:4px}.arena-top .kicker,.rank-label{font-size:12px;letter-spacing:.12em}.arena .host .avatar{width:90px}.arena .speech{max-width:620px;width:min(620px,87vw);min-height:60px;font-size:15px;padding:10px 15px;margin-top:5px}.clock{font-size:clamp(54px,7vw,82px);margin-top:12px}.milestones{font-size:12px;margin:10px 0;gap:14px}.player-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px;margin-top:18px}.player-card{background:linear-gradient(135deg,#211824ed,#100c14f5);border:1px solid #73543c;padding:16px;box-shadow:0 8px 22px #0006;min-width:0}.player-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.player-heading b{overflow-wrap:anywhere;font-size:18px}.player-heading span{font:700 23px ui-monospace,monospace;color:#f6c782;flex:none}.player-state{font-size:14px;color:#c9b8a4;margin:8px 0}.player-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.player-controls button{font-size:14px;padding:10px;min-height:44px}.player-controls .primary{grid-column:1/-1}.player-controls [data-spin]{display:flex;align-items:center;justify-content:center;gap:8px}.player-controls img{width:29px;height:29px}.spin-ready{border-color:#c3934c}.spin-ready [data-spin]{box-shadow:inset 0 0 15px #f9a71e33}.finished{opacity:.65}.reaction-tags{font-size:13px;line-height:1.5;color:#e6b874;min-height:10px;margin-top:8px}.arena-notice{text-align:center}.achievement-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.achievement-list span{padding:5px 8px;border:1px solid #765538;background:#38221977;color:#edc18a;font-size:13px}.result-row{align-items:flex-start}.hall-filters{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.hall-filters [aria-pressed=true]{border-color:#ffd083}.floor-fire{inset:auto 0 0;height:105px;z-index:9;opacity:1;background:none;animation:none;overflow:hidden;pointer-events:none}.fire-back,.fire-front{position:absolute;width:calc(100% + 160px);left:-80px;height:150px;bottom:-40px;background:url('assets/flame1.webp') repeat-x top/520px 293px;transform-origin:50% 100%;animation:lavaBack 6.5s ease-in-out infinite alternate;filter:drop-shadow(0 -5px 14px #c0001840)}.fire-front{height:140px;bottom:-55px;background-image:url('assets/flame2.webp');background-size:620px 350px;animation:lavaFront 4.7s ease-in-out infinite alternate;filter:none}.floor-fire:after{content:'';position:absolute;inset:80% 0 0;background:linear-gradient(transparent,#2c000d)}.still *,.still *:before,.still *:after{animation:none!important;transition:none!important}.still .world{transform:none}.still .gate-half{transition:none}.still .shaft-far,.still .shaft-near{transform:none}
@keyframes shaftDown{to{background-position:center -960px}}@keyframes shaftNear{to{background-position:center -1500px}}@keyframes jawTalk{0%,100%{transform:rotateY(var(--look)) translateY(0) rotate(-1deg)}20%{transform:rotateY(var(--look)) translateY(9%) rotate(3deg)}40%{transform:rotateY(var(--look)) translateY(2%) rotate(-2deg)}65%{transform:rotateY(var(--look)) translateY(13%) rotate(4deg)}85%{transform:rotateY(var(--look)) translateY(4%) rotate(0)}}@keyframes flameOuter{to{transform:scale(.95,1.08) skewX(3deg)}}@keyframes flameInner{to{transform:scale(1.07,.91) skewX(-4deg);filter:brightness(1.12)}}@keyframes flameCore{to{transform:scale(.88,1.09) translateY(-2%)}}@keyframes mouthBreath{to{transform:scale(1.08,-1.12) skewX(3deg)}}@keyframes infernoRight{to{transform:scale(-1.05,1.12) skewX(-3deg)}}@keyframes lavaBack{from{transform:translateX(calc(-26px + var(--pointer-x)*-.7)) scaleY(.9) skewX(-3deg)}to{transform:translateX(calc(30px + var(--pointer-x)*-.7)) scaleY(1.09) skewX(3deg)}}@keyframes lavaFront{from{transform:translateX(calc(35px + var(--pointer-x)*1.2)) scaleY(1.07) skewX(2deg)}to{transform:translateX(calc(-30px + var(--pointer-x)*1.2)) scaleY(.89) skewX(-2deg)}}@keyframes recoil{15%{transform:translateX(-12px) rotate(-9deg)}40%{transform:translateX(9px) rotate(7deg)}70%{transform:translateX(-4px) rotate(-3deg)}}
@media(min-width:1100px) and (min-height:850px){.intro .avatar{width:185px}.intro-copy h1{font-size:56px}.intro .speech{margin-top:20px}}
@media(max-width:800px){header{height:68px;padding:8px 3vw}header img{width:82px}nav button{font-size:12px;padding:8px 7px}nav{gap:4px}.screen{width:92vw;padding:12px 0 100px;min-height:calc(100svh - 68px)}.intro.active{min-height:calc(100svh - 68px);padding-top:12px}.intro-copy{padding:0}.intro-copy h1{font-size:34px}.intro .avatar,.host:not(.home):not(.arena-host) .avatar{width:116px}.intro .actions{margin-top:16px}.sheet{padding:22px 18px}.sheet h1{font-size:32px}.compact-host .host:not(.home):not(.arena-host) .avatar{width:55px}.compact-host .host:not(.home):not(.arena-host) .speech{font-size:14px;padding:10px;min-height:70px;width:auto}.compact-host .host{gap:14px}.speech,.host:not(.home):not(.arena-host) .speech{font-size:15px;margin-top:10px;min-height:64px}.edition{font-size:14px}.edition img{height:60px;width:60px}.quantity{font-size:15px}.goal-options{grid-template-columns:1fr}.goal-options button{text-align:left;padding:14px}.goal-options span{margin-top:4px}#tutorial .host .avatar{width:98px}.rules-sheet h1{font-size:27px}.arena .host:not(.home):not(.arena-host) .avatar{width:70px}.arena .host:not(.home):not(.arena-host) .speech{font-size:14px;margin-top:4px;min-height:60px}.arena-top .kicker,.rank-label{font-size:12px;letter-spacing:0}.clock{font-size:58px}.milestones{font-size:12px;gap:8px;flex-wrap:wrap}.player-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.player-card{padding:11px}.player-heading{flex-wrap:wrap;gap:4px}.player-heading b{font-size:16px}.player-heading span{font-size:21px}.player-controls{grid-template-columns:1fr;gap:6px}.player-controls button{font-size:13px;padding:8px;min-height:44px}.player-controls img{width:24px;height:24px}.player-state{font-size:12px}.player-cards:has(.player-card:only-child){grid-template-columns:1fr}.player-card:only-child .player-controls{grid-template-columns:1fr 1fr}.floor-fire{height:80px}.fire-back{bottom:-60px}.fire-front{bottom:-80px}.result-row{gap:10px}.result-row strong{font-size:18px}}
@media(max-height:750px){.intro.active{justify-content:flex-start}.intro .host .avatar{width:100px}.intro-copy h1{font-size:32px;margin-top:14px}.intro .kicker{margin-bottom:10px}.intro .speech{min-height:54px}.intro .actions{margin:14px 0 10px}.intro .fine{margin:6px 0}.arena .host .avatar{width:65px}.arena .clock{font-size:54px}}
@media(prefers-reduced-motion:reduce){.world,.shaft-far,.shaft-near{transform:none!important}}

/* Product photography: frame only the original box front, preserving its artwork. */
.product-front{position:relative;display:block;width:min(100%,132px);aspect-ratio:466/608;overflow:hidden;background:#000;flex:none;margin:0 auto;border-radius:2px;box-shadow:0 7px 17px #0007}
.edition .product-front img,.door .product-front img{position:absolute;left:-30.47%;top:-10.36%;width:160.95%;height:auto;max-width:none;object-fit:initial;filter:none}
.edition{gap:15px}.door .guide-product{width:78px;margin:0 auto}.door .guide-illustration{width:100%;height:104px;object-fit:contain;filter:drop-shadow(0 4px 8px #0005)}
main{position:relative;z-index:10}.floor-fire{z-index:9}.screen{padding-bottom:max(130px,calc(105px + env(safe-area-inset-bottom)))}
@media(max-width:800px){.edition{padding:14px 7px;gap:12px}.edition .product-front{width:min(100%,100px)}.door .guide-product{width:58px}.door .guide-illustration{height:76px}.screen{padding-bottom:max(110px,calc(90px + env(safe-area-inset-bottom)))}}

/* The Reaper is a game control: prevent native tap and image-selection overlays. */
#avatar,#avatar *{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#avatar{touch-action:manipulation}
#avatar img{-webkit-user-drag:none}
#avatar:focus:not(:focus-visible){outline:none}
#avatar:focus-visible{outline:3px solid var(--gold);outline-offset:8px;border-radius:12px}


/* All decorative fire stays in the background stacking group, on every route. */
body{isolation:isolate}
.world{z-index:-4}
.shaft{z-index:-3}
.floor-fire{z-index:-1;pointer-events:none}
.floor-fire *{pointer-events:none}

.tutorial-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:22px 0 10px}.rules-sheet{touch-action:pan-y pinch-zoom}.rules-sheet:focus-visible{outline:2px solid var(--gold);outline-offset:4px}@media(max-width:600px){.tutorial-controls{display:grid;grid-template-columns:1fr 1fr}.tutorial-controls .primary{grid-column:1/-1}.tutorial-controls button{font-size:14px;padding:12px 9px}}
.season-submit{padding:20px;margin:25px 0;border:1px solid #866342;background:#15101d}.season-submit h2{font-size:26px;margin:0 0 10px}select,input[type=search]{font:inherit;color:var(--bone);background:#100d15;border:1px solid #947247;padding:12px;max-width:100%}select{display:block;margin:8px 0;min-height:44px}.halls-sheet{width:100%}.season-toolbar,.standings-heading,.section-heading,.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.season-toolbar label,.standings-heading label{font-size:14px}.season-seal{font-size:13px;color:#f6cb83;border:1px solid #9a7037;padding:8px 12px}.season-seal.sealed{color:#c5b9da;border-color:#756787}.section-heading h2,.standings-heading h2{font-size:28px}.section-heading strong{font:700 32px Georgia;color:var(--gold)}.finisher-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.finisher-card{border:1px solid #be843c;background:linear-gradient(135deg,#462415,#160e13);padding:16px}.finisher-card b,.finisher-card span,.finisher-card small{display:block;overflow-wrap:anywhere}.finisher-card span{color:#ffc36c;margin:8px 0}.finisher-card small{font-size:12px}.my-standing{margin:20px 0;padding:14px;border-left:3px solid #d7a056;background:#36221e}.hall-legend{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.hall-badge{display:inline-block;padding:5px 9px;font-size:13px;white-space:nowrap;border:1px solid}.hall-badge.fame{color:#ffe0a2;background:#52361c;border-color:#b88a48}.hall-badge.flame{color:#ffc7a2;background:#50261c;border-color:#a65632}.hall-badge.shame{color:#ded0fa;background:#32223e;border-color:#8a6ba6}.your-row{background:#75502533}.you-label{display:block;color:var(--gold)}.table-achievements{min-width:180px}.table-achievements small{display:block;color:var(--muted);line-height:1.5;margin-top:7px}.pagination{justify-content:center;margin:22px 0}.pagination span{font-size:14px}.quarter-panel{border-top:1px solid #7a5937;margin-top:25px;padding-top:15px}.quarter-panel h2{font-size:27px}.quarter-leaders{display:flex;flex-wrap:wrap;gap:10px}.quarter-leaders span{padding:10px;background:#281b22;border:1px solid #6c5138;font-size:14px}.halls-sheet details{font-size:14px;line-height:1.6}.standings-heading input{display:block;margin-top:7px}@media(max-width:600px){.season-toolbar{gap:10px}.standings-heading label,.standings-heading input{width:100%}.halls-sheet{padding:20px 13px}.halls-sheet td,.halls-sheet th{padding:10px;font-size:13px}.season-submit{padding:14px}.finisher-cards{grid-template-columns:1fr 1fr}.finisher-card{padding:12px}.finisher-card b{font-size:15px}.pagination{gap:10px}}
/* Warm torch bounce reveals the masonry during the descent. */
[data-scene=descending] .shaft-far{background-image:linear-gradient(#100b2433,#100b2440),url('assets/lift-shaft.webp')}
[data-scene=descending] .shaft-near{filter:brightness(.98)}
.shaft:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 6% 38%,#ffa64b38,transparent 46%),radial-gradient(ellipse at 94% 68%,#ff892b2e,transparent 48%);mix-blend-mode:screen;animation:torchBounce 3.8s ease-in-out infinite alternate}
@keyframes torchBounce{0%,100%{opacity:.62}35%{opacity:.9}60%{opacity:.74}80%{opacity:1}}

/* Keep the journey visible behind the controls without a spacer. */
[data-scene=descending] .screen.active{padding-top:12px}
.shaft-sign{position:absolute;left:50%;top:100px;width:min(360px,82vw);padding:14px 24px 17px;text-align:center;color:#ffe9be;background:repeating-linear-gradient(3deg,transparent 0 19px,#28100855 20px 22px),linear-gradient(110deg,#744825,#462816 55%,#82552d);border:4px solid #b07b43;border-radius:9px 4px 12px 5px;box-shadow:inset 0 0 0 2px #27140b,0 8px 18px #0009,0 0 25px #ec8a2433;text-shadow:1px 2px #211109;transform:translate(-50%,70px) rotate(-3deg);opacity:0}
.shaft-sign:before,.shaft-sign:after{content:'';position:absolute;top:11px;width:9px;height:9px;border-radius:50%;background:#a49170;border:2px solid #322920;box-shadow:1px 2px 2px #0008}.shaft-sign:before{left:9px}.shaft-sign:after{right:9px}.shaft-sign strong{display:block;font:800 13px/1.4 system-ui;letter-spacing:.15em;color:#ffc879}.shaft-sign span{display:block;font:bold 18px/1.3 Georgia;margin-top:4px}.still .shaft-sign{opacity:1!important;transform:translate(-50%,0) rotate(-3deg)!important}
@media(prefers-reduced-motion:reduce){.shaft-sign{opacity:1!important;transform:translate(-50%,0) rotate(-3deg)!important}}
/* Stable jaw hinge: the mesh moves the chin while both upper joints stay put. */
.skull-jaw,.talking .skull-jaw{animation:none!important;transform-origin:50% 68%}
.skull-jaw canvas{display:block;width:100%;height:auto;position:absolute;inset:0}
.skull-jaw>img[hidden]{display:none!important}
.host.laugh .avatar{animation:hostChuckles .8s ease-in-out 2}
@keyframes hostChuckles{0%,100%{transform:translateY(0)}25%,65%{transform:translateY(-3px) rotate(-.6deg)}45%,85%{transform:translateY(1px) rotate(.5deg)}}
.eye-motion{transform:translate(var(--eye-x,0px),var(--eye-y,0px)) scale(.88);transition:transform .36s cubic-bezier(.2,.8,.2,1);transform-origin:50% 65%}
/* Extra headroom keeps the moving tips and glow inside the fire viewport. */
.floor-fire{height:190px;overflow:hidden}
.floor-fire:after{inset:auto 0 0;height:25px}
#arena .host-slot{flex-direction:column;align-items:center}
#wheelStage{position:relative;width:min(660px,100%);text-align:center;padding:10px 0 20px}
#wheelStage[hidden]{display:none}
#wheelStage h2{font-size:clamp(24px,4vw,34px);margin:10px 35px}
#wheelStage .wheel-wrap{width:min(440px,76vw,48svh);margin:25px auto 12px;filter:drop-shadow(0 0 35px #e5642555)}
#wheelStage .wheel-caption{margin:8px 0;min-height:1.5em;font-size:18px}
.wheel-open #arena .avatar{display:none!important}
.wheel-open #arena .host{min-height:0}
.skull-shard,.scare-avatar{position:fixed;z-index:220;pointer-events:none;--look:0deg;--eye-x:0px;--eye-y:0px}
.skull-shard img,.scare-avatar img{position:absolute;object-fit:contain;width:100%;height:auto}
.skull-shard{animation:skullBurst .6s ease-out both}
@keyframes skullBurst{to{transform:translate(var(--shard-x),var(--shard-y)) rotate(var(--shard-turn));opacity:0}}
.scare-avatar{left:50%;top:50%;width:min(68vw,360px);aspect-ratio:1823/3169;filter:drop-shadow(0 0 32px #fa001c);animation:scareRush .7s cubic-bezier(.12,.8,.16,1) both}
#focusAlarm{position:fixed;inset:0;z-index:300;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:#4c0000b8;border:10px solid #ff193c;box-shadow:inset 0 0 100px #f0003055;animation:focusPulse 1.5s ease-in-out infinite;color:#fff}
#focusAlarm[hidden]{display:none}#focusAlarm strong{font-size:clamp(24px,5vw,50px)}#focusSeconds{font:900 clamp(70px,15vw,140px)/1.2 system-ui}#focusAlarm p{max-width:560px;font-size:18px;color:white}
@keyframes focusPulse{50%{background:#780011d6;border-color:#ff7c88}}
@media(prefers-reduced-motion:reduce){#focusAlarm{animation:none}.eye-motion{transition:none}}
/* The signs are children of the moving wall: one compositor transform, no drift. */
.shaft-far{inset:0 -25px auto;height:calc(100% + 960px);background-position:center 0;animation:shaftWallRide 13s linear infinite;animation-play-state:paused;will-change:transform}
.shaft-near{inset:0 -3vw auto;height:calc(100% + 1500px);background-position:center 0;animation:shaftRailRide 8s linear infinite;animation-play-state:paused;will-change:transform}
@keyframes shaftWallRide{from{transform:translate3d(calc(var(--pointer-x)*-.3),0,0)}to{transform:translate3d(calc(var(--pointer-x)*-.3),-960px,0)}}
@keyframes shaftRailRide{from{transform:translate3d(calc(var(--pointer-x)*.7),0,0)}to{transform:translate3d(calc(var(--pointer-x)*.7),-1500px,0)}}
.shaft-sign{top:170px;opacity:1;transform:translateX(-50%) rotate(var(--sign-tilt,-3deg))}.shaft-sign-next{top:1130px}
.document-away .shaft-far,.document-away .shaft-near{animation-play-state:paused!important}

.skull-head{transform:none;transition:none}
.tutorial-viewport{overflow:hidden;touch-action:pan-y pinch-zoom}
#tutorialCard{will-change:transform;user-select:none;-webkit-user-select:none;cursor:grab}
#tutorialCard:active{cursor:grabbing}
.tutorial-dots{display:flex;justify-content:center;gap:10px;margin:20px 0 12px}
.tutorial-dots i{width:8px;height:8px;border-radius:50%;background:#776049;transition:width .2s,background .2s}
.tutorial-dots i.current{width:26px;border-radius:6px;background:#ffca81}
.tutorial-controls{grid-template-columns:1fr 1fr}.tutorial-controls #tutorialNext{grid-column:auto}
#tutorialHint{text-align:center;margin:12px 0 22px;color:#e2ba7e}
@media(pointer:coarse){.tutorial-controls{display:none}.last-rule .tutorial-controls{display:flex;justify-content:center}.last-rule #tutorialBack{display:none}.last-rule #tutorialNext{width:100%}}
/* Blackout, fast approach, lingering laugh, then a gentle return to the room. */
.scare-blackout{position:fixed;inset:0;z-index:240;background:#000;animation:scareBlackout 2.1s linear both;isolation:isolate}
.scare-blackout .scare-avatar{width:min(68vw,360px,43svh);animation:scareEncore 1.95s linear .075s both}
.scare-avatar .skull-jaw{animation:scareJawLaugh .3s ease-in-out .2s 5!important;transform-origin:50% 0}
@keyframes scareBlackout{0%{background:#0000}7%,85%{background:#000}100%{background:#0000}}
@keyframes scareJawLaugh{0%,100%{transform:scaleY(.8)}45%{transform:scaleY(1)}}
/* Full-card gestures: clip without creating a nested scrolling surface. */
.rules-sheet,.rules-sheet *{touch-action:pan-y pinch-zoom}
.tutorial-viewport{overflow:clip}
#tutorialCard,#tutorialCard *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;pointer-events:auto}
#tutorial .host-slot{margin-bottom:8px}#tutorial .avatar{width:85px!important}
#tutorial .rules-sheet{margin-top:12px}
.rune-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0}
.player-rune{position:relative;isolation:isolate;aspect-ratio:1;border:0;background:none!important;box-shadow:none;padding:0;animation:runeHover 3.8s ease-in-out var(--rune-delay) infinite;transition:filter .25s}
.player-rune img{width:100%;height:100%;object-fit:contain;filter:saturate(.25) brightness(.65);transition:filter .25s}
.player-rune b{position:absolute;inset:0;display:grid;place-items:center;font:bold clamp(26px,4vw,45px)/1 Georgia;color:#b1a28c;text-shadow:0 2px 4px #000}
.player-rune.selected img{filter:saturate(1.2) brightness(1.15) drop-shadow(0 0 12px #ff4b20)}
.player-rune.selected b{color:#ffe6b3;text-shadow:0 0 14px #ff7a28}
.player-rune:focus-visible{outline:2px solid #ffe3ad;outline-offset:3px}
@keyframes runeHover{50%{transform:translateY(-6px) rotate(1deg)}}
.party-goal{margin:24px 0 0;padding:16px;border:1px solid #735737;display:flex;flex-wrap:wrap;gap:14px}.party-goal legend{color:#eac384}.party-goal label{display:flex;align-items:center;gap:7px;font-size:14px}
.arrival-scene{position:fixed;inset:0;z-index:-2;opacity:0;pointer-events:none;overflow:hidden;perspective:1300px;transition:opacity .7s}
[data-scene=gates] .arrival-scene{opacity:1}
.arrival-room{position:absolute;inset:0;background:linear-gradient(#12090833,#0c061044),url('assets/dungeon-rhr.webp') center/cover;transition:transform 1s ease 1.2s}
.arrival-doors{position:absolute;inset:0;display:flex;perspective:1300px}
.arrival-door{width:50%;height:100%;background-image:url('assets/dungeon-doors-rhr.webp');background-size:200% 100%;background-repeat:no-repeat;transition:transform 3.5s cubic-bezier(.45,.03,.22,1) 1.4s;backface-visibility:hidden}
.door-left{background-position:left;transform-origin:left}.door-right{background-position:right;transform-origin:right}
.arrival-bars{position:absolute;inset:0;background:url('assets/lift-gate-rhr.webp') center/100% 100%;mix-blend-mode:normal;opacity:1;transition:transform .8s ease .2s}
[data-scene=gates] .world{opacity:0}
.gates-opening .arrival-bars{transform:translateY(-110%)}
.gates-opening .door-left{transform:rotateY(95deg)}.gates-opening .door-right{transform:rotateY(-95deg)}
.gates-opening .arrival-scene{transform:scale(1.22);transform-origin:50% 50%;transition:opacity .7s,transform 2s ease 4s}
.gates-opening .arrival-room{transform:none}
.arrival-reaper .skull-jaw>img{transform-origin:50% 0;animation:arrivalJawLaugh .42s ease-in-out infinite}
@keyframes arrivalJawLaugh{0%,100%{transform:scaleY(.82)}45%{transform:translateY(2%) scaleY(1)}}
@media(prefers-reduced-motion:reduce){.gates-opening .arrival-scene{transition:none}.arrival-reaper .skull-jaw>img{animation:none}}
.arrival-reaper.avatar{position:absolute;top:34%;left:calc(50% - clamp(60px,8vw,100px));width:clamp(120px,16vw,200px);pointer-events:none;filter:drop-shadow(0 0 35px #ed001c66)}
.setup-sheet,#setup>.host-slot{transition:transform .55s ease,opacity .4s ease}
.gates-opening .setup-sheet{transform:translateX(-115vw);opacity:0;pointer-events:none}
.gates-opening #setup>.host-slot{transform:translateX(115vw);opacity:0;pointer-events:none}
@media(max-width:600px){.rune-grid{gap:7px;margin:16px -5px}.player-rune b{font-size:28px}.arrival-doors{inset:0 -25%}.arrival-bars{background-size:auto 100%}}
@media(prefers-reduced-motion:reduce){.player-rune{animation:none!important}.arrival-scene,.arrival-door,.arrival-room,.arrival-bars,.setup-sheet,#setup>.host-slot{transition:none}}
.certificate-section{border-top:1px solid #785738;margin-top:28px;padding-top:24px}
#certificatePreview{display:block;width:100%;height:auto;box-shadow:0 8px 24px #0008;margin:18px 0;border-radius:3px}#certificatePreview[hidden]{display:none}
.certificate-controls{display:flex;flex-wrap:wrap;gap:10px}.certificate-controls button{flex:1 1 220px;overflow-wrap:anywhere}
#rankingWinners{font-weight:700;color:#ffcf89;overflow-wrap:anywhere}#certificateStatus{font-size:14px;min-height:20px}

/* Native touch feedback must not paint over game artwork. */
button,a,[role=button],.avatar,.player-rune{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button,[role=button],.avatar,.player-rune{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button img,.avatar img{-webkit-user-drag:none;user-select:none}
/* One clear entry, with the guide beneath it. Size the host to the available height. */
#intro.active{min-height:calc(100svh - 76px);padding:8px 0 max(18px,env(safe-area-inset-bottom));justify-content:center}
#intro .kicker{margin:0 0 8px;font-size:clamp(10px,2.8vw,12px)}
#intro .host .avatar{width:clamp(72px,calc((100svh - 440px)*.43),155px)}
#intro .speech{margin-top:10px;min-height:0;padding:10px 14px;font-size:15px;line-height:1.35}
#intro .intro-copy{padding:0}
#intro h1{font-size:clamp(27px,7.5vw,48px);margin:12px 0 8px}
#intro .lede{font-size:14px;line-height:1.4;margin:0 auto}
#intro .actions{flex-direction:column;align-items:stretch;width:min(310px,100%);gap:9px;margin:16px auto 10px}
#intro .actions button{min-height:44px;padding:11px 16px;font-size:15px}
#intro .fine{font-size:12px;line-height:1.4;margin:8px 0 0}
@media(max-height:650px){#intro.active{padding-top:0;padding-bottom:12px}#intro .host .avatar{width:65px}#intro .speech{font-size:13px;padding:7px 10px;margin-top:4px}#intro h1{font-size:27px;margin:8px 0 6px}#intro .actions{margin:10px auto 6px;gap:6px}#intro .lede{font-size:12px}}

/* Tutorial: compact host and readable rules, with no decorative top gap. */
#tutorial{padding-bottom:max(20px,env(safe-area-inset-bottom))}
#tutorial>.kicker{margin:4px 0 12px}
#tutorial .host .speech{margin-top:8px;padding:9px 14px;min-height:0}
#tutorial .rules-sheet{padding:20px;margin-top:10px}
#tutorialTitle{font-size:clamp(24px,5.8vw,30px);color:var(--gold);margin:4px 0 14px}
#tutorialCopy{font-size:16px;line-height:1.5;margin:0 0 14px}
#tutorial .tutorial-dots{margin:12px 0}
#tutorialHint{margin:10px 0 14px;font-size:14px}
@media(max-width:600px){#tutorial .host .avatar{width:64px!important}#tutorial .speech{font-size:14px;line-height:1.35}#tutorial .rules-sheet{padding:16px}#tutorial>.kicker{font-size:11px;letter-spacing:.15em}#tutorialExit{padding:9px 16px;min-height:44px}}

/* Time title and each self-reported reaction have their own visible award. */
.table-achievements{min-width:220px}
.badge-collection{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.award-badge{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid #aa8155;border-radius:3px;background:linear-gradient(145deg,#3c2833,#21151f);box-shadow:inset 0 1px #f6d19133,0 2px 6px #0007;color:#f2d8b0;font:700 12px/1.25 system-ui;white-space:normal}
.award-badge.time-badge{color:#ffe2a2;background:linear-gradient(145deg,#704222,#382018);border-color:#c69858}
.award-badge.mouth{color:#ffc4a8;background:linear-gradient(145deg,#7d261e,#40191e);border-color:#db6744}
.award-badge.tears{color:#c9f3f7;background:linear-gradient(145deg,#265366,#172e45);border-color:#5799b0}
.award-badge.nose{color:#e9dcab;background:linear-gradient(145deg,#57512b,#322c1d);border-color:#a39650}
.award-badge.language{color:#f4cef5;background:linear-gradient(145deg,#60325e,#31203d);border-color:#ab77af}
.award-badge.storm{color:#fff0b5;background:linear-gradient(145deg,#775018,#452119);border-color:#e3b66a}
@media(max-width:600px){.table-achievements{min-width:160px}.badge-collection{gap:5px}.award-badge{font-size:12px;padding:5px 7px;min-height:28px}}

#purchaseReview{margin-top:20px;border-top:1px solid #866342;padding-top:16px}#purchaseReview summary{cursor:pointer;color:var(--gold);font-weight:700}#purchaseForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:16px}#purchaseForm label{display:grid;gap:5px;font-size:14px}#purchaseForm input,#purchaseForm select{box-sizing:border-box;width:100%;font:inherit;color:var(--bone);background:#100d15;border:1px solid #947247;padding:12px;min-height:44px}#purchaseForm button{align-self:end}@media(max-width:600px){#purchaseForm{grid-template-columns:1fr}}

/* One torch-lit stone palette from the lift to the corridor. */
[data-scene=descending] .shaft-far{background-image:linear-gradient(#2414231f,#2f202b34),url('assets/lift-shaft.webp')}
[data-scene=descending] .shaft-near{filter:brightness(1.04)}
.shaft:after{background:radial-gradient(ellipse at 8% 40%,#ff99454a,transparent 47%),radial-gradient(ellipse at 92% 64%,#ff99453e,transparent 50%)}
/* Arena: the host and the clock carry the scene; responses arrive in place. */
#arena{width:min(1280px,96vw)}
#arena .arena-top{max-width:1180px;margin:0 auto 4px}
#arena .host-slot{margin:0 auto}
#arena .host .avatar{width:clamp(135px,11vw,175px)}
#arena .host .speech{width:min(690px,90vw);max-width:690px;font-size:18px;min-height:64px;margin:8px auto 4px}
#arena .clock{font-size:clamp(92px,9vw,136px);line-height:1;margin:5px 0 0;letter-spacing:-.07em}
#arena .milestones{margin:12px 0 6px;font-size:14px;gap:20px}
#arena .arena-instruction{margin:5px 0 0;font-size:14px}
#arena .player-cards{max-width:1160px;margin:16px auto 0}
#arena .player-card{background:linear-gradient(125deg,#2a171ced,#120d13f2);border-color:#9a633d}
#arena .player-controls{grid-template-columns:1fr 1fr}
#arena .player-controls .primary{grid-column:auto}
#arena .arena-notice{margin:12px auto 0;font-size:14px}
#reactionPrompt[hidden]{display:none!important}
#reactionPrompt{max-width:760px;margin:12px auto 0;padding:12px 16px;background:linear-gradient(100deg,#402126ee,#21171bee);border:1px solid #cd8745;box-shadow:0 0 24px #b4502938;display:flex;justify-content:space-between;align-items:center;gap:15px;text-align:left}
#reactionQuestion{font:700 17px/1.4 Georgia;color:#ffe0aa}
.reaction-choices{display:flex;gap:9px;flex:none}
.reaction-choices button{font-size:14px;min-height:42px;padding:8px 13px}
#reactionYes{background:#982c1a;color:#fff0d9;border-color:#d56639}
@media(max-width:800px){#arena{width:94vw}#arena .host .avatar{width:clamp(105px,25vw,145px)}#arena .host .speech{font-size:15px;min-height:50px}#arena .clock{font-size:clamp(72px,14vw,105px)}#arena .milestones{font-size:12px;gap:9px;flex-wrap:wrap}#arena .player-controls{grid-template-columns:1fr}#reactionPrompt{flex-direction:column;align-items:stretch;text-align:center;padding:10px}#reactionQuestion{font-size:16px}.reaction-choices{justify-content:center}.reaction-choices button{flex:1}}
@media(max-height:730px){#arena .host .avatar{width:125px}#arena .clock{font-size:82px}#arena .milestones{margin:5px 0}#arena .player-cards{margin-top:8px}}

/* The supplied head, separate jaw and eye flame sprites play distinct expressions. */
.host .skull-head>img{animation:reaperIdleFace 7.5s ease-in-out infinite;transform-origin:50% 62%}
.host.mood-question .skull-head>img{animation:reaperQuestions 1.4s ease-in-out infinite}
.host.mood-laugh .skull-head>img{animation:reaperLaughs .38s ease-in-out infinite alternate}
.host.mood-snarl .skull-head>img{animation:reaperSnarls .24s ease-in-out 4 alternate}
.host.mood-taunt .skull-head>img{animation:reaperTaunts 1.2s ease-in-out 2}
.host.mood-question .eye-motion{transform:translate(calc(var(--eye-x,0px) + 3px),calc(var(--eye-y,0px) - 2px)) scale(.9)}
@keyframes reaperIdleFace{0%,42%,100%{transform:none}45%{transform:rotate(-2deg) translateY(1%)}51%{transform:rotate(1deg)}}
@keyframes reaperQuestions{0%,100%{transform:rotate(-3deg) translateY(-1%)}50%{transform:rotate(5deg) translateY(1%)}}
@keyframes reaperLaughs{from{transform:translateY(-2%) rotate(-3deg)}to{transform:translateY(2%) rotate(3deg)}}
@keyframes reaperSnarls{from{transform:translateX(-3%) rotate(-2deg)}to{transform:translateX(3%) rotate(2deg)}}
@keyframes reaperTaunts{0%,100%{transform:none}30%{transform:rotate(4deg) scale(1.02)}70%{transform:rotate(-2deg)}}

/* Carved, ember-lit timer; figures remain readable over the glow. */
#arena .clock{position:relative;display:inline-block;isolation:isolate;min-width:min(520px,92vw);padding:10px 30px 13px;color:#ffe6ad;font-family:Georgia,serif;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,#442118e8,#100b12f2 50%,#301711ed);border:3px ridge #9b5031;border-radius:12px 12px 21px 21px;box-shadow:inset 0 0 0 3px #180c11,inset 0 0 29px #f21b1838,0 8px 28px #000a,0 0 32px #e3342342;text-shadow:0 2px 0 #37100d,0 0 12px #fc3f2f,0 0 29px #f75622}
#arena .clock:after{content:'';position:absolute;inset:5px;pointer-events:none;border:1px solid #d8985c6b;border-radius:7px 7px 16px 16px}
@media(max-width:600px){#arena .clock{min-width:min(380px,94vw);padding:8px 12px 10px;border-width:2px}}

/* The iron gate shares the door's crimson stone and reveals the brand in the room. */
.arrival-bars{filter:sepia(.17) saturate(.86) hue-rotate(323deg) brightness(.84) drop-shadow(0 0 18px #e921246e)}
.arrival-omen{position:absolute;left:50%;top:17%;width:min(75vw,600px);transform:translate(-50%,15px) scale(.92);text-align:center;opacity:0;color:#ffe7bc;text-shadow:0 2px 10px #000,0 0 23px #e51728;transition:opacity 1s ease 1.35s,transform 1.5s ease 1.35s}

.arrival-omen strong{display:block;font:900 clamp(21px,4vw,46px)/1 Georgia,serif;letter-spacing:.07em}
.arrival-omen span{display:block;margin-top:9px;font:800 clamp(11px,1.5vw,15px) system-ui,sans-serif;letter-spacing:.16em;color:#ef9e66}
.gates-opening .arrival-omen{opacity:1;transform:translate(-50%,0) scale(1)}
.arrival-scene .arrival-chip{top:61%;filter:drop-shadow(0 0 28px #f56235ad)}
@media(max-width:600px){.arrival-omen{top:20%;width:88vw}.arrival-omen strong{font-size:23px}.arrival-scene .arrival-chip{top:59%;width:min(42vw,180px)}}

/* A three beat, branded countdown. Only transforms animate; the clock starts at GO. */
#countdown{background:radial-gradient(ellipse at 50% 53%,#65130c 0%,#180c15 43%,#070409 82%);border:10px solid #16080b;box-shadow:inset 0 0 0 2px #a84c28,inset 0 0 80px #df2b275e;gap:4px}
#countdown h2{font:900 clamp(26px,6vw,65px)/1 Georgia,serif;letter-spacing:.04em;color:#ffe5b6;margin:4px 0;text-shadow:0 3px #340c0c,0 0 27px #fa2424}
#countdown .kicker{margin:0;color:#e4a574}
#countdown .countdown-stage{display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,45px);width:min(690px,96vw);margin:8px auto}
#countdown .chip-sprite{width:clamp(110px,25vw,225px);filter:drop-shadow(0 0 22px #ff6e30)}
#countdown .countdown-sigil{display:grid;place-items:center;flex:none;width:clamp(120px,30vw,260px);aspect-ratio:1;background:radial-gradient(circle,#331014 46%,#54190c 50%,#dd522a 52%,#2d0d12 56%,#0d0709 66%);border-radius:50%;box-shadow:inset 0 0 18px #f94c298a,0 0 42px #d31f285e}
#countdown #countNumber{font:900 clamp(68px,16vw,145px)/1 Georgia,serif;color:#ffe9bd;text-shadow:0 4px #701c13,0 0 32px #ff422c;letter-spacing:-.05em}
#countdown.beat #countNumber{animation:reaperCount .85s cubic-bezier(.18,.75,.3,1) both}
#countdown .countdown-instruction{margin:4px auto;color:#eed6c0;font-size:clamp(14px,2.4vw,19px)}
@keyframes reaperCount{0%{opacity:0;transform:scale(1.7) rotate(-9deg);filter:blur(3px)}45%{opacity:1;filter:none}72%{transform:scale(.94) rotate(1deg)}100%{transform:none}}
@media(max-width:600px){#countdown{padding:12px;border-width:5px}#countdown h2{font-size:clamp(24px,7vw,38px)}#countdown .countdown-stage{gap:4px}#countdown .chip-sprite{width:min(27vw,125px)}#countdown .countdown-sigil{width:min(42vw,170px)}#countdown #countNumber{font-size:clamp(66px,18vw,110px)}}

/* Four by two compact runes with a single row of soul previews on phones. */
@media(max-width:600px){
 #setup[data-step="0"]{padding-top:0}
 #setup[data-step="0"]>.host-slot .speech{min-height:0;padding:6px 10px;font-size:13px}
 #setup[data-step="0"] .setup-sheet{padding:12px 14px;margin-top:6px}
 #setup[data-step="0"] .setup-sheet h1{font-size:clamp(25px,7vw,33px);margin:4px 0 7px}
 #setup[data-step="0"] #setupBody>p{font-size:13px;line-height:1.25;margin:3px 0}
 #setup[data-step="0"] .rune-grid{grid-template-columns:repeat(4,minmax(0,68px));justify-content:center;gap:2px 7px;margin:7px auto}
 #setup[data-step="0"] .player-rune{width:min(17vw,68px);height:min(17vw,68px)}
 #setup[data-step="0"] .player-rune b{font-size:clamp(21px,6vw,27px)}
 #setup[data-step="0"] .actions{margin:6px 0 0;flex-wrap:nowrap}
 #setup[data-step="0"] .actions button{min-width:0;padding:10px 9px;font-size:14px}
}
@media(prefers-reduced-motion:reduce){.host .skull-head>img,#countdown #countNumber{animation:none!important}.arrival-omen{transition:none}}

/* Independent opaque rails and one tileable masonry plane. No layered wall crossfades. */
.shaft-far{inset:0 -24px auto;height:calc(100% + 1024px);background:url('assets/lift-wall-seamless.webp') center top/100% 1024px repeat-y!important;animation-name:shaftMasonry;animation-duration:14s;backface-visibility:hidden}
.shaft-near{inset:0;clip-path:none;mask-image:none;-webkit-mask-image:none;background:none!important;animation:none!important;transform:none!important;filter:none!important;height:100%}
.shaft-near:before,.shaft-near:after{content:'';position:absolute;top:0;height:calc(100% + 1024px);width:90px;background:url('assets/lift-shaft.webp') -145px 0/1536px 1024px repeat-y;box-shadow:8px 0 18px #06060c99,-8px 0 18px #06060c99;animation:shaftRailOnly 7s linear infinite;animation-play-state:paused;will-change:transform;backface-visibility:hidden}
.shaft-near:before{left:3vw}.shaft-near:after{right:3vw}[data-scene=descending] .shaft-near:before,[data-scene=descending] .shaft-near:after{animation-play-state:running}
.shaft-sign-next{top:1194px}.shaft:after{mix-blend-mode:normal;animation:none;opacity:.28}
@keyframes shaftMasonry{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-1024px,0)}}
@keyframes shaftRailOnly{to{transform:translate3d(0,-1024px,0)}}
.document-away .shaft-near:before,.document-away .shaft-near:after,.visual-scroll-pause .shaft-near:before,.visual-scroll-pause .shaft-near:after{animation-play-state:paused!important}
@media(max-width:700px){.shaft-near:before,.shaft-near:after{width:45px;background-size:768px 1024px;background-position:-72px 0}.shaft-near:before{left:-8px}.shaft-near:after{right:-8px}}
@media(prefers-reduced-motion:reduce){.shaft-far,.shaft-near:before,.shaft-near:after{animation:none!important}}

/* A masonry shaft with receding side walls; foreground machinery moves independently. */
.shaft{perspective:850px;isolation:isolate}.shaft-side{position:absolute;top:-12%;bottom:-12%;width:18vw;overflow:hidden;z-index:1;background:#0a0911;backface-visibility:hidden}.shaft-side.left{left:0;transform-origin:left center;transform:rotateY(36deg)}.shaft-side.right{right:0;transform-origin:right center;transform:rotateY(-36deg)}.shaft-side>div{position:absolute;inset:0 0 auto;height:calc(100% + 1024px);background:linear-gradient(90deg,#03030b99,#11101a33),url('assets/lift-wall-seamless.webp') center top/600px 1024px repeat-y;animation:shaftMasonry 11s linear infinite paused}.shaft-side.right>div{background-image:linear-gradient(270deg,#03030b99,#11101a33),url('assets/lift-wall-seamless.webp')}
.shaft-near{z-index:2}.shaft-near:before{left:15vw}.shaft-near:after{right:15vw}.shaft-chain{position:absolute;top:0;height:calc(100% + 488px);width:72px;background:url('assets/lift-chain.webp') center top/72px 183px repeat-y;z-index:3;animation:chainHaul 2s linear infinite paused;will-change:transform;filter:drop-shadow(4px 2px 3px #000a)}.shaft-chain.left{left:6vw}.shaft-chain.right{right:6vw;animation-delay:-.8s}.shaft-cog{position:absolute;top:-68px;width:210px;height:210px;object-fit:contain;z-index:4;animation:liftCog 6s linear infinite paused;filter:drop-shadow(0 7px 5px #000a)}.shaft-cog.left{left:calc(6vw - 69px)}.shaft-cog.right{right:calc(6vw - 69px);animation-direction:reverse}
[data-scene=descending] .shaft-side>div,[data-scene=descending] .shaft-chain,[data-scene=descending] .shaft-cog{animation-play-state:running}
@keyframes chainHaul{to{transform:translate3d(0,-366px,0)}}@keyframes liftCog{to{transform:rotate(360deg)}}
.document-away .shaft-chain,.document-away .shaft-cog,.document-away .shaft-side>div,.visual-scroll-pause .shaft-chain,.visual-scroll-pause .shaft-cog,.visual-scroll-pause .shaft-side>div{animation-play-state:paused!important}
@media(max-width:700px){.shaft-side{width:12vw}.shaft-chain{width:32px;background-size:32px 183px;filter:none}.shaft-chain.left{left:1vw}.shaft-chain.right{right:1vw}.shaft-cog{width:100px;height:100px;top:-28px;filter:none}.shaft-cog.left{left:-31px}.shaft-cog.right{right:-31px}.shaft-near:before{left:8vw;width:26px}.shaft-near:after{right:8vw;width:26px}}
@media(prefers-reduced-motion:reduce){.shaft-chain,.shaft-cog,.shaft-side>div{animation:none!important}}

/* Portrait screens crop the landscape lift artwork instead of distorting it. */
@media(max-width:700px){
 .shaft-far{background-size:1536px 1024px!important;background-repeat:repeat-y!important}
 .shaft-side>div{background-size:auto,1536px 1024px;background-position:center top}
 .shaft-near:before,.shaft-near:after{width:45px;background-size:1536px 1024px;background-position:-145px 0}
 .shaft-chain{background-size:32px 81.333px;animation-name:chainHaulPhone}
 .arrival-doors{inset:0 auto 0 50%;width:max(100vw,150svh);transform:translateX(-50%)}
 .arrival-bars{background-size:auto 100%;background-position:center}
 .lift-gates{inset:0 auto 0 50%;width:max(100vw,150svh);transform:translateX(-50%)}
}
@keyframes chainHaulPhone{to{transform:translate3d(0,-162.666px,0)}}

/* The host waits behind the doors and speaks during the single entrance. */
.arrival-host{position:absolute;inset:17% 8% 13%;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;pointer-events:none;text-align:center}
.arrival-host{opacity:0;transform:translateY(28px) scale(.86);transition:opacity 1.1s ease-out,transform 1.1s ease-out}.arrival-host.appearing{opacity:.72;transform:translateY(9px) scale(.96)}.arrival-host:not(.revealed) .arrival-speech{opacity:0}
.arrival-host.revealed{opacity:1;transform:none}
.arrival-host .arrival-reaper.avatar{position:relative;top:auto;left:auto;width:clamp(140px,17svh,225px);flex:none;animation:float 4s ease-in-out infinite}
.arrival-host.talking .skull-jaw>img{animation:arrivalJawLaugh .4s ease-in-out infinite}
.arrival-speech{width:min(560px,85vw);min-height:55px;padding:12px 18px;border:3px double #795031;background:#e8d2ae;color:#2e180e;box-shadow:0 12px 30px #000a;font:700 clamp(16px,2vw,22px)/1.35 Georgia,serif}
.gates-opening .arrival-omen{display:none}
@media(max-width:700px){.arrival-host{inset:18% 7% 12%;gap:10px}.arrival-host .arrival-reaper.avatar{width:clamp(135px,21svh,185px)}.arrival-speech{font-size:16px;min-height:72px}}
/* Align the two flame sprites with their sockets; gaze offsets are then shared. */
.eye.left{left:14%}
.eye.right{left:59%}
/* The entrance uses the same basalt and ember palette as the chamber behind it. */
.arrival-door{background-image:url('assets/dungeon-doors-rhr-live.webp')}

/* The lobby sells the run before the safety gate, without delaying entry. */
#intro .intro-promise{max-width:35ch;margin:4px auto 12px;color:#f2d3a8;font:800 clamp(14px,2.1vw,20px)/1.3 Georgia,serif;letter-spacing:.015em;text-shadow:0 2px 12px #000}
#intro .intro-rewards{display:flex;justify-content:center;gap:6px;max-width:610px;margin:auto}
#intro .intro-rewards span{flex:1;min-width:0;padding:8px 6px;border:1px solid #66503c;background:linear-gradient(145deg,#2b1b1bed,#120d15ed);font-size:clamp(10px,1.4vw,13px);line-height:1.2;color:#f4dfbe}
#intro .intro-rewards b{display:block;color:#e49a6b;font:700 13px Georgia,serif;margin-bottom:3px}
#intro .intro-hall{max-width:550px;margin:12px auto 0;padding:10px 14px 11px;border-top:1px solid #93644470;border-bottom:1px solid #93644470;background:#160d12a6;text-align:center}
#intro .intro-hall-title{margin:0 0 3px;color:#d9aa69;font-size:11px;font-weight:800;letter-spacing:.16em}
#intro #introHallStatus{margin:0 0 3px;font-size:13px;color:#f2e0c5}
#intro #introHallLeaders{margin:5px auto;padding:0;list-style:none;max-width:450px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
#intro #introHallLeaders li{font-size:11px;color:#dfc4a0;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
#intro .intro-hall>a{display:inline-block;margin-top:4px;font-size:13px;font-weight:800}
#intro .intro-nochip{margin:10px auto 0;font-size:12px;color:#d5c3ad}
#intro .intro-nochip a{font-weight:800;margin-left:4px}
@media(max-width:800px){#intro .intro-rewards{max-width:540px}#intro .intro-promise{font-size:clamp(13px,3.5vw,17px)}#intro .intro-hall{margin-top:9px;padding:7px 10px}#intro #introHallLeaders{gap:4px 9px}#intro .intro-nochip{margin-top:8px}}
@media(max-width:420px){#intro .intro-rewards span{font-size:10px;padding:6px 3px}#intro .intro-rewards b{font-size:11px}#intro .intro-promise{margin:1px auto 7px}#intro .intro-hall{margin-top:6px}#intro .intro-hall-title{font-size:10px}#intro #introHallStatus{font-size:12px}#intro #introHallLeaders li{font-size:10px}#intro .intro-nochip{font-size:11px}}
@media(max-height:720px) and (max-width:800px){#intro .intro-hall{margin-top:5px;padding:5px 8px}#intro .intro-rewards span{padding:4px 2px}#intro .intro-rewards b{display:inline;margin-right:4px}#intro .intro-promise{font-size:12px;margin:1px auto 5px}#intro .intro-nochip{margin-top:4px}}

/* Keep gate cinematics inside the visual viewport; only the scenery scales. */
body.gates-opening{overflow:hidden}
body.gates-opening #app{overflow:clip}
button,a.button,input[type=checkbox]{touch-action:manipulation}
body:has(#arena.active) header [data-screen="map"]{display:none!important}
@media(pointer:coarse){input[type=text],input[type=number],select,textarea{font-size:16px!important}}
