:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#effff8;background:#03110f;touch-action:manipulation;color-scheme:dark;
  --ink:#effff8;--muted:#9bb8ad;--panel:rgba(9,31,27,.82);--panel-solid:#0a211d;
  --line:rgba(168,255,218,.13);--emerald:#3ee99b;--emerald-2:#19bd78;--lime:#b8f45d;
  --amber:#ffca68;--danger:#ff6f79;--violet:#a98bff;--shadow:0 28px 90px rgba(0,0,0,.42)
}
*{box-sizing:border-box}html{min-height:100%;background:#03110f}body{margin:0;min-height:100dvh;overflow-x:hidden;background:radial-gradient(circle at 50% -20%,#164a3c 0,#071d19 32%,#03110f 72%);overscroll-behavior:none}.hidden{display:none!important}button,a,input,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{border:0;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid rgba(62,233,155,.65);outline-offset:3px}.ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.48}.orb-one{width:38rem;height:38rem;top:-22rem;left:-12rem;background:radial-gradient(circle,rgba(62,233,155,.3),transparent 68%)}.orb-two{width:44rem;height:44rem;right:-20rem;bottom:-30rem;background:radial-gradient(circle,rgba(25,189,120,.2),transparent 68%)}.grid-glow{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,black,transparent 72%)}

/* Landing */
.landing-shell{width:min(1220px,100%);min-height:100dvh;margin:auto;padding:max(22px,env(safe-area-inset-top)) clamp(18px,4vw,54px) max(28px,env(safe-area-inset-bottom))}.landing-nav,.room-header{display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.brand>span:last-child{display:flex;align-items:baseline;gap:6px}.brand strong{font-size:1.04rem;letter-spacing:-.02em}.brand small{font-size:.58rem;letter-spacing:.2em;color:var(--emerald);font-weight:900}.brand-mark{position:relative;display:grid!important;place-items:center;width:35px;height:35px;border:1px solid rgba(184,244,93,.36);border-radius:50%;background:linear-gradient(145deg,#163e32,#071814);box-shadow:inset 0 0 18px rgba(62,233,155,.14),0 6px 20px rgba(0,0,0,.25)}.brand-mark:before,.brand-mark:after,.brand-mark span{content:"";position:absolute;background:var(--lime)}.brand-mark:before{width:17px;height:2px;transform:rotate(-26deg);border-radius:3px}.brand-mark:after{width:2px;height:17px;transform:rotate(26deg);border-radius:3px}.brand-mark span{width:7px;height:7px;border-radius:50%;box-shadow:0 0 12px rgba(184,244,93,.7)}.nav-pill{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(6,24,20,.52);color:#bdd5cc;font-size:.76rem}.nav-pill i,.connection-item i,.gamepad-pill i{display:block;width:7px;height:7px;border-radius:50%;background:var(--emerald);box-shadow:0 0 10px rgba(62,233,155,.75)}
.hero-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);align-items:center;gap:clamp(34px,6vw,90px);min-height:calc(100dvh - 235px);padding:70px 0 50px}.hero-copy{position:relative;z-index:2}.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.7rem;font-weight:900;letter-spacing:.15em;color:#b9d2c8;text-transform:uppercase}.eyebrow span{font-size:.6rem;color:var(--lime);text-shadow:0 0 10px rgba(184,244,93,.8)}.hero-copy h1{margin:17px 0 21px;max-width:760px;font-size:clamp(3.35rem,7vw,6.65rem);line-height:.88;letter-spacing:-.067em;font-weight:850}.hero-copy h1 em{font-style:normal;color:transparent;background:linear-gradient(105deg,var(--emerald),var(--lime));background-clip:text;-webkit-background-clip:text}.hero-lead{max-width:630px;margin:0;color:#adc7bd;font-size:clamp(1rem,1.55vw,1.18rem);line-height:1.68}.hero-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:31px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:56px;padding:0 22px;border-radius:16px;background:linear-gradient(135deg,var(--emerald),#24c888);color:#032019;font-weight:850;letter-spacing:-.01em;box-shadow:0 13px 34px rgba(25,189,120,.24),inset 0 1px 0 rgba(255,255,255,.35);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.primary-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 42px rgba(25,189,120,.34),inset 0 1px 0 rgba(255,255,255,.35)}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{cursor:not-allowed;filter:saturate(.4);opacity:.48}.primary-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.microcopy{color:#78978c;font-size:.78rem}.hero-visual{position:relative;height:500px;perspective:1000px}.device-card{position:absolute;width:238px;height:414px;padding:17px 14px 18px;border:1px solid rgba(255,255,255,.15);border-radius:34px;background:linear-gradient(155deg,rgba(30,68,57,.96),rgba(4,19,16,.98));box-shadow:var(--shadow),inset 0 0 0 5px rgba(255,255,255,.022);transform-style:preserve-3d}.device-left{left:1%;top:50px;transform:rotateY(10deg) rotateZ(-5deg)}.device-right{right:1%;top:23px;transform:rotateY(-10deg) rotateZ(5deg)}.device-camera{display:block;width:52px;height:5px;margin:0 auto 13px;border-radius:999px;background:#010c0a;box-shadow:0 1px 0 rgba(255,255,255,.12)}.pixel-scene{position:relative;height:298px;overflow:hidden;border:5px solid #06110f;border-radius:13px;background:linear-gradient(#6ac99b 0 42%,#b5d87b 42% 62%,#589b64 62%);image-rendering:pixelated;box-shadow:inset 0 0 30px rgba(0,0,0,.22)}.pixel-scene:before{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;background:repeating-linear-gradient(90deg,#37774e 0 9px,#2e6743 9px 18px)}.pixel-scene:after{content:"";position:absolute;left:18%;right:16%;bottom:19%;height:20%;background:#d8c688;clip-path:polygon(35% 0,65% 0,100% 100%,0 100%)}.pixel-scene.alt{background:linear-gradient(#77c4ba 0 42%,#c8da8c 42% 62%,#678b5b 62%)}.mountain{position:absolute;bottom:38%;width:90px;height:92px;background:#3f8064;clip-path:polygon(50% 0,100% 100%,0 100%)}.m1{left:-10px}.m2{right:-8px;transform:scale(.8);opacity:.8}.player-dot{position:absolute;left:50%;bottom:29%;z-index:2;width:14px;height:20px;transform:translateX(-50%);border-radius:4px 4px 3px 3px;background:#e45858;box-shadow:0 -5px 0 -1px #273a6b,0 5px 0 -2px #263348}.p2{background:#537ae1;box-shadow:0 -5px 0 -1px #d8ca57,0 5px 0 -2px #263348}.device-card>small{display:block;margin-top:18px;text-align:center;color:#74998b;letter-spacing:.2em;font-size:.58rem;font-weight:900}.link-beam{position:absolute;z-index:3;left:50%;top:206px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;color:var(--lime);font-size:.62rem;letter-spacing:.17em}.link-beam span{width:24px;height:1px;background:linear-gradient(90deg,transparent,var(--lime))}.link-beam span:last-child{transform:rotate(180deg)}.link-beam strong{padding:7px 10px;border:1px solid rgba(184,244,93,.45);border-radius:999px;background:#09221b;box-shadow:0 0 24px rgba(184,244,93,.16)}.floating-chip{position:absolute;z-index:5;display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(10,31,27,.91);backdrop-filter:blur(14px);box-shadow:0 12px 30px rgba(0,0,0,.28);font-size:.72rem;color:#d2e8df}.floating-chip span{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;background:rgba(62,233,155,.13);color:var(--emerald)}.chip-rom{left:-4%;top:31px}.chip-pad{right:2%;bottom:33px}.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--line)}.feature-strip article{display:flex;align-items:center;gap:13px;padding:19px 21px;background:rgba(5,22,18,.8)}.feature-icon{display:grid;place-items:center;flex:0 0 37px;height:37px;border-radius:12px;background:rgba(62,233,155,.09);color:var(--emerald);font-size:1.15rem}.feature-strip strong,.feature-strip small{display:block}.feature-strip strong{font-size:.82rem}.feature-strip small{margin-top:4px;color:#718f84;font-size:.69rem;line-height:1.35}.room-created{max-width:650px;margin-top:22px;padding:18px;border:1px solid rgba(62,233,155,.22);border-radius:18px;background:rgba(7,28,23,.85);box-shadow:0 20px 50px rgba(0,0,0,.24)}.room-created-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.room-created-head strong{font-size:.95rem}.room-created-head span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--lime);font-size:.77rem;letter-spacing:.13em}.invite{display:grid;gap:9px}.invite-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}.invite-link{min-width:0;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#041510;color:#8cb3a4;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.copy-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:41px;padding:0 15px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#15372e;color:#dff8ee;font-weight:750;font-size:.75rem;cursor:pointer;text-decoration:none}.copy-button:hover,.secondary-button:hover{background:#1c493c}

/* Room / lobby */
.room-shell{min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.room-header{width:min(1280px,100%);margin:0 auto;padding:9px 4px 20px;border-bottom:1px solid var(--line)}.brand.compact .brand-mark{width:31px;height:31px}.room-identity{display:flex;align-items:center;gap:11px}.room-identity>div small,.room-identity>div strong{display:block}.room-identity>div small{color:#607d72;font-size:.55rem;font-weight:850;letter-spacing:.13em}.room-identity>div strong{margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.87rem;letter-spacing:.08em}.seat-chip,.peer-chip,.ping-chip{padding:7px 10px;border-radius:10px;font-size:.66rem;font-weight:800}.seat-chip{color:#042219;background:linear-gradient(135deg,var(--lime),var(--emerald))}.connection-cluster{display:flex;align-items:center;justify-content:flex-end;gap:8px}.connection-item{display:flex;align-items:center;gap:7px;color:#a7c1b7;font-size:.7rem}.peer-chip{border:1px solid var(--line);background:rgba(8,30,25,.65);color:#718e83}.peer-chip.connected{border-color:rgba(62,233,155,.3);color:#bff5dc;background:rgba(32,110,78,.18)}.ping-chip{min-width:45px;color:#6f8f83;text-align:center}.lobby-shell{display:grid;grid-template-columns:minmax(0,780px) 280px;justify-content:center;gap:20px;width:min(1120px,100%);margin:clamp(35px,7vh,78px) auto 30px}.glass-panel,.tip-card{border:1px solid var(--line);background:linear-gradient(145deg,rgba(11,38,32,.9),rgba(5,23,19,.88));backdrop-filter:blur(18px);box-shadow:var(--shadow)}.lobby-main{padding:clamp(23px,4vw,42px);border-radius:25px}.lobby-heading h1{margin:9px 0 12px;font-size:clamp(2rem,4.2vw,3.5rem);line-height:.98;letter-spacing:-.047em}.lobby-heading p{max-width:630px;margin:0;color:#91ada2;line-height:1.58}.readiness-list{display:grid;gap:9px;margin:29px 0 24px}.ready-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:14px;border:1px solid rgba(255,255,255,.075);border-radius:16px;background:rgba(4,20,17,.56);transition:border-color .2s ease,background .2s ease}.ready-row.done{border-color:rgba(62,233,155,.21);background:rgba(28,94,68,.11)}.ready-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#13372e;color:#8ba99e;font-weight:900;font-size:.76rem}.ready-row.done .ready-icon{color:#052017;background:var(--emerald)}.ready-icon.loading{animation:pulse 1.4s ease-in-out infinite}.ready-row strong,.ready-row small{display:block}.ready-row strong{font-size:.86rem}.ready-row small{margin-top:4px;color:#738f84;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ready-badge{padding:6px 9px;border-radius:8px;background:rgba(255,202,104,.1);color:var(--amber);font-size:.6rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.ready-row.done .ready-badge{background:rgba(62,233,155,.11);color:var(--emerald)}.ready-badge.neutral{background:rgba(169,139,255,.1);color:#bdaaff}.lobby-start{width:100%;min-height:60px}.start-hint{margin:11px 0 0;text-align:center;color:#668479;font-size:.68rem}.save-tools{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.save-tools summary,.gamepad-map summary{cursor:pointer;color:#9bb8ad;font-size:.73rem;font-weight:750}.save-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.file-button{display:flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border:1px dashed rgba(255,255,255,.18);border-radius:12px;color:#a7c3b8;font-size:.73rem;cursor:pointer}.file-button input{display:none}.lobby-aside{display:grid;align-content:start;gap:13px}.tip-card{position:relative;padding:22px;border-radius:20px;box-shadow:0 18px 50px rgba(0,0,0,.25)}.tip-card strong{display:block;padding-right:26px;font-size:.9rem;line-height:1.3}.tip-card p{margin:10px 0 0;color:#759187;font-size:.72rem;line-height:1.55}.tip-number{position:absolute;right:17px;top:16px;color:rgba(184,244,93,.3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:900}

/* Game */
.game-stage{display:grid;grid-template-columns:minmax(400px,760px) minmax(310px,450px);justify-content:center;align-items:center;gap:clamp(16px,3vw,38px);width:min(1280px,100%);margin:20px auto 0}.screen-column{min-width:0}.console-frame{padding:12px 13px 14px;border:1px solid rgba(255,255,255,.13);border-radius:25px;background:linear-gradient(145deg,#193f35,#071b17 70%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.09)}.console-top,.console-meta,.controller-topline{display:flex;align-items:center;justify-content:space-between}.console-top{padding:2px 8px 11px;color:#79988c;font-size:.58rem;font-weight:900;letter-spacing:.17em}.gamepad-pill{display:flex;align-items:center;gap:7px;padding:6px 8px;border:1px solid rgba(255,255,255,.09);border-radius:999px;color:#718e83;letter-spacing:0;text-transform:none}.gamepad-pill i{background:#5e746c;box-shadow:none}.gamepad-pill.connected{color:#c9f7e3;border-color:rgba(62,233,155,.25);background:rgba(62,233,155,.06)}.gamepad-pill.connected i{background:var(--emerald);box-shadow:0 0 10px rgba(62,233,155,.65)}.screen-bezel{position:relative;overflow:hidden;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:17px;background:#010806;box-shadow:inset 0 0 40px rgba(0,0,0,.82)}canvas{display:block;width:100%;height:auto;aspect-ratio:3/2;border-radius:9px;background:#000;image-rendering:pixelated}.screen-shine{position:absolute;inset:10px;border-radius:9px;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.055),transparent 27% 74%,rgba(255,255,255,.025))}.console-meta{padding:11px 7px 0;color:#628075;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.59rem}.console-meta #syncText{color:#8ac8ae}.session-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.icon-action{display:flex;align-items:center;justify-content:center;gap:7px;min-height:45px;padding:0 10px;border:1px solid var(--line);border-radius:13px;background:rgba(11,37,31,.82);color:#a8c2b8;font-size:.7rem;font-weight:750;cursor:pointer}.icon-action>span:first-child{font-size:.95rem;color:#86aa9c}.icon-action.primary-action{background:rgba(62,233,155,.12);border-color:rgba(62,233,155,.22);color:#d5fbed}.controller-panel{padding:16px;border:1px solid var(--line);border-radius:25px;background:linear-gradient(145deg,rgba(13,43,36,.96),rgba(5,22,18,.96));box-shadow:var(--shadow);transition:opacity .2s ease,transform .2s ease}.controller-panel.touch-hidden{display:none}.controller-topline{padding:0 4px 10px;color:#6f8e83;font-size:.58rem;font-weight:900;letter-spacing:.16em}.controller-topline small{letter-spacing:0;font-weight:600}.controls{position:relative;height:370px;user-select:none;-webkit-user-select:none}.controls button{position:absolute;display:grid;place-items:center;background:linear-gradient(145deg,#214c40,#0d2d25);border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 -5px 0 rgba(0,0,0,.22),0 7px 18px rgba(0,0,0,.16);cursor:pointer;transition:transform .07s ease,background .07s ease}.controls button.active{transform:translateY(3px) scale(.97);background:linear-gradient(145deg,#43e99f,#159b68);color:#042118;box-shadow:inset 0 -1px 0 rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.14)}.shoulder{top:3px;width:90px;height:42px;border-radius:13px!important}.shoulder.l{left:4px}.shoulder.r{right:4px}.shoulder span{font-weight:900}.dpad{position:absolute;left:4px;top:88px;width:176px;height:176px}.dpad button{width:60px;height:60px;border-radius:12px}.dpad .up{left:58px;top:0}.dpad .left{left:0;top:58px}.dpad .right{right:0;top:58px}.dpad .down{left:58px;bottom:0}.dpad-center{position:absolute;left:58px;top:58px;width:60px;height:60px;background:#15392f;box-shadow:inset 0 0 12px rgba(0,0,0,.25)}.action-buttons{position:absolute;right:5px;top:100px;width:174px;height:145px;transform:rotate(-8deg)}.action-buttons button{width:68px;height:68px;border-radius:50%;font-size:1.18rem;font-weight:900}.action-buttons .a{right:1px;top:0;background:linear-gradient(145deg,#49eda5,#17a66e);color:#052319}.action-buttons .b{left:7px;bottom:3px;background:linear-gradient(145deg,#315d50,#13372e)}.center-buttons{position:absolute;left:50%;bottom:16px;transform:translateX(-50%) rotate(-6deg);display:flex;gap:18px}.center-buttons button{position:relative;width:61px;height:25px;border-radius:999px}.center-buttons button span{width:35px;height:7px;border-radius:999px;background:#071712;box-shadow:inset 0 1px 2px rgba(255,255,255,.12)}.center-buttons button small{position:absolute;top:32px;color:#6d8b80;font-size:.5rem;font-weight:900;letter-spacing:.1em}.gamepad-map{padding:13px 4px 1px;border-top:1px solid var(--line)}.gamepad-map>div{display:grid;grid-template-columns:1fr auto 1fr auto;gap:7px 11px;margin-top:12px;color:#749087;font-size:.64rem}.gamepad-map strong{color:#bfddd1}.fatal-panel{width:min(560px,100%);margin:70px auto;padding:35px;border-radius:24px;text-align:center}.fatal-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 15px;border-radius:15px;background:rgba(255,111,121,.12);color:var(--danger);font-size:1.3rem;font-weight:900}.fatal-panel h2{margin:0}.fatal-panel p{color:#9eb8ae;line-height:1.55}.toast{position:fixed;z-index:50;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100vw - 28px);padding:12px 16px;border:1px solid rgba(62,233,155,.2);border-radius:13px;background:#0b2d25;color:#d9f8eb;box-shadow:0 15px 50px rgba(0,0,0,.4);font-size:.75rem}
@keyframes pulse{50%{opacity:.45;transform:scale(.94)}}

@media(max-width:980px){.hero-layout{grid-template-columns:1fr;min-height:auto;padding:72px 0 52px}.hero-copy{max-width:760px}.hero-visual{width:min(560px,100%);margin:0 auto}.feature-strip{grid-template-columns:1fr}.lobby-shell{grid-template-columns:minmax(0,760px)}.lobby-aside{grid-template-columns:1fr 1fr}.game-stage{grid-template-columns:minmax(0,760px)}.controller-panel{width:min(560px,100%);margin:auto}.game-stage.gamepad-mode{grid-template-columns:minmax(0,880px)}.game-stage.gamepad-mode .controller-panel{display:none}}
@media(max-width:650px){.landing-shell{padding-left:18px;padding-right:18px}.nav-pill{display:none}.hero-layout{padding-top:58px}.hero-copy h1{font-size:clamp(3.05rem,17vw,5.1rem)}.hero-visual{height:410px;transform:scale(.85);transform-origin:top center;margin-bottom:-58px}.feature-strip article{padding:16px}.room-header{display:grid;grid-template-columns:1fr auto;gap:12px}.room-identity{grid-row:2;grid-column:1/3}.connection-cluster{grid-column:2}.connection-item #statusText{display:none}.lobby-shell{margin-top:26px}.lobby-main{padding:22px 17px}.lobby-heading h1{font-size:2.25rem}.ready-row{grid-template-columns:auto 1fr}.ready-badge{grid-column:2;justify-self:start}.ready-row small{white-space:normal}.lobby-aside{grid-template-columns:1fr}.save-tools-grid{grid-template-columns:1fr}.game-stage{margin-top:13px}.console-frame{padding:8px;border-radius:18px}.screen-bezel{padding:6px;border-radius:12px}.screen-shine{inset:6px}.session-actions{grid-template-columns:repeat(2,1fr)}.controller-panel{padding:12px 10px}.controls{height:325px;transform:scale(.9);transform-origin:top center;margin-bottom:-30px}.gamepad-map>div{grid-template-columns:1fr auto}.gamepad-map>div span:nth-of-type(n+3),.gamepad-map>div strong:nth-of-type(n+3){display:none}.room-created{padding:14px}.invite-row{grid-template-columns:1fr}.copy-button{width:100%}}
@media(orientation:landscape) and (max-height:650px){.room-header{padding-bottom:10px}.game-stage{grid-template-columns:minmax(430px,1.2fr) minmax(330px,.8fr);gap:12px;margin-top:10px;align-items:start}.console-frame{padding:7px}.console-top{padding-bottom:6px}.screen-bezel{padding:5px}.console-meta{padding-top:6px}.session-actions{margin-top:7px}.controller-panel{padding:9px}.controller-topline{padding-bottom:5px}.controls{height:calc(100dvh - 145px);min-height:300px;max-height:410px;transform:scale(.82);transform-origin:top center;margin-bottom:calc((100dvh - 145px)*-.18)}.gamepad-map{display:none}.game-stage.gamepad-mode{grid-template-columns:minmax(0,920px)}.game-stage.gamepad-mode .console-frame{max-width:920px;margin:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* v0.3.0 accounts, persistent games and immersive play */
.account-panel,.dashboard-panel{max-width:680px;margin-top:28px;padding:22px;border-radius:22px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.auth-tabs button{min-height:42px;border-radius:12px;background:rgba(255,255,255,.05);color:var(--muted);cursor:pointer}.auth-tabs button.active{background:rgba(62,233,155,.14);color:var(--ink);border:1px solid rgba(62,233,155,.24)}.account-panel label{display:grid;gap:7px;margin:12px 0;color:#b9d2c8;font-size:.75rem}.account-panel input,.dashboard-panel input{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:13px;background:#061a16;color:var(--ink)}.account-panel .primary-button{width:100%;margin-top:8px}.auth-message{min-height:20px;margin:10px 0 0;color:var(--danger);font-size:.72rem}.dashboard-head,.game-create-row,.join-row,.game-card{display:flex;align-items:center;gap:10px}.dashboard-head{justify-content:space-between;margin-bottom:16px}.dashboard-head small,.dashboard-head strong{display:block}.dashboard-head small{color:var(--muted);font-size:.58rem;letter-spacing:.14em}.game-create-row,.join-row{margin-top:10px}.game-create-row input,.join-row input{flex:1}.games-list{display:grid;gap:10px;margin-top:18px}.game-card{justify-content:space-between;padding:14px;border:1px solid var(--line);border-radius:15px;background:rgba(4,21,17,.72)}.game-card>div{min-width:0}.game-card strong,.game-card small{display:block}.game-card small{margin-top:5px;color:var(--muted);font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invite-code{padding:8px 10px;border-radius:10px;background:rgba(184,244,93,.09);color:var(--lime);font-family:ui-monospace,monospace;font-size:.67rem;cursor:pointer}.empty-games{color:var(--muted);font-size:.78rem}.console-meta{gap:8px;flex-wrap:wrap}.console-meta #serverSaveText{color:var(--lime)}
.game-stage:fullscreen,.native-fullscreen .game-stage,.theater-mode .game-stage{width:100%;height:100%;max-width:none;margin:0;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#03110f;overflow:auto}.theater-mode{overflow:hidden}.theater-mode .room-header,.native-fullscreen .room-header{display:none}.theater-mode #game{position:fixed;z-index:100;inset:0}.game-stage:fullscreen .console-frame,.theater-mode .console-frame,.native-fullscreen .console-frame{box-shadow:none}.game-stage:fullscreen canvas,.theater-mode canvas,.native-fullscreen canvas{max-height:62dvh;object-fit:contain}.game-stage:fullscreen .session-actions,.theater-mode .session-actions,.native-fullscreen .session-actions{position:sticky;bottom:0;z-index:4;background:rgba(3,17,15,.86);backdrop-filter:blur(10px);padding:6px;border-radius:14px}.game-stage:fullscreen .controller-panel,.theater-mode .controller-panel,.native-fullscreen .controller-panel{align-self:center}
@media(max-width:650px){.game-create-row,.join-row{display:grid;grid-template-columns:1fr}.game-card{display:grid;grid-template-columns:1fr auto}.game-card .invite-code{grid-column:1/3}.account-panel,.dashboard-panel{padding:17px}.game-stage:fullscreen,.theater-mode .game-stage,.native-fullscreen .game-stage{display:flex;flex-direction:column;gap:8px}.game-stage:fullscreen .screen-column,.theater-mode .screen-column,.native-fullscreen .screen-column{width:100%}.game-stage:fullscreen .controller-panel,.theater-mode .controller-panel,.native-fullscreen .controller-panel{width:100%;margin:0}.game-stage:fullscreen .controls,.theater-mode .controls,.native-fullscreen .controls{height:300px}}
@media(orientation:landscape) and (max-height:700px){.game-stage:fullscreen,.theater-mode .game-stage,.native-fullscreen .game-stage{display:grid;grid-template-columns:minmax(420px,1.25fr) minmax(300px,.75fr);align-items:center;overflow:hidden}.game-stage:fullscreen canvas,.theater-mode canvas,.native-fullscreen canvas{max-height:calc(100dvh - 105px)}.game-stage:fullscreen .controls,.theater-mode .controls,.native-fullscreen .controls{height:calc(100dvh - 95px);min-height:260px}.game-stage:fullscreen .session-actions,.theater-mode .session-actions,.native-fullscreen .session-actions{position:static}}

.voice-active{border-color:rgba(62,233,155,.65)!important;background:rgba(62,233,155,.13)!important}.voice-active span:first-child{color:#3ee99b}.voice-muted{border-color:rgba(255,202,104,.6)!important;background:rgba(255,202,104,.11)!important}#remoteVoice{display:none}

/* v0.3.3 integrated mobile controls and duplex voice telemetry */
.game-stage{display:block;width:min(920px,100%)}
.screen-column{display:grid;gap:10px}
.controller-panel{width:100%;margin:0;border-radius:20px;background:linear-gradient(145deg,rgba(10,37,31,.94),rgba(4,20,17,.96))}
.voice-players{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.voice-player{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:8px 9px;border:1px solid var(--line);border-radius:12px;background:rgba(3,18,15,.68);color:#78978c;font-size:.64rem;transition:border-color .15s,background .15s,color .15s}
.voice-avatar{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#13372e;color:#a9c4b9;font-size:.56rem;font-weight:900}
.voice-player small{grid-column:2;color:#658378;font-size:.55rem}.voice-meter{grid-row:1/3;grid-column:3;display:block;width:34px;height:6px;overflow:hidden;border-radius:999px;background:#09201a}.voice-meter b{display:block;width:100%;height:100%;transform:scaleX(.06);transform-origin:left;background:var(--emerald);transition:transform .1s ease}
.voice-player.enabled{color:#bed8ce}.voice-player.connected{border-color:rgba(62,233,155,.24)}.voice-player.speaking{border-color:rgba(184,244,93,.72);background:rgba(62,233,155,.15);color:#effff8;box-shadow:0 0 20px rgba(62,233,155,.13)}.voice-player.speaking .voice-avatar{background:var(--emerald);color:#032019}.voice-player.speaking small{color:var(--lime)}.voice-player.muted{border-color:rgba(255,202,104,.35)}

@media(max-width:650px){
  body.room-page{overflow:hidden}
  .room-shell:has(#game:not(.hidden)){height:100dvh;min-height:0;padding:max(5px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));overflow:hidden}
  .room-shell:has(#game:not(.hidden)) .room-header{display:none}
  .game-stage{height:100%;margin:0;overflow:hidden}
  .screen-column{height:100%;grid-template-rows:auto auto minmax(0,1fr);gap:5px}
  .console-frame{padding:5px;border-radius:13px}
  .console-top{padding:0 2px 4px;font-size:.55rem}
  .screen-bezel{width:min(100%,calc((100dvh - 365px)*1.5));min-width:230px;margin:auto;padding:4px}
  .screen-bezel canvas{width:100%;max-height:calc(100dvh - 365px);object-fit:contain}
  .console-meta{display:none}
  .voice-players{margin-top:5px;gap:5px}.voice-player{padding:5px 6px}.voice-avatar{width:21px;height:21px}
  .session-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:0}
  .session-actions .icon-action{min-width:0;min-height:36px;padding:3px;border-radius:9px}.session-actions .icon-action span:last-child{display:none}.session-actions .icon-action span:first-child{font-size:.92rem}
  .controller-panel{min-height:0;padding:4px 6px 0;border-radius:13px;overflow:hidden}
  .controller-topline,.gamepad-map{display:none}
  .controls{height:100%;min-height:230px;max-height:310px;transform:none;margin:0}
  .shoulder{top:0;width:78px;height:34px}
  .dpad{left:0;top:48px;transform:scale(.78);transform-origin:top left}
  .action-buttons{right:0;top:58px;transform:scale(.82) rotate(-8deg);transform-origin:top right}
  .center-buttons{bottom:22px;gap:12px}.center-buttons button{width:54px}.center-buttons button small{top:27px}
}

.game-stage:fullscreen,.native-fullscreen .game-stage,.theater-mode .game-stage{overflow:hidden!important}
.game-stage:fullscreen .screen-column,.native-fullscreen .screen-column,.theater-mode .screen-column{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:6px}
.game-stage:fullscreen .session-actions,.native-fullscreen .session-actions,.theater-mode .session-actions{position:static}
@media(orientation:landscape) and (max-height:700px){
  .game-stage:fullscreen .screen-column,.native-fullscreen .screen-column,.theater-mode .screen-column{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);grid-template-rows:auto 1fr;align-items:center}
  .game-stage:fullscreen .console-frame,.native-fullscreen .console-frame,.theater-mode .console-frame{grid-row:1/3}
  .game-stage:fullscreen .session-actions,.native-fullscreen .session-actions,.theater-mode .session-actions{grid-column:2;grid-row:1}
  .game-stage:fullscreen .controller-panel,.native-fullscreen .controller-panel,.theater-mode .controller-panel{grid-column:2;grid-row:2;min-height:0;height:100%}
  .game-stage:fullscreen .controls,.native-fullscreen .controls,.theater-mode .controls{height:100%;min-height:245px}
  .game-stage:fullscreen canvas,.native-fullscreen canvas,.theater-mode canvas{max-height:calc(100dvh - 85px)}
}


/* v0.3.4 compact mobile console, audio mixer and resilient resume */
.audio-mixer{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:rgba(3,18,15,.72)}
.audio-mixer label{display:grid;grid-template-columns:auto minmax(70px,1fr) auto;gap:7px;align-items:center;color:#9ab7ac;font-size:.62rem;font-weight:750}.audio-mixer input[type=range]{width:100%;accent-color:var(--emerald)}.audio-mixer output{min-width:32px;color:#dff7ee;text-align:right}.audio-mixer .duck-toggle{display:flex;white-space:nowrap}.audio-mixer .duck-toggle input{accent-color:var(--emerald)}
@media(max-width:650px){
 body.playing{overflow:hidden;height:100dvh}.playing main{height:100dvh;padding:0!important}.playing .room-header{display:none}
 .playing .game-stage{display:grid!important;grid-template-rows:minmax(0,1fr);height:100dvh;max-height:100dvh;margin:0;padding:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left));overflow:hidden}
 .playing .screen-column{display:grid;grid-template-rows:minmax(0,45fr) auto minmax(0,55fr);gap:5px;height:100%;min-height:0}
 .playing .console-frame{min-height:0;padding:5px;border-radius:14px}.playing .console-top{display:none}.playing .screen-bezel{height:100%;min-height:0;padding:4px}.playing canvas{width:100%;height:100%;max-height:none;object-fit:contain}
 .playing .console-meta{display:none}.playing .voice-players{position:absolute;top:max(7px,env(safe-area-inset-top));left:8px;right:8px;z-index:5;pointer-events:none}.playing .voice-player{background:rgba(2,15,12,.78);backdrop-filter:blur(7px)}
 .playing .session-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:0;background:none}.playing .icon-action{min-height:34px;padding:4px;font-size:.56rem}.playing .icon-action span:first-child{font-size:.85rem}.playing .icon-action span:last-child{display:none}
 .playing .audio-mixer{grid-column:1/-1;grid-template-columns:1fr 1fr;padding:5px 7px;gap:5px}.playing .audio-mixer label{font-size:.55rem;grid-template-columns:auto 1fr auto}.playing .audio-mixer .duck-toggle{grid-column:1/-1;justify-content:center}
 .playing .controller-panel{min-height:0;height:100%;padding:4px 7px;border-radius:14px;overflow:hidden}.playing .controller-topline,.playing .gamepad-map{display:none}.playing .controls{height:100%!important;min-height:0!important;margin:0!important;transform:none!important}
}
@media(max-width:650px) and (orientation:portrait){.playing .screen-column{grid-template-rows:minmax(0,42fr) auto minmax(260px,58fr)}.playing .controls{max-height:38dvh}.playing .action-buttons button{width:64px;height:64px}.playing .dpad{transform:scale(.82)}.playing .center-buttons{bottom:4px}}
@media(max-width:900px) and (orientation:landscape) and (max-height:600px){.playing .screen-column{grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr);grid-template-rows:auto minmax(0,1fr)}.playing .console-frame{grid-row:1/3}.playing .session-actions{grid-column:2;grid-row:1}.playing .controller-panel{grid-column:2;grid-row:2}.playing .voice-players{left:10px;right:auto;width:min(340px,45vw)}.playing .audio-mixer{display:none}}


/* v0.3.5 neutral graphite theme */
:root{--ink:#f5f5f5;--muted:#a1a1aa;--panel:rgba(18,18,20,.88);--panel-solid:#151517;--line:rgba(255,255,255,.11);--emerald:#d4d4d8;--emerald-2:#a1a1aa;--lime:#f4f4f5;--amber:#f5c46b;--danger:#ff727d;--violet:#b8a7ff;--shadow:0 28px 90px rgba(0,0,0,.58);background:#08080a;color:#f5f5f5}
html{background:#08080a}body{background:radial-gradient(circle at 50% -15%,#27272a 0,#111113 34%,#08080a 74%)}
.orb-one{background:radial-gradient(circle,rgba(255,255,255,.10),transparent 68%)}.orb-two{background:radial-gradient(circle,rgba(148,163,184,.08),transparent 68%)}
.brand small,.eyebrow span{color:#d4d4d8;text-shadow:none}.brand-mark{border-color:rgba(255,255,255,.22);background:linear-gradient(145deg,#29292d,#101012);box-shadow:inset 0 0 18px rgba(255,255,255,.05),0 6px 20px rgba(0,0,0,.4)}.brand-mark:before,.brand-mark:after,.brand-mark span{background:#e4e4e7}.brand-mark span{box-shadow:0 0 10px rgba(255,255,255,.35)}
.hero-copy h1 em{background:linear-gradient(105deg,#fafafa,#a1a1aa);background-clip:text;-webkit-background-clip:text}.primary-button{background:linear-gradient(135deg,#f4f4f5,#b8b8bf);color:#111113;box-shadow:0 13px 34px rgba(0,0,0,.38)}
.nav-pill,.panel,.account-panel,.dashboard-panel,.room-panel{background:rgba(17,17,19,.76)}
.console-frame{background:linear-gradient(145deg,#242428,#0d0d0f 72%);border-color:rgba(255,255,255,.13)}.controller-panel{background:linear-gradient(145deg,rgba(28,28,31,.97),rgba(12,12,14,.98))}.controls button{background:linear-gradient(145deg,#34343a,#18181b)}.controls button.active{background:linear-gradient(145deg,#f4f4f5,#a1a1aa);color:#111113}.action-buttons .a{background:linear-gradient(145deg,#e4e4e7,#a1a1aa);color:#111113}.action-buttons .b{background:linear-gradient(145deg,#414148,#202024)}.dpad-center{background:#232327}.center-buttons button span{background:#0b0b0c}
.icon-action{background:rgba(28,28,31,.88);color:#d4d4d8}.icon-action.primary-action{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.20);color:#fafafa}.audio-mixer{background:rgba(15,15,17,.88)}.audio-mixer input[type=range],.audio-mixer .duck-toggle input{accent-color:#d4d4d8}
.voice-player{background:rgba(12,12,14,.82)}.voice-avatar{background:#29292d}.voice-meter{background:#202024}.voice-meter b{background:#e4e4e7}.voice-player.speaking{border-color:rgba(255,255,255,.62);background:rgba(255,255,255,.10);box-shadow:0 0 20px rgba(255,255,255,.08)}.voice-player.speaking .voice-avatar{background:#e4e4e7;color:#111113}.voice-player.speaking small{color:#f4f4f5}
.toast{border-color:rgba(255,255,255,.18);background:#202024;color:#fafafa}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline-color:rgba(255,255,255,.65)}

/* v0.3.7 resumable sessions, compact voice rail and game management */
body.room-page:not(.playing){overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
.glass-panel,.lobby-main,.fatal-panel,.tip-card{background:rgba(18,18,21,.94)!important;border-color:rgba(255,255,255,.12)!important}
.fatal-panel{background:linear-gradient(145deg,#18181b,#0d0d0f)!important}
.account-panel input,.dashboard-panel input{background:#111114;border-color:rgba(255,255,255,.12)}
.auth-tabs button.active{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}
.game-card{background:rgba(18,18,21,.92);align-items:center}
.game-card .game-info{flex:1;min-width:0}
.game-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.delete-game{min-height:41px;padding:0 12px;border:1px solid rgba(255,114,125,.28);border-radius:12px;background:rgba(255,114,125,.08);color:#ff9aa2;font-size:.72rem;font-weight:780;cursor:pointer}
.delete-game:hover:not(:disabled){background:rgba(255,114,125,.16)}
.delete-game:disabled{opacity:.55;cursor:wait}
.invite-code{background:rgba(255,255,255,.07);color:#e4e4e7}

.voice-players{grid-column:1/-1;display:flex;justify-content:flex-end;gap:6px;margin:0 0 1px;min-width:0}
.voice-player{display:grid;grid-template-columns:auto auto 28px;grid-template-rows:1fr;align-items:center;gap:5px;min-height:29px;padding:4px 7px;border-radius:999px;background:rgba(18,18,21,.94);font-size:.58rem;white-space:nowrap}
.voice-player small{grid-column:2;grid-row:1;margin-left:0;font-size:.52rem}
.voice-avatar{width:20px;height:20px;border-radius:50%;font-size:.5rem}
.voice-meter{grid-column:3;grid-row:1;width:28px;height:4px}
.voice-player>span:nth-child(2){display:none}
.voice-player.speaking{box-shadow:none}

@media(max-width:650px){
  .game-card{grid-template-columns:minmax(0,1fr);gap:9px}
  .game-card .invite-code{grid-column:auto;width:max-content;max-width:100%}
  .game-actions{width:100%;display:grid;grid-template-columns:1fr auto}
  .game-actions .copy-button{width:100%}
  .playing .voice-players{position:static!important;inset:auto!important;width:auto!important;z-index:auto;pointer-events:auto;justify-content:center;margin:0;min-height:28px}
  .playing .voice-player{background:rgba(18,18,21,.98);backdrop-filter:none;padding:3px 7px;min-height:27px}
  .playing .session-actions{align-content:start}
  .playing .screen-column{grid-template-rows:minmax(0,43fr) auto minmax(0,57fr)}
}
@media(max-width:650px) and (orientation:portrait){
  .playing .screen-column{grid-template-rows:minmax(0,40fr) auto minmax(250px,60fr)}
  .playing .audio-mixer{padding:4px 6px}
  .playing .audio-mixer .duck-toggle{font-size:.52rem}
}
@media(max-width:900px) and (orientation:landscape) and (max-height:600px){
  .playing .voice-players{justify-content:flex-start}
}

@media(max-width:900px) and (orientation:landscape) and (max-height:600px){
  body.playing{height:100dvh;overflow:hidden}
  body.playing .room-shell{height:100dvh;min-height:0;padding:max(4px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left));overflow:hidden}
  body.playing .room-header{display:none}
  body.playing .game-stage{display:grid!important;width:100%;height:100%;max-height:100%;margin:0;padding:0;overflow:hidden;align-items:stretch}
  body.playing .screen-column{display:grid;width:100%;height:100%;min-height:0;grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);grid-template-rows:auto minmax(0,1fr);gap:5px}
  body.playing .console-frame{grid-column:1;grid-row:1/3;display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;padding:5px;border-radius:14px}
  body.playing .console-top{display:flex;padding:0 3px 4px}
  body.playing .screen-bezel{width:100%;height:100%;min-height:0;margin:0;padding:4px}
  body.playing canvas{width:100%;height:100%;max-height:none;object-fit:contain}
  body.playing .console-meta{display:none}
  body.playing .session-actions{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin:0;align-self:start}
  body.playing .session-actions .icon-action{min-width:0;min-height:31px;padding:2px;border-radius:8px}
  body.playing .session-actions .icon-action span:last-child{display:none}
  body.playing .session-actions .icon-action span:first-child{font-size:.8rem}
  body.playing .voice-players{grid-column:1/-1;position:static!important;width:auto!important;justify-content:center;margin:0}
  body.playing .audio-mixer{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;padding:4px 6px;gap:3px}
  body.playing .audio-mixer label{font-size:.5rem;grid-template-columns:auto 1fr auto}
  body.playing .audio-mixer .duck-toggle{grid-column:1/-1;justify-content:center}
  body.playing .controller-panel{grid-column:2;grid-row:2;display:block;min-height:0;height:100%;padding:4px 6px 0;border-radius:12px;overflow:hidden}
  body.playing .controller-panel.touch-hidden{display:none}
  body.playing .controller-topline,body.playing .gamepad-map{display:none}
  body.playing .controls{height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;transform:none!important}
  body.playing .shoulder{top:0;height:31px}
  body.playing .dpad{top:35px;transform:scale(.68);transform-origin:top left}
  body.playing .action-buttons{top:42px;transform:scale(.72) rotate(-8deg);transform-origin:top right}
  body.playing .center-buttons{bottom:8px;gap:10px}
}
@media(max-width:900px) and (max-height:900px){body.playing .game-stage{grid-template-columns:minmax(0,1fr)}}

/* v0.3.8 coordinated safe save */
.safe-save-action{border-color:rgba(255,255,255,.22);background:linear-gradient(145deg,#2b2c30,#17181b)}
.safe-save-action:not(:disabled){box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.safe-save-action:disabled{opacity:.65;cursor:wait}

/* v0.4.7 performance + mobile console UX */
.session-actions{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.speed-action.active{border-color:rgba(255,202,104,.66);background:rgba(255,202,104,.15);color:#fff3d2;box-shadow:0 0 18px rgba(255,202,104,.12)}#speedText{color:#ffca68;font-weight:900}.controller-top-actions{display:flex;align-items:center;gap:10px}.inline-control-mode{min-height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.06);color:#d7e6e0;font:700 .64rem/1 inherit;cursor:pointer}.virtual-joystick{position:absolute;left:4px;top:88px;width:176px;height:176px;display:grid;place-items:center;touch-action:none;user-select:none;-webkit-user-select:none}.virtual-joystick.hidden,.dpad.hidden{display:none!important}.joystick-ring{position:relative;width:158px;height:158px;border:2px solid rgba(255,255,255,.22);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.075) 0 34%,rgba(255,255,255,.025) 35% 64%,rgba(0,0,0,.14) 65%);box-shadow:inset 0 0 24px rgba(0,0,0,.36),0 8px 24px rgba(0,0,0,.18)}.joystick-ring:before,.joystick-ring:after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,255,255,.12);transform:translate(-50%,-50%)}.joystick-ring:before{width:2px;height:78%}.joystick-ring:after{width:78%;height:2px}.joystick-knob{position:absolute;z-index:2;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border:2px solid rgba(255,255,255,.56);border-radius:50%;background:linear-gradient(145deg,rgba(255,255,255,.24),rgba(255,255,255,.08));box-shadow:0 7px 18px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.35);will-change:transform;transition:transform 45ms linear}.controls button,.virtual-joystick{min-width:48px;min-height:48px}.controller-panel{contain:layout paint style}.screen-bezel{contain:layout paint}.icon-action:focus-visible,.controls button:focus-visible,.inline-control-mode:focus-visible,.virtual-joystick:focus-visible{outline:3px solid #fff;outline-offset:3px}
.console-fullscreen{overflow:hidden!important;background:#000!important;overscroll-behavior:none;touch-action:none}.game-stage:fullscreen,.console-fullscreen .game-stage,.theater-mode .game-stage{position:fixed!important;z-index:100;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;margin:0!important;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;display:block!important;overflow:hidden!important;background:#000!important}.game-stage:fullscreen .screen-column,.console-fullscreen .game-stage .screen-column,.theater-mode .game-stage .screen-column{position:relative!important;width:100%!important;height:100%!important;display:block!important}.game-stage:fullscreen .console-frame,.console-fullscreen .console-frame,.theater-mode .console-frame{position:absolute!important;z-index:2;left:50%;top:50%;width:min(54vw,calc((100dvh - 36px)*1.5),720px)!important;max-width:720px;margin:0!important;padding:4px!important;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.16)!important;border-radius:14px!important;background:#050505!important;box-shadow:0 18px 60px rgba(0,0,0,.75)!important}.game-stage:fullscreen .console-top,.game-stage:fullscreen .console-meta,.console-fullscreen .console-top,.console-fullscreen .console-meta,.theater-mode .console-top,.theater-mode .console-meta{display:none!important}.game-stage:fullscreen .screen-bezel,.console-fullscreen .screen-bezel,.theater-mode .screen-bezel{padding:3px!important;border-radius:10px!important;border-color:rgba(255,255,255,.12)!important;background:#000!important}.game-stage:fullscreen canvas,.console-fullscreen canvas,.theater-mode canvas{width:100%!important;height:auto!important;max-height:none!important;border-radius:6px!important;object-fit:contain}.game-stage:fullscreen .screen-shine,.console-fullscreen .screen-shine,.theater-mode .screen-shine{inset:3px!important;border-radius:6px!important}.game-stage:fullscreen .controller-panel,.console-fullscreen .controller-panel,.theater-mode .controller-panel{position:absolute!important;z-index:3;inset:0!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;pointer-events:none}.game-stage:fullscreen .controller-topline,.console-fullscreen .controller-topline,.theater-mode .controller-topline,.game-stage:fullscreen .gamepad-map,.console-fullscreen .gamepad-map,.theater-mode .gamepad-map{display:none!important}.game-stage:fullscreen .controls,.console-fullscreen .controls,.theater-mode .controls{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;transform:none!important;pointer-events:none}.game-stage:fullscreen .controls button,.console-fullscreen .controls button,.theater-mode .controls button,.game-stage:fullscreen .virtual-joystick,.console-fullscreen .virtual-joystick,.theater-mode .virtual-joystick{pointer-events:auto;touch-action:none}.game-stage:fullscreen .controls button,.console-fullscreen .controls button,.theater-mode .controls button{background:rgba(0,0,0,.16)!important;border:2px solid rgba(255,255,255,.76)!important;color:#fff!important;box-shadow:0 4px 16px rgba(0,0,0,.35),inset 0 0 0 1px rgba(0,0,0,.32)!important;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);text-shadow:0 1px 3px #000}.game-stage:fullscreen .controls button.active,.console-fullscreen .controls button.active,.theater-mode .controls button.active{background:rgba(255,255,255,.26)!important;border-color:#fff!important;color:#fff!important;transform:scale(.94)!important}.game-stage:fullscreen .dpad,.console-fullscreen .dpad,.theater-mode .dpad,.game-stage:fullscreen .virtual-joystick,.console-fullscreen .virtual-joystick,.theater-mode .virtual-joystick{left:max(24px,4vw)!important;top:50%!important;width:min(25vw,190px)!important;height:min(25vw,190px)!important;transform:translateY(-50%)!important}.game-stage:fullscreen .dpad button,.console-fullscreen .dpad button,.theater-mode .dpad button{width:34%!important;height:34%!important;border-radius:13px!important}.game-stage:fullscreen .dpad .up,.console-fullscreen .dpad .up,.theater-mode .dpad .up{left:33%!important}.game-stage:fullscreen .dpad .left,.console-fullscreen .dpad .left,.theater-mode .dpad .left{top:33%!important}.game-stage:fullscreen .dpad .right,.console-fullscreen .dpad .right,.theater-mode .dpad .right{top:33%!important}.game-stage:fullscreen .dpad .down,.console-fullscreen .dpad .down,.theater-mode .dpad .down{left:33%!important}.game-stage:fullscreen .dpad-center,.console-fullscreen .dpad-center,.theater-mode .dpad-center{left:33%!important;top:33%!important;width:34%!important;height:34%!important;background:rgba(0,0,0,.25)!important;border:1px solid rgba(255,255,255,.15)}.game-stage:fullscreen .joystick-ring,.console-fullscreen .joystick-ring,.theater-mode .joystick-ring{width:88%!important;height:88%!important;border-color:rgba(255,255,255,.68)!important;background:radial-gradient(circle,rgba(255,255,255,.10),rgba(255,255,255,.025) 58%,rgba(0,0,0,.16) 60%)!important}.game-stage:fullscreen .joystick-knob,.console-fullscreen .joystick-knob,.theater-mode .joystick-knob{width:42%!important;height:42%!important;margin:-21% 0 0 -21%!important;border-color:#fff!important;background:rgba(255,255,255,.18)!important}.game-stage:fullscreen .action-buttons,.console-fullscreen .action-buttons,.theater-mode .action-buttons{right:max(24px,4vw)!important;top:50%!important;width:min(24vw,188px)!important;height:min(22vw,166px)!important;transform:translateY(-50%) rotate(-8deg)!important}.game-stage:fullscreen .action-buttons button,.console-fullscreen .action-buttons button,.theater-mode .action-buttons button{width:min(10vw,76px)!important;height:min(10vw,76px)!important;font-size:1.35rem!important}.game-stage:fullscreen .shoulder,.console-fullscreen .shoulder,.theater-mode .shoulder{top:max(18px,5vh)!important;width:min(15vw,112px)!important;height:48px!important;border-radius:999px!important}.game-stage:fullscreen .shoulder.l,.console-fullscreen .shoulder.l,.theater-mode .shoulder.l{left:max(30px,5vw)!important}.game-stage:fullscreen .shoulder.r,.console-fullscreen .shoulder.r,.theater-mode .shoulder.r{right:max(30px,5vw)!important}.game-stage:fullscreen .center-buttons,.console-fullscreen .center-buttons,.theater-mode .center-buttons{bottom:max(18px,env(safe-area-inset-bottom))!important;gap:22px!important}.game-stage:fullscreen .center-buttons button,.console-fullscreen .center-buttons button,.theater-mode .center-buttons button{width:74px!important;height:34px!important}.game-stage:fullscreen .center-buttons button small,.console-fullscreen .center-buttons button small,.theater-mode .center-buttons button small{top:38px!important;color:#fff!important}.game-stage:fullscreen .session-actions,.console-fullscreen .session-actions,.theater-mode .session-actions{position:absolute!important;z-index:5;left:50%;top:max(8px,env(safe-area-inset-top));bottom:auto!important;transform:translateX(-50%);display:flex!important;gap:6px!important;width:auto!important;margin:0!important;padding:5px!important;border:1px solid rgba(255,255,255,.12);border-radius:999px!important;background:rgba(0,0,0,.34)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.game-stage:fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#fullscreenButton):not(#controlModeButton):not(#gamepadActionButton):not(#pauseButton):not(#voiceButton),.console-fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#fullscreenButton):not(#controlModeButton):not(#gamepadActionButton):not(#pauseButton):not(#voiceButton),.theater-mode .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#fullscreenButton):not(#controlModeButton):not(#gamepadActionButton):not(#pauseButton):not(#voiceButton){display:none!important}.game-stage:fullscreen .session-actions .icon-action,.console-fullscreen .session-actions .icon-action,.theater-mode .session-actions .icon-action{display:flex!important;min-height:38px!important;padding:0 11px!important;border-radius:999px!important;background:rgba(20,20,22,.62)!important;font-size:.62rem}.game-stage:fullscreen .session-actions .icon-action>span:first-child,.console-fullscreen .session-actions .icon-action>span:first-child,.theater-mode .session-actions .icon-action>span:first-child{color:#fff!important}.game-stage:fullscreen .session-actions .speed-action.active,.console-fullscreen .session-actions .speed-action.active,.theater-mode .session-actions .speed-action.active{background:rgba(255,202,104,.24)!important;border-color:rgba(255,202,104,.8)!important}.portrait-fullscreen .game-stage{width:100dvh!important;height:100vw!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center}
@media(max-width:760px){.session-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.controller-top-actions small{display:none}.inline-control-mode{min-height:38px}.controls{height:330px}.dpad,.virtual-joystick{transform:scale(.9);transform-origin:left center}.action-buttons{transform:scale(.94) rotate(-8deg);transform-origin:right center}}
@media(orientation:landscape) and (max-height:520px){.game-stage:fullscreen .console-frame,.console-fullscreen .console-frame,.theater-mode .console-frame{width:min(48vw,calc((100dvh - 24px)*1.5),620px)!important}.game-stage:fullscreen .dpad,.console-fullscreen .dpad,.theater-mode .dpad,.game-stage:fullscreen .virtual-joystick,.console-fullscreen .virtual-joystick,.theater-mode .virtual-joystick{width:min(27vh,168px)!important;height:min(27vh,168px)!important}.game-stage:fullscreen .action-buttons,.console-fullscreen .action-buttons,.theater-mode .action-buttons{width:min(27vh,175px)!important;height:min(24vh,150px)!important}.game-stage:fullscreen .action-buttons button,.console-fullscreen .action-buttons button,.theater-mode .action-buttons button{width:min(15vh,68px)!important;height:min(15vh,68px)!important}.game-stage:fullscreen .session-actions .icon-action span:last-child,.console-fullscreen .session-actions .icon-action span:last-child,.theater-mode .session-actions .icon-action span:last-child{display:none}.game-stage:fullscreen .session-actions .icon-action,.console-fullscreen .session-actions .icon-action,.theater-mode .session-actions .icon-action{width:40px!important;padding:0!important}.game-stage:fullscreen .center-buttons,.console-fullscreen .center-buttons,.theater-mode .center-buttons{bottom:10px!important}}
/* v0.4.7 fullscreen aspect-ratio hardening: override compact playing-grid height. */
.game-stage:fullscreen .console-frame,.console-fullscreen .console-frame,.theater-mode .console-frame{display:block!important;height:auto!important;min-height:0!important;grid-template-rows:none!important}
.game-stage:fullscreen .screen-bezel,.console-fullscreen .screen-bezel,.theater-mode .screen-bezel{height:auto!important;min-height:0!important;aspect-ratio:auto!important}
.game-stage:fullscreen #screen,.console-fullscreen #screen,.theater-mode #screen{display:block!important;width:100%!important;height:auto!important;aspect-ratio:3/2!important}

/* v0.4.8 audio/mobile/gamepad UX */
.gamepad-activate{min-height:34px;padding:0 11px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.06);color:#d9e3df;font:750 .62rem/1 inherit;cursor:pointer;white-space:nowrap}.gamepad-activate:hover,.gamepad-activate:focus-visible{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.11)}.gamepad-mapping{display:none;color:#8b9b95;font:650 .52rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:0}.console-top:has(.gamepad-pill.connected) .gamepad-mapping{display:inline}.ready-row:has(.gamepad-activate){grid-template-columns:auto minmax(0,1fr) auto auto}.ready-row.done .gamepad-activate{border-color:rgba(62,233,155,.25);color:#c9f7e3;background:rgba(62,233,155,.06)}
@media (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .game-stage:fullscreen,.console-fullscreen .game-stage,.theater-mode .game-stage{--v48-game-w:min(60vw,calc((100dvh - 42px)*1.5),560px);--v48-side-w:calc((100vw - var(--v48-game-w))/2);--v48-pad:clamp(114px,31dvh,142px);--v48-action-w:clamp(116px,29dvh,140px);padding:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))!important}
  .game-stage:fullscreen .console-frame,.console-fullscreen .console-frame,.theater-mode .console-frame{width:var(--v48-game-w)!important;max-width:none!important;top:50%!important;padding:2px!important;border-radius:10px!important;box-shadow:0 10px 38px rgba(0,0,0,.72)!important}
  .game-stage:fullscreen .screen-bezel,.console-fullscreen .screen-bezel,.theater-mode .screen-bezel{padding:2px!important;border-radius:8px!important}
  .game-stage:fullscreen #screen,.console-fullscreen #screen,.theater-mode #screen{border-radius:5px!important}
  .game-stage:fullscreen .screen-shine,.console-fullscreen .screen-shine,.theater-mode .screen-shine{inset:2px!important;border-radius:5px!important}
  .game-stage:fullscreen .dpad,.console-fullscreen .dpad,.theater-mode .dpad,.game-stage:fullscreen .virtual-joystick,.console-fullscreen .virtual-joystick,.theater-mode .virtual-joystick{left:max(8px,calc((var(--v48-side-w) - var(--v48-pad))/2))!important;top:52%!important;width:var(--v48-pad)!important;height:var(--v48-pad)!important;transform:translateY(-50%)!important}
  .game-stage:fullscreen .joystick-ring,.console-fullscreen .joystick-ring,.theater-mode .joystick-ring{width:96%!important;height:96%!important}
  .game-stage:fullscreen .action-buttons,.console-fullscreen .action-buttons,.theater-mode .action-buttons{right:max(8px,calc((var(--v48-side-w) - var(--v48-action-w))/2))!important;top:52%!important;width:var(--v48-action-w)!important;height:clamp(132px,36dvh,158px)!important;transform:translateY(-50%) rotate(-7deg)!important}
  .game-stage:fullscreen .action-buttons button,.console-fullscreen .action-buttons button,.theater-mode .action-buttons button{width:clamp(58px,16dvh,70px)!important;height:clamp(58px,16dvh,70px)!important;font-size:1.25rem!important}
  .game-stage:fullscreen .action-buttons .a,.console-fullscreen .action-buttons .a,.theater-mode .action-buttons .a{right:0!important;top:2px!important}
  .game-stage:fullscreen .action-buttons .b,.console-fullscreen .action-buttons .b,.theater-mode .action-buttons .b{left:0!important;bottom:2px!important}
  .game-stage:fullscreen .shoulder,.console-fullscreen .shoulder,.theater-mode .shoulder{top:max(8px,env(safe-area-inset-top))!important;width:clamp(72px,11vw,96px)!important;height:38px!important;opacity:.82}
  .game-stage:fullscreen .shoulder.l,.console-fullscreen .shoulder.l,.theater-mode .shoulder.l{left:max(12px,calc(var(--v48-side-w)*.18))!important}
  .game-stage:fullscreen .shoulder.r,.console-fullscreen .shoulder.r,.theater-mode .shoulder.r{right:max(12px,calc(var(--v48-side-w)*.18))!important}
  .game-stage:fullscreen .center-buttons,.console-fullscreen .center-buttons,.theater-mode .center-buttons{bottom:max(6px,env(safe-area-inset-bottom))!important;gap:30px!important;z-index:6}
  .game-stage:fullscreen .center-buttons button,.console-fullscreen .center-buttons button,.theater-mode .center-buttons button{width:72px!important;height:30px!important;background:rgba(0,0,0,.46)!important}
  .game-stage:fullscreen .center-buttons button small,.console-fullscreen .center-buttons button small,.theater-mode .center-buttons button small{display:none!important}
  .game-stage:fullscreen .session-actions,.console-fullscreen .session-actions,.theater-mode .session-actions{top:max(4px,env(safe-area-inset-top))!important;gap:4px!important;padding:3px!important;opacity:.72;transition:opacity .16s ease}
  .game-stage:fullscreen .session-actions:active,.console-fullscreen .session-actions:active,.theater-mode .session-actions:active{opacity:1}
  .game-stage:fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#fullscreenButton):not(#controlModeButton),.console-fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#fullscreenButton):not(#controlModeButton),.theater-mode .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#fullscreenButton):not(#controlModeButton):not(#gamepadActionButton){display:none!important}
  .game-stage:fullscreen .session-actions .icon-action,.console-fullscreen .session-actions .icon-action,.theater-mode .session-actions .icon-action{width:38px!important;height:34px!important;min-height:34px!important;padding:0!important}
  .game-stage:fullscreen .controls button,.console-fullscreen .controls button,.theater-mode .controls button{border-color:rgba(255,255,255,.66)!important;background:rgba(0,0,0,.13)!important}
}
@media (orientation:landscape) and (max-height:430px) and (pointer:coarse){
  .game-stage:fullscreen,.console-fullscreen .game-stage,.theater-mode .game-stage{--v48-game-w:min(59vw,calc((100dvh - 34px)*1.5),540px);--v48-pad:clamp(108px,30dvh,128px);--v48-action-w:clamp(108px,29dvh,128px)}
  .game-stage:fullscreen .action-buttons,.console-fullscreen .action-buttons,.theater-mode .action-buttons{height:clamp(124px,35dvh,146px)!important}
  .game-stage:fullscreen .shoulder,.console-fullscreen .shoulder,.theater-mode .shoulder{height:34px!important}
}
@media(max-width:620px){.ready-row:has(.gamepad-activate){grid-template-columns:auto minmax(0,1fr) auto}.ready-row:has(.gamepad-activate) .ready-badge{display:none}.gamepad-activate{padding:0 9px}.gamepad-mapping{display:none!important}}

/* v0.4.8 mobile fullscreen: keep Start/Select in the black side rails, never over the game canvas. */
@media (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .game-stage:fullscreen .center-buttons,.console-fullscreen .center-buttons,.theater-mode .center-buttons{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;transform:none!important;pointer-events:none!important}
  .game-stage:fullscreen .center-buttons button,.console-fullscreen .center-buttons button,.theater-mode .center-buttons button{position:absolute!important;bottom:max(10px,env(safe-area-inset-bottom))!important;width:clamp(72px,10vw,86px)!important;height:34px!important;min-height:34px!important;padding:0 10px!important;border-radius:999px!important;pointer-events:auto!important;background:rgba(0,0,0,.34)!important}
  .game-stage:fullscreen .center-buttons [data-key="select"],.console-fullscreen .center-buttons [data-key="select"],.theater-mode .center-buttons [data-key="select"]{left:max(12px,calc((var(--v48-side-w) - clamp(72px,10vw,86px))/2))!important;right:auto!important}
  .game-stage:fullscreen .center-buttons [data-key="start"],.console-fullscreen .center-buttons [data-key="start"],.theater-mode .center-buttons [data-key="start"]{right:max(12px,calc((var(--v48-side-w) - clamp(72px,10vw,86px))/2))!important;left:auto!important}
  .game-stage:fullscreen .center-buttons button span,.console-fullscreen .center-buttons button span,.theater-mode .center-buttons button span{display:none!important}
  .game-stage:fullscreen .center-buttons button small,.console-fullscreen .center-buttons button small,.theater-mode .center-buttons button small{display:block!important;position:static!important;color:#fff!important;font-size:.55rem!important;line-height:1!important;letter-spacing:.08em!important}
}

/* v0.4.9 forced update, visible gamepad action and touch-capability mobile fullscreen */
.version-badge{display:inline-flex;margin-left:5px;padding:2px 5px;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#d4d4d8;font-size:.48rem;letter-spacing:.04em;vertical-align:middle}.gamepad-action.connected{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.11);color:#fff}.gamepad-action.connected span:first-child{color:#fff}

@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  body.mobile-console-capable.console-fullscreen .room-shell,
  body.mobile-console-capable.theater-mode .room-shell{padding:0!important}
  .mobile-console-capable .game-stage:fullscreen,
  .mobile-console-capable.console-fullscreen .game-stage,
  .mobile-console-capable.theater-mode .game-stage{
    --v49-game-w:min(62vw,calc((100dvh - 18px)*1.5),620px);
    --v49-side-w:calc((100vw - var(--v49-game-w))/2);
    --v49-pad:clamp(112px,32dvh,132px);
    --v49-action-w:clamp(116px,31dvh,134px);
    position:relative!important;display:block!important;width:100vw!important;height:100dvh!important;max-width:none!important;margin:0!important;padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))!important;background:#000!important;overflow:hidden!important
  }
  .mobile-console-capable .game-stage:fullscreen .screen-column,
  .mobile-console-capable.console-fullscreen .screen-column,
  .mobile-console-capable.theater-mode .screen-column{position:relative!important;display:block!important;width:100%!important;height:100%!important;min-height:0!important}
  .mobile-console-capable .game-stage:fullscreen .console-frame,
  .mobile-console-capable.console-fullscreen .console-frame,
  .mobile-console-capable.theater-mode .console-frame{position:absolute!important;z-index:2!important;left:50%!important;top:50%!important;width:var(--v49-game-w)!important;height:auto!important;max-width:none!important;min-height:0!important;margin:0!important;padding:2px!important;transform:translate(-50%,-50%)!important;border-radius:9px!important;background:#000!important;box-shadow:0 10px 42px rgba(0,0,0,.8)!important}
  .mobile-console-capable .game-stage:fullscreen .screen-bezel,
  .mobile-console-capable.console-fullscreen .screen-bezel,
  .mobile-console-capable.theater-mode .screen-bezel{width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:2px!important;border-radius:7px!important;background:#000!important}
  .mobile-console-capable .game-stage:fullscreen #screen,
  .mobile-console-capable.console-fullscreen #screen,
  .mobile-console-capable.theater-mode #screen{display:block!important;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:3/2!important;border-radius:4px!important;object-fit:contain!important}
  .mobile-console-capable .game-stage:fullscreen .screen-shine,
  .mobile-console-capable.console-fullscreen .screen-shine,
  .mobile-console-capable.theater-mode .screen-shine{inset:2px!important;border-radius:4px!important}
  .mobile-console-capable .game-stage:fullscreen .console-top,
  .mobile-console-capable .game-stage:fullscreen .console-meta,
  .mobile-console-capable.console-fullscreen .console-top,
  .mobile-console-capable.console-fullscreen .console-meta,
  .mobile-console-capable.theater-mode .console-top,
  .mobile-console-capable.theater-mode .console-meta{display:none!important}
  .mobile-console-capable .game-stage:fullscreen .controller-panel,
  .mobile-console-capable.console-fullscreen .controller-panel,
  .mobile-console-capable.theater-mode .controller-panel{position:absolute!important;z-index:5!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;pointer-events:none!important;overflow:visible!important}
  .mobile-console-capable .game-stage:fullscreen .controls,
  .mobile-console-capable.console-fullscreen .controls,
  .mobile-console-capable.theater-mode .controls{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;transform:none!important;pointer-events:none!important}
  .mobile-console-capable .game-stage:fullscreen .controls button,
  .mobile-console-capable.console-fullscreen .controls button,
  .mobile-console-capable.theater-mode .controls button{pointer-events:auto!important;border-color:rgba(255,255,255,.72)!important;background:rgba(0,0,0,.18)!important;color:#fff!important;box-shadow:0 4px 12px rgba(0,0,0,.4),inset 0 -3px 0 rgba(0,0,0,.28)!important}
  .mobile-console-capable .game-stage:fullscreen .virtual-joystick,
  .mobile-console-capable.console-fullscreen .virtual-joystick,
  .mobile-console-capable.theater-mode .virtual-joystick{position:absolute!important;left:max(6px,calc((var(--v49-side-w) - var(--v49-pad))/2))!important;top:52%!important;width:var(--v49-pad)!important;height:var(--v49-pad)!important;transform:translateY(-50%)!important;pointer-events:auto!important}
  .mobile-console-capable .game-stage:fullscreen .joystick-ring,
  .mobile-console-capable.console-fullscreen .joystick-ring,
  .mobile-console-capable.theater-mode .joystick-ring{width:96%!important;height:96%!important}
  .mobile-console-capable .game-stage:fullscreen .dpad,
  .mobile-console-capable.console-fullscreen .dpad,
  .mobile-console-capable.theater-mode .dpad{position:absolute!important;left:max(-13px,calc((var(--v49-side-w) - 176px)/2))!important;top:52%!important;width:176px!important;height:176px!important;transform:translateY(-50%) scale(.70)!important;transform-origin:center!important;pointer-events:auto!important}
  .mobile-console-capable .game-stage:fullscreen .action-buttons,
  .mobile-console-capable.console-fullscreen .action-buttons,
  .mobile-console-capable.theater-mode .action-buttons{position:absolute!important;right:max(6px,calc((var(--v49-side-w) - var(--v49-action-w))/2))!important;top:52%!important;width:var(--v49-action-w)!important;height:clamp(132px,38dvh,160px)!important;transform:translateY(-50%) rotate(-7deg)!important;pointer-events:auto!important}
  .mobile-console-capable .game-stage:fullscreen .action-buttons button,
  .mobile-console-capable.console-fullscreen .action-buttons button,
  .mobile-console-capable.theater-mode .action-buttons button{width:clamp(60px,17dvh,72px)!important;height:clamp(60px,17dvh,72px)!important;font-size:1.26rem!important}
  .mobile-console-capable .game-stage:fullscreen .action-buttons .a,
  .mobile-console-capable.console-fullscreen .action-buttons .a,
  .mobile-console-capable.theater-mode .action-buttons .a{right:0!important;top:0!important}
  .mobile-console-capable .game-stage:fullscreen .action-buttons .b,
  .mobile-console-capable.console-fullscreen .action-buttons .b,
  .mobile-console-capable.theater-mode .action-buttons .b{left:0!important;bottom:0!important}
  .mobile-console-capable .game-stage:fullscreen .shoulder,
  .mobile-console-capable.console-fullscreen .shoulder,
  .mobile-console-capable.theater-mode .shoulder{top:max(6px,env(safe-area-inset-top))!important;width:clamp(68px,10vw,90px)!important;height:34px!important;opacity:.86!important;pointer-events:auto!important}
  .mobile-console-capable .game-stage:fullscreen .shoulder.l,
  .mobile-console-capable.console-fullscreen .shoulder.l,
  .mobile-console-capable.theater-mode .shoulder.l{left:max(8px,calc((var(--v49-side-w) - clamp(68px,10vw,90px))/2))!important}
  .mobile-console-capable .game-stage:fullscreen .shoulder.r,
  .mobile-console-capable.console-fullscreen .shoulder.r,
  .mobile-console-capable.theater-mode .shoulder.r{right:max(8px,calc((var(--v49-side-w) - clamp(68px,10vw,90px))/2))!important}
  .mobile-console-capable .game-stage:fullscreen .center-buttons,
  .mobile-console-capable.console-fullscreen .center-buttons,
  .mobile-console-capable.theater-mode .center-buttons{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;transform:none!important;pointer-events:none!important}
  .mobile-console-capable .game-stage:fullscreen .center-buttons button,
  .mobile-console-capable.console-fullscreen .center-buttons button,
  .mobile-console-capable.theater-mode .center-buttons button{position:absolute!important;bottom:max(7px,env(safe-area-inset-bottom))!important;width:clamp(68px,10vw,84px)!important;height:32px!important;min-height:32px!important;border-radius:999px!important;pointer-events:auto!important}
  .mobile-console-capable .game-stage:fullscreen .center-buttons [data-key="select"],
  .mobile-console-capable.console-fullscreen .center-buttons [data-key="select"],
  .mobile-console-capable.theater-mode .center-buttons [data-key="select"]{left:max(8px,calc((var(--v49-side-w) - clamp(68px,10vw,84px))/2))!important;right:auto!important}
  .mobile-console-capable .game-stage:fullscreen .center-buttons [data-key="start"],
  .mobile-console-capable.console-fullscreen .center-buttons [data-key="start"],
  .mobile-console-capable.theater-mode .center-buttons [data-key="start"]{right:max(8px,calc((var(--v49-side-w) - clamp(68px,10vw,84px))/2))!important;left:auto!important}
  .mobile-console-capable .game-stage:fullscreen .center-buttons button span,
  .mobile-console-capable.console-fullscreen .center-buttons button span,
  .mobile-console-capable.theater-mode .center-buttons button span{display:none!important}
  .mobile-console-capable .game-stage:fullscreen .center-buttons button small,
  .mobile-console-capable.console-fullscreen .center-buttons button small,
  .mobile-console-capable.theater-mode .center-buttons button small{display:block!important;position:static!important;color:#fff!important;font-size:.55rem!important;letter-spacing:.08em!important}
  .mobile-console-capable .game-stage:fullscreen .session-actions,
  .mobile-console-capable.console-fullscreen .session-actions,
  .mobile-console-capable.theater-mode .session-actions{position:absolute!important;z-index:9!important;left:50%!important;top:max(3px,env(safe-area-inset-top))!important;bottom:auto!important;display:flex!important;width:auto!important;margin:0!important;padding:2px!important;gap:3px!important;transform:translateX(-50%)!important;border-radius:10px!important;background:rgba(0,0,0,.38)!important;backdrop-filter:blur(5px)!important;opacity:.72!important}
  .mobile-console-capable .game-stage:fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#fullscreenButton),
  .mobile-console-capable.console-fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#fullscreenButton),
  .mobile-console-capable.theater-mode .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#fullscreenButton){display:none!important}
  .mobile-console-capable .game-stage:fullscreen .session-actions .icon-action,
  .mobile-console-capable.console-fullscreen .session-actions .icon-action,
  .mobile-console-capable.theater-mode .session-actions .icon-action{display:flex!important;width:35px!important;height:31px!important;min-height:31px!important;padding:0!important;border-radius:8px!important}
  .mobile-console-capable .game-stage:fullscreen .session-actions .icon-action span:last-child,
  .mobile-console-capable.console-fullscreen .session-actions .icon-action span:last-child,
  .mobile-console-capable.theater-mode .session-actions .icon-action span:last-child{display:none!important}
  .mobile-console-capable .game-stage:fullscreen .voice-players,
  .mobile-console-capable.console-fullscreen .voice-players,
  .mobile-console-capable.theater-mode .voice-players{display:none!important}
}

@media (orientation:landscape) and (max-height:430px) and (max-width:900px){
  .mobile-console-capable .game-stage:fullscreen,
  .mobile-console-capable.console-fullscreen .game-stage,
  .mobile-console-capable.theater-mode .game-stage{--v49-game-w:min(62vw,calc((100dvh - 14px)*1.5),560px);--v49-pad:clamp(108px,31dvh,122px);--v49-action-w:clamp(108px,30dvh,124px)}
}

/* v0.4.9 viewport centering: avoid inherited room-shell padding shifting the console. */
@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  .mobile-console-capable .game-stage:fullscreen .console-frame,
  .mobile-console-capable.console-fullscreen .console-frame,
  .mobile-console-capable.theater-mode .console-frame{left:50vw!important;top:50dvh!important}
}

@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  .mobile-console-capable .game-stage:fullscreen .console-frame,
  .mobile-console-capable.console-fullscreen .console-frame,
  .mobile-console-capable.theater-mode .console-frame{position:fixed!important;left:50vw!important;top:50dvh!important}
}

/* Keep the new gamepad action visible over older v0.4.8 fullscreen hide rules. */
@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  .mobile-console-capable .game-stage:fullscreen #gamepadActionButton,
  .mobile-console-capable.console-fullscreen #gamepadActionButton,
  .mobile-console-capable.theater-mode #gamepadActionButton{display:flex!important;width:35px!important;height:31px!important;min-width:35px!important;min-height:31px!important;padding:0!important;visibility:visible!important;opacity:1!important}
}

/* v0.4.9 gamepad action: outrank legacy fullscreen filters carrying several ID selectors. */
html body #game #gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
}
@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  html body.mobile-console-capable #game #gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton{
    display:flex!important;
    width:35px!important;
    height:31px!important;
    min-width:35px!important;
    min-height:31px!important;
    padding:0!important;
  }
}


/* v0.5.3: COD/PUBG-style floating joystick on the complete left half. */
#touchControls.joystick-mode{contain:none!important}
#touchControls.joystick-mode .virtual-joystick{
  position:absolute!important;
  z-index:7!important;
  left:0!important;
  top:0!important;
  width:50%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  transform:none!important;
  display:block;
  pointer-events:auto!important;
  touch-action:none!important;
  overflow:visible!important;
  background:transparent!important;
}
#touchControls.joystick-mode .virtual-joystick.hidden{display:none!important}
#touchControls.joystick-mode .virtual-joystick .joystick-ring{
  position:absolute!important;
  left:50%!important;
  top:58%!important;
  width:132px!important;
  height:132px!important;
  margin:0!important;
  opacity:0;
  transform:translate(-50%,-50%) scale(.72);
  transition:opacity .09s ease,transform .09s ease;
  pointer-events:none!important;
}
#touchControls.joystick-mode .virtual-joystick.active .joystick-ring{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}
#touchControls.joystick-mode .virtual-joystick .joystick-knob{
  width:58px!important;
  height:58px!important;
  margin:-29px 0 0 -29px!important;
  transition:none!important;
}
#touchControls.joystick-mode .controls button{position:absolute;z-index:8}
#touchControls.joystick-mode .action-buttons,
#touchControls.joystick-mode .center-buttons{z-index:8}
@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  .mobile-console-capable #touchControls.joystick-mode .virtual-joystick,
  .mobile-console-capable.console-fullscreen #touchControls.joystick-mode .virtual-joystick,
  .mobile-console-capable.theater-mode #touchControls.joystick-mode .virtual-joystick{
    position:fixed!important;
    left:0!important;
    top:0!important;
    width:50vw!important;
    height:100dvh!important;
    transform:none!important;
  }
  .mobile-console-capable #touchControls.joystick-mode .virtual-joystick .joystick-ring,
  .mobile-console-capable.console-fullscreen #touchControls.joystick-mode .virtual-joystick .joystick-ring,
  .mobile-console-capable.theater-mode #touchControls.joystick-mode .virtual-joystick .joystick-ring{
    width:clamp(116px,32dvh,142px)!important;
    height:clamp(116px,32dvh,142px)!important;
    margin:0!important;
  }
}


/* v0.5.5: reliable top toolbar hit-testing during multi-touch gameplay. */
body.mobile-console-capable .game-stage:fullscreen .session-actions,
body.mobile-console-capable.console-fullscreen .session-actions,
body.mobile-console-capable.theater-mode .session-actions{
  z-index:1000!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  isolation:isolate!important;
  opacity:1!important;
}
body.mobile-console-capable .game-stage:fullscreen .session-actions .icon-action,
body.mobile-console-capable.console-fullscreen .session-actions .icon-action,
body.mobile-console-capable.theater-mode .session-actions .icon-action{
  position:relative!important;
  z-index:1001!important;
  min-width:44px!important;
  width:44px!important;
  min-height:44px!important;
  height:44px!important;
  padding:0!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-user-select:none!important;
  user-select:none!important;
}

body.mobile-console-capable .game-stage:fullscreen .session-actions button,
body.mobile-console-capable.console-fullscreen .session-actions button,
body.mobile-console-capable.theater-mode .session-actions button{
  position:relative!important;
  z-index:1001!important;
  min-width:44px!important;
  width:44px!important;
  min-height:44px!important;
  height:44px!important;
  padding:0!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-user-select:none!important;
  user-select:none!important;
}
body.mobile-console-capable .game-stage:fullscreen .session-actions .icon-action.touch-active,
body.mobile-console-capable.console-fullscreen .session-actions .icon-action.touch-active,
body.mobile-console-capable.theater-mode .session-actions .icon-action.touch-active{
  transform:scale(.94)!important;
  background:rgba(255,255,255,.22)!important;
}

html body.mobile-console-capable #game #gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton{
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  padding:0!important;
}


/* v0.5.6: compact landscape dock with quick save and reliable multi-touch. */
@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  body.mobile-console-capable .game-stage:fullscreen .session-actions,
  body.mobile-console-capable.console-fullscreen .session-actions,
  body.mobile-console-capable.theater-mode .session-actions{
    z-index:1000!important;
    left:50%!important;
    top:max(2px,env(safe-area-inset-top))!important;
    bottom:auto!important;
    width:auto!important;
    height:36px!important;
    min-height:36px!important;
    padding:2px!important;
    gap:2px!important;
    border:1px solid rgba(255,255,255,.07)!important;
    border-radius:10px!important;
    background:rgba(0,9,8,.28)!important;
    backdrop-filter:blur(3px)!important;
    box-shadow:none!important;
    opacity:.58!important;
    transition:opacity .15s ease,background .15s ease!important;
  }
  body.mobile-console-capable .game-stage:fullscreen .session-actions.toolbar-active,
  body.mobile-console-capable.console-fullscreen .session-actions.toolbar-active,
  body.mobile-console-capable.theater-mode .session-actions.toolbar-active,
  body.mobile-console-capable .game-stage:fullscreen .session-actions:focus-within,
  body.mobile-console-capable.console-fullscreen .session-actions:focus-within,
  body.mobile-console-capable.theater-mode .session-actions:focus-within{
    opacity:1!important;
    background:rgba(0,15,12,.72)!important;
  }
  body.mobile-console-capable .game-stage:fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#fullscreenButton),
  body.mobile-console-capable.console-fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#fullscreenButton),
  body.mobile-console-capable.theater-mode .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#fullscreenButton){
    display:none!important;
  }
  body.mobile-console-capable .game-stage:fullscreen .session-actions .icon-action,
  body.mobile-console-capable.console-fullscreen .session-actions .icon-action,
  body.mobile-console-capable.theater-mode .session-actions .icon-action,
  html body.mobile-console-capable #game #gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton{
    display:flex!important;
    position:relative!important;
    z-index:1001!important;
    width:32px!important;
    min-width:32px!important;
    height:30px!important;
    min-height:30px!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.08)!important;
    border-radius:8px!important;
    background:rgba(13,43,36,.58)!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    opacity:1!important;
  }
  body.mobile-console-capable .game-stage:fullscreen #safeSaveButton,
  body.mobile-console-capable.console-fullscreen #safeSaveButton,
  body.mobile-console-capable.theater-mode #safeSaveButton{
    color:#dffff0!important;
    background:rgba(62,233,155,.16)!important;
    border-color:rgba(62,233,155,.26)!important;
  }
  body.mobile-console-capable .game-stage:fullscreen .session-actions .icon-action>span:first-child,
  body.mobile-console-capable.console-fullscreen .session-actions .icon-action>span:first-child,
  body.mobile-console-capable.theater-mode .session-actions .icon-action>span:first-child{
    font-size:.86rem!important;
  }
  body.mobile-console-capable .game-stage:fullscreen .session-actions .icon-action>span:last-child,
  body.mobile-console-capable.console-fullscreen .session-actions .icon-action>span:last-child,
  body.mobile-console-capable.theater-mode .session-actions .icon-action>span:last-child{
    display:none!important;
  }
}

@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  html body.mobile-console-capable #game #safeSaveButton#safeSaveButton#safeSaveButton#safeSaveButton#safeSaveButton{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    width:32px!important;
    min-width:32px!important;
    height:30px!important;
    min-height:30px!important;
    padding:0!important;
  }
}


/* v0.6.0 · solo mode + versioned backups */
.dashboard-actions{display:flex;gap:.55rem;align-items:center}.game-create-row.multi-action{grid-template-columns:minmax(0,1fr) auto auto}.backups-panel{margin-top:1rem;padding:1rem;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(7,16,24,.55)}.backups-head,.backup-game-head,.backup-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.backups-head>div,.backup-row>div{display:flex;flex-direction:column;gap:.18rem}.backup-policy{margin:.7rem 0 1rem;font-size:.86rem;opacity:.78;line-height:1.45}.backups-list{display:grid;gap:.85rem}.backup-game{display:grid;gap:.55rem;padding:.85rem;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.035)}.backup-game-head{padding-bottom:.35rem}.backup-row{padding:.65rem 0;border-top:1px solid rgba(255,255,255,.08)}.backup-row strong{font-size:.8rem;word-break:break-all}.backup-row small{opacity:.72}.game-actions{flex-wrap:wrap}@media(max-width:760px){.game-create-row.multi-action{grid-template-columns:1fr}.dashboard-actions{flex-wrap:wrap;justify-content:flex-end}.backup-row,.backup-game-head{align-items:flex-start}.backup-row{flex-direction:column}.backup-row button{width:100%}}

/* v0.6.3 — unique semantic in-game action icons */
.session-actions .action-symbol{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI Symbol","Apple Symbols","Noto Sans Symbols 2",sans-serif;font-size:1.08rem;line-height:1;min-width:1.15em;text-align:center}.session-actions #voiceButton .action-symbol,.session-actions #gamepadActionButton .action-symbol,.session-actions #safeSaveButton .action-symbol{font-family:-apple-system,BlinkMacSystemFont,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:1rem}.session-actions button[aria-pressed="true"]{border-color:rgba(255,255,255,.32)}

/* v0.6.4 — always-visible compact speed indicator in landscape fullscreen */
#fastForwardButton .speed-badge{display:none;min-width:2.25em;padding:.18em .42em;border-radius:999px;background:rgba(255,202,104,.16);color:#ffca68;font-size:.72rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
@media (orientation:landscape){
  .game-stage:fullscreen #fastForwardButton .speed-label,.console-fullscreen #fastForwardButton .speed-label,.theater-mode #fastForwardButton .speed-label{display:none!important}
  .game-stage:fullscreen #fastForwardButton .speed-badge,.console-fullscreen #fastForwardButton .speed-badge,.theater-mode #fastForwardButton .speed-badge{display:inline-flex!important;align-items:center;justify-content:center}
  .game-stage:fullscreen #fastForwardButton,.console-fullscreen #fastForwardButton,.theater-mode #fastForwardButton{width:auto!important;min-width:58px!important;padding:0 7px!important;gap:4px!important}
}


/* v0.6.5 — physical viewport centering in landscape fullscreen.
   iPhone landscape safe-area can be asymmetric (notch on only one side).
   Never use that asymmetric inset as the coordinate system for the game canvas. */
@media (orientation:landscape) and (pointer:coarse){
  .game-stage:fullscreen,
  .console-fullscreen .game-stage,
  .theater-mode .game-stage,
  .mobile-console-capable .game-stage:fullscreen,
  .mobile-console-capable.console-fullscreen .game-stage,
  .mobile-console-capable.theater-mode .game-stage{
    --fs-safe-x:max(8px,env(safe-area-inset-left),env(safe-area-inset-right));
    padding-left:0!important;
    padding-right:0!important;
  }
  .game-stage:fullscreen .screen-column,
  .console-fullscreen .game-stage .screen-column,
  .theater-mode .game-stage .screen-column,
  .mobile-console-capable .game-stage:fullscreen .screen-column,
  .mobile-console-capable.console-fullscreen .screen-column,
  .mobile-console-capable.theater-mode .screen-column{
    position:absolute!important;
    left:0!important;
    top:0!important;
    width:100vw!important;
    height:100dvh!important;
  }
  .game-stage:fullscreen .console-frame,
  .console-fullscreen .console-frame,
  .theater-mode .console-frame,
  .mobile-console-capable .game-stage:fullscreen .console-frame,
  .mobile-console-capable.console-fullscreen .console-frame,
  .mobile-console-capable.theater-mode .console-frame{
    left:50vw!important;
    right:auto!important;
    transform:translate(-50%,-50%)!important;
  }
}
@media (orientation:landscape) and (max-height:700px) and (pointer:coarse){
  .game-stage:fullscreen,
  .console-fullscreen .game-stage,
  .theater-mode .game-stage{
    --fs-game-w:var(--v49-game-w,var(--v48-game-w,min(60vw,calc((100dvh - 34px)*1.5),620px)));
    --fs-side-w:calc((100vw - var(--fs-game-w))/2);
  }
  .game-stage:fullscreen .dpad,
  .console-fullscreen .dpad,
  .theater-mode .dpad,
  .mobile-console-capable .game-stage:fullscreen .dpad,
  .mobile-console-capable.console-fullscreen .dpad,
  .mobile-console-capable.theater-mode .dpad{
    left:max(var(--fs-safe-x),calc((var(--fs-side-w) - 176px)/2))!important;
  }
  .game-stage:fullscreen .virtual-joystick,
  .console-fullscreen .virtual-joystick,
  .theater-mode .virtual-joystick,
  .mobile-console-capable .game-stage:fullscreen .virtual-joystick,
  .mobile-console-capable.console-fullscreen .virtual-joystick,
  .mobile-console-capable.theater-mode .virtual-joystick{
    left:max(var(--fs-safe-x),calc((var(--fs-side-w) - var(--v49-pad,var(--v48-pad,132px)))/2))!important;
  }
  .game-stage:fullscreen .action-buttons,
  .console-fullscreen .action-buttons,
  .theater-mode .action-buttons,
  .mobile-console-capable .game-stage:fullscreen .action-buttons,
  .mobile-console-capable.console-fullscreen .action-buttons,
  .mobile-console-capable.theater-mode .action-buttons{
    right:max(var(--fs-safe-x),calc((var(--fs-side-w) - var(--v49-action-w,var(--v48-action-w,134px)))/2))!important;
  }
  .game-stage:fullscreen .shoulder.l,
  .console-fullscreen .shoulder.l,
  .theater-mode .shoulder.l,
  .mobile-console-capable .game-stage:fullscreen .shoulder.l,
  .mobile-console-capable.console-fullscreen .shoulder.l,
  .mobile-console-capable.theater-mode .shoulder.l{
    left:max(var(--fs-safe-x),calc((var(--fs-side-w) - clamp(68px,10vw,96px))/2))!important;
  }
  .game-stage:fullscreen .shoulder.r,
  .console-fullscreen .shoulder.r,
  .theater-mode .shoulder.r,
  .mobile-console-capable .game-stage:fullscreen .shoulder.r,
  .mobile-console-capable.console-fullscreen .shoulder.r,
  .mobile-console-capable.theater-mode .shoulder.r{
    right:max(var(--fs-safe-x),calc((var(--fs-side-w) - clamp(68px,10vw,96px))/2))!important;
  }
  .game-stage:fullscreen .center-buttons [data-key="select"],
  .console-fullscreen .center-buttons [data-key="select"],
  .theater-mode .center-buttons [data-key="select"],
  .mobile-console-capable .game-stage:fullscreen .center-buttons [data-key="select"],
  .mobile-console-capable.console-fullscreen .center-buttons [data-key="select"],
  .mobile-console-capable.theater-mode .center-buttons [data-key="select"]{
    left:max(var(--fs-safe-x),calc((var(--fs-side-w) - clamp(68px,10vw,86px))/2))!important;
    right:auto!important;
  }
  .game-stage:fullscreen .center-buttons [data-key="start"],
  .console-fullscreen .center-buttons [data-key="start"],
  .theater-mode .center-buttons [data-key="start"],
  .mobile-console-capable .game-stage:fullscreen .center-buttons [data-key="start"],
  .mobile-console-capable.console-fullscreen .center-buttons [data-key="start"],
  .mobile-console-capable.theater-mode .center-buttons [data-key="start"]{
    right:max(var(--fs-safe-x),calc((var(--fs-side-w) - clamp(68px,10vw,86px))/2))!important;
    left:auto!important;
  }
  .game-stage:fullscreen .session-actions,
  .console-fullscreen .session-actions,
  .theater-mode .session-actions,
  .mobile-console-capable .game-stage:fullscreen .session-actions,
  .mobile-console-capable.console-fullscreen .session-actions,
  .mobile-console-capable.theater-mode .session-actions{
    left:50vw!important;
    right:auto!important;
    transform:translateX(-50%)!important;
  }
}


/* v0.6.6 — frontend layout consolidation. */
#game .session-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
#game .session-actions>.voice-players,#game .session-actions>.audio-mixer,#game .session-actions>.layout-adjust-panel{grid-column:1/-1}
#game .session-actions>.icon-action{box-sizing:border-box;width:100%;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap}
#game .session-actions>.icon-action>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#game #fastForwardButton .speed-badge{flex:0 0 auto}
@media(max-width:760px){#game .session-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(orientation:landscape) and (min-width:901px){body.playing:not(.console-fullscreen):not(.theater-mode) #game .session-actions{grid-template-columns:repeat(5,minmax(0,1fr))!important}body.playing:not(.console-fullscreen):not(.theater-mode) #game .session-actions>.icon-action{width:100%!important;min-width:0!important;height:auto!important;padding:0 10px!important}body.playing:not(.console-fullscreen):not(.theater-mode) #game .session-actions>.icon-action>span:last-child{display:inline!important}}

.layout-adjust-panel{position:fixed!important;z-index:1700!important;left:50%!important;bottom:max(16px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:min(430px,calc(100vw - 24px))!important;padding:14px!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:18px!important;background:rgba(17,17,20,.96)!important;box-shadow:0 22px 80px rgba(0,0,0,.58)!important;backdrop-filter:blur(18px)!important;color:#f4f4f5!important;text-align:left!important;pointer-events:auto!important}
.layout-adjust-panel.hidden{display:none!important}.layout-adjust-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.layout-adjust-head>div{display:grid;gap:3px}.layout-adjust-head small{color:#8f9a96;font-size:.55rem;font-weight:900;letter-spacing:.15em}.layout-adjust-head strong{font-size:.94rem}.layout-adjust-close{width:34px;height:34px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font-size:1.15rem}.layout-adjust-panel>p{margin:8px 0 12px;color:#aeb7b4;font-size:.68rem;line-height:1.4}.layout-adjust-panel>label{display:grid;grid-template-columns:82px minmax(0,1fr) 48px;align-items:center;gap:8px;margin:9px 0;color:#d8dcda;font-size:.68rem;font-weight:750}.layout-adjust-panel input[type=range]{width:100%;accent-color:#d4d4d8}.layout-adjust-panel output{text-align:right;font-variant-numeric:tabular-nums;color:#fff}.layout-adjust-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px;margin-top:13px}.layout-adjust-actions button{min-height:38px}

@media (orientation:landscape) and (pointer:coarse){
  .game-stage:fullscreen,.console-fullscreen .game-stage,.theater-mode .game-stage,.mobile-console-capable .game-stage:fullscreen,.mobile-console-capable.console-fullscreen .game-stage,.mobile-console-capable.theater-mode .game-stage{--q-screen-x:50vw;--q-screen-y:50dvh;--q-screen-scale:1;--q-toolbar-x:50vw;--q-viewport-w:100vw;--q-viewport-h:100dvh;padding-left:0!important;padding-right:0!important}
  .game-stage:fullscreen .console-frame,.console-fullscreen .console-frame,.theater-mode .console-frame,.mobile-console-capable .game-stage:fullscreen .console-frame,.mobile-console-capable.console-fullscreen .console-frame,.mobile-console-capable.theater-mode .console-frame{position:fixed!important;left:var(--q-screen-x)!important;top:var(--q-screen-y)!important;transform:translate(-50%,-50%) scale(var(--q-screen-scale))!important;transform-origin:center!important}
  .game-stage:fullscreen .session-actions,.console-fullscreen .session-actions,.theater-mode .session-actions,.mobile-console-capable .game-stage:fullscreen .session-actions,.mobile-console-capable.console-fullscreen .session-actions,.mobile-console-capable.theater-mode .session-actions{left:var(--q-toolbar-x)!important;right:auto!important;transform:translateX(-50%)!important}
  html body.mobile-console-capable #game #layoutAdjustButton#layoutAdjustButton#layoutAdjustButton{display:flex!important;visibility:visible!important;opacity:1!important}
}
@media (orientation:landscape) and (max-height:700px) and (pointer:coarse){
  .game-stage:fullscreen,.console-fullscreen .game-stage,.theater-mode .game-stage{--q-game-w:var(--v49-game-w,var(--v48-game-w,min(62vw,calc((100dvh - 18px)*1.5),620px)));--q-side-w:calc((100vw - var(--q-game-w))/2);--q-pad:var(--v49-pad,var(--v48-pad,132px));--q-action-w:var(--v49-action-w,var(--v48-action-w,134px));--q-safe:max(8px,env(safe-area-inset-left),env(safe-area-inset-right))}
  .game-stage:fullscreen .dpad,.console-fullscreen .dpad,.theater-mode .dpad,.mobile-console-capable .game-stage:fullscreen .dpad,.mobile-console-capable.console-fullscreen .dpad,.mobile-console-capable.theater-mode .dpad{left:max(var(--q-safe),calc((var(--q-side-w) - 176px)/2))!important;right:auto!important}
  .game-stage:fullscreen .virtual-joystick,.console-fullscreen .virtual-joystick,.theater-mode .virtual-joystick,.mobile-console-capable .game-stage:fullscreen .virtual-joystick,.mobile-console-capable.console-fullscreen .virtual-joystick,.mobile-console-capable.theater-mode .virtual-joystick{left:max(var(--q-safe),calc((var(--q-side-w) - var(--q-pad))/2))!important;right:auto!important}
  .game-stage:fullscreen .action-buttons,.console-fullscreen .action-buttons,.theater-mode .action-buttons,.mobile-console-capable .game-stage:fullscreen .action-buttons,.mobile-console-capable.console-fullscreen .action-buttons,.mobile-console-capable.theater-mode .action-buttons{right:max(var(--q-safe),calc((var(--q-side-w) - var(--q-action-w))/2))!important;left:auto!important}
  .game-stage:fullscreen .shoulder.l,.console-fullscreen .shoulder.l,.theater-mode .shoulder.l,.mobile-console-capable .game-stage:fullscreen .shoulder.l,.mobile-console-capable.console-fullscreen .shoulder.l,.mobile-console-capable.theater-mode .shoulder.l{left:max(var(--q-safe),calc((var(--q-side-w) - clamp(68px,10vw,90px))/2))!important;right:auto!important}
  .game-stage:fullscreen .shoulder.r,.console-fullscreen .shoulder.r,.theater-mode .shoulder.r,.mobile-console-capable .game-stage:fullscreen .shoulder.r,.mobile-console-capable.console-fullscreen .shoulder.r,.mobile-console-capable.theater-mode .shoulder.r{right:max(var(--q-safe),calc((var(--q-side-w) - clamp(68px,10vw,90px))/2))!important;left:auto!important}
  .game-stage:fullscreen .center-buttons [data-key="select"],.console-fullscreen .center-buttons [data-key="select"],.theater-mode .center-buttons [data-key="select"],.mobile-console-capable .game-stage:fullscreen .center-buttons [data-key="select"],.mobile-console-capable.console-fullscreen .center-buttons [data-key="select"],.mobile-console-capable.theater-mode .center-buttons [data-key="select"]{left:max(var(--q-safe),calc((var(--q-side-w) - clamp(68px,10vw,84px))/2))!important;right:auto!important}
  .game-stage:fullscreen .center-buttons [data-key="start"],.console-fullscreen .center-buttons [data-key="start"],.theater-mode .center-buttons [data-key="start"],.mobile-console-capable .game-stage:fullscreen .center-buttons [data-key="start"],.mobile-console-capable.console-fullscreen .center-buttons [data-key="start"],.mobile-console-capable.theater-mode .center-buttons [data-key="start"]{right:max(var(--q-safe),calc((var(--q-side-w) - clamp(68px,10vw,84px))/2))!important;left:auto!important}
  .game-stage:fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#layoutAdjustButton):not(#fullscreenButton),.console-fullscreen .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#layoutAdjustButton):not(#fullscreenButton),.theater-mode .session-actions>*:not(#fastForwardButton):not(#safeSaveButton):not(#gamepadActionButton):not(#controlModeButton):not(#layoutAdjustButton):not(#fullscreenButton){display:none!important}
  .game-stage:fullscreen #layoutAdjustButton,.console-fullscreen #layoutAdjustButton,.theater-mode #layoutAdjustButton{display:flex!important;width:35px!important;min-width:35px!important;height:31px!important;min-height:31px!important;padding:0!important}
  .layout-adjust-panel{bottom:max(8px,env(safe-area-inset-bottom))!important;width:min(390px,calc(100vw - 20px))!important;padding:10px!important}.layout-adjust-panel>p{display:none}.layout-adjust-panel>label{margin:6px 0}.layout-adjust-actions{margin-top:8px}
}

/* v0.6.6 fullscreen hardening: use the physical viewport as the positioning root. */
@media (orientation:landscape) and (pointer:coarse){
  html body.mobile-console-capable #game .controller-panel,
  html body.mobile-console-capable.console-fullscreen #game .controller-panel,
  html body.mobile-console-capable.theater-mode #game .controller-panel,
  html body.mobile-console-capable #game .controls,
  html body.mobile-console-capable.console-fullscreen #game .controls,
  html body.mobile-console-capable.theater-mode #game .controls{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important}
  html body.mobile-console-capable #game .session-actions,
  html body.mobile-console-capable.console-fullscreen #game .session-actions,
  html body.mobile-console-capable.theater-mode #game .session-actions{position:fixed!important;left:var(--q-toolbar-x)!important;right:auto!important;transform:translateX(-50%)!important}
}
@media (orientation:landscape) and (max-height:700px) and (pointer:coarse){
  html body.mobile-console-capable #game .action-buttons,
  html body.mobile-console-capable.console-fullscreen #game .action-buttons,
  html body.mobile-console-capable.theater-mode #game .action-buttons{transform:translateY(-50%)!important;right:max(calc(var(--q-safe) + 8px),calc((var(--q-side-w) - var(--q-action-w))/2 + 8px))!important}
}


/* v0.6.7 — portrait mobile: prioritize the game, compact the utility controls. */
@media (max-width:650px) and (orientation:portrait){
  body.playing{height:auto!important;min-height:100dvh!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}
  body.playing main{height:auto!important;min-height:100dvh!important;overflow:visible!important}
  body.playing .room-shell{height:auto!important;min-height:100dvh!important;overflow:visible!important;padding:0 max(6px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important}
  body.playing .game-stage{display:block!important;width:100%!important;height:auto!important;max-height:none!important;margin:0!important;padding:max(6px,env(safe-area-inset-top)) 0 12px!important;overflow:visible!important}
  body.playing .screen-column{display:flex!important;flex-direction:column!important;width:100%!important;height:auto!important;min-height:0!important;gap:7px!important}
  body.playing .console-frame{display:block!important;width:100%!important;height:auto!important;min-height:0!important;padding:6px!important;border-radius:16px!important}
  body.playing .console-top{display:none!important}
  body.playing .screen-bezel{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:3/2!important;margin:0!important;padding:4px!important;border-radius:12px!important}
  body.playing canvas{display:block!important;width:100%!important;height:100%!important;max-height:none!important;aspect-ratio:3/2!important;object-fit:contain!important;border-radius:8px!important}
  body.playing .screen-shine{inset:4px!important;border-radius:8px!important}
  body.playing .console-meta{display:none!important}
  body.playing .voice-players{position:static!important;inset:auto!important;order:1!important;width:100%!important;min-height:29px!important;margin:0!important;justify-content:center!important;pointer-events:auto!important;gap:6px!important}
  body.playing .voice-player{min-height:29px!important;padding:3px 7px!important}
  body.playing .session-actions{order:2!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important;width:100%!important;margin:0!important;padding:0!important;background:none!important}
  body.playing .session-actions>.icon-action{display:flex!important;width:100%!important;min-width:0!important;max-width:none!important;min-height:40px!important;height:40px!important;padding:0 4px!important;border-radius:10px!important;gap:3px!important}
  body.playing .session-actions>.icon-action .action-symbol{font-size:1rem!important;line-height:1!important}
  body.playing .session-actions>.icon-action>span:last-child{display:none!important}
  body.playing #fastForwardButton .speed-label{display:none!important}
  body.playing #fastForwardButton .speed-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:2em!important;padding:.15em .3em!important;font-size:.62rem!important}
  body.playing #layoutAdjustButton{display:none!important}
  body.playing .session-actions>.voice-players,
  body.playing .session-actions>.audio-mixer,
  body.playing .session-actions>.layout-adjust-panel{grid-column:1/-1!important}
  body.playing .audio-mixer{order:3!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:4px 7px!important;width:100%!important;margin:0!important;padding:6px 8px!important;border-radius:11px!important}
  body.playing .audio-mixer label{font-size:.55rem!important;grid-template-columns:auto minmax(0,1fr) auto!important;gap:5px!important}
  body.playing .audio-mixer .duck-toggle{grid-column:1/-1!important;justify-content:center!important;font-size:.54rem!important}
  body.playing .controller-panel{order:4!important;display:block!important;width:100%!important;height:auto!important;min-height:0!important;margin:2px 0 0!important;padding:8px 7px 12px!important;border-radius:16px!important;overflow:visible!important}
  body.playing .controller-topline,body.playing .gamepad-map{display:none!important}
  body.playing .controls{position:relative!important;width:100%!important;height:390px!important;min-height:390px!important;max-height:none!important;margin:0!important;transform:none!important}
  body.playing .shoulder{top:0!important;width:74px!important;height:40px!important}
  body.playing .shoulder.l{left:4px!important}.playing .shoulder.r{right:4px!important}
  body.playing .dpad{left:4px!important;top:78px!important;transform:scale(.78)!important;transform-origin:top left!important}
  body.playing .virtual-joystick{left:4px!important;top:78px!important;transform:scale(.82)!important;transform-origin:top left!important}
  body.playing .action-buttons{right:4px!important;top:82px!important;transform:scale(.88)!important;transform-origin:top right!important}
  body.playing .action-buttons button{width:68px!important;height:68px!important}
  body.playing .center-buttons{bottom:14px!important;gap:14px!important;transform:translateX(-50%)!important}
  body.playing .center-buttons button{width:58px!important;height:24px!important}
}
@media (max-width:390px) and (orientation:portrait){
  body.playing .session-actions{gap:4px!important}
  body.playing .session-actions>.icon-action{height:38px!important;min-height:38px!important}
  body.playing .controls{height:370px!important;min-height:370px!important}
}

/* v0.6.7 portrait refinement after rendered measurement. */
@media (max-width:650px) and (orientation:portrait){
  body.playing .room-shell{padding-left:max(2px,env(safe-area-inset-left))!important;padding-right:max(2px,env(safe-area-inset-right))!important}
  body.playing .console-frame{padding:3px!important;border-radius:13px!important}
  body.playing .screen-bezel{height:auto!important;aspect-ratio:auto!important;padding:2px!important;border-radius:9px!important}
  body.playing canvas{width:100%!important;height:auto!important;aspect-ratio:3/2!important;object-fit:initial!important;border-radius:6px!important}
  body.playing .screen-shine{inset:2px!important;border-radius:6px!important}
  html body.mobile-console-capable.playing #game #gamepadActionButton{display:flex!important;width:100%!important;min-width:0!important;max-width:none!important;height:38px!important;min-height:38px!important;padding:0 4px!important;border-radius:10px!important}
}
@media (max-width:650px) and (orientation:portrait){
  #game #gamepadActionButton{display:flex!important;width:100%!important;min-width:0!important;max-width:none!important;height:38px!important;min-height:38px!important;padding:0 4px!important;border-radius:10px!important}
}
@media (max-width:650px) and (orientation:portrait){
  html body.mobile-console-capable #game #gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton#gamepadActionButton{display:flex!important;width:100%!important;min-width:0!important;max-width:none!important;height:38px!important;min-height:38px!important;padding:0 4px!important;border-radius:10px!important}
}


/* v0.6.8 — per-user draggable portrait controls + automatic landscape fullscreen. */
.control-edit-button,.control-edit-bar{display:none}
@media (max-width:650px) and (orientation:portrait){
  body.playing .control-edit-button{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:32px;margin:0 0 6px;border:1px solid rgba(255,255,255,.13);border-radius:10px;background:rgba(255,255,255,.045);color:#cfd5d3;font-size:.62rem;font-weight:800}
  body.playing .control-edit-button.hidden{display:none!important}
  body.playing .control-edit-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:38px;margin:0 0 6px;padding:5px 6px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:rgba(255,255,255,.055);color:#fff;font-size:.6rem}
  body.playing .control-edit-bar.hidden{display:none!important}
  body.playing .control-edit-bar>div{display:flex;gap:4px}.control-edit-bar button{min-height:28px;padding:0 7px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(255,255,255,.06);color:#e5e7eb;font-size:.55rem;font-weight:800}.control-edit-bar #controlEditSave{background:rgba(255,255,255,.16);color:#fff}
  body.playing #touchControls .controls{--pc-l-x:12;--pc-l-y:8;--pc-r-x:88;--pc-r-y:8;--pc-movement-x:19;--pc-movement-y:42;--pc-a-x:84;--pc-a-y:39;--pc-b-x:69;--pc-b-y:62;--pc-select-x:41;--pc-select-y:82;--pc-start-x:59;--pc-start-y:82}
  body.playing #touchControls .shoulder.l{left:calc(var(--pc-l-x)*1%)!important;top:calc(var(--pc-l-y)*1%)!important;right:auto!important;transform:translate(-50%,-50%)!important}
  body.playing #touchControls .shoulder.r{left:calc(var(--pc-r-x)*1%)!important;top:calc(var(--pc-r-y)*1%)!important;right:auto!important;transform:translate(-50%,-50%)!important}
  body.playing #touchControls .dpad{left:calc(var(--pc-movement-x)*1%)!important;top:calc(var(--pc-movement-y)*1%)!important;right:auto!important;transform:translate(-50%,-50%) scale(.78)!important;transform-origin:center!important}
  body.playing #touchControls .virtual-joystick{left:calc(var(--pc-movement-x)*1%)!important;top:calc(var(--pc-movement-y)*1%)!important;right:auto!important;transform:translate(-50%,-50%) scale(.82)!important;transform-origin:center!important}
  body.playing #touchControls .action-buttons{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform:none!important;pointer-events:none!important}
  body.playing #touchControls .action-buttons button{pointer-events:auto!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important}
  body.playing #touchControls .action-buttons .a{left:calc(var(--pc-a-x)*1%)!important;top:calc(var(--pc-a-y)*1%)!important}
  body.playing #touchControls .action-buttons .b{left:calc(var(--pc-b-x)*1%)!important;top:calc(var(--pc-b-y)*1%)!important}
  body.playing #touchControls .center-buttons{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform:none!important;display:block!important;pointer-events:none!important}
  body.playing #touchControls .center-buttons button{position:absolute!important;pointer-events:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important}
  body.playing #touchControls .center-buttons [data-key="select"]{left:calc(var(--pc-select-x)*1%)!important;top:calc(var(--pc-select-y)*1%)!important}
  body.playing #touchControls .center-buttons [data-key="start"]{left:calc(var(--pc-start-x)*1%)!important;top:calc(var(--pc-start-y)*1%)!important}
  body.playing #touchControls .shoulder.active,body.playing #touchControls .action-buttons button.active,body.playing #touchControls .center-buttons button.active{transform:translate(-50%,-50%) scale(.96)!important}
  body.playing #touchControls.editing-controls .controls{touch-action:none!important}
  body.playing #touchControls.editing-controls .shoulder,body.playing #touchControls.editing-controls .dpad,body.playing #touchControls.editing-controls .virtual-joystick,body.playing #touchControls.editing-controls .action-buttons button,body.playing #touchControls.editing-controls .center-buttons button{outline:2px dashed rgba(255,255,255,.62)!important;outline-offset:4px!important;filter:drop-shadow(0 0 8px rgba(255,255,255,.18));cursor:move!important}
  body.playing #touchControls.editing-controls .controls:before{content:'Mueve cada control con el dedo';position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);padding:7px 10px;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:.58rem;font-weight:850;pointer-events:none;white-space:nowrap}
}
@media (orientation:landscape) and (pointer:coarse){
  body.playing #controlEditButton,body.playing #controlEditBar{display:none!important}
}


/* v0.6.9 — landscape control editor + collapsible fullscreen toolbar. */
.landscape-control-edit-bar{display:none}
@media (orientation:landscape) and (pointer:coarse){
  html body.mobile-console-capable.console-fullscreen #game .session-actions #landscapeControlEditButton,
  html body.mobile-console-capable.console-fullscreen #game .session-actions #toolbarCollapseButton,
  html body.mobile-console-capable.theater-mode #game .session-actions #landscapeControlEditButton,
  html body.mobile-console-capable.theater-mode #game .session-actions #toolbarCollapseButton{display:flex!important;width:35px!important;min-width:35px!important;height:31px!important;min-height:31px!important;padding:0!important}
  html body.mobile-console-capable #game .session-actions #toolbarCollapseButton{order:999!important}
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>*{display:none!important}
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>#fastForwardButton,
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>#safeSaveButton,
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>#toolbarCollapseButton{display:flex!important}
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed{gap:4px!important;padding:3px 4px!important}
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>#fastForwardButton{width:auto!important;min-width:58px!important;padding:0 6px!important}
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>#safeSaveButton,
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>#toolbarCollapseButton{width:35px!important;min-width:35px!important;padding:0!important}
  html body.mobile-console-capable #game .session-actions.toolbar-collapsed>#safeSaveButton>span:last-child{display:none!important}
  html body.mobile-console-capable #game #touchControls .landscape-control-edit-bar{position:fixed!important;z-index:1800!important;left:50%!important;bottom:max(8px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;width:min(410px,calc(100vw - 24px))!important;min-height:38px!important;padding:5px 7px!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:12px!important;background:rgba(8,8,10,.88)!important;backdrop-filter:blur(14px)!important;color:#fff!important;pointer-events:auto!important;font-size:.6rem!important}
  html body.mobile-console-capable #game #touchControls .landscape-control-edit-bar.hidden{display:none!important}
  .landscape-control-edit-bar>div{display:flex;gap:5px}.landscape-control-edit-bar button{min-height:28px;padding:0 8px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:rgba(255,255,255,.07);color:#fff;font-size:.55rem;font-weight:850}.landscape-control-edit-bar #landscapeControlEditSave{background:rgba(255,255,255,.17)}
  html body.mobile-console-capable #game #touchControls.custom-landscape-controls .controls{--lc-l-x:12;--lc-l-y:12;--lc-r-x:88;--lc-r-y:12;--lc-movement-x:18;--lc-movement-y:52;--lc-a-x:87;--lc-a-y:42;--lc-b-x:78;--lc-b-y:67;--lc-select-x:14;--lc-select-y:90;--lc-start-x:86;--lc-start-y:90}
  html body.mobile-console-capable.console-fullscreen #game #touchControls.custom-landscape-controls .shoulder.l,html body.mobile-console-capable.theater-mode #game #touchControls.custom-landscape-controls .shoulder.l{left:calc(var(--lc-l-x)*1%)!important;top:calc(var(--lc-l-y)*1%)!important;right:auto!important;transform:translate(-50%,-50%)!important}
  html body.mobile-console-capable.console-fullscreen #game #touchControls.custom-landscape-controls .shoulder.r,html body.mobile-console-capable.theater-mode #game #touchControls.custom-landscape-controls .shoulder.r{left:calc(var(--lc-r-x)*1%)!important;top:calc(var(--lc-r-y)*1%)!important;right:auto!important;transform:translate(-50%,-50%)!important}
  html body.mobile-console-capable.console-fullscreen #game #touchControls.custom-landscape-controls .dpad,html body.mobile-console-capable.theater-mode #game #touchControls.custom-landscape-controls .dpad,html body.mobile-console-capable.console-fullscreen #game #touchControls.custom-landscape-controls .virtual-joystick,html body.mobile-console-capable.theater-mode #game #touchControls.custom-landscape-controls .virtual-joystick{left:calc(var(--lc-movement-x)*1%)!important;top:calc(var(--lc-movement-y)*1%)!important;right:auto!important;transform:translate(-50%,-50%)!important}
  html body.mobile-console-capable.console-fullscreen #game #touchControls.custom-landscape-controls .action-buttons,html body.mobile-console-capable.theater-mode #game #touchControls.custom-landscape-controls .action-buttons{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform:none!important;pointer-events:none!important}
  html body.mobile-console-capable #game #touchControls.custom-landscape-controls .action-buttons button{position:absolute!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important;pointer-events:auto!important}
  html body.mobile-console-capable #game #touchControls.custom-landscape-controls .action-buttons .a{left:calc(var(--lc-a-x)*1%)!important;top:calc(var(--lc-a-y)*1%)!important}
  html body.mobile-console-capable #game #touchControls.custom-landscape-controls .action-buttons .b{left:calc(var(--lc-b-x)*1%)!important;top:calc(var(--lc-b-y)*1%)!important}
  html body.mobile-console-capable.console-fullscreen #game #touchControls.custom-landscape-controls .center-buttons,html body.mobile-console-capable.theater-mode #game #touchControls.custom-landscape-controls .center-buttons{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;transform:none!important;pointer-events:none!important}
  html body.mobile-console-capable #game #touchControls.custom-landscape-controls .center-buttons button{position:absolute!important;bottom:auto!important;transform:translate(-50%,-50%)!important;pointer-events:auto!important}
  html body.mobile-console-capable #game #touchControls.custom-landscape-controls .center-buttons [data-key="select"]{left:calc(var(--lc-select-x)*1%)!important;top:calc(var(--lc-select-y)*1%)!important}
  html body.mobile-console-capable #game #touchControls.custom-landscape-controls .center-buttons [data-key="start"]{left:calc(var(--lc-start-x)*1%)!important;top:calc(var(--lc-start-y)*1%)!important}
  html body.mobile-console-capable #game #touchControls.editing-landscape-controls .controls{touch-action:none!important}
  html body.mobile-console-capable #game #touchControls.editing-landscape-controls .shoulder,html body.mobile-console-capable #game #touchControls.editing-landscape-controls .dpad,html body.mobile-console-capable #game #touchControls.editing-landscape-controls .virtual-joystick,html body.mobile-console-capable #game #touchControls.editing-landscape-controls .action-buttons button,html body.mobile-console-capable #game #touchControls.editing-landscape-controls .center-buttons button{outline:2px dashed rgba(255,255,255,.72)!important;outline-offset:4px!important;filter:drop-shadow(0 0 8px rgba(255,255,255,.22));cursor:move!important}
  html body.mobile-console-capable #game #touchControls.editing-landscape-controls .controls:before{content:'Mueve y guarda tus controles';position:fixed;z-index:1700;left:50%;top:50%;transform:translate(-50%,-50%);padding:7px 10px;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:.58rem;font-weight:850;pointer-events:none;white-space:nowrap}
}
@media (orientation:portrait){#landscapeControlEditButton,#toolbarCollapseButton,.landscape-control-edit-bar{display:none!important}}
@media (orientation:landscape) and (pointer:coarse){
  #game #landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton,
  #game #toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton{display:flex!important;visibility:visible!important;opacity:1!important}
}

@media (orientation:landscape) and (pointer:coarse){
  #game #landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton#landscapeControlEditButton,
  #game #toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton#toolbarCollapseButton{display:flex!important;visibility:visible!important;opacity:1!important}
}

/* v0.7.1 — adventure telemetry: evolves the original landing page without replacing it */
.adventure-hub{width:min(1180px,calc(100% - 48px));margin:4px auto 38px;padding:22px;border:1px solid rgba(255,255,255,.13);border-radius:28px;background:linear-gradient(145deg,rgba(10,24,22,.92),rgba(8,14,17,.88));box-shadow:0 22px 70px rgba(0,0,0,.28);backdrop-filter:blur(18px)}
.adventure-hub-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px}.adventure-hub-head h2{margin:7px 0 4px;font-size:clamp(25px,3vw,39px);line-height:1.02;letter-spacing:-.035em;color:#f5f7f4}.adventure-hub-head p{margin:0;color:#9dafaa;font-size:14px}.adventure-continue{min-width:176px;flex:none}.adventure-grid{display:grid;grid-template-columns:1.25fr 1fr .9fr;gap:14px}.adventure-card{min-width:0;border:1px solid rgba(255,255,255,.10);border-radius:20px;background:rgba(4,12,13,.68);overflow:hidden}.adventure-card-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.adventure-card-title small{display:block;color:#6ed8a6;font-size:10px;font-weight:800;letter-spacing:.15em}.adventure-card-title strong{display:block;margin-top:3px;color:#f0f4ef;font-size:15px}.telemetry-pill{display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border:1px solid rgba(116,227,172,.25);border-radius:999px;background:rgba(74,170,124,.09);color:#9ed7ba;font-size:10px;font-weight:750;white-space:nowrap}.telemetry-pill.online:before{content:"";width:7px;height:7px;margin-right:6px;border-radius:50%;background:#59e286;box-shadow:0 0 12px rgba(89,226,134,.7)}
.hoenn-map{position:relative;aspect-ratio:1.75;margin:14px;border:1px solid rgba(135,198,184,.2);border-radius:15px;overflow:hidden;background:#081921}.hoenn-map svg{width:100%;height:100%;display:block}.map-ocean{fill:#0b2835}.map-land{fill:#365d47;stroke:#6b9270;stroke-width:2}.map-water-cut{fill:#0b2835}.map-route{fill:none;stroke:#acc58c;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.68}.map-city-dots circle{fill:#d9c779;stroke:#0d241b;stroke-width:1.3}.home-map-marker{position:absolute;left:var(--map-x);top:var(--map-y);transform:translate(-50%,-75%);display:grid;justify-items:center;z-index:4;filter:drop-shadow(0 5px 8px rgba(0,0,0,.5));transition:left .24s ease,top .24s ease}.home-map-marker strong{margin-top:3px;padding:3px 7px;border-radius:999px;background:#f4f0dc;color:#18211c;font-size:9px;white-space:nowrap}.home-map-marker.unavailable{left:50%!important;top:50%!important;opacity:.35}.mini-trainer{position:relative;display:block;width:24px;height:30px}.mini-trainer:before{content:"";position:absolute;left:6px;top:4px;width:12px;height:11px;border-radius:4px 4px 3px 3px;background:#d7a06f;box-shadow:0 -4px 0 #d64a42,0 11px 0 2px #f0e7d0}.mini-trainer:after{content:"";position:absolute;left:5px;bottom:0;width:14px;height:7px;border-left:5px solid #355371;border-right:5px solid #355371}.mini-trainer i{position:absolute;z-index:2;left:3px;top:1px;width:18px;height:5px;border-radius:4px;background:#e04e45}.mini-trainer b{position:absolute;z-index:2;left:3px;top:16px;width:4px;height:10px;background:#d7a06f;box-shadow:14px 0 #d7a06f}.map-hint{min-height:34px;margin:0 15px 13px;color:#839b96;font-size:11px;line-height:1.4}.home-party-list{display:grid;gap:7px;padding:13px}.home-party-slot{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:7px 8px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(255,255,255,.025)}.home-mon-icon{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(145deg,rgba(102,194,143,.28),rgba(64,115,88,.16));color:#bfe3cb;font-size:16px;font-weight:900}.home-mon-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8ede8;font-size:12px}.home-mon-level{color:#9cafaa;font-size:10px}.home-hp-wrap{grid-column:2/4;display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px;margin-top:4px}.home-hp-bar{height:5px;border-radius:999px;background:#1b2b27;overflow:hidden}.home-hp-bar i{display:block;height:100%;border-radius:inherit;background:#57cc78}.home-party-slot.mid .home-hp-bar i{background:#d2b84b}.home-party-slot.low .home-hp-bar i{background:#d85b4f}.home-hp-wrap small{min-width:44px;text-align:right;color:#82948f;font-size:9px}.home-telemetry-empty{padding:22px 12px;text-align:center;color:#7f938e;font-size:12px}.home-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px}.home-stats div{padding:10px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)}.home-stats small,.home-player-row small{display:block;color:#7d928c;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.home-stats strong{display:block;margin-top:4px;color:#eff3ef;font-size:14px}.home-player-row{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:10px;margin:0 13px 12px;padding:11px;border-radius:13px;background:linear-gradient(135deg,rgba(90,197,139,.11),rgba(255,255,255,.025));border:1px solid rgba(98,203,146,.12)}.home-player-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#15352a}.home-player-row strong{display:block;margin:2px 0;color:#f2f5f1}.home-player-row span:not(.home-player-avatar):not(.mini-trainer){color:#8ea39d;font-size:10px}.home-online-peers{display:flex;flex-wrap:wrap;gap:6px;padding:0 13px 13px}.home-online-peers span{padding:5px 8px;border-radius:999px;background:rgba(89,226,134,.08);color:#90cbaa;font-size:9px}.home-online-peers span:before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#59e286}.adventure-hub.loading .adventure-card{opacity:.68}.adventure-hub.error .adventure-card{opacity:.76}
@media(max-width:1050px){.adventure-grid{grid-template-columns:1.25fr 1fr}.stats-card{grid-column:1/3}.home-stats{grid-template-columns:repeat(4,1fr)}}
@media(max-width:720px){.adventure-hub{width:calc(100% - 24px);margin:8px auto 25px;padding:14px;border-radius:20px}.adventure-hub-head{align-items:stretch;flex-direction:column}.adventure-continue{width:100%}.adventure-grid{grid-template-columns:1fr}.stats-card{grid-column:auto}.home-stats{grid-template-columns:1fr 1fr}.hoenn-card{order:0}.party-card{order:1}.stats-card{order:2}}
@media(prefers-reduced-motion:reduce){.home-map-marker{transition:none}}

/* v0.7.2 rich adventure hub */
.adventure-hub{margin-top:12px}.adventure-hub.hidden{display:none}.hoenn-map-real{aspect-ratio:128/120;background:#07151d;display:grid;place-items:center}.hoenn-map-image{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;display:block}.home-avatar-sprite{display:grid;place-items:center;min-width:28px;min-height:38px}.home-avatar-sprite>img{width:32px;height:64px;image-rendering:pixelated;object-fit:contain}.home-player-avatar>img{width:32px;height:64px;max-height:42px;image-rendering:pixelated;object-fit:contain}.home-party-slot{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}.home-party-slot:focus-visible{outline:2px solid #72e2a9;outline-offset:2px}.home-mon-icon{overflow:hidden;padding:2px}.home-mon-icon img{width:46px;height:46px;max-width:none;image-rendering:pixelated;object-fit:contain}.home-mon-icon.sprite-fallback:before{content:'◆';font-size:16px}.home-mon-badges{display:flex;gap:4px;align-items:center}.home-mon-badges em{font-style:normal;font-size:8px;padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.08);color:#b9c9c3}.home-mon-badges .shiny{color:#ffe278;background:rgba(255,210,62,.12)}.home-sync-note{font-size:9px;color:#728b84;margin-left:6px}.pokemon-detail-dialog{width:min(540px,calc(100vw - 24px));max-height:min(760px,calc(100dvh - 28px));padding:0;border:1px solid rgba(130,220,174,.28);border-radius:24px;background:#07110f;color:#edf4ef;box-shadow:0 28px 100px rgba(0,0,0,.7)}.pokemon-detail-dialog::backdrop{background:rgba(1,5,5,.78);backdrop-filter:blur(4px)}.pokemon-detail-shell{position:relative;padding:22px;overflow:auto;max-height:calc(100dvh - 28px)}.pokemon-dialog-close{position:absolute;right:14px;top:12px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#e9f1eb;font-size:27px;cursor:pointer}.pokemon-detail-head{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:center;padding-right:35px}.pokemon-detail-head img{width:104px;height:104px;image-rendering:pixelated;object-fit:contain}.pokemon-detail-head small{color:#72dca9;font-weight:750}.pokemon-detail-head h2{font-size:28px;margin:4px 0}.pokemon-detail-head p{color:#93a8a1;margin:0;font-size:12px}.pokemon-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.pokemon-detail-stats div,.pokemon-detail-training div{padding:9px;border-radius:11px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}.pokemon-detail-stats small,.pokemon-detail-training small{display:block;color:#718a82;font-size:8px;text-transform:uppercase}.pokemon-detail-stats strong,.pokemon-detail-training strong{display:block;margin-top:3px;font-size:13px}.pokemon-detail-section{border-top:1px solid rgba(255,255,255,.07);padding-top:14px;margin-top:14px}.pokemon-detail-section h3{margin:0 0 10px;font-size:12px;color:#b8c7c1;text-transform:uppercase;letter-spacing:.08em}.pokemon-detail-moves{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pokemon-detail-moves div{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:10px;background:#0b1916}.pokemon-detail-moves span{font-size:11px}.pokemon-detail-moves small{font-size:9px;color:#7e948c}.pokemon-detail-training{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.pokemon-detail-training .wide{grid-column:span 3}.home-map-marker strong{z-index:3}.adventure-hub-head:after{content:'Sincronización automática';font-size:9px;color:#69847a;align-self:flex-start;margin-top:7px;white-space:nowrap}
@media(max-width:720px){.adventure-hub{margin-top:8px}.pokemon-detail-head{grid-template-columns:86px 1fr}.pokemon-detail-head img{width:82px;height:82px}.pokemon-detail-stats{grid-template-columns:1fr 1fr}.pokemon-detail-moves{grid-template-columns:1fr}.pokemon-detail-training{grid-template-columns:1fr 1fr}.pokemon-detail-training .wide{grid-column:span 2}}

/* v0.7.3 final visual correction */
.hoenn-map-real{aspect-ratio:3/2!important;display:block!important;background:#07151d!important;overflow:hidden}.hoenn-map-image{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;image-rendering:pixelated}.home-map-marker{transform:translate(-50%,-100%)!important}.home-map-marker strong{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:4px;white-space:nowrap}.home-map-marker.edge-left strong{left:0;transform:none}.home-map-marker.edge-right strong{left:auto;right:0;transform:none}.home-map-marker.edge-top{transform:translate(-50%,0)!important}.home-location-pin{display:block;width:13px;height:13px;border:3px solid #fff4d2;border-radius:50% 50% 50% 0;background:#e14d43;transform:rotate(-45deg);box-shadow:0 2px 5px rgba(0,0,0,.55)}.home-location-pin:after{content:'';display:block;width:3px;height:3px;margin:2px;border-radius:50%;background:#fff}.home-avatar-missing{display:none!important}.home-mon-icon{position:relative!important;display:block!important;width:54px!important;height:54px!important;padding:0!important;overflow:hidden!important}.home-mon-icon img{position:absolute!important;left:50%!important;top:50%!important;width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important;margin:0!important;transform:translate(-50%,-50%)!important;object-fit:contain!important;object-position:center!important;image-rendering:pixelated}.home-party-slot{grid-template-columns:54px minmax(0,1fr) auto!important;column-gap:12px!important}@media(max-width:720px){.home-mon-icon{width:50px!important;height:50px!important}.home-mon-icon img{width:44px!important;height:44px!important;max-width:44px!important;max-height:44px!important}.home-party-slot{grid-template-columns:50px minmax(0,1fr) auto!important;column-gap:10px!important}}

/* v0.7.6 Wikidex home entry */
.wikidex-home-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 15px;border:1px solid rgba(99,222,164,.32);border-radius:14px;background:linear-gradient(180deg,rgba(15,43,35,.96),rgba(7,25,21,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 5px 16px rgba(0,0,0,.16);color:#eaf8f0;text-decoration:none;font:inherit;white-space:nowrap;transition:transform .12s ease,border-color .12s ease,background .12s ease}.wikidex-home-btn>span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:rgba(91,225,158,.12);color:#70e0a8;font-size:14px}.wikidex-home-btn strong{font-size:13px;letter-spacing:.02em}.wikidex-home-btn small{color:#719087;font-size:12px}.wikidex-home-btn:hover{border-color:rgba(104,232,172,.58);background:linear-gradient(180deg,rgba(18,52,42,.98),rgba(8,31,25,.98));transform:translateY(-1px)}.wikidex-home-btn:focus-visible{outline:2px solid #7be6b0;outline-offset:3px}@media(max-width:720px){.wikidex-home-btn{min-height:46px;padding:10px 13px;border-radius:13px}.wikidex-home-btn strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.wikidex-home-btn{transition:none}}

.recovery-section-title{display:block;margin-top:.55rem;font-size:.7rem;font-weight:800;letter-spacing:.08em;opacity:.72}.recovery-stale{opacity:.68}.backup-row button:disabled{opacity:.5;cursor:not-allowed}
/* R124 iPhone gameplay interaction lock */
html.gameplay-locked,
html.gameplay-locked body.playing{
  width:100%;
  height:100dvh;
  max-height:100dvh;
  overflow:hidden!important;
  overscroll-behavior:none;
  touch-action:none;
}
html.gameplay-locked body.playing{position:fixed;inset:0;}
body.playing #game{
  height:100%;
  max-height:100dvh;
  overflow:hidden;
  overscroll-behavior:none;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
body.playing #game *:not(input):not(textarea):not([contenteditable="true"]){
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none!important;
}

/* R167 — iPhone portrait safe controls: keep all touch targets above Safari bottom chrome. */
@media (max-width:650px) and (orientation:portrait){
  html body.mobile-console-capable.playing #game #touchControls .controls{height:300px!important;min-height:300px!important;max-height:300px!important}
  html body.mobile-console-capable.playing #game #touchControls{padding-bottom:max(6px,env(safe-area-inset-bottom))!important}
}
