:root{--bg:#f4f2ee;--surface:#fff;--surface-2:#faf9f6;--surface-3:#f1eee8;--line:#2820121a;--line-strong:#2820122e;--ink:#1e1b16;--ink-2:#5d574c;--ink-3:#8e8779;--accent:#e8692c;--accent-ink:#b44a12;--accent-soft:#fdeee4;--accent-ring:#e8692c59;--run:#1f9454;--run-hover:#1a8249;--danger:#cf3b3b;--danger-soft:#fdecec;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--shadow-1:0 1px 2px #2820120f, 0 0 0 1px var(--line);--shadow-2:0 1px 2px #2820120d, 0 4px 12px -4px #2820121f, 0 0 0 1px var(--line);--shadow-pop:0 2px 6px #28201214, 0 18px 40px -12px #2820124d, 0 0 0 1px var(--line);--ease-out:cubic-bezier(.2, .8, .2, 1);--font:var(--font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}img{display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{border-radius:var(--r-sm);background:var(--surface);height:32px;color:var(--ink);box-shadow:var(--shadow-1);white-space:nowrap;cursor:pointer;border:0;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .12s,box-shadow .12s,color .12s;display:inline-flex}.btn:hover{background:var(--surface-2);box-shadow:0 1px 2px #28201214, 0 0 0 1px var(--line-strong)}.btn:active{transform:translateY(.5px)}.btn svg{color:var(--ink-2);flex:none}.btn.sm{height:28px;padding:0 9px;font-size:13px}.btn.ghost{box-shadow:none;color:var(--ink-2);background:0 0}.btn.ghost:hover{background:var(--surface-3);color:var(--ink)}.btn.primary{background:var(--ink);color:#fff;box-shadow:none}.btn.primary:hover{background:#35302a}.btn.danger{background:var(--danger);color:#fff;box-shadow:none}.btn.danger:hover{background:#b83030}.btn.primary svg,.btn.danger svg{color:currentColor}.icon-btn{border-radius:var(--r-xs);width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:background-color .12s,color .12s;display:inline-grid}.icon-btn:hover{background:var(--surface-3);color:var(--ink)}.count{background:var(--surface-3);min-width:18px;color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:center;border-radius:9px;padding:0 5px;font-size:11px;font-weight:600;line-height:18px}.boot{height:100vh;color:var(--ink-3);align-content:center;place-items:center;gap:14px;display:grid}.boot-mark{background:var(--accent);width:14px;height:14px;animation:boot .9s var(--ease-out) infinite alternate;border-radius:4px}@keyframes boot{to{opacity:.5;transform:translateY(-6px)}}.app{flex-direction:column;height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:16px;height:52px;padding:0 12px 0 16px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:8px;font-weight:700;display:flex}.doc{border-left:1px solid var(--line);align-items:center;gap:10px;min-width:0;padding-left:16px;display:flex}.title-input{border-radius:var(--r-xs);text-overflow:ellipsis;background:0 0;border:0;min-width:0;max-width:320px;margin-left:-8px;padding:5px 8px;font-weight:600;transition:background-color .12s,box-shadow .12s}.title-input:hover{background:var(--surface-3)}.title-input:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent-ring);outline:none}.save-state{color:var(--ink-3);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.save-state:before{content:"";background:#9cc9ae;border-radius:50%;width:6px;height:6px}.save-state.dirty:before{background:var(--accent)}.file-actions{gap:2px;margin-left:auto;display:flex}.lang-switch{border-radius:var(--r-sm);background:var(--surface-3);gap:2px;padding:2px;display:flex}.lang-switch button{border-radius:var(--r-xs);min-width:34px;height:26px;color:var(--ink-3);font:600 11.5px var(--font);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;padding:0 8px;transition:background-color .12s,color .12s}.lang-switch button:hover{color:var(--ink)}.lang-switch button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #2820121a, 0 0 0 1px var(--line)}.run-group{border-left:1px solid var(--line);align-items:center;gap:6px;padding-left:12px;display:flex}.run,.stop{border-radius:var(--r-sm);cursor:pointer;border:0;justify-content:center;align-items:center;gap:7px;height:34px;font-weight:600;transition:background-color .12s,color .12s,opacity .12s;display:inline-flex}.run{background:var(--run);color:#fff;min-width:116px;padding:0 16px 0 13px}.run:hover{background:var(--run-hover)}.run.is-running{color:var(--run);background:#e6f4ec;box-shadow:inset 0 0 0 1px #b9dfc8}.run.is-running svg{animation:1.1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}.stop{background:var(--danger-soft);width:34px;color:var(--danger)}.stop:hover:not(:disabled){background:#fbdcdc}.stop:disabled{opacity:.45;cursor:default}.workspace{flex:1;min-height:0;display:flex}.left{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:1;min-width:0;display:flex}.tabbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:12px;padding:0 12px;display:flex}.tabs{gap:4px;display:flex}.tab{cursor:pointer;height:42px;color:var(--ink-3);background:0 0;border:0;align-items:center;gap:7px;padding:0 12px;font-weight:500;transition:color .12s;display:inline-flex;position:relative}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);font-weight:600}.tab.on:after{content:"";background:var(--accent);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.tab.on svg{color:var(--accent)}.editing{height:42px;color:var(--ink-2);align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.editing img{object-fit:contain;width:22px;height:22px}.editing span{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tab-body{flex:1;min-height:0;position:relative}.blockly-host{position:absolute;inset:0}.blocklyToolbox{border-right:1px solid var(--line);background:var(--surface)!important;padding:10px 8px!important}.blocklyToolboxCategoryGroup{flex-direction:column;gap:2px;display:flex}.blocklyToolboxCategory.bs-cat{border-radius:var(--r-sm);cursor:pointer;background:0 0;align-items:center;min-width:136px;height:36px;transition:background-color .12s;display:flex;border:0!important;margin:0!important;padding:0 12px 0 10px!important}.bs-cat .blocklyTreeRowContentContainer{align-items:center;gap:10px;height:100%;display:flex}.bs-dot{background:var(--cat);width:14px;height:14px;transition:transform .12s var(--ease-out), box-shadow .12s;border-radius:5px;flex:none;box-shadow:inset 0 -2px #00000024}.bs-cat .blocklyToolboxCategoryLabel{font:500 13.5px var(--font)!important;color:var(--ink-2)!important;padding:0!important}.bs-cat:hover{background:var(--surface-3)}.bs-cat:hover .blocklyToolboxCategoryLabel{color:var(--ink)!important}.bs-cat.blocklyToolboxSelected{background:color-mix(in srgb, var(--cat) 13%, #fff)!important}.bs-cat.blocklyToolboxSelected .blocklyToolboxCategoryLabel{color:color-mix(in srgb, var(--cat) 70%, #000)!important;font-weight:600!important}.bs-cat.blocklyToolboxSelected .bs-dot{box-shadow:inset 0 -2px 0 #00000024, 0 0 0 3px color-mix(in srgb, var(--cat) 25%, transparent);transform:scale(1.1)}.blocklyFlyoutButtonBackground{fill:var(--surface)!important;stroke:var(--line-strong)!important;stroke-width:1px!important}.blocklyFlyoutButtonShadow{fill:#2820120f!important}.blocklyFlyoutButton .blocklyText{fill:var(--ink)!important;font:600 15px var(--font)!important}.blocklyFlyoutButton:hover .blocklyFlyoutButtonBackground{fill:var(--accent-soft)!important;stroke:var(--accent)!important}.blocklyFlyoutLabelText,.blocklyWidgetDiv .blocklyMenu,.blocklyDropDownDiv{font-family:var(--font)!important}.blocklyDropDownDiv{border-radius:var(--r-md)!important;box-shadow:var(--shadow-pop)!important}.blocklyHtmlInput{font-family:var(--font)!important}.assets{padding:20px;overflow:auto}.asset-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.hint{color:var(--ink-3);margin-left:6px;font-size:13px}.swatch{cursor:pointer;background:0 0;border:0;border-radius:4px;width:18px;height:18px;padding:0}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;display:grid}.asset-card{border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);cursor:pointer;flex-direction:column;transition:box-shadow .12s;display:flex;position:relative;overflow:hidden}.asset-card:hover{box-shadow:var(--shadow-2)}.asset-card.on{box-shadow:0 0 0 2px var(--accent), 0 4px 12px -4px var(--accent-ring)}.asset-thumb{height:104px;padding:12px}.asset-thumb img{object-fit:contain;width:100%;height:100%}.asset-meta{border-top:1px solid var(--line);align-items:center;gap:6px;padding:8px;display:flex}.idx{color:var(--ink-3);font-variant-numeric:tabular-nums;min-width:14px;font-size:12px;font-weight:600}.asset-card.on .idx{color:var(--accent-ink)}.asset-meta input,.sound-list input{border-radius:var(--r-xs);background:0 0;border:0;flex:1;min-width:0;padding:4px 6px}.asset-meta input:hover,.sound-list input:hover{background:var(--surface-3)}.asset-meta input:focus,.sound-list input:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent-ring);outline:none}.icon-btn.corner{opacity:0;background:#ffffffd9;position:absolute;top:6px;right:6px}.asset-card:hover .icon-btn.corner,.icon-btn.corner:focus-visible{opacity:1}.checker{background-color:#fff;background-image:linear-gradient(45deg,#f2efe9 25%,#0000 25% 75%,#f2efe9 75%),linear-gradient(45deg,#f2efe9 25%,#0000 25% 75%,#f2efe9 75%);background-position:0 0,6px 6px;background-size:12px 12px}.sound-list{flex-direction:column;gap:6px;max-width:520px;margin:0;padding:0;list-style:none;display:flex}.sound-list li{border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);align-items:center;gap:8px;padding:6px 8px;display:flex}.icon-btn.play{color:var(--run);background:#e9f5ee;border-radius:50%}.icon-btn.play:hover{color:var(--run);background:#d6eddf}.mime{font:11px var(--mono);color:var(--ink-3);text-transform:lowercase}.empty{max-width:360px;color:var(--ink-2);padding:28px 0}.empty svg{color:var(--ink-3);margin-bottom:8px}.empty p{margin:2px 0}.right{flex-direction:column;flex-shrink:0;gap:10px;width:524px;padding:12px;display:flex;overflow:auto}.stage-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:4px 10px 10px 4px}.stage-head{align-items:center;gap:8px;height:32px;padding-left:10px;display:flex}.stage-title{font-size:13px;font-weight:600}.stage-dim{font:11px var(--mono);color:var(--ink-3)}.readout{font:500 11.5px var(--mono);color:var(--accent-ink);font-variant-numeric:tabular-nums;white-space:pre;margin-left:auto}.ruled{grid-template-rows:18px auto;grid-template-columns:26px 1fr;display:grid}.ruler-corner{font:600 9px var(--mono);color:var(--ink-3);position:relative}.ruler-corner span:first-child{position:absolute;top:0;right:6px}.ruler-corner span:last-child{position:absolute;bottom:3px;right:0}.ruler{color:var(--ink-3);position:relative}.ruler-x{background:repeating-linear-gradient(90deg, var(--line-strong) 0 1px, transparent 1px 25%) bottom left / 100% 7px no-repeat, repeating-linear-gradient(90deg, var(--line) 0 1px, transparent 1px 6.25%) bottom left / 100% 4px no-repeat;margin:0 1px}.ruler-y{background:repeating-linear-gradient(180deg, var(--line-strong) 0 1px, transparent 1px 25%) top right / 7px 100% no-repeat, repeating-linear-gradient(180deg, var(--line) 0 1px, transparent 1px 6.25%) top right / 4px 100% no-repeat;margin:1px 0}.tick-label{font:9.5px var(--mono);font-variant-numeric:tabular-nums;line-height:1;position:absolute}.ruler-x .tick-label{top:1px;transform:translate(-50%)}.ruler-x .tick-label:first-child{transform:none}.ruler-x .tick-label:last-of-type{transform:translate(-100%)}.ruler-y .tick-label{right:9px;transform:translateY(-50%)}.ruler-y .tick-label:first-child{transform:none}.ruler-y .tick-label:last-of-type{transform:translateY(-100%)}.mark{opacity:0;pointer-events:none;transition:opacity .15s;position:absolute}.ruler-x .mark{left:var(--p);border-top:7px solid;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;bottom:0;transform:translate(-50%)}.ruler-y .mark{top:var(--p);border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid;width:0;height:0;right:0;transform:translateY(-50%)}.mark.mouse{color:var(--accent);z-index:1}.mark.sprite{color:var(--ink-3)}.canvas-wrap{border-radius:var(--r-sm);box-shadow:0 0 0 1px var(--line-strong);position:relative;overflow:hidden}.stage-canvas{aspect-ratio:4/3;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:crosshair;background:#fff;width:100%;display:block}.stage-canvas.grabbing{cursor:grabbing}.icon-btn.go{color:var(--run)}.icon-btn.go:hover{color:var(--run);background:#e6f4ec}.icon-btn.halt{color:var(--danger)}.icon-btn.halt:hover{background:var(--danger-soft);color:var(--danger)}.ask-box{border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-pop);animation:rise .18s var(--ease-out);padding:8px;position:absolute;bottom:10px;left:10px;right:10px}.ask-q{margin:2px 4px 8px;font-weight:600}.ask-row{gap:6px;display:flex}.ask-row input{background:var(--surface-3);border:0;border-radius:16px;flex:1;height:32px;padding:0 14px}.ask-row input:focus{box-shadow:0 0 0 2px var(--accent-ring);background:var(--surface);outline:none}.ask-row button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.present-scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;background:#1e1b168c;animation:.16s ease-out fade;position:fixed;inset:0}.stage.present .stage-card{z-index:201;width:min(100vw - 48px,133.333vh - 88px);box-shadow:var(--shadow-pop);animation:pop .2s var(--ease-out);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.inspector{border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);flex-direction:column;gap:8px;padding:10px;display:flex}.inspector.muted{color:var(--ink-2);flex-direction:row;align-items:flex-start;gap:10px;font-size:13px}.inspector.muted svg{color:var(--ink-3);flex:none;margin-top:2px}.insp-row{align-items:center;gap:6px;display:flex}.name-input{border-radius:var(--r-xs);background:var(--surface-3);border:0;flex:1;min-width:0;height:32px;padding:0 8px;font-weight:600}.name-input:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent-ring);outline:none}.toggle{width:32px;height:32px;color:var(--ink-2)}.toggle.off{color:var(--ink-3);background:var(--surface-3)}.insp-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.field{border-radius:var(--r-xs);background:var(--surface-3);align-items:center;height:30px;padding-left:8px;display:flex}.field:focus-within{background:var(--surface);box-shadow:0 0 0 2px var(--accent-ring)}.field span{color:var(--ink-3);white-space:nowrap;font-size:11.5px}.field input{text-align:right;width:100%;min-width:0;font:500 13px var(--font);font-variant-numeric:tabular-nums;background:0 0;border:0;padding:0 6px}.field input:focus{outline:none}.field input::-webkit-inner-spin-button{opacity:.4}.segmented{border-radius:var(--r-sm);background:var(--surface-3);grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;display:grid}.segmented button{border-radius:var(--r-xs);height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;font-size:12.5px;transition:background-color .12s,color .12s}.segmented button:hover{color:var(--ink)}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #2820121a, 0 0 0 1px var(--line);font-weight:600}.tray{border-radius:var(--r-lg);background:var(--surface);min-height:170px;box-shadow:var(--shadow-1);flex-direction:column;flex:1;display:flex}.tray-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.tray-head h3{align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;display:flex}.tray-actions{gap:6px;display:flex}.tray-body{flex:1;gap:10px;padding:10px;display:flex}.tile-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));align-content:start;gap:8px;display:grid}.tile{border-radius:var(--r-md);background:var(--surface-2);box-shadow:0 0 0 1px var(--line);transition:box-shadow .12s,background-color .12s;position:relative}.tile:hover{background:var(--surface);box-shadow:0 0 0 1px var(--line-strong)}.tile.on{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent)}.tile-hit,.stage-tile{cursor:pointer;border-radius:inherit;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;width:100%;padding:8px 6px 6px;display:flex}.stage-tile{flex:none;align-self:flex-start;width:78px}.tile-img{border-radius:var(--r-xs);width:100%;height:46px}.tile-img img{object-fit:contain;width:100%;height:100%}.stage-tile .tile-img{box-shadow:0 0 0 1px var(--line);overflow:hidden}.stage-tile .tile-img img{object-fit:cover;width:100%;height:100%}.tile-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:500;overflow:hidden}.tile.on .tile-name,.stage-tile.on .tile-name{color:var(--accent-ink);font-weight:600}.tile-tools{border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-2);opacity:0;gap:1px;padding:1px;transition:opacity .12s,transform .12s;display:flex;position:absolute;top:-9px;right:-6px;transform:translateY(2px)}.tile-tools .icon-btn{width:24px;height:24px}.tile:hover .tile-tools,.tile.on .tile-tools,.tile-tools:focus-within{opacity:1;transform:none}.tray-empty{color:var(--ink-3);grid-column:1/-1;margin:6px 0;font-size:13px}.dlg{border-radius:var(--r-lg);background:var(--surface);width:min(400px,100vw - 32px);color:var(--ink);box-shadow:var(--shadow-pop);border:0;padding:0}.dlg[open]{animation:pop .18s var(--ease-out)}.dlg[open]::backdrop{background:#1e1b1652;animation:.18s ease-out fade}.dlg.closing{animation:.12s ease-in forwards pop-out}.dlg.closing::backdrop{animation:.12s ease-in forwards fade-out}.dlg-body{padding:18px 18px 14px}.dlg-head{align-items:center;gap:10px;display:flex}.dlg-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-ink);border-radius:9px;flex:none;place-items:center;display:grid}.dlg.danger .dlg-icon{background:var(--danger-soft);color:var(--danger)}.dlg h2{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:15.5px;font-weight:650}.dlg-msg{color:var(--ink-2);text-wrap:pretty;margin:8px 0 0 40px;font-size:13.5px}.dlg-field{flex-direction:column;gap:6px;margin:14px 0 0 40px;display:flex}.dlg-field span{color:var(--ink-2);font-size:12px;font-weight:500}.dlg-field input{border-radius:var(--r-sm);background:var(--surface-3);height:36px;box-shadow:inset 0 0 0 1px var(--line);border:0;padding:0 10px}.dlg-field input:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent-ring), inset 0 0 0 1px var(--accent);outline:none}.dlg-field input[aria-invalid=true]{box-shadow:0 0 0 2px #cf3b3b40, inset 0 0 0 1px var(--danger)}.dlg-field em{color:var(--danger);font-size:12px;font-style:normal}.dlg-actions{justify-content:flex-end;gap:6px;margin-top:18px;display:flex}.toast{z-index:30;background:var(--ink);color:#fff;max-width:min(560px,100vw - 32px);box-shadow:var(--shadow-pop);animation:toast-in .2s var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:9px 14px 9px 12px;font-size:13.5px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast svg{color:#9fdcb8;flex:none}.toast.bad{border-radius:var(--r-md);background:#8e2424}.toast.bad svg{color:#ffc7c7}@keyframes pop{0%{opacity:0;transform:translate(var(--tx,0), var(--ty,0)) scale(.96)}}.stage.present .stage-card{--tx:-50%;--ty:-50%}@keyframes pop-out{to{opacity:0;transform:scale(.97)}}@keyframes fade{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after,::backdrop{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.samples-dlg{width:min(720px,100vw - 32px);max-height:calc(100vh - 32px)}.samples-dlg .dlg-msg{margin-right:8px}.samples-close{margin-left:auto}.sample-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:16px 0 4px;padding:0;list-style:none;display:grid}.sample-card{border-radius:var(--r-md);text-align:left;cursor:pointer;background:var(--surface-2);width:100%;height:100%;box-shadow:var(--shadow-1);transition:box-shadow .14s var(--ease-out), transform .14s var(--ease-out);border:0;flex-direction:column;align-items:stretch;gap:6px;padding:8px 8px 10px;display:flex}.sample-card:hover{box-shadow:var(--shadow-2), 0 0 0 1.5px var(--accent);transform:translateY(-1px)}.sample-card:active{transform:translateY(0)}.sample-card img{aspect-ratio:4/3;border-radius:var(--r-sm);width:100%;height:auto}.sample-name{letter-spacing:-.01em;font-size:14px;font-weight:650}.sample-blurb{color:var(--ink-2);text-wrap:pretty;font-size:12.5px;line-height:1.4}.sample-tags{flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:2px;display:flex}.sample-tags span{background:var(--surface-3);color:var(--ink-2);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:550}.lib-dlg{width:min(760px,100vw - 32px);height:min(640px,100vh - 32px);padding:0}.lib-body{flex-direction:column;height:100%;padding-bottom:0;display:flex}.lib-count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px;font-weight:550}.lib-tools{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:14px 0 10px;display:flex}.lib-search{border-radius:var(--r-sm);background:var(--surface-3);max-width:260px;height:32px;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);flex:200px;align-items:center;gap:6px;padding:0 10px;display:flex}.lib-search:focus-within{background:var(--surface);box-shadow:0 0 0 2px var(--accent-ring), inset 0 0 0 1px var(--accent)}.lib-search input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:13.5px}.lib-cats{flex-wrap:wrap;gap:4px;display:flex}.chip{cursor:pointer;height:28px;font:inherit;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);background:0 0;border:0;border-radius:999px;padding:0 11px;font-size:12.5px;font-weight:550}.chip:hover{background:var(--surface-3);color:var(--ink)}.chip.on{background:var(--ink);color:#fff;box-shadow:none}.lib-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));align-content:start;gap:10px;margin:0 -18px;padding:4px 18px 18px;list-style:none;display:grid;overflow-y:auto}.lib-grid.wide{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.lib-grid.sounds{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.lib-card{border-radius:var(--r-md);cursor:pointer;text-align:center;background:var(--surface-2);width:100%;height:100%;box-shadow:var(--shadow-1);transition:box-shadow .14s var(--ease-out), transform .14s var(--ease-out);border:0;flex-direction:column;align-items:stretch;gap:4px;padding:6px 6px 8px;display:flex}.lib-card:hover{box-shadow:var(--shadow-2), 0 0 0 1.5px var(--accent);transform:translateY(-1px)}.lib-card:active{transform:translateY(0)}.lib-card:focus-visible{box-shadow:0 0 0 2px var(--accent-ring), 0 0 0 1.5px var(--accent);outline:none}.lib-thumb{border-radius:var(--r-sm);background:var(--surface);height:88px;padding:10px;display:block}.lib-grid.wide .lib-thumb{aspect-ratio:4/3;height:auto;padding:0;overflow:hidden}.lib-thumb img{object-fit:contain;width:100%;height:100%;display:block}.lib-grid.wide .lib-thumb img{object-fit:cover}.lib-card:hover .lib-thumb img{animation:lib-wiggle .42s var(--ease-out)}.lib-grid.wide .lib-card:hover .lib-thumb img{animation:none}@keyframes lib-wiggle{30%{transform:rotate(-5deg)scale(1.05)}65%{transform:rotate(4deg)scale(1.05)}}.lib-name{letter-spacing:-.01em;font-size:13px;font-weight:600;line-height:1.25}.lib-sub{color:var(--ink-3);font-size:11.5px}.lib-sound{border-radius:var(--r-md);background:var(--surface-2);box-shadow:var(--shadow-1);align-items:center;gap:8px;padding:6px 6px 6px 8px;display:flex}.lib-sound .lib-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:550;overflow:hidden}.lib-sound.playing{box-shadow:var(--shadow-1), 0 0 0 1.5px var(--run)}.lib-sound .btn.done,.lib-sound .btn.done svg{color:var(--run)}.lib-empty{color:var(--ink-2);text-align:center;margin:24px 0;font-size:13.5px}@media (max-width:1080px){.right{width:440px}.file-actions .btn{padding:0 9px}}@media (max-width:900px){.workspace{flex-direction:column-reverse;overflow:auto}.right{width:100%}.left{border-right:0;border-top:1px solid var(--line);min-height:70vh}.topbar{flex-wrap:wrap;row-gap:8px;height:auto;padding:8px 12px}.doc{border-left:0;padding-left:0}.save-state{display:none}}.ai-toggle.on{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px #e8692c59}.ai-toggle svg{color:var(--accent)}.ai-panel{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;flex-shrink:0;width:360px;min-height:0;display:flex}.ai-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;display:flex}.ai-head h2{align-items:center;gap:7px;margin:0;font-size:14px;font-weight:700;display:flex}.ai-head h2 svg{color:var(--accent)}.ai-head-actions{align-items:center;gap:2px;display:flex}.ai-head .btn:disabled,.ai-head .icon-btn:disabled{opacity:.4;cursor:default}.ai-list{flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow-y:auto}.ai-intro{color:var(--ink-2);margin:auto 0;font-size:13.5px;line-height:1.5}.ai-intro p{margin:0 0 10px}.ai-intro-title{color:var(--ink);font-size:16px;font-weight:700}.ai-chips{flex-direction:column;gap:6px;margin-top:14px;display:flex}.ai-chip{text-align:left;border-radius:var(--r-md);cursor:pointer;background:var(--surface-2);box-shadow:var(--shadow-1);color:var(--ink);font:500 13px/1.4 var(--font);border:0;padding:9px 11px;transition:background-color .12s,box-shadow .12s}.ai-chip:hover{background:var(--accent-soft);box-shadow:0 0 0 1px #e8692c66}.ai-msg{flex-direction:column;gap:6px;font-size:13.5px;line-height:1.5;display:flex}.ai-msg:empty{display:none}.ai-msg.user{background:var(--ink);color:#fff;border-radius:12px 12px 4px;align-self:flex-end;max-width:88%;padding:8px 11px}.ai-msg.notice{color:var(--ink-3);align-self:center;font-size:12.5px}.ai-msg.notice.bad{color:var(--danger)}.ai-msg p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.ai-text code{font-family:var(--mono);background:var(--surface-3);border-radius:4px;padding:1px 4px;font-size:12px}.ai-update{color:var(--ink-3);font-size:12.5px;font-style:italic}.ai-tool{background:var(--surface-3);max-width:100%;color:var(--ink-2);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.ai-tool.ok svg{color:var(--run)}.ai-tool.err{background:var(--danger-soft);color:var(--danger)}.ai-tool.run svg{color:var(--accent);animation:1.1s ease-in-out infinite pulse}.ai-tool-note{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.ai-working{color:var(--ink-3);align-items:center;gap:8px;font-size:12.5px;display:flex}.ai-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite pulse}.ai-compose{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:10px;display:flex}.ai-compose textarea{resize:none;border-radius:var(--r-md);background:var(--surface-2);width:100%;box-shadow:var(--shadow-1);font:13.5px/1.45 var(--font);color:var(--ink);border:0;padding:9px 10px}.ai-compose textarea:focus{box-shadow:0 0 0 2px var(--accent-ring);outline:none}.ai-compose .btn{align-self:flex-end}.ai-compose .btn:disabled{opacity:.45;cursor:default}@media (max-width:1400px){.ai-panel{width:320px}}@media (max-width:900px){.ai-panel{border-left:0;border-bottom:1px solid var(--line);order:3;width:100%;height:70vh}}a{color:inherit}a.btn,a.brand{text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn.wide{justify-content:center;width:100%;height:38px}.link{color:var(--accent-ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.link:hover{text-decoration:underline}.cloud-actions{gap:6px;display:flex}.save-state.busy:before{background:var(--accent);animation:1.1s ease-in-out infinite pulse}.account{position:relative}.account-btn{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:8px;max-width:180px;height:34px;padding:0 10px 0 3px;display:flex}.account-btn:hover,.account-btn[aria-expanded=true]{background:var(--surface-3)}.account-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.avatar{background:var(--accent-soft);width:28px;height:28px;color:var(--accent-ink);font:650 11px var(--font);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;display:grid}.menu{z-index:50;border-radius:var(--r-md);background:var(--surface);min-width:220px;box-shadow:var(--shadow-pop);animation:pop .14s var(--ease-out);transform-origin:100% 0;padding:5px;position:absolute;top:calc(100% + 6px);right:0}.menu-head{border-bottom:1px solid var(--line);flex-direction:column;margin-bottom:4px;padding:8px 10px 9px;display:flex}.menu-head b{font-weight:600}.menu-head span{color:var(--ink-3);text-overflow:ellipsis;font-size:12px;overflow:hidden}.menu-item{border-radius:var(--r-xs);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:9px;width:100%;height:32px;padding:0 10px;font-size:13.5px;text-decoration:none;display:flex}.menu-item svg{color:var(--ink-3)}.menu-item:hover{background:var(--surface-3)}.menu-item.danger{color:var(--danger)}.menu-item.danger svg{color:currentColor}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}.role-pill{white-space:nowrap;background:var(--surface-3);height:22px;color:var(--ink-2);border-radius:999px;align-items:center;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex}.role-pill.owner{background:var(--accent-soft);color:var(--accent-ink)}.role-pill.admin{color:#2f55a8;background:#e9effc}.role-pill.editor{color:#1d7344;background:#e6f4ec}.site{flex-direction:column;min-height:100vh;display:flex}.site-top{z-index:20;position:sticky;top:0}.site-nav{border-left:1px solid var(--line);gap:2px;padding-left:16px;display:flex}.site-link{border-radius:var(--r-sm);height:32px;color:var(--ink-2);align-items:center;padding:0 12px;font-weight:500;text-decoration:none;display:inline-flex}.site-link:hover{background:var(--surface-3);color:var(--ink)}.site-link.on{color:var(--ink);background:var(--surface-3);font-weight:600}.site-right{align-items:center;gap:10px;margin-left:auto;display:flex}.page{width:100%;max-width:1200px;margin:0 auto;padding:28px 24px 64px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-head h1{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:24px;font-weight:700}.page-head p{color:var(--ink-2);max-width:60ch;margin:4px 0 0}.back-link{color:var(--ink-3);align-items:center;gap:5px;margin-bottom:8px;font-size:13px;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.page-filter{grid-template-columns:repeat(3,auto);margin-bottom:18px;display:inline-grid}.page-filter button,.lib-tools .segmented button{align-items:center;gap:6px;height:28px;padding:0 12px;display:inline-flex}.page-filter .count{background:0 0}.page-empty{text-align:center;color:var(--ink-2);justify-items:center;gap:2px;padding:64px 16px;display:grid}.page-empty svg{color:var(--ink-3);margin-bottom:8px}.page-empty p{text-wrap:pretty;max-width:46ch;margin:2px 0}.page-empty .btn{margin-top:14px}.lib-tools{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.lib-tools .segmented{grid-template-columns:repeat(2,auto)}.search{border-radius:var(--r-sm);background:var(--surface);max-width:360px;height:34px;box-shadow:var(--shadow-1);color:var(--ink-3);flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.search:focus-within{box-shadow:0 0 0 2px var(--accent-ring), inset 0 0 0 1px var(--accent)}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.card{border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);transition:box-shadow .16s;position:relative}.card:hover{box-shadow:var(--shadow-2)}.card.skel{aspect-ratio:4/4.1;background:linear-gradient(90deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);background-size:200% 100%;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.card-thumb{aspect-ratio:4/3;border-radius:var(--r-lg) var(--r-lg) 0 0;color:var(--ink-3);border-bottom:1px solid var(--line);place-items:center;display:grid;position:relative;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%}.badge{color:#fff;background:#1e1b16c7;border-radius:999px;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex;position:absolute;top:8px;left:8px}.play-hint{background:var(--run);color:#fff;opacity:0;width:48px;height:48px;transition:opacity .14s, transform .16s var(--ease-out);border-radius:50%;place-items:center;display:grid;position:absolute;transform:scale(.85);box-shadow:0 6px 18px -6px #0006}.card.game:hover .play-hint,.card-thumb:focus-visible .play-hint{opacity:1;transform:none}.card-body{padding:10px 12px 12px}.card-title{justify-content:space-between;align-items:center;gap:6px;min-height:28px;display:flex}.card-title>a{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;text-decoration:none;overflow:hidden}.card-title>a:hover{color:var(--accent-ink)}.card-meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:12.5px;display:flex}.card-meta .author{color:var(--ink-2);font-weight:500;text-decoration:none}.card-meta .author:hover{color:var(--accent-ink);text-decoration:underline}.auth-page{flex-direction:column;min-height:100vh;display:flex}.auth-top{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.auth-card{border-radius:var(--r-lg);background:var(--surface);width:min(400px,100vw - 32px);box-shadow:var(--shadow-2);flex-direction:column;gap:14px;margin:6vh auto 48px;padding:28px 26px 22px;display:flex}.auth-card h1{letter-spacing:-.02em;margin:0;font-size:21px}.auth-lead{color:var(--ink-2);text-wrap:pretty;margin:-6px 0 4px;font-size:13.5px}.field-block{flex-direction:column;gap:6px;display:flex}.field-block span{color:var(--ink-2);font-size:12.5px;font-weight:500}.field-block input,.mem-add input,.mem-add select,.mem-list select{border-radius:var(--r-sm);background:var(--surface-2);height:36px;box-shadow:inset 0 0 0 1px var(--line-strong);border:0;padding:0 10px}.field-block input:focus,.mem-add input:focus,.mem-add select:focus,.mem-list select:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent-ring), inset 0 0 0 1px var(--accent);outline:none}.form-msg{border-radius:var(--r-sm);color:#1d5f3a;text-wrap:pretty;background:#e6f4ec;align-items:flex-start;gap:7px;margin:0;padding:9px 11px;font-size:13px;display:flex}.form-msg svg{flex:none;margin-top:1px}.form-msg.bad{background:var(--danger-soft);color:#8e2424}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.auth-guest{color:var(--ink-3);align-self:center;margin-top:4px;font-size:12.5px}.dlg.wide{width:min(560px,100vw - 32px)}.icon-btn.push{margin-left:auto}.mem-add{grid-template-columns:1fr auto auto;gap:6px;margin:16px 0 10px;display:grid}.mem-add .btn{height:36px}.mem-list{max-height:320px;margin:10px 0 0;padding:0;list-style:none;overflow:auto}.mem-list li{border-top:1px solid var(--line);align-items:center;gap:10px;padding:8px 2px;display:flex}.mem-list li:first-child{border-top:0}.mem-who{flex-direction:column;flex:1;min-width:0;display:flex}.mem-who b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.mem-who em{color:var(--ink-3);font-style:normal;font-weight:400}.mem-who span{color:var(--ink-3);text-overflow:ellipsis;font-size:12px;overflow:hidden}.mem-list select{height:30px;font-size:13px}.icon-spacer{flex:none;width:28px}.mem-skel span{background:var(--surface-3);border-radius:4px;height:14px;display:block}.mem-skel span:first-child{border-radius:50%;width:28px;height:28px}.mem-skel span:last-child{width:50%}.role-legend{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:8px 16px;margin:14px 0 0;padding:12px 0 0;font-size:12px;display:grid}.role-legend dt{font-weight:600}.role-legend dd{color:var(--ink-3);margin:0}.stage.play .ruled{display:block}.stage.play .ruler,.stage.play .ruler-corner,.stage.play .readout,.stage.play .stage-dim{display:none}.stage.play .stage-card{padding:6px}.stage.play .stage-canvas{cursor:default}.play-page{max-width:1280px}.play-main{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.play-info{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.play-info h1{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:24px}.author-line{color:var(--ink-2);align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.author-line:hover{color:var(--accent-ink)}.plays{color:var(--ink-3);margin:0;font-size:13px}.play-actions{gap:6px;margin:6px 0 4px;display:flex}.play-desc{border-radius:var(--r-md);background:var(--surface);width:100%;box-shadow:var(--shadow-1);padding:12px 14px}.play-desc h2{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:12px;font-weight:600}.play-desc p{white-space:pre-wrap;text-wrap:pretty;margin:0}.draft-note{background:var(--surface-3);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;margin:0;padding:4px 10px;font-size:12px;display:inline-flex}.play-more{margin-top:40px}.play-more h2{margin:0 0 12px;font-size:16px}.play-skel{height:50vh;color:var(--ink-3);place-items:center;gap:14px;display:grid}.start-overlay{color:#fff;cursor:pointer;text-shadow:0 1px 3px #00000059;background:#1e1b1647;border:0;place-content:center;justify-items:center;gap:12px;font-size:15px;font-weight:600;transition:background-color .16s;display:grid;position:absolute;inset:0}.start-overlay:hover{background:#1e1b1661}.start-btn{background:var(--run);width:72px;height:72px;transition:transform .16s var(--ease-out);border-radius:50%;place-items:center;display:grid;box-shadow:0 10px 30px -8px #00000080}.start-btn svg{margin-left:4px}.start-overlay:hover .start-btn{transform:scale(1.06)}@media (max-width:1320px){.topbar .account-name{display:none}.topbar .account-btn{padding:0 3px}}@media (max-width:900px){.play-main{grid-template-columns:1fr}.site-top{gap:10px;padding:0 12px;overflow-x:auto}.site-nav{padding-left:8px}.site-right .lang-switch{display:none}.page{padding:20px 16px 48px}.mem-add{grid-template-columns:1fr auto}.mem-add input{grid-column:1/-1}.role-legend{grid-template-columns:1fr}}.doc{min-width:150px}.title-input{min-width:90px}@media (max-width:1360px){.file-actions .lbl,.ai-toggle .lbl{display:none}.file-actions .btn,.ai-toggle{padding:0 9px}}.avatar.xs{width:24px;height:24px;font-size:10px}.count.live{background:var(--run);color:#fff}.mode-row{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.mode-row .btn{justify-content:center;padding:0 8px;font-size:12.5px}.btn.online svg{color:var(--accent-ink)}.start-overlay.mode-pick{cursor:default;grid-auto-flow:column;gap:14px}.mode-btn{border-radius:var(--r-lg);color:#fff;width:190px;font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background-color .14s, transform .16s var(--ease-out);background:#1e1b168c;border:0;justify-items:center;gap:6px;padding:18px 14px 16px;text-decoration:none;display:grid}.mode-btn:hover{background:#1e1b16b8;transform:translateY(-2px)}.mode-btn:hover .start-btn{transform:scale(1.06)}.mode-btn b{font-size:14.5px}.mode-btn small{opacity:.85;text-wrap:balance;text-align:center;font-size:12px;font-weight:500}.mode-btn .start-btn{width:58px;height:58px}.start-btn.online{background:var(--accent)}.start-btn.online svg{margin-left:0}.head-actions{flex:none;gap:8px;display:flex}.lobby-main{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:24px;display:grid}.mine-room{background:var(--accent-soft);color:var(--accent-ink);margin-bottom:16px}.mine-room a{font-weight:600}.room-card.mine{box-shadow:0 0 0 2px var(--accent), var(--shadow-1)}.room-game{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.badge.waiting{background:var(--run)}.badge.playing{background:#1e1b16c7}.card-meta .need{color:var(--run);font-weight:600}.slot-dots{gap:3px;display:inline-flex}.slot-dots i{width:9px;height:9px;box-shadow:inset 0 0 0 1.5px var(--c);border-radius:50%}.slot-dots i.on{background:var(--c)}.room-people{min-height:24px;margin:10px 0;padding:0;list-style:none;display:flex}.room-people li+li{margin-left:-6px}.room-people .avatar{box-shadow:0 0 0 2px var(--surface)}.btn.wide-sm{justify-content:center;width:100%}.online-box{border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);padding:12px 14px;position:sticky;top:76px}.online-box h2{align-items:center;gap:7px;margin:0 0 6px;font-size:13px;font-weight:600;display:flex}.online-box .hint,.play-desc .hint{margin:6px 0 0}.online-box ul,.play-desc.invite ul,.play-desc.slots ul{margin:0;padding:0;list-style:none}.online-box li,.play-desc.invite li,.play-desc.slots li{border-top:1px solid var(--line);align-items:center;gap:9px;padding:6px 0;display:flex}.online-box li:first-child,.play-desc.slots li:first-child{border-top:0}.online-box .mem-who a{color:var(--accent-ink);text-decoration:none}.online-box .mem-who a:hover{text-decoration:underline}.live-dot{background:var(--run);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #1f94542e}.room-dlg .search{max-width:none}.dlg-sub{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:16px 0 8px;font-size:12px;font-weight:600}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;max-height:260px;margin-top:10px;padding:2px;display:grid;overflow:auto}.pick-tile{border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;text-align:left;border:0;flex-direction:column;gap:5px;padding:5px;display:flex}.pick-tile:hover{box-shadow:inset 0 0 0 1px var(--line-strong)}.pick-tile.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.pick-img{aspect-ratio:4/3;color:var(--ink-3);border-radius:6px;place-items:center;display:grid;overflow:hidden}.pick-img img{object-fit:cover;width:100%;height:100%}.pick-name{text-overflow:ellipsis;white-space:nowrap;padding:0 3px 2px;font-size:12.5px;font-weight:500;overflow:hidden}.room-opts{grid-template-columns:auto 1fr;align-items:end;gap:20px;display:grid}.segmented.n3{grid-template-columns:repeat(3,44px)}.segmented button:disabled{opacity:.4;cursor:default}.check-row{cursor:pointer;align-items:flex-start;gap:9px;margin-top:10px;display:flex}.check-row input{accent-color:var(--accent);margin-top:3px}.check-row span{flex-direction:column;display:flex}.check-row b{font-weight:500}.check-row em{color:var(--ink-3);text-wrap:pretty;font-size:12px;font-style:normal}.row-actions{gap:8px;margin-top:14px;display:flex}.row-actions .btn{margin-top:0}.room-overlay{color:#fff;text-shadow:0 1px 3px #00000059;text-align:center;background:#1e1b166b;place-content:center;justify-items:center;gap:10px;font-weight:600;display:grid;position:absolute;inset:0}.room-overlay small{opacity:.85;font-weight:500}.room-overlay .slot-dots i{width:14px;height:14px;box-shadow:inset 0 0 0 2px var(--c), 0 0 0 2px #ffffffb3}.start-overlay-btn{background:var(--run);color:#fff;height:46px;font:650 15px var(--font);cursor:pointer;transition:transform .16s var(--ease-out), background-color .14s;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 22px;display:inline-flex;box-shadow:0 10px 30px -8px #00000080}.start-overlay-btn:hover:not(:disabled){background:var(--run-hover);transform:scale(1.04)}.start-overlay-btn:disabled{opacity:.6;cursor:default}.host-note{color:var(--ink-3);align-items:center;gap:6px;margin:8px 4px 0;font-size:12.5px;display:flex}.room-page .play-info .back-link{margin-bottom:0}.room-page .plays{gap:6px;display:flex}.status-pill{background:var(--surface-3);height:22px;color:var(--ink-2);border-radius:999px;align-items:center;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.status-pill.waiting{color:#1d7344;background:#e6f4ec}.status-pill.playing{background:var(--accent-soft);color:var(--accent-ink)}.play-desc.slots li.empty{color:var(--ink-3)}.slot-num{border:2px solid;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.slot-num[style*=transparent]{border-style:dashed}.play-desc .mem-who span{font-size:12px}.offline{color:var(--danger);font-style:normal}.play-desc.invite>.btn{margin:4px 0 6px}.play-desc .check-row{margin-top:12px}.invite-stack{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.invite-toast{border-radius:var(--r-lg);background:var(--surface);width:min(360px,100vw - 36px);box-shadow:var(--shadow-pop);animation:pop .18s var(--ease-out);align-items:center;gap:10px;padding:10px 10px 10px 12px;display:flex}.invite-text{flex-direction:column;flex:1;min-width:0;display:flex}.invite-text b{font-size:13px;font-weight:600}.invite-text span{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}@media (max-width:900px){.lobby-main{grid-template-columns:1fr}.online-box{position:static}.page-head{flex-wrap:wrap;align-items:flex-start}.start-overlay.mode-pick{grid-auto-flow:row;gap:8px}.mode-btn{grid-template-columns:auto 1fr;justify-items:start;column-gap:10px;width:220px;padding:10px 12px}.mode-btn .start-btn{grid-row:span 2;width:40px;height:40px}.mode-btn .start-btn svg{width:18px;height:18px}.room-opts{grid-template-columns:1fr}}
