@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Light.otf) format("opentype");font-style:normal;font-weight:300;font-display:swap}@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Regular.otf) format("opentype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Medium.otf) format("opentype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Bold.otf) format("opentype");font-style:normal;font-weight:700;font-display:swap}:root{color-scheme:dark;--bg: #030303;--bg-soft: #080808;--panel: #0d0d0d;--panel-raised: #121212;--line: rgba(255, 255, 255, .16);--line-strong: rgba(255, 255, 255, .34);--text: #f4f4f4;--muted: #a0a0a0;--dim: #6e6e6e;--accent: #92e8ff;--accent-soft: rgba(146, 232, 255, .12);--danger: #ff6767;--success: #c8ff9a;--max-width: 1680px;--topbar-height: 69px;--font-sans: "Foundry Gridnik", "Helvetica Neue", Arial, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--grid-size: 64px}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),var(--bg);background-size:var(--grid-size) var(--grid-size);color:var(--text);font-family:var(--font-sans)}button,input,textarea,select{border-radius:0;font:inherit}h1,h2,h3,h4,p{margin:0}@media(max-width:720px){:root{--topbar-height: 60px;--grid-size: 44px}}.login-screen{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),radial-gradient(circle at 50% 0,rgba(146,232,255,.1),transparent 34%),var(--bg);background-size:var(--grid-size) var(--grid-size),var(--grid-size) var(--grid-size),auto,auto}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;padding:0 18px;border-bottom:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase}@media(max-width:1120px){.workspace-grid{grid-template-columns:1fr}.side-rail{position:sticky;top:0;z-index:8;min-height:0;max-height:none;border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:720px){.topbar-inner{position:relative;display:block;width:100%;min-height:var(--topbar-height);padding-right:132px;border-inline:0}.topbar-actions{position:absolute;top:0;right:0;bottom:0;z-index:2;width:auto;gap:8px;padding:10px 12px;border-top:0;border-left:1px solid var(--line);background:#030303f5}.workspace-grid{width:100%;max-width:100vw;border-inline:0}.side-rail{position:static;z-index:auto}.section-heading{min-height:38px;padding-inline:14px;font-size:.62rem}.workbench{min-height:0}.content-plane{padding:16px 14px 24px}}.login-heading span,.editor-heading span,.upload-heading span,.image-section-head span{color:var(--accent);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase}.login-heading p,.editor-heading p,.upload-heading p{color:var(--muted);font-size:.92rem;line-height:1.45}.field-label{color:var(--muted);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;transition:background .16s ease,border-color .16s ease,color .16s ease}.button-primary:hover,.button-primary:focus-visible{border-color:var(--accent);background:var(--accent);color:var(--bg)}.project-meta{margin-top:8px;color:var(--dim);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase}.project-title,.tag-row{position:relative;z-index:1}.project-title{min-width:0;max-width:100%}.project-title h2{overflow-wrap:anywhere;word-break:break-word;font-size:clamp(2rem,3.6vw,4.3rem);font-weight:400;line-height:.96}.project-meta-row,.tag-row{display:flex;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%}.project-meta-row{margin-top:16px}.tag-row{justify-content:flex-end;max-width:360px}.project-meta-row span{display:inline-flex;min-width:0;max-width:100%;min-height:24px;align-items:center;border:1px solid var(--line);padding:0 8px;color:var(--dim);font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase}.tag,.status-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase}.tab{min-width:132px;min-height:46px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase}.info-panel,.action-panel,.edit-panel,.thumbnail-strip,.catalog-panel,.image-record,.upload-panel{border:1px solid var(--line);background:#0000002e}.info-label{color:var(--dim);font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase}.thumbnail-empty{display:grid;place-items:center;color:var(--dim);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase}.upload-heading,.image-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.upload-heading{padding:18px;border-bottom:1px solid var(--line)}.upload-heading p{max-width:620px;margin-top:8px;font-size:.84rem}.image-section-head{border-bottom:1px solid var(--line);padding-bottom:10px}.image-section-head strong{color:var(--muted);font-family:var(--font-mono);font-size:.68rem;font-weight:400;text-transform:uppercase}.image-preview-topline p{margin-top:6px;overflow:hidden;color:var(--dim);font-family:var(--font-mono);font-size:.64rem;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.empty-line,.empty-state{color:var(--dim);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase}@media(max-width:720px){.brand-lockup{gap:12px;padding:12px 14px}.brand-logo{width:30px;height:30px}.brand-lockup h1{overflow:hidden;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.brand-lockup p{display:none}.project-list{display:grid;grid-auto-columns:minmax(190px,74vw);grid-auto-flow:column;max-height:none;overflow-x:auto;overflow-y:hidden}.project-row{min-height:76px;border-right:1px solid var(--line)}.project-row-main{padding:13px 14px}.project-name{font-size:.82rem}.project-meta{font-size:.6rem}.project-head{grid-template-columns:1fr;align-items:start;gap:18px;min-height:0;width:100%;max-width:100vw;padding:18px 14px}.project-head:before{top:0;right:0;bottom:0;left:0;opacity:.16}.project-head:after{background:linear-gradient(180deg,#050505eb,#050505b3)}.project-title h2{max-width:calc(100vw - 28px);font-size:clamp(1.75rem,9.8vw,2.95rem);line-height:.98}.project-title p{width:100%;max-width:calc(100vw - 28px)}.tag-row{justify-content:flex-start;max-width:none}.tabs{overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;min-width:112px;min-height:42px;font-size:.66rem}.field-grid,.info-row{grid-template-columns:1fr}.thumbnail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));min-height:0;overflow:visible}.thumbnail-button,.thumbnail-empty{width:100%;height:auto;min-height:82px;aspect-ratio:4 / 3}.upload-heading,.image-section-head,.action-panel,.image-preview-topline{align-items:stretch;flex-direction:column}.media-frame{width:100%;min-height:0;height:auto;aspect-ratio:16 / 10;border-right:0;border-bottom:1px solid var(--line)}.image-preview{padding:14px}.image-preview-panel{max-height:calc(100vh - 28px)}.image-preview-panel img{max-height:calc(100vh - 158px)}.form-actions,.record-actions{display:grid;grid-template-columns:1fr}}@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Light.otf) format("opentype");font-style:normal;font-weight:300;font-display:swap}@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Regular.otf) format("opentype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Medium.otf) format("opentype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Foundry Gridnik;src:url(/fonts/foundry-gridnik/FoundryGridnik-Bold.otf) format("opentype");font-style:normal;font-weight:700;font-display:swap}:root{color-scheme:dark;--bg: #030303;--bg-soft: #080808;--panel: #0d0d0d;--panel-raised: #121212;--line: rgba(255, 255, 255, .16);--line-strong: rgba(255, 255, 255, .34);--text: #f4f4f4;--muted: #a0a0a0;--dim: #6e6e6e;--accent: #92e8ff;--accent-soft: rgba(146, 232, 255, .12);--danger: #ff6767;--success: #c8ff9a;--max-width: 1680px;--topbar-height: 69px;font-family:Foundry Gridnik,Helvetica Neue,Arial,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;letter-spacing:0}html{min-width:320px;min-height:100%;background:var(--bg);overflow-x:hidden}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),var(--bg);background-size:64px 64px;color:var(--text)}button,input,textarea{border-radius:0;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--text);color:var(--bg)}.app-shell{min-height:100vh;background:linear-gradient(115deg,rgba(146,232,255,.05),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.03),transparent 28%)}.login-screen{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),radial-gradient(circle at 50% 0,rgba(146,232,255,.1),transparent 34%),var(--bg);background-size:64px 64px,64px 64px,auto,auto}.login-panel{display:grid;gap:22px;width:min(100%,430px);border:1px solid var(--line);background:#0000009e;padding:28px}.login-mark{width:42px;height:42px}.login-heading{display:grid;gap:9px}.login-heading span{color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.login-heading h1{font-size:clamp(2rem,6vw,3.4rem);font-weight:400;line-height:.95}.login-heading p{color:var(--muted);font-size:.92rem;line-height:1.45}.login-form{display:grid;gap:14px}.topbar{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:#030303eb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;width:min(100%,var(--max-width));min-height:calc(var(--topbar-height) - 1px);margin:0 auto;border-inline:1px solid var(--line)}.brand-lockup{display:flex;align-items:center;gap:18px;min-width:0;padding:14px 24px}.brand-logo{display:block;flex:0 0 auto;width:34px;height:34px;border:1px solid var(--line-strong);background:#fff;object-fit:contain}h1,h2,h3,p{margin:0}.brand-lockup h1{text-transform:uppercase;font-size:clamp(1.05rem,1.2vw,1.32rem);font-weight:500;line-height:1.05}.brand-lockup p{margin-top:7px;color:var(--muted);font-size:.73rem;text-transform:uppercase}.topbar-actions{position:relative;display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:14px;padding:12px 18px;border-left:1px solid var(--line)}.topbar-menu{position:relative;flex:0 0 auto}.topbar-menu summary{list-style:none}.topbar-menu summary::-webkit-details-marker{display:none}.menu-trigger{position:relative;display:grid;place-content:center;gap:5px;width:38px;height:38px;border:1px solid transparent;background:#ffffff05;cursor:pointer;transition:background .16s ease,border-color .16s ease,opacity .16s ease}.menu-trigger span{display:block;width:17px;height:1px;background:#f4f4f4b8;transform-origin:center;transition:background .16s ease,transform .16s ease,width .16s ease}.menu-trigger span:first-child,.menu-trigger span:last-child{width:11px}.menu-trigger:before,.menu-trigger:after{position:absolute;content:"";width:7px;height:7px;opacity:0;transition:opacity .16s ease,border-color .16s ease}.menu-trigger:before{top:0;left:0;border-top:1px solid var(--accent);border-left:1px solid var(--accent)}.menu-trigger:after{right:0;bottom:0;border-right:1px solid var(--accent);border-bottom:1px solid var(--accent)}.menu-trigger:hover,.menu-trigger:focus-visible,.topbar-menu[open] .menu-trigger{border-color:#ffffff1f;background:#92e8ff0e;outline:0}.menu-trigger:hover span,.menu-trigger:focus-visible span,.topbar-menu[open] .menu-trigger span{background:var(--text)}.menu-trigger:hover span:first-child,.menu-trigger:hover span:last-child,.menu-trigger:focus-visible span:first-child,.menu-trigger:focus-visible span:last-child,.topbar-menu[open] .menu-trigger span:first-child,.topbar-menu[open] .menu-trigger span:last-child{width:17px}.menu-trigger:hover:before,.menu-trigger:hover:after,.menu-trigger:focus-visible:before,.menu-trigger:focus-visible:after,.topbar-menu[open] .menu-trigger:before,.topbar-menu[open] .menu-trigger:after{opacity:1}.menu-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:30;width:168px;border:1px solid var(--line-strong);background:#030303fa;padding:7px}.menu-new-project{display:none;margin-bottom:7px}.workspace-grid{display:grid;grid-template-columns:minmax(260px,300px) minmax(0,1fr);align-items:start;gap:0;width:min(100%,var(--max-width));max-width:100vw;min-height:calc(100vh - var(--topbar-height));margin:0 auto;overflow-x:hidden;border-inline:1px solid var(--line)}.side-rail{position:sticky;top:0;display:flex;min-height:calc(100vh - var(--topbar-height));max-height:calc(100vh - var(--topbar-height));min-width:0;max-width:100%;overflow:hidden;border-right:1px solid var(--line);background:#060606db}.rail-section{display:flex;flex:1 1 auto;min-height:0;min-width:0;max-width:100%;flex-direction:column}.rail-section+.rail-section{border-top:1px solid var(--line)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;padding:0 18px;border-bottom:1px solid var(--line);color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.project-list{flex:1 1 auto;width:100%;min-height:0;min-width:0;max-width:100%;overflow:auto;scrollbar-width:none;overscroll-behavior:contain}.project-list::-webkit-scrollbar{display:none}.project-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;width:100%;min-height:72px;padding:0;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;text-align:left;overflow:hidden}.project-row-image{position:absolute;top:0;right:0;bottom:0;left:38%;width:62%;height:100%;opacity:.08;object-fit:cover;transform:scale(1.04);transition:opacity .18s ease,transform .24s ease;-webkit-mask-image:linear-gradient(90deg,transparent 0%,black 48%,black 100%);mask-image:linear-gradient(90deg,transparent 0%,black 48%,black 100%)}.project-row:hover,.project-row:focus-visible,.project-row.is-selected{background:#ffffff0e}.project-row.is-selected{box-shadow:inset 3px 0 0 var(--accent)}.project-row:hover .project-row-image,.project-row:focus-visible .project-row-image{opacity:.13;transform:scale(1.02)}.project-row.is-selected .project-row-image{opacity:.2;transform:scale(1)}.project-row-main{position:relative;z-index:1;min-width:0;padding:15px 18px}.project-name,.project-meta{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-name{font-size:.9rem;font-weight:500}.project-meta{margin-top:8px;color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.rail-row-group{border-bottom:1px solid var(--line)}.rail-row-head{display:flex;align-items:stretch;min-width:0}.rail-row-head .project-row{flex:1;min-width:0;border-bottom:0}.rail-toggle{display:inline-flex;flex:none;align-items:center;justify-content:center;width:38px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--dim);cursor:pointer}.rail-toggle:hover,.rail-toggle:focus-visible{background:#ffffff0e;color:var(--text)}.rail-toggle-mark{display:inline-block;font-size:.72rem;line-height:1;transition:transform .16s ease}.rail-toggle.is-open .rail-toggle-mark{transform:rotate(90deg)}.rail-scene-list{border-top:1px solid var(--line);background:#0000003d}.rail-scene-row{display:block;width:100%;padding:10px 18px 10px 34px;border:0;border-bottom:1px solid rgba(255,255,255,.05);background:transparent;cursor:pointer;text-align:left}.rail-scene-row:last-child{border-bottom:0}.rail-scene-row:hover,.rail-scene-row:focus-visible,.rail-scene-row.is-selected{background:#ffffff0e}.rail-scene-row.is-selected{box-shadow:inset 3px 0 0 var(--accent)}.rail-scene-row .project-name{font-size:.82rem;font-weight:400}.rail-scene-row .project-meta{margin-top:4px}.rail-scene-empty{padding:10px 18px 10px 34px;color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.project-form,.upload-panel,.image-meta-form{display:grid;gap:14px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-grid.tight{gap:10px}.field{display:grid;min-width:0;gap:7px}.field-label{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.input,.textarea{width:100%;min-width:0;border:1px solid var(--line);background:#00000070;color:var(--text);font-size:.88rem;outline:0;transition:border-color .16s ease,background .16s ease}.input{min-height:42px;padding:0 12px}.textarea{resize:vertical;padding:11px 12px;line-height:1.55}.input::placeholder,.textarea::placeholder{color:var(--dim)}.input:focus,.textarea:focus{border-color:var(--text);background:#ffffff0a}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;text-transform:uppercase;transition:background .16s ease,border-color .16s ease,color .16s ease}.button:hover,.button:focus-visible{border-color:var(--text);background:var(--text);color:var(--bg);outline:0}.button:disabled{cursor:not-allowed;opacity:.42}.button-primary{border-color:var(--text);background:var(--text);color:var(--bg)}.button-primary:hover,.button-primary:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--bg)}.button-ghost{background:transparent}.button-logout{border-color:#ff67678a;background:#ff676714;color:#ff8a8a}.button-logout:hover,.button-logout:focus-visible{border-color:#ff6a6a;background:#ff6a6a;color:var(--bg)}.button-danger{border-color:#ff676775;color:var(--danger)}.button-danger:hover,.button-danger:focus-visible{border-color:var(--danger);background:var(--danger);color:var(--bg)}.full-width{width:100%}.workbench{min-width:0;max-width:100%;min-height:calc(100vh - var(--topbar-height));background:#050505ad}.project-head{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;justify-content:space-between;gap:24px;min-height:132px;padding:24px 26px;border-bottom:1px solid var(--line);overflow:hidden;min-width:0;max-width:100%}.project-head:before{position:absolute;content:"";top:0;right:0;bottom:0;left:42%;background-image:var(--project-hero-image);background-position:center right;background-size:cover;opacity:0;transform:scale(1.04);z-index:0;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 24%,black 64%),linear-gradient(180deg,transparent 0%,black 18%,black 82%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 24%,black 64%),linear-gradient(180deg,transparent 0%,black 18%,black 82%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.project-head.has-hero-image:before{opacity:.28}.project-head:after{position:absolute;content:"";top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#050505f5,#050505d1 46%,#05050542);pointer-events:none;z-index:0}.project-title{position:relative;z-index:1;min-width:0;max-width:100%}.project-title h2{margin-top:0;overflow-wrap:anywhere;word-break:break-word;font-size:clamp(2rem,3.6vw,4.3rem);font-weight:400;line-height:.96}.project-title p{max-width:840px;overflow-wrap:anywhere;word-break:break-word;margin-top:12px;color:var(--muted);font-size:.92rem;line-height:1.5}.project-meta-row{display:flex;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%;margin-top:16px}.project-meta-row span{display:inline-flex;min-width:0;max-width:100%;min-height:24px;align-items:center;border:1px solid var(--line);padding:0 8px;color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.65rem;text-transform:uppercase}.tag-row{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:360px}.tag,.status-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--line);color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.65rem;text-transform:uppercase}.tag.is-muted{color:var(--dim)}.tabs{display:flex;min-width:0;border-bottom:1px solid var(--line)}.tab{min-width:132px;min-height:46px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;text-transform:uppercase}.tab:hover,.tab:focus-visible,.tab.is-active{background:var(--text);color:var(--bg);outline:0}.content-plane{padding:26px}.editor-shell{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.editor-heading{display:grid;gap:8px;max-width:760px;padding-bottom:22px;border-bottom:1px solid var(--line)}.editor-heading span{color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.editor-heading h2{font-size:clamp(1.55rem,2.4vw,2.75rem);font-weight:400;line-height:1.02}.editor-heading p{color:var(--muted);font-size:.92rem;line-height:1.55}.info-panel{border:1px solid var(--line);background:#0000002e}.info-table{display:grid}.info-row{display:grid;grid-template-columns:minmax(170px,240px) minmax(0,1fr);align-items:start;min-width:0;gap:18px;padding:16px;border-bottom:1px solid var(--line)}.info-row:last-child{border-bottom:0}.info-row.is-long{grid-column:auto}.info-label{color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.66rem;text-transform:uppercase}.info-value{overflow-wrap:anywhere;color:var(--text);font-size:.9rem;font-weight:400;line-height:1.45;white-space:pre-wrap}.info-row.is-long .info-value{max-width:1040px}.action-panel,.edit-panel{border:1px solid var(--line);background:#0000002e}.action-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px}.action-panel p{margin-top:7px;color:var(--muted);font-size:.88rem;line-height:1.45}.edit-panel{padding:18px}.thumbnail-strip{border:1px solid var(--line);background:#0000002e}.thumbnail-row{display:flex;gap:8px;min-height:102px;overflow-x:auto;padding:10px;background:#00000038}.thumbnail-button,.thumbnail-empty{display:block;width:108px;height:82px;flex:0 0 auto;background:#050505}.thumbnail-button{padding:0;border:1px solid var(--line);cursor:zoom-in;overflow:hidden}.thumbnail-button:hover,.thumbnail-button:focus-visible{border-color:var(--accent);outline:0}.thumbnail-button img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease,opacity .18s ease}.thumbnail-button:hover img,.thumbnail-button:focus-visible img{opacity:.9;transform:scale(1.035)}.thumbnail-empty{display:grid;place-items:center;color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.image-preview{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:28px}.image-preview-scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#000000d1;cursor:zoom-out}.image-preview-panel{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(100%,1180px);max-height:calc(100vh - 56px);border:1px solid var(--line-strong);background:#030303}.image-preview-topline{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0;padding:14px 16px;border-bottom:1px solid var(--line)}.image-preview-topline h2{overflow:hidden;font-size:.96rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.image-preview-topline p{margin-top:6px;overflow:hidden;color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.64rem;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.image-preview-panel img{display:block;max-width:100%;max-height:calc(100vh - 132px);margin:0 auto;object-fit:contain}.status-line{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.status-chip{border-color:var(--accent);color:var(--accent)}.status-chip.is-good{border-color:#c8ff9a7a;color:var(--success)}.status-chip.is-error{border-color:#ff67678a;color:var(--danger)}.project-form{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:start}.form-column{display:grid;gap:16px;min-width:0}.form-actions,.record-actions{display:flex;justify-content:flex-end;gap:10px}.record-action-group{display:inline-flex;gap:10px;justify-content:flex-end}.image-readonly .record-actions{justify-content:flex-end}.split-actions{justify-content:space-between}.image-workspace{display:grid;gap:24px}.upload-panel{border:1px solid var(--line);background:#0003}.upload-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid var(--line)}.upload-heading span,.image-section-head span{color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.upload-heading h2{margin-top:8px;font-size:clamp(1.25rem,1.8vw,2rem);font-weight:400;line-height:1.05}.upload-heading p{max-width:620px;margin-top:8px;color:var(--muted);font-size:.84rem;line-height:1.45}.drop-zone{display:grid;place-items:center;gap:8px;min-height:230px;margin:18px;border:1px dashed var(--line-strong);background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),#0000002e;background-size:30px 30px;cursor:pointer;text-align:center;transition:background .16s ease,border-color .16s ease}.drop-zone:hover,.drop-zone:focus-within,.drop-zone.is-dragging{border-color:var(--accent);background:linear-gradient(rgba(146,232,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(146,232,255,.08) 1px,transparent 1px),#92e8ff12}.drop-zone input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.drop-zone-mark{position:relative;width:48px;height:48px;border:1px solid var(--line-strong)}.drop-zone-mark:before,.drop-zone-mark:after{position:absolute;content:"";background:var(--accent)}.drop-zone-mark:before{top:23px;left:12px;width:24px;height:1px}.drop-zone-mark:after{top:12px;left:23px;width:1px;height:24px}.drop-zone-title{margin-top:8px;font-size:clamp(1.15rem,1.8vw,1.8rem);font-weight:400}.drop-zone-subtitle,.file-count{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;text-transform:uppercase}.file-count{margin-top:8px;border:1px solid var(--line);padding:6px 8px}.image-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:10px}.image-section-head strong{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.68rem;font-weight:400;text-transform:uppercase}.image-list{display:grid;gap:16px}.image-record{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:0;border:1px solid var(--line);background:#00000038}.image-record-topline{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 14px}.image-record-topline strong{overflow-wrap:anywhere;font-size:.95rem;font-weight:500}.scene-thumb-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 18px 14px}.scene-thumb{width:56px;height:56px;border:1px solid var(--line);background:#050505;object-fit:cover}.scene-thumb-more{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:56px;padding:0 8px;border:1px solid var(--line);color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem}@media(max-width:720px){.image-grid .image-record{grid-template-columns:1fr}.image-grid .thumbnail-button{min-height:180px;border-right:0;border-bottom:1px solid var(--line)}}.media-frame{min-height:280px;height:100%;overflow:hidden;border-right:1px solid var(--line);background:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),#050505;background-size:24px 24px}.media-frame-button{display:block;width:100%;border-top:0;border-bottom:0;border-left:0;padding:0;color:inherit;cursor:zoom-in;-webkit-appearance:none;-moz-appearance:none;appearance:none}.media-frame-button:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.media-frame img{display:block;width:100%;height:100%;object-fit:cover}.image-meta-form{min-width:0;padding:18px;align-content:start}.record-topline{display:grid;grid-template-columns:1fr;gap:10px;align-items:start;padding-bottom:14px;border-bottom:1px solid var(--line)}.file-block{min-width:0}.file-block h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.96rem;font-weight:500}.file-block p{margin-top:7px;overflow:hidden;color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.66rem;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.image-facts{display:flex;flex-wrap:wrap;gap:8px}.image-facts span{display:inline-flex;min-height:23px;align-items:center;border:1px solid var(--line);padding:0 8px;color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.62rem;text-transform:uppercase}.image-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}.image-fields .field{grid-column:1 / -1}.image-detail-table{display:grid;border:1px solid var(--line);border-bottom:0}.image-detail-row{display:grid;grid-template-columns:minmax(92px,140px) minmax(0,1fr);gap:14px;min-width:0;padding:12px 14px;border-bottom:1px solid var(--line)}.image-detail-row span{color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.64rem;text-transform:uppercase}.image-detail-row strong{overflow-wrap:anywhere;color:var(--text);font-size:.84rem;font-weight:400;line-height:1.45;white-space:pre-wrap}.json-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:20px;align-items:start}.json-view{max-height:72vh;min-height:520px;margin:0;overflow:auto;border:1px solid var(--line);background:#000;color:#e7e7e7;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.76rem;line-height:1.65;padding:18px}.catalog-panel{display:grid;gap:12px;min-width:0;border:1px solid var(--line);background:#00000038}.catalog-panel .section-heading{padding-inline:14px}.metric{display:grid;gap:8px;padding:0 14px 12px;border-bottom:1px solid var(--line)}.metric span{color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.66rem;text-transform:uppercase}.metric strong{overflow-wrap:anywhere;font-size:.86rem;font-weight:400}.catalog-panel .button{width:calc(100% - 28px);margin:0 14px 14px}.empty-line,.empty-state{color:var(--dim);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;text-transform:uppercase}.empty-line{padding:18px}.empty-line.with-padding{border-inline:1px solid var(--line);border-bottom:1px solid var(--line)}.empty-state{display:grid;place-items:center;min-height:calc(100vh - 74px);padding:32px;text-align:center}.empty-state h2{margin-top:22px;color:var(--text);font-family:inherit;font-size:clamp(1.8rem,4vw,4rem);font-weight:400;text-transform:none}.empty-state p{margin-top:12px}.empty-mark{display:block;width:64px;height:64px;border:1px solid var(--line-strong);box-shadow:inset 20px 0 #ffffff14,inset -20px 0 #92e8ff1a}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line-strong)}@media(max-width:1120px){.workspace-grid{grid-template-columns:1fr}.side-rail{position:sticky;top:0;z-index:8;min-height:0;max-height:none;border-right:0;border-bottom:1px solid var(--line)}.project-list{display:grid;grid-auto-columns:minmax(220px,32vw);grid-auto-flow:column;max-height:none;overflow-x:auto;overflow-y:hidden}.project-row{min-height:88px;border-right:1px solid var(--line)}.project-row:last-child{border-right:0}.project-form,.image-record,.json-layout{grid-template-columns:1fr}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.info-grid .metric,.info-grid .metric:nth-child(3n),.info-grid .metric:nth-last-child(-n+3){border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.info-grid .metric:nth-child(2n){border-right:0}.info-grid .metric:nth-last-child(-n+2){border-bottom:0}.media-frame{width:100%;min-height:0;height:auto;aspect-ratio:16 / 10;border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:720px){:root{--topbar-height: 60px}body{background-size:44px 44px}.topbar-inner{position:relative;display:block;width:100%;min-height:var(--topbar-height);padding-right:132px;border-inline:0}.brand-lockup{gap:12px;padding:12px 14px}.brand-logo{width:30px;height:30px}.brand-lockup h1{overflow:hidden;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.brand-lockup p{display:none}.topbar-actions{position:absolute;top:0;right:0;bottom:0;z-index:2;width:auto;gap:8px;padding:10px 12px;border-top:0;border-left:1px solid var(--line);background:#030303f5}.topbar-actions>.button{width:78px;min-height:38px;padding-inline:12px;font-size:.66rem;white-space:nowrap}.menu-trigger{width:38px;height:38px}.menu-panel{right:0}.workspace-grid{border-inline:0;width:100%;max-width:100vw}.side-rail{position:static;z-index:auto}.section-heading{min-height:38px;padding-inline:14px;font-size:.62rem}.project-list{grid-auto-columns:minmax(190px,74vw)}.project-row{min-height:76px}.project-row-main{padding:13px 14px}.project-name{font-size:.82rem}.project-meta{font-size:.6rem}.workbench{min-height:0}.project-head{grid-template-columns:1fr;align-items:start;gap:18px;min-height:0;width:100%;max-width:100vw;padding:18px 14px}.project-head:before{top:0;right:0;bottom:0;left:0;opacity:.16}.project-head:after{background:linear-gradient(180deg,#050505eb,#050505b3)}.content-plane{padding:16px 14px 24px}.tag-row{justify-content:flex-start;max-width:none}.project-title h2{max-width:calc(100vw - 28px);font-size:clamp(1.75rem,9.8vw,2.95rem);line-height:.98}.project-title p{width:100%;max-width:calc(100vw - 28px)}.tabs{overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;min-width:112px;min-height:42px;font-size:.66rem}.field-grid,.record-topline,.image-fields,.image-detail-row,.info-grid{grid-template-columns:1fr}.thumbnail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));min-height:0;overflow:visible}.thumbnail-button,.thumbnail-empty{width:100%;height:auto;min-height:82px;aspect-ratio:4 / 3}.info-row{grid-template-columns:1fr;gap:8px}.upload-heading,.image-section-head,.action-panel,.image-preview-topline{align-items:stretch;flex-direction:column}.image-preview{padding:14px}.image-preview-panel{max-height:calc(100vh - 28px)}.image-preview-panel img{max-height:calc(100vh - 158px)}.info-grid .metric,.info-grid .metric:nth-child(2n),.info-grid .metric:nth-child(3n),.info-grid .metric:nth-last-child(-n+2),.info-grid .metric:nth-last-child(-n+3){border-right:0;border-bottom:1px solid var(--line)}.info-grid .metric:last-child{border-bottom:0}.record-actions,.form-actions{display:grid;grid-template-columns:1fr}.record-action-group{display:grid;grid-template-columns:1fr 1fr}.image-readonly .record-actions{display:flex}}@media(max-width:520px){.topbar-actions{gap:6px;padding-inline:8px}.topbar-actions>.button{width:54px;max-width:54px;padding-inline:9px;overflow:hidden;font-size:0}.topbar-actions>.button:after{content:"New";font-size:.62rem}.topbar-actions>.button{display:none}.menu-new-project{display:inline-flex}.brand-lockup{padding-inline:10px}.brand-lockup h1{max-width:calc(100vw - 194px)}.project-list{grid-auto-columns:minmax(174px,82vw)}.project-meta-row,.tag-row{gap:6px;max-width:min(100%,340px)}.project-meta-row{display:flex;flex-wrap:wrap}.project-meta-row span,.tag,.status-chip{flex:0 1 auto;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;font-size:.58rem}.project-meta-row span{display:inline-flex;width:auto;white-space:normal}.project-title h2{width:min(100%,340px);max-width:min(100%,340px);font-size:clamp(1.85rem,8.4vw,2.25rem);white-space:normal}.project-title p{width:min(100%,340px);max-width:min(100%,340px);display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5}.editor-heading{padding-bottom:16px}.editor-heading h2{font-size:1.45rem}.action-panel,.edit-panel,.upload-panel,.info-panel,.thumbnail-strip,.image-record,.catalog-panel,.json-view{margin-inline:-1px}.thumbnail-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.upload-heading{padding:14px}.drop-zone{min-height:176px;margin:14px}.image-meta-form{padding:14px}.image-detail-row,.info-row{padding:12px}.json-view{min-height:320px;max-height:58vh;padding:12px;font-size:.66rem}.image-preview{padding:8px}.image-preview-panel{max-height:calc(100vh - 16px)}.image-preview-topline{padding:12px}.image-preview-panel img{max-height:calc(100vh - 150px)}.split-actions,.record-action-group{grid-template-columns:1fr}}
