:root{--ground: #08080c;--raised: #101018;--card: #16161f;--line: #252531;--line-strong: #363646;--violet: #7c5cff;--violet-hot: #9b84ff;--violet-wash: rgba(124, 92, 255, .13);--cyan: #22d3ee;--cyan-hot: #67e8f9;--on-cyan: #05050a;--fg1: #f2f1f8;--fg2: #d3d1e0;--fg3: #b9b6c9;--fg4: #837f94;--ok: #4ade80;--ok-bg: rgba(74, 222, 128, .13);--warn: #fbbf24;--warn-bg: rgba(251, 191, 36, .13);--danger: #ff8fa3;--danger-bg: rgba(255, 143, 163, .13);--display: "Space Grotesk", system-ui, sans-serif;--body: "Hanken Grotesk", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0}body{font-family:var(--body);background:var(--ground);color:var(--fg1)}:root{color-scheme:dark}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{background:var(--ground);color:var(--fg1);border:1px solid var(--line-strong);border-radius:8px;font-family:inherit}input::placeholder,textarea::placeholder{color:var(--fg4)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cyan)}select option{background:var(--card);color:var(--fg1)}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--cyan)}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.022em}.app{display:flex;height:100vh}.shell{display:flex;flex-direction:column;height:100vh}.shell .app{flex:1;min-height:0;height:auto}.tabs{display:flex;gap:4px;padding:8px 14px 0;background:var(--raised)}.tabs button{border:none;border-radius:8px 8px 0 0;background:var(--card);color:var(--fg3);font-size:13px;font-weight:600;padding:9px 22px;cursor:pointer}.tabs button.active{background:var(--ground);color:var(--fg1)}.studio-shell{display:flex;flex-direction:column;height:100vh}.studio-head{display:flex;align-items:center;gap:18px;padding:12px 26px;background:var(--raised);color:var(--fg1)}.studio-head h1{font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}.studio-gallery-link{color:var(--fg3);font-size:13px;text-decoration:none;border:1px solid var(--line-strong);border-radius:6px;padding:4px 12px}.studio-gallery-link:hover{color:#fff;border-color:var(--cyan)}.studio-token{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:13px}.studio-token .gamekey-label{opacity:.85}.studio-token .gamekey-unset{opacity:.5}.studio-token .mcp-add{float:none;margin-left:0}.studio-whoami{display:flex;align-items:center;gap:8px;font-size:12px;opacity:.8}.studio-whoami .signout{background:none;border:1px solid var(--line-strong);border-radius:6px;color:var(--fg3);font-size:11px;padding:3px 8px;cursor:pointer}.studio-body{display:flex}.studio-settings{margin-left:auto;background:none;border:1px solid var(--line-strong);border-radius:6px;color:var(--fg3);font-size:12px;padding:5px 12px;cursor:pointer}.studio-settings:hover{color:#fff;border-color:var(--cyan)}.studio-gallery-link+.studio-settings{margin-left:0}.studio-boot{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--fg4);font-size:14px}.setup-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;background:radial-gradient(900px 500px at 50% -10%,var(--violet-wash),transparent 70%),var(--ground);overflow-y:auto}.setup-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;background:#040408b8;overflow-y:auto}.setup-card{width:100%;max-width:620px;background:var(--card);border:1px solid var(--line-strong);border-radius:14px;padding:26px 28px;display:flex;flex-direction:column;gap:26px;box-shadow:0 18px 60px #0000008c}.setup-head{position:relative;display:flex;flex-direction:column;gap:6px}.setup-head h2{font-family:var(--display);font-size:22px;letter-spacing:-.02em}.setup-head p{font-size:13px;color:var(--fg3)}.setup-close{position:absolute;top:-4px;right:-4px;background:none;border:none;color:var(--fg4);font-size:22px;line-height:1;cursor:pointer}.setup-close:hover{color:#fff}.setup-section{display:flex;flex-direction:column;gap:18px}.setup-section h3{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-weight:700}.setup-section h3 em{color:var(--fg4);font-style:normal;letter-spacing:.06em}.setup-field{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--raised)}.setup-field-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.setup-field-label{font-size:14px;font-weight:600}.setup-field-set{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;color:var(--fg3)}.setup-field-set a{color:var(--cyan);text-decoration:none}.setup-field-set a:hover{text-decoration:underline}.link-btn{background:none;border:none;color:var(--fg4);font-size:12px;cursor:pointer;text-decoration:underline;padding:0}.link-btn:hover{color:var(--cyan)}.setup-row{display:flex;gap:8px}.setup-row input{flex:1;min-width:0;padding:9px 11px;border:1px solid var(--line-strong);border-radius:7px;background:var(--ground);color:var(--fg1);font-size:13px}.setup-row input:focus{outline:none;border-color:var(--cyan)}.setup-row button{border:none;border-radius:7px;background:var(--cyan);color:var(--on-cyan);font-size:13px;font-weight:600;padding:9px 18px;cursor:pointer}.setup-row button:disabled{opacity:.4;cursor:default}.setup-note{font-size:12px;line-height:1.6;color:var(--fg4);display:flex;flex-direction:column;gap:6px}.setup-note ol{padding-left:18px;margin:0}.setup-note code{background:var(--ground);border-radius:4px;padding:1px 5px;font-family:var(--mono);font-size:11px}.setup-note strong{color:var(--fg3)}.setup-ok{font-size:12px;color:var(--ok)}.setup-foot{display:flex}.setup-go{flex:1;border:none;border-radius:9px;background:var(--cyan);color:var(--on-cyan);font-size:14px;font-weight:600;padding:12px 20px;cursor:pointer}.setup-go:hover:not(:disabled){background:var(--cyan-hot)}.setup-go:disabled{opacity:.35;cursor:default}.studio-token{position:relative}.studio-token-pop{position:absolute;top:calc(100% + 10px);right:0;z-index:30;width:380px;background:var(--card);color:var(--fg1);border:1px solid var(--line-strong);border-radius:12px;padding:14px;box-shadow:0 8px 28px #0000008a;display:flex;flex-direction:column;gap:10px}.studio-token-pop .gamekey-form input{flex:1}.studio-token-help{font-size:12px;line-height:1.55;color:var(--fg3);display:flex;flex-direction:column;gap:6px}.studio-token-help ol{padding-left:18px;margin:0}.studio-token-help code{background:var(--raised);border-radius:4px;padding:1px 5px;font-size:11px}.games-root{flex:1;min-height:0;background:var(--ground)}.games-grid-page{flex:1;overflow-y:auto;padding:26px 34px;display:flex;flex-direction:column;gap:18px}.games-head{display:flex;align-items:center;gap:16px}.games-head h2{font-size:20px}.new-game{margin-left:auto;padding:10px 18px;border:none;border-radius:8px;background:var(--cyan);color:var(--on-cyan);font-size:14px;cursor:pointer}.new-game:hover{background:var(--cyan-hot)}.gamekeys{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:13px}.gamekeys-title{font-weight:600}.gamekeys small{opacity:.55;flex-basis:100%}.gamekey{display:flex;align-items:center;gap:8px}.gamekey .mcp-add{border-color:var(--line-strong);color:var(--fg4);float:none;margin-left:0}.gamekey-label{font-weight:600;opacity:.8}.gamekey-set{display:flex;align-items:center;gap:4px}.gamekey-set .remove{background:none;border:none;cursor:pointer;color:var(--fg4)}.gamekey-unset{opacity:.45}.gamekey-form{display:flex;gap:6px}.gamekey-form input{padding:6px 8px;border:1px solid var(--line-strong);border-radius:6px;font-size:12px;width:200px}.gamekey-form button{border:none;border-radius:6px;background:var(--cyan);color:var(--on-cyan);font-size:12px;padding:6px 12px;cursor:pointer}.gamekey-form button:disabled{opacity:.4}.arcade-stats{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.arcade-stats-head{display:flex;align-items:center;gap:12px}.arcade-stats-title{display:flex;align-items:baseline;gap:10px;font-weight:600;font-size:13px}.arcade-stats-title a{color:var(--cyan);text-decoration:none;font-weight:400;font-size:12px}.arcade-stats-title a:hover{text-decoration:underline}.arcade-range{margin-left:auto;display:flex;gap:4px}.arcade-range button{border:1px solid var(--line);border-radius:6px;background:var(--ground);color:var(--fg4);font-size:12px;padding:4px 10px;cursor:pointer}.arcade-range button:hover{border-color:var(--line-strong);color:var(--fg2)}.arcade-range button.on{border-color:var(--cyan);color:var(--cyan)}.arcade-figures{display:flex;flex-wrap:wrap;gap:26px}.arcade-figure{display:flex;flex-direction:column;gap:2px}.arcade-figure strong{font-size:22px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.arcade-figure small{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg4);cursor:help}.arcade-spark{display:flex;align-items:flex-end;gap:2px;height:54px}.arcade-spark-day{position:relative;flex:1;min-width:2px;height:100%;border-radius:2px;background:#ffffff08}.arcade-spark-day span{position:absolute;left:0;right:0;bottom:0;border-radius:2px;min-height:1px}.arcade-spark-day .views{background:var(--violet-wash)}.arcade-spark-day .plays{background:var(--cyan);opacity:.85}.arcade-spark-day:hover .plays{opacity:1}.arcade-top{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.arcade-top li{display:flex;align-items:baseline;gap:10px;font-size:13px;padding:4px 0;border-top:1px solid var(--line)}.arcade-top .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arcade-top .plays{color:var(--fg2);font-variant-numeric:tabular-nums}.arcade-top .time{color:var(--fg4);font-size:12px;min-width:64px;text-align:right}.arcade-platforms{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--fg4);cursor:help}.arcade-platforms strong{color:var(--fg2);font-variant-numeric:tabular-nums}.arcade-stats-empty{margin:0;font-size:13px;color:var(--fg4)}.arcade-stats-empty a{color:var(--cyan)}.arcade-stats-foot{color:var(--fg4);font-size:11px}.game-form{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);max-width:520px}.game-form input,.game-form select,.game-form textarea{padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;font-size:14px;font-family:inherit;resize:vertical}.game-form button{padding:11px;border:none;border-radius:8px;background:var(--cyan);color:var(--on-cyan);font-size:14px;cursor:pointer}.game-form button:disabled{opacity:.5}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.game-card{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;box-shadow:0 1px 2px #0009}.game-card:hover{border-color:var(--cyan)}.game-card.dragging{opacity:.45;border-color:var(--cyan)}.games-order-hint{display:block;margin:-6px 0 12px;font-size:12px;opacity:.55}.game-card-art{aspect-ratio:16 / 9;margin:-16px -16px 4px;border-radius:12px 12px 0 0;background:linear-gradient(160deg,var(--card),var(--line-strong));overflow:hidden;display:flex;align-items:center;justify-content:center}.game-card-art img{width:100%;height:100%;object-fit:cover}.game-card-letter{font-size:44px;font-weight:800;color:var(--fg1);opacity:.5}.game-card-top{display:flex;align-items:flex-start;gap:8px}.game-card-name{font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:-.015em;word-break:break-word;cursor:text}.game-card-name:hover{color:var(--cyan-hot)}.game-rename{cursor:text}.game-rename:hover{color:var(--cyan-hot)}.game-fork{margin-left:auto;background:none;border:none;cursor:pointer;font-size:15px;color:var(--fg4);line-height:1}.game-fork:hover{color:var(--cyan)}.game-fork+.game-star{margin-left:4px}.game-card-fork{opacity:.8}.game-star{margin-left:auto;background:none;border:none;cursor:pointer;font-size:17px;color:var(--fg4);line-height:1}.game-star:hover{color:var(--cyan)}.game-star.on{color:var(--warn)}.game-star+.remove{margin-left:4px}.game-card-top .remove{margin-left:auto;background:none;border:none;color:var(--fg4);cursor:pointer;font-size:15px}.game-card-style{font-size:12px;opacity:.6}.game-card-desc{font-size:12px;line-height:1.45;opacity:.75;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:text}.game-card-desc:hover{opacity:1}.game-card-desc.empty{opacity:.35;font-style:italic}.game-card-foot{display:flex;align-items:center;margin-top:auto}.game-card-foot small{opacity:.5}.game-card-foot .game-card-plays{margin-left:8px;opacity:.75;color:var(--cyan);cursor:help;font-variant-numeric:tabular-nums}.game-share{margin-left:auto;border:1px solid var(--line);border-radius:6px;background:var(--card);font-size:12px;padding:6px 10px;cursor:pointer}.game-share:hover{border-color:var(--cyan)}.game-share+.game-play{margin-left:6px}.game-play{margin-left:auto;border:none;border-radius:6px;background:var(--raised);color:#fff;font-size:12px;padding:6px 12px;cursor:pointer}.game-play:hover{background:var(--line-strong)}.game-status{align-self:flex-start;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--raised);color:var(--fg4)}.game-status.deployed{background:var(--ok-bg);color:var(--ok)}.game-status.building{background:var(--warn-bg);color:var(--warn)}.game-status.build-failed{background:var(--danger-bg);color:var(--danger)}.games-empty{opacity:.5;font-size:15px;padding:40px 0;grid-column:1 / -1}.games-detail{flex:1;min-height:0;display:flex;flex-direction:column}.games-detail-head{display:flex;align-items:center;gap:14px;padding:14px 22px;border-bottom:1px solid var(--line);background:var(--card)}.games-detail-head h2{font-size:17px}.games-back{border:1px solid var(--line-strong);border-radius:8px;background:var(--card);font-size:13px;padding:7px 12px;cursor:pointer}.game-model{font-size:11px;font-family:var(--mono);color:var(--fg4);background:var(--raised);border-radius:6px;padding:3px 8px}.games-detail-actions{margin-left:auto;display:flex;gap:8px}.games-detail-actions button{border:1px solid var(--line-strong);border-radius:8px;background:var(--card);font-size:13px;padding:7px 12px;cursor:pointer}.games-detail-actions button:disabled{opacity:.4;cursor:default}.pane-toggle{display:flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}.pane-toggle button{border:none;border-radius:0;background:var(--card)}.pane-toggle button.active{background:var(--raised);color:#fff}.game-files{flex:1;min-width:0;display:flex;background:var(--ground);color:var(--fg1)}.game-files-list{width:300px;min-width:220px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--card)}.game-files-head{padding:10px 14px;font-size:12px;font-weight:600;color:var(--fg4);border-bottom:1px solid var(--line)}.game-files-actions{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}.game-files-actions input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--line-strong);border-radius:6px;font-size:12px;font-family:var(--mono)}.game-files-actions button{border:1px dashed var(--line-strong);border-radius:6px;background:none;color:var(--fg4);font-size:12px;padding:6px 10px;cursor:pointer;white-space:nowrap}.game-files-actions button:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan)}.game-files-actions button:disabled{opacity:.5;cursor:default}.game-files-actions .game-build-btn{border:none;background:var(--cyan);color:var(--on-cyan);font-weight:600}.game-files-actions .game-build-btn:hover:not(:disabled){background:var(--cyan-hot);color:var(--on-cyan)}.game-files-list ul{list-style:none;padding:6px;margin:0;overflow-y:auto;flex:1}.game-files-list li{display:flex;align-items:baseline;gap:8px;padding:6px 8px;border-radius:6px;font-size:12px;font-family:var(--mono);cursor:pointer}.game-files-list li:hover{background:var(--raised)}.game-files-list li.active{background:var(--raised);color:var(--fg1)}.game-files-list li.dir{font-weight:600}.game-file-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-file-size{font-size:11px;opacity:.55;white-space:nowrap}.game-file-size.copied{opacity:1;color:var(--ok);font-weight:600}.game-files-list li.active .game-file-size.copied{color:var(--ok)}.game-files-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:12px;font-family:var(--mono)}.game-files-crumbs button{border:none;background:none;padding:2px 5px;border-radius:5px;font:inherit;color:var(--fg4);cursor:pointer}.game-files-crumbs button:hover{background:var(--raised);color:var(--fg1)}.game-files-crumbs button.current{color:var(--fg1);font-weight:700}.game-files-crumbs .sep{opacity:.35}.game-file-viewer{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.game-file-viewer-head{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-family:var(--mono);font-weight:600;border-bottom:1px solid var(--line);background:var(--card)}.game-file-viewer-path{flex:1;min-width:0;word-break:break-all}.game-file-btn{border:1px solid var(--line-strong);border-radius:6px;background:var(--card);font-size:12px;font-family:var(--body);padding:5px 12px;cursor:pointer;white-space:nowrap}.game-file-btn:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan)}.game-file-btn:disabled{opacity:.5;cursor:default}.game-file-btn.save{background:var(--cyan);border-color:var(--cyan);color:#fff}.game-file-btn.save:hover:not(:disabled){background:var(--cyan-hot);color:var(--on-cyan)}.game-file-code{flex:1;min-height:0;overflow:hidden;font-size:12px}.game-file-code>div{height:100%}.game-file-code .cm-editor{height:100%;background:var(--card)}.game-file-code .cm-scroller{font-family:var(--mono);line-height:1.6}.game-file-code .cm-gutters{background:var(--card);border-right:1px solid var(--line)}.game-file-viewer pre{flex:1;margin:0;padding:16px;overflow:auto;font-family:var(--mono);font-size:12px;line-height:1.6;white-space:pre;background:var(--card)}.game-file-image{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;background:repeating-conic-gradient(var(--raised) 0% 25%,var(--ground) 0% 50%) 0 0 / 24px 24px;overflow:auto}.game-file-image img{max-width:100%;max-height:100%;image-rendering:pixelated}.game-file-viewer model-viewer{flex:1;width:100%;height:100%;min-height:0;align-self:stretch;background:repeating-conic-gradient(var(--raised) 0% 25%,var(--ground) 0% 50%) 0 0 / 24px 24px}.game-file-audio{margin:auto;display:flex;flex-direction:column;align-items:center;gap:18px;padding:24px;width:100%}.game-file-audio-icon{font-size:40px;opacity:.5}.game-file-audio audio{width:min(420px,90%)}.game-files-empty{margin:auto;padding:24px;font-size:13px;opacity:.6;text-align:center}.game-files-list .game-files-empty{margin:0}.game-files-empty a{color:var(--cyan)}.games-detail-body{flex:1;min-height:0;display:flex}.game-chat{width:44%;min-width:380px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.game-refs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 28px 0;background:var(--card);border-top:1px solid var(--line)}.game-refs .game-attach{border:1px dashed var(--line-strong);border-radius:14px;background:none;color:var(--fg4);font-size:12px;padding:4px 10px;cursor:pointer}.game-refs .game-attach:hover{border-color:var(--cyan);color:var(--cyan)}.game-refs .game-attach:disabled{opacity:.5;cursor:default}.game-ref-chip{display:inline-flex;align-items:center;gap:4px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:12px;padding:4px 8px}.game-ref-chip .remove{border:none;background:none;color:var(--fg4);cursor:pointer;font-size:13px}.game-refs+.composer{border-top:none}.game-refs.form{padding:0;border-top:none;background:none}.game-preview{flex:1;display:flex;background:var(--ground)}.game-preview iframe{flex:1;border:none}.game-publish{flex:1;min-width:0;overflow-y:auto;padding:18px 22px 28px;background:var(--ground);color:var(--fg1);font-size:13px}.game-publish h3{margin:0 0 6px;font-family:var(--display);font-size:15px}.game-publish .hint{color:var(--fg4);margin:0 0 12px;line-height:1.45}.game-publish .hint code{font-family:var(--mono);font-size:12px}.publish-form{display:grid;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--card);margin-bottom:18px}.publish-platforms{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.publish-platforms label{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.publish-platforms label.on{border-color:var(--cyan);background:#22d3ee12}.publish-platforms label input{margin-top:3px}.publish-platforms label span{display:block}.publish-platforms label small{display:block;color:var(--fg4);font-size:11px;margin-top:2px}.publish-itch{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.publish-itch input[type=text]{flex:1;min-width:200px;padding:7px 9px;border:1px solid var(--line-strong);border-radius:6px;font-family:var(--mono);font-size:12px}.publish-itch input[type=text]:disabled{opacity:.5}.publish-itch .publish-team{flex:0 0 140px;min-width:0}.publish-actions{display:flex;align-items:center;gap:10px}.publish-go{border:none;border-radius:8px;background:var(--cyan);color:var(--on-cyan);font-weight:700;font-size:13px;padding:9px 16px;cursor:pointer}.publish-go:hover:not(:disabled){background:var(--cyan-hot)}.publish-go:disabled{opacity:.45;cursor:default}.publish-actions .warn{color:var(--warn)}.publish-jobs{display:grid;gap:10px}.publish-job{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:12px 14px}.publish-job.live{border-color:var(--cyan)}.publish-job-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.publish-job-head .when{color:var(--fg4);font-size:12px}.publish-job-head .spacer{flex:1}.publish-job-head button{border:1px dashed var(--line-strong);border-radius:6px;background:none;color:var(--fg4);font-size:12px;padding:4px 9px;cursor:pointer}.publish-job-head button:hover{border-color:var(--danger);color:var(--danger)}.publish-badge{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--raised);color:var(--fg3)}.publish-badge.running,.publish-badge.queued,.publish-badge.exporting,.publish-badge.packaging,.publish-badge.pushing{background:var(--violet-wash);color:var(--violet-hot)}.publish-badge.succeeded,.publish-badge.done{background:var(--ok-bg);color:var(--ok)}.publish-badge.partial{background:var(--warn-bg);color:var(--warn)}.publish-badge.failed,.publish-badge.cancelled{background:var(--danger-bg);color:var(--danger)}.publish-rows{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:4px}.publish-rows li{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;background:var(--raised)}.publish-rows .name{flex:0 0 120px;font-weight:600}.publish-rows .size{color:var(--fg4);font-size:12px}.publish-rows .err{color:var(--danger);font-size:12px;font-family:var(--mono);white-space:pre-wrap;flex:1;min-width:0}.publish-rows a{color:var(--cyan);font-weight:600;text-decoration:none;margin-left:auto}.publish-rows a:hover{text-decoration:underline}.publish-job .job-error{margin-top:8px;color:var(--danger);font-family:var(--mono);font-size:12px;white-space:pre-wrap}.publish-log{margin:10px 0 0;padding:8px 10px;max-height:240px;overflow:auto;border-radius:6px;background:var(--ground);color:var(--fg3);font-family:var(--mono);font-size:11px;line-height:1.4;white-space:pre-wrap}.publish-job details summary{cursor:pointer;color:var(--fg4);font-size:12px;margin-top:8px}.game-preview-empty{margin:auto;color:var(--fg3);font-size:15px;max-width:80%;text-align:center;display:flex;flex-direction:column;gap:12px}.game-build-error{text-align:left;font-size:11px;background:var(--raised);color:var(--cyan);border-radius:8px;padding:12px;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word}.sidebar{width:280px;padding:20px;background:var(--raised);color:var(--fg1);display:flex;flex-direction:column;gap:18px}.sidebar h1{font-size:18px;letter-spacing:.02em}.field{display:flex;flex-direction:column;gap:6px;font-size:13px}.field span{font-weight:600;opacity:.85}.field small{opacity:.6}.custom-model{padding:8px;border-radius:6px;border:1px solid var(--line-strong);background:var(--card);color:inherit;font-size:12px;font-family:var(--mono)}.field select,.field input[type=file]{padding:8px;border-radius:6px;border:1px solid var(--line-strong);background:var(--card);color:inherit;font-size:13px}.file-list{list-style:none;padding:0;font-size:12px}.file-list li{display:flex;align-items:center;gap:6px;padding:4px 0;word-break:break-all}.file-list .remove{margin-left:auto;background:none;border:none;color:var(--fg3);cursor:pointer;font-size:14px}.mcp-add{float:right;background:none;border:1px solid var(--line-strong);border-radius:6px;color:var(--fg3);font-size:11px;padding:2px 8px;cursor:pointer;margin-left:8px}.mcp-form{display:flex;flex-direction:column;gap:6px}.mcp-form input{padding:7px 8px;border-radius:6px;border:1px solid var(--line-strong);background:var(--card);color:inherit;font-size:12px}.mcp-header-row{display:flex;gap:6px}.mcp-header-row input{flex:1;min-width:0}.mcp-form button{padding:8px;border:none;border-radius:6px;background:var(--cyan);color:var(--on-cyan);font-size:12px;cursor:pointer}.mcp-form button:disabled{opacity:.4}.mcp-connect{margin-left:auto;background:none;border:1px solid var(--cyan);border-radius:6px;color:var(--cyan);font-size:10px;padding:2px 7px;cursor:pointer}.mcp-connected{margin-left:auto;color:var(--ok);font-size:12px}.mcp-connected+.remove,.mcp-connect+.remove{margin-left:6px}.sessions{flex:1;min-height:0;overflow:hidden;display:flex}.session-list{list-style:none;padding:0;overflow-y:auto;font-size:12px;flex:1}.session-list li{padding:7px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.session-list li:hover{background:var(--card);opacity:1}.session-list li.active{background:var(--line-strong);opacity:1}.session-list li.none{cursor:default;opacity:.4}.artifact-preview{display:block;max-width:100%;max-height:420px;margin-top:10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--card)}.artifact-preview.pdf{width:100%;height:420px}.artifacts{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.artifact{border:1px solid var(--line-strong);background:var(--card);color:var(--fg1);border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer}.artifact:hover{background:var(--raised)}.msg.user .artifact{background:#ffffff26;color:#fff;border-color:#ffffff4d}.new-chat{margin-top:auto;padding:10px;border:none;border-radius:8px;background:var(--cyan);color:var(--on-cyan);font-size:14px;cursor:pointer}.new-chat:hover{background:var(--cyan-hot)}.session{opacity:.45;font-size:11px}.chat{flex:1;display:flex;flex-direction:column}.messages{flex:1;overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:14px}.empty{margin:auto;opacity:.5;font-size:15px}.msg{display:flex}.msg.user{justify-content:flex-end}.bubble{max-width:72%;padding:12px 16px;border-radius:14px;background:var(--card);box-shadow:0 1px 2px #0009}.msg.user .bubble{background:var(--cyan);color:var(--on-cyan)}.msg.error .bubble{background:var(--danger-bg);color:var(--danger)}.bubble pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:14px;line-height:1.5}.bubble .meta{display:block;margin-top:8px;font-size:11px;opacity:.55}.bubble .md{font-size:14px;line-height:1.55;word-break:break-word}.bubble .md>:first-child{margin-top:0}.bubble .md>:last-child{margin-bottom:0}.bubble .md p,.bubble .md ul,.bubble .md ol,.bubble .md blockquote{margin:8px 0}.bubble .md h1,.bubble .md h2,.bubble .md h3,.bubble .md h4{margin:14px 0 6px;font-size:15px;font-weight:700}.bubble .md h1{font-size:17px}.bubble .md h2{font-size:16px}.bubble .md ul,.bubble .md ol{padding-left:22px}.bubble .md li{margin:3px 0}.bubble .md a{color:var(--cyan)}.bubble .md code{font-family:var(--mono);font-size:12.5px;background:var(--raised);border-radius:4px;padding:1px 5px}.bubble .md pre{margin:8px 0;padding:10px 12px;background:var(--raised);border:1px solid var(--line);border-radius:8px;overflow-x:auto;white-space:pre;font-family:var(--mono);font-size:12.5px;line-height:1.5}.bubble .md pre code{background:none;padding:0}.bubble .md blockquote{border-left:3px solid var(--line-strong);padding-left:12px;color:var(--fg3)}.bubble .md hr{border:none;border-top:1px solid var(--line);margin:12px 0}.bubble .md table{border-collapse:collapse;margin:8px 0;display:block;overflow-x:auto;font-size:13px}.bubble .md th,.bubble .md td{border:1px solid var(--line-strong);padding:5px 10px;text-align:left}.bubble .md th{background:var(--raised)}.thinking{font-style:italic;opacity:.6}.task-activity{display:block;margin-top:6px;font-style:normal;font-family:var(--mono);font-size:11px;opacity:.8}.bubble.activity{min-width:300px}.activity-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.activity-spinner{width:12px;height:12px;border:2px solid var(--line-strong);border-top-color:var(--cyan);border-radius:50%;animation:activity-spin .9s linear infinite}@keyframes activity-spin{to{transform:rotate(360deg)}}.activity-hint{display:block;margin-top:8px;font-size:12px;opacity:.55}.activity-queued{margin-left:auto;font-size:11px;font-weight:600;color:var(--warn);background:var(--warn-bg);border-radius:20px;padding:2px 9px}.activity-stop{margin-left:auto;border:1px solid var(--danger);border-radius:6px;background:var(--card);color:var(--danger);font-size:11px;font-weight:600;padding:3px 10px;cursor:pointer}.activity-stop:hover{background:var(--danger-bg)}.activity-stop:disabled{opacity:.5;cursor:default}.activity-queued+.activity-stop{margin-left:8px}.queued-list{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px}.queued-item{display:flex;align-items:center;gap:6px;font-size:12px}.queued-pos{opacity:.45}.queued-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.queued-item button{border:none;background:none;cursor:pointer;color:var(--fg4);font-size:13px;padding:0 2px}.queued-item .queued-edit:hover{color:var(--cyan)}.queued-item .remove:hover{color:var(--danger)}.activity-chat{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:9px 12px;background:var(--violet-wash);border-left:3px solid var(--violet);border-radius:0 10px 10px 0;font-size:13px;line-height:1.5;color:var(--fg1);max-width:460px}.activity-chat-icon{flex:none}.activity-feed{list-style:none;padding:0;margin-top:8px;font-family:var(--mono);font-size:11px;line-height:1.7}.activity-feed li{opacity:.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:460px}.activity-feed li.current{opacity:1;color:var(--cyan)}.asset-grid-wrap{margin-top:10px;max-width:460px}.asset-grid-title{display:block;margin-bottom:6px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg4)}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.asset-tile{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--raised);color:var(--fg2);overflow:hidden;cursor:pointer}.asset-tile:hover{border-color:var(--cyan)}.asset-tile img{display:block;width:100%;height:100%;object-fit:contain}.asset-tile model-viewer{width:100%;height:100%;--poster-color: transparent}.asset-tile-icon{font-size:28px;opacity:.7}.asset-tile-icon.dim{opacity:.35}.asset-tile-name{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;font-family:var(--mono);font-size:10px;line-height:1.3;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#08080cb8;color:var(--fg2)}.composer{display:flex;gap:10px;padding:16px 28px 22px;border-top:1px solid var(--line);background:var(--card);align-items:flex-end}.bg-toggle{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--fg4);padding-bottom:14px;white-space:nowrap;cursor:pointer}.whoami{display:flex;align-items:center;gap:8px;font-size:12px;opacity:.75;word-break:break-all}.whoami .signout{margin-left:auto;background:none;border:1px solid var(--line-strong);border-radius:6px;color:var(--fg3);font-size:11px;padding:3px 8px;cursor:pointer}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--ground);background-image:radial-gradient(1100px 520px at 50% -8%,rgba(124,92,255,.2),transparent 70%),radial-gradient(rgba(124,92,255,.13) 1px,transparent 1px);background-size:auto,22px 22px}.auth-card{width:340px;background:#16161fdb;border:1px solid var(--line-strong);border-radius:18px;padding:32px;box-shadow:0 4px 24px #0009;display:flex;flex-direction:column;gap:12px}.auth-card h1{font-size:20px;font-family:var(--display);font-weight:700;letter-spacing:-.022em;display:flex;align-items:center;gap:9px}.auth-sub{font-size:13px;opacity:.65}.auth-card input{padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;font-size:14px}.auth-card button{padding:11px;border:none;border-radius:8px;background:var(--cyan);color:var(--on-cyan);font-size:14px;cursor:pointer}.auth-card button:disabled{opacity:.5}.auth-error{color:var(--danger);font-size:12px}.auth-switch{font-size:12px}.auth-switch a{color:var(--cyan);cursor:pointer;text-decoration:underline}.model-pick{display:flex;flex-direction:column;gap:6px;padding-bottom:10px;max-width:200px}.model-pick select{padding:6px 8px;border-radius:8px;border:1px solid var(--line-strong);background:var(--raised);color:inherit;font-size:12px;max-width:200px;cursor:pointer}.model-pick select:disabled{opacity:.5;cursor:default}.model-pick .custom-model{width:200px;font-size:11px;padding:6px 8px}.model-pick.inline{padding-bottom:0}.model-pick.inline select{padding:5px 8px;border-radius:999px}.msg.user .meta{opacity:.55}.composer textarea{flex:1;min-width:0;resize:none;padding:12px;border-radius:10px;border:1px solid var(--line-strong);font-family:inherit;font-size:14px}.composer button{align-self:flex-end;padding:12px 22px;border:none;border-radius:10px;background:var(--raised);color:#fff;font-size:14px;cursor:pointer}.composer button:disabled{opacity:.4;cursor:default}.wait-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:#08080c;background-image:radial-gradient(1100px 520px at 50% -8%,rgba(124,92,255,.2),transparent 70%),radial-gradient(rgba(124,92,255,.13) 1px,transparent 1px);background-size:auto,22px 22px}.wait-card{width:100%;max-width:460px;background:#16161fdb;border:1px solid #363646;border-radius:18px;padding:34px 32px;color:#f2f1f8;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 60px #00000073}.wait-mark{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#22d3ee}.wait-card h1{font-size:25px;line-height:1.15;letter-spacing:-.02em}.wait-sub{font-size:14px;line-height:1.55;color:#b9b6c9}.wait-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:#837f94}.wait-card .lbl{display:flex;align-items:baseline;gap:7px}.wait-card .opt{text-transform:none;letter-spacing:0;opacity:.6}.wait-card input,.wait-card textarea{width:100%;padding:11px 12px;border:1px solid #363646;border-radius:9px;background:#05050abf;color:#f2f1f8;font-family:inherit;font-size:14.5px;text-transform:none;letter-spacing:0;resize:vertical}.wait-card input:focus,.wait-card textarea:focus{outline:none;border-color:#22d3ee}.wait-handle{display:flex;align-items:center;gap:8px}.wait-handle .suffix{font-size:14px;color:#837f94;white-space:nowrap;text-transform:none;letter-spacing:0}.wait-card>button{margin-top:4px;padding:12px;border:none;border-radius:9px;background:#7c5cff;color:#fff;font-size:15px;font-weight:600;cursor:pointer}.wait-card>button:hover{background:#9b84ff}.wait-card>button:disabled{opacity:.5;cursor:default}.wait-error{color:#ff8fb0;font-size:12.5px}.wait-fine{font-size:12px;color:#837f94}.wait-done{display:flex;flex-direction:column;gap:10px}.wait-done strong{font-size:17px;color:#22d3ee}.wait-done p{font-size:14px;line-height:1.55;color:#b9b6c9}.wait-alt{color:#22d3ee;font-size:13.5px;text-decoration:none}.wait-alt:hover{text-decoration:underline}
