@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--yellow:#f4f36b;--ink:#172629;--cream:#fffbed;--teal:#7ce3c6;--pink:#f799b8}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#8ed6dc;color:var(--cream);font-family:'DM Sans',sans-serif;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}#world, #world canvas,.vignette,#storm-tint{position:fixed;inset:0;width:100%;height:100%}#world canvas{touch-action:none}.vignette{pointer-events:none;background:linear-gradient(180deg,rgba(13,37,43,.28),transparent 20%,transparent 70%,rgba(14,35,37,.38))}#storm-tint{pointer-events:none;background:radial-gradient(ellipse,transparent 20%,#66507ea8);opacity:0;transition:opacity .3s}header{position:fixed;top:0;left:0;right:0;padding:28px 38px;display:flex;align-items:center;justify-content:space-between;z-index:5}.brand{font-family:'Barlow Condensed',Impact,sans-serif;letter-spacing:-1.3px;font-size:39px;font-weight:900;color:var(--yellow);text-decoration:none;line-height:1}.brand span{color:var(--cream)}.brand i{font-size:36px;font-style:normal;display:inline-block;margin-left:13px;vertical-align:middle}.location{font-size:10px;letter-spacing:2px;display:flex;align-items:center;gap:12px;font-weight:700}.divider{opacity:.5;margin:0 7px}.live-dot,.yellow-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--yellow)}.live-dot{box-shadow:0 0 0 4px #f4f36b19}.header-actions{display:flex;gap:10px}.icon-btn{color:var(--cream);border:1px solid #ffffff5c;background:#15303545;border-radius:6px;height:38px;min-width:40px;font-size:18px;backdrop-filter:blur(10px)}.icon-btn span{font-size:9px;letter-spacing:1px;padding:0 6px}.glass{background:rgba(21,41,43,.82);border:1px solid #e5f7e62c;box-shadow:0 8px 30px #13252514;backdrop-filter:blur(15px);border-radius:8px}.hidden{display:none!important}.intro{position:fixed;left:6.2%;top:21%;width:520px;text-shadow:0 2px 30px #153c4440}.intro:before{content:'';position:absolute;inset:-100px -100px -100px -160px;background:radial-gradient(ellipse,#14333d6b,transparent 72%);z-index:-1;pointer-events:none}.edition{display:flex;gap:30px;font-size:9px;letter-spacing:2px;font-weight:700;color:var(--yellow);margin-bottom:23px}.edition span:last-child{opacity:.65}.intro h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(65px,6.8vw,108px);text-transform:uppercase;line-height:.94;letter-spacing:-1.5px;margin:0;font-weight:800}.intro h1 em{font-style:normal;color:var(--yellow)}.intro>p{font-size:14px;line-height:1.75;margin:24px 0 27px;color:#fffced}.intro-actions{display:flex;gap:12px;align-items:center}.primary{background:var(--yellow);border:0;border-radius:5px;padding:17px 22px;color:var(--ink);font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:45px;min-width:180px;transition:background .2s,transform .2s}.primary:hover{background:#ffffa2;transform:translateY(-2px)}.primary span{font-size:24px;line-height:16px}.secondary{background:#1a343549;color:var(--cream);border:1px solid #fff9;padding:16px 20px;border-radius:5px;font-size:12px}.secondary:hover{background:#24444899}.secondary span{margin-left:15px}.intro-note{margin-top:27px;font-size:8px;font-weight:700;letter-spacing:1.7px;display:flex;gap:11px;align-items:center}#postcard{position:fixed;bottom:120px;right:4%;transform:rotate(5deg);color:var(--ink);background:var(--yellow);padding:21px 22px 19px;box-shadow:5px 7px 0 #192f3440;width:218px}#postcard div{font-family:'Barlow Condensed',Impact,sans-serif;font-size:29px;line-height:1;font-weight:800}#postcard small{font-size:7px;letter-spacing:.8px;display:block;border-top:1px solid #17262955;margin-top:13px;padding-top:10px}.postcard-star{position:absolute;right:17px;top:9px;font-size:32px}footer{position:fixed;bottom:26px;left:38px;right:38px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;font-weight:700}footer b{font-size:17px;margin-left:13px}.mission{position:fixed;left:28px;top:110px;padding:21px;width:274px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.7px;color:var(--yellow);display:flex;gap:9px;align-items:center}.mission h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:28px;margin:12px 0 6px;font-weight:700}.mission p{font-size:11px;line-height:1.6;color:#d5dfd6;margin:0}.rescue-count{display:flex;align-items:center;gap:11px;margin:20px 0}.people-icon{font-size:28px;color:var(--yellow)}.rescue-count strong{font-size:36px;font-family:'Barlow Condensed',sans-serif;line-height:1}.rescue-count>span:nth-child(3){font-size:8px;line-height:1.5;letter-spacing:1.2px;color:#c8d3ca}#total{margin-left:auto;font-size:12px;color:#98aaa3}.mission-line{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px}.mission-line #time{font-size:11px;letter-spacing:0}.progress{height:3px;background:#ffffff26;margin-top:9px;border-radius:3px}.progress i{display:block;height:100%;width:0;background:var(--yellow)}.safe-pill{position:fixed;top:112px;left:50%;transform:translateX(-50%);background:#203e3f99;border:1px solid #aff6d957;border-radius:30px;padding:10px 17px;font-size:8px;font-weight:700;letter-spacing:1.3px;backdrop-filter:blur(8px)}.safe-pill span{color:var(--teal);padding-right:6px}.safe-pill.danger{color:#fff;background:#774457bb;border-color:#ffa5bc}.map-panel{position:fixed;left:28px;bottom:28px;width:229px;padding:13px}.map-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.9px;margin-bottom:8px}.map-label b{color:var(--yellow)}#minimap{width:100%;height:156px;border-radius:3px;background:#355255}.map-legend{display:flex;gap:15px;font-size:6px;letter-spacing:.8px;margin-top:10px}.dot{width:5px;height:5px;border-radius:50%;display:inline-block;margin-right:4px}.pink{background:var(--pink)}.teal{background:var(--teal)}.health{display:flex;align-items:center;gap:8px;font-size:11px;margin-top:13px}.health>span{color:var(--teal)}.health>div{height:4px;background:#ffffff20;flex:1}.health i{display:block;width:100%;height:100%;background:var(--teal)}.health b{font-size:8px}.bottom-center{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);text-align:center}.controls-strip{display:flex;align-items:center;gap:16px;background:#203538a3;backdrop-filter:blur(8px);border:1px solid #fff3;border-radius:6px;padding:11px 13px;white-space:nowrap}.controls-strip>span{display:flex;align-items:center;gap:6px;font-size:7px;letter-spacing:.5px}kbd{font:700 9px 'DM Sans',sans-serif;display:inline-block;background:#fffbed17;border:1px solid #fffbed6b;border-bottom-width:2px;border-radius:3px;padding:4px 5px;white-space:nowrap;color:var(--cream)}.controls-strip button{border:1px solid #fff8;border-radius:100%;background:none;color:white;font-size:9px;width:17px;height:17px;padding:0}.interaction{display:inline-flex;align-items:center;gap:10px;margin-bottom:19px;border-radius:6px;background:var(--cream);color:var(--ink);padding:10px 16px;font-size:11px;box-shadow:0 4px 15px #0002}.interaction kbd{background:var(--ink);color:var(--yellow);padding:5px 8px}.interaction.inactive{opacity:0;pointer-events:none}#toast{font-size:12px;font-weight:700;margin-bottom:14px;color:var(--yellow);text-shadow:0 2px 5px #172629;min-height:16px}.speed-panel{position:fixed;right:33px;bottom:32px;text-align:right}.speed-panel>span{font-size:8px;letter-spacing:1.4px;color:var(--yellow)}.speed-panel>div{display:flex;align-items:baseline;justify-content:flex-end;gap:8px}.speed-panel strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:61px;font-weight:700}.speed-panel div span{font-size:9px}.speed-panel small{font-size:8px;letter-spacing:1.3px}dialog{border:1px solid #fcffdd33;border-radius:12px;background:#20383b;color:var(--cream);padding:0;max-width:540px;width:calc(100% - 32px);box-shadow:0 25px 100px #0005;max-height:90vh}dialog::backdrop{background:#142e377d;backdrop-filter:blur(8px)}dialog img{width:100%;height:200px;object-fit:cover}.dialog-body{padding:28px}dialog h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:42px;line-height:1;margin:16px 0}dialog p{font-size:13px;line-height:1.7;color:#d0ded5}.close{position:absolute;right:12px;top:12px;width:30px;height:30px;border-radius:50%;background:var(--ink);border:1px solid #fff6;color:white;font-size:22px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.guide-grid p{display:flex;flex-direction:column;align-items:flex-start;gap:7px;font-size:11px}.guide-tip{font-size:11px;line-height:1.7;background:#7ce3c614;border:1px solid #7ce3c633;padding:12px;margin:12px 0 21px}.dialog-body>.primary{width:100%}.dialog-body>.secondary{width:100%;margin-top:12px}.end-score{display:flex;gap:18px;align-items:center;color:var(--yellow)}.end-score strong{font-family:'Barlow Condensed',sans-serif;font-size:90px}.end-score span{font-size:10px;line-height:1.6;letter-spacing:1.5px}#touch-controls{display:none}#fatal{position:fixed;inset:0;background:var(--ink);padding:20%;z-index:100}body.playing #intro,body.playing #intro-footer,body.playing #postcard{display:none}body:not(.playing) #pause{display:none}
@media(max-width:900px){header{padding:22px}.location{display:none}.intro{left:6%;top:19%;width:70%}.intro h1{font-size:83px}#postcard{right:4%;bottom:80px;transform:rotate(5deg) scale(.8);transform-origin:bottom right}.mission{width:235px;left:20px;top:90px;padding:16px}.safe-pill{top:92px;left:auto;right:20px;transform:none}.map-panel{width:180px;left:20px;bottom:20px}#minimap{height:115px}.controls-strip{gap:8px}.controls-strip>span{font-size:6px}.bottom-center{bottom:22px;left:54%}.speed-panel{right:20px}.brand{font-size:33px}}
@media(max-width:600px){header{padding:19px}.brand{font-size:30px}.brand i{font-size:27px}.intro{top:19%;width:90%;left:6%}.edition{font-size:7px;gap:18px}.intro h1{font-size:75px}.intro>p{font-size:12px}.intro-actions{gap:8px}.primary{min-width:155px;padding:15px 18px}.secondary{padding:14px}#postcard{display:none}footer{left:20px;right:20px;font-size:6px}footer span:last-child{display:none}.mission{top:80px;left:15px;width:202px;padding:13px}.mission h2{font-size:23px}.mission p{font-size:10px}.mission .eyebrow{font-size:7px}.rescue-count{margin:13px 0}.safe-pill{top:280px;left:15px;right:auto;font-size:7px;padding:8px 12px}.map-panel{width:137px;bottom:156px;left:15px;padding:9px}.map-label{font-size:6px}#minimap{height:90px}.map-legend{font-size:5px;gap:8px}.health{margin-top:8px}.speed-panel{bottom:160px;right:15px}.speed-panel strong{font-size:43px}.bottom-center{bottom:105px;left:55%;width:85%}.controls-strip{display:none}.interaction{font-size:10px;max-width:100%;margin-bottom:8px}#toast{font-size:10px}.guide-grid{gap:0 14px}dialog img{height:145px}.dialog-body{padding:21px}dialog h2{font-size:35px}body.playing #touch-controls{position:fixed;bottom:20px;left:18px;right:18px;display:flex;justify-content:space-between;pointer-events:none}.dpad{display:grid;grid-template-columns:repeat(3,42px);gap:5px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.touch-actions{display:flex;align-items:end;gap:6px}#touch-controls button{pointer-events:auto;touch-action:none;border:1px solid #fff7;background:#1e393cbb;color:var(--cream);border-radius:7px;padding:12px;font-size:10px}.touch-actions button{padding:15px 10px}.dpad button{height:40px}}

.trick-panel{position:fixed;right:28px;top:165px;width:260px;padding:16px}.trick-panel .eyebrow{justify-content:space-between}.trick-panel .eyebrow b{font-size:18px}.trick-panel>strong{display:block;font-family:'Barlow Condensed',sans-serif;font-size:23px;margin-top:12px;line-height:1.1}.trick-panel p{font-size:10px;color:#d5dfd6;margin-bottom:0}.balance-track{position:relative;height:8px;background:linear-gradient(90deg,#ee7892,#f4e26e 30%,#7ce3c6 45%,#7ce3c6 55%,#f4e26e 70%,#ee7892);border-radius:4px;margin-top:8px}.balance-track i{position:absolute;top:-4px;width:3px;height:16px;background:white;left:50%}#balance-panel{margin-top:14px}#balance-panel small{font-size:8px}.trick-guide{border-top:1px solid #ffffff22;padding-top:8px}.trick-guide p,.trick-guide label{font-size:11px;line-height:1.7}.trick-guide input{accent-color:var(--yellow)}.intro-actions{flex-wrap:wrap}.touch-actions{max-width:205px;flex-wrap:wrap;justify-content:flex-end;align-content:flex-end}@media(max-width:900px){.trick-panel{right:20px;top:145px;width:215px}}@media(max-width:600px){.trick-panel{right:12px;top:82px;width:137px;padding:10px}.trick-panel>strong{font-size:18px}.trick-panel .eyebrow{font-size:7px;letter-spacing:.5px}.trick-panel p{font-size:8px}.trick-panel .eyebrow b{font-size:13px}.touch-actions{max-width:190px;gap:4px}#touch-controls .touch-actions button{font-size:8px;padding:10px 8px}.intro-actions .secondary{font-size:11px;padding:12px}.intro-actions{gap:8px}.intro-note{margin-top:18px}}
/* Character roster: portraits are rendered from the actual playable models. */
.character-entry{display:flex;align-items:center;gap:11px;max-width:310px;width:100%;margin:0 0 16px;padding:5px 12px 5px 5px;border:1px solid #fff6;border-radius:7px;background:#173537b8;color:var(--cream);text-align:left;backdrop-filter:blur(12px)}.character-entry img{width:48px;height:54px;object-fit:cover;object-position:center 30%;background:#efd18b;border-radius:4px}.character-entry span{display:grid;gap:3px}.character-entry small{font-size:8px;letter-spacing:1.6px;color:var(--yellow)}.character-entry strong{font-size:13px}.character-entry>b{font-size:8px;letter-spacing:1px;margin-left:auto}.character-entry:hover{border-color:var(--yellow)}
#character-dialog{width:min(920px,calc(100vw - 32px));max-width:920px;max-height:calc(100dvh - 32px);padding:0;background:#183033;border:1px solid #d8f4d84d;border-radius:14px;color:var(--cream);overflow:auto;box-shadow:0 30px 120px #00171988}#character-dialog::backdrop{background:#09292cd6;backdrop-filter:blur(12px)}.character-dialog-top{display:flex;justify-content:space-between;align-items:start;padding:26px 28px 20px}.character-dialog-top h2{font-size:48px;line-height:1;margin:10px 0 8px}.character-dialog-top p{margin:0;color:#b7ccbf;font-size:12px}.character-close{border:1px solid #fff4;background:#ffffff08;border-radius:50%;color:var(--cream);font-size:26px;line-height:1;width:36px;height:36px}.character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 28px}.character-card{position:relative;border:2px solid #ffffff1f;border-radius:9px;background:#203c3e;overflow:hidden;padding:0;text-align:left;color:var(--cream);min-width:0;transition:border-color .15s,transform .15s}.character-card:not(:disabled):hover{transform:translateY(-3px);border-color:#f4f36b88}.character-card.selected{border-color:var(--yellow);box-shadow:0 0 0 1px var(--yellow)}.character-card.loading{border-color:var(--teal)}.character-number{position:absolute;left:10px;top:10px;z-index:1;font-size:10px;font-weight:800;letter-spacing:1px;background:#183033d9;padding:5px 7px;border-radius:4px}.character-check{display:none;position:absolute;right:9px;top:9px;z-index:1;background:var(--yellow);color:var(--ink);border-radius:50%;width:24px;height:24px;text-align:center;line-height:24px;font-weight:bold}.character-card.selected .character-check{display:block}.character-art{height:162px;background:radial-gradient(ellipse at 50% 60%,#ffffff66,transparent 70%),var(--card-color);overflow:hidden}#character-dialog .character-art img{width:100%;height:100%;object-fit:contain;display:block;transform:scale(1.12);object-position:center 45%}.character-caption{display:grid;gap:4px;padding:12px}.character-caption strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:21px;line-height:1}.character-caption small{font-size:9px;letter-spacing:.3px;color:#bbd0c5}.character-card.selected .character-caption small{color:var(--yellow)}.character-card:disabled{cursor:default;border-style:dashed;background:repeating-linear-gradient(135deg,#ffffff02 0 1px,transparent 1px 12px),#1b3437;color:#95b1ac}.character-placeholder{height:162px;display:grid;place-items:center;font-size:62px;color:#6e938148}.character-card:disabled .character-caption small{color:#8eaba3}.character-dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px}.character-dialog-bottom p{font-size:12px;color:#c8d9ca;margin:0;max-width:470px}.character-dialog-bottom .primary{min-width:170px}.character-card.loading .character-caption small:after{content:' · Loading…'}#pause-dialog [data-character-name]{font-size:10px;color:var(--yellow);margin-left:12px}
@media(max-width:600px){.character-entry{max-width:280px;margin-bottom:13px}.character-entry img{height:42px;width:42px}.intro{top:15%}.intro h1{font-size:66px}.intro>p{margin:17px 0}.intro-note{letter-spacing:1px}#character-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.character-dialog-top{padding:20px 16px 16px}.character-dialog-top h2{font-size:38px}.character-dialog-top .eyebrow{font-size:8px}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 16px;gap:10px}.character-art,.character-placeholder{height:138px}.character-caption{padding:10px}.character-caption strong{font-size:20px}.character-dialog-bottom{padding:16px;position:sticky;bottom:0;background:#183033f5;backdrop-filter:blur(10px);gap:12px}.character-dialog-bottom .primary{min-width:120px;padding:13px;gap:20px}.character-dialog-bottom p{font-size:10px}.character-dialog-top p{font-size:11px}}
/* Party lobby */
.intro-actions{flex-wrap:wrap}#party-dialog{width:min(480px,94vw);max-height:90dvh;overflow:auto}#party-dialog .dialog-body{position:relative}#party-dialog label{display:block;font-size:12px;letter-spacing:.06em;margin:18px 0 12px}#party-dialog input{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #89aaa2;border-radius:8px;color:#244b50;background:#fff9e9;font:inherit;font-size:16px;letter-spacing:normal}#party-dialog button{margin-top:8px}#party-dialog [hidden]{display:none!important}#party-code{text-transform:uppercase}.party-code-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.party-code-row strong{font-size:24px;letter-spacing:.12em}#party-players{list-style:none;padding:0;margin:18px 0}#party-players li{padding:8px 0;border-bottom:1px solid #abc4bb}#party-status{font-size:13px;min-height:32px}#party-toggle{font-size:11px;white-space:nowrap;padding:10px}#party-dialog small{display:block;line-height:1.5;opacity:.75}@media(max-width:600px){#party-toggle{max-width:145px;overflow:hidden;text-overflow:ellipsis}.intro-actions #intro-party{padding:10px 16px;font-size:12px}}
/* Mobile uses the same world with smaller assets and controls in either orientation. */
.graphics-choice{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:16px;font-size:9px;letter-spacing:.7px;color:#e5f1df}.graphics-choice a{color:var(--yellow)}
#graphics-recovery{position:fixed;inset:0;z-index:100;background:#172629f5;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center}#graphics-recovery .primary{margin-top:16px;text-decoration:none}
.mobile-mode .glass,.mobile-mode .icon-btn,.mobile-mode .safe-pill,.mobile-mode .character-entry{backdrop-filter:none}
.mobile-mode header{padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));gap:8px}.mobile-mode .brand{font-size:25px}.mobile-mode .brand i,.mobile-mode .location,.mobile-mode #sound-label{display:none}.mobile-mode .header-actions{gap:6px}.mobile-mode #party-toggle{max-width:110px;font-size:10px}.mobile-mode .controls-strip{display:none}
.mobile-mode body.playing #touch-controls{position:fixed;z-index:20;bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;user-select:none;-webkit-user-select:none}
.mobile-mode .dpad{display:grid;grid-template-columns:repeat(3,44px);gap:4px}.mobile-mode .dpad button:first-child{grid-column:2}.mobile-mode .dpad button:nth-child(2){grid-column:1}.mobile-mode .touch-actions{display:flex;max-width:182px;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.mobile-mode #touch-controls button{pointer-events:auto;touch-action:none;min-height:44px;border:1px solid #fff7;background:#1e393ce8;color:var(--cream);border-radius:7px;padding:10px 8px;font-size:9px}.mobile-mode .dpad button{font-size:18px!important}
.mobile-mode .intro{max-height:calc(100dvh - 130px);overflow:auto;padding-bottom:10px}.mobile-mode .bottom-center{pointer-events:none}.mobile-mode .bottom-center button{pointer-events:auto}
@media(orientation:landscape) and (max-height:600px){
 .mobile-mode .intro{top:58px;left:max(24px,env(safe-area-inset-left));bottom:12px;width:60%;max-height:none}.mobile-mode .edition{margin-bottom:8px}.mobile-mode .intro h1{font-size:45px}.mobile-mode .intro>p{font-size:11px;margin:10px 0}.mobile-mode .character-entry{max-width:240px;margin:8px 0}.mobile-mode .character-entry img{height:32px;width:32px}.mobile-mode .intro-note,.mobile-mode #intro-footer,.mobile-mode #postcard{display:none}.mobile-mode .primary,.mobile-mode .secondary{padding:11px 14px}.mobile-mode .intro-actions{gap:6px}
 .mobile-mode .mission{top:58px;left:max(12px,env(safe-area-inset-left));padding:10px;width:210px}.mobile-mode .mission h2,.mobile-mode .mission>.eyebrow{display:none}.mobile-mode .mission p{font-size:9px;line-height:1.3}.mobile-mode .rescue-count{margin:6px 0}.mobile-mode .rescue-count strong{font-size:25px}.mobile-mode .rescue-count .people-icon{font-size:18px}.mobile-mode .mission-line{font-size:7px}
 .mobile-mode .safe-pill{top:58px;left:50%;right:auto;transform:translateX(-50%);font-size:7px;padding:7px 10px}.mobile-mode .trick-panel{right:max(12px,env(safe-area-inset-right));top:58px;width:170px;padding:9px}.mobile-mode .trick-panel>strong{font-size:17px;margin-top:6px}.mobile-mode .trick-panel p{font-size:8px;margin:5px 0}
 .mobile-mode .map-panel{left:auto;right:205px;bottom:12px;width:112px;padding:6px}.mobile-mode #minimap{height:64px}.mobile-mode .map-label,.mobile-mode .map-legend{display:none}.mobile-mode .health{margin-top:4px}.mobile-mode .speed-panel{right:max(12px,env(safe-area-inset-right));bottom:170px}.mobile-mode .speed-panel strong{font-size:30px}.mobile-mode .bottom-center{bottom:12px;left:40%;width:220px}.mobile-mode #toast{font-size:10px}.mobile-mode .interaction{font-size:9px;margin-bottom:4px;padding:7px 9px}
}
.mobile-mode .graphics-choice a{display:none}
@media(orientation:portrait) and (max-width:600px){.mobile-mode .safe-pill{transform:none;top:300px;left:15px}.mobile-mode .map-panel{bottom:172px}.mobile-mode .bottom-center{bottom:165px;left:50%;width:85%}}
/* Minimal mobile driving/skating controls. The action list replaces the key grid. */
#touch-controls #move-stick{position:relative;width:116px;height:116px;flex:0 0 116px;padding:0;border-radius:50%;background:#16373a38;border:1px solid #fff5;box-shadow:inset 0 0 0 17px #ffffff08;touch-action:none}
#move-stick span{position:absolute;left:36px;top:36px;width:42px;height:42px;border-radius:50%;background:#fffbedb3;border:1px solid #fff9;pointer-events:none;box-shadow:0 3px 12px #0002}#move-stick.active{border-color:var(--yellow)!important}#move-stick.active span{background:var(--yellow)}
.mobile-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none}
#touch-action{pointer-events:auto;appearance:auto;width:116px;height:38px;border:1px solid #ffffff65;border-radius:20px;padding:0 10px;background:#17373bd9;color:var(--cream);font:500 12px 'DM Sans',sans-serif;touch-action:manipulation}#touch-action option,#touch-action optgroup{background:#20383b;color:var(--cream)}
#touch-controls #touch-jump{width:66px;height:66px;min-height:66px;border-radius:50%;padding:16px;background:#f4f36bd9;border:1px solid #fbffc7;color:var(--ink);touch-action:none}#touch-jump svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}#touch-jump.active{background:#fffec5!important;transform:scale(.94)}
.mobile-mode body.playing header{left:auto;padding:10px max(12px,env(safe-area-inset-right)) 0 0}.mobile-mode body.playing header .brand,.mobile-mode body.playing header .location,.mobile-mode body.playing #sound{display:none}.mobile-mode body.playing #party-toggle{font-size:0;width:38px;min-width:38px;padding:0}.mobile-mode body.playing #party-toggle:after{content:'♧';font-size:20px}
.mobile-mode .mission{display:flex;align-items:center;gap:12px;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));width:auto;padding:8px 10px;background:#17373bb3;border-radius:24px;pointer-events:none}.mobile-mode .mission>.eyebrow,.mobile-mode .mission h2,.mobile-mode .mission #objective,.mobile-mode .mission .progress,.mobile-mode #phase,.mobile-mode .rescue-count>span:nth-child(3){display:none}.mobile-mode .rescue-count{margin:0;gap:5px}.mobile-mode .rescue-count .people-icon{font-size:17px}.mobile-mode .rescue-count strong{font-size:22px}.mobile-mode #total{font-size:9px;margin-left:0}.mobile-mode #time{font-size:12px}.mobile-mode .mission-line{display:block}
.mobile-mode .trick-panel,.mobile-mode .speed-panel,.mobile-mode .bottom-center,.mobile-mode .controls-strip{display:none}
.mobile-mode .map-panel{top:64px;bottom:auto;left:max(12px,env(safe-area-inset-left));right:auto;width:90px;padding:5px;border-radius:8px;background:#17373b99;pointer-events:none}.mobile-mode #minimap{height:64px;display:block}.mobile-mode .map-label,.mobile-mode .map-legend{display:none}.mobile-mode .health{margin-top:5px;gap:4px;font-size:9px}.mobile-mode .health b{font-size:7px}
.mobile-mode .safe-pill{top:62px;right:max(12px,env(safe-area-inset-right));left:auto;transform:none;padding:6px 9px;font-size:8px;letter-spacing:.6px;background:#17373b99;pointer-events:none}
.mobile-mode body.playing #touch-controls{bottom:max(20px,env(safe-area-inset-bottom));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));align-items:flex-end}
@media(orientation:landscape) and (max-height:450px){#touch-controls #move-stick{width:104px;height:104px;flex-basis:104px}#move-stick span{left:30px;top:30px}.mobile-mode .map-panel{width:78px}.mobile-mode #minimap{height:50px}}
.mobile-button-row{display:flex;align-items:center;gap:12px;pointer-events:none}
#touch-controls #touch-interact{width:66px;height:66px;min-height:66px;border-radius:50%;padding:16px;background:#183b3fc9;border:1px solid #c4f5de8c;color:#d3e6dc;opacity:.65;touch-action:manipulation}
#touch-controls #touch-interact.ready{background:#7ce3c6e8;color:#173a36;border-color:#b2ffe4;opacity:1}#touch-interact:active{transform:scale(.94)}
#touch-interact svg{display:none;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#touch-interact[data-kind="none"] .interact-hand,#touch-interact[data-kind="grab"] .interact-hand,#touch-interact[data-kind="release"] .interact-hand,#touch-interact[data-kind="drive"] .interact-car,#touch-interact[data-kind="exit"] .interact-exit{display:block}


/* The supermarket has its own compact list, with no extra touch buttons. */
.store-panel{position:fixed;right:28px;top:112px;width:260px;padding:17px;background:#fff0d5f2;color:#254e50;border:1px solid #fff0d5;border-radius:10px;box-shadow:0 8px 26px #17373b26;pointer-events:none}.shop-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.shop-heading>span{font-size:16px;font-weight:900;letter-spacing:-.5px}.shop-heading small{display:block;font-size:8px;letter-spacing:1.5px;margin-top:4px;font-weight:700}.shop-heading strong{font-size:20px;white-space:nowrap;color:#a04f72}#shop-list{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:15px}#shop-list span{text-align:center;font-size:8px;line-height:1.4}#shop-list b{display:block;background:#254e5010;border:1px solid #254e5029;border-radius:5px;padding:7px 0;margin-bottom:4px;font-size:13px}#shop-list .packed b{background:#a3c8b7;color:#254e50;border-color:#a3c8b7}#shop-list .packed{color:#5d7c70}#shop-next{font-size:11px;line-height:1.45;font-weight:700;margin:13px 0 6px}#shop-reward{font-size:9px;color:#7c6367}.in-store .trick-panel{display:none}.mobile-mode .store-panel{top:64px;left:max(12px,env(safe-area-inset-left));right:auto;width:190px;padding:10px;border-radius:8px}.mobile-mode .shop-heading>span{font-size:12px}.mobile-mode .shop-heading small{font-size:6px;letter-spacing:1px}.mobile-mode .shop-heading strong{font-size:15px}.mobile-mode #shop-list{margin-top:8px;gap:3px}.mobile-mode #shop-list span{font-size:6px}.mobile-mode #shop-list b{padding:3px 0;font-size:10px}.mobile-mode #shop-next{font-size:9px;margin:7px 0 0}.mobile-mode #shop-reward{display:none}.mobile-mode .in-store .map-panel{top:auto;bottom:150px;width:78px}.mobile-mode .in-store #minimap{display:none}

#shark-warning{position:fixed;top:156px;left:50%;transform:translateX(-50%);padding:8px 12px;border-radius:20px;background:#633a46eb;color:#fff2d8;border:1px solid #f2a4b5;font-size:10px;font-weight:800;letter-spacing:.4px;pointer-events:none;z-index:12;white-space:nowrap}#shark-flash{position:fixed;inset:0;pointer-events:none;z-index:11;opacity:0;box-shadow:inset 0 0 100px 35px #df5679}.mobile-mode #shark-warning{top:72px;font-size:8px;max-width:94vw;white-space:normal;text-align:center;padding:6px 10px}
/* Compact, contextual midway passport; the existing interaction control plays. */
#carnival-panel{position:absolute;left:24px;top:126px;width:238px;padding:14px 16px;background:#244b50ee;color:#fff0cf;border:1px solid #f3d47780;border-radius:14px;box-shadow:0 8px 25px #17363925;pointer-events:none;font-size:12px;line-height:1.45}
#carnival-panel small{display:block;color:#f3d477;font-size:9px;letter-spacing:2px}#carnival-panel strong{display:block;font-size:19px;margin:3px 0 8px}.carnival-stamps{font-size:10px;line-height:1.8;color:#aee3d1}.carnival-tickets{font-weight:800;margin-top:7px}#carnival-panel p{margin:6px 0}#carnival-panel em{font-style:normal;font-size:9px;color:#eab4bc}.carnival-meter{position:relative;height:15px;border-radius:8px;background:#dc8ca0;margin:12px 3px}.carnival-meter b{position:absolute;left:40%;width:20%;height:100%;background:#b3e8b9}.carnival-meter i{position:absolute;top:-3px;bottom:-3px;width:4px;background:#fff6df;z-index:1;transform:translateX(-2px);border-radius:2px}
@media(pointer:coarse),(max-width:760px){#carnival-panel{left:12px;top:88px;width:178px;padding:8px 10px;font-size:10px}#carnival-panel strong{font-size:14px;margin:0 0 3px}#carnival-panel small{font-size:8px}.carnival-stamps{font-size:8px}#carnival-panel em{font-size:8px}}
@media(pointer:coarse),(max-width:760px){#carnival-panel{left:auto;right:12px;top:100px;width:158px;padding:7px 9px;border-radius:10px}#carnival-panel strong,#carnival-panel .carnival-stamps,#carnival-panel em{display:none}#carnival-panel small{font-size:8px;letter-spacing:1px}.carnival-tickets{margin-top:3px;font-size:10px}#carnival-panel p{font-size:9px;margin:4px 0}.carnival-meter{margin:8px 2px;height:12px}}
body.ending #hud,body.ending #touch-controls,body.ending header,body.ending footer,body.ending #toast,body.ending #shark-warning,body.ending #shark-flash,body.ending #storm-tint{display:none!important}
#ending{position:fixed;inset:auto 16px max(16px,env(safe-area-inset-bottom));margin:0 auto;width:calc(100% - 32px);max-width:710px;max-height:none;padding:12px 16px;background:#20383be8;border:1px solid #e5f7e640;box-shadow:0 4px 20px #0002;border-radius:12px;z-index:30}
#ending[open]{display:flex;align-items:center;justify-content:space-between;gap:18px}#ending::backdrop{background:transparent;backdrop-filter:none}.ending-summary{display:flex;flex-direction:column;gap:4px;min-width:0}.ending-summary>strong{font-size:12px;letter-spacing:.8px;color:#f4f36b}.ending-summary>span{font-size:11px;color:#dfebe4}.ending-summary small{font-size:10px;color:#a9c4bd}#ending .primary{min-width:126px;width:auto;padding:12px 14px;gap:16px;white-space:nowrap;font-size:12px}
@media(max-width:600px){#ending{inset:auto 8px max(8px,env(safe-area-inset-bottom));width:calc(100% - 16px);padding:9px 11px;gap:10px}#ending .primary{min-width:100px;padding:10px;font-size:11px}.ending-summary>strong{font-size:10px}.ending-summary>span{font-size:9px}.ending-summary small{font-size:9px}}

/* Cabinet games own their small canvas and controls only while being played. */
.arcade-game{position:fixed;z-index:80;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,94vw);max-height:88dvh;overflow:auto;background:#253149;color:#fff0cf;border:3px solid #e58ead;border-radius:18px;box-shadow:0 20px 80px #15243999;padding:14px;font-family:inherit}.arcade-game .arcade-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.arcade-game small{font-size:10px;letter-spacing:2px;color:#8ed4c8}.arcade-game h2{font-size:24px;margin:4px 0 10px}.arcade-game button{cursor:pointer;color:#fff0cf;background:#354454;border:1px solid #829496;border-radius:8px;padding:9px 14px;font:inherit;touch-action:none}.arcade-game canvas{display:block;width:100%;max-height:48dvh;object-fit:contain;border-radius:8px}.arcade-score{padding:8px 0;color:#f2d879;font-size:13px}.arcade-pad{display:flex;gap:8px;margin-top:9px}.arcade-pad button{flex:1;border-bottom:4px solid var(--lane);font-weight:900;font-size:20px;min-height:48px}.arcade-game .arcade-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;margin-top:9px}.arcade-game .arcade-footer button{font-size:11px;padding:6px}.arcade-warning{font-size:11px;color:#f0c1cf;text-align:center;margin:9px 0 0}body.arcade-playing #touch-controls,body.arcade-playing #interaction{visibility:hidden}@media(max-width:600px){.arcade-game{padding:10px;border-radius:12px}.arcade-game h2{font-size:20px}.arcade-game canvas{max-height:42dvh}.arcade-game .arcade-footer>span{display:none}}
.emote-buttons{position:absolute;right:24px;top:104px;display:flex;gap:6px;pointer-events:auto}.emote-buttons button{border:1px solid #ffffff88;background:#fff5d5e8;border-radius:20px;padding:8px 12px;color:#354454;cursor:pointer;font-family:inherit;font-weight:600;font-size:12px;box-shadow:0 3px 14px #203b4320}.emote-buttons button[aria-pressed=true]{background:#f4ee7b;transform:translateY(-2px)}body.arcade-playing .emote-buttons,body.ending .emote-buttons{display:none}@media(max-width:760px){.emote-buttons{right:12px;top:102px}.emote-buttons button{padding:7px 10px;font-size:16px}.emote-buttons span{display:none}}
/* Collected city songs: a compact player that leaves the world visible. */
#playlist-panel[hidden],#song-unlocked[hidden]{display:none!important}#playlist-panel{position:fixed;z-index:45;right:28px;top:80px;width:min(390px,calc(100vw - 24px));max-height:calc(100dvh - 110px);overflow:auto;padding:21px;background:#183336f5;color:var(--cream);border:1px solid #7ce3c65c;border-radius:12px;box-shadow:0 20px 70px #102c3280}#playlist-panel button,#song-unlocked button{min-height:38px;border:1px solid #fff4;border-radius:6px;background:#ffffff0c;color:var(--cream);padding:7px 10px;font-size:11px}#playlist-panel button:disabled{opacity:.45;cursor:default}.playlist-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.playlist-heading small,#song-unlocked small{font-size:8px;letter-spacing:1.6px;color:var(--yellow)}.playlist-heading h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:34px;margin:5px 0 0}.playlist-heading button{font-size:22px!important}.playlist-description,.playlist-storage{font-size:11px;color:#bbd5cf;line-height:1.5}.playlist-transport{display:flex;gap:8px;margin-top:18px}.playlist-transport [data-toggle]{background:var(--yellow)!important;color:var(--ink)!important;font-weight:700;flex:1}.playlist-now{min-height:30px;font-size:11px;line-height:1.5;color:var(--teal)}.playlist-song{display:grid;grid-template-columns:24px 1fr auto auto;align-items:center;gap:8px;padding:15px 0;border-top:1px solid #ffffff20}.playlist-song>div{min-width:0}.playlist-song strong{font-size:12px;line-height:1.4;display:block}.playlist-song small{display:block;font-size:10px;line-height:1.4;color:#b1c6c0;margin-top:5px}.song-number{color:var(--yellow);font-size:16px}.playlist-song.locked .song-number{color:#77918b}.playlist-song.selected strong{color:var(--yellow)}.playlist-song.locked strong{color:#b1c6c0}.playlist-song [hidden]{display:none}.playlist-storage{margin-bottom:0;border-top:1px solid #ffffff20;padding-top:14px;font-size:9px}#song-unlocked{position:fixed;z-index:44;top:85px;left:50%;transform:translateX(-50%);width:min(450px,calc(100vw - 24px));display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:9px;background:#183336f5;border:1px solid var(--yellow);box-shadow:0 8px 30px #1235}#song-unlocked>div{flex:1;min-width:0}#song-unlocked strong{display:block;margin-top:4px;font-size:12px;line-height:1.4}#song-unlocked [data-add]{color:var(--yellow);white-space:nowrap}#song-unlocked [data-dismiss]{border:0;padding:4px;font-size:20px}#playlist-toggle{white-space:nowrap}
@media(max-width:600px){#playlist-toggle span{display:none}#playlist-panel{right:12px;top:61px;padding:16px;max-height:calc(100dvh - 215px)}#song-unlocked{top:62px;padding:10px;gap:8px}#song-unlocked strong{font-size:10px}#song-unlocked button{font-size:10px;min-height:40px}.playlist-song{gap:6px}.playlist-song button{padding:7px!important;min-height:42px!important}.playlist-heading h2{font-size:30px}}.mobile-mode body.playing #playlist-toggle{display:none}

.sushi-hud{position:fixed;right:24px;top:110px;display:flex;flex-direction:column;gap:7px;background:#f9eddfef;color:#365856;border:1px solid #e7bdc9;border-radius:15px;padding:15px 20px;max-width:300px;box-shadow:0 6px 25px #284c4b20;pointer-events:none}.sushi-hud strong{font-size:13px;letter-spacing:.16em}.sushi-hud span{font-size:19px;font-weight:800}.sushi-hud small{font-size:12px;line-height:1.5}.sushi-hud.tagged{background:#f3adbd}.sushi-hud.hidden{display:none}@media(max-width:800px){.sushi-hud{top:72px;right:12px;padding:8px 11px;max-width:205px;gap:3px}.sushi-hud strong{font-size:10px}.sushi-hud span{font-size:14px}.sushi-hud small{font-size:10px}}

.in-sushi .trick-panel,.in-sushi .emote-buttons{display:none}

.mobile-mode .sushi-hud{top:92px;right:max(12px,env(safe-area-inset-right));padding:8px 11px;max-width:190px;gap:3px;border-radius:10px}.mobile-mode .sushi-hud strong{font-size:10px}.mobile-mode .sushi-hud span{font-size:14px}.mobile-mode .sushi-hud small{font-size:10px;line-height:1.3}

#start-area-toggle[hidden]{display:none}#start-area-toggle{margin-top:10px;padding:9px 14px;font-size:12px}#start-area-dialog{width:min(480px,92vw);max-height:90dvh;overflow:auto}#start-area-dialog label{display:block;font-weight:700;margin:20px 0 8px}#start-area-select{width:100%;padding:14px;border:1px solid #89aaa2;border-radius:8px;background:#fff9e9;color:#244b50;font:inherit;font-size:16px}#start-area-description{min-height:1.5em}#start-area-dialog small{display:block;line-height:1.5;opacity:.75}.start-area-actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}
.tsunami-underwater{position:fixed;inset:0;pointer-events:none;background:linear-gradient(#a6efdf55,#136a96bb);opacity:0;transition:opacity .5s;z-index:3}.sushi-hud.evacuate{background:#f8d9b7f5;border-color:#d18170}.sushi-hud.evacuate strong{color:#ac4c49}
/* Compact thrift basket. */
#shop-list:empty{display:none}#shop-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#shop-return{pointer-events:auto;margin-top:9px;padding:7px 10px;border:1px solid #a3c8b7;border-radius:7px;background:#fff0d5;color:#254e50;font:inherit;font-size:11px;cursor:pointer}#shop-return:disabled{opacity:.45;cursor:default}#shop-wallet-note{display:block;margin-top:7px;font-size:9px;line-height:1.35;opacity:.75}.mobile-mode #shop-list{display:none}.mobile-mode #shop-wallet-note{font-size:8px}

.store-panel{top:160px}#shop-list{grid-template-columns:1fr;gap:4px}#shop-list span{font-size:10px;text-align:left}.mobile-mode #shop-reward{display:block;font-size:9px;margin-top:5px}.mobile-mode #shop-return{margin-top:5px;padding:5px 7px}.mobile-mode #shop-wallet-note{font-size:8px}

#inventory-panel[hidden],#item-card[hidden]{display:none!important}#inventory-panel{position:fixed;z-index:48;right:28px;top:80px;width:min(360px,calc(100vw - 24px));max-height:65dvh;overflow:auto;padding:20px;background:#fff0d5f7;color:#254e50;border:1px solid #a3c8b7;border-radius:15px;box-shadow:0 12px 35px #17373b45}.inventory-top{display:flex;justify-content:space-between;align-items:flex-start}.inventory-top h2{font-size:27px;margin:4px 0}.inventory-top small{font-size:9px;letter-spacing:2px}.inventory-top p{font-size:12px;margin:8px 0 14px}#inventory-close,#item-close{border:0;background:transparent;color:#254e50;font-size:24px;min-width:36px;min-height:36px}.inventory-item{width:100%;text-align:left;display:flex;align-items:center;gap:12px;padding:12px;margin:7px 0;border:1px solid #a3c8b7;border-radius:9px;background:#fffbed;color:#254e50}.inventory-item[aria-pressed=true]{background:#b6dfc8;border-color:#254e50}.inventory-item:disabled{opacity:.72;cursor:default}.inventory-item strong,.inventory-item small{display:block}.inventory-item strong{font-size:13px}.inventory-item small{font-size:11px;margin-top:5px}.inventory-symbol{font-size:26px}.inventory-empty,.inventory-foot{font-size:11px;line-height:1.5}.inventory-foot{opacity:.7}#item-card{position:fixed;z-index:46;left:50%;bottom:155px;transform:translateX(-50%);width:300px;max-width:calc(100vw - 24px);padding:16px 18px;background:#fff0d5f7;color:#254e50;border:1px solid #a3c8b7;border-radius:12px;box-shadow:0 8px 25px #17373b40}#item-close{position:absolute;right:3px;top:1px}#item-name{display:block;font-size:15px;padding-right:20px}#item-price{display:inline-block;margin:12px 15px 8px 0;font-size:22px;color:#a04f72}#item-take{background:#254e50;color:#fff0d5;border:0;border-radius:7px;padding:10px 24px;font-weight:bold;min-height:44px}#item-take:disabled{opacity:.5}#item-note{display:block;font-size:10px;line-height:1.4}#inventory-toggle span{font-size:10px}.mobile-mode #inventory-toggle{width:38px;height:38px;min-width:38px;padding:0}.mobile-mode #inventory-toggle span{display:none}.mobile-mode #inventory-panel{top:60px;right:12px;padding:14px;max-height:53dvh;width:280px}.mobile-mode #item-card{bottom:205px;padding:12px;width:270px}.mobile-mode #item-name{font-size:13px}.mobile-mode #item-price{font-size:18px;margin:8px 12px 6px 0}

.inspecting-item #store-panel,.inspecting-item #interaction{display:none}.mobile-mode .inspecting-item #item-card{bottom:145px}

#seed-fire{position:fixed;right:24px;bottom:122px;width:54px;height:54px;border:2px solid #e4d4a4;border-radius:50%;background:#3e5638;color:#fff3d2;font-size:26px;z-index:35;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;box-shadow:0 4px 15px #0004}#seed-fire[hidden]{display:none}@media(pointer:coarse){#seed-fire{right:24px;bottom:204px;width:48px;height:48px}}

.item-browse{display:flex;align-items:center;gap:10px;margin-top:8px}.item-browse button{min-width:44px;min-height:44px;border:1px solid #a3c8b7;background:#fffbed;color:#254e50;border-radius:8px;font-size:23px}.item-browse button:disabled{opacity:.3}.item-browse small{flex:1;text-align:center}
/* Optional Quest mode; desktop and touch layouts retain their own controls. */
#enter-vr{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:1005;border:1px solid #a8ded2;border-radius:24px;background:#214b50;color:#fff8dc;padding:12px 24px;font:700 15px sans-serif;cursor:pointer}#enter-vr[hidden]{display:none}.in-vr #enter-vr{display:none}

body.in-vr > :not(#world){visibility:hidden!important}

#seed-fire::after{content:attr(data-count);position:absolute;right:-5px;bottom:-4px;min-width:25px;padding:2px 4px;border-radius:10px;background:#fff0cd;color:#324c38;font:700 11px monospace;border:1px solid #65856c}

/* Let CSS track the viewport immediately; renderer dimensions follow its box. */
html,body{width:100%;height:100%;min-width:0;overscroll-behavior:none}
#world{width:100%;height:100%;width:100dvw;height:100dvh}
#world canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.mobile-top-row{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.mobile-mode #touch-controls #seed-fire{position:relative;inset:auto;flex:0 0 60px;width:60px;height:60px;min-height:60px;padding:15px;border-radius:50%;border:1px solid #dcf5ad;background:#536e35e8;color:#f5ffd7;font-size:26px;pointer-events:auto}
#seed-fire svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round}
#seed-fire:active{transform:scale(.94);background:#718f4b}
.mobile-mode{-webkit-text-size-adjust:100%}
.mobile-mode #touch-action{font-size:16px}

/* Prevent native pan/pinch/double-tap gestures across the gameplay controls. */
.mobile-mode body.playing #world,.mobile-mode body.playing #touch-controls{touch-action:none}
.mobile-mode body.playing #touch-controls button{touch-action:none;-webkit-touch-callout:none}
#seed-fire svg,#seed-fire::after,#touch-jump svg,#move-stick span{pointer-events:none}

/* Fullscreen clean view includes dynamically-created HUDs and touch controls. */
#clean-fullscreen{display:none;align-items:center;justify-content:center}
body.playing #clean-fullscreen{display:inline-flex}
body.clean-game > :not(#world):not(script):not(style):not(link),body.clean-game > :not(#world) *{visibility:hidden!important;pointer-events:none!important}
body.clean-game dialog::backdrop{background:transparent!important}
body.clean-game #world,body.clean-game #world canvas{visibility:visible!important}
