@import url('https://fonts.googleapis.com/css2?family=VT323&family=Space+Mono:wght@400;700&display=swap');
:root{--gold:#f6cf83;--cyan:#9be0c8;--pink:#f3a8b9;--ink:#241810;--muted:#b49c7c;--ruby:#ff7592;--ad-height:0px}*{box-sizing:border-box}body{margin:0;background:#100c09;color:#f4e8cc;font-family:'Space Mono',monospace}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}.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}canvas{image-rendering:pixelated}#game{position:relative;max-width:1600px;min-height:calc(100svh - var(--ad-height));margin:auto;overflow:hidden;background:#2b1b11}#world,.vignette,.scanlines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vignette{background:radial-gradient(ellipse at 50% 48%,transparent 30%,#140a04a6 100%)}.scanlines{z-index:20;background:repeating-linear-gradient(0deg,#000 0px,#000 1px,transparent 1px,transparent 4px);opacity:.035}header{height:54px;position:relative;z-index:10;display:flex;align-items:center;gap:14px;padding:0 26px;background:linear-gradient(#130d09ad,transparent)}.icon{width:36px;height:34px;border:1px solid #a6814c;background:#241a14ed;box-shadow:inset 0 0 0 3px #48301e,0 3px 0 #130d0b;font-size:22px;line-height:1}.icon small{display:block;font-size:6px;letter-spacing:1px}.brand{font-family:VT323,monospace;font-size:26px;letter-spacing:2px;color:var(--gold);border:0;background:none}.brand span{color:var(--pink);font-size:10px}.header-right{margin-left:auto;display:flex;gap:10px}.eyebrow{font-size:9px;letter-spacing:3px;color:#efcc8c;margin:0 0 16px}.tiny{font-size:8px;letter-spacing:1px;color:#d0ba93}.tiny i{font-style:normal;color:var(--gold);padding:0 6px}h1,h2{font-family:VT323,monospace;font-weight:400;margin:0}h2{font-size:42px;line-height:1.05;color:#ffdfa8}.primary{background:#d27861;border:2px solid #fac29a;box-shadow:inset 0 3px #e99c7d,inset 0 -4px #a64d46,0 5px #512c25,0 7px #170f0b;min-height:55px;padding:16px 24px;font-size:12px;letter-spacing:2px;color:#221815;transition:transform .15s,filter .15s}.primary:hover{filter:brightness(1.13);transform:translateY(-2px)}.primary:active{transform:translateY(3px)}.primary span{float:right}.text{border:0;background:none;color:#d8bf96;font-size:9px;letter-spacing:1px;padding:9px 0}.text:hover{color:#fff2cb}#home{position:relative;text-align:center;height:calc(100svh - 54px);min-height:580px;padding-top:clamp(30px,6vh,80px)}h1{font-size:clamp(88px,10vw,142px);line-height:.79;letter-spacing:9px;color:#fff0cf;text-shadow:-3px 0 #87cebb,4px 3px #e07678,6px 8px #321c16}h1 span{font-size:1.19em;letter-spacing:18px;padding-left:10px}.tagline{font-size:11px;letter-spacing:2px;color:#f4dab0;margin-top:26px;text-shadow:0 2px #291910}.home-bottom{position:absolute;bottom:75px;width:min(480px,88%);left:50%;transform:translateX(-50%);padding:18px 18px 10px;background:linear-gradient(transparent,#1b110ae6 35%);}.home-bottom .primary{width:100%;margin-top:12px}.under{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:7px;letter-spacing:1px;color:#c6ac83}.practice{font-size:8px;margin-top:6px}.home-links{display:flex;justify-content:center;gap:26px}footer{position:absolute;bottom:17px;left:26px;right:26px;display:flex;justify-content:space-between;font-size:6px;letter-spacing:1px;color:#ae9471;z-index:2}footer em{color:var(--gold);font-style:normal}#game[data-view=play]>footer{display:none}
/* Room and witnesses share a single canvas camera. The DOM never slides separately. */
#play{position:relative;height:calc(100svh - var(--ad-height) - 54px);min-height:590px;max-width:1400px;margin:auto}.hud{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:3px 30px 10px}.label{font-size:7px;letter-spacing:1.5px;color:#c8ac81;display:block;margin-bottom:2px}.hud strong{font-family:VT323,monospace;font-size:29px;font-weight:400;color:#ffe5ad;text-shadow:0 2px #25140d}.hud small{font-size:18px;color:#af9066}.score{text-align:right}#progress{display:flex;gap:7px}#progress b,#endMarks b{display:block;width:13px;height:13px;border:1px solid #a88451;background:#33241b;box-shadow:inset 0 0 0 2px #1e140e}.current{background:#c08062!important;border-color:#ffc5a3!important}.win{background:var(--gold)!important;border-color:var(--gold)!important}.lose{background:#ac6476!important;border-color:#ac6476!important}#roomContent{position:absolute;inset:58px 0 0}#roomKind,#roomTitle,#brief{display:none}.room-heading{position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(470px,86%);text-align:center;z-index:3}#wallTablet{padding:12px 20px 15px;border:2px solid #b7935e;background:linear-gradient(#654328ed,#3e2b1eeb);box-shadow:inset 0 2px #cfab6b55,inset 0 -3px #281a16,0 5px #1b100aaa;transition:opacity .3s}#wallTablet>span{font-size:6px;letter-spacing:2px;color:#d9bb84}#wallWords{font-family:VT323,monospace;font-size:24px;line-height:1.05;margin:7px 0 0;color:#fce6ad;text-shadow:0 2px #382016}#speechStage{position:absolute;top:20%;left:10%;width:80%;height:135px;z-index:6;pointer-events:none}#cast{position:absolute;left:10%;right:10%;bottom:145px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.actor{position:relative;text-align:center;--accent:var(--gold)}.actor:nth-child(2){--accent:var(--cyan)}.actor:nth-child(3){--accent:var(--pink)}.name-row{height:35px;display:flex;align-items:center;justify-content:center;position:relative;z-index:4;margin-bottom:4px;transition:opacity .4s}.actor-name{display:inline-block;font-family:VT323,monospace;font-size:29px;letter-spacing:1.5px;font-weight:bold;line-height:1;color:var(--accent);padding:4px 13px;background:#22180fe8;border:1px solid #aa875e6b;box-shadow:0 3px #1c110b;text-shadow:0 2px #180e08}.speaking .actor-name{border-color:var(--accent);box-shadow:0 0 20px #f6d29b25,0 3px #1c110b}.speaking .actor-name:before{content:'▸';display:inline-block;margin-right:7px;animation:speakerPulse 1s steps(2) infinite}.replay{position:absolute;left:calc(50% + 49px);width:30px;height:27px;background:#302419;border:1px solid #a98b60;color:var(--accent);font-size:22px;line-height:10px;box-shadow:0 3px #1d120d}.replay:hover{border-color:var(--accent)}.sprite-wrap{height:215px;position:relative;display:flex;align-items:flex-end;justify-content:center}.sprite{width:172px;height:215px;opacity:0;pointer-events:none}.speech-anchor{position:absolute;top:0;left:50%;width:0;height:0;z-index:8}.bubble{position:absolute;bottom:22px;height:144px;padding:17px 20px;background:#231b15f5;border:2px solid var(--accent);box-shadow:inset 0 0 0 3px #58402d,0 7px #160e0bd9;text-align:left;animation:bubbleAppear .25s ease-out;pointer-events:auto}.bubble:before{content:'“';position:absolute;font-family:VT323,monospace;font-size:43px;top:-20px;left:14px;color:var(--accent);background:#2a1c13;line-height:.8;padding:0 5px}#speakerName{display:none}#words{font-family:VT323,monospace;font-size:29px;line-height:1.08;color:#fff0d4}.char{visibility:hidden}.char.shown{visibility:visible}.speech-tail{position:absolute;bottom:-11px;left:var(--tail,50%)!important;width:18px;height:18px;background:#231b15;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg)}.term{font-weight:bold}.term-person-0{color:var(--gold)}.term-person-1{color:var(--cyan)}.term-person-2{color:var(--pink)}.term-ruby{color:var(--ruby)}.term-gold,.term-coin,.term-key,.term-sun{color:#ffce66}.term-moon,.term-ivory{color:#d1e7ed}.term-snake,.term-scarab{color:#9fe1aa}.term-flame,.term-torch{color:#ffba77}.term-curse{color:#d7b1ff}.accuse-row{height:48px;display:flex;align-items:center;justify-content:center;margin-top:13px;transition:opacity .4s}.liar{min-width:125px;height:43px;border:2px solid #dc9a7c;background:linear-gradient(#a75b4d,#7c4039);box-shadow:inset 0 2px #c87d64,inset 0 -3px #63302e,0 4px #321c17,0 6px #160d0a;font-family:VT323,monospace;font-size:25px;letter-spacing:2px;color:#ffe2bf;transition:transform .15s,filter .15s}.liar span{font-size:21px;margin-right:7px;color:#ffc6a9}.liar:hover:not(:disabled){filter:brightness(1.25);transform:translateY(-2px)}.liar:active:not(:disabled){transform:translateY(3px)}.liar:disabled{opacity:.28}.confirm{display:flex;gap:9px;animation:bubbleAppear .15s}.confirm button{width:49px;height:43px;font-size:25px;border:2px solid #bce5b0;background:#3e6648;color:#e8f8c5;box-shadow:inset 0 2px #719967,0 4px #1e3526}.confirm button:last-child{color:#ffe1d2;border-color:#d9a092;background:#7b4743;box-shadow:inset 0 2px #a86b5f,0 4px #39221e}.verdict{color:var(--gold);font-size:9px;letter-spacing:1px}.verdict.innocent{color:var(--pink)}.room-bottom{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:min(660px,70%);text-align:center;z-index:4}.clue-button{font-size:8px;padding:5px 8px;color:#eed3a4;background:#2b1b10b5}#instruction{font-family:VT323,monospace;font-size:23px;margin:6px 0 0;min-height:25px;text-shadow:0 2px #28150a}#skip,#journal{font-size:8px;color:#d0b286;padding:8px}#result{font-family:VT323,monospace;font-size:24px;color:var(--gold);margin:4px 0;text-shadow:0 2px #2b160d}#actions{margin-top:10px}#actions .primary{min-height:42px;padding:10px 24px;font-size:10px}.resolved #instruction{display:none}#celebration{position:absolute;inset:0;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;animation:celebrationIn .65s cubic-bezier(.15,.8,.2,1);text-shadow:0 3px #54341c,0 0 20px #241408}#celebration strong{font-family:VT323,monospace;font-size:62px;font-weight:400;letter-spacing:3px;color:#ffe7a6}.celebration-star{font-size:26px;color:#ffe6a1}#celebrationName{font-size:10px;letter-spacing:2px;color:#f7ddac}
/* A quiet, deliberate arrival. Only the actual wall clue remains during play. */
#arrival{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:25px;background:radial-gradient(ellipse,#1b100a80,transparent 65%);opacity:0;transition:opacity .6s}#arrivalNumber{color:#e7b96d;font-size:10px;letter-spacing:4px;margin-bottom:17px}#arrivalTitle{font-size:clamp(48px,7vw,88px);max-width:850px;line-height:.94;color:#fff0c6;text-shadow:0 4px #6d3e23,0 0 35px #29170d;transition:transform .9s,opacity .6s}#arrivalBrief{position:absolute;width:min(600px,82%);font-family:VT323,monospace;font-size:34px;line-height:1.2;color:#fff0cf;opacity:0;text-shadow:0 3px #321d10}#game[data-phase=title] #arrival,#game[data-phase=pullback] #arrival,#game[data-phase=brief] #arrival{opacity:1}#game[data-phase=pullback] #arrivalTitle{transform:scale(.8);opacity:0}#game[data-phase=pullback] #arrivalNumber,#game[data-phase=brief] #arrivalNumber,#game[data-phase=brief] #arrivalTitle{opacity:0}#game[data-phase=brief] #arrivalBrief{opacity:1;transition:opacity .6s}.name-row,.accuse-row,.room-bottom,.room-heading{opacity:0;pointer-events:none}#game[data-phase=witnesses] .name-row,#game[data-phase=ready] .name-row,#game[data-phase=witnesses] .accuse-row,#game[data-phase=ready] .accuse-row,#game[data-phase=witnesses] .room-bottom,#game[data-phase=ready] .room-bottom,#game[data-phase=witnesses] .room-heading,#game[data-phase=ready] .room-heading{opacity:1;pointer-events:auto}
/* Treasury and results */
#treasure{position:relative;height:calc(100svh - var(--ad-height) - 54px);min-height:580px;text-align:center;padding:40px 20px}.treasure-heading{position:relative;z-index:4}.treasure-heading h2{font-size:46px}.treasure-heading p:last-child{font-size:11px;color:#e6c797;line-height:1.7}.hoard-sky{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hoard-canvas{width:100%;height:100%}#treasureTheater{display:none}#perfectBanner{position:absolute;top:16%;left:0;right:0;z-index:6;animation:celebrationIn .8s ease-out;text-shadow:0 3px #56341c,0 0 30px #432318}#perfectBanner>span{display:block;font-family:VT323,monospace;font-size:43px;color:#ffe4a7}#perfectBanner strong{font-family:VT323,monospace;font-size:86px;letter-spacing:8px;font-weight:400;color:#ffe6a9;animation:perfectHue 5s linear infinite}#perfectBanner p{font-size:10px;color:#fff0d3;letter-spacing:1px}#treasureContinue{position:absolute;bottom:55px;left:50%;transform:translateX(-50%);z-index:8;white-space:nowrap;min-width:240px}#treasureContinue:hover{transform:translateX(-50%) translateY(-2px)}#treasure.perfect .treasure-heading{opacity:0;transition:opacity .6s}#end{position:relative;margin:22px auto 0;text-align:center;width:min(600px,94%);padding:25px 28px 90px;background:linear-gradient(#21180feb,#21180ff5);box-shadow:0 0 65px 35px #21180fbd}#end h2{font-size:49px;line-height:.96}#endScore{font-family:VT323,monospace;font-size:91px;color:var(--gold);margin-top:10px}#endMessage{font-size:10px;line-height:1.7;color:#ccb595;margin:0}#endMarks{display:flex;justify-content:center;gap:9px;margin:18px}#end .primary{width:100%;max-width:420px;margin:16px 0 9px}#shareStatus{font-size:10px;color:var(--cyan)}#comparison{margin:27px auto 12px;max-width:490px;border-top:1px solid #6f5334;padding-top:17px}.chart-heading{display:flex;justify-content:space-between;font-size:7px;letter-spacing:1px;color:#c5a776}#percentile{font-family:VT323,monospace;font-size:25px;color:#f7e0bd;line-height:1.05}#scoreChart{display:flex;align-items:flex-end;height:170px;gap:14px;padding:20px 12px 22px;border-bottom:1px solid #92734a;position:relative}.chart-col{flex:1;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;position:relative}.bar{width:100%;max-width:48px;background:#8e6c47;border:1px solid #c4a576;position:relative;transform-origin:bottom;animation:barGrow .9s}.bar .real{position:absolute;bottom:0;left:0;width:100%;background:#93c3a2}.chart-col.you .bar{border-color:var(--gold);background:#c89b4b;box-shadow:0 0 13px #e6bc6033}.chart-col.you .bar .real{background:#f1ce87}.bar-percent{font-size:8px;color:#c3ac88;margin-bottom:5px}.bar-score{position:absolute;bottom:-21px;color:#dfc398;font-family:VT323,monospace;font-size:18px}.you-tag{position:absolute;top:-19px;color:var(--gold);font-size:7px;letter-spacing:1px}#chartNote,#syncStatus{font-size:8px;line-height:1.7;color:#b49d7d;margin:13px 0 0}#syncStatus:empty{display:none}.review-button{font-size:9px;color:var(--gold);margin-top:8px}.review-room{border-bottom:1px solid #6c5035;padding:12px 0;text-align:left}.review-room summary{cursor:pointer;font-family:VT323,monospace;font-size:23px;color:var(--gold);padding:5px 0}.review-room .note{font-size:10px}dialog{background:#2b2118;color:#f2dfbd;border:2px solid #c09b62;width:min(580px,92%);max-height:85svh;padding:39px 27px;box-shadow:0 0 0 4px #513924}dialog::backdrop{background:#100b08de}dialog .close{position:absolute;right:9px;top:9px}dialog h2{font-size:36px;margin:10px 0 20px}dialog p{font-size:12px;line-height:1.9}dialog b{color:var(--gold)}dialog .note{font-size:10px;color:#c0a984}.testimony{border-left:2px solid #8d6f46;padding-left:13px}.testimony small{display:block;color:var(--gold);font-size:9px;letter-spacing:1px}.testimony p{margin-top:5px}.menu-options{display:grid;gap:16px;margin-top:26px}.ending-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.ending-choice{min-height:103px;padding:15px 9px;background:#38281b;border:1px solid #a88654;box-shadow:inset 0 0 0 3px #59412a;text-align:center}.ending-choice:hover{border-color:var(--gold);background:#57402a}.ending-choice strong{display:block;font-family:VT323,monospace;font-size:35px;font-weight:400;color:var(--gold);margin-bottom:5px}.ending-choice span{display:block;font-size:10px;color:#e8cfaa}.ending-choice small{display:block;font-size:6px;letter-spacing:1px;margin-top:8px;color:var(--cyan)}
/* Countdown and the reserved ad rail */
body.expedition-started{--ad-height:66px;padding-bottom:var(--ad-height)}#adDock{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:min(1600px,100%);height:var(--ad-height);display:flex;align-items:center;justify-content:center;background:#100c09;border-top:1px solid #4a3321;padding:8px}#adSlot{width:min(728px,100%);height:50px;display:flex;align-items:center;justify-content:center;background:#16100c}#adSlot>span{font-size:6px;letter-spacing:2px;color:#786044}#roomClock{position:fixed;left:max(18px,calc((100vw - 1600px)/2 + 24px));bottom:calc(var(--ad-height) + 20px);z-index:12;text-align:center;color:var(--gold);--remaining:1;pointer-events:none}.clock-face{width:65px;height:65px;border:2px solid #ab824c;border-radius:50%;padding:5px;background:conic-gradient(var(--gold) calc(var(--remaining)*1turn),#59412a 0);box-shadow:0 0 0 3px #24190f}#clockCount{display:grid;place-items:center;width:100%;height:100%;border:1px solid #92703f;border-radius:50%;background:#261c13;font-family:VT323,monospace;font-size:33px;line-height:1}#clockLabel{display:block;font-size:5px;letter-spacing:1px;margin-top:6px}.time-edges{position:fixed;inset:0 max(0px,calc((100vw - 1600px)/2)) var(--ad-height);z-index:9;pointer-events:none;opacity:0;background:linear-gradient(90deg,#e9474f44,transparent 12%,transparent 88%,#e9474f44)}.time-low .time-edges{animation:timeWarning 1.6s ease-in-out infinite}.time-critical .time-edges{animation-duration:1s}.time-low #roomClock{color:#ff9d99}.time-low .clock-face{background:conic-gradient(#f58e8b calc(var(--remaining)*1turn),#613b31 0);border-color:#bc6d65}
@keyframes timeWarning{0%,100%{opacity:.2}50%{opacity:1}}@keyframes speakerPulse{50%{opacity:.35}}@keyframes bubbleAppear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes celebrationIn{from{opacity:0;transform:scale(.82) translateY(12px)}65%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes barGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes perfectHue{0%,100%{color:#ffe6a9}25%{color:#9de9d5}50%{color:#b7c8ff}75%{color:#edb1d7}}
@media(max-width:650px){header{height:48px;padding:0 15px}.icon{width:31px;height:29px}.brand{font-size:23px}#home{height:calc(100svh - 48px);padding-top:60px;min-height:570px}h1{font-size:84px;letter-spacing:5px}h1 span{letter-spacing:12px}.home-bottom{bottom:57px;padding:12px 0 4px}.home-bottom .primary{font-size:10px}.tiny{font-size:6px}.under{font-size:6px}.under .text{font-size:7px}.home-links{gap:20px}.practice{font-size:7px}.tagline{font-size:9px}#play{height:calc(100svh - var(--ad-height) - 48px);min-height:560px}.hud{padding:2px 18px}.label{font-size:6px}.hud strong{font-size:25px}#progress{gap:5px}#progress b{width:11px;height:11px}#roomContent{top:48px}#cast{left:4%;right:4%;gap:6px;bottom:151px}.sprite-wrap{height:166px}.sprite{width:133px;height:166px}.actor-name{font-size:24px;padding:3px 8px;letter-spacing:1px}.name-row{height:29px}.replay{left:calc(50% + 27px);top:-22px;width:28px;height:24px}.bubble{height:136px;padding:17px 16px}#words{font-size:26px;line-height:1.06}.accuse-row{height:40px;margin-top:10px}.liar{min-width:91px;height:39px;font-size:23px;letter-spacing:1px}.liar span{font-size:18px;margin-right:3px}.confirm{gap:6px}.confirm button{width:40px;height:38px;font-size:23px}.verdict{font-size:7px}.room-bottom{bottom:20px;width:71%}#instruction{font-size:21px}.clue-button,#skip,#journal{font-size:6px;letter-spacing:.5px}#result{font-size:20px}#actions .primary{font-size:8px;min-height:40px;padding:10px 13px}#wallWords{font-size:22px}#wallTablet{padding:9px 13px 12px}#arrivalTitle{font-size:54px}#arrivalBrief{font-size:30px}#arrivalNumber{font-size:8px;letter-spacing:3px}#speechStage{top:21%;height:110px}#celebration strong{font-size:43px;letter-spacing:1px}#celebrationName{font-size:7px}.celebration-star{font-size:22px}.clock-face{width:53px;height:53px;padding:4px}#clockCount{font-size:29px}#roomClock{left:13px;bottom:calc(var(--ad-height) + 17px)}#adSlot{max-width:320px}footer{left:16px;right:16px;font-size:5px}#treasure{height:calc(100svh - var(--ad-height) - 48px);min-height:560px;padding:45px 20px}.treasure-heading h2{font-size:39px}.treasure-heading p:last-child{font-size:9px}#perfectBanner strong{font-size:65px}#treasureContinue{bottom:55px;font-size:9px}#end{padding:20px 20px 85px}#end h2{font-size:42px}#scoreChart{gap:9px;height:155px;padding-left:5px;padding-right:5px}.chart-heading{font-size:6px}#chartNote,#syncStatus{font-size:7px}}
@media(max-width:650px) and (max-height:760px){#play{min-height:520px}#cast{bottom:132px}.sprite-wrap{height:140px}.sprite{height:140px;width:112px}.bubble{height:126px}#words{font-size:24px}.talking #wallTablet{opacity:0;pointer-events:none}.room-bottom{bottom:10px}#wallWords{font-size:20px}#wallTablet{padding:7px 10px}#actions{margin-top:6px}.accuse-row{margin-top:7px}}
@media(min-width:651px) and (max-height:590px){body.expedition-started{--ad-height:54px}header{height:35px;padding:0 15px}.icon{width:27px;height:25px;font-size:18px}.brand{font-size:20px}#play{height:calc(100svh - var(--ad-height) - 35px);min-height:275px}.hud{padding:0 20px}.hud strong{font-size:22px}.label{font-size:5px}.hud small{font-size:13px}#progress b{width:9px;height:9px}#roomContent{top:37px}#cast{left:30%;right:5%;bottom:61px;gap:12px}.sprite-wrap{height:105px}.sprite{height:105px;width:84px}.name-row{height:22px;margin-bottom:2px}.actor-name{font-size:20px;padding:2px 7px}.replay{left:calc(50% + 35px);width:24px;height:21px;font-size:18px}.accuse-row{height:30px;margin-top:6px}.liar{height:30px;min-width:80px;font-size:19px}.liar span{font-size:15px}.confirm button{height:30px;width:35px;font-size:20px}.bubble{height:93px;bottom:15px;padding:12px 14px}.bubble:before{font-size:32px;top:-13px}#words{font-size:22px;line-height:1}.room-heading{left:3%;transform:none;top:15px;width:25%}#wallTablet{padding:7px 10px}#wallTablet>span{font-size:4px;letter-spacing:1px}#wallWords{font-size:18px}.room-bottom{left:30%;bottom:6px;width:65%;transform:none;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.clue-button,#skip,#journal{font-size:5px;letter-spacing:.5px;padding:4px}#instruction{font-size:16px;min-height:0;margin:0}#result{font-size:15px;margin:0}#actions{margin:0}#actions .primary{min-height:29px;font-size:6px;padding:7px 10px}.resolved .room-bottom{flex-direction:column;gap:5px}.clock-face{width:43px;height:43px;padding:3px}#clockCount{font-size:24px}#roomClock{left:17px;bottom:calc(var(--ad-height) + 15px)}#clockLabel{font-size:4px}#arrivalTitle{font-size:49px}#arrivalBrief{font-size:27px}#arrivalNumber{font-size:7px;margin-bottom:9px}#speechStage{top:3%;left:30%;width:65%;height:100px}#celebration strong{font-size:38px}.celebration-star{font-size:17px}#celebrationName{font-size:7px}#home{height:calc(100svh - 35px);min-height:300px;padding-top:4px}#home>.eyebrow{font-size:6px;margin-bottom:9px}h1{font-size:57px;letter-spacing:5px}h1 span{letter-spacing:12px}.tagline{margin-top:12px;font-size:7px}.home-bottom{bottom:30px;width:410px;padding:10px 15px 0}.home-bottom .tiny{display:none}.home-bottom .primary{min-height:35px;padding:9px 16px;font-size:8px;margin:0}.under{margin-top:5px;font-size:5px}.under .text{font-size:6px;padding:3px}.practice{font-size:6px;padding:3px;margin-top:2px}footer{font-size:4px;bottom:9px}#treasure{height:calc(100svh - var(--ad-height) - 35px);min-height:275px;padding-top:10px}.treasure-heading h2{font-size:30px}.treasure-heading .eyebrow{font-size:6px;margin-bottom:6px}.treasure-heading p:last-child{font-size:7px}#perfectBanner{top:3%}#perfectBanner>span{font-size:25px}#perfectBanner strong{font-size:46px}#perfectBanner p{font-size:7px}#treasureContinue{bottom:15px;min-height:30px;font-size:7px;padding:8px 14px}#game[data-view=treasure]>footer{display:none}.ending-grid{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.ending-choice{min-height:70px;padding:8px}.ending-choice strong{font-size:27px}.ending-choice span{font-size:8px}.ending-choice small{font-size:5px}dialog{padding:25px;max-height:90svh}dialog h2{font-size:28px;margin:5px 0 10px}dialog .note{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.time-low .time-edges{opacity:.55}}

.tagline{max-width:570px;margin:26px auto 0;padding:0 23px;font-size:10px;line-height:1.9;letter-spacing:.5px}.tagline span{color:var(--gold);padding:0 4px}@media(max-width:650px){.tagline{max-width:320px;font-size:9px;margin-top:22px}}@media(min-width:651px) and (max-height:590px){.tagline{font-size:7px;margin-top:12px}}
@media(min-width:651px) and (min-height:591px){.sprite-wrap{height:270px}.sprite{width:216px;height:270px}#cast{left:14%;right:14%;bottom:145px}}
@media(min-width:651px) and (max-height:590px){#cast{bottom:20px}.sprite-wrap{height:95px}.sprite{height:95px;width:76px}.bubble{height:80px;bottom:12px;padding:10px 13px}#words{font-size:20px;line-height:1}.room-bottom{left:3%;width:25%;bottom:82px;flex-direction:column;gap:0}.room-bottom .primary{min-height:28px}.resolved .room-bottom{bottom:71px}.room-heading{top:12px}}
/* v0.5: clean arcade panels and the original three witness colors. */
:root{--gold:#ffd477;--cyan:#7fc7ff;--pink:#ff8da0;--ink:#101e2c;--muted:#9cafb9}body{background:#080f19}#game{background:#14232f}.vignette{background:radial-gradient(ellipse at 50% 48%,transparent 36%,#050f20a0 100%)}header{background:linear-gradient(#071322ad,transparent)}.icon{border-color:#56728b;background:#101f30e8;box-shadow:inset 0 0 0 3px #24394b,0 3px #080f1d}.primary{background:#e87998;border-color:#ffc2cf;box-shadow:inset 0 3px #f29bb1,inset 0 -4px #b94b71,0 5px #622d4b,0 7px #0b1420;color:#172031}.home-bottom{background:linear-gradient(transparent,#0b1725e8 35%)}.text{color:#a5bdca}.text:hover{color:#fce3a8}.under{color:#91a8b7}.eyebrow{color:#9ed2de}.tagline{max-width:680px;margin:15px auto 0;font-family:VT323,monospace;font-size:23px;line-height:1.25;letter-spacing:.2px;color:#cad9dc}.tagline span{color:#e9b668;padding:0 5px}.home-bottom .primary{margin-top:4px}.label{color:#96aabb}.hud strong{color:var(--gold);text-shadow:0 2px #081422}.hud small{color:#6f91a6}.progress-group{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative}#streakBadge{position:absolute;top:20px;white-space:nowrap;font-family:VT323,monospace;font-size:17px;letter-spacing:1px;color:var(--gold)}#streakBadge[data-streak="3"],#streakBadge[data-streak="4"]{color:#9ad8ff;text-shadow:0 0 9px #7fc7ff55}#streakBadge[data-streak="4"]{color:#ffb0cc;animation:perfectHue 3s linear infinite}#progress b,#endMarks b{background:#142534;border-color:#607c8b;box-shadow:inset 0 0 0 2px #0b1726}.current{background:#df7996!important;border-color:#ffc2d2!important}
.actor-name{background:#0a1b2de8;border-color:#5c7a8c80;box-shadow:0 3px #07131f;text-shadow:0 2px #06101c}.replay{background:#132a3a;border-color:#577b8d;box-shadow:0 3px #07131f}.actor:nth-child(2){--accent:var(--cyan)}.actor:nth-child(3){--accent:var(--pink)}.term-person-1{color:var(--cyan)}.term-person-2{color:var(--pink)}.talking .actor:not(.speaking) .name-row{opacity:.38}.talking .actor.speaking .name-row{opacity:1}.bubble{height:auto;min-height:0;padding:15px 19px;background:#102233f5;border:2px solid var(--accent);box-shadow:inset 0 0 0 3px #294150,0 6px #06111cbb}.bubble:before{background:#102233;color:var(--accent)}#words{font-size:30px;line-height:1.06;color:#edf0df}.speech-tail{background:#102233}.liar{border-color:#d786a0;background:#14283a;box-shadow:inset 0 2px #365063,inset 0 -3px #0c1b2a,0 4px #080f1c,0 6px #07111d;color:#f6c1cf}.liar span{color:#f88eaa}.liar:hover:not(:disabled){background:#26394b;filter:none;border-color:#ffc5d4}.confirm button{background:#214c46;border-color:#99dfbd;box-shadow:inset 0 2px #3d7863,0 4px #0a2828}.confirm button:last-child{background:#573048;border-color:#e49ab6;box-shadow:inset 0 2px #86506a,0 4px #291829}.room-bottom .clue-button{color:#a9c1ca;background:#0b1b29ba}#instruction{color:#d7e2df;text-shadow:0 2px #0c1925}#skip,#journal{color:#99b5c3}#wallTablet{border-color:#687d82;background:linear-gradient(#38434aed,#26343deb);box-shadow:inset 0 2px #93a8a333,inset 0 -3px #162632,0 5px #07141c88}#wallTablet>span{color:#99b4bc}#wallWords{color:#e2d5ae;text-shadow:0 2px #142532}#game[data-phase=witnesses] #wallTablet{opacity:.45}#arrival{background:radial-gradient(ellipse,#0a17254d,transparent 65%)}#arrivalTitle{text-shadow:0 4px #2d4554,0 0 35px #111d2c}#arrivalBrief{font-size:35px;text-shadow:0 3px #112130}#arrivalNumber{color:#b2c6ce}#game[data-phase=pullback] #arrivalTitle{transform:scale(.64);transition-duration:1.1s}.clock-face{border-color:#527a94;background:conic-gradient(var(--cyan) calc(var(--remaining)*1turn),#233847 0);box-shadow:0 0 0 3px #0d1928}#roomClock{color:var(--cyan)}#clockCount{background:#102535;border-color:#52778d}.time-low #roomClock{color:#ff9aa9}#adDock{background:#070f18;border-color:#263b49}#adSlot{background:#0a1520}#adSlot>span{color:#4c6577}footer{color:#75909f}
#celebration{inset:-20px -20px -35px;gap:5px;background:radial-gradient(ellipse,#0c1c2bba,transparent 70%);text-shadow:0 3px #384444,0 0 22px #0e1e2a}#celebration strong{font-size:61px;letter-spacing:2px}#celebrationName{color:#fce4aa;font-size:11px;letter-spacing:3px}#pointAward{display:block;font-family:VT323,monospace;font-size:21px;letter-spacing:1px;color:#abc7d4}#pointAward b{font-size:35px;color:#ffe7a1;display:inline-block;animation:pointsPop .55s cubic-bezier(.15,.8,.2,1)}#streakEncouragement{font-family:VT323,monospace;font-size:22px;color:#cadade;letter-spacing:.3px}#celebration[data-streak="2"] strong{color:#ffe4a1;text-shadow:0 0 18px #f6d18c55,0 3px #4d4f4f}#celebration[data-streak="3"] strong{color:#a7dcff;text-shadow:0 0 23px #8acbff66,0 3px #3d4b68}#celebration[data-streak="4"] strong{color:#fdb1d0;text-shadow:0 0 28px #f184bb66,0 3px #5e3f61}#celebration[data-streak="5"] strong{animation:perfectHue 2.5s linear infinite;text-shadow:0 0 28px #e9c79f66,0 3px #3b4264}.celebration-star{font-size:24px;color:#ffdf8e}#celebration[data-streak="3"] .celebration-star,#celebration[data-streak="4"] .celebration-star,#celebration[data-streak="5"] .celebration-star{font-size:34px;animation:starTurn 2s steps(12) infinite}#detectiveTotal{font-family:VT323,monospace;font-size:23px;color:#9ed0e2;margin:0 0 10px}#end{background:linear-gradient(#0d1f2ceb,#0d1f2cf5);box-shadow:0 0 65px 35px #0d1f2cbd}dialog{background:#112735;border-color:#829aa8;color:#d0dfdf;box-shadow:0 0 0 4px #263d4b}dialog::backdrop{background:#04101ddd}.ending-choice{background:#122736;border-color:#587787;box-shadow:inset 0 0 0 3px #243d49}.ending-choice:hover{background:#263e4b}.ending-choice span{color:#c9d9d9}
@keyframes pointsPop{0%{transform:scale(.3) translateY(13px);opacity:0}60%{transform:scale(1.2) translateY(-2px)}100%{transform:scale(1);opacity:1}}@keyframes starTurn{to{transform:rotate(360deg)}}
@media(max-width:650px){.tagline{max-width:340px;font-size:20px;margin-top:13px;line-height:1.3;padding:0 14px}.tagline span{padding:0 2px}.bubble{height:auto;padding:13px 16px}#words{font-size:28px}#arrivalBrief{font-size:30px}#celebration{inset:-16px -20px -45px}#celebration strong{font-size:43px}#celebrationName{font-size:8px;letter-spacing:2px}#pointAward{font-size:17px}#pointAward b{font-size:30px}#streakEncouragement{font-size:19px}#streakBadge{font-size:14px;top:16px}.hud .score .label{font-size:5px;letter-spacing:.7px}#detectiveTotal{font-size:20px}}
@media(min-width:651px) and (max-height:590px){.tagline{font-size:18px;margin-top:10px;max-width:610px}.bubble{height:auto;padding:10px 13px}#words{font-size:24px}.bubble:before{font-size:29px;top:-12px}#arrivalBrief{font-size:28px}#streakBadge{font-size:12px;top:13px}#speechStage{top:5%;height:110px}#celebration{inset:-12px -10px -15px;gap:2px}#celebration strong{font-size:37px}#celebrationName{font-size:7px;letter-spacing:1.5px}#pointAward{font-size:15px}#pointAward b{font-size:23px}#streakEncouragement{font-size:16px}.celebration-star,#celebration[data-streak] .celebration-star{font-size:19px}.resolved .room-bottom{bottom:71px}}
#buddyCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;transition:opacity .5s}#home,#play,#treasure,#end{z-index:3}
/* Rewards occupy the cleared clue area, keeping the witness reactions visible. */
.celebrating #wallTablet{opacity:0!important;pointer-events:none}.celebrating #speechStage{top:-10px;height:165px}#celebration{inset:0}#celebration strong{font-size:54px}
@media(max-width:650px){.celebrating #speechStage{top:6%;height:150px}#celebration strong{font-size:43px}}
@media(min-width:651px) and (max-height:590px){.celebrating #speechStage{top:-4px;height:105px}#celebration strong{font-size:32px}#pointAward b{font-size:21px}.celebration-star,#celebration[data-streak] .celebration-star{font-size:15px}#streakEncouragement{font-size:15px}}
#game[data-view=treasure][data-phase=travel] .treasure-heading,#game[data-view=treasure][data-phase=travel] #treasureTheater{opacity:0}.treasure-heading,#treasureTheater{transition:opacity .5s}

.celebrating .name-row{opacity:0!important;pointer-events:none}
/* v0.6: larger introductions and a deliberate reading order. */
#arrivalTitle{font-size:clamp(78px,8.4vw,118px);max-width:1000px;line-height:.96;text-wrap:balance}#arrivalBrief{width:min(790px,86%);font-size:46px;line-height:1.2;text-wrap:balance}#arrivalNumber{font-family:VT323,monospace;font-size:22px;letter-spacing:4px;color:#a9bdc1;margin-bottom:22px}
.room-heading{transition:top .7s ease,transform .7s ease,width .7s ease}#wallTablet{width:100%;display:block;text-align:center;cursor:pointer;padding:15px 20px 18px;background:linear-gradient(135deg,#5c5142,#393d3b);border:2px solid #98846a;box-shadow:inset 0 2px #d6bd8677,inset 0 -5px #222a2c,0 6px #06111c99}#wallTablet>span{font-family:VT323,monospace;font-size:16px;letter-spacing:2px;color:#c4b796}#wallWords{font-family:VT323,monospace;font-size:28px;line-height:1.12;color:#f4e0b3;text-wrap:balance;margin-top:8px}#game[data-phase=clue] .room-heading{opacity:1;pointer-events:auto;top:35%;left:50%;width:min(690px,87%);transform:translate(-50%,-50%);z-index:9}#game[data-phase=clue] #wallTablet{padding:26px;border-color:#eac98d;box-shadow:inset 0 2px #ffedb1,inset 0 -6px #302e2b,0 0 40px #f2c36d22;animation:inscriptionGlow 2.2s ease-in-out 2}#game[data-phase=clue] #wallWords{font-size:39px;line-height:1.2}#game[data-phase=witnesses] #wallTablet{opacity:.7}#game[data-phase=ready] #wallTablet{opacity:1}.wall-reading{font-family:VT323,monospace;font-size:35px;line-height:1.2;color:#ffe4ab}#caseButton,#journal,#skip{font-family:VT323,monospace;font-size:17px;letter-spacing:1px}#game[data-phase=ready] .replay{animation:replayNudge 1.2s ease-out 2}
@keyframes inscriptionGlow{50%{box-shadow:inset 0 2px #ffedb1,inset 0 -6px #302e2b,0 0 50px #f2c36d3c}}@keyframes replayNudge{0%,100%{box-shadow:0 3px #07131f}50%{box-shadow:0 3px #07131f,0 0 10px #97d6f755}}
#home{padding-top:clamp(35px,6vh,70px)}#home>.eyebrow{font-family:VT323,monospace;font-size:21px;letter-spacing:5px}h1{text-shadow:-3px 0 #91e1d6,4px 1px #ed7e9e,7px 7px #112032}.home-bottom .primary{font-family:VT323,monospace;font-size:28px;letter-spacing:3px;min-height:61px}.home-bottom{background:linear-gradient(transparent,#0b1725e6 65%)}.home-links .text,.under .text{font-family:VT323,monospace;font-size:16px;letter-spacing:.7px}.under{font-family:VT323,monospace;font-size:14px}.scanlines{opacity:.045}
@media(max-width:650px){#home{padding-top:40px}h1{font-size:88px}#home>.eyebrow{font-size:16px;letter-spacing:3px}.tagline{margin-top:13px}#arrivalTitle{font-size:70px;line-height:.98}#arrivalBrief{font-size:38px;width:86%}#arrivalNumber{font-size:18px}#wallWords{font-size:25px}#wallTablet{padding:10px 14px 13px}#wallTablet>span{font-size:13px;letter-spacing:1px}#game[data-phase=clue] #wallWords{font-size:32px}#game[data-phase=clue] #wallTablet{padding:21px 18px}#caseButton,#journal,#skip{font-size:14px}.home-bottom .primary{font-size:25px}.home-links{gap:18px}.home-links .text,.under .text{font-size:13px}.under{font-size:12px}.talking #wallTablet{opacity:.6;pointer-events:auto}.wall-reading{font-size:30px}}
@media(min-width:651px) and (max-height:590px){#arrivalTitle{font-size:64px}#arrivalBrief{font-size:34px;width:min(650px,85%)}#arrivalNumber{font-size:16px;margin-bottom:12px}#game[data-phase=clue] .room-heading{top:41%;width:70%}#game[data-phase=clue] #wallWords{font-size:29px}#game[data-phase=clue] #wallTablet{padding:16px}#wallWords{font-size:21px}#wallTablet>span{font-size:11px}#caseButton,#journal,#skip{font-size:12px}#home{padding-top:4px}#home>.eyebrow{font-size:12px;letter-spacing:3px;margin-bottom:8px}.home-bottom .primary{font-size:21px;min-height:37px}.home-links .text,.under .text{font-size:11px}.under{font-size:10px}.home-bottom{bottom:18px}.home-links{gap:18px}.tagline{font-size:18px}h1{font-size:55px}.room-bottom{bottom:80px}.resolved .room-bottom{bottom:69px}}

.tagline{background:#0d1b2aca;padding:7px 14px 9px;color:#e3ede2;text-shadow:0 2px #07121d;width:fit-content;max-width:min(690px,90%)}
/* v0.7: a fixed camera, quiet room heading and localized tomb light. */
.tagline{background:none;padding:0 16px;color:#cbd7cf;text-shadow:0 2px 3px #081016;max-width:680px}.vignette{background:radial-gradient(ellipse at 50% 48%,transparent 32%,#050a12a6 100%)}#buddyCanvas{transition:none}
#arrival{inset:auto;top:52px;left:50%;transform:translateX(-50%);width:min(680px,82%);padding:0;background:none;display:block;opacity:1;transition:opacity .3s;z-index:4}
#arrivalNumber{display:none}#arrivalTitle{font-size:40px;line-height:1.05;max-width:none;letter-spacing:1px;transform:none!important;opacity:1!important;text-shadow:0 3px #0b141d;transition:none;text-wrap:balance}
#arrivalBrief{position:static;width:100%;margin:10px 0 0;font-size:27px;line-height:1.15;opacity:0;visibility:hidden;text-shadow:0 2px #0b141d;transition:opacity .25s}
#game[data-phase=brief] #arrivalBrief{opacity:1;visibility:visible}#game[data-phase=travel] #arrival{opacity:0}
.room-heading,#game[data-phase=clue] .room-heading{top:64px;left:50%;width:min(560px,86%);transform:translateX(-50%);transition:opacity .3s;z-index:3}
#game[data-phase=clue] .room-heading{opacity:1;pointer-events:auto}#game[data-phase=brief] .room-heading{opacity:0;pointer-events:none}
#wallTablet,#game[data-phase=clue] #wallTablet{padding:12px 18px 15px;border-color:#8c7a5d;background:linear-gradient(#39372e,#252a27);box-shadow:inset 0 2px #b59b6a33,inset 0 -3px #151d1b,0 4px #070e1399;animation:none}
#wallWords,#game[data-phase=clue] #wallWords{font-size:28px;line-height:1.12}#game[data-phase=clue] #wallTablet{border-color:#b69d6d}#wallTablet>span{font-size:13px;color:#af9f7c}
#game[data-phase=witnesses] #wallTablet{opacity:.52}#game[data-phase=ready] #wallTablet{opacity:.85}#game[data-phase=travel] .room-heading{opacity:0;pointer-events:none}
.celebrating #arrivalBrief{display:none}.celebrating #speechStage{top:55px}.room-bottom .text{color:#b0c0c5}
@media(max-width:650px){
 #arrival{top:46px;width:90%}#arrivalTitle{font-size:32px;letter-spacing:.3px}#arrivalBrief{font-size:24px;margin-top:10px}
 .room-heading,#game[data-phase=clue] .room-heading{top:55px;width:87%}#wallWords,#game[data-phase=clue] #wallWords{font-size:25px}#wallTablet,#game[data-phase=clue] #wallTablet{padding:10px 14px 12px}#wallTablet>span{font-size:12px}
 .tagline{max-width:340px;font-size:20px;padding:0 14px}.celebrating #speechStage{top:65px}
}
@media(min-width:651px) and (max-height:590px){
 #arrival{top:35px;left:3%;transform:none;width:25%;text-align:center}#arrivalTitle{font-size:28px;letter-spacing:0}#arrivalBrief{font-size:21px;margin-top:8px}
 .room-heading,#game[data-phase=clue] .room-heading{top:66px;left:3%;transform:none;width:25%}#wallWords,#game[data-phase=clue] #wallWords{font-size:21px;line-height:1.05}#wallTablet,#game[data-phase=clue] #wallTablet{padding:9px 10px 11px}#wallTablet>span{font-size:10px;letter-spacing:1px}
 .celebrating #speechStage{top:6px}.tagline{font-size:18px;max-width:610px}
}
@media(min-width:651px) and (max-height:590px){
 #arrival{width:22%;text-align:left}#arrivalTitle{font-size:25px;max-width:100%;text-wrap:balance}
 #wallWords,#game[data-phase=clue] #wallWords{font-size:20px;line-height:1.03}#wallTablet,#game[data-phase=clue] #wallTablet{padding:8px 10px 10px}
 .has-carving .room-bottom{left:9%;width:19%;bottom:6px}.has-carving #caseButton,.has-carving #instruction{display:none}
 .resolved .room-heading{opacity:0;pointer-events:none}.resolved .has-carving .room-bottom{left:3%;width:25%;bottom:62px}
}
/* v0.8: one quiet hierarchy, a central reading surface, and fixed floor contact. */
#arrival{top:-43px;left:50%;width:min(680px,60%);transform:translateX(-50%);text-align:center;z-index:9}#arrivalTitle{font-size:32px;line-height:1.05;letter-spacing:.6px}#arrivalBrief{display:none!important}.hud{padding-top:0}.progress-group{align-self:flex-start;margin-top:5px}#progress{justify-content:center}#roomContent{top:58px}#cast{bottom:145px}.vignette{background:radial-gradient(ellipse at 50% 44%,transparent 40%,#140e0790 100%)}
#readingPanel{position:absolute;left:50%;top:35%;width:min(730px,86%);transform:translate(-50%,-50%);text-align:center;padding:27px 30px;z-index:8;pointer-events:none;opacity:0;visibility:hidden;border:1px solid #ab885a;background:linear-gradient(#3f3023f2,#241d16f5);box-shadow:inset 0 0 0 4px #70523533,0 8px #130e0a66;transition:top .85s ease,transform .85s ease,opacity .4s,width .85s ease,padding .85s ease}
#readingLabel{font-family:VT323,monospace;font-size:17px;letter-spacing:3px;color:#c8a976}#readingWords{font-family:VT323,monospace;font-size:39px;line-height:1.17;color:#fff0cd;margin:13px 0 0;text-wrap:balance;text-shadow:0 2px #140d07}
#game[data-phase=brief] #readingPanel,#game[data-phase=clue] #readingPanel{opacity:1;visibility:visible}#game[data-phase=dock] #readingPanel{top:13%;transform:translate(-50%,-50%) scale(.6);opacity:0;visibility:visible}
.room-heading,#game[data-phase=clue] .room-heading{top:8px;left:50%;width:min(430px,76%);transform:translateX(-50%)}#game[data-phase=brief] .room-heading,#game[data-phase=clue] .room-heading,#game[data-phase=dock] .room-heading{opacity:0;pointer-events:none}
#wallTablet,#game[data-phase=clue] #wallTablet{padding:8px 15px;background:#30261bce;border:1px solid #98764c;box-shadow:inset 0 2px #b9995c22,0 3px #19130e66}#wallTablet>span{font-size:14px;letter-spacing:1.5px}#wallWords,#game[data-phase=clue] #wallWords{font-size:24px;line-height:1.06;margin-top:6px}#game[data-phase=witnesses] #wallTablet{opacity:.75}
#dismissSpeech{position:absolute;right:-10px;top:-13px;width:27px;height:27px;border:1px solid var(--accent);background:#211b16;color:var(--accent);font:24px/20px VT323,monospace;box-shadow:0 3px #100e0c}#words{padding-right:2px}.bubble{background:#231d17f5;box-shadow:inset 0 0 0 3px #55412d,0 7px #100c09b3}.speech-tail{background:#231d17}.actor-name{background:#211b15dd;border-color:#a88c5f66}
#home .home-bottom{background:linear-gradient(transparent,#171510cc 75%)}.tagline{margin-top:14px}.room-bottom{bottom:22px}.celebrating #speechStage{top:12px}.celebrating .room-heading{opacity:0;pointer-events:none}
@media(max-width:650px){#arrival{top:-35px;width:56%}#arrivalTitle{font-size:25px;line-height:1;letter-spacing:0}.hud{padding-top:8px}.progress-group{margin-top:3px}#readingPanel{top:32%;padding:23px 20px;width:89%}#readingLabel{font-size:14px;letter-spacing:2px}#readingWords{font-size:31px;line-height:1.12}.room-heading,#game[data-phase=clue] .room-heading{top:6px;width:84%}#wallTablet>span{font-size:11px}#wallWords,#game[data-phase=clue] #wallWords{font-size:22px}#wallTablet,#game[data-phase=clue] #wallTablet{padding:7px 12px 10px}#words{font-size:27px}.room-bottom{bottom:24px}.celebrating #speechStage{top:6px}#home .tagline{margin-top:12px}}
@media(min-width:651px) and (max-height:590px){#arrival{top:-29px;left:50%;transform:translateX(-50%);width:58%;text-align:center}#arrivalTitle{font-size:23px;max-width:none}.hud{padding-top:2px}.progress-group{margin-top:2px}#readingPanel{top:36%;width:66%;padding:15px 24px}#readingLabel{font-size:13px}#readingWords{font-size:30px;margin-top:8px}.room-heading,#game[data-phase=clue] .room-heading{top:-10px;left:2%;width:24%;transform:none}#wallWords,#game[data-phase=clue] #wallWords{font-size:20px}#wallTablet>span{font-size:10px}#cast{left:29%;right:4%;gap:16px}.has-carving .room-bottom{left:50%;width:56%;bottom:7px;transform:translateX(-50%)}.has-carving #caseButton{display:inline-block}.has-carving #instruction{display:block}.resolved .has-carving .room-bottom{left:50%;width:60%;bottom:12px}.room-bottom{bottom:7px}.celebrating #speechStage{top:0;left:2%;width:25%;height:115px}#celebration strong{font-size:26px}#streakEncouragement{font-size:13px}}
@media(prefers-reduced-motion:reduce){#readingPanel{transition:none}}
#readingGlyphs{display:none;max-width:100%;width:280px;height:28px;margin:12px auto 0;opacity:.8}#game[data-phase=clue] #readingGlyphs{display:block}
@media(max-width:650px){#arrival{top:3px;width:92%}#arrivalTitle{font-size:25px}.hud{padding-top:36px}.room-heading,#game[data-phase=clue] .room-heading{top:14px}#readingPanel{top:34%}}
@media(min-width:651px) and (max-height:590px){.bubble{bottom:12px}.room-bottom,.has-carving .room-bottom{left:14%;width:24%;bottom:59px}.room-bottom #instruction,.room-bottom #caseButton,.has-carving .room-bottom #instruction,.has-carving .room-bottom #caseButton{display:none}.resolved .room-bottom,.resolved .has-carving .room-bottom{left:14%;width:24%;bottom:60px}.resolved #result{font-size:18px}.resolved #actions .primary{font-size:12px;padding:7px 10px;white-space:normal}}
/* v0.9: a modest camera pullback, with readable dialogue and roomy controls. */
.vignette{background:radial-gradient(ellipse at 50% 44%,transparent 43%,#140e0768 100%)}
header{gap:11px}.icon{width:31px;height:30px;font-size:20px}.brand{font-size:23px}.header-right{gap:8px}h1{font-size:clamp(76px,8.8vw,122px);letter-spacing:8px}h1 span{letter-spacing:15px}.home-bottom{width:min(420px,88%)}.home-bottom .primary{font-size:24px;letter-spacing:2.5px;min-height:52px;padding:12px 20px}.primary{min-height:48px;padding:12px 20px}.tagline{font-size:19px}.home-bottom .under{font-size:12px}.home-links .text,.under .text{font-size:14px}
.actor-name{font-size:25px;padding:3px 11px;letter-spacing:1px}.name-row{height:31px}.replay{width:27px;height:24px;left:calc(50% + 43px);font-size:20px}.liar{min-width:108px;height:38px;font-size:22px;letter-spacing:1.5px}.liar span{font-size:18px;margin-right:5px}.confirm button{width:44px;height:38px;font-size:22px}.accuse-row{height:43px;margin-top:12px}.bubble{padding:14px 17px}#words{font-size:27px}.room-bottom .text{font-size:15px}#instruction{font-size:21px}#wallWords{font-size:23px}
@media(min-width:651px) and (min-height:591px){.sprite-wrap{height:232px}.sprite{width:185.6px;height:232px}#cast{left:12%;right:12%;gap:30px}#arrivalTitle{font-size:29px}.clock-face{width:59px;height:59px}#clockCount{font-size:30px}}
@media(max-width:650px){.icon{width:29px;height:27px}.brand{font-size:21px}h1{font-size:77px}h1 span{letter-spacing:11px}.tagline{font-size:18px}.home-bottom .primary{font-size:22px;min-height:48px}.home-links .text,.under .text{font-size:12px}.home-bottom .under{font-size:11px}.sprite-wrap{height:148px}.sprite{width:118.4px;height:148px}.name-row{height:27px}.actor-name{font-size:22px;padding:3px 7px}.replay{left:calc(50% + 26px);top:-20px;width:25px;height:22px}.liar{min-width:80px;height:36px;font-size:21px}.confirm button{width:37px;height:36px}.accuse-row{height:39px;margin-top:10px}.bubble{padding:13px 15px}#words{font-size:25px}.room-bottom .text{font-size:13px}#instruction{font-size:20px}#wallWords{font-size:21px}.clock-face{width:49px;height:49px}#clockCount{font-size:27px}}
@media(min-width:651px) and (max-height:590px){.icon{width:25px;height:24px;font-size:16px}.brand{font-size:19px}h1{font-size:49px}.home-bottom{width:365px}.home-bottom .primary{min-height:32px;font-size:19px;padding:7px 13px}.tagline{font-size:16px}.home-links .text,.under .text{font-size:10px}.home-bottom .under{font-size:9px}.sprite-wrap{height:90px}.sprite{width:72px;height:90px}.name-row{height:20px}.actor-name{font-size:18px;padding:2px 6px}.replay{width:22px;height:21px;left:calc(50% + 34px)}.liar{min-width:73px;height:28px;font-size:18px}.liar span{font-size:14px}.accuse-row{height:32px;margin-top:6px}.confirm button{width:33px;height:28px;font-size:18px}#words{font-size:24px}.bubble{padding:10px 13px}.room-bottom .text{font-size:12px}}
/* v0.10: stone relief, clear witness targets and soft, measured reading motion. */
.mummy-hit{position:relative;display:flex;align-items:flex-end;justify-content:center;width:100%;height:232px;padding:0;border:0;background:none;box-shadow:none;outline-offset:-8px;touch-action:manipulation;z-index:2;cursor:pointer}
.mummy-hit:disabled{cursor:default}.mummy-hit:focus-visible{outline:2px dashed var(--accent);border-radius:35% 35% 8px 8px}.mummy-hit:not(:disabled):hover:after{content:'';position:absolute;bottom:8px;left:25%;right:25%;height:2px;background:var(--accent);box-shadow:0 0 10px var(--accent);opacity:.65}.mummy-hit .sprite{flex:none;pointer-events:none}
.sprite-wrap{height:284px}.actor-name{padding:4px 12px;background:linear-gradient(#302a23f2,#171b1ef5);border:1px solid #9c8b706b;box-shadow:inset 0 1px #e6c69326,0 3px #131310;color:var(--accent);text-shadow:0 2px #0f1519}.name-row{margin-bottom:4px}.replay{border-color:#837a68;background:linear-gradient(#26353a,#152127);box-shadow:inset 0 1px #a6c0ba33,0 3px #111719}.replay:hover{background:#35484d}
.speaking .actor-name{border-color:var(--accent);box-shadow:inset 0 1px #fff2c533,0 3px #111511,0 0 17px #edbc6030}.talking .actor:not(.speaking) .name-row{opacity:.65}.speaking .actor-name:before{animation:none}
.bubble{border-width:1px;background:linear-gradient(125deg,#292b29fa,#172126fa);box-shadow:inset 0 0 0 3px #5e60422c,0 5px #111616bf,0 9px 22px #080d1240;animation:speechEase .25s ease-out}.bubble:before{display:none}.speech-tail{border-width:1px;background:#202727;width:13px;height:13px;bottom:-8px}.char{visibility:visible;opacity:0;transition:opacity .12s ease-out}.char.shown{opacity:1}#words{line-height:1.13;color:#f7edd6;text-shadow:0 1px #121614}.term{font-weight:700}.bubble #dismissSpeech{top:-12px;right:-10px;border-radius:2px;background:#192328}
.liar{position:relative;border:1px solid #d68e9b;background:linear-gradient(#28343e,#17232d);box-shadow:inset 0 2px #8d7f762e,inset 0 -3px #0c151d,0 4px #0b1117;letter-spacing:2px;color:#f5bdc7}.liar:before,.liar:after{content:'';position:absolute;top:4px;width:2px;height:2px;background:#e6b7a4}.liar:before{left:4px}.liar:after{right:4px}.liar:hover:not(:disabled){background:linear-gradient(#513840,#302934);box-shadow:inset 0 2px #efbcb13b,inset 0 -3px #261c24,0 4px #0b1117}.liar:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #0c151d,0 2px #0b1117}.confirm button{border-width:1px}.confirm{gap:8px}
.room-bottom .clue-button{border:1px solid #8f85634f;padding:6px 12px;background:linear-gradient(#2b302ad9,#1b2527eb);box-shadow:inset 0 1px #e5c78b1c,0 2px #141912}.room-bottom .clue-button:hover{border-color:#d7b16e}.room-bottom #journal{color:#b7c8c5}.label{color:#bcae91}.hud strong{color:#f8d68c}.hud small{color:#a3aca7}#progress b{width:12px;height:12px;border-color:#8b8b79;box-shadow:inset 0 0 0 2px #111c22,0 2px #131716}.progress-group{gap:6px}
#readingPanel{background:linear-gradient(115deg,#493925f7,#2d271efa 60%,#24221df5);border-color:#b89964;box-shadow:inset 0 0 0 3px #c7a26816,inset 0 5px #efd29a19,inset 0 -5px #17151055,0 8px #100e0a66;transition:top .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1),opacity .65s ease,width .9s ease,padding .9s ease}
#readingPanel:before,#readingPanel:after{content:'';position:absolute;top:10px;bottom:10px;width:3px;border-top:3px solid #cfad73;border-bottom:3px solid #cfad73;opacity:.6}#readingPanel:before{left:10px}#readingPanel:after{right:10px}#readingWords{color:#faebca;text-shadow:0 2px #21180d;line-height:1.2;letter-spacing:.2px}.reading-word{display:inline-block;opacity:1}#game[data-phase=brief] .reading-word{animation:readBrief .65s ease-out both;animation-delay:var(--word-delay)}#game[data-phase=clue] .reading-word{animation:readCarving .7s ease-out both;animation-delay:var(--word-delay)}#readingGlyphs{opacity:.95}#wallTablet{background:linear-gradient(115deg,#4d3a25ed,#2f291fed);box-shadow:inset 0 2px #e0bf7d22,inset 0 -3px #15140e66,0 3px #11100a88;border-color:#987c55}#wallWords{line-height:1.13;color:#f1dfb8;text-shadow:0 1px #1c1710}.room-heading{transition:opacity .55s ease .15s}
@keyframes speechEase{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes readBrief{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@keyframes readCarving{from{opacity:0;transform:translateY(3px);color:#d2a667}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){.sprite-wrap{height:182px}.mummy-hit{height:148px}.actor-name{padding:3px 8px}.replay{top:-14px}.room-bottom .clue-button{padding:5px 10px}#readingWords{line-height:1.17}.liar{min-width:78px;letter-spacing:1.5px}}
@media(min-width:651px) and (max-height:590px){.sprite-wrap{height:108px}.mummy-hit{height:90px}.actor-name{padding:2px 6px}.replay{top:0}.bubble{bottom:8px}#readingWords{line-height:1.12}}
@media(prefers-reduced-motion:reduce){.char{transition:none}.reading-word,.bubble{animation:none!important}#readingPanel{transition:none}}
/* v0.11: a readable invitation, then carved words lifting from their source. */
#readingPanel{top:39%;width:min(800px,89%);padding:30px 34px;isolation:isolate}
#readingWords{font-size:46px;line-height:1.16;margin-top:15px;letter-spacing:.3px}
#readingLabel{font-size:18px;letter-spacing:3px;color:#dcb878}
#game[data-phase=brief] #readingPanel{animation:roomReadingIn .6s cubic-bezier(.2,.7,.2,1) both}
#game[data-phase=clue] #readingPanel{animation:carvingEmerges 1.15s cubic-bezier(.16,.65,.22,1) both}
#game[data-phase=clue] .reading-word{animation:translatedWord .65s ease-out both;animation-delay:calc(1s + var(--word-delay))}
#game[data-phase=clue] #readingGlyphs{animation:glyphWake 1.6s ease-out both}
#game[data-phase=dock] #readingPanel{top:39%;transform:translate(calc(-50% + var(--wall-dx,0px)),calc(-50% + var(--wall-dy,-100px))) scale(var(--wall-scale,.55));opacity:0;visibility:visible}
#readingPanel:before,#readingPanel:after{width:5px;border-width:2px;top:13px;bottom:13px}
#readingGlyphs{width:min(340px,100%);height:auto;margin:14px auto 0;filter:drop-shadow(0 0 7px #eda94d55)}
#home>.eyebrow{font-size:17px;letter-spacing:5px;color:#a3cfc7;margin-bottom:17px}
#home h1{text-shadow:-2px 0 #7cddd0,3px 1px #e9809b,5px 6px #17232b,0 10px 22px #13140e99}
#home .tagline{max-width:660px;font-size:20px;line-height:1.25;margin-top:13px;color:#e1dfc8}
#home .home-bottom{padding:17px 14px 10px;background:linear-gradient(transparent,#111b1bd9 70%)}
#home .primary{border-width:1px;background:linear-gradient(#f288a6,#e76b91);box-shadow:inset 0 2px #ffd3d9,inset 0 -4px #b34d74,0 4px #61304b,0 7px #0f1921}
.home-links{gap:8px;margin-top:7px}.home-links .text{padding:9px 10px;border:1px solid #6e7e7866;background:#152329cc;color:#c7dcd4;box-shadow:inset 0 1px #b0ccc014,0 2px #0e161a}
.home-links .text:hover{border-color:#abd9d2;color:#f7eed0;background:#263d41}
@keyframes roomReadingIn{from{opacity:0;transform:translate(-50%,calc(-50% + 10px))}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes carvingEmerges{0%{opacity:0;transform:translate(calc(-50% + var(--wall-dx,0px)),calc(-50% + var(--wall-dy,-100px))) scale(var(--wall-scale,.55));filter:brightness(1.5)}18%{opacity:.7}70%{filter:brightness(1.1)}100%{opacity:1;transform:translate(-50%,-50%);filter:brightness(1)}}
@keyframes translatedWord{from{opacity:0;transform:translateY(5px);filter:blur(1px);color:#edb76b}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes glyphWake{0%{opacity:0;filter:brightness(1)}35%{opacity:1;filter:brightness(1.7) drop-shadow(0 0 10px #ffc96f88)}100%{opacity:.85;filter:brightness(1.1)}}
@media(max-width:650px){#readingPanel{top:38%;width:91%;padding:24px 21px}#readingWords{font-size:36px;line-height:1.14;margin-top:13px}#readingLabel{font-size:15px;letter-spacing:2px}#game[data-phase=dock] #readingPanel{top:38%}#home>.eyebrow{font-size:15px;letter-spacing:3px}#home .tagline{max-width:350px;font-size:19px}.home-links .text{font-size:12px;padding:8px 9px}.home-bottom .under{font-size:11px}}
@media(min-width:651px) and (max-height:590px){#readingPanel{top:42%;width:72%;padding:18px 24px}#readingWords{font-size:32px;line-height:1.12;margin-top:10px}#readingLabel{font-size:13px}#game[data-phase=dock] #readingPanel{top:42%}#readingGlyphs{width:230px;max-height:24px;margin-top:8px}#home>.eyebrow{font-size:11px;margin-bottom:7px}#home .tagline{font-size:17px;margin-top:10px}.home-links{margin-top:5px}.home-links .text{font-size:10px;padding:5px 9px}#home .home-bottom{padding:4px 10px;bottom:24px}}
@media(prefers-reduced-motion:reduce){#game #readingPanel,#game .reading-word,#game #readingGlyphs{animation:none!important;filter:none}#game[data-phase=dock] #readingPanel{transform:translate(-50%,-50%)} }
/* v0.12: a clear entrance silhouette and controls set into the foreground. */
#home{padding-top:clamp(32px,5.5vh,65px)}
#home .home-bottom{background:none;padding:14px 0 9px;isolation:isolate}
#home .home-bottom:before{content:'';position:absolute;z-index:-1;inset:-35px -55vw -100px;background:linear-gradient(transparent,#091216bc 65%,#0b1419d9);pointer-events:none}
#home .primary{min-height:56px;font-size:26px;letter-spacing:3px;padding:12px 22px;border-color:#fbb7ca;box-shadow:inset 0 2px #ffe1e3,inset 0 -4px #ad4467,0 5px #4b263c,0 8px #10171d}
#home .under{margin-top:15px;color:#b6c4ba;font-size:13px;letter-spacing:1px}
#home .home-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}
#home .home-links .text{padding:11px 6px;background:linear-gradient(#1c2c33e6,#142229e6);border-color:#50666c;box-shadow:inset 0 1px #b2cfc827,0 3px #0c161c;font-size:14px}
#home .home-links .text:hover{border-color:#91cbc7;background:#293e43}
#home .tagline{color:#dedfcd;text-shadow:0 2px #15170f;max-width:690px}
@media(max-width:650px){#home{padding-top:36px}#home .primary{min-height:50px;font-size:22px;letter-spacing:2px}#home .under{font-size:11px;margin-top:12px}#home .home-links .text{font-size:12px;padding:10px 4px}#home .tagline{max-width:338px;font-size:19px;line-height:1.3}.home-bottom{width:86%;bottom:55px}}
@media(min-width:651px) and (max-height:590px){#home{padding-top:4px}#home .home-bottom{bottom:19px;padding:3px 0}#home .primary{min-height:33px;font-size:19px;padding:6px 14px}#home .under{font-size:10px;margin-top:8px}#home .home-links{margin-top:5px;gap:8px}#home .home-links .text{font-size:10px;padding:5px}#home .tagline{font-size:17px}}


/* v0.13: readable speech, a separate room-brief reveal, and torch-led departures. */
.bubble{padding:16px 19px}#words{font-size:30px;line-height:1.14}
#game[data-phase=brief] #readingPanel{animation:briefFrame .35s cubic-bezier(.16,.8,.24,1) both}
#game[data-phase=brief] .reading-word{animation:briefInk .3s ease-out both;animation-delay:var(--word-delay)}
#game[data-phase=brief] #readingLabel{animation:briefRule .4s ease-out both;letter-spacing:3px}
#game[data-phase=exit] .name-row,#game[data-phase=exit] .accuse-row,#game[data-phase=exit] .room-bottom,#game[data-phase=exit] .room-heading{opacity:0;pointer-events:none;transition:opacity .45s}
.time-low .time-edges{background:linear-gradient(90deg,#ed384e66,transparent 17%,transparent 83%,#ed384e66);animation:timeWarning .95s ease-in-out infinite}
.timeout #roomClock{color:#fb9298}.timeout .clock-face{border-color:#b8575e}
@keyframes briefFrame{0%{opacity:0;clip-path:inset(0 49%);transform:translate(-50%,calc(-50% + 9px))}60%{opacity:1;clip-path:inset(0 0)}100%{opacity:1;clip-path:inset(-3px);transform:translate(-50%,-50%)}}
@keyframes briefInk{0%{opacity:0;transform:translateX(7px);filter:brightness(1.8)}70%{opacity:1}100%{opacity:1;transform:translateX(0);filter:brightness(1)}}
@keyframes briefRule{from{opacity:0;letter-spacing:8px}to{opacity:1;letter-spacing:3px}}
@media(max-width:650px){.bubble{padding:15px 17px}#words{font-size:28px}}
@media(min-width:651px) and (max-height:590px){.bubble{padding:11px 15px}#words{font-size:26px}}
@media(prefers-reduced-motion:reduce){#game[data-phase=brief] #readingLabel{animation:none}.time-low .time-edges{animation:none;opacity:.55}}

@media(min-width:651px) and (max-height:590px){
 .bubble[data-layout=side]{padding:12px 15px;border-left:3px solid var(--accent)}
 .bubble[data-layout=side] #speakerName{display:block;color:var(--accent);font:20px/22px VT323,monospace;letter-spacing:1px;margin-bottom:7px}
 .bubble[data-layout=side] .speech-tail{display:none}
 #game.talking .room-heading{opacity:0;pointer-events:none}
 #game.talking .room-bottom{opacity:0;pointer-events:none}
}
/* v0.14: the room's premise stays beside the witnesses; references link words to the scene. */
#roomReminder{position:absolute;top:75px;left:50%;transform:translateX(-50%);z-index:4;width:min(630px,86%);padding:7px 12px;background:linear-gradient(90deg,#261f1699,#382b1cba,#261f1699);border:0;border-top:1px solid #c49c5340;border-bottom:1px solid #c49c5330;box-shadow:none;font:24px/1.1 VT323,monospace;color:#e3d4b7;letter-spacing:.1px;text-align:center;text-shadow:0 1px #18130e;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s}
#game[data-phase=witnesses] #roomReminder,#game[data-phase=ready] #roomReminder{opacity:1;visibility:visible;pointer-events:auto}
#game[data-phase=witnesses] .room-heading,#game[data-phase=ready] .room-heading{display:none}
#roomReminder:hover{color:#fff1d0;border-bottom-color:#c5aa6d}
.term{white-space:nowrap}.term-icon{display:inline-block;width:.64em;height:.64em;margin-right:.16em;vertical-align:-.015em;filter:drop-shadow(1px 1px #191a18)}
.typing-term .term-icon{opacity:0;transition:opacity .18s}.typing-term.spoken-term .term-icon{opacity:1}
.term[data-person]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 44%,transparent)}
.actor.referenced .actor-name{background:color-mix(in srgb,var(--accent) 18%,#1a211e);outline:1px solid var(--accent);outline-offset:3px;box-shadow:0 0 14px color-mix(in srgb,var(--accent) 22%,transparent),0 3px #15120d;animation:referenceTag .35s ease-out}
@keyframes referenceTag{from{filter:brightness(1.6);transform:translateY(-2px)}to{filter:brightness(1);transform:translateY(0)}}
@media(max-width:650px){#roomReminder{top:73px;width:88%;font-size:21px;padding:7px 10px}}
@media(min-width:651px) and (max-height:590px){#roomReminder{top:24px;left:32%;transform:none;width:63%;font-size:19px;padding:5px 8px;text-align:center}.term-icon{width:.64em;height:.64em}}
@media(prefers-reduced-motion:reduce){.actor.referenced .actor-name{animation:none}#roomReminder{transition:none}}

@media(max-width:650px){.bubble[data-layout=above]{bottom:10px;padding-top:12px;padding-bottom:12px}}
.term-jackal{color:#e9c483}.term-ibis{color:#bcdfe8}.term-cobra{color:#aad29b}.term-jar,.term-lever{color:#d6b987}

#game.revealing #roomReminder,#game.celebrating #roomReminder,#game.resolved #roomReminder{opacity:0;visibility:hidden;pointer-events:none}
/* On wide desktops, the premise occupies the quiet margin beside the first coffin. */
@media(min-width:1000px) and (min-height:591px){#roomReminder{left:18px;top:78px;transform:none;width:clamp(132px,14vw,190px);padding:12px 9px;font-size:22px;line-height:1.12;text-align:left;border-left:2px solid #a1814a66;border-top:0;border-bottom:0;background:linear-gradient(90deg,#211e18db,#211e1844)}}

@media(min-width:1000px) and (min-height:591px){.sprite-wrap{height:240px}.sprite{width:192px;height:240px}.bubble{padding-top:10px;padding-bottom:10px}}

/* References breathe gently with the world instead of drawing selection boxes. */
.actor.referenced .actor-name{outline:0;outline-offset:0;background:linear-gradient(#302a23f2,#171b1ef5);box-shadow:inset 0 -2px var(--accent),0 3px #131310,0 0 12px color-mix(in srgb,var(--accent) 16%,transparent);animation:referenceBreath 1.8s ease-in-out both}
@keyframes referenceBreath{0%,100%{filter:brightness(1)}35%{filter:brightness(1.24)}}
@media(prefers-reduced-motion:reduce){.actor.referenced .actor-name{animation:none}}


/* Translations are part of the stone, beneath the actual torch flames and sparks. */
#game.has-wall-translation[data-phase=clue] #readingPanel,#game.has-wall-translation[data-phase=dock] #readingPanel,#game.has-wall-translation .room-heading{display:none!important}
.term[data-person]{text-decoration:none}.term-icon{display:none}
.resolved #result{margin:0 auto;text-align:center;width:100%;text-wrap:balance}
@media(max-width:650px){.resolved .room-bottom{width:76%;left:50%;transform:translateX(-50%)}.resolved #result{font-size:20px;line-height:1.08}}

/* A carved accusation seal, with two distinct touch targets for the final choice. */
.accuse-row{position:relative}.liar{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:98px;height:42px;padding:5px 13px;border:1px solid #daa79a;border-radius:3px;background:linear-gradient(#483639,#282329 55%,#252229);box-shadow:inset 0 2px #f3c4a94d,inset 0 -3px #181c22,0 3px #101418,0 5px #ba795938;color:#ffe1cd;font:23px VT323,monospace;letter-spacing:2px}
.liar b{font-weight:400}.liar .accuse-seal{display:grid;place-items:center;width:20px;height:23px;margin:0;color:#ffd7bb;border:1px solid #cb9478;background:#a34b50;clip-path:polygon(25% 0,75% 0,100% 22%,100% 78%,75% 100%,25% 100%,0 78%,0 22%);font-size:22px;line-height:1;box-shadow:inset 0 2px #f5b28f55}.liar:hover:not(:disabled){transform:translateY(-1px);border-color:#ffe3bd;background:linear-gradient(#68474a,#332730)}.liar:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #100f16,0 2px #101418}.liar:disabled{opacity:.38}
.confirm{position:absolute;z-index:12;top:-10px;left:50%;transform:translateX(-50%);width:134px;padding:7px;display:grid;grid-template-columns:1fr 1fr;gap:5px;border:1px solid #e0bb8b;background:linear-gradient(#302b27,#171f22);box-shadow:inset 0 1px #f2d1a62e,0 4px #101617,0 8px 20px #100b08a6;animation:sealOpen .18s ease-out}.confirm small{grid-column:1/-1;font:15px VT323,monospace;letter-spacing:.5px;color:#f5dfbb;white-space:nowrap}.confirm button{width:auto;height:45px;display:grid;place-content:center;gap:1px;border:1px solid #91b6a1;border-radius:2px;background:linear-gradient(#446556,#263d35);box-shadow:inset 0 1px #d2eed244,0 2px #0f1e19}.confirm button b{font:24px VT323,monospace;line-height:22px}.confirm button span{font:12px VT323,monospace;letter-spacing:.6px}.confirm button:last-child{background:linear-gradient(#563c40,#35282e);border-color:#c08b8b;box-shadow:inset 0 1px #e3b3a633,0 2px #24171c}.accusing .liar{opacity:.35;pointer-events:none}
@keyframes sealOpen{from{opacity:0;transform:translate(-50%,5px) scale(.94)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media(max-width:650px){.liar{min-width:82px;height:39px;padding:4px 8px;gap:6px;font-size:21px}.liar .accuse-seal{width:17px;height:21px}.confirm{width:118px;padding:5px}.confirm small{font-size:13px}.confirm button{height:44px}.confirm button span{font-size:11px}}
@media(min-width:651px) and (max-height:590px){.liar{min-width:76px;height:32px;padding:3px 9px;font-size:19px}.liar .accuse-seal{width:15px;height:19px;font-size:18px}.confirm{top:-18px;width:123px;padding:4px}.confirm small{font-size:12px}.confirm button{height:37px}.confirm button span{font-size:10px}}

#score.reward-collect{animation:rewardCollect .3s ease-in-out 4;color:#fff0ac;text-shadow:0 0 12px #eabb6288}
#pointAward b{display:inline-block;color:#fff0ad;font-size:39px;text-shadow:0 3px #6b4319,0 0 18px #e5b94c55;animation:awardStamp .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes rewardCollect{0%,100%{transform:scale(1)}45%{transform:scale(1.13)}}
@keyframes awardStamp{from{opacity:0;transform:translateY(9px) scale(.65)}65%{opacity:1;transform:translateY(-2px) scale(1.08)}to{transform:translateY(0) scale(1)}}
@media(min-width:651px) and (max-height:590px){#pointAward b{font-size:29px}}

/* v0.17: readable wall ink, compact testimony, and dust instead of popping cards. */
#inscriptionCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;image-rendering:auto}
#game[data-phase=dissolve] #readingPanel{display:block!important;top:39%;transform:translate(-50%,-50%);visibility:visible;animation:briefToSand .85s ease-in both}
#game[data-phase=dissolve] .reading-word{position:relative;animation:wordToSand .8s ease-in both;animation-delay:calc(var(--word-delay)*.12)}
#game[data-phase=dissolve] .reading-word:after{content:'·';position:absolute;inset:0;color:#e0c58f;text-shadow:7px -3px #e0c58f,19px 6px #a79066,35px -5px #f1d89e,49px 1px #c0a36b;animation:wordGrains .85s ease-out both}
#game[data-phase=dock] #readingPanel{display:none}
@keyframes briefToSand{0%{opacity:1;border-color:#b8996477;background-color:#302619}65%{box-shadow:none;border-color:transparent}100%{opacity:0;filter:blur(1px)}}
@keyframes wordToSand{0%,10%{opacity:1;transform:translate(0,0);filter:blur(0)}70%{opacity:.4;filter:blur(1px)}100%{opacity:0;transform:translate(38px,-9px);filter:blur(2px)}}
@keyframes wordGrains{0%{opacity:0;transform:translateX(0)}30%{opacity:.7}100%{opacity:0;transform:translate(55px,-13px)}}
.bubble{border-width:1px;box-shadow:inset 0 0 0 2px #294150,0 4px #06111caa;padding:13px 17px}.bubble:before{display:none}.bubble .speech-tail{width:13px;height:13px;bottom:-8px;border-width:1px}#words{line-height:1.1}
.liar{border-radius:1px;gap:9px;background:linear-gradient(#493b35 0 9%,#2c2929 10% 88%,#171e23 89%);border:1px solid #b88d70;box-shadow:inset 2px 0 #d4af7830,inset -2px 0 #10171c,0 3px #151313,0 4px #a66e4344;letter-spacing:2px;color:#f4d6b7;transition:transform .12s,border-color .15s,filter .15s}
.liar .accuse-seal{clip-path:none;background:none;border:0;box-shadow:none;width:17px;height:21px}.accuse-seal i{display:block;width:11px;height:14px;transform:rotate(45deg);background:linear-gradient(135deg,#ffc5a1 0 12%,#d78382 13% 45%,#a84958 46% 72%,#633345 73%);border:1px solid #df9d84;box-shadow:2px 2px #171c22}.liar:hover:not(:disabled){background:linear-gradient(#645044,#362b2c);filter:brightness(1.15);border-color:#f3cda4}.liar:focus-visible{outline:2px solid #f2d4a3;outline-offset:4px}.liar:active:not(:disabled){filter:brightness(.95);transform:translateY(2px)}
.confirm{border-color:#bd9b73;border-radius:2px;box-shadow:inset 0 0 0 2px #85654225,0 5px #11171b,0 10px 24px #100c08b0}.confirm button{min-height:42px}.confirm small{padding:2px 0 4px}
@media(max-width:650px){#game[data-phase=dissolve] #readingPanel{top:38%}.bubble{padding:12px 15px}}
@media(min-width:651px) and (max-height:590px){#game[data-phase=dissolve] #readingPanel{top:42%}.confirm button{min-height:34px}.liar .accuse-seal{width:13px}.accuse-seal i{width:9px;height:11px}}
@media(prefers-reduced-motion:reduce){#game[data-phase=dissolve] #readingPanel,#game[data-phase=dissolve] .reading-word{animation:none;opacity:0}.reading-word:after{display:none}}
/* Companion collection and four-player expeditions share the tomb's brass UI. */
.social-menu{display:flex;gap:10px;justify-content:center;margin:12px 0 3px}.social-menu button{border:1px solid #82704c;background:#182125db;padding:8px 16px;color:#e9d4a3;letter-spacing:2px}.social-menu small{color:#96c9c8;font-size:12px;letter-spacing:1px}
.animal-grid,.lobby-players{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.animal-card{display:flex;align-items:center;flex-direction:column;border:1px solid #6d624b;background:#172329;color:#f2ddb3;padding:10px;cursor:pointer;font:inherit}.animal-card canvas{width:120px;height:93px;image-rendering:pixelated}.animal-card b{font-size:25px}.animal-card span{font-size:17px;color:#c1bba7}.animal-card small{margin-top:8px;font-size:12px;letter-spacing:1px}.animal-card:disabled{filter:grayscale(.8);opacity:.5;cursor:default}.animal-card.chosen{border-color:#efd18b;box-shadow:inset 0 0 0 2px #efd18b33}.field-label{display:block;font-size:14px;letter-spacing:2px;margin:16px 0 8px;color:#b7ab8b}.field-label input{display:block;width:100%;box-sizing:border-box;padding:10px 12px;margin-top:6px;background:#111c23;border:1px solid #746343;font:24px VT323,monospace;color:#fff0c9}.coop-buttons{display:flex;gap:10px}.coop-buttons button{flex:1;font-size:20px;padding:12px 4px}.room-code{text-align:center;background:#111d24;border:1px solid #716345;padding:14px;margin-bottom:12px}.room-code small{display:block;font-size:13px;letter-spacing:3px}.room-code b{display:block;font-size:38px;letter-spacing:8px;color:#f9d48a}.lobby-players>div{min-height:112px;display:flex;align-items:center;flex-direction:column;background:#132128;padding:5px}.lobby-players b{font-size:21px}.lobby-players span{font-size:12px;color:#a4bdae;letter-spacing:1px}.lobby-players canvas{height:67px;width:77px;image-rendering:pixelated}.empty-slot{justify-content:center;text-align:center;opacity:.45;font-size:19px}.lobby-players{margin-bottom:14px}#joinRoom{display:flex;align-items:end;gap:12px}#joinRoom label{flex:1}#joinRoom button{margin-bottom:20px}.online-people{padding:12px;background:#172127}.online-people small{font-size:12px;letter-spacing:2px;color:#91b9b5}.online-people p{font-size:18px;margin:5px 0}#coopStatus{min-height:20px;font-size:18px;color:#f1c08e}#coopLeave{margin-top:12px}#coopStart:disabled{opacity:.5}.coop-finale #buddyCanvas,.coop-finale #treasureTheater{visibility:hidden}#coopFinale{position:absolute;inset:0;pointer-events:none}#coopFinale canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.podium-results{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);width:min(90%,480px);padding:10px 16px;background:#101b23e8;border:1px solid #b3945f;pointer-events:auto}.podium-results p{margin:5px 0;display:flex;justify-content:space-between;gap:10px;font-size:19px}.podium-results p span{font-size:16px;color:#cabf9e}.podium-results .primary{font-size:20px;margin-top:10px;padding:10px}.coop-finale .treasure-heading{z-index:2}.term-gold{color:#f2cd76}.term-scarab{color:#8cd8c0}
@media (min-width:650px) and (max-height:590px){.social-menu{position:absolute;right:0;bottom:0;transform:translateY(42px);margin:0}.social-menu button{padding:5px 10px}.podium-results{left:auto;right:12px;top:20%;bottom:auto;transform:none;width:240px}.podium-results p{display:block;font-size:18px}.podium-results p span{display:block;font-size:14px}}

dialog a{color:#9cd7d8;text-underline-offset:3px}#coopFinale .podium-results[hidden]{display:none}#next:disabled{opacity:.65;cursor:wait}

/* v0.18: a quiet left foreground for Wick, with the menu tucked to his right. */








.animal-shortcut svg{width:25px;height:25px;image-rendering:pixelated}.animal-shortcut:hover{color:#fff0c8;filter:brightness(1.2)}
#devShortcut{font-size:13px;letter-spacing:1px;color:#a7d2c9;border:1px solid #567b75;padding:4px 6px;background:#14272a}
.dev-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:17px 0}.dev-fields label{font-size:12px;letter-spacing:1.2px;color:#b7ac8d}.dev-fields select{display:block;width:100%;margin-top:6px;min-height:42px;padding:6px 9px;color:#efdfbe;background:#17262b;border:1px solid #7b7153;border-radius:0;font:20px VT323,monospace;letter-spacing:0}.dev-check{display:flex;align-items:center;gap:10px;font:20px VT323,monospace;color:#e5d9bb}.dev-check input{width:18px;height:18px;accent-color:#94bbae}.dev-toggles{display:grid;gap:10px;margin:15px 0}.dev-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.dev-actions button{padding:10px;border:1px solid #736348;font-size:14px}.dev-animal-link{padding:8px 0;color:#a8d7ce!important}#devLaunch{font-size:21px!important}.dev-actions button:disabled{opacity:.4}
/* Pull the architecture and witnesses back, without shrinking readable dialogue. */
.sprite-wrap{height:218px}.sprite,.mummy-hit{width:166px;height:208px}
@media(min-width:1000px) and (min-height:591px){.sprite-wrap{height:218px}.sprite,.mummy-hit{width:166px;height:208px}#cast{left:15%;right:15%}}
@media(max-width:650px){.sprite-wrap{height:158px}.sprite,.mummy-hit{width:104px;height:130px}#cast{left:6%;right:6%;gap:8px}.dev-fields{grid-template-columns:1fr}.dev-fields select{font-size:20px}}
@media(min-width:651px) and (max-height:590px){.sprite-wrap{height:96px}.sprite,.mummy-hit{width:64px;height:80px}.dev-fields{grid-template-columns:1fr 1fr}}
/* The accusation is a touchable inscription on the front of the hewn plinth. */
.accuse-row{z-index:5;margin-top:0;min-height:38px}
.liar{width:var(--plate-width,90px);min-width:0;height:38px;padding:0;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0;gap:0;color:#c1a77d;font-size:21px;letter-spacing:3px;text-shadow:0 -1px #34271d,0 1px #ecd4a25c;transition:color 1.1s,text-shadow 1.1s,opacity 1.1s;}
.liar .accuse-seal{display:none}.liar:disabled{opacity:.32}.liar:not(:disabled){color:#f4dbaa;text-shadow:0 -1px #37271b,0 0 9px #f2c37770}.liar:hover:not(:disabled){transform:none;filter:none;color:#fff2c9;text-shadow:0 -1px #37271b,0 0 13px #ffda8588}.liar:active:not(:disabled){transform:translateY(1px);filter:none}.liar:focus-visible{outline:1px solid #f0d39c;outline-offset:-4px}
.confirm{top:-1px;width:var(--plate-width,110px);min-width:106px;border-color:#b59a6d;background:linear-gradient(#91764f,#5e4932);box-shadow:inset 0 1px #d7bd8b,0 2px #392b21;padding:4px;gap:4px}.confirm small{font-size:12px;color:#ffebc5;padding:1px 0;text-shadow:0 1px #33271e}.confirm button{background:linear-gradient(#5a7256,#374738);min-height:34px;height:34px}.confirm button:last-child{background:linear-gradient(#7b5143,#523b31)}.confirm button span{display:none}
#animalPortrait{width:100%;height:100%;image-rendering:pixelated}.animal-card canvas{width:120px;height:93px}.match-countdown{text-align:center;padding:12px 0 18px}.match-countdown b{display:block;font:60px VT323,monospace;color:#f5d697;text-shadow:0 3px #5e4125}.match-countdown span{font-size:12px;letter-spacing:2px;color:#b7d0c5}
@media(max-width:650px){.liar{font-size:19px;height:36px}.confirm{min-width:99px}.confirm small{font-size:11px}}
@media(min-width:651px) and (max-height:590px){.liar{font-size:16px;height:30px;letter-spacing:2px}.confirm{min-width:95px}.confirm button{height:30px;min-height:30px}.confirm small{font-size:11px}}

/* v0.19: original centered entrance menu; only co-op sits above and right. */
#home .social-menu{position:absolute;right:0;bottom:calc(100% + 5px);transform:none;justify-content:flex-end;margin:0;width:auto}
#home .social-menu button{padding:8px 14px;font-size:15px;letter-spacing:1.5px;background:#17272de8}
#home .animal-shortcut{position:absolute;left:26px;top:12px;bottom:auto;width:42px;height:42px;padding:2px;display:grid;place-items:center;z-index:6;background:linear-gradient(#26363d,#13212a);border:1px solid #8b7954;box-shadow:inset 0 1px #b6c5bc44,0 3px #090e14}
#game.revealing .liar:disabled,#game.resolved .liar:disabled{opacity:1;color:#c1aa83;text-shadow:0 -1px #382b20,0 1px #c8a77444;transition:color .55s,text-shadow .55s}
#game .actor.accused .liar:disabled{color:#c9ad75;text-shadow:0 -1px #211a14;transform:translateY(2px) scale(.97);transition:transform .26s cubic-bezier(.2,.6,.3,1),color .4s}
.actor .verdict{position:absolute;top:calc(100% + 5px);left:0;width:100%;font-size:8px;pointer-events:none}
@media(max-width:650px){#home .animal-shortcut{left:15px;top:10px;width:37px;height:37px}#home .social-menu{bottom:calc(100% + 9px);right:0}#home .social-menu button{font-size:13px;padding:8px 10px}}
@media(min-width:651px) and (max-height:590px){#home .animal-shortcut{left:15px;top:7px;width:32px;height:32px}#home .social-menu{bottom:calc(100% + 6px)}#home .social-menu button{font-size:12px;padding:6px 10px}}

@media(min-width:651px) and (min-height:591px){#home .home-bottom{bottom:60px}}
@media(max-width:650px){#home .social-menu{right:-8px}#home .social-menu button{font-size:12px;letter-spacing:1px;padding:8px 10px}#home .social-menu small{font-size:10px;letter-spacing:.6px}}

/* v0.20: carved pressure stones and an unobstructed foreground for companions. */
.liar{letter-spacing:2px;text-shadow:0 -1px #352719,0 1px #eed5a260}
.liar:not(:disabled){color:#ffe0a5;text-shadow:0 -1px #36271b,0 1px #d5ac6966,0 0 7px #f4c77544}
.liar:hover:not(:disabled){color:#fff2c9;text-shadow:0 -1px #36271b,0 0 10px #f4ca8777}
#game.resolved #instruction{display:none}
#game.resolved #result{position:absolute;bottom:calc(100% + 24px);left:0;margin:0;width:100%;pointer-events:none}
#game.resolved #actions{margin:0}
@media(max-width:650px){#game.resolved #result{bottom:calc(100% + 28px);font-size:21px}}
@media(min-width:651px) and (max-height:590px){#game.resolved .room-bottom{bottom:86px}#game.resolved #result{position:static;transform:translateY(-6px);font-size:18px}}

#game.time-low .room-bottom{bottom:100px;width:min(430px,76%)}
#game.time-low #caseButton,#game.time-low #journal,#game.time-low #skip{display:none}
#game.time-low #instruction{display:block;margin:0;color:#ffdbb2;font-size:23px;line-height:1.08;text-wrap:balance;text-shadow:0 2px #21160f}
@media(max-width:650px){#game.time-low #instruction{font-size:21px}}
@media(min-width:651px) and (max-height:590px){#game.time-low .room-bottom{left:14%;width:24%;bottom:86px;opacity:1;pointer-events:auto}#game.time-low #instruction{font-size:18px}}

/* A quiet live indicator, kept separate from the online count. */
.coop-live-dot{display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:#ef6674;box-shadow:0 0 5px #ee586655;animation:coopLive 1.8s ease-in-out infinite;vertical-align:middle}
@keyframes coopLive{0%,100%{opacity:1}50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.coop-live-dot{animation:none}}

/* v0.23: wider view, smaller cast, full-size reading text and deliberate next-room control. */
.sprite-wrap{height:194px}.sprite,.mummy-hit{width:144px;height:180px}
@media(min-width:1000px) and (min-height:591px){.sprite-wrap{height:194px}.sprite,.mummy-hit{width:144px;height:180px}#cast{left:18%;right:18%}}
@media(max-width:650px){.sprite-wrap{height:142px}.sprite,.mummy-hit{width:90px;height:113px}#cast{left:9%;right:9%;gap:10px}.actor-name{font-size:24px;padding:3px 8px}.replay{left:calc(50% + 35px);width:25px;height:24px}.liar{font-size:18px}}
@media(min-width:651px) and (max-height:590px){.sprite-wrap{height:84px}.sprite,.mummy-hit{width:56px;height:70px}}
#game.resolved .room-bottom{bottom:78px}
#next{min-height:42px;padding:10px 24px;font:21px VT323,monospace;letter-spacing:2px}
@media(min-width:651px) and (max-height:590px){#game.resolved .room-bottom{bottom:73px}#next{font-size:18px;min-height:34px;padding:6px 12px}}

/* Stable departure positions: hide in place before the next chamber is measured. */
#game[data-phase=exit] #arrival,#game[data-phase=exit] #roomReminder,#game[data-phase=exit] .hud{opacity:0;pointer-events:none;transition:opacity .4s ease}
#game[data-phase=travel] #arrival,#game[data-phase=travel] #roomReminder,#game[data-phase=travel] .hud,#game[data-phase=travel] .name-row,#game[data-phase=travel] .accuse-row,#game[data-phase=travel] .room-bottom{opacity:0;visibility:hidden;pointer-events:none;transition:none}
#arrival,.hud{transition:opacity .4s ease}
#game[data-phase=dissolve] #readingPanel{top:39%;transition:none}
@media(max-width:650px){#game[data-phase=dissolve] #readingPanel{top:38%}}
@media(min-width:651px) and (max-height:590px){#game[data-phase=dissolve] #readingPanel{top:42%}}

/* Reserve the same camera viewport before Play; the ad dock only becomes visible afterward. */
:root,body,body.expedition-started{--ad-height:66px}
body,body.expedition-started{padding-bottom:66px}
#game:not([data-view=end]){height:calc(100svh - var(--ad-height));min-height:0}
#home,#play,#treasure{height:calc(100svh - var(--ad-height) - 54px);min-height:0}
@media(min-width:651px) and (max-height:590px){:root,body,body.expedition-started{--ad-height:54px}body,body.expedition-started{padding-bottom:54px}#home,#play,#treasure{height:calc(100svh - var(--ad-height) - 35px)}}
/* Leave the entry landing visible beneath the raised co-op shortcut. */
@media(max-width:650px){#home .home-bottom{bottom:45px}#home .social-menu{bottom:calc(100% + 62px)}}

/* v0.24: testimony fades in place; a fixed lower lane leaves the companion visible. */
#game .bubble{animation:none;transform:none;opacity:0;transition:opacity .24s ease;pointer-events:none}
#game .bubble.speech-visible{opacity:1;pointer-events:auto}
#game .actor-name{position:relative;transition:border-color .24s,box-shadow .24s}
#game .actor-name:before{content:'▸';position:absolute;right:calc(100% + 5px);top:50%;transform:translateY(-50%);display:block;margin:0;opacity:0;animation:none;transition:opacity .24s;color:var(--accent)}
#game .speaking .actor-name:before{opacity:1}
#game .name-row{transition:opacity .24s}
#game .char{transition:opacity .09s ease-out}
#game .room-bottom{left:35%;width:61%;bottom:28px;transform:none;display:block;min-height:84px;transition:opacity .24s}
#game[data-phase=witnesses] .room-bottom,#game[data-phase=ready] .room-bottom{opacity:1;pointer-events:auto}
#game .room-bottom #instruction{display:block;margin:8px 0;font-size:21px;line-height:1.1}
#game .room-bottom #instruction:empty{display:none}
#game .room-bottom #journal,#game .room-bottom #skip{margin-top:8px}
#game.has-verdict .room-bottom{left:35%;width:61%;bottom:38px;height:44px;min-height:44px}
#game.has-verdict #actions{position:absolute;inset:0;margin:0;display:flex;justify-content:center;align-items:center}
#game #roomContent #result{position:absolute;left:50%;bottom:108px;top:auto;transform:translateX(-50%);width:min(650px,84%);margin:0;text-align:center;font-size:23px;line-height:1.14;text-wrap:balance;z-index:5;pointer-events:none;animation:verdictAppear .35s ease-out}
#game[data-phase=exit] #result{opacity:0;transition:opacity .45s}
#game[data-phase=travel] #result{opacity:0;visibility:hidden;transition:none}
#game.time-low .room-bottom{left:35%;width:61%;bottom:28px}
#game.time-low .room-bottom #instruction{font-size:21px}
#game #next{min-height:42px;padding:9px 22px;background:linear-gradient(#433c2c,#2c2a22);border:1px solid #9d8a5d;color:#efdab0;box-shadow:inset 0 1px #d3b87d30,inset 0 -2px #141812,0 3px #121813;letter-spacing:1.4px;font:22px VT323,monospace;text-shadow:0 1px #171914;filter:none;transform:none;transition:border-color .2s,background .2s}
#game #next:hover{border-color:#d6ba80;background:linear-gradient(#514734,#343025);filter:none;transform:none}
#game #next:active{box-shadow:inset 0 2px 4px #111a17;transform:none}
#game #next:disabled{opacity:1;cursor:default;filter:none}
@keyframes verdictAppear{from{opacity:0}to{opacity:1}}
@media(min-width:1000px) and (min-height:591px){
 #game .room-bottom{left:35%;width:40%;bottom:25px}
 #game.has-verdict .room-bottom{left:40%;width:35%;bottom:55px}
 #game #roomContent #result{bottom:116px;font-size:26px}
}
@media(max-width:650px){#game #roomContent #result{font-size:21px}#game .room-bottom .clue-button{font-size:13px}#game #next{font-size:20px;padding:9px 17px}}
@media(min-width:651px) and (max-height:590px){
 #game .room-bottom,#game.time-low .room-bottom{left:34%;width:63%;bottom:4px;min-height:35px;display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:row;flex-wrap:nowrap}
 #game .room-bottom #caseButton{display:inline-block}
 #game .room-bottom #instruction{display:none}
 #game .room-bottom #journal,#game .room-bottom #skip{margin:0}
 #game.time-low .room-bottom #instruction{display:block;font-size:17px}
 #game.time-low #caseButton,#game.time-low #journal{display:none}
 #game.has-verdict .room-bottom{left:72%;width:25%;bottom:6px;height:35px;min-height:35px}
 #game #roomContent #result{left:48%;width:45%;bottom:8px;font-size:19px;min-height:32px;display:flex;align-items:center;justify-content:center}
 #game #next{min-height:32px;font-size:18px;padding:6px 12px}
}
@media(prefers-reduced-motion:reduce){#game .bubble,#game .actor-name,#game .actor-name:before,#game .name-row,#game .char,#game .room-bottom{transition:none}#game #roomContent #result{animation:none}}

/* v0.25: portrait navigation and the familiar rose arcade buttons. */
#game #menu{width:112px;height:44px;padding:3px 8px 3px 3px;display:flex;align-items:center;gap:7px;flex-shrink:0;border-color:#637e8d;background:#122333;box-shadow:inset 0 0 0 2px #2c4352,0 3px #07121c}
#menu #animalPortrait{width:36px;height:36px;image-rendering:pixelated;border:1px solid #b59b68;flex-shrink:0}
#menu>span:not(.menu-word){font:27px VT323,monospace;line-height:1;color:#e8d6ad}
#menu .menu-word{font:16px VT323,monospace;letter-spacing:1px;color:#c6d7da}
#home .social-menu{bottom:calc(100% + 38px);right:0}
#game #enter,#game #next{background:linear-gradient(#f28aa6,#e77497);border:1px solid #ffc4d1;color:#1a2533;box-shadow:inset 0 2px #ffb3c7,inset 0 -3px #ba4e72,0 4px #74374e,0 6px #11161c;text-shadow:none;filter:none}
#game #enter:hover,#game #next:hover{background:linear-gradient(#f99bb3,#ee81a1);border-color:#ffe0e8;filter:none;transform:none}
#game #next{min-width:166px;min-height:48px;padding:11px 24px;font:23px VT323,monospace;letter-spacing:1.5px}
#game #next:active{box-shadow:inset 0 2px #b84e70,0 2px #74374e;transform:translateY(1px)}
#game.has-verdict .room-bottom{height:50px;min-height:50px}
.tomb-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 6px}
.menu-tile{min-width:0;min-height:142px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 10px;text-decoration:none;color:#e7ddbf;background:linear-gradient(#243946,#142530);border:1px solid #58717c;box-shadow:inset 0 2px #829a9e33,0 4px #091721;cursor:pointer}
.menu-tile:hover,.menu-tile:focus-visible{background:#2a414c;border-color:#dfbd80;outline:2px solid #dfbd8055;outline-offset:2px}
.menu-tile canvas{width:80px;height:66px;image-rendering:pixelated}
.menu-tile img{width:64px;height:64px;image-rendering:pixelated}
.menu-tile b{font:21px VT323,monospace;letter-spacing:1px;text-align:center}
.menu-tile small{font:12px VT323,monospace;letter-spacing:.8px;color:#a9bdbb;text-align:center}
.menu-tile.compact{min-height:76px;flex-direction:row;gap:12px}
.menu-tile.compact>span{font:30px VT323,monospace;color:#d8bb80}
/* Animate one composited reading surface, without per-word blur or staggered jumps. */
#game .reading-word{animation:none;filter:none;opacity:1;transform:none}
#game .reading-word:after{display:none}
#game[data-phase=brief] #readingPanel{animation:readingArrive .4s ease-out both;will-change:opacity,transform}
#game[data-phase=dissolve] #readingPanel{animation:readingDepart .65s ease-in both;will-change:opacity,transform}
#game[data-phase=brief] #readingLabel{animation:none}
@keyframes readingArrive{from{opacity:0;transform:translate(-50%,calc(-50% + 5px))}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes readingDepart{0%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(calc(-50% + 11px),calc(-50% - 3px))}}
@media(max-width:650px){#game #menu{width:104px;height:40px}#menu #animalPortrait{width:32px;height:32px}#menu .menu-word{font-size:15px}#game #next{min-height:46px;font-size:22px;padding:10px 20px}.menu-tile b{font-size:18px}.menu-tile.compact{gap:7px}.tomb-menu-grid{gap:9px}}
@media(min-width:651px) and (max-height:590px){#game #menu{width:91px;height:30px;padding:2px 5px;gap:4px}#menu #animalPortrait{width:24px;height:24px}#menu .menu-word{font-size:13px}#menu>span:not(.menu-word){font-size:22px}#home .social-menu{bottom:calc(100% + 8px)}#game #next{min-width:140px;min-height:38px;font-size:20px;padding:7px 14px}#game.has-verdict .room-bottom{height:39px;min-height:39px}.menu-tile{min-height:116px;padding:8px}.menu-tile canvas{width:56px;height:47px}.menu-tile img{width:44px;height:44px}.menu-tile.compact{min-height:53px}.tomb-menu-grid{margin-top:14px}}
@media(prefers-reduced-motion:reduce){#game[data-phase=brief] #readingPanel,#game[data-phase=dissolve] #readingPanel{animation:none}#game[data-phase=dissolve] #readingPanel{opacity:0}}
#game[data-phase=brief] .reading-word,#game[data-phase=clue] .reading-word,#game[data-phase=dissolve] .reading-word{animation:none;filter:none;transform:none;opacity:1}
@media(min-width:651px) and (max-height:590px){#home .home-bottom{left:67%;width:44%;max-width:410px}}

/* v0.26: the decision prompt is centred, with controls and companion in separate lanes. */
#game #roomContent #instruction{position:absolute;left:50%;bottom:89px;top:auto;transform:translateX(-50%);width:min(650px,82%);margin:0;display:block;text-align:center;font:24px/1.15 VT323,monospace;color:#e4dcc6;text-wrap:balance;pointer-events:none;z-index:5;transition:opacity .35s ease;text-shadow:0 2px #21170e}
#game #roomContent #instruction:empty{display:none}
#game:not(.has-verdict) .room-bottom{bottom:28px;min-height:36px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
#game:not(.has-verdict) .room-bottom #journal,#game:not(.has-verdict) .room-bottom #skip{margin:0}
#game[data-phase=exit] #instruction{opacity:0}
#game[data-phase=travel] #instruction{opacity:0;visibility:hidden;transition:none}
#game.time-low #roomContent #instruction{color:#ffdbb2;bottom:92px}
#home .social-menu{bottom:calc(100% + 12px);right:0}
#home .social-menu button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;width:128px;padding:7px 6px;font-size:12px;letter-spacing:.5px;white-space:nowrap}
#home .social-menu .coop-live-dot{width:5px;height:5px;margin-right:1px;flex-shrink:0}
#home .social-menu small{font-size:9px;letter-spacing:.2px;margin:0}
@media(max-width:650px){#game #roomContent #instruction{bottom:89px;font-size:23px}#game:not(.has-verdict) .room-bottom{left:35%;width:61%;gap:9px}#game .room-bottom #journal,#game .room-bottom #skip{font-size:12px;letter-spacing:.7px}#game.time-low #roomContent #instruction{font-size:22px}}
@media(min-width:1000px) and (min-height:591px){#game #roomContent #instruction{bottom:92px;font-size:26px}}
@media(min-width:651px) and (max-height:590px){#game #roomContent #instruction{left:50%;width:42%;bottom:7px;font-size:20px;min-height:30px;display:flex;align-items:center;justify-content:center}#game:not(.has-verdict) .room-bottom{left:73%;width:25%;bottom:6px;min-height:31px;gap:4px;flex-wrap:wrap}#game .room-bottom #journal,#game .room-bottom #skip{font-size:10px;padding:1px 3px}#game .room-bottom #caseButton{font-size:10px;padding:3px 6px}#game.time-low #roomContent #instruction{bottom:7px;font-size:17px}#home .social-menu{bottom:calc(100% + 5px)}#home .social-menu button{min-height:27px;padding:5px 7px}}

/* v0.27: a focused solo entrance; preview tools are no longer exposed. */
#home .home-links{grid-template-columns:1fr}
#home .home-links #practice{width:100%}

/* Complete description fades in at its final position, then drifts away as sand. */
#game #play #readingPanel{display:block!important;top:var(--reading-top,39%);left:50%;opacity:0;visibility:hidden;transform:translate(-50%,-50%);animation:none!important;filter:none;clip-path:none;transition:none;will-change:opacity;backface-visibility:hidden}
#game #play #readingPanel[data-reading=visible]{visibility:visible;opacity:1;transform:translate(-50%,-50%);transition:opacity .75s ease-in-out}
#game #play #readingPanel[data-reading=leaving]{visibility:visible;opacity:0;transform:translate(-50%,-50%);transition:opacity .8s ease-in}
#game #play #readingPanel .reading-word,#game #play #readingLabel{animation:none!important;transform:none;filter:none;opacity:1;transition:none}
#game #play #readingPanel[data-reading=leaving] .reading-word{animation:descriptionDust .72s ease-in both!important;animation-delay:calc(var(--word-delay)*.12)!important}
#game #play #readingPanel[data-reading=leaving] .reading-word:after{display:block;content:'';inset:auto;left:4px;top:45%;width:2px;height:2px;background:#e0c58f;box-shadow:7px -4px #c5aa78,17px 5px #e0c58f,29px -7px #a79066,41px 2px #f1d89e;animation:descriptionGrains .75s ease-out both}
@keyframes descriptionDust{0%,12%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(30px,-7px)}}
@keyframes descriptionGrains{0%{opacity:0;transform:translate(0,0)}30%{opacity:.85}100%{opacity:0;transform:translate(45px,-12px)}}
.menu-tile.menu-endings{grid-column:1/-1;flex-wrap:wrap;min-height:76px}
.audio-settings{display:grid;gap:16px;margin-top:22px}
.audio-settings label{display:flex;justify-content:space-between;align-items:center;font:22px VT323,monospace;letter-spacing:1px;color:#ead4a2}
.audio-settings output{color:#82cadb}
.audio-settings input[type=range]{width:100%;height:26px;margin:0;accent-color:#e8b969;cursor:pointer}
.audio-settings input:focus-visible{outline:2px solid #82cadb;outline-offset:5px}
.audio-settings #audioMaster{font-size:23px;min-height:48px;padding:10px}
.audio-settings #audioMaster[aria-pressed=false]{background:#25363b;color:#d1c8b6;box-shadow:0 4px #101b22}
.audio-settings .note{margin:0;font-size:17px;min-height:22px}
.audio-settings #audioTest{justify-self:center;min-height:44px;padding:10px 18px;border:1px solid #65818b;color:#a8d8df}
.audio-settings .music-credit{margin:2px 0 0;text-align:center;font-size:16px;line-height:1.4;color:#9eb4b6}
.music-credit a{color:#bdc9b2;text-underline-offset:3px}
.menu-endings small{flex-basis:100%;margin-top:-3px}
@media(prefers-reduced-motion:reduce){#game #play #readingPanel[data-reading=leaving] .reading-word{animation:none!important}#game #play #readingPanel .reading-word:after{display:none!important}}

#home{padding-top:clamp(60px,8vh,94px)}
#home .home-bottom{bottom:36px}
@media(max-width:650px){#game #play #readingPanel{--reading-top:38%}#home{padding-top:64px}#home .home-bottom{bottom:24px}}
@media(min-width:651px) and (max-height:590px){#game #play #readingPanel{--reading-top:42%}#home{padding-top:16px}#home .home-bottom{bottom:16px}}
@media(prefers-reduced-motion:reduce){#game #play #readingPanel{transition:none!important}}

/* v0.30: fit the same 590px portrait camera into narrow browser viewports.
   Canvas measurements are converted back into this logical coordinate system. */
:root{--game-scale:1;--game-header:54px;--stage-height:calc(100svh / var(--game-scale))}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,body.expedition-started{padding-bottom:calc(var(--ad-height) * var(--game-scale))}
#game{zoom:var(--game-scale);width:100%;min-height:calc(var(--stage-height) - var(--ad-height))}
#game:not([data-view=end]){height:calc(var(--stage-height) - var(--ad-height))}
#home,#play,#treasure{height:calc(var(--stage-height) - var(--ad-height) - var(--game-header))}
#game #roomClock{position:absolute;left:18px;bottom:20px}
#game .time-edges{position:absolute;inset:0}
#adDock{height:calc(var(--ad-height) * var(--game-scale));padding:calc(8px * var(--game-scale))}
#adSlot{height:calc(50px * var(--game-scale))}
#adSlot>span{font-size:calc(6px * var(--game-scale));letter-spacing:calc(2px * var(--game-scale))}
@media(max-width:650px){:root{--game-header:48px}#game #roomClock{left:13px;bottom:17px}#adSlot{max-width:calc(320px * var(--game-scale))}}
@media(min-width:651px) and (max-height:590px){:root{--game-header:35px}#game #roomClock{left:17px;bottom:15px}}

/* Daily estimates and recorded player results. */
.comparison-tabs{display:flex;justify-content:center;gap:8px;margin:20px 0 14px}
.comparison-tabs button{background:#122731;border:1px solid #567481;color:#aebfbe;font:16px VT323,monospace;letter-spacing:1px;padding:8px 13px}
.comparison-tabs button[aria-pressed=true]{border-color:#d5b776;color:#ffe5a5;background:#2b3535}
.comparison-tabs button:disabled{opacity:.45;cursor:default}
#comparisonGrade{font:27px VT323,monospace;color:#f0d294;margin:12px 0 5px}
#comparisonMean{font:20px VT323,monospace;color:#b6c9c7;margin:5px 0 0}
#comparisonMethod{font:14px/1.4 VT323,monospace;color:#b5b8a6;text-align:left;margin-top:12px}
#comparisonMethod summary{cursor:pointer;color:#d6c5a1}
#comparisonMethod p{margin:8px 0 0}
#scoreChart .bar.observed{background:#739d83}
#scoreChart .chart-col.you .bar.observed{background:#e9c87b}
