@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101318;--panel:#171b22;--line:#2b3039;--muted:#959ba7;--ink:#f3f1e9;--accent:#bc8cff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',system-ui}button,input,textarea{font:inherit}button,.button{border:1px solid var(--line);background:#222731;color:var(--ink);border-radius:9px;padding:10px 14px;cursor:pointer;text-decoration:none;transition:.15s}button:hover,.button:hover{filter:brightness(1.15)}button:disabled{opacity:.4;cursor:default}.primary{background:var(--accent);color:#210c39;border-color:var(--accent);font-weight:700}small,.eyebrow,.label{color:var(--muted)}.eyebrow,.label{font-size:10px;letter-spacing:2px;font-weight:600}h1,h2,.brand{font-family:'Space Grotesk',system-ui}h2{font-size:22px;margin:8px 0}#login{min-height:100vh;text-align:center;padding:15vh 20px;background:radial-gradient(ellipse at 50% 5%,#35402a55,transparent 60%)}#login h1{font-size:72px;letter-spacing:-4px;margin:16px}#login p{font-size:18px;line-height:1.7;color:var(--muted);margin-bottom:36px}#login small{display:block;margin:30px}.orb{color:var(--accent);font-size:70px;margin-bottom:25px}#studio{height:100vh;display:flex}#studio[hidden],section[hidden],div[hidden],iframe[hidden],button[hidden]{display:none}aside{width:230px;border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;flex-shrink:0}.brand{font-size:25px;color:var(--ink);text-decoration:none;letter-spacing:-1px;margin-bottom:55px}.brand:first-letter{color:var(--accent)}aside .label{margin-bottom:16px}nav{margin-top:18px;overflow:auto}nav button{width:100%;text-align:left;margin-bottom:6px;background:transparent;border-color:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}nav button.selected{background:#2c1c40;color:var(--accent)}.aside-bottom{margin-top:auto;line-height:1.9;font-size:12px}.aside-bottom .row{margin-top:12px}main{flex:1;min-width:0;display:flex;flex-direction:column}header{padding:25px 30px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.workspace{display:flex;flex:1;min-height:0}.conversation{width:43%;min-width:320px;display:flex;flex-direction:column;border-right:1px solid var(--line)}#messages{flex:1;overflow:auto;padding:24px}.empty{padding-top:16vh;text-align:center;color:var(--muted);line-height:1.7}.empty span{color:var(--accent);font-size:44px}.empty h2{color:var(--ink)}.message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;margin-bottom:22px}.message::before{content:attr(data-role);display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.message.user{background:#242b23;border-radius:12px;padding:14px}.message.tool{font:11px monospace;color:#929cab;border-left:2px solid #67408c;padding-left:12px;max-height:130px;overflow:auto}.message.system{color:#e5bb8a}#composer{margin:16px;border:1px solid #3e4736;border-radius:13px;background:#1d231d}textarea{resize:vertical;min-height:80px;max-height:220px;width:100%;background:transparent;border:0;padding:16px;color:var(--ink);outline:0}footer{display:flex;align-items:center;gap:8px;padding:10px}footer small{margin-right:auto;font-size:10px}.preview{flex:1;background:#0c1016;display:flex;flex-direction:column;min-width:0}.previewbar{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:1.4px}.previewbar button{font-size:12px;padding:8px 10px}iframe{border:0;width:100%;flex:1;background:#101522}#previewempty{margin:auto;text-align:center;color:#7b8494}.planet{width:140px;height:140px;border:1px solid #586445;border-radius:50%;margin:0 auto 30px;background:radial-gradient(circle at 30% 25%,#48563888,#141c1a 70%);box-shadow:0 0 100px #7c965214}.row{display:flex;gap:8px}#notice:empty{display:none}#notice{background:#422e1e;color:#f0d5ad;padding:12px 30px}#connection{padding:16px 30px;background:#2b1b3d;line-height:1.7}#connection a{color:var(--accent)}#connection code{font-size:22px;letter-spacing:3px;margin:0 16px}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:30px;width:400px}dialog::backdrop{background:#0009;backdrop-filter:blur(6px)}input{width:100%;padding:14px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;margin:20px 0}dialog .row{justify-content:flex-end}@media(max-width:950px){aside{width:180px;padding:24px 12px}.workspace{flex-direction:column;overflow:auto}.conversation{width:100%;min-height:450px;border-right:0}.preview{min-height:440px}#messages{max-height:400px}.empty{padding:20px}header{padding:20px}.brand{font-size:21px}}@media(max-width:600px){aside{width:130px}.brand{font-size:17px}header h2{font-size:17px}header{gap:10px}.previewbar{padding:10px}#profile{overflow-wrap:anywhere}}

/* Canvas-first studio */
:root{--bg:#100d17;--panel:#1c1628;--line:#ffffff0c;--muted:#848991;--ink:#e7e9e4;--accent:#bc8cff}
body{font-size:12px}button,.button{padding:7px 10px;border-radius:6px;background:transparent;border-color:transparent;font-size:12px}button:hover{background:#ffffff08;filter:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.primary{background:var(--accent);color:#210c39}.primary:hover{background:#d2afff}.icon{width:28px;height:28px;padding:0;display:inline-grid;place-items:center;font-size:17px;color:var(--muted);flex-shrink:0}#studio{height:100dvh;overflow:hidden}#library-panel{width:184px;padding:12px 10px;background:#15111e;border-right:1px solid var(--line);gap:0}.brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.brand{font-size:18px;letter-spacing:-.8px;margin:0}.brand-row .icon{font-size:21px}aside .label{font-size:9px;letter-spacing:1.4px;margin:0 8px 12px}#new{text-align:left;background:#ffffff05;border:1px solid #ffffff0b;color:#d4c3e8;font-weight:500;padding:9px 10px}nav{margin-top:10px}nav button{padding:9px 10px;font-size:12px;margin-bottom:2px;border-radius:5px;color:#8f959a}nav button.selected{background:#bc8cff0a;color:var(--accent)}.aside-bottom{padding:10px 6px 0;font-size:11px;line-height:1.7}.aside-bottom small{font-size:10px}.aside-bottom .row{gap:2px;margin-top:6px}.aside-bottom button{padding:6px;color:var(--muted);font-size:11px}main{min-height:0}header{height:44px;min-height:44px;padding:0 12px;gap:16px;background:#100d17;border-bottom:1px solid var(--line)}.header-title,.header-actions{display:flex;align-items:center;gap:6px;min-width:0}.header-title{flex:1}.header-title h2{margin:0;font-size:12px;font-weight:500;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{flex-shrink:0}.header-actions button{font-size:11px;color:#a4aaa6}.header-actions .icon{font-size:17px}.divider{width:1px;height:14px;background:#ffffff12;margin:0 5px}.workspace{position:relative;flex-direction:row;overflow:hidden;min-height:0}.preview{order:0;min-height:0;background:#0c0911;position:relative;overflow:hidden}.conversation{order:1;width:320px;min-width:320px;background:#15111e;border-right:0;border-left:1px solid var(--line);min-height:0;z-index:2}.chat-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 5px;font-size:12px;color:#bfc4bf}.chat-heading .icon{font-size:21px}#connect{align-self:flex-start;margin:0 14px 8px;color:#b6a0d1;font-size:10px;padding:5px 0}#messages{padding:18px 16px;max-height:none;min-height:0;scrollbar-width:thin;scrollbar-color:#ffffff15 transparent}.empty{padding:30px 10px;text-align:left;font-size:12px;line-height:1.8;color:#92889e}.empty h2{font-size:15px;font-weight:500}.empty span{font-size:24px}.message{font-size:12px;margin-bottom:22px;line-height:1.75}.message::before{font-size:9px;letter-spacing:1px}.message.user{background:#ffffff04;padding:12px;border:1px solid #ffffff05;border-radius:8px}.message.tool{font-size:10px;color:#747e84}#composer{margin:10px;border:1px solid #ffffff13;border-radius:9px;background:#21192f}textarea{padding:12px;min-height:64px;max-height:180px;font-size:12px;line-height:1.6}textarea::placeholder{color:#6f767b}footer{padding:8px;gap:5px}footer small{font-size:8px;color:#777f83}footer button{font-size:11px;padding:6px 10px}iframe{height:100%;min-height:0;flex:1;display:block}#previewempty{padding:28px;user-select:none}#previewempty h2{font-size:20px;font-weight:400;letter-spacing:-.6px;color:#b4a4c6;margin:20px 0 8px}#previewempty p{font-size:12px;color:#82758e}.canvas-mark{font-size:42px;color:#414b40;font-weight:300}#connection{position:absolute;z-index:5;top:52px;right:12px;max-width:min(480px,calc(100vw - 24px));border:1px solid #67408c;border-radius:9px;box-shadow:0 12px 40px #0006;padding:16px;font-size:12px}#connection code{font-size:18px}#notice{font-size:11px;padding:8px 16px}#studio.library-hidden #library-panel{display:none}#studio.chat-hidden .conversation{display:none}#studio.focus-mode #library-panel,#studio.focus-mode .conversation,#studio.focus-mode header{display:none}#exit-focus{position:fixed;z-index:10;top:10px;right:10px;display:flex;align-items:center;gap:8px;padding:7px 10px;background:#171b1bd9;border:1px solid #ffffff18;backdrop-filter:blur(16px);color:#cbd0c8;font-size:13px;box-shadow:0 3px 18px #0003}#exit-focus span{font-size:10px}#exit-focus[hidden]{display:none}#studio.focus-mode #notice:not(:empty){position:absolute;bottom:10px;left:10px;z-index:5;max-width:70%;border-radius:6px}dialog{border-radius:12px;padding:24px}dialog h2{font-size:20px}dialog input{font-size:13px}#login .button{background:var(--accent);padding:12px 18px}
@media(max-width:1100px){#library-panel{width:164px}.conversation{width:290px;min-width:290px}}
@media(max-width:800px){#library-panel{position:absolute;left:0;top:44px;bottom:0;width:190px;z-index:4;box-shadow:16px 0 50px #0005}.conversation{position:absolute;right:0;top:0;bottom:0;width:300px;min-width:0;max-width:90%;box-shadow:-16px 0 50px #0005}.workspace{flex-direction:row}.preview{min-height:0}.brand-row{margin-bottom:24px}.empty{padding:20px 5px}header{padding:0 8px;gap:5px}.header-actions{gap:2px}.header-actions button{padding:6px}.divider{margin:0 2px}#previewempty h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
details.message.tool{max-height:none;border-left:0;padding:0;white-space:normal;margin-bottom:12px}details.message.tool::before{display:none}details.message.tool summary{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:10px 'DM Sans',system-ui;color:#768078;padding:6px 0}details.message.tool pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;background:#ffffff03;border-radius:6px;padding:10px;line-height:1.6}
.connection-row{display:flex;align-items:center;gap:6px;margin:0 14px 10px;flex-wrap:wrap}.connection-row #connect{margin:0;padding:4px 0}.connection-row select{font:10px 'DM Sans',system-ui;color:#baa8d0;background:#21192f;border:1px solid #ffffff0b;border-radius:5px;padding:5px;max-width:170px}.connection-row select:disabled{opacity:.5}.connection-row option{background:#21192f;color:#ded1ec}
a[hidden]{display:none}.subtle{font-size:10px;color:var(--muted);text-decoration:none;padding:8px;display:block}#import-game{text-align:left;margin:3px 0 0}.game-group>.worktree-tab{padding:7px 10px 7px 27px;font-size:11px;color:#758078}.game-group>.worktree-tab.active{color:var(--accent);background:#bc8cff07;border-left:1px solid #a855f7;border-radius:0}.game-group>.add-worktree{font-size:10px;color:#525f54}.header-actions a{font-size:11px;color:#a4aaa6}#history{width:510px;max-height:80dvh}#git-status,.muted{color:var(--muted);font-size:12px}.dialog-heading{display:flex;align-items:center;justify-content:space-between}#checkpoint-name{margin:0;min-width:0;padding:10px}.git-actions{margin:14px 0}.commit{display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:13px 0}.commit>div{min-width:0}.commit strong{font-size:12px;font-weight:500;display:block;overflow-wrap:anywhere}.commit small{display:block;font-size:10px;margin-top:6px}.commit button{font-size:10px;flex-shrink:0}

#sharing{max-width:480px}#sharing p,#sharing small{color:#929dab;line-height:1.6}#share-url{width:100%;margin-bottom:14px}#sharing small{display:block;margin-top:14px}

.preview{position:relative}#live-tools{position:absolute;z-index:3;top:12px;left:12px;display:flex;align-items:center;gap:12px;background:#181121e8;border:1px solid #ffffff12;border-radius:9px;padding:6px 10px;color:#c6b5dc;font-size:11px}#live-tools[hidden]{display:none}#give-control{font:11px system-ui;border:0;background:#2b1e3d;color:#e3d7f1;border-radius:5px;padding:5px}

.usage-row{display:flex;flex-wrap:wrap;gap:8px 14px;padding:8px 18px;color:#a79ab8;font-size:10px;border-bottom:1px solid #ffffff08}#credit-balance{display:block;color:#c5a4f2;margin:7px 0}#billing-dialog{width:680px;max-width:90vw}#spend-users{max-height:45vh;overflow:auto}.spend-user{display:flex;flex-direction:column;gap:5px;border-bottom:1px solid #ffffff0b;padding:14px 0}.spend-user strong{font-size:13px}.spend-user small,#billing-dialog>small{color:#a79ab8}#grant-form{margin:20px 0}#grant-user{max-width:260px}#grant-amount{width:110px}

#grant-form{display:block;padding:0;border:0;min-height:0}#grant-form .row{align-items:center;justify-content:flex-start}#grant-user{height:42px;flex:1;min-width:0;background:#100d17;color:#dfe5db;border:1px solid #ffffff18;border-radius:8px;padding:0 10px}#grant-form button{height:42px}#grant-amount{height:42px}

#message-queue{padding:8px 14px;border-top:1px solid #ffffff12;max-height:150px;overflow:auto;font-size:11px;color:#c4b4d8}#message-queue>div{display:flex;gap:8px;align-items:center;padding:5px 0}#message-queue span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#message-queue button{padding:3px 7px}

/* Original Gamestorm identity: dark canvas, violet accents, lightning emblem. */
.brand{display:flex;align-items:center;gap:7px;letter-spacing:-.3px;font-size:11px;font-weight:700;white-space:nowrap}.brand img{width:27px;height:27px}.brand b,.wordmark b,#login h1 span{color:#a855f7}.brand-row{gap:2px}.brand-row .icon{width:18px}.orb img{width:100px;height:100px}.empty-logo{width:30px;height:30px}.canvas-mark{width:72px;height:72px;opacity:.65}#login{background:linear-gradient(#0c0716b8,#100d17ef),url('/brand/background.jpg') center/cover;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}#login[hidden]{display:none}#login h1{font-size:clamp(42px,7vw,72px);letter-spacing:-3px}#login .orb{margin-bottom:24px}#login small{font-size:11px}.primary{background:#9333ea;color:#fff;border-color:#9333ea}.primary:hover{background:#a855f7}#login .button{background:#9333ea}#buy-credits{color:#c59aed;padding-left:0}#purchase-dialog{width:420px;max-width:92vw}#purchase-form{padding:0;border:0}#purchase-form label{font-size:11px;color:var(--muted)}#purchase-amount{margin:8px 0 0}#checkout-button{width:100%;padding:12px}.credit-packs{display:flex;gap:10px;margin:24px 0}.credit-packs button{flex:1;border:1px solid #a855f73b;padding:14px;font-size:18px}.credit-packs button.selected{background:#9333ea26;border-color:#a855f7}#purchase-mode{font-size:11px;color:#deb980}#purchase-error{color:#f1adbd;font-size:12px}#purchase-history{font-size:11px;color:var(--muted);max-height:160px;overflow:auto}#purchase-history>div{padding:10px 0;border-top:1px solid var(--line)}
