#game-layer{z-index:10;pointer-events:auto}
#orbit-stage{position:absolute;inset:0;touch-action:none;cursor:grab;overflow:hidden}
#orbit-stage.is-dragging{cursor:grabbing}
#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
#case-buttons{position:absolute;inset:0;pointer-events:none}
.case-hit{all:unset;position:absolute;box-sizing:border-box;pointer-events:auto;cursor:pointer;touch-action:none;display:block;-webkit-tap-highlight-color:transparent}
.case-hit:hover{background:transparent}
.case-hit:focus-visible{outline:2px solid #fff;outline-offset:5px;background:transparent;border-radius:2px}
.case-hit .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.case-hit .fallback-art{display:none;position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 15px 15px #0004);pointer-events:none}
#orbit-stage.fallback .fallback-art{display:block}
.native-fallback{box-sizing:border-box;padding:3px 3px 3px 10%;border:2px solid #d9e4e7b3;background:repeating-linear-gradient(90deg,#292d30 0 2px,#72797d 2px 3px);border-radius:2px}
.native-fallback svg{box-sizing:border-box;width:100%;height:100%;display:block;overflow:hidden;border:1px solid #f2f6f8b0}
#orbit-stage.case-focused{cursor:default}
#case-detail{position:fixed;inset:0;z-index:30;pointer-events:none;color:white}
#case-detail[hidden]{display:none}
.case-close{position:absolute;top:max(20px,env(safe-area-inset-top));right:28px;pointer-events:auto;display:flex;align-items:center;gap:9px;background:#18181591;font-size:12px}
.case-close svg{width:14px;height:14px}
#case-title{position:absolute;bottom:12%;left:24px;right:24px;text-align:center;font-size:14px;letter-spacing:.09em;font-weight:400;text-shadow:0 2px 12px #0009;margin:0}
body.case-open footer{opacity:0;pointer-events:none}body.case-open footer nav{pointer-events:none}
body.case-open .room-picker{opacity:0;pointer-events:none}
footer{transition:opacity .3s}
#motion{width:44px;padding:0;display:flex;align-items:center;justify-content:center}
#motion svg{width:13px;height:13px;fill:currentColor}
#motion .play-icon,#motion.paused .pause-icon{display:none}#motion.paused .play-icon{display:block}
@media(max-width:600px){.case-close{right:20px}#case-title{bottom:16%;font-size:12px}#hint{max-width:125px}}
@media(prefers-reduced-motion:reduce){footer{transition:none}}
#room-background{filter:blur(2.4px) brightness(.86);transform:scale(1.012);transition:filter .4s ease}
body.preview-open #room-background{filter:blur(3.5px) brightness(.48)}
body.case-open #room-background{filter:blur(7px) brightness(.24)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#game-preview{position:fixed;z-index:25;width:min(330px,calc(100vw - 48px));color:#fff;pointer-events:auto;text-shadow:0 2px 14px #0009;padding:4px 0;animation:ink-arrive .16s ease-out}
#game-preview[hidden]{display:none}
#preview-title{margin:0 0 13px;line-height:1}
.marker-writing{display:block;width:100%;max-height:125px;overflow:visible;filter:drop-shadow(0 1px 5px #0004)}
.marker-writing path{stroke-dasharray:1;stroke-dashoffset:1;animation:marker-stroke .2s ease-out var(--stroke-delay,0s) forwards}
@keyframes marker-stroke{to{stroke-dashoffset:0}}
@keyframes ink-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.typed-copy{position:relative;font:12px/1.65 'SFMono-Regular',Consolas,'Liberation Mono',monospace;margin:0 0 14px;letter-spacing:.01em}
.type-reserve{visibility:hidden}.type-ink{position:absolute;inset:0}
.preview-rules{font-size:11px;color:#e7e6e1}
.game-meta{font:10px/1.7 'SFMono-Regular',Consolas,'Liberation Mono',monospace;letter-spacing:.08em;color:#d5d5ce;margin:18px 0}
:is(.view-button,.retro-button){display:flex;gap:30px;align-items:center;justify-content:center;position:relative;min-width:116px;min-height:44px;padding:10px 17px;border-radius:0;border:2px solid;border-color:#fff #353535 #353535 #fff;background:#c0c0c0;color:#111;box-shadow:inset 1px 1px #dfdfdf,inset -1px -1px #808080,2px 2px 0 #0008;font:bold 12px 'Courier New',monospace;letter-spacing:.03em;text-shadow:none;backdrop-filter:none;transition:background .1s,transform .08s;touch-action:manipulation}
:is(.view-button,.retro-button):hover,:is(.view-button,.retro-button):focus-visible{background:#dedede;border-color:#fff #353535 #353535 #fff;color:#000;box-shadow:inset 1px 1px #f5f5f5,inset -1px -1px #909090,3px 3px 0 #0009;transform:translate(-1px,-1px)}
:is(.view-button,.retro-button):focus-visible{outline:1px dotted #111;outline-offset:-7px}
:is(.view-button,.retro-button):active{background:#bcbcbc;border-color:#353535 #f1f1f1 #f1f1f1 #353535;box-shadow:inset 1px 1px #808080,inset -1px -1px #dfdfdf;transform:translate(1px,1px)}
.view-button span{font-size:16px}
#preview-close{position:absolute;right:-14px;top:-26px;width:38px;min-height:38px;border:0;background:transparent;padding:0;font:25px Arial,sans-serif;backdrop-filter:none;opacity:.65}
#preview-close:hover{opacity:1;background:transparent}
body.case-open header{opacity:0;pointer-events:none}
header{transition:opacity .3s}
body.case-open #orbit-stage{pointer-events:none}
#case-detail{pointer-events:auto;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff40 transparent}
.case-close{position:fixed;left:28px;right:auto;top:max(25px,env(safe-area-inset-top));z-index:2;background:#171a1bbf;font:11px 'SFMono-Regular',Consolas,monospace}
.detail-layout{position:relative;min-height:max(100svh,730px);padding-bottom:40px}
.detail-copy{position:absolute;left:7vw;top:26vh;width:36vw;max-width:510px}
#case-title{all:unset;display:block;margin:0 0 26px;text-align:left}
#case-title .marker-writing{max-height:150px}
#detail-intro{font:clamp(14px,1.2vw,19px)/1.65 'SFMono-Regular',Consolas,monospace;margin:0 0 34px;color:#eeede7}
.rules-label{font:10px 'SFMono-Regular',Consolas,monospace;letter-spacing:.14em;text-transform:uppercase;font-weight:400;margin:0 0 16px;color:#b8bcb9}
#detail-rules{padding-left:22px;margin:0 0 28px;font:12px/1.75 'SFMono-Regular',Consolas,monospace;color:#eeede7}
#detail-rules li{padding-left:8px;margin-bottom:9px}
.game-window{position:absolute;left:52vw;right:6vw;top:var(--detail-content-top,62vh);font-family:'SFMono-Regular',Consolas,monospace}
.game-window[hidden]{display:none}
#game-launch{margin-top:26px}
#game-launch .play-now{margin:0}
.game-window.is-playing{padding:22px 25px 24px;background:#111719e8;border:1px solid #ffffff25;border-radius:12px;box-shadow:0 20px 70px #0004}
.game-status{display:flex;justify-content:space-between;gap:16px;font-size:9px;letter-spacing:.12em;color:#aeb9b7;margin-bottom:17px}
.game-question{font:500 clamp(13px,1.2vw,17px)/1.5 'SFMono-Regular',Consolas,monospace;margin:0 0 18px;color:#f4f3eb}
.game-answers{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.game-answers button{font:11px/1.5 'SFMono-Regular',Consolas,monospace;text-align:left;border-radius:5px;min-height:43px;padding:10px 12px;backdrop-filter:none;border-color:#ffffff25;background:#ffffff05}
.game-answers button:hover:not(:disabled){border-color:#ffffffa0;background:#ffffff13}
.game-answers button:disabled{cursor:default;color:#a5b1af;opacity:.65}
.game-answers button.correct{border-color:#7cc9a3;background:#326b4c55;color:#b9f1d0;opacity:1}
.game-answers button.incorrect{border-color:#db8f86;background:#9f393144;color:#ffb8b0;opacity:1}
.play-now{width:170px;max-width:100%;min-height:48px;margin:0 auto}
.game-window.is-playing .play-now{margin:18px 0 0}
.game-feedback{font:11px/1.5 'SFMono-Regular',Consolas,monospace;color:#d9e3df;margin:15px 0 0}
.game-badge{float:right;width:60px;height:60px;margin:0 0 12px 14px;color:#cce2d9}.game-badge svg{width:100%;height:100%}
.round-result{text-align:center;padding:13px 0 20px}.result-score{display:block;font-size:56px;letter-spacing:-.06em}.result-score small{font-size:20px;color:#8b9996}.round-result h3{font-size:13px;font-weight:400;margin:8px 0}
@media(max-width:899px) and (min-height:501px),(max-width:599px){
 body.preview-open footer{opacity:0;pointer-events:none}body.preview-open footer nav{pointer-events:none}
 .detail-layout{min-height:100svh;padding-bottom:1px}
 .detail-copy{position:relative;left:auto;top:auto;width:auto;max-width:none;margin:0 24px;padding-top:var(--detail-content-top,390px)}
 #case-title{margin-bottom:18px;max-width:360px}#case-title .marker-writing{max-height:100px}
 #detail-intro{font-size:14px;margin-bottom:24px}
 #detail-rules{font-size:11px;line-height:1.65;margin-bottom:18px}
 .game-window{position:relative;left:auto;right:auto;top:auto;margin:26px 24px 40px}
 .game-window.is-playing{padding:20px}
 .case-close{left:20px;right:auto;top:max(20px,env(safe-area-inset-top))}
 .game-meta{font-size:9px;margin:15px 0}
}
@media(max-height:650px){#preview-title{margin-bottom:8px}.typed-copy{font-size:11px;margin-bottom:10px}.preview-rules{font-size:10px}.game-meta{margin:12px 0}}
@media(prefers-reduced-motion:reduce){#room-background,header,.view-button,.retro-button{transition:none}#game-preview{animation:none}.marker-writing path{animation:none;stroke-dashoffset:0}}
