@font-face{font-family:Suisse Intl;src:url(/fonts/SuisseIntl-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Suisse Intl;src:url(/fonts/SuisseIntl-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#fff;--bg-soft:#f5f5f5;--bg-stage:#f0f0f0;--ink:#0a0a0a;--ink-muted:#5c5c5c;--ink-dim:#8a8a8a;--line:#0a0a0a1a;--line-strong:#0a0a0a38;--danger:#c23b2a;--font:"Suisse Intl", Helvetica, Arial, sans-serif;--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);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-weight:400}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:inherit}::selection{background:var(--ink);color:var(--bg)}.app-shell{min-height:100vh}.landing{background:linear-gradient(#fff 0%,#f7f7f7 100%);place-items:center;min-height:100vh;padding:2rem;display:grid}.landing-inner{width:min(880px,100%)}.brand-logo{width:min(420px,72vw);height:auto;animation:rise .8s var(--ease) both;margin:0 0 1.5rem}.landing-line{max-width:32rem;color:var(--ink-muted);animation:rise .8s var(--ease) 80ms both;margin:0 0 2rem;font-size:1.05rem;line-height:1.5}.landing-actions{animation:rise .8s var(--ease) .16s both;flex-wrap:wrap;gap:.75rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.btn{border:1px solid var(--line-strong);color:var(--ink);border-radius:var(--radius);letter-spacing:.01em;transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);background:0 0;padding:.85rem 1.2rem;font-weight:700}.btn:hover{border-color:var(--ink)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn-primary:hover{background:#222;border-color:#222}.btn-ghost{background:var(--bg-soft)}.btn-danger{color:var(--danger);border-color:#c23b2a66}.btn-sm{padding:.45rem .75rem;font-size:.85rem}.project-list{animation:rise .8s var(--ease) .22s both;margin-top:3rem}.project-list h2{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 .75rem;font-size:.72rem;font-weight:700}.project-rows{gap:.5rem;display:grid}.project-row{border:1px solid var(--line);background:var(--bg);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;font-weight:700;display:block}.project-row span{color:var(--ink-dim);font-size:.78rem}.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(10px);backdrop-filter:blur(10px);z-index:20;background:#ffffffeb;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex;position:sticky;top:0}.studio-logo{width:auto;height:22px;display:block}.phase-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.phase-tab{color:var(--ink-dim);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:1px solid #0000;padding:.45rem .7rem;font-size:.75rem;font-weight:700}.phase-tab.active{color:var(--ink);border-color:var(--line-strong);background:var(--bg-soft)}.phase-tab:disabled{opacity:.3;cursor:not-allowed}.studio-grid{grid-template-columns:minmax(280px,340px) minmax(0,1fr) minmax(240px,300px);min-height:calc(100vh - 57px);display:grid}@media (width<=1100px){.studio-grid{grid-template-columns:1fr}}.panel{border-right:1px solid var(--line);background:var(--bg);max-height:calc(100vh - 57px);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;color:var(--ink-dim);margin:0 0 .85rem;font-size:.7rem;font-weight:700}.field{gap:.35rem;margin-bottom:.85rem;display:grid}.field label{color:var(--ink-muted);letter-spacing:.04em;font-size:.75rem}.field input,.field textarea,.field select{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);outline:none;width:100%;padding:.65rem .75rem}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink)}.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:var(--bg-soft);padding:.75rem}.block-head{justify-content:space-between;gap:.5rem;margin-bottom:.45rem;display:flex}.block-head strong{font-size:.85rem;font-weight:700}.block-head span{color:var(--ink-dim);letter-spacing:.08em;font-size:.68rem;font-weight:700}.prompt-preview{background:var(--bg-stage);border:1px solid var(--line);color:var(--ink-muted);white-space:pre-wrap;max-height:180px;margin-top:1rem;padding:.85rem;font-size:.75rem;line-height:1.55;overflow:auto}.asset-grid{gap:.55rem;display:grid}.asset-slot{border:1px dashed var(--line-strong);background:var(--bg);gap:.4rem;padding:.65rem;display:grid}.asset-slot img{aspect-ratio:4/3;object-fit:cover;background:var(--bg-soft);width:100%}.asset-slot .row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.stage{background:var(--bg-stage);grid-template-rows:auto 1fr auto 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{letter-spacing:-.02em;margin:0;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700}.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);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;padding:.55rem .7rem}.frame{border:1px solid var(--line);background:#fff;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 .6s var(--ease)}@keyframes reveal{0%{opacity:0;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}.frame-empty{text-align:center;color:var(--ink-dim);padding:2rem}.frame-empty strong{color:var(--ink);margin-bottom:.4rem;font-size:1.35rem;font-weight:700;display:block}.busy-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff8c;place-items:center;display:grid;position:absolute;inset:0}.spinner{border:2px solid var(--line-strong);border-top-color:var(--ink);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.status-line{color:var(--ink-dim);letter-spacing:.02em;font-size:.75rem}.status-line.error{color:var(--danger)}.status-line.ok{color:var(--ink)}.chain-list{gap:.45rem;display:grid}.chain-item{text-align:left;border:1px solid var(--line);background:var(--bg);gap:.2rem;width:100%;padding:.7rem .75rem;display:grid}.chain-item.active{border-color:var(--ink);background:var(--bg-soft)}.chain-item:disabled{opacity:.35;cursor:not-allowed}.chain-item .meta{color:var(--ink-dim);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;gap:.5rem;font-size:.68rem;font-weight:700;display:flex}.chain-item .label{font-size:.92rem;font-weight:700}.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:#fff;padding:0;overflow:hidden}.thumb-strip img{object-fit:cover;width:100%;height:100%}.lock-banner{border:1px solid var(--line-strong);background:var(--bg-soft);color:var(--ink);margin-bottom:.9rem;padding:.7rem .8rem;font-size:.85rem}.method-note{border-left:2px solid var(--ink);color:var(--ink-muted);margin:0 0 1rem;padding:.55rem .75rem;font-size:.85rem;line-height:1.45}.portfolio{background:var(--bg);min-height:100vh;padding:2rem clamp(1.25rem,4vw,3rem) 4rem}.portfolio-top{margin-bottom:2.5rem}.portfolio-logo{width:min(220px,48vw);height:auto}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.portfolio-item{gap:.55rem;margin:0;display:grid}.portfolio-item img{aspect-ratio:3/4;object-fit:cover;background:var(--bg-soft);width:100%}.portfolio-item figcaption{color:var(--ink-muted);letter-spacing:.02em;justify-content:space-between;gap:.75rem;font-size:.78rem;display:flex}.portfolio-item figcaption span:first-child{color:var(--ink);font-weight:700}.portfolio-empty{min-height:40vh;color:var(--ink-dim);letter-spacing:.08em;text-transform:uppercase;place-items:start;font-size:.85rem;font-weight:700;display:grid}.studio-login{background:var(--bg);place-items:center;min-height:100vh;padding:2rem;display:grid}.studio-login-inner{width:min(360px,100%)}.studio-login-logo{width:min(200px,60vw);height:auto;margin-bottom:1.25rem}.studio-login form{gap:.85rem;display:grid}.brand-logo-control{border:1px solid var(--line);background:var(--bg-soft);gap:.75rem;margin:0 0 1rem;padding:.85rem;display:grid}.brand-logo-control-head{align-items:center;gap:.75rem;display:flex}.brand-logo-control-head img{flex:none;width:72px;height:auto}.brand-logo-control-head strong{font-size:.9rem;font-weight:700;display:block}.brand-logo-control-head p{color:var(--ink-dim);margin:.2rem 0 0;font-size:.78rem;line-height:1.35}.brand-logo-toggle{cursor:pointer;align-items:center;gap:.55rem;font-size:.88rem;font-weight:700;display:flex}.brand-logo-toggle input{width:1rem;height:1rem}.mod-history{flex-direction:column;gap:.55rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.mod-history li{grid-template-columns:64px 1fr;align-items:center;gap:.65rem;display:grid}.mod-history img{object-fit:cover;border:1px solid #ddd;width:64px;height:64px}.mod-history span{color:#222;font-size:.85rem;line-height:1.35}.mod-ref{gap:.45rem;margin:0 0 1rem;display:grid}.mod-ref img{object-fit:cover;border:1px solid #ddd;width:100%;max-height:180px}.render-gallery{gap:.55rem;min-width:0;display:grid}.render-gallery-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.render-gallery-head strong{letter-spacing:-.01em;font-size:.95rem}.render-gallery-head span{color:var(--ink-muted);font-size:.8rem}.render-gallery-track{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:.65rem;padding:.15rem .1rem .45rem;display:flex;overflow-x:auto}.render-gallery-item{scroll-snap-align:start;flex:none;gap:.35rem;width:112px;display:grid}.render-gallery-thumb{border:1px solid var(--line);cursor:pointer;background:#fff;width:112px;height:140px;padding:0;display:block;position:relative;overflow:hidden}.render-gallery-item.selected .render-gallery-thumb{border-color:#111;box-shadow:inset 0 0 0 1px #111}.render-gallery-item.reference .render-gallery-thumb:after{content:"REF";color:#fff;letter-spacing:.04em;background:#111;padding:.15rem .3rem;font-size:.65rem;position:absolute;top:.35rem;left:.35rem}.render-gallery-thumb img{object-fit:cover;width:100%;height:100%}.render-gallery-meta{color:#fff;text-align:left;background:linear-gradient(#0000,#000000b8);padding:.3rem .35rem;font-size:.65rem;position:absolute;bottom:0;left:0;right:0}.render-gallery-item .btn{justify-content:center;width:100%;padding:.35rem .4rem;font-size:.72rem}
