:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f5ecd8;background:#102127}*{box-sizing:border-box}html,body,#arena{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{touch-action:none}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none}button:focus-visible{outline:3px solid #f0d397;outline-offset:4px}#game{position:absolute;inset:0;width:100%;height:100%;display:block}header{position:absolute;top:max(22px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:.2em;font-weight:700;color:#a9c0b9}h1{font-family:Georgia,serif;font-size:27px;letter-spacing:-.025em;margin:7px 0;color:#f6eedb;font-weight:500;text-shadow:0 2px 12px #091719}.dot{font-family:serif;color:#e7bf73;margin-left:12px;font-size:19px}.tools{display:flex;gap:8px;align-items:center;pointer-events:auto}.tool{border:1px solid #80968c40;background:#172d30bd;border-radius:50%;width:37px;height:37px;font-size:21px}.tool:hover{background:#345047}.score{display:flex;gap:8px;align-items:baseline;padding-right:15px}.score b{font-size:28px;font-variant-numeric:tabular-nums;color:#e9c180}.score span{font-size:9px;letter-spacing:.16em;color:#9eb6af}.status{position:absolute;top:96px;left:28px;display:flex;gap:7px;align-items:center;font-size:11px;color:#b6cac0;max-width:340px}.spark{width:5px;height:5px;border-radius:50%;background:#aac7a8;box-shadow:0 0 9px #99c599}.meter{position:absolute;top:23px;left:12px;height:3px;width:160px;background:#91a59a1c;border-radius:9px;overflow:hidden}#charge{display:block;width:0;height:100%;background:#e7bc71;transition:width 40ms linear}footer{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);white-space:nowrap;color:#b2c2b7;font-size:11px;pointer-events:none}footer span>span{padding:0 9px;color:#648a80}kbd{font-family:inherit;color:#f1e5c9;font-size:10px;padding:4px 6px;border-radius:4px;border:1px solid #82968740;background:#172e2c80}.touch-note{display:none}.actions{position:absolute;right:max(35px,env(safe-area-inset-right));bottom:max(35px,env(safe-area-inset-bottom));display:flex;align-items:end;gap:17px;user-select:none}.move{--charge:0deg;position:relative;width:101px;height:101px;border-radius:50%;border:1px solid #b9d1c153;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 25%,#56736a,#213e3d 70%);box-shadow:0 8px 28px #07191570,inset 0 0 0 5px #122c3090,inset 0 0 0 6px #8cba9b29;transition:transform .1s}.move::before{content:"";position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(#f2d083 var(--charge),transparent 0);mask:radial-gradient(transparent 66%,#000 68%);pointer-events:none}.move.attack{width:117px;height:117px;background:radial-gradient(circle at 35% 25%,#926a44,#593f2e 70%);border-color:#d8bc7b66}.move svg{width:28px;height:28px;fill:none;stroke:#eddfb9;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:3px}.move b{font-size:11px;letter-spacing:.13em}.move small{font-size:7px;letter-spacing:.07em;color:#d1c8ab;margin-top:5px}.move.pressed{transform:scale(.96);filter:brightness(1.16)}.move:disabled{opacity:.4}#stick{position:absolute;left:max(42px,env(safe-area-inset-left));bottom:max(36px,env(safe-area-inset-bottom));width:116px;height:136px;user-select:none;display:none}.stick-base{width:116px;height:116px;border:1px solid #a4b9a33d;border-radius:50%;background:#29464345;box-shadow:inset 0 0 0 18px #122d2d33;display:grid;place-items:center}#stickKnob{width:52px;height:52px;border-radius:50%;border:1px solid #b9c6a452;background:radial-gradient(circle at 35% 30%,#7f9581,#334f48);box-shadow:0 5px 14px #06171375}#stick span{display:block;text-align:center;font-size:8px;letter-spacing:.17em;margin-top:10px;color:#9cb8aa}.veil{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at 50% 45%,#294844ee,#102127fa);z-index:10;text-align:center;padding:25px}.veil[hidden]{display:none}.veil h2,dialog h2{font-family:Georgia,serif;font-weight:400;font-size:31px;margin:18px 0 8px}.veil p{font-size:14px;color:#b6cbc1;max-width:400px;line-height:1.6}.veil span{font-size:11px;color:#7fa596;letter-spacing:.04em}.load-mark{font-size:50px;color:#d7b775;animation:breathe 2s infinite}@keyframes breathe{50%{opacity:.5;transform:scale(.92)}}#retry,.primary{border:1px solid #b8c39766;background:#53775e;padding:13px 23px;border-radius:8px;font-size:13px}.rotate-icon{font-size:56px;color:#d4b77e}#rotate{z-index:20}dialog{max-width:470px;width:calc(100vw - 44px);border:1px solid #6b8a7566;background:#162e30;color:#f1e8d4;border-radius:16px;padding:32px;box-shadow:0 20px 100px #0009;touch-action:auto}dialog::backdrop{background:#071719b0;backdrop-filter:blur(4px)}dialog h2{font-size:28px}dialog p{font-size:13px;line-height:1.65;color:#b4c7bb}.guide-row{display:flex;flex-direction:column;gap:4px;margin:18px 0;font-size:12px}.guide-row strong{color:#e5c78c}.guide-row span{color:#cad5c6}.keys{border-top:1px solid #75988033;padding-top:17px}.fine{font-size:10px!important}.close{position:absolute;right:12px;top:9px;border:0;background:none;font-size:26px;color:#b5c4b5}.primary{width:100%}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.hit-pop{position:absolute;color:#f2cf86;font-family:Georgia,serif;font-size:19px;pointer-events:none;text-shadow:0 2px 7px #102327;animation:pop .6s forwards}@keyframes pop{to{opacity:0;transform:translateY(-35px)}}
@media(pointer:coarse){#stick{display:block}#legend{display:none}.touch-note{display:block}.actions{gap:13px}.move{width:89px;height:89px}.move.attack{width:103px;height:103px}}
@media(max-height:500px){header{top:max(12px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}h1{font-size:21px;margin-top:4px}.eyebrow{font-size:8px}.status{top:70px;left:21px;font-size:10px}.tools{gap:6px}.tool{width:31px;height:31px;font-size:18px}.score b{font-size:23px}.score{padding-right:5px}.actions{right:max(25px,env(safe-area-inset-right));bottom:max(23px,env(safe-area-inset-bottom));gap:12px}.move{width:80px;height:80px}.move.attack{width:94px;height:94px}#stick{left:max(27px,env(safe-area-inset-left));bottom:23px;width:99px;height:113px}.stick-base{width:99px;height:99px}#stickKnob{width:46px;height:46px}footer{bottom:16px;font-size:9px}.meter{width:125px;top:20px}dialog{max-height:90vh;overflow:auto;padding:22px}dialog h2{font-size:23px}.guide-row{margin:10px 0}.move svg{width:23px;height:23px}.move small{font-size:6px}.move b{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.vitals{display:flex;align-items:center;gap:12px;font-size:10px;margin-top:8px;color:#c7d8bf}#health{color:#e3a584;font-size:13px;letter-spacing:3px}#enemiesLeft{color:#b6c6b2}#comboBadge{color:#efd095;letter-spacing:.1em;font-size:9px;font-weight:700}.round-veil{z-index:12;background:radial-gradient(ellipse at 50% 40%,#244940dc,#102127e8)}.round-veil .primary{width:230px;margin:15px 0 18px;background:#886141;border-color:#d5b78180}.round-veil p{max-width:410px}.round-key{color:#93ad9d!important;font-size:10px!important}.status{top:116px}@media(max-height:500px){.vitals{margin-top:5px;font-size:9px;gap:9px}#health{font-size:11px}.status{top:87px}.round-veil h2{font-size:27px}.round-veil p{font-size:12px;max-width:410px}.round-veil .primary{padding:10px 18px;margin:9px 0 12px}.round-veil{padding:18px}}
#roomName{font:inherit}#meterText{position:absolute;left:12px;top:22px;color:#e7c684;font-size:9px;letter-spacing:.08em;white-space:nowrap}.meter{top:39px;height:4px;width:190px}.special{width:80px;height:80px;background:radial-gradient(circle at 35% 25%,#798caa,#3d4669 70%)}.special>b:first-child{font-size:22px}.special[aria-disabled=true]{filter:saturate(.45);opacity:.8}.door-button{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);padding:13px 20px;border:1px solid #ecd29988;background:#5a6746ed;border-radius:12px;color:#fff2d6;z-index:4;font-size:13px;box-shadow:0 7px 25px #142d3780}.door-button small{display:block;font-size:9px;margin-top:4px;color:#c6d7bd}.door-button[hidden]{display:none}.round-veil{background:radial-gradient(ellipse at 50% 40%,#34454bbd,#17272edc)}@media(max-height:500px){h1{font-size:19px}.special{width:64px;height:64px}.actions{gap:10px}.meter{top:36px;width:170px}#meterText{top:21px;font-size:8px}.door-button{bottom:52px;padding:10px 16px;font-size:11px}footer{font-size:8px}.round-veil h2{font-size:25px}}
.brand{background:#16353dcc;border:1px solid #f3e1b51a;border-radius:12px;padding:8px 12px;margin:-8px -12px;text-shadow:0 1px 4px #112e33}.status{color:#f2ead4;text-shadow:0 1px 4px #143239,0 0 8px #143239}.status:before{content:"";position:absolute;inset:-8px -10px -45px;background:#183b43dc;border-radius:9px;z-index:-1}.status{isolation:isolate}footer{padding:7px 12px;background:#18353dcc;border-radius:8px;color:#e1e6d3}@media(max-height:500px){.brand{padding:6px 9px;margin:-6px -9px}.status{top:95px;max-width:290px}footer{padding:5px 9px}}
#station{width:min(530px,calc(100vw - 36px));max-height:88vh;overflow:auto;z-index:30}#station h2{font-size:26px}.station-coins{color:#edcb83!important;font-weight:600}.station-actions{display:flex;flex-direction:column;gap:7px}.station-actions button{text-align:left;border:1px solid #8faf8860;border-radius:7px;padding:10px 12px;background:#335044;color:#f2e8cd;font-size:12px}.station-actions button:disabled{opacity:.55;cursor:default}.station-actions button[data-selected=true]{outline:2px solid #dec27e;outline-offset:1px}#tutorial{position:absolute;right:28px;top:85px;width:225px;padding:11px 14px;border:1px solid #d9c8a133;background:#213e40df;border-radius:10px;pointer-events:none}#tutorial b{display:block;font-size:8px;letter-spacing:.15em;color:#dfc487;margin-bottom:6px}#tutorial span{font-size:11px;line-height:1.5;color:#d4dec9}#tutorial[hidden]{display:none}.tonic-button{position:absolute;right:38px;bottom:174px;border:1px solid #ddbb8866;background:#654745e8;border-radius:8px;padding:8px 12px;color:#ffe9cf;font-size:11px}.tonic-button[hidden]{display:none}.tonic-button:disabled{opacity:.5}#coins{color:#efd18c}@media(max-height:500px){#tutorial{right:20px;top:58px;width:200px;padding:8px 10px}#tutorial span{font-size:10px}#station{padding:20px;max-height:92vh}#station h2{font-size:22px;margin:8px 0}#station p{margin:9px 0;font-size:11px}.station-actions button{padding:7px 10px;font-size:11px}.station-actions{gap:5px}.tonic-button{right:27px;bottom:129px;font-size:10px;padding:7px 9px}.vitals{gap:7px}}
body:has(#station[open]) .actions,body:has(#station[open]) #stick,body:has(#station[open]) #exit,body:has(#station[open]) #tutorial{visibility:hidden}
/* Courtyard palette: lacquer red, jade, warm paper and restrained bronze. */
:root{color:#f3e5c9;background:#253c39}.brand{background:#2f4038e6;border-color:#d9b5793d}.tool{background:#633d32e0;border-color:#d2ad674d}.status:before{background:#33483ddd}.move.attack{background:radial-gradient(circle at 35% 25%,#a45f43,#63392e 70%);border-color:#d4ad6577}.move.bash{background:radial-gradient(circle at 35% 25%,#657c64,#354e43 70%)}.move.special{background:radial-gradient(circle at 35% 25%,#927849,#5d4b32 70%)}.round-veil{background:radial-gradient(ellipse at 50% 40%,#53563ac9,#233a35e3)}.round-veil .primary{background:#8c4a35}dialog{background:#293f36;border-color:#bf9d5e70}.station-actions button{background:#485640;border-color:#c4a46c55}.station-actions button[data-selected=true]{outline-color:#e8bc65}.door-button{background:#824b35ed;border-color:#dfbc76aa}#tutorial{background:#394c3eea;border-color:#ba9a624d}
#saveDesk{max-height:90vh;overflow:auto;width:min(510px,calc(100vw - 32px))}.save-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.save-actions button,.save-actions label,#saveConfirm button{font-size:12px;border:1px solid #b8a87866;background:#435643;border-radius:8px;color:#f4e8cc;padding:10px;text-align:center}.save-actions label{display:flex;flex-direction:column;gap:7px}.save-actions input{max-width:100%;font-size:10px;color:#dfd9bd}.save-actions button:disabled{opacity:.4}#saveConfirm{margin-top:18px;padding:12px;border:1px solid #daae7190;border-radius:8px;background:#67453388}#saveConfirm[hidden]{display:none}#saveConfirm div{display:flex;gap:8px}#saveStatus{color:#e7c984!important}#saveWarning{position:absolute;top:174px;left:28px;max-width:270px;border:1px solid #d8ad7899;border-radius:7px;background:#6e473de8;color:#ffe4c0;padding:8px 10px;font-size:10px;z-index:4}#saveWarning[hidden]{display:none}#saveButton{font-size:15px}body:has(#saveDesk[open]) .actions,body:has(#saveDesk[open]) #stick,body:has(#saveDesk[open]) #exit,body:has(#saveDesk[open]) #tutorial{visibility:hidden}@media(max-height:500px){#saveDesk{padding:20px;max-height:94vh}#saveDesk h2{font-size:22px;margin:8px 0}#saveDesk p{font-size:11px;margin:8px 0}.save-actions{gap:7px}.save-actions button,.save-actions label,#saveConfirm button{font-size:10px;padding:8px}#saveWarning{top:151px;left:21px;max-width:245px;font-size:9px;padding:6px 8px}#saveConfirm{margin-top:10px;padding:9px}.tools{gap:5px}.score span{display:none}.score{gap:3px;padding-right:1px}}
#displayNotice{position:absolute;z-index:8;left:50%;top:16px;transform:translateX(-50%);width:min(460px,90vw);padding:13px 36px 13px 14px;border:1px solid #d0ad70;border-radius:10px;background:#294038f5;font-size:12px;box-shadow:0 8px 40px #152a36aa}#displayNotice[hidden]{display:none}#displayNotice a{display:block;color:#efc882;margin-top:6px}#displayClose{position:absolute;right:8px;top:5px;border:0;background:none;font-size:23px}#castDialog{width:min(820px,95vw);max-width:820px;max-height:94vh;overflow:auto;padding:22px}#castDialog h2{margin:0;font-size:27px}.cast-select{display:flex;gap:6px;margin-top:13px;flex-wrap:wrap}.cast-select button,.cast-topics button,.cast-notes button,#castNotesBack{border:1px solid #aeb47b55;background:#425541;color:#f0e2c4;border-radius:6px;padding:7px 10px;font-size:11px}.cast-select button[aria-pressed=true]{background:#884f37;border-color:#d7af6c}.cast-layout{display:grid;grid-template-columns:36% 1fr;gap:22px;margin-top:17px}.cast-layout figure{margin:0;min-width:0}.cast-layout img{width:100%;aspect-ratio:6/7;object-fit:cover;border-radius:12px;background:#e2d4b8;border:1px solid #c7af7744}.cast-layout figcaption{font-size:9px;color:#aebca8;margin-top:6px}.cast-name{display:flex;align-items:baseline;gap:13px;flex-wrap:wrap}#castChinese{font-size:22px;color:#e2bd7b}#castPinyin{font-size:12px;color:#ccbe9d;margin-top:4px}#castRole{font-size:11px;margin:8px 0 13px;color:#bbccb3}#castText{font-family:Georgia,serif;font-size:19px;line-height:1.5;min-height:86px;margin:8px 0 12px;color:#f3e6c8}.cast-topics{display:flex;gap:7px;margin-top:9px}.cast-topics button{flex:1;text-align:left}.cast-notes{display:flex;gap:6px;margin-top:13px}.cast-notes button{font-size:10px;background:transparent;color:#c7c6a7}.cast-disclaimer{font-size:9px!important;color:#99ad99!important;margin:8px 0 0}.cast-controls{font-size:9px!important;margin:14px 0 0;color:#a0b39d!important}#castNotePane[hidden],#castConversation[hidden]{display:none}#castNotePane{max-height:230px;overflow:auto}#castNotePane h3{font-size:14px;color:#edc57d;margin:7px 0}#castNoteText{font-size:12px}#castSources a{display:block;font-size:10px;color:#d8bf88;margin:7px 0}.cast-copy{min-width:0}body:has(#castDialog[open]) .actions,body:has(#castDialog[open]) #stick,body:has(#castDialog[open]) #exit,body:has(#castDialog[open]) #tutorial{visibility:hidden}@media(max-height:500px){#castDialog{padding:14px 18px}.cast-select{margin-top:8px}.cast-select button{font-size:10px;padding:5px 9px}.cast-layout{grid-template-columns:27% 1fr;gap:16px;margin-top:10px}#castDialog h2{font-size:21px}#castChinese{font-size:19px}#castPinyin{font-size:10px}#castRole{font-size:10px;margin:5px 0 7px}#castText{font-size:15px;min-height:43px;line-height:1.4;margin:6px 0 8px}#castNext{padding:7px 12px;font-size:11px}.cast-topics{margin-top:6px}.cast-topics button{font-size:10px;padding:6px 8px}.cast-notes{margin-top:7px}.cast-notes button{padding:4px 8px;font-size:9px}.cast-disclaimer{font-size:8px!important;margin-top:5px}.cast-controls{font-size:8px!important;margin-top:7px}#castNotePane{max-height:150px}#castNoteText{font-size:11px}#castSources a{font-size:9px}.tools{gap:4px}.tool{width:29px;height:29px}.score{display:none}.brand{max-width:48vw}.vitals{flex-wrap:wrap;row-gap:3px}}
html:fullscreen,html:fullscreen body{width:100%;height:100%;background:#293f36}
/* Muted charcoal tiles, vermilion timber, warm paper, jade cloth and bronze. */
.veil{background:radial-gradient(ellipse at 50% 45%,#665d4bee,#303835fa)}.round-veil{background:radial-gradient(ellipse at 50% 40%,#685b45c9,#303835e3)}.brand{background:#343b36e8}.status:before{background:#3d443bdd}dialog,#displayNotice{background:#343d35}.tool{background:#674536e8}.move.special{background:radial-gradient(circle at 35% 25%,#8a7852,#584b34 70%)}#tutorial{background:#41483bea}.save-actions button,.save-actions label,#saveConfirm button,.station-actions button{background:#535b45}footer{background:#353f36dd}
/* Fit the actual visible browser area, including dynamic bars and rotation. */
:root{--viewport-width:100vw;--viewport-height:100dvh;--viewport-left:0px;--viewport-top:0px}#arena{position:fixed;left:var(--viewport-left);top:var(--viewport-top);width:var(--viewport-width);height:var(--viewport-height);max-width:none;max-height:none}#game{width:100%;height:100%}dialog{position:fixed;inset:auto;margin:0;left:calc(var(--viewport-left) + var(--viewport-width)/2);top:calc(var(--viewport-top) + var(--viewport-height)/2);transform:translate(-50%,-50%);max-height:calc(var(--viewport-height) - 20px);width:min(470px,calc(var(--viewport-width) - 32px))}#station{width:min(530px,calc(var(--viewport-width) - 32px));max-height:calc(var(--viewport-height) - 20px)}#saveDesk{width:min(510px,calc(var(--viewport-width) - 32px));max-height:calc(var(--viewport-height) - 20px)}#castDialog{width:min(820px,calc(var(--viewport-width) - 24px));max-height:calc(var(--viewport-height) - 16px)}#displayNotice{width:min(460px,calc(var(--viewport-width) - 28px))}.compact-viewport header{top:max(10px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}.compact-viewport .brand{max-width:47%;padding:6px 9px;margin:-6px -9px}.compact-viewport h1{font-size:19px;white-space:nowrap}.compact-viewport .tools{gap:4px}.compact-viewport .tool{width:29px;height:29px;font-size:16px}.compact-viewport .score{display:none}.compact-viewport .actions{right:max(20px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));gap:10px}.compact-viewport #stick{left:max(20px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom))}.tiny-viewport header{top:max(8px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right))}.tiny-viewport .eyebrow{font-size:7px}.tiny-viewport .brand>.eyebrow{display:none}.tiny-viewport h1{font-size:16px;margin:2px 0}.tiny-viewport .dot{font-size:13px;margin-left:7px}.tiny-viewport .vitals{font-size:8px;gap:6px;margin-top:3px}.tiny-viewport #health{font-size:9px;letter-spacing:2px}.tiny-viewport #comboBadge{font-size:7px}.tiny-viewport .tool{width:27px;height:27px;font-size:15px}.tiny-viewport .status{top:54px;left:15px;max-width:235px;font-size:8px;gap:5px}.tiny-viewport .status:before{inset:-5px -8px -32px}.tiny-viewport #meterText{top:15px;font-size:7px}.tiny-viewport .meter{top:28px;width:140px;height:3px}.tiny-viewport #tutorial{display:none}.tiny-viewport .actions{bottom:max(13px,env(safe-area-inset-bottom));right:max(15px,env(safe-area-inset-right));gap:9px}.tiny-viewport .move{width:63px;height:63px}.tiny-viewport .move.attack{width:73px;height:73px}.tiny-viewport .move.special{width:53px;height:53px}.tiny-viewport .move svg{width:19px;height:19px}.tiny-viewport .move b{font-size:8px}.tiny-viewport .move small{font-size:6px;margin-top:3px}.tiny-viewport .special>b:first-child{font-size:18px}.tiny-viewport #stick{width:77px;height:91px;left:max(15px,env(safe-area-inset-left));bottom:max(13px,env(safe-area-inset-bottom))}.tiny-viewport .stick-base{width:77px;height:77px}.tiny-viewport #stickKnob{width:35px;height:35px}.tiny-viewport #stick span{font-size:6px;margin-top:7px}.tiny-viewport footer{bottom:8px;font-size:7px;padding:4px 7px}.tiny-viewport .door-button{bottom:34px;padding:8px 12px;font-size:10px;max-width:40%;white-space:normal}.tiny-viewport .tonic-button{bottom:96px;right:17px;font-size:8px;padding:6px}.tiny-viewport #saveWarning{top:108px;left:14px;font-size:8px;max-width:220px}.tiny-viewport .veil h2{font-size:22px;margin:10px 0 5px}.tiny-viewport .veil p{font-size:11px;margin:5px 0;max-width:430px}.tiny-viewport .round-veil .primary{margin:8px 0;padding:8px 16px}.tiny-viewport .round-key{font-size:8px!important}.tiny-viewport #castDialog{padding:10px 14px}.tiny-viewport .cast-layout{grid-template-columns:23% 1fr;gap:12px}.tiny-viewport .cast-controls{display:none}.tiny-viewport #castText{font-size:13px;min-height:35px}.tiny-viewport #castRole{font-size:9px}.tiny-viewport #castDialog h2{font-size:18px}.tiny-viewport #castChinese{font-size:17px}.tiny-viewport .cast-disclaimer{font-size:7px!important}.tiny-viewport .cast-select{margin-top:6px}.tiny-viewport .cast-select button{font-size:9px;padding:4px 7px}.tiny-viewport #castNotePane{max-height:125px}.tiny-viewport #saveDesk,.tiny-viewport #station{padding:14px}.tiny-viewport dialog h2{font-size:20px}.tiny-viewport dialog p{font-size:10px}html:fullscreen,html:fullscreen body{background:#343d35}
/* Illustrated conversations: a large cutout meets a low paper dialogue panel. */
#castDialog{width:min(1180px,calc(var(--viewport-width) - 24px));height:min(710px,calc(var(--viewport-height) - 24px));max-width:none;max-height:calc(var(--viewport-height) - 24px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;color:#343a2d}
#castDialog::backdrop{background:#14211bd9;backdrop-filter:blur(2px)}
#castClose{position:absolute;z-index:5;top:1px;right:1px;width:42px;height:42px;background:#293b32;border:1px solid #c6a96b;color:#f4e7ca;border-radius:50%;font-size:25px}
#castDialog .cast-heading{position:absolute;z-index:3;left:38%;right:48px;top:3px;padding:7px 10px;background:#23372cde;border-radius:8px;color:#f0e1bd}
#castDialog .cast-heading>.eyebrow{font-size:9px;color:#dac38d;letter-spacing:.13em}
#castDialog .cast-select{flex-wrap:nowrap;gap:5px;margin-top:7px;overflow-x:auto;scrollbar-width:thin;max-width:100%}
#castDialog .cast-select button{flex:0 0 auto;min-height:34px;font-size:12px;padding:6px 9px}
#castDialog .cast-layout{height:100%;display:grid;grid-template-columns:38% 62%;gap:0;margin:0;align-items:end}
#castDialog .cast-layout figure{height:100%;position:relative;align-self:end;display:flex;align-items:end;justify-content:center;pointer-events:none}
#castDialog .cast-layout img{display:block;width:112%;max-width:none;height:100%;object-fit:contain;object-position:center bottom;aspect-ratio:auto;border:0;border-radius:0;background:transparent;filter:drop-shadow(0 9px 10px #07120e66)}
#castDialog .cast-layout figcaption{display:none}
#castDialog .cast-copy{position:relative;z-index:2;max-height:calc(100% - 94px);overflow:auto;overscroll-behavior:contain;scrollbar-color:#ac8954 #ddd0ac;background:#f0e4c8;border:3px solid #a77d43;border-radius:4px 14px 4px 4px;box-shadow:inset 0 0 0 2px #fcf4df,0 8px 28px #07120e66;padding:20px 24px 14px;touch-action:pan-y}
#castDialog .cast-name{gap:12px;align-items:baseline}#castDialog h2{font-family:Georgia,serif;color:#283d30;font-size:32px;line-height:1.1;margin:0}#castDialog #castChinese{font-size:25px;color:#85432c}#castDialog #castPinyin{color:#7c5d38;font-size:13px;margin-top:4px}#castDialog #castRole{color:#6f765d;font-size:13px;margin:8px 0 15px}
#castDialog #castText{color:#343a2d;font-family:Georgia,serif;font-size:23px;font-weight:600;line-height:1.38;min-height:66px;margin:0 0 12px}
#castDialog #castNext{min-height:40px;margin:0;padding:9px 17px;font-size:14px;background:#87452f;color:#fff2d9;border:1px solid #a2633f;border-radius:6px}
#castDialog .cast-topics{gap:7px;margin-top:12px}#castDialog .cast-topics button{min-height:36px;font-size:12px;background:#ddd4b7;color:#314734;border-color:#87927380;padding:7px 10px}
#castDialog .cast-notes{gap:5px;margin-top:12px;flex-wrap:wrap}#castDialog .cast-notes button,#castDialog #castNotesBack{min-height:32px;font-size:11px;color:#715635;border-color:#9d804b66;background:#e7dab9;padding:6px 10px}
#castDialog .cast-disclaimer{color:#817459!important;font-size:10px!important;margin:9px 0 0}#castDialog .cast-controls{display:none}#castDialog #castNotePane{max-height:none}#castDialog #castNotePane h3{color:#65442b;margin:7px 0}#castDialog #castNoteText{color:#343a2d;font-size:16px;line-height:1.5}#castDialog #castSources{display:grid;gap:8px;margin:10px 0}#castDialog #castSources a{color:#665824;font-size:12px;overflow-wrap:anywhere}
.compact-viewport #castDialog{height:calc(var(--viewport-height) - 16px);max-height:calc(var(--viewport-height) - 16px)}
.compact-viewport #castDialog .cast-heading{left:35%;padding:5px 8px;top:0}.compact-viewport #castDialog .cast-layout{grid-template-columns:35% 65%}.compact-viewport #castDialog .cast-copy{max-height:calc(100% - 73px);padding:12px 16px}.compact-viewport #castDialog h2{font-size:24px}.compact-viewport #castDialog #castChinese{font-size:21px}.compact-viewport #castDialog #castPinyin{font-size:11px;margin-top:2px}.compact-viewport #castDialog #castRole{font-size:11px;margin:5px 0 8px}.compact-viewport #castDialog #castText{font-size:18px;min-height:46px;margin-bottom:9px}.compact-viewport #castDialog .cast-select button{min-height:30px;font-size:11px;padding:4px 7px}.compact-viewport #castDialog .cast-topics{margin-top:8px}.compact-viewport #castDialog .cast-notes{margin-top:8px}.compact-viewport #castDialog .cast-disclaimer{font-size:9px!important}
.tiny-viewport #castDialog .cast-heading>.eyebrow{font-size:7px}.tiny-viewport #castDialog .cast-heading{right:40px;padding:4px 7px}.tiny-viewport #castClose{width:34px;height:34px;font-size:22px}.tiny-viewport #castDialog .cast-select{margin-top:4px}.tiny-viewport #castDialog .cast-select button{font-size:10px;min-height:28px;padding:4px 7px}.tiny-viewport #castDialog .cast-copy{max-height:calc(100% - 62px);padding:9px 13px}.tiny-viewport #castDialog h2{font-size:20px}.tiny-viewport #castDialog #castChinese{font-size:19px}.tiny-viewport #castDialog #castPinyin{font-size:10px}.tiny-viewport #castDialog #castRole{display:none}.tiny-viewport #castDialog #castText{font-size:16px;min-height:39px;line-height:1.32;margin:7px 0}.tiny-viewport #castDialog #castNext{min-height:34px;padding:6px 12px;font-size:12px}.tiny-viewport #castDialog .cast-disclaimer{display:none}.tiny-viewport #castDialog #castNoteText{font-size:14px}.tiny-viewport #castDialog .cast-topics button{font-size:11px;min-height:34px}
.portrait-viewport #castDialog .cast-heading{left:0;right:46px}.portrait-viewport #castDialog .cast-layout{grid-template-columns:1fr;grid-template-rows:42% 58%}.portrait-viewport #castDialog .cast-layout figure{height:100%;padding-top:65px}.portrait-viewport #castDialog .cast-layout img{width:100%;height:100%;object-position:center bottom}.portrait-viewport #castDialog .cast-copy{max-height:100%;height:100%;padding:14px 18px}.portrait-viewport #castDialog h2{font-size:24px}.portrait-viewport #castDialog #castText{font-size:18px}
@media(prefers-reduced-motion:reduce){#castDialog::backdrop{backdrop-filter:none}}

#castDialog .cast-layout figure{padding:8px 5% 0}#castDialog .cast-layout img{width:100%;max-width:100%}.portrait-viewport #castDialog .cast-layout figure{padding-top:65px}

#missionHud{position:absolute;left:max(20px,env(safe-area-inset-left));top:132px;width:min(370px,44vw);padding:12px 16px;background:#203c35e8;border-left:3px solid #bba774;border-radius:5px;pointer-events:none;color:#f4e4bb}#missionHud div{display:flex;align-items:center;gap:10px}#missionHud b{font-size:15px;flex:1}#missionHud p{font-size:13px;line-height:1.4;margin:7px 0 0;color:#d0d9c2}#objectiveArrow{font-size:24px;display:inline-block}#objectiveDistance{white-space:nowrap}#bossHud{position:absolute;top:125px;right:24px;width:240px;text-align:center;background:#263a34ee;padding:10px;border-radius:6px;color:#efdbb3}#bossHud>div{height:7px;background:#152421;margin:6px 0}#bossHealth{display:block;height:100%;background:#c77754}#storyDialog{max-width:560px;width:min(90vw,560px);max-height:calc(var(--viewport-height,100dvh) - 32px);overflow:auto}#storyText{font-size:18px;line-height:1.55}#roundSecondary{margin-top:8px}.compact-viewport #missionHud{top:84px;left:14px;padding:7px 10px;width:34vw}.compact-viewport #missionHud p{display:none}.compact-viewport #missionHud b{font-size:12px}.compact-viewport #bossHud{top:78px;right:18px;width:190px;padding:6px}.tiny-viewport #bossHud{top:72px;width:170px}.tiny-viewport #storyText{font-size:16px}.tiny-viewport #storyDialog{padding:16px 24px}.tiny-viewport #storyDialog .fine{display:none}

#storyPortrait{width:34%;max-height:300px;object-fit:contain;float:left;margin:0 18px 12px 0}#storyDialog.with-portrait{max-width:760px;width:min(92vw,760px)}.compact-viewport #storyPortrait{max-height:190px;width:30%}#storyDialog[open]{touch-action:pan-y}

/* Approved seven-speaker illustrations, including the functional home crew. */
#station .station-layout{display:block}#station .station-copy{min-width:0}#station.has-portrait{width:min(1040px,calc(var(--viewport-width) - 28px));height:min(670px,calc(var(--viewport-height) - 24px));max-width:none;max-height:calc(var(--viewport-height) - 24px);padding:0;border:0;border-radius:0;overflow:hidden;background:transparent;box-shadow:none;color:#343a2d}
#station.has-portrait::backdrop{background:#14211bd9;backdrop-filter:blur(2px)}#station.has-portrait .station-layout{display:grid;grid-template-columns:38% 62%;height:100%;align-items:end}#station.has-portrait figure{margin:0;height:100%;display:flex;align-items:end;justify-content:center;position:relative;pointer-events:none}#stationPortrait{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 10px #07120e66)}#stationArtStatus{position:absolute;bottom:25%;left:10%;right:10%;color:#f0e1bd;font-size:13px;text-align:center}
#station.has-portrait .station-copy{max-height:calc(100% - 40px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:24px 30px;background:linear-gradient(135deg,#f2e7c8,#d9c9a0);border:1px solid #a79165;border-radius:12px 12px 4px 4px;box-shadow:0 10px 35px #07170b55;scrollbar-width:thin}#station.has-portrait .eyebrow{color:#776644}#station.has-portrait h2{font-size:28px;margin:4px 0 14px}#station.has-portrait p{color:#465040;font-size:17px;line-height:1.45;margin:10px 0}#station.has-portrait .station-coins{color:#795719!important;font-size:14px}#station.has-portrait .station-actions button{min-height:44px;font-size:14px;line-height:1.3;padding:11px 13px;background:#485640;color:#fff3d2}#station.has-portrait .station-actions button:disabled{opacity:.65}#station.has-portrait .fine{font-size:12px;color:#657057}#stationClose{z-index:5}#station.has-portrait #stationClose{position:absolute;right:0;top:0;width:38px;height:38px;border-radius:50%;background:#293b32;color:#f4e7ca;border:1px solid #c6a96b}
.compact-viewport #station.has-portrait .station-layout{grid-template-columns:34% 66%}.compact-viewport #station.has-portrait .station-copy{max-height:calc(100% - 30px);padding:14px 20px}.compact-viewport #station.has-portrait h2{font-size:22px;margin:3px 0 8px}.compact-viewport #station.has-portrait p{font-size:16px;margin:7px 0}.compact-viewport #station.has-portrait .station-actions button{font-size:14px;min-height:40px;padding:8px 10px}.compact-viewport #station.has-portrait .fine{font-size:10px}.tiny-viewport #station.has-portrait{height:calc(var(--viewport-height) - 14px);max-height:calc(var(--viewport-height) - 14px)}.tiny-viewport #station.has-portrait .station-copy{padding:10px 15px;max-height:calc(100% - 24px)}.tiny-viewport #station.has-portrait h2{font-size:20px}.tiny-viewport #station.has-portrait p{font-size:16px}.tiny-viewport #station.has-portrait .station-coins{font-size:12px}.portrait-viewport #station.has-portrait .station-layout{grid-template-columns:1fr;grid-template-rows:36% 64%}.portrait-viewport #station.has-portrait figure{height:100%;width:100%}.portrait-viewport #stationPortrait{width:100%;height:115%}.portrait-viewport #station.has-portrait .station-copy{max-height:100%;height:100%;padding:16px 20px}.portrait-viewport #station.has-portrait #stationClose{top:0;right:0}#stationFigure[hidden],#stationPortrait[hidden],#stationArtStatus[hidden]{display:none}

.portrait-status{position:absolute;bottom:25%;left:10%;right:10%;text-align:center;color:#f0e1bd;font-size:13px}#castPortrait[hidden],#storyPortrait[hidden],.portrait-status[hidden]{display:none}

.compact-viewport #castDialog .cast-select button,.tiny-viewport #castDialog .cast-select button{font-size:14px;min-height:36px}.compact-viewport #castDialog #castNext,.tiny-viewport #castDialog #castNext,.compact-viewport #castDialog .cast-topics button,.tiny-viewport #castDialog .cast-topics button,.compact-viewport #castDialog .cast-notes button,.tiny-viewport #castDialog .cast-notes button{font-size:14px;min-height:36px}.tiny-viewport #castDialog #castNoteText{font-size:16px}.compact-viewport #storyContinue,.tiny-viewport #storyContinue{font-size:14px;min-height:40px}
#station.has-portrait figure{min-width:0}#stationPortrait{max-width:100%}

/* Authored wake-up story: the 3D scene remains visible behind concise dialogue. */
#introOverlay{position:absolute;inset:0;z-index:20;pointer-events:none}#introShade{position:absolute;inset:0;background:#111c20;opacity:0;pointer-events:none}#introOverlay .intro-heading{position:absolute;left:max(25px,env(safe-area-inset-left));top:max(22px,env(safe-area-inset-top));display:flex;flex-direction:column;gap:6px;color:#fff0cf;text-shadow:0 2px 5px #122c22}#introPhase{font-size:22px}#introOverlay .intro-dialogue{position:absolute;left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));display:flex;align-items:end;justify-content:center;gap:0;max-height:80%}#introFigure{width:30%;max-width:320px;height:min(430px,60vh);margin:0;position:relative;flex-shrink:0}#introPortrait{width:100%;height:100%;object-fit:contain;object-position:center bottom}#introOverlay .intro-copy{background:linear-gradient(135deg,#f2e7c8,#d9c9a0);border:1px solid #b09b6a;border-radius:10px;padding:20px 25px;max-width:650px;max-height:100%;overflow:auto;color:#343a2d;pointer-events:auto;touch-action:pan-y}#introSpeaker{color:#755f38}#introText{font-size:19px;line-height:1.45;margin:10px 0 17px}#introOverlay .intro-buttons{display:flex;gap:12px;flex-wrap:wrap}#introOverlay button{font-size:14px;min-height:40px;padding:8px 14px}#introSkip{background:#485640;border:1px solid #6b744f;border-radius:8px}#introReplay{position:absolute;top:128px;right:26px;padding:7px 11px;font-size:12px;border:1px solid #8da38b88;background:#263c33d9;border-radius:6px;z-index:4}.intro-playing>header,.intro-playing>.status,.intro-playing>#tutorial,.intro-playing>#missionHud,.intro-playing>#bossHud,.intro-playing>.actions,.intro-playing>#stick,.intro-playing>#exit,.intro-playing>footer,.intro-playing>#introReplay{visibility:hidden}.compact-viewport #introPhase{font-size:16px}.compact-viewport #introOverlay .intro-heading{top:12px;left:16px}.compact-viewport #introOverlay .intro-dialogue{left:16px;right:16px;bottom:12px;max-height:78%}.compact-viewport #introFigure{height:65vh;width:28%}.compact-viewport #introOverlay .intro-copy{padding:12px 17px}.compact-viewport #introText{font-size:16px;line-height:1.35;margin:7px 0 10px}.compact-viewport #introReplay{top:80px;right:18px}.tiny-viewport #introOverlay .intro-copy{padding:9px 13px}.tiny-viewport #introOverlay button{min-height:36px;font-size:14px}.tiny-viewport #introReplay{top:76px;font-size:11px}.portrait-viewport #introFigure{display:none}#introFigure[hidden],#introPortrait[hidden],#introArtStatus[hidden]{display:none}

#departureSkip{position:absolute;z-index:8;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:10px 18px;background:#2c4437;color:#f4e7c5;border:1px solid #bba774;border-radius:8px;font-size:14px;min-height:42px}
/* The rotation veil must cover the opening; short viewports retain scrollable text/actions. */
#rotate{z-index:40}#introOverlay .intro-copy{max-height:calc(var(--viewport-height) - 56px)}

/* Keep touch starts away from browser-edge swipe zones; no history interception. */
#stick,.compact-viewport #stick,.tiny-viewport #stick{left:max(64px,calc(env(safe-area-inset-left) + 28px));touch-action:none}.actions,.compact-viewport .actions,.tiny-viewport .actions{right:max(48px,calc(env(safe-area-inset-right) + 24px));touch-action:none}#game,#arena{touch-action:none;overscroll-behavior:none}
#mapDialog{width:min(900px,calc(var(--viewport-width) - 28px));height:min(760px,calc(var(--viewport-height) - 24px));max-height:calc(var(--viewport-height) - 24px);overflow:auto;background:#ece0bd;color:#334135;padding:22px}#mapDialog p,#mapDialog .eyebrow,#mapDialog .close{color:#334135}#mapDialog button:focus-visible{outline-color:#334135}#mapDialog .primary{color:#fff2d0}.map-layout{display:grid;grid-template-columns:45% 55%;height:calc(100% - 70px);min-height:180px}.map-layout svg{width:100%;height:100%;min-height:180px}.map-copy{padding:15px;overflow:auto}.map-copy p{font-size:16px;line-height:1.45}#mapDrawing{min-height:0}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.settings-actions button{min-height:42px;padding:10px 14px;border-radius:7px;background:#536347;color:#fff2d0}
.portrait-viewport header{left:16px;right:16px;top:16px;align-items:start}.portrait-viewport h1{font-size:21px}.portrait-viewport .tools{max-width:160px;flex-wrap:wrap;gap:5px;justify-content:end}.portrait-viewport .score{display:none}.portrait-viewport #stick{left:max(40px,calc(env(safe-area-inset-left) + 24px));bottom:max(40px,env(safe-area-inset-bottom));width:90px;height:106px}.portrait-viewport .actions{right:max(28px,calc(env(safe-area-inset-right) + 20px));bottom:max(40px,env(safe-area-inset-bottom));gap:7px;flex-wrap:wrap;width:170px;justify-content:end}.portrait-viewport .actions button{width:65px;height:65px}.portrait-viewport .status{top:124px;left:16px;right:16px}.portrait-viewport #missionHud{top:175px;max-width:calc(100% - 32px)}.portrait-viewport #tutorial{max-width:calc(100% - 32px);bottom:180px;left:16px}.portrait-viewport .map-layout{grid-template-columns:53% 47%}.portrait-viewport .map-copy{padding:8px}.portrait-viewport .map-copy p{font-size:14px}.compact-viewport #mapDialog{padding:12px 18px}.compact-viewport #mapDialog h2{font-size:21px;margin:6px 0}.compact-viewport .map-layout{height:calc(100% - 48px)}

/* Fullscreen is available before entering the story and inside native modal dialogs. */
.floating-fullscreen{position:absolute;z-index:65;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));width:42px;height:42px;visibility:visible!important;pointer-events:auto;background:#293b32e8;border:1px solid #c6a96b;color:#fff0c8}.tools{padding-right:44px}.dialog-fullscreen{position:absolute;right:48px;top:8px;z-index:8;width:36px;height:36px;border-radius:6px;border:1px solid #9c865c;background:#334a3d;color:#fff0c8}.intro-playing>.floating-fullscreen{visibility:visible}.intro-playing .intro-heading{max-width:calc(100% - 100px)}
#introOverlay .intro-dialogue{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:0;max-height:calc(var(--viewport-height) - 54px);align-items:end}#introFigure,.compact-viewport #introFigure{width:38%;max-width:520px;height:calc(var(--viewport-height) - 55px);margin:0;position:relative;overflow:hidden;border-bottom:4px solid #927747;background:linear-gradient(0deg,#263b3266,transparent 65%);border-radius:12px 12px 0 0}#introPortrait{position:absolute;width:114%;height:114%;max-width:none;left:-7%;bottom:-10%;object-fit:contain;object-position:center bottom}#introOverlay .intro-copy{flex:1;max-width:700px;max-height:calc(var(--viewport-height) - 70px);border-radius:10px 10px 0 0;z-index:2;margin-left:-10px;padding:14px 20px}#introOverlay .intro-buttons{display:flex;flex-wrap:nowrap;gap:9px}#introOverlay .intro-buttons button,#introOverlay .intro-buttons .primary{display:inline-flex;align-items:center;justify-content:center;width:auto;margin:0;min-height:40px;padding:8px 14px;font-size:14px;color:#fff4d2}#introOverlay .intro-buttons .primary{flex:1}#introText{margin:7px 0 12px}.compact-viewport #introOverlay .intro-copy{padding:10px 16px}.compact-viewport #introText{font-size:16px;line-height:1.35}.portrait-viewport #introFigure{display:block;width:36%;height:45vh}.portrait-viewport #introOverlay .intro-copy{padding:12px;max-height:55vh}.portrait-viewport #introOverlay .intro-dialogue{left:6px;right:6px}.portrait-viewport #introOverlay .intro-buttons{flex-wrap:wrap}
#castDialog .cast-layout figure,#station.has-portrait figure{overflow:hidden;border-bottom:4px solid #927747;border-radius:12px 12px 0 0;background:linear-gradient(0deg,#263b3266,transparent 65%);position:relative;padding:0}#castDialog .cast-layout img,#stationPortrait{position:absolute;left:-7%;bottom:-10%;width:114%;height:114%;max-width:none;object-fit:contain;object-position:center bottom}#storyFigure{float:left;position:relative;overflow:hidden;width:38%;height:min(65vh,420px);margin:0 20px 0 0;border-bottom:4px solid #927747;border-radius:10px 10px 0 0;background:linear-gradient(0deg,#526c4c44,transparent 65%)}#storyPortrait,.compact-viewport #storyPortrait{position:absolute;left:-7%;bottom:-10%;width:114%;height:114%;max-height:none;float:none;margin:0;object-fit:contain;object-position:center bottom}#storyDialog:not(.with-portrait) #storyFigure{display:none}#storyDialog.with-portrait{width:min(940px,calc(var(--viewport-width) - 28px));max-width:none;max-height:calc(var(--viewport-height) - 24px);overflow:auto}.compact-viewport #storyFigure{height:calc(var(--viewport-height) - 55px)}

/* Scene-first opening: actors establish the meeting before any text panel appears. */
#introCopy[hidden]{display:none!important}#introOverlay #introSkip{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(68px,calc(env(safe-area-inset-right) + 54px));z-index:66;pointer-events:auto;width:auto;margin:0;min-height:42px;padding:8px 12px;color:#fff0c8;background:#293b32e8;border:1px solid #a38b59;font-size:14px}
#introOverlay .intro-heading{max-width:calc(100% - 230px);pointer-events:none}#introOverlay .intro-heading .eyebrow{display:none}#introPhase{font-size:14px;font-weight:500;text-shadow:0 1px 4px #17271b}
#introOverlay .intro-copy,.compact-viewport #introOverlay .intro-copy,.tiny-viewport #introOverlay .intro-copy{height:auto;max-height:32vh;max-height:calc(var(--viewport-height) * .32);padding:9px 14px;display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:3px;overflow:auto;align-items:center}
#introSpeaker{grid-column:1;line-height:1.15;font-size:11px}#introText,.compact-viewport #introText{grid-column:1;font-size:16px;line-height:1.3;margin:0}#introOverlay .intro-buttons{grid-column:2;grid-row:1 / span 2}#introOverlay .intro-buttons button,#introOverlay .intro-buttons .primary{min-height:42px;padding:8px 12px;font-size:14px;white-space:nowrap}
#introFigure,.compact-viewport #introFigure{height:calc(var(--viewport-height) * .73);width:38%;max-width:520px}#introOverlay .intro-dialogue{pointer-events:none}#introOverlay .intro-copy{pointer-events:auto}.portrait-viewport #introOverlay .intro-copy{max-height:34vh;grid-template-columns:1fr}.portrait-viewport #introOverlay .intro-buttons{grid-column:1;grid-row:auto}.portrait-viewport #introFigure{height:48vh;width:36%}.portrait-viewport #introOverlay .intro-heading{max-width:calc(100% - 205px)}

/* A small combat HUD; details live in Map and Settings. */
.brand>.eyebrow,.brand h1,.brand #enemiesLeft,.brand #comboBadge,.tools .score,.status,footer{display:none!important}.brand,.compact-viewport .brand,.tiny-viewport .brand{max-width:none;padding:8px 11px;margin:0;border-radius:10px}.vitals,.tiny-viewport .vitals{margin:0;gap:12px;font-size:12px}#health,.tiny-viewport #health{font-size:16px;letter-spacing:2px}#coins{font-size:12px}#mute,#saveButton{display:none}#missionHud,.compact-viewport #missionHud,.tiny-viewport #missionHud,.portrait-viewport #missionHud{top:66px;left:max(20px,env(safe-area-inset-left));padding:7px 10px;max-width:250px}#missionHud p{display:none}#missionHud b{font-size:12px}#introReplay{top:64px}.compact-viewport #introReplay,.tiny-viewport #introReplay{top:60px}
#special.special-charged{filter:none;opacity:1;border:3px solid #e5d495;box-shadow:0 0 0 3px #263f35,0 0 0 5px #f0d48b;background:radial-gradient(circle at 35% 25%,#b39248,#615025 80%)}#special.special-ready{animation:special-ready-breathe 1.9s ease-in-out infinite}#special.special-ready b,#special.special-ready small{color:#fffbe5}#special.special-ready small{font-size:11px;font-weight:900;letter-spacing:.11em}#special.special-charged>b:first-child{font-size:27px}#special.still-effects{animation:none!important}@keyframes special-ready-breathe{50%{box-shadow:0 0 0 3px #263f35,0 0 0 6px #f0d48b,0 0 20px #e6c87666}}

#introOverlay .intro-copy{overflow:hidden}#introText,.compact-viewport #introText{max-height:calc(var(--viewport-height) * .32 - 35px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin}.portrait-viewport #introText{max-height:calc(var(--viewport-height) * .34 - 84px)}
.tiny-viewport .move.special{width:64px;height:64px}.tiny-viewport #special>b:first-child{font-size:24px;line-height:24px}.tiny-viewport #special b{font-size:9px}.tiny-viewport #special small{font-size:9px;line-height:11px;margin-top:2px}

#mapDrawing.route-map{overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;height:100%;min-height:0}#mapDrawing.route-map svg{display:block;width:100%;height:auto;min-height:100%;max-height:none}

.map-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.map-jumps button{min-height:44px;padding:9px 12px;background:#455b42;color:#fff0d0;border:1px solid #9e885c;border-radius:7px;font-size:14px}
/* Anchor the visible alpha silhouette, rather than the padded raster canvas. */
#castPortrait,#stationPortrait,#storyPortrait,#introPortrait{position:absolute;max-width:none;max-height:none;object-fit:fill;transform:none;margin:0;float:none}
#castFigure,#stationFigure,#storyFigure,#introFigure{position:relative;overflow:hidden;border-bottom:4px solid #927747}
#introOverlay .intro-dialogue,.compact-viewport #introOverlay .intro-dialogue,.tiny-viewport #introOverlay .intro-dialogue,.portrait-viewport #introOverlay .intro-dialogue{bottom:0}
/* Entry uses one calm gate until the real visible viewport is landscape. */
.awaiting-dream-entry>header,.awaiting-dream-entry>.status,.awaiting-dream-entry>.actions,.awaiting-dream-entry>#stick,.awaiting-dream-entry>#exit,.awaiting-dream-entry>#tutorial,.awaiting-dream-entry>#introReplay,.awaiting-dream-entry>#tonic,.awaiting-dream-entry>footer{visibility:hidden}
.awaiting-dream-entry #round{background:linear-gradient(180deg,#263b3244,#24392dbb);gap:8px;padding:max(28px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
.awaiting-dream-entry #roundTitle{font-size:clamp(22px,4vw,30px);line-height:1.15;max-width:440px;margin:0;text-shadow:0 2px 8px #15261b}
.awaiting-dream-entry #roundText{font-size:14px;line-height:1.45;max-width:350px;margin:3px 0 8px;color:#f0ead6;text-shadow:0 1px 5px #15261b}
.awaiting-dream-entry #roundButton{min-height:48px;margin:4px 0;padding:12px 20px;width:min(270px,90%)}
.awaiting-dream-entry #roundSecondary{min-height:44px;font-size:14px;padding:9px 15px;margin:4px 0;border:1px solid #bfab7c;background:#293e34e8;color:#f7edcf;border-radius:8px}
.awaiting-dream-entry #roundButton[hidden]{display:none}.awaiting-dream-entry #roundKey{font-size:11px;color:#e1d5b9}.awaiting-dream-entry #displayNotice{display:none}
.portrait-paused>header,.portrait-paused>.actions,.portrait-paused>#stick,.portrait-paused>#exit,.portrait-paused>#introOverlay,.portrait-paused>#missionHud,.portrait-paused>#bossHud,.portrait-paused>#introReplay,.portrait-paused>#tutorial,.portrait-paused>#tonic,.portrait-paused>footer{visibility:hidden}
#rotate{z-index:60;background:#24392dee;gap:10px}#rotate h2{font-size:25px;line-height:1.2;margin:0}#rotate p{max-width:300px;font-size:15px;margin:0}#rotate span{font-size:12px;color:#ddcfaa}#rotate .rotate-icon{font-size:44px}
#rotate{position:fixed;inset:auto;left:calc(var(--viewport-left) + var(--viewport-width)/2);top:calc(var(--viewport-top) + var(--viewport-height)/2);transform:translate(-50%,-50%);margin:0;width:min(420px,calc(var(--viewport-width) - 36px));height:auto;max-height:calc(var(--viewport-height) - 32px);padding:36px 24px 28px;border:1px solid #b39a65;border-radius:14px;box-shadow:0 15px 50px #10221866;overflow:auto}
#rotate::backdrop{background:#24392def}#rotateFullscreen{right:8px;top:8px}

.work-in-progress{font-size:11px;line-height:1.3;opacity:.72;margin-top:4px}.room-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.room-return{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid #ad9470;border-radius:8px;color:#f0d5aa;text-decoration:none}.room-return:focus-visible{outline:2px solid #f7df9e;outline-offset:3px}
/* Keep real controls reachable when a phone's browser chrome shortens its view. */
@media(pointer:coarse){
 body #arena button,body #arena .room-return{min-width:48px;min-height:48px}
 body #arena #castClose,body #arena #stationClose,body #arena #storyClose{width:48px;height:48px}
 body #arena #castDialog .cast-heading{right:56px}
}
@media(max-height:360px){
 #round.veil,#loading.veil{justify-content:flex-start;overflow-y:auto;box-sizing:border-box;padding:12px 16px;gap:4px;overscroll-behavior:contain}
 #round.veil h2,#loading.veil h2{font-size:24px;margin:2px 0}
 #round.veil p,#loading.veil p{margin:3px 0}
 #round.veil>* ,#loading.veil>*{flex-shrink:0}
}
