@media (pointer:fine){.touch-deck.force-touch{display:block!important}}
/* SDL measures canvas CSS bounds while booting behind the import screen.
 * visibility keeps those bounds valid before the first playable frame. */
.play-screen.hidden{display:block!important;position:fixed;inset:0;visibility:hidden;pointer-events:none}
.room-label{display:grid;gap:7px;margin:14px 0;color:var(--muted);font-size:10px}.room-label input{background:#18201f;border:1px solid #45544e;color:var(--ink);padding:10px;font:11px "DM Mono"}.room-actions{display:flex;gap:10px;margin:20px 0}

/* Familiar mobile-shooter thumb zones, translated for TM3's vehicle actions. */
.stick-zone{width:calc(162px * var(--size));left:calc(env(safe-area-inset-left) + 18px);bottom:calc(env(safe-area-inset-bottom) + 19px);border-color:#bfcdbc;background:radial-gradient(circle at 50% 50%,#506a5a70 0 27%,#17241fe8 29% 65%,#080d0ce8 67%);box-shadow:inset 0 0 0 9px #0b1210b8,0 8px 26px #0008}.stick-zone::before{content:"";position:absolute;inset:13%;border:1px solid #b6c7ae66;border-radius:50%;pointer-events:none}.stick-zone span{bottom:14px;font-size:8px;color:#edf3dd;text-shadow:0 1px 4px #000}.stick-knob{width:40%;left:30%;top:30%;background:radial-gradient(circle at 35% 28%,#f7ffd8,#b5cd31 65%,#71820e);box-shadow:0 5px 16px #000a}
.action-cluster{right:calc(env(safe-area-inset-right) + 14px);bottom:calc(env(safe-area-inset-bottom) + 12px);width:calc(220px * var(--size));height:calc(190px * var(--size))}.touch-button{background:linear-gradient(145deg,#263b35ed,#101b18ed);border-color:#c5d4c0;color:#f1f0e6;box-shadow:inset 0 1px 0 #ffffff33,0 5px 0 #050707,0 8px 20px #000a}.touch-button.pressed{background:var(--acid);box-shadow:inset 0 1px 0 #fff8,0 2px 0 #050707}.button-fire{right:0;left:auto;top:0;width:calc(76px * var(--size));height:calc(76px * var(--size));border-color:var(--ember);background:linear-gradient(145deg,#633224ee,#28130fee)}.button-drive{right:3%;bottom:0;width:calc(94px * var(--size));height:calc(94px * var(--size));border-color:var(--acid);font-size:calc(14px * var(--size))}.button-brake{left:22%;bottom:3%;width:calc(68px * var(--size));height:calc(68px * var(--size))}.button-machine{left:8%;top:13%;width:calc(58px * var(--size));height:calc(58px * var(--size));border-color:#ffb05c}.shoulders{top:calc(env(safe-area-inset-top) + 58px);right:calc(env(safe-area-inset-right) + 18px);left:auto;height:auto;display:grid;gap:8px;justify-items:end}.shoulder{width:calc(92px * var(--size));height:calc(36px * var(--size));border-radius:7px;background:#1b2b26e8;font-size:calc(10px * var(--size))}.touch-deck.layout-edit .control-item{filter:brightness(1.2)}.touch-deck.layout-edit .control-item::after{content:"DRAG";position:absolute;left:50%;top:-20px;transform:translateX(-50%);padding:3px 6px;border:1px solid var(--acid);background:#101817e8;color:var(--acid);font:700 8px "DM Mono";letter-spacing:.08em;pointer-events:none}.touch-deck.layout-edit .stick-zone::after{top:auto;bottom:-21px}
@media (max-height:540px) and (orientation:landscape){.stick-zone{width:calc(142px * var(--size));bottom:calc(env(safe-area-inset-bottom) + 10px)}.action-cluster{transform:scale(.86);transform-origin:right bottom}.shoulders{transform:scale(.88);transform-origin:right top}}
@media (max-width:650px){.shoulders{left:auto;right:calc(env(safe-area-inset-right) + 12px);top:calc(env(safe-area-inset-top) + 50px)}}

.file-drop:focus-within{border-color:var(--acid);outline:2px solid #d8ed4a66;outline-offset:3px}.runtime-note{min-height:2.2em}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
