:root{--bg:#f3f1e7;--panel:#fbfaf4;--panel-2:#ecead9;--line:#d6d3bd;--text:#1d2418;--muted:#5f6852;--accent:#306230;--accent-ink:#f3f7df;--lcd:#9bbc0f;--lcd-dark:#0f380f;--shell:#c9c5b6;--shell-ink:#3b3a52;--bezel:#4a4c5e;--bezel-ink:#b8bad0;--pad-key:#2b2b33;--pad-key-ink:#d9d9e3;--pad-key-border:#202027;--pad-ab:#9a2257;--pad-ab-ink:#f2d4e0;--pad-ss:#86889a;--pad-shadow:#0003;--ok:#2f7d32;--err:#b3261e;--warn:#875c00;--code-bg:#1b2117;--code-text:#d8e4c4;--radius:10px;--font:"IBM Plex Sans KR", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--pixel:"Silkscreen", var(--mono);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#11150f;--panel:#181e15;--panel-2:#1f271b;--line:#2f3a29;--text:#e3ead6;--muted:#97a386;--accent:#8bac0f;--accent-ink:#0f1a07;--shell:#2a2d36;--shell-ink:#e0e3f5;--bezel:#11141d;--bezel-ink:#d7daf0;--pad-key:#5b6272;--pad-key-ink:#fff;--pad-key-border:#858c9e;--pad-ab:#d15186;--pad-ab-ink:#fff2f7;--pad-ss:#9da3b3;--pad-shadow:#00000080;--ok:#7fc47f;--err:#ff8a80;--warn:#f0c060;--code-bg:#0b0e09;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--panel-2);color:var(--text);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}[hidden]{display:none!important}.app{background:var(--bg);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex}:root{--ad-slot:0px;--tabbar-height:65px;--safe-bottom:env(safe-area-inset-bottom,0px)}:root.ad-on{--ad-slot:calc(var(--ad-h) + 24px)}:root.ad-on .tabbar{margin-top:var(--ad-slot)}:root.ad-on .app:not(:has(>.tabbar)){padding-bottom:calc(var(--ad-slot) + var(--tabbar-height) + var(--safe-bottom))}:root.ad-on .sheet-back{bottom:calc(var(--ad-h) + var(--tabbar-height) + 8px + var(--safe-bottom))}:root.ad-on .fab{bottom:calc(var(--tabbar-height) + 11px + var(--safe-bottom) + var(--ad-slot))}@media (min-width:481px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.appbar{min-height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0 16px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:6px;display:flex}.app>.body:first-child{padding-top:calc(16px + env(safe-area-inset-top))}.appbar:has(>.icon-btn:first-child){padding-left:4px}.appbar h1{min-width:0;margin:0;font-size:18px}.appbar-title{flex-direction:column;min-width:0;line-height:1.3;display:flex}.appbar-title b{font-size:16px}.appbar-title>.row-start{white-space:nowrap;flex-wrap:nowrap;overflow:hidden}.appbar>.actions{margin-left:auto;margin-right:-8px;display:flex}.icon-btn{width:44px;height:44px;color:var(--text);background:0 0;border:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.logo{font-family:var(--pixel);letter-spacing:.5px;white-space:nowrap;font-size:18px}.logo b{color:var(--accent);font-weight:400}.spacer{flex:1}.body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.body.center{justify-content:center;align-items:center}.tabbar{background:var(--panel);border-top:1px solid var(--line);padding:8px max(16px, env(safe-area-inset-right,0px)) calc(8px + var(--safe-bottom)) max(16px, env(safe-area-inset-left,0px));flex-shrink:0;gap:4px;display:flex}.tabbar>a,.tabbar>span{white-space:nowrap;min-width:0;min-height:48px;color:var(--muted);border-radius:8px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:4px;padding:3px 0;font-size:12px;line-height:16px;text-decoration:none;display:flex;position:relative}.tabbar>a>svg,.tabbar>span>svg{flex-shrink:0;display:block}.tabbar>a.on,.tabbar>span.on{color:var(--accent);font-weight:600}.tabbar>a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tabbar .dot{background:var(--warn);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;left:calc(50% + 8px)}.section{flex-direction:column;gap:10px;display:flex}.section h2{color:var(--muted);margin:0;font-size:13px;font-weight:600}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.card p{margin:0}.row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.row-start{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-between{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.empty{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.empty p{margin:0}.muted{color:var(--muted)}.small{font-size:13px}.banner{background:var(--panel-2);color:var(--muted);border-radius:8px;padding:8px 12px;font-size:13px}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}details summary{cursor:pointer;color:var(--muted);font-size:13px}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;min-height:40px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 14px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn.small{min-height:32px;padding:0 10px;font-size:13px}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--err)}.danger-card{border-color:var(--err);flex-direction:column;gap:12px;display:flex}.danger-card p{margin:0}.btn.block{width:100%;min-height:48px}.pill{background:var(--panel-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.pill.ok{color:var(--ok)}.seg{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.seg button{border:0;border-left:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--text);cursor:pointer;flex:1}.seg button:first-child{border-left:0}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.check{align-items:center;gap:10px;min-height:44px;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent)}.live-pill{color:var(--warn)}.err-text{color:var(--err)}.ok-text{color:var(--ok)}.code-chip{font-family:var(--mono);background:var(--panel-2);color:var(--muted);overflow-wrap:anywhere;border-radius:6px;padding:3px 8px;font-size:12px;display:inline-block}.form{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-weight:600}.input{border:1px solid var(--line);background:var(--panel);min-height:48px;color:var(--text);font:inherit;border-radius:8px;min-width:0;padding:0 12px}.steps{flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}.steps>li>*+*{margin-top:6px}.how{color:var(--muted);flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.how b{color:var(--text);margin-right:6px;font-weight:600}.method{border-top:1px solid var(--line)}.method>summary{min-height:48px;color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:15px;font-weight:600;list-style:none;display:flex}.method>summary::-webkit-details-marker{display:none}.method>summary:before{content:"▸";color:var(--muted);transition:transform .15s}.method[open]>summary:before{transform:rotate(90deg)}.method>.steps{padding-bottom:12px}.copy-row{align-items:flex-start;gap:6px;margin-top:4px;display:flex}.copy-row .code-chip{flex:1;min-width:0}.copy-row .btn{flex-shrink:0}.game-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.game-item{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-height:56px;color:var(--text);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 14px;text-decoration:none;display:flex}.game-item-title{overflow-wrap:anywhere;flex:0 0 100%;min-width:0}.game-item-main{flex:1;min-width:0}.live-strip{border:1px solid var(--warn);background:var(--panel);min-height:44px;color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:0 12px;text-decoration:none;display:flex}.play-tab{flex-direction:column;gap:12px;display:flex}.tab-pane{flex-direction:column;gap:16px;display:flex}.unit{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.unit.on{border-color:var(--accent)}.unit.live{border-color:var(--warn)}.unit p{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.unit-prompt p{font-weight:600}.unit .restore{align-self:flex-start}.shots{gap:8px;display:flex;overflow-x:auto}.shot{flex-direction:column;flex-shrink:0;gap:2px;margin:0;display:flex}.shot img,.shot-empty{width:auto;height:115px;aspect-ratio:var(--screen-ratio,160 / 144);image-rendering:pixelated;background:var(--lcd-dark);border-radius:4px;display:block}.shot figcaption{color:var(--muted);font-size:11px}.tool-log{font-family:var(--mono);overflow-wrap:anywhere;margin:6px 0 0;padding-left:18px;font-size:12px}.tool-log li.err{color:var(--err)}.live-log{padding-left:0;list-style:none}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips .zip-btn{margin-left:auto}.img-preview{flex-direction:column;gap:4px;margin:0;display:flex}.img-preview canvas{width:100%;height:auto;image-rendering:pixelated;border:1px solid var(--line);border-radius:6px}.img-text>summary{margin:8px 0}.chips .zip-btn{gap:6px;display:inline-flex}.sheet-body{flex-direction:column;gap:10px;padding:16px;display:flex;overflow-y:auto}.sheet-body h2{margin:0;font-size:16px}.img-notes{margin:0;padding-left:18px}.img-name{font-family:var(--mono);align-items:center;gap:4px;display:flex}.img-name input{min-width:0;font-family:var(--mono);flex:1}.chip{border:1px solid var(--line);background:var(--panel);min-height:36px;font:13px var(--mono);cursor:pointer;border-radius:999px;padding:0 12px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.code-view{background:var(--code-bg);color:var(--code-text);font:12px/1.5 var(--mono);white-space:pre;tab-size:4;border-radius:8px;margin:0;padding:12px;overflow:auto}.connect-code-box{flex-direction:column;gap:6px;margin-top:6px;display:flex}.connect-code-box .connect-code{letter-spacing:3px;font-size:20px}.connect-code{color:var(--text)}.connect-request{border:1px solid var(--warn);background:var(--panel-2);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.connect-request .row{justify-content:flex-start}.conn-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.conn-list li{align-items:center;gap:8px;display:flex}.conn-item{border-top:1px solid var(--line);padding:8px 0}.conn-item:first-child{border-top:0}.conn-main{flex-direction:column;flex:1;min-width:0;display:flex}.player{--shell:#cbc9bd;--shell-ink:#343754;--bezel:#666775;--bezel-ink:#eeeeec;--pad-key:#292a30;--pad-key-ink:#eeeeec;--pad-key-border:#17181c;--pad-ab:#962453;--pad-ab-ink:#fff0f7;--pad-ss:#787988;--pad-shadow:#0005;--lcd-dark:#76882e;--screen-ink:#d5e4a6;--screen-overlay:#263516e8;flex-direction:column;align-items:center;gap:12px;width:100%;min-width:0;display:flex}.shell{background:var(--shell);border-radius:14px 14px 44px;width:100%;padding:16px 16px 20px;box-shadow:inset 0 -3px #00000026}.bezel{background:var(--bezel);border-radius:8px 8px 24px;padding:12px 14px 8px}.screen{aspect-ratio:var(--screen-ratio,160 / 144);background:var(--lcd-dark);touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.screen canvas{width:100%;height:100%;image-rendering:pixelated;outline:none;display:block}.screen canvas[hidden]{display:none}.screen .overlay{text-align:center;color:var(--screen-ink);font-family:var(--pixel);background:var(--screen-overlay);place-items:center;padding:12px;font-size:13px;display:grid;position:absolute;inset:0}.bezel-label{font-family:var(--pixel);color:var(--bezel-ink);letter-spacing:1px;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-size:11px;overflow:hidden}.device-brand{font-family:var(--pixel);color:var(--shell-ink);letter-spacing:1px;margin-top:12px;font-size:14px}.pad{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none;grid-template-columns:1fr 1fr;align-items:center;gap:12px;margin-top:16px;display:grid;container-type:inline-size}.dpad{grid-template-rows:repeat(3,clamp(36px,14cqw,44px));grid-template-columns:repeat(3,clamp(36px,14cqw,44px));width:max-content;display:grid}.pad [data-key]{background:var(--pad-key);color:var(--pad-key-ink);cursor:pointer;box-shadow:inset 0 0 0 1px var(--pad-key-border), 0 2px 0 var(--pad-shadow)}.pad [data-key].down{filter:brightness(1.25);box-shadow:inset 0 0 0 1px var(--pad-key-border), 0 1px 0 var(--pad-shadow);transform:translateY(1px)}.dpad .u{border-radius:4px 4px 0 0;grid-area:1/2}.dpad .l{border-radius:4px 0 0 4px;grid-area:2/1}.dpad .c{background:var(--pad-key);box-shadow:inset 0 0 0 1px var(--pad-key-border);grid-area:2/2}.dpad .r{border-radius:0 4px 4px 0;grid-area:2/3}.dpad .d{border-radius:0 0 4px 4px;grid-area:3/2}.ab{justify-content:flex-end;gap:clamp(8px,4cqw,14px);display:flex;transform:rotate(-20deg)}.ab [data-key]{background:var(--pad-ab);width:clamp(44px,18cqw,54px);height:clamp(44px,18cqw,54px);color:var(--pad-ab-ink);font-family:var(--pixel);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.ss{grid-column:1/-1;justify-content:center;gap:18px;display:flex}.ss [data-key]{width:64px;min-height:44px;box-shadow:none;background:0 0;flex-direction:column;justify-content:center;align-items:center;display:flex}.ss [data-key] i{background:var(--pad-ss);width:56px;height:16px;box-shadow:inset 0 1px 2px #fff3, 0 2px 0 var(--pad-shadow);border-radius:8px}.ss [data-key].down{box-shadow:none}.ss [data-key].down i{box-shadow:inset 0 1px 3px #0005}.ss span{text-align:center;font-family:var(--pixel);color:var(--shell-ink);margin-top:4px;font-size:10px;display:block}.skin-nes{--shell:#d5d3cc;--shell-ink:#ec5149;--bezel:#27282c;--bezel-ink:#e1e0db;--pad-ab:#df352e;--pad-ab-ink:#fff2eb;--pad-ss:#242529;--lcd-dark:#111;--screen-ink:#f4f1e8;--screen-overlay:#171719e8;gap:8px}.skin-nes .shell{box-shadow:none;background:0 0;border-radius:0;padding:0}.skin-nes .bezel{border:4px solid var(--shell);border-radius:14px;padding:12px 12px 8px;box-shadow:inset 0 1px #fff2,0 2px 4px #0002}.skin-nes .pad{border:4px solid var(--shell);background:linear-gradient(145deg,#38393d,#292a2e);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;margin-top:12px;padding:12px clamp(8px,3cqw,14px);position:relative;box-shadow:inset 0 0 0 1px #ffffff18,inset 0 -2px 4px #0003,0 2px 4px #0002}.skin-nes .dpad{filter:drop-shadow(0 2px 2px #0005)}.skin-nes .dpad .c{position:relative}.skin-nes .dpad .c:after{content:"";border-radius:50%;position:absolute;inset:22%;box-shadow:inset 0 1px 3px #0006,0 1px #fff1}.skin-nes .dpad{grid-area:1/1;grid-template-rows:repeat(3,clamp(30px,11cqw,36px));grid-template-columns:repeat(3,clamp(30px,11cqw,36px))}.skin-nes .ab{grid-area:1/3;align-items:flex-start;gap:10px;padding:4px;transform:none}.skin-nes .ab [data-key=b]{margin-top:20px}.skin-nes .ab [data-key]{background:linear-gradient(#ed5147,#c62e29);width:clamp(44px,15cqw,48px);height:clamp(44px,15cqw,48px);box-shadow:inset 0 1px 1px #ffb9a6,0 0 0 3px #bcbab4,0 3px 2px 3px #1118}.skin-nes .ab [data-key].down{box-shadow:inset 0 2px 4px #7a171c,0 0 0 3px #bcbab4}.skin-nes .ss{flex-direction:column;grid-area:1/2;justify-self:center;align-items:center;gap:2px;padding:0}.skin-nes .ss [data-key]{width:44px}.skin-nes .ss [data-key] i{background:#18191d;width:36px;height:12px;box-shadow:inset 0 1px 1px #ffffff28,0 2px 1px #0005}.skin-nes .ss span{color:#c5c3bd;letter-spacing:.3px;font-size:8px}.skin-gb .shell{padding:12px}.skin-gb .device-brand{margin-top:8px;font-size:12px}.skin-gb .pad{gap:6px;margin-top:10px}.skin-gb .dpad{grid-template-rows:repeat(3,clamp(30px,13cqw,38px));grid-template-columns:repeat(3,clamp(30px,13cqw,38px))}.play-tab:has(.player){flex:1;min-height:0}.play-tab .player{flex:1;gap:0;min-height:0;container:player/size}.play-tab .shell,.play-tab .bezel{flex-direction:column;flex:1;min-height:0;display:flex}.play-tab .bezel-label{line-height:16px}.play-tab .skin-gb .bezel{max-height:calc((100cqw - 52px) / (var(--screen-ratio)) + 44px)}.play-tab .skin-nes .bezel{max-height:calc((100cqw - 32px) / (var(--screen-ratio)) + 52px)}.play-tab .display-area{flex:1;place-items:center;min-height:0;display:grid;container-type:size}.play-tab .screen{width:min(100cqw, calc(100cqh * var(--screen-ratio)))}.play-tab .bezel-label,.play-tab .device-brand,.play-tab .pad,.play-tab .player-bar,.play-tab .keys{flex-shrink:0}.play-tab .skin-nes .shell{gap:12px}.play-tab .skin-nes .pad{margin-top:0}.play-tab .keys{display:none}@container player (height<=440px){.skin-gb .pad{grid-template-columns:auto minmax(0,1fr) auto;gap:6px}.skin-gb .dpad{grid-area:1/1;grid-template-rows:repeat(3,30px);grid-template-columns:repeat(3,30px)}.skin-gb .ab{grid-area:1/3;gap:8px}.skin-gb .ab [data-key]{width:44px;height:44px}.skin-gb .ss{flex-direction:column;grid-area:1/2;align-items:center;gap:0}.skin-gb .ss [data-key]{width:44px}.skin-gb .ss [data-key] i{width:36px;height:12px}.skin-gb .ss span{font-size:8px}}.pad [data-key].monkey-down{background:var(--accent);color:var(--accent-ink);box-shadow:inset 0 0 0 2px var(--accent-ink)}.player-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;width:100%;margin-top:auto;padding:12px 0 0;display:flex}.player-bar .icon-btn{border:1px solid #0000;border-radius:50%;flex:0 0 44px;width:44px;height:44px}.player-bar .icon-btn[aria-pressed=true]{background:var(--panel-2);border-color:var(--line);color:var(--accent)}.player-bar .icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.player-bar .monkey{min-width:44px;font-size:20px}.player-bar .monkey[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.keys{color:var(--muted);text-align:center;font-size:12px}.keys kbd{font-family:var(--mono);border:1px solid var(--line);background:var(--panel);border-radius:4px;padding:1px 5px;font-size:11px}@media (hover:none){.keys{display:none}}@media (max-width:480px){.player .keys{display:none}}.login-page{justify-content:center}.login-card{text-align:center;border:1px solid var(--line);background:var(--panel);border-radius:14px;flex-direction:column;gap:12px;padding:32px 24px;display:flex}.login-card h1{font-family:var(--pixel);margin:0;font-size:28px;font-weight:400}.login-card h1 b{color:var(--accent);font-weight:400}.login-card p{margin:0}.policy-link{text-align:center;align-self:center;margin:0}.policy-link a{color:inherit;text-decoration:underline}.admin-player-settings{flex-shrink:0}.admin-player-settings h2{margin:0;font-size:18px}.admin-player-settings details .pad{width:100%;margin-top:12px}.table-wrap{overflow-x:auto}.admin-users{flex-shrink:0}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}.admin-table th{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:600}.admin-table a{color:var(--text)}.admin-prompt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fab{z-index:30;right:max(12px,50vw - 228px);bottom:calc(var(--tabbar-height) + 11px + var(--safe-bottom));border:1px solid var(--line);background:var(--panel);width:44px;height:44px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:fixed;box-shadow:0 2px 8px #0000001f}.sheet-back{z-index:40;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);width:100%;max-width:480px;max-height:90dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:14px 14px 0 0;flex-direction:column;display:flex;position:relative}.sheet-close{position:absolute;top:2px;right:2px}.sheet iframe{background:var(--panel);border:0;border-radius:14px 14px 0 0;width:100%;min-height:360px}.pro-list{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}a.card{color:inherit;text-decoration:none}.update-gate{z-index:100;background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.update-gate .card{width:100%;max-width:360px}.report-details{white-space:pre-wrap;overflow-wrap:anywhere}.report-actions{flex-wrap:wrap}.online-slot{align-items:center;display:inline-flex}.online-slot[hidden]{display:none}.online:not(.icon-btn){border:1px solid var(--accent);height:32px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;white-space:nowrap;background:0 0;border-radius:16px;flex-shrink:0;align-items:center;gap:5px;margin:0 4px;padding:0 10px;font-size:13px;display:inline-flex}.online-dot{background:var(--line);border-radius:50%;width:7px;height:7px}.online[data-look=waiting] .online-dot{background:#e2a92b;animation:1s steps(2,jump-none) infinite online-blink}.online[data-look=linked]{background:var(--accent);color:var(--accent-ink)}.online[data-look=linked] .online-dot{box-shadow:0 0 0 1.5px var(--accent-ink);background:#7ed957}.online[data-look=unstable] .online-dot{background:#e2a92b}@keyframes online-blink{0%{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.online[data-look] .online-dot{animation:none}}.link-sheet h3.link-h{color:var(--muted);margin:6px 0 0;font-size:13px;font-weight:600}.link-new{flex-wrap:wrap;gap:8px;display:flex}.link-rooms,.link-seat-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.link-rooms li{border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.link-rooms li .small{flex:1}.link-rooms li{flex-wrap:wrap}.link-rooms li .link-code{flex-basis:100%}.link-seats{gap:3px;display:inline-flex}.link-seats i{background:var(--panel-2);width:10px;height:14px;box-shadow:inset 0 0 0 1px var(--line);border-radius:3px}.link-seats i.on{background:var(--accent);box-shadow:none}.link-seat-list{grid-template-columns:1fr 1fr;display:grid}.link-seat-list li{border:1px dashed var(--line);border-radius:10px;flex-direction:column;gap:2px;padding:10px;display:flex}.link-seat-list li[data-state=joined]{border-style:solid}.link-seat-list li[data-state=ready]{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.link-seat-list b{font-family:var(--pixel);font-size:12px}.link-code{gap:8px;display:flex}.link-code input{min-width:0;font:inherit;font-family:var(--pixel);letter-spacing:.2em;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;flex:1;padding:8px 10px;font-size:15px}.link-rooms li.link-create{border:0;flex-wrap:nowrap;gap:8px;padding:0}.link-rooms li.link-create .btn{border:1px dashed var(--line);border-radius:10px;flex:1;padding:10px}.link-code-show{font-family:var(--pixel);letter-spacing:.25em;text-align:center;margin:0;font-size:28px}.link-auto{align-items:center;gap:6px;font-size:13px;display:inline-flex}.admin-link{margin:12px 0 20px}.admin-link h2{align-items:center;gap:10px;font-size:16px;display:flex}.dev-split{background:var(--bg);min-height:100dvh;color:var(--text);flex-direction:column;gap:8px;padding:8px;display:flex}.dev-split-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dev-split-bar label{align-items:center;gap:4px;display:inline-flex}.dev-split-grid{grid-template-columns:repeat(var(--panes), minmax(320px, 1fr));flex:1;gap:8px;display:grid}@media (max-width:1300px){.dev-split-grid{grid-template-columns:repeat(2,minmax(320px,1fr))}}.dev-pane{border:1px solid var(--line);background:var(--panel);border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:6px;display:flex}.dev-pane-head{align-items:center;gap:6px;display:flex}.dev-pane-stats{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-height:2.6em}.dev-pane iframe{background:var(--bg);border:0;border-radius:8px;width:100%;height:max(640px,100dvh - 170px)}.screen .player-error{font-family:var(--font);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:6px;font-size:12px;display:flex}.bench-form{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.bench-form input{min-width:180px;font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;flex:1;padding:8px 10px}.player-error .btn{min-height:32px;padding:4px 8px}
