@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Syne:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg-0:#0c0d0f;--bg-1:#14161a;--bg-2:#1c1f26;--ink:#f2efe8;--ink-muted:#a7a295;--ink-dim:#6e695f;--line:#f2efe81a;--line-strong:#f2efe838;--accent:#c8ff3d;--accent-ink:#101208;--warn:#ffb454;--danger:#ff6b5a;--stage:#090a0c;--glow:#c8ff3d1f;--font-display:"Instrument Serif", Georgia, serif;--font-ui:"Syne", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius:2px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--font-ui);background:radial-gradient(1200px 700px at 15% -10%, #c8ff3d14, transparent 55%), radial-gradient(900px 600px at 90% 10%, #5a78a024, transparent 50%), linear-gradient(180deg, #12141a 0%, var(--bg-0) 45%, #08090b 100%);background-attachment:fixed;margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:inherit}::selection{background:var(--accent);color:var(--accent-ink)}.app-shell{min-height:100vh}.landing{place-items:center;min-height:100vh;padding:2rem;display:grid;position:relative;overflow:hidden}.landing:before{content:"";animation:sweep 12s var(--ease) infinite;pointer-events:none;background:linear-gradient(120deg,#0000 40%,#c8ff3d08 50%,#0000 60%),repeating-linear-gradient(90deg,#0000 0 80px,#f2efe805 80px 81px);position:absolute;inset:0}@keyframes sweep{0%,to{opacity:.7;transform:translate(-4%)}50%{opacity:1;transform:translate(4%)}}.landing-inner{z-index:1;text-align:left;width:min(920px,100%);position:relative}.brand{font-family:var(--font-display);letter-spacing:-.03em;animation:rise .9s var(--ease) both;margin:0 0 1.25rem;font-size:clamp(4.5rem,14vw,8.5rem);line-height:.88}.brand span{color:var(--accent);display:block}.landing-line{max-width:34rem;color:var(--ink-muted);animation:rise .9s var(--ease) .1s both;margin:0 0 2rem;font-size:1.1rem;line-height:1.5}.landing-actions{animation:rise .9s var(--ease) .2s both;flex-wrap:wrap;gap:.75rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.btn{border:1px solid var(--line-strong);color:var(--ink);border-radius:var(--radius);letter-spacing:.02em;transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);background:0 0;padding:.85rem 1.25rem;font-weight:600}.btn:hover{border-color:var(--ink);transform:translateY(-1px)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover{background:#d8ff6a;border-color:#d8ff6a}.btn-ghost{background:#ffffff08}.btn-danger{color:#ffb1a8;border-color:#ff6b5a73}.btn-sm{padding:.45rem .75rem;font-size:.85rem}.project-list{animation:rise .9s var(--ease) .28s both;margin-top:3rem}.project-list h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 .75rem;font-size:.75rem;font-weight:500}.project-rows{gap:.5rem;display:grid}.project-row{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s var(--ease);background:#14161aa6;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.project-row:hover{border-color:var(--line-strong)}.project-row strong{font-size:1rem;display:block}.project-row span{color:var(--ink-dim);font-family:var(--font-mono);font-size:.75rem}.project-row-actions{gap:.5rem;display:flex}.studio{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.studio-top{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#0c0d0fd9;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;display:flex;position:sticky;top:0}.studio-brand{font-family:var(--font-display);font-size:1.6rem;line-height:1}.studio-brand em{color:var(--accent);font-style:italic}.phase-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.phase-tab{color:var(--ink-dim);letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;font-family:var(--font-mono);background:0 0;border:1px solid #0000;padding:.45rem .7rem}.phase-tab.active{color:var(--ink);border-color:var(--line-strong);background:#ffffff0a}.phase-tab:disabled{opacity:.35;cursor:not-allowed}.studio-grid{grid-template-columns:minmax(280px,340px) minmax(0,1fr) minmax(240px,300px);min-height:calc(100vh - 61px);display:grid}@media (width<=1100px){.studio-grid{grid-template-columns:1fr}}.panel{border-right:1px solid var(--line);max-height:calc(100vh - 61px);padding:1.1rem;overflow:auto}.panel:last-child{border-right:none;border-left:1px solid var(--line)}@media (width<=1100px){.panel,.panel:last-child{border:none;border-bottom:1px solid var(--line);max-height:none}}.panel h3{letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-family:var(--font-mono);color:var(--ink-dim);margin:0 0 .85rem;font-weight:500}.field{gap:.35rem;margin-bottom:.85rem;display:grid}.field label{color:var(--ink-muted);font-size:.75rem;font-family:var(--font-mono);letter-spacing:.04em}.field input,.field textarea,.field select{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);width:100%;transition:border-color .2s var(--ease);outline:none;padding:.65rem .75rem}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent)}.field textarea{resize:vertical;min-height:88px;line-height:1.45}.field-row{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.hint{color:var(--ink-dim);margin:0 0 1rem;font-size:.8rem;line-height:1.4}.block-list{gap:.75rem;display:grid}.block{border:1px solid var(--line);background:#ffffff05;padding:.75rem}.block-head{justify-content:space-between;gap:.5rem;margin-bottom:.45rem;display:flex}.block-head strong{font-size:.85rem}.block-head span{font-family:var(--font-mono);color:var(--accent);font-size:.68rem}.prompt-preview{background:var(--stage);border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-muted);white-space:pre-wrap;max-height:180px;margin-top:1rem;padding:.85rem;font-size:.72rem;line-height:1.55;overflow:auto}.asset-grid{gap:.55rem;display:grid}.asset-slot{border:1px dashed var(--line-strong);gap:.4rem;padding:.65rem;display:grid}.asset-slot img{aspect-ratio:4/3;object-fit:cover;background:#000;width:100%}.asset-slot .row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.stage{background:radial-gradient(700px 400px at 50% 30%, var(--glow), transparent 60%), linear-gradient(180deg, #ffffff04, transparent 30%), var(--stage);grid-template-rows:auto 1fr auto;gap:.9rem;min-height:70vh;padding:1.1rem;display:grid}.stage-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.stage-head h2{font-family:var(--font-display);margin:0;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:400}.stage-head p{color:var(--ink-muted);max-width:36rem;margin:.35rem 0 0;line-height:1.45}.stage-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stage-controls select{background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;padding:.55rem .7rem}.frame{border:1px solid var(--line);background:linear-gradient(#ffffff08,#0000),#050607;place-items:center;min-height:420px;display:grid;position:relative;overflow:hidden}.frame img{object-fit:contain;width:100%;height:100%;max-height:min(70vh,820px);animation:reveal .7s var(--ease)}@keyframes reveal{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.frame-empty{text-align:center;color:var(--ink-dim);padding:2rem}.frame-empty strong{color:var(--ink-muted);font-family:var(--font-display);margin-bottom:.4rem;font-size:1.6rem;display:block}.busy-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0506078c;place-items:center;display:grid;position:absolute;inset:0}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.status-line{font-family:var(--font-mono);color:var(--ink-dim);font-size:.75rem}.status-line.error{color:var(--danger)}.status-line.ok{color:var(--accent)}.chain-list{gap:.45rem;display:grid}.chain-item{text-align:left;border:1px solid var(--line);width:100%;transition:border-color .2s var(--ease), background .2s var(--ease);background:0 0;gap:.2rem;padding:.7rem .75rem;display:grid}.chain-item.active{border-color:var(--accent);background:#c8ff3d0f}.chain-item:disabled{opacity:.35;cursor:not-allowed}.chain-item .meta{font-family:var(--font-mono);color:var(--ink-dim);justify-content:space-between;gap:.5rem;font-size:.68rem;display:flex}.chain-item .label{font-size:.92rem;font-weight:600}.thumb-strip{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.4rem;margin-top:1rem;display:grid}.thumb-strip button{border:1px solid var(--line);aspect-ratio:3/4;background:#000;padding:0;overflow:hidden}.thumb-strip img{object-fit:cover;width:100%;height:100%}.template-picks{gap:.4rem;margin-bottom:1rem;display:grid}.template-picks button{text-align:left;border:1px solid var(--line);background:#ffffff05;padding:.55rem .7rem;font-size:.85rem}.template-picks button:hover{border-color:var(--line-strong)}.lock-banner{color:var(--ink);background:#c8ff3d14;border:1px solid #c8ff3d59;margin-bottom:.9rem;padding:.7rem .8rem;font-size:.85rem}.method-note{border-left:2px solid var(--accent);color:var(--ink-muted);margin:0 0 1rem;padding:.55rem .75rem;font-size:.85rem;line-height:1.45}
