:root{--bg: #08090a;--bg-elevated: #0d0e10;--surface: #121315;--surface-2: #18191c;--surface-3: #202126;--border: #1d1e22;--border-strong: #2b2d33;--text: #f3f4f6;--text-muted: #9b9da5;--text-faint: #686a72;--accent: #4d8dff;--accent-strong: #6aa0ff;--accent-soft: rgba(77, 141, 255, .12);--accent-ring: rgba(77, 141, 255, .45);--primary: #fafafa;--primary-hover: #ffffff;--primary-ink: #0a0a0a;--danger: #f0616d;--danger-soft: rgba(240, 97, 109, .1);--ok: #4cc46a;--ok-soft: rgba(76, 196, 106, .1);--warn: #e0a93b;--warn-soft: rgba(224, 169, 59, .1);--font-sans: "Geist", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: var(--font-sans);--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs: 11px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 21px;--fs-2xl: 28px;--fs-3xl: 42px;--lh-tight: 1.1;--lh-base: 1.55;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--r-sm: 4px;--r-md: 6px;--r-lg: 9px;--r-xl: 12px;--r-pill: 999px;--bw: 1px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .55);--shadow-glow: 0 0 0 1px var(--accent-ring), 0 8px 30px rgba(77, 141, 255, .12);--ease: cubic-bezier(.4, 0, .2, 1);--t-fast: .12s;--t-med: .2s;--header-h: 56px;color-scheme:dark;font-family:var(--font-sans)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--bg);background-image:radial-gradient(900px 480px at 50% -240px,rgba(77,141,255,.07),transparent 70%);background-repeat:no-repeat;background-attachment:fixed;color:var(--text);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.022em;color:var(--text)}a{color:var(--text);text-decoration:none;transition:color var(--t-fast) var(--ease)}a:hover{color:var(--text-muted)}p{margin:0}:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--accent-soft)}.btn,button{font:inherit;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:var(--bw) solid var(--border-strong);background:var(--surface-2);color:var(--text);padding:7px 13px;border-radius:var(--r-md);white-space:nowrap;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}button:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong)}button:active:not(:disabled){background:var(--surface)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:600}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.primary:active:not(:disabled){background:#e8e8e8}button.ghost{background:transparent;border-color:transparent;color:var(--text-muted)}button.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:transparent}button.icon-only{padding:7px}.btn-sm{padding:5px 10px;font-size:var(--fs-sm)}input,textarea{font:inherit;background:var(--bg-elevated);color:var(--text);border:var(--bw) solid var(--border);border-radius:var(--r-md);padding:9px 12px;width:100%;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;line-height:var(--lh-base)}.container{max-width:1200px;margin:0 auto;padding:var(--sp-8) var(--sp-6) var(--sp-12)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.error{color:var(--danger)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.spacer{flex:1}.row{display:flex;align-items:center;gap:var(--sp-3)}.stack{display:flex;flex-direction:column;gap:var(--sp-2)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.alert{display:flex;align-items:flex-start;gap:var(--sp-2);padding:10px 12px;border-radius:var(--r-md);font-size:var(--fs-sm);border:var(--bw) solid var(--danger);background:var(--danger-soft);color:var(--danger)}.alert svg{flex:none;margin-top:1px}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-4);height:var(--header-h);padding:0 var(--sp-5);border-bottom:var(--bw) solid var(--border);background:#08090ab8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header .brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-md);color:var(--text);letter-spacing:-.02em}.app-header .brand:hover{color:var(--text)}.brand-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-md);background:var(--surface-3);border:var(--bw) solid var(--border-strong);color:var(--text)}.brand-tag{color:var(--text-faint);font-size:var(--fs-sm);font-weight:500}.brand-tag b{color:var(--text-muted);font-weight:600}.app-header .handle{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-pill);padding:4px 6px 4px 12px}.app-header .handle:focus-within{border-color:var(--accent)}.app-header .handle input{width:110px;border:0;background:transparent;padding:4px 6px;font-weight:500}.app-header .handle input:focus{box-shadow:none}.avatar{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-3);border:var(--bw) solid var(--border-strong);color:var(--text);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase}.avatar-img{object-fit:cover}.account-skeleton{width:92px;height:30px;border-radius:var(--r-md);background:var(--surface-2);opacity:.6}.account{position:relative}.account-trigger{display:flex;align-items:center;gap:var(--sp-2);background:transparent;border:var(--bw) solid var(--border);border-radius:var(--r-md);padding:4px 10px 4px 4px;font-weight:500}.account-name{font-size:var(--fs-sm);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.account-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:31;min-width:184px;display:flex;flex-direction:column;padding:var(--sp-1);background:var(--surface-2);border:var(--bw) solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.account-menu-item{justify-content:flex-start;width:100%;background:transparent;border:0;border-radius:var(--r-sm);padding:8px 10px;color:var(--text);font-weight:500;text-align:left}.account-menu-item:hover{background:var(--surface-3);border-color:transparent}.credit-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--r-md);border:var(--bw) solid var(--border);background:var(--surface);font-size:var(--fs-sm);font-weight:600;color:var(--text)}.credit-pill:hover{color:var(--text);border-color:var(--border-strong)}.credit-pill.low{border-color:var(--warn);color:var(--warn)}.credit-pill .spark{color:var(--text-muted)}.hero{position:relative;margin-bottom:var(--sp-10);padding:var(--sp-10) var(--sp-8);border:var(--bw) solid var(--border);border-radius:var(--r-xl);background:radial-gradient(600px 260px at 50% -60px,rgba(77,141,255,.1),transparent 70%),var(--bg-elevated);overflow:hidden}.hero-eyebrow{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);background:var(--surface-2);border:var(--bw) solid var(--border);padding:4px 12px;border-radius:var(--r-pill);margin-bottom:var(--sp-5)}.hero-eyebrow svg{color:var(--accent)}.hero h1{font-size:var(--fs-3xl);font-weight:600;max-width:18ch;margin-bottom:var(--sp-4);letter-spacing:-.03em}.hero p.lede{font-size:var(--fs-lg);color:var(--text-muted);max-width:56ch;margin-bottom:var(--sp-6);line-height:1.5}.new-game-box{display:flex;flex-direction:column;gap:var(--sp-3);max-width:760px;background:var(--surface);border:var(--bw) solid var(--border-strong);border-radius:var(--r-lg);padding:var(--sp-3);transition:border-color var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease)}.new-game-box:focus-within{border-color:var(--accent);box-shadow:var(--shadow-glow)}.new-game-box textarea{border:0;background:transparent;padding:8px 8px 0;font-size:var(--fs-md);min-height:56px}.new-game-box textarea:focus{box-shadow:none}.new-game-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:0 4px 2px}.new-game-actions{display:flex;align-items:center;gap:var(--sp-2)}.new-game-actions .chip{display:inline-flex;align-items:center;gap:var(--sp-1)}.new-game-actions .chip[aria-pressed=true]{color:var(--text);border-color:var(--accent);background:var(--accent-soft)}.new-game-options{display:flex;flex-direction:column;gap:var(--sp-3);border-top:var(--bw) solid var(--border);padding:var(--sp-3) 4px 2px}.asset-pick{display:flex;flex-direction:column;gap:var(--sp-1);align-items:stretch;padding:0;border:0;background:none;cursor:pointer}.asset-pick .asset-mini-thumb{transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.asset-pick[aria-pressed=true] .asset-mini-thumb{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.asset-pick[aria-pressed=true] .asset-mini-key{color:var(--accent-strong)}.asset-pick:disabled{opacity:.5;cursor:default}.suggest-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}.chip{font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-pill);padding:5px 12px;cursor:pointer;transition:all var(--t-fast) var(--ease)}.chip:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.gallery-toolbar{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-5)}.gallery-toolbar h2{font-size:var(--fs-xl)}.count-pill{font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-pill);padding:2px 10px}.segmented{display:inline-flex;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-md);padding:3px;gap:2px}.segmented button{border:0;background:transparent;color:var(--text-muted);padding:5px 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:500}.segmented button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.segmented button[aria-pressed=true]{background:var(--surface-3);color:var(--text)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-5)}.card{position:relative;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card-preview{position:relative;aspect-ratio:16 / 10;background:#050506;border-bottom:var(--bw) solid var(--border);overflow:hidden}.card-preview iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.card-preview .preview-shield{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;background:transparent;border:0;padding:0}.card-preview .preview-shield:hover{background:linear-gradient(180deg,transparent 45%,rgba(5,5,6,.55))}.card-preview .play-hint{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity var(--t-med) var(--ease)}.card-preview:hover .play-hint{opacity:1}.play-hint .play-orb{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fafafaf2;color:#0a0a0a;box-shadow:var(--shadow-md);transform:scale(.9);transition:transform var(--t-med) var(--ease)}.card-preview:hover .play-orb{transform:scale(1)}.preview-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);color:var(--text-faint);background:var(--bg-elevated)}.preview-empty.building{color:var(--accent)}.card-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);flex:1}.card-title-row{display:flex;align-items:flex-start;gap:var(--sp-2);justify-content:space-between}.card-title{font-weight:600;font-size:var(--fs-md);letter-spacing:-.01em;line-height:1.3}.card-meta{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);margin-top:-2px}.card-meta .meta-item{display:inline-flex;align-items:center;gap:5px}.tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:500;letter-spacing:.01em;color:var(--text-muted);background:var(--surface-2);border:var(--bw) solid var(--border);border-radius:var(--r-sm);padding:1px 7px}.card-actions{display:flex;gap:var(--sp-2);margin-top:auto}.card-actions .play{flex:1}.empty-state{text-align:center;padding:var(--sp-12) var(--sp-6);border:var(--bw) dashed var(--border-strong);border-radius:var(--r-xl);background:var(--surface);color:var(--text-muted)}.empty-state .empty-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto var(--sp-4);border-radius:var(--r-lg);background:var(--surface-2);border:var(--bw) solid var(--border);color:var(--text-muted)}.empty-state h3{color:var(--text);font-size:var(--fs-lg);margin-bottom:var(--sp-2)}.skeleton{position:relative;overflow:hidden;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-lg)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);animation:shimmer 1.5s infinite}.skel-preview{aspect-ratio:16 / 10;border-bottom:var(--bw) solid var(--border)}.skel-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.skel-line{height:11px;border-radius:var(--r-sm);background:var(--surface-2)}.skel-line.short{width:50%}@keyframes shimmer{to{transform:translate(100%)}}.builder{display:grid;grid-template-columns:minmax(340px,420px) 1fr;height:calc(100vh - var(--header-h));min-height:0}.chat-panel{display:flex;flex-direction:column;border-right:var(--bw) solid var(--border);background:var(--bg-elevated);min-height:0}.chat-head{padding:var(--sp-4) var(--sp-5);border-bottom:var(--bw) solid var(--border);display:flex;flex-direction:column;gap:var(--sp-3)}.chat-head .back{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted);width:fit-content}.chat-head .back:hover{color:var(--text)}.chat-head .title{font-weight:600;font-size:var(--fs-lg);letter-spacing:-.015em}.chat-log{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);min-height:0;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.chat-log>*{flex-shrink:0}.chat-log::-webkit-scrollbar{width:8px}.chat-log::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill)}.chat-intro{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);border:var(--bw) solid var(--border);border-radius:var(--r-md);color:var(--text-muted);font-size:var(--fs-sm)}.chat-intro strong{color:var(--text);font-weight:600}.msg{border-radius:var(--r-lg);font-size:var(--fs-base);line-height:var(--lh-base);animation:msg-in var(--t-med) var(--ease)}@keyframes msg-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.msg.user{align-self:flex-end;max-width:88%;padding:9px 13px;background:var(--surface-3);border:var(--bw) solid var(--border-strong);color:var(--text);border-bottom-right-radius:var(--r-sm)}.msg.assistant{align-self:flex-start;max-width:96%;padding:9px 13px;background:var(--surface);border:var(--bw) solid var(--border);border-bottom-left-radius:var(--r-sm);white-space:pre-wrap}.msg.tool{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--sp-2);max-width:96%;padding:5px 11px;background:transparent;border:var(--bw) solid var(--border);border-radius:var(--r-md);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-sm)}.msg.tool svg{color:var(--text-faint);flex:none}.msg.tool.err{color:var(--danger);border-color:var(--danger)}.msg.tool.err svg{color:var(--danger)}.msg.status{align-self:flex-start;color:var(--text-faint);font-size:var(--fs-sm);padding:2px 4px}.msg.error{align-self:stretch;display:flex;align-items:flex-start;gap:var(--sp-2);padding:10px 12px;background:var(--danger-soft);border:var(--bw) solid var(--danger);border-radius:var(--r-md);color:var(--danger);font-size:var(--fs-sm)}.working{display:flex;align-items:center;gap:var(--sp-3);padding:9px 13px;border-radius:var(--r-md);background:var(--surface);border:var(--bw) solid var(--border);color:var(--text);font-size:var(--fs-sm);font-weight:500}.working .dots{display:inline-flex;gap:4px}.working .dots i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:bounce 1.2s infinite ease-in-out}.working .dots i:nth-child(2){animation-delay:.15s}.working .dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.working .sub{color:var(--text-muted);font-weight:400}.chat-input{padding:var(--sp-4) var(--sp-5);border-top:var(--bw) solid var(--border);display:flex;flex-direction:column;gap:var(--sp-2)}.chat-composer{display:flex;gap:var(--sp-2);align-items:flex-end;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-md);padding:var(--sp-2);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.chat-composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chat-composer textarea{flex:1;border:0;background:transparent;padding:6px;min-height:40px;max-height:160px}.chat-composer textarea:focus{box-shadow:none}.chat-hint{font-size:var(--fs-xs);color:var(--text-faint);padding:0 2px}.preview-panel{display:flex;flex-direction:column;min-height:0;background:var(--bg)}.preview-toolbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-bottom:var(--bw) solid var(--border);background:var(--bg-elevated)}.preview-toolbar .label{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:var(--fs-sm)}.dot-live{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 #4cc46a80;animation:pulse 2s infinite}.dot-live.off{background:var(--text-faint);animation:none;box-shadow:none}@keyframes pulse{0%{box-shadow:0 0 #4cc46a73}70%{box-shadow:0 0 0 6px #4cc46a00}to{box-shadow:0 0 #4cc46a00}}.preview-toolbar .url{flex:1;min-width:0;color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-sm);padding:5px 10px}.preview-stage{flex:1;position:relative;min-height:0;display:flex;align-items:center;justify-content:center;padding:var(--sp-5)}.preview-frame{width:100%;height:100%;border:var(--bw) solid var(--border);border-radius:var(--r-lg);background:#000;box-shadow:var(--shadow-lg)}.preview-empty-full{width:100%;max-width:440px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);color:var(--text-muted);padding:var(--sp-8);border:var(--bw) dashed var(--border-strong);border-radius:var(--r-lg);background:var(--bg-elevated)}.preview-empty-full .empty-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r-lg);background:var(--surface-2);border:var(--bw) solid var(--border);color:var(--text-muted)}.preview-empty-full h3{color:var(--text);font-size:var(--fs-md)}.verify-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:500;padding:2px 8px;border-radius:var(--r-sm);border:var(--bw) solid var(--border);white-space:nowrap;flex:none;color:var(--text-muted);background:var(--surface-2)}.verify-badge svg{width:12px;height:12px}.verify-badge.passed{color:var(--ok);border-color:#4cc46a59;background:var(--ok-soft)}.verify-badge.failed{color:var(--danger);border-color:#f0616d59;background:var(--danger-soft)}.verify-badge.pending{color:var(--warn);border-color:#e0a93b59;background:var(--warn-soft)}.verify-video{width:100%;border-radius:var(--r-md);background:#000;max-height:200px;border:var(--bw) solid var(--border)}.verify-block{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:var(--bw) solid var(--border);border-radius:var(--r-md);background:var(--surface)}.verify-block .verify-head{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600}.lineage-view{font-size:var(--fs-sm);display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:var(--bw) solid var(--border);border-radius:var(--r-md);background:var(--surface)}.lineage-head{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text-muted)}.lineage-parent{color:var(--text-muted)}.lineage-tree,.lineage-tree ul{list-style:none;margin:0;padding-left:var(--sp-4);border-left:var(--bw) solid var(--border-strong)}.lineage-tree>li:first-child{padding-left:0}.lineage-tree li{margin:3px 0;position:relative}.lineage-node a{color:var(--text-muted)}.lineage-node a:hover{color:var(--text)}.lineage-node.current strong{color:var(--accent)}.lineage-count{color:var(--text-faint)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;opacity:.8}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 920px){.builder{grid-template-columns:1fr;height:auto;min-height:calc(100vh - var(--header-h))}.chat-panel{border-right:0;border-bottom:var(--bw) solid var(--border);max-height:60vh}.preview-stage{min-height:56vh}}@media (max-width: 640px){.container{padding:var(--sp-5) var(--sp-4) var(--sp-10)}.hero{padding:var(--sp-6) var(--sp-5)}.hero h1{font-size:var(--fs-2xl)}.hero p.lede{font-size:var(--fs-md)}.grid{grid-template-columns:1fr}.app-header{padding:0 var(--sp-4);gap:var(--sp-2)}.brand-tag{display:none}.gallery-toolbar{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){*,*:after,*:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.container.narrow{max-width:680px}.alert-action,.link{color:var(--accent);font-weight:500;margin-left:var(--sp-2);white-space:nowrap}.pricing-head{text-align:center;max-width:680px;margin:0 auto var(--sp-10)}.pricing-head h1{margin-top:var(--sp-3)}.section-label{margin:var(--sp-8) 0 var(--sp-4);font-size:var(--fs-lg)}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-4)}.plan-card{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-6);border:var(--bw) solid var(--border);border-radius:var(--r-lg);background:var(--surface);transition:border-color var(--t-med) var(--ease)}.plan-card:hover{border-color:var(--border-strong)}.plan-card.featured{border-color:var(--accent);box-shadow:var(--shadow-glow)}.plan-badge{position:absolute;top:-10px;left:var(--sp-6);background:var(--accent);color:#fff;font-size:var(--fs-xs);font-weight:600;padding:2px 10px;border-radius:var(--r-pill)}.plan-name{font-size:var(--fs-lg)}.plan-price{font-size:2rem;font-weight:700;letter-spacing:-.03em}.plan-cadence{font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);margin-left:2px}.plan-credits{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-weight:500}.plan-credits svg{color:var(--text-faint)}.plan-card button{margin-top:auto}.panel{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5);border:var(--bw) solid var(--border);border-radius:var(--r-lg);background:var(--surface);margin-bottom:var(--sp-4)}.balance-panel{flex-direction:row;align-items:center;justify-content:space-between}.panel-label{color:var(--text-muted);font-size:var(--fs-sm);font-weight:500}.balance-big{display:inline-flex;align-items:center;gap:8px;font-size:2.1rem;font-weight:700;letter-spacing:-.02em}.balance-big .spark{color:var(--text-muted)}.panel-row{display:flex;align-items:center;justify-content:space-between}.panel-actions{margin-top:var(--sp-2)}.btn-link{text-decoration:none;display:inline-flex;align-items:center;padding:7px 13px;border-radius:var(--r-md)}.status-tag{text-transform:capitalize;font-weight:600}.status-tag.active{color:var(--ok)}.status-tag.past_due,.status-tag.canceled{color:var(--danger)}.notice{display:flex;align-items:center;gap:var(--sp-2);padding:10px 12px;border-radius:var(--r-md);font-size:var(--fs-sm);margin-bottom:var(--sp-4);border:var(--bw) solid var(--ok);color:var(--ok);background:var(--ok-soft)}.compose-gate{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:10px 12px;border:var(--bw) solid var(--border);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm)}.compose-gate.warn{border-color:var(--warn);color:var(--warn);margin-bottom:var(--sp-2)}.activity{border:var(--bw) solid var(--border);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.activity.live{border-color:var(--border-strong)}.activity.err{border-color:var(--danger)}.activity-head{display:flex;align-items:center;gap:var(--sp-2);width:100%;background:transparent;border:0;border-radius:0;padding:8px 12px;color:var(--text-muted);font-size:var(--fs-sm);font-weight:500}.activity-head:hover{background:var(--surface-2);border-color:transparent}.activity.err .activity-head{color:var(--danger)}.activity-phase{color:var(--text)}.activity-count{color:var(--text-faint);font-weight:400}.activity-toggle{margin-left:auto;color:var(--text-faint)}.activity-steps{margin:0;padding:4px 12px 10px 34px;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--text-muted);border-top:var(--bw) solid var(--border)}.activity-steps li{display:flex;justify-content:space-between;gap:var(--sp-3)}.elapsed{font-variant-numeric:tabular-nums}.app-nav{display:flex;align-items:center;gap:var(--sp-1)}.app-nav a{color:var(--text-muted);font-size:var(--fs-sm);font-weight:500;padding:6px 10px;border-radius:var(--r-md);transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.app-nav a:hover,.app-nav a.active{color:var(--text);background:var(--surface-2)}.landing{max-width:1200px;margin:0 auto;padding:var(--sp-8) var(--sp-6) var(--sp-12);display:flex;flex-direction:column;gap:var(--sp-12)}.hero-landing{margin-bottom:0;text-align:center;display:flex;flex-direction:column;align-items:center;padding:var(--sp-12) var(--sp-8)}.hero-landing h1{font-size:clamp(34px,5.6vw,54px);max-width:18ch;letter-spacing:-.035em}.hero-landing p.lede{max-width:58ch}.hero-build{width:100%;max-width:760px;margin-top:var(--sp-2)}.hero-landing .new-game,.hero-landing .new-game-box{text-align:left}.hero-landing .suggest-row{justify-content:center}.hero-actions{margin-top:var(--sp-5)}.link-arrow{font-weight:500;font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap}.link-arrow:hover{color:var(--text)}.section{display:flex;flex-direction:column;gap:var(--sp-6)}.section-head h2{font-size:var(--fs-2xl)}.section-head p{margin-top:var(--sp-2)}.section-cta{display:flex;justify-content:center}.how-it-works .section-head{text-align:center}.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-4)}.step{position:relative;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-6);border:var(--bw) solid var(--border);border-radius:var(--r-lg);background:var(--surface);transition:border-color var(--t-med) var(--ease)}.step:hover{border-color:var(--border-strong)}.step-num{position:absolute;top:var(--sp-4);right:var(--sp-5);font-size:var(--fs-2xl);font-weight:700;line-height:1;color:var(--surface-3)}.step-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--surface-2);border:var(--bw) solid var(--border);color:var(--accent)}.step h3{font-size:var(--fs-md);margin-top:var(--sp-1)}.cta-band{position:relative;border:var(--bw) solid var(--border);border-radius:var(--r-xl);background:radial-gradient(560px 240px at 50% -40px,rgba(77,141,255,.12),transparent 70%),var(--bg-elevated);padding:var(--sp-12) var(--sp-8);overflow:hidden}.cta-inner{position:relative;max-width:600px;margin:0 auto;text-align:center;display:flex;flex-direction:column;gap:var(--sp-3)}.cta-inner h2{font-size:var(--fs-2xl)}.cta-row{display:flex;gap:var(--sp-3);justify-content:center;margin-top:var(--sp-3);flex-wrap:wrap}.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-6);border-top:var(--bw) solid var(--border);color:var(--text-muted);flex-wrap:wrap}.landing-footer b{font-weight:600;color:var(--text)}.footer-links{display:flex;gap:var(--sp-4)}.footer-links a{color:var(--text-muted);font-size:var(--fs-sm);font-weight:500}.footer-links a:hover{color:var(--text)}.explore-head{margin-bottom:var(--sp-8);display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.explore-head h1{font-size:var(--fs-2xl);font-weight:600}.explore-head .new-game{width:100%}@media (max-width: 640px){.landing{padding:var(--sp-5) var(--sp-4) var(--sp-10);gap:var(--sp-10)}.hero-landing{padding:var(--sp-8) var(--sp-5)}.app-nav a{padding:6px 8px}.cta-band{padding:var(--sp-8) var(--sp-5)}}.page-head{margin:var(--sp-6) 0 var(--sp-5)}.page-head h1{margin:0 0 var(--sp-2)}.asset-create{margin-bottom:var(--sp-6)}.asset-form{display:flex;flex-direction:column;gap:var(--sp-3)}.asset-form-row{display:flex;gap:var(--sp-3);flex-wrap:wrap}.asset-form-row input{flex:1 1 220px}.asset-form-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.upload-zone{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;cursor:pointer;color:var(--text-muted);border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:var(--sp-6);transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.upload-zone:hover,.upload-zone.dragging{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.asset-preview{display:flex;align-items:center;justify-content:center;background-color:var(--surface-2);background-image:linear-gradient(45deg,var(--surface-3) 25%,transparent 25%),linear-gradient(-45deg,var(--surface-3) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--surface-3) 75%),linear-gradient(-45deg,transparent 75%,var(--surface-3) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.asset-preview img{max-width:100%;max-height:100%;object-fit:contain;image-rendering:auto}.badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:700;padding:2px var(--sp-2);border-radius:var(--r-pill);white-space:nowrap}.badge.ok{color:var(--ok);background:var(--ok-soft)}.badge.muted{color:var(--text-faint);background:var(--surface-2)}.icon-only.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:100%;max-width:480px;display:flex;flex-direction:column;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-lg)}.modal h3{margin:0}.remix-preview{align-self:center;width:96px;height:96px;object-fit:contain;border-radius:var(--r-md);background:var(--surface-2)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--sp-3)}.chat-tabs{margin-top:var(--sp-3);width:100%}.chat-tabs button{flex:1}.builder-assets{display:flex;flex-direction:column;gap:var(--sp-5)}.assets-section-head{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 var(--sp-3)}.asset-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:var(--sp-3)}.asset-mini{margin:0;display:flex;flex-direction:column;gap:var(--sp-1);align-items:stretch}.asset-mini-thumb{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--r-md);background-color:var(--surface-2);background-image:linear-gradient(45deg,var(--surface-3) 25%,transparent 25%),linear-gradient(-45deg,var(--surface-3) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--surface-3) 75%),linear-gradient(-45deg,transparent 75%,var(--surface-3) 75%);background-size:14px 14px;background-position:0 0,0 7px,7px -7px,-7px 0;overflow:hidden}.asset-mini-thumb img{max-width:100%;max-height:100%;object-fit:contain}.asset-mini-key{font-size:var(--fs-xs);color:var(--text-faint);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-mini-use{width:100%;justify-content:center}.auth-page{display:flex;justify-content:center;padding-top:48px}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px;text-align:center}.auth-card h1{margin:0;font-size:22px}.auth-form{display:flex;flex-direction:column;gap:12px;text-align:left}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field span{font-size:13px;font-weight:600;color:var(--text-muted)}.auth-form .primary{margin-top:4px;justify-content:center}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--text-faint);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.btn-block{width:100%;justify-content:center}.auth-switch{display:flex;flex-direction:column;gap:8px;align-items:center;font-size:13px;color:var(--text-muted)}.link-button{background:none;border:none;padding:0;color:var(--accent);font:inherit;cursor:pointer}.link-button:hover{color:var(--accent-strong);text-decoration:underline}.auth-check{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:4px auto 0;border-radius:50%;background:var(--ok-soft);color:var(--ok)}.auth-fineprint{font-size:13px;margin:4px 0 0}.auth-fineprint a{color:var(--text-muted);text-decoration:none}.auth-fineprint a:hover{color:var(--text)}
