:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:13px;color-scheme:dark;--bg:#151514;--panel:#1e1e1c;--raised:#2b2b28;--input:#252522;--line:#3b3a35;--text:#eeece6;--muted:#b0aaa0;--accent:#dfc6a3;--active:#3d352c;--primary:#cfb48e;--button-text:#29241e;--matte:#161613;--shadow:0 3px 12px #0000001f}
:root[data-theme=light]{color-scheme:light;--bg:#eeece8;--panel:#faf9f6;--raised:#e9e7e2;--input:#fff;--line:#d6d2cc;--text:#302f2b;--muted:#6a6863;--accent:#795c39;--active:#eee4d7;--primary:#795c39;--matte:#dad7d1;--button-text:#fff;--shadow:0 3px 12px #283b5610}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}[hidden]{display:none!important}button,input,select{font:inherit;color:inherit}button{border:1px solid var(--line);border-radius:5px;background:var(--raised);padding:7px 10px;min-height:32px;cursor:pointer;line-height:1.35}button:hover{border-color:var(--muted);background:var(--input)}button:disabled{opacity:.38;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary,button.play{background:var(--primary);border-color:var(--primary);color:var(--button-text)}button.active,button[aria-pressed=true]{border-color:var(--accent);background:var(--active);color:var(--accent)}input,select{background:var(--input);border:1px solid var(--line);border-radius:4px;padding:6px 8px;min-height:32px;min-width:0;max-width:100%;font-variant-numeric:tabular-nums}input[type=checkbox]{min-height:0;accent-color:var(--accent)}input[type=range]{appearance:none;-webkit-appearance:none;padding:0;border:0;background:transparent;min-height:18px;cursor:pointer;touch-action:pan-x;accent-color:var(--accent)}input[type=range]::-webkit-slider-runnable-track{height:3px;background:var(--line);border-radius:3px}input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);margin-top:-4.5px;border:2px solid var(--panel)}input[type=range]::-moz-range-track{height:3px;background:var(--line)}input[type=range]::-moz-range-thumb{height:10px;width:10px;border:2px solid var(--panel);background:var(--accent);border-radius:50%}a{color:inherit;text-decoration:none}label{color:var(--muted);font-size:12px}svg{display:block}button svg{flex:none}
header{display:flex;align-items:center;gap:14px;padding:0 14px;height:52px;flex:none;border-bottom:1px solid var(--line);background:var(--panel)}.brand{font-weight:650;font-size:18px;letter-spacing:.1px;display:flex;align-items:center;gap:9px;white-space:nowrap}.brand svg{width:21px;height:21px;fill:none;stroke:var(--accent);stroke-width:1.3}#project-label{padding-left:14px;border-left:1px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap}.header-actions{display:flex;gap:6px;align-items:center;margin-left:auto}.header-actions button{font-size:12px;background:transparent}.history-actions{display:flex;gap:4px;padding:0 7px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.theme-control{display:flex;align-items:center;gap:5px;margin-left:6px;padding-left:10px;border-left:1px solid var(--line);white-space:nowrap}.theme-control select{min-height:30px;width:72px;font-size:12px;background:var(--raised)}
body.editing{height:100dvh;display:flex;flex-direction:column;overflow:hidden}#workspace{display:flex;flex:1;min-height:0;flex-direction:column}.layout{display:grid;grid-template-columns:minmax(205px,18fr) minmax(280px,24fr) minmax(390px,58fr);gap:8px;padding:8px;flex:1;min-height:0;width:100%;overflow:hidden}.editor-area{display:contents}.library-panel,.guide,.work,.map-panel{border:1px solid var(--line);border-radius:6px;background:var(--panel);min-width:0;min-height:0}.library-panel{grid-column:1;overflow-y:auto;scrollbar-gutter:stable;padding:0 10px 8px}.guide{grid-column:2;padding:0 14px 14px;overflow-y:auto;scrollbar-gutter:stable}.viewports{grid-column:3;display:grid;grid-template-rows:minmax(220px,1.25fr) minmax(190px,1fr);gap:8px;min-width:0;min-height:0}.work{padding:9px;display:flex;flex-direction:column;overflow:hidden}.map-panel{display:flex;flex-direction:column;padding:9px;overflow:hidden}
#steps{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}#steps button{background:transparent;border-color:transparent;min-height:31px;font-size:12px;padding:5px 3px;color:var(--muted)}#steps [aria-current=step]{background:var(--active);color:var(--accent);border-color:var(--line)}.library-section{border-bottom:1px solid var(--line);padding:10px 0}.library-section:last-child{border-bottom:0}.library-section>summary,.scene-library>summary{font-size:13px;font-weight:600;cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px}.library-section>summary:after,.scene-library>summary:after{content:'⌄';font-size:15px;margin-left:auto;color:var(--muted);transform:rotate(-90deg)}details[open]>summary:after{transform:none}.library-section>summary>span,.scene-library>summary>span{font-size:10px;font-weight:400;color:var(--muted);margin-left:auto;white-space:nowrap}.material-grid,.prop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:9px 0}.material-tile{display:flex;flex-direction:column;align-items:center;padding:3px 3px 6px;min-width:0;gap:3px;position:relative;background:var(--raised);font-size:11px;border-radius:4px}.material-tile img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;max-height:62px;background:#bbc3d21c;border-radius:2px}.material-tile svg{height:45px;width:100%;color:var(--muted)}.material-tile>span{white-space:nowrap}.scene-library{margin-top:10px}.scene-library>summary{font-size:11px;color:var(--muted);font-weight:450}.library-note{font-size:10px;color:var(--muted);line-height:1.5;margin:7px 0 0}.people-materials{margin:9px 0}.people-materials b{display:block;font-size:12px;margin-bottom:7px}.people-materials button{width:100%;font-size:11px}.section-entry{display:flex;align-items:center;width:100%;text-align:left;margin-top:8px;background:transparent;font-size:12px}.section-entry span{margin-left:auto;color:var(--muted)}#object-list{margin-top:7px;display:grid;gap:2px}#object-list button{border-color:transparent;background:transparent;display:flex;align-items:center;text-align:left;gap:7px;min-height:30px;font-size:12px;padding:5px 6px}#object-list svg{width:18px;height:18px}#object-list [aria-pressed=true]{background:var(--active);color:var(--accent);border-left-color:var(--accent)}#shots{display:grid;gap:3px;margin-top:8px}.shot{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:6px;min-height:32px;padding:6px;font-size:12px;background:transparent;border-color:transparent}.shot b{font-weight:450}.shot small{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.shot.active{background:var(--active);border-color:var(--line);border-left:2px solid var(--accent);color:var(--accent)}
#step-count,#step-title,#step-help{display:none}.inspector-heading{position:sticky;top:0;padding:13px 0 12px;margin-bottom:12px;background:var(--panel);border-bottom:1px solid var(--line);z-index:1;display:grid;gap:5px}.eyebrow{font-size:10px;letter-spacing:1.2px;color:var(--muted)}.inspector-heading b{font-size:15px;font-weight:600}.guide h2{font-size:13px;font-weight:550;margin:12px 0 8px}#fields>label,.camera-position>label{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;align-items:center;margin:9px 0;font-size:12px;color:var(--muted)}#fields input:not([type=range]),#fields select{width:100%}#fields input[type=number]{text-align:right}.field-label{font-size:12px;color:var(--muted);display:block;margin:12px 0 6px}.camera-position>.field-label{display:none}.tip{font-size:11px;color:var(--muted);line-height:1.65;margin:9px 0}.camera-tabs{display:flex;gap:0;margin:16px 0 8px}.camera-tabs button{flex:1;border-radius:0;min-height:32px;font-size:12px}.camera-tabs button:first-child{border-radius:4px 0 0 4px}.camera-tabs button:last-child{border-radius:0 4px 4px 0}.cam-control{display:grid;grid-template-columns:92px minmax(45px,1fr) 64px;gap:7px;align-items:center;margin:8px 0}.cam-control>label{font-size:11px}.cam-control input[type=number]{text-align:right;padding:6px}.camera-position>.tip{font-size:10px;margin:5px 0}.aim-settings{border:0;border-top:1px solid var(--line);padding:16px 0 0;margin:16px 0 0;min-width:0}.aim-settings legend{float:left;width:100%;font-size:13px;color:var(--text);font-weight:600;padding:0;margin:0 0 9px}.aim-settings>label{display:grid;grid-template-columns:75px 1fr;gap:8px;align-items:center;width:100%;margin:8px 0}.aim-coords{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px 0}.aim-coords label{font-size:10px;display:grid;gap:5px}.aim-settings button,#reset-camera,#reset-position{width:100%;font-size:11px;margin-top:6px}.aim-settings #select-target{background:transparent;border-style:dashed}#reset-camera{margin-top:14px;background:transparent}.step-footer{display:none}#workspace[data-step="4"] .step-footer{display:flex;margin-top:14px}.step-footer #back{display:none}.step-footer #next{width:100%}.summary-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.summary-row span{color:var(--muted)}.summary-row b{font-weight:450}.preset-options{display:grid;gap:7px}.preset-options button{text-align:left;padding:10px;background:transparent}.preset-options b{display:block;font-size:12px;font-weight:550}.preset-options small{display:block;font-size:11px;color:var(--muted);line-height:1.5;margin-top:4px}.reference-notes{font-size:11px;color:var(--muted);line-height:1.6;margin:9px 0}.reference-notes a{text-decoration:underline;text-underline-offset:3px}#position-fields{padding-top:12px;margin-top:12px;border-top:1px solid var(--line)}#workspace:not([data-step="0"]):not([data-step="2"]) .guide #position-fields{display:none}.coords{display:grid;grid-template-columns:1fr 1fr;gap:8px}.coords label{display:grid;gap:5px;font-size:11px}.coords input{width:100%;text-align:right}#position-fields>div:not(.coords)>label{display:grid;grid-template-columns:105px 1fr;align-items:center;gap:8px;margin-top:9px}#delete-prop,#remove-person{margin-top:10px;width:100%;font-size:11px;color:var(--muted)}.route-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}.route-controls button{font-size:11px;padding:7px 5px}.route-controls #table-route{grid-column:1/-1;background:transparent}.route-controls p{grid-column:1/-1;font-size:10px;color:var(--muted);line-height:1.5;margin:4px 0}
.viewer-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;flex:none;padding:0 0 7px}.viewer-top b{font-size:12px;font-weight:550}.viewer-top span{color:var(--muted);font-size:11px;margin-left:9px}.viewer-top>label{display:flex;gap:6px;align-items:center;white-space:nowrap;font-size:11px}.viewer-top select{font-size:11px;min-height:28px;padding:4px 6px;max-width:110px}.mobile-shot-picker{display:none!important}#stage{display:flex;align-items:center;justify-content:center;position:relative;min-height:90px;min-width:0;flex:1;background:var(--matte);border-radius:4px;overflow:hidden}#canvas{flex:none;display:block;box-shadow:var(--shadow);outline:1px solid #ffffff0c}.preview-badge{position:absolute;left:9px;top:9px;font-size:10px;border-radius:3px;padding:5px 7px;color:#d8e1ec;background:#111a26b8;pointer-events:none}#safe{position:absolute;border:1px dashed #657382;display:flex;justify-content:center;align-items:center;pointer-events:none}#safe span{font-size:10px;color:#465a68;background:#d7e0e7aa;padding:3px 5px;border-radius:2px}#load-error{position:absolute;inset:20px;padding:15px;background:var(--panel);color:var(--text);font-size:12px;line-height:1.6}.playbar{display:flex;align-items:center;gap:5px;margin:8px 0 3px;flex:none}.playbar button{font-size:11px;min-height:29px;padding:4px 8px;background:transparent}.playbar #play{border-color:transparent;background:var(--active);color:var(--accent)}#time{margin-left:auto;font-size:11px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}#scrub{width:100%;flex:none;height:18px;margin:0}.below{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:3px}.below #status{max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.below label{font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:3px}
.map-title{display:flex;align-items:center;gap:8px;min-height:27px;margin-bottom:5px;flex:none}.map-title b{font-size:12px;font-weight:550;margin-right:auto}.map-title label{display:flex;align-items:center;gap:3px;font-size:10px;white-space:nowrap}#plan-zoom{font-size:11px;padding:4px 6px;min-height:27px;width:93px}.plan-toolbar{display:flex;gap:7px;align-items:center;flex:none;margin-bottom:5px}.plan-kind{display:flex;gap:4px}.plan-kind button{min-height:27px;padding:4px 8px;font-size:11px;background:transparent}.plan-kind [aria-pressed=true]{background:var(--active);border-color:var(--line);color:var(--accent)}#map-object-picker{display:none;flex:1;min-width:0}#map-object-picker select{width:100%;font-size:12px;min-height:29px;padding:4px 6px}.plan-selection{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted);margin-bottom:6px;flex:none}.plan-selection b{font-weight:450;color:var(--text)}.plan-selection span{font-size:10px}.plan-work{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-height:0;flex:1}.plan-view{display:flex;flex-direction:column;min-width:0;min-height:0}.plan-surface{position:relative;flex:1;min-height:75px;min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--matte);overflow:hidden}#plan-canvas,#map{position:absolute;inset:0;width:100%;height:100%;display:block}#plan-canvas{pointer-events:none}#map{touch-action:none;overflow:hidden}#map [data-handle]{cursor:pointer}#map [data-handle] *{pointer-events:none}#map [data-handle] .handle-plate{pointer-events:auto}#map [data-selected=true]{cursor:grab}#map[data-dragging=true] [data-selected=true]{cursor:grabbing}#plan-directions{font-size:9px;color:var(--muted);text-align:center;flex:none;padding:4px 0 0;pointer-events:none}#map-help{display:none}.plan-properties{display:none;min-width:0}.map-panel:has(.plan-selection[data-kind=camera]) .plan-work,.map-panel:has(.plan-selection[data-kind=target]) .plan-work{grid-template-columns:minmax(0,1fr) 120px}.map-panel:has(.plan-selection[data-kind=camera]) .plan-properties,.map-panel:has(.plan-selection[data-kind=target]) .plan-properties{display:block}#plan-camera-summary h3{font-size:11px;font-weight:550;color:var(--muted);margin:0 0 5px}#plan-camera-summary .summary-row{font-size:11px;padding:8px 0}.plan-properties #plan-adjust-camera{font-size:10px;padding:5px;min-height:28px;margin-top:8px;width:100%;background:transparent}.legend,.note{display:none}
.ad-slot{display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);background:var(--panel);padding:6px 14px;flex:none;min-height:45px;font-size:11px;color:var(--muted)}.ad-label{padding-right:16px;border-right:1px solid var(--line);font-size:10px}.autosave{display:flex;align-items:center;gap:6px;font-size:10px}.autosave i{width:5px;height:5px;border-radius:50%;background:#789d8b}#footer-duration{margin-left:auto;font-variant-numeric:tabular-nums;font-size:11px}.footer-actions{display:flex;gap:7px}.footer-actions button{font-size:11px;min-height:30px;padding:5px 13px}.editor-tabs,.mobile-view-switch,#mobile-export{display:none}
dialog{width:min(560px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:26px;box-shadow:0 25px 80px #0007}dialog::backdrop{background:#070c146b;backdrop-filter:blur(4px)}dialog h2{font-size:24px;letter-spacing:-.5px;margin:10px 0 18px;font-weight:550}.close{position:absolute;top:13px;right:13px;border:0;background:transparent;font-size:22px;padding:0;min-width:30px}.export-info{font-size:12px;line-height:1.75;padding:12px;background:var(--raised);border-radius:5px;color:var(--muted)}#export-summary{font-size:12px}#export-result{font-size:12px;line-height:1.6;margin:14px 0}#export-preview{width:100%;max-height:330px;background:#111820;border-radius:4px}#video-download{display:block;font-size:12px;color:var(--accent);margin:12px 0}.dialog-actions{display:flex;gap:8px;margin-top:15px}.dialog-actions button{flex:1;font-size:12px}.close:hover{background:var(--raised)}#toast{position:fixed;bottom:60px;left:50%;transform:translateX(-50%);z-index:20;max-width:90vw;background:var(--raised);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow);padding:10px 15px;border-radius:6px;font-size:12px;display:none}
#welcome{max-width:1050px;margin:auto;padding:55px 25px}.intro .eyebrow{display:block;color:var(--accent)}.intro{display:grid;grid-template-columns:1.15fr 1fr;gap:20px}.intro .eyebrow{grid-column:1/-1}.intro h1{font-size:40px;line-height:1.3;letter-spacing:-1.3px;font-weight:550;margin:0 0 25px}.intro p{font-size:14px;line-height:1.9;color:var(--muted);margin:0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:18px}.choice{text-align:left;padding:18px;background:var(--panel);border-radius:9px}.choice:hover{border-color:var(--accent)}.art{height:150px;border-radius:5px;background:var(--raised);display:flex;align-items:center;justify-content:center;gap:28px;margin-bottom:15px}.product-art .bottle{width:40px;height:88px;border-radius:6px;background:#c5cedb;position:relative}.product-art .bottle:before{content:'';position:absolute;top:-13px;left:9px;width:22px;height:13px;background:#8e9bae;border-radius:3px}.product-art .box{width:62px;height:73px;background:#e3e9f2;transform:skewY(-5deg)}.art i{font-style:normal;font-size:28px;color:var(--muted)}.people-art>span{font-size:75px;color:#c5cedb}.people-art>span:last-child{color:#7d8ba2}.tag{font-size:10px;color:var(--muted)}.choice h2{font-size:21px;font-weight:550;margin:9px 0}.choice p{font-size:12px;color:var(--muted)}.choice strong{display:block;margin-top:20px;color:var(--accent);font-weight:450;font-size:12px}.footnote{font-size:11px;color:var(--muted);line-height:1.6;margin-top:20px}
@media(min-width:1500px){.layout{grid-template-columns:minmax(230px,18fr) minmax(320px,24fr) minmax(500px,58fr)}.prop-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.material-tile img{max-height:72px}.guide{padding:0 18px 16px}}
@media(max-width:1100px),(max-height:500px){
 header{height:auto;min-height:44px;padding:7px 10px;gap:5px;flex-wrap:wrap}.brand{font-size:16px;min-height:27px}.brand svg{width:18px;height:18px}#project-label{display:none}.header-actions{margin-left:auto;gap:4px}.header-actions button{padding:5px 7px;min-height:30px;font-size:11px}.history-actions{padding:0 4px}.theme-control{padding-left:6px;margin-left:3px;font-size:10px}.theme-control select{width:64px;min-height:30px;padding:4px}
 .mobile-view-switch{display:flex;flex:none;gap:5px;padding:4px 8px;border-bottom:1px solid var(--line);background:var(--panel)}.mobile-view-switch button{flex:1;min-height:33px;padding:5px;border:0;background:transparent;font-size:12px}.mobile-view-switch [aria-pressed=true]{color:var(--accent);background:var(--active)}
 .layout{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}.editor-area{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1;overflow:auto;background:var(--panel)}.library-panel,.guide{border:0;border-radius:0;overflow:visible;min-height:auto;flex:none;padding:0 10px 10px;scrollbar-gutter:auto}.library-panel{padding-bottom:0}.library-panel>#steps{display:flex;position:sticky;top:0;z-index:2;background:var(--panel);gap:3px;padding:5px 0;border-bottom:0}.library-panel #steps button{flex:1;min-height:31px;font-size:11px;padding:4px 3px}.library-panel>.library-section{display:none}#workspace[data-step="0"][data-panel="settings"] .library-panel>.library-section:first-of-type{display:block;border:0;padding:6px 0}.material-grid{margin:6px 0;gap:6px}.material-grid .material-tile{flex-direction:row;justify-content:center;padding:5px;min-height:48px;gap:5px;font-size:11px}.material-grid img{width:42px;height:36px;background:transparent}.material-grid svg{width:24px;height:32px}.prop-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.prop-grid img{max-height:50px}.scene-library{margin-top:5px}.scene-library>summary{min-height:30px;font-size:11px}.library-section>summary{font-size:12px}.library-section>summary>span{display:none}.library-note{font-size:10px}.people-materials{display:flex;align-items:center;gap:8px;margin:4px 0}.people-materials b{flex:1;margin:0}.people-materials button{width:auto;font-size:11px}
 .editor-tabs{display:flex;flex:none;padding:4px 8px;gap:5px;background:var(--panel);border-bottom:1px solid var(--line);order:-1}.editor-tabs button{flex:1;font-size:11px;min-height:32px;padding:5px;background:transparent}.editor-tabs [aria-pressed=true]{color:var(--accent);background:var(--active);border-color:var(--line)}
 .inspector-heading{position:static;padding:9px 0;margin-bottom:8px}.inspector-heading .eyebrow{display:none}.inspector-heading b{font-size:13px}.guide{padding-bottom:16px}.guide .tip{font-size:10px;line-height:1.5;margin:6px 0}#fields>label,.camera-position>label{grid-template-columns:100px 1fr;margin:8px 0;font-size:12px}input,select{font-size:16px;min-height:36px}.cam-control{grid-template-columns:90px minmax(45px,1fr) 72px}.cam-control label{font-size:11px}.cam-control input[type=number]{font-size:16px}.camera-tabs{margin-top:12px}.camera-tabs button{min-height:36px}.aim-settings{padding-top:12px;margin-top:12px}.aim-coords label{font-size:11px}.aim-settings button,#reset-camera,#reset-position{min-height:36px}.route-controls p{display:none}.route-controls button{min-height:36px}.coords input{text-align:left}.guide #position-fields>.field-label{font-size:11px}#workspace[data-panel="map"] .guide{display:none}#workspace[data-panel="map"] .editor-area{flex:none;overflow:visible}.viewports{display:none;flex:1;min-height:0;grid-column:auto;grid-template-rows:none;gap:0}.work,.map-panel{border:0;border-radius:0;flex:1}.work{display:none}.map-panel{display:none;padding:7px 10px 12px;overflow:auto}.map-panel .plan-work{display:block!important;flex:none}.map-panel .plan-view{display:block}.plan-surface{aspect-ratio:4/3;min-height:0;height:auto;flex:none;width:100%}.plan-toolbar .plan-kind button{min-height:33px;font-size:11px}.map-title b{font-size:12px}#plan-zoom{min-height:30px;font-size:11px;width:84px}.map-title{margin-bottom:5px}.plan-toolbar{margin-bottom:5px}#map-object-picker{display:block}#map-object-picker select{font-size:13px;min-height:33px}.plan-selection{font-size:11px;margin:2px 0 6px}.plan-selection span{display:none}.plan-properties{display:block!important}#plan-directions{font-size:9px;padding-top:4px}.plan-properties #position-fields{margin-top:9px;padding-top:9px}.plan-properties #position-fields>.field-label{display:none}#plan-camera-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:10px;margin-top:8px}#plan-camera-summary h3{margin:0;font-size:10px}#plan-camera-summary .summary-row{gap:6px;padding:0;border:0;font-size:10px}#plan-adjust-camera{display:none!important}.legend,.note{display:none}
 #workspace[data-view="edit"][data-panel="map"] .viewports{display:flex}#workspace[data-view="edit"][data-panel="map"] .map-panel{display:block}#workspace[data-view="preview"] .editor-area{display:none}#workspace[data-view="preview"] .viewports{display:flex}#workspace[data-view="preview"] .map-panel{display:none}#workspace[data-view="preview"] .work{display:flex;padding:7px 10px 10px}.mobile-shot-picker{display:flex!important}.viewer-top>div{display:none}.viewer-top select{min-height:32px;font-size:12px;max-width:135px}#stage{flex:1;min-height:60px}.below{display:none}.playbar{margin-top:8px;gap:6px}.playbar button{font-size:12px;min-height:34px;padding:5px 9px}.playbar #mobile-export{display:block;margin-left:auto;background:var(--primary);color:var(--button-text);border-color:var(--primary)}#time{font-size:10px}#scrub{height:25px;min-height:25px;margin-top:3px}
 .ad-slot{min-height:27px;padding:4px 10px;gap:9px;font-size:9px}.ad-label{font-size:9px;padding-right:8px}.autosave{font-size:9px}#footer-duration{font-size:9px}.footer-actions{display:none}.ad-slot .autosave i{width:4px;height:4px}.editor-tabs{order:0}.library-panel{order:-1}dialog{padding:20px}.export-info{font-size:11px}#welcome{padding:35px 20px}.intro{grid-template-columns:1fr;gap:12px}.intro h1{font-size:32px;margin-bottom:0}.intro p{font-size:13px;margin-bottom:20px}.choices{gap:10px}.choice{padding:12px}.choice h2{font-size:17px}.art{height:110px;gap:12px}.art i{font-size:22px}.people-art>span{font-size:60px}.product-art .box{width:42px;height:58px}.product-art .bottle{width:30px;height:68px}.product-art .bottle:before{left:6px;width:18px;height:11px;top:-11px}
}
@media(max-width:600px){header{padding:6px 8px;gap:4px}.brand{width:calc(100% - 103px);height:24px}.header-actions{display:contents}.header-actions>button,.history-actions>button{order:1;flex:1;min-height:30px;font-size:11px;padding:5px 3px}.history-actions{display:contents}.theme-control{order:0;margin-left:auto;border:0;padding:0;gap:4px}.theme-control select{width:62px}.choices{grid-template-columns:1fr}.intro h1 br{display:none}.choice .art{height:110px}.choice strong{margin-top:12px}.material-grid img{width:33px;height:33px}.material-tile span{font-size:10px}.map-panel .route-controls{gap:5px}.playbar{flex-wrap:wrap}#mobile-export{font-size:11px!important;padding:5px 8px!important}.ad-slot .autosave{display:none}.scene-library .prop-grid{gap:4px}#position-fields>div:not(.coords)>label{font-size:11px}.plan-properties #position-fields{border-top:0;padding-top:0}}
@media(max-height:500px) and (min-width:601px){.plan-surface{aspect-ratio:3/1}.ad-slot{min-height:22px}.mobile-view-switch button{min-height:28px}.mobile-view-switch{padding:3px 8px}.playbar button{min-height:28px;font-size:11px}.viewer-top{min-height:25px}.viewer-top select{min-height:26px}.map-panel{padding-top:4px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

/* Asset tiles remain compact so objects, actions and shots stay reachable. */
@media(min-width:1101px) and (min-height:501px){.prop-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.prop-grid .material-tile{font-size:10px;padding:2px 2px 4px;gap:2px}.prop-grid .material-tile img{max-height:44px}.prop-grid .material-tile span{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis}#object-list{max-height:160px;overflow:auto;scrollbar-gutter:stable}.library-section{padding:9px 0}}
.material-tile img{background:#596b8540}:root[data-theme=dark] .material-tile img{background:#41516b45}

.path-points{margin:4px 0}.path-points summary{font-size:11px;color:var(--muted);cursor:pointer;padding:6px;display:flex;gap:6px}.path-points summary span{margin-left:auto}.path-points button{width:100%}.path-points button+button{margin-top:2px}

@media(max-width:1100px),(max-height:500px){#workspace[data-view="edit"][data-panel="map"] .map-panel:has(.plan-selection[data-kind=camera]),#workspace[data-view="edit"][data-panel="map"] .map-panel:has(.plan-selection[data-kind=target]){display:flex}.map-panel:has(.plan-selection[data-kind=camera]) .plan-work,.map-panel:has(.plan-selection[data-kind=target]) .plan-work{display:flex!important;flex-direction:column;flex:1;min-height:190px}.map-panel:has(.plan-selection[data-kind=camera]) .plan-view,.map-panel:has(.plan-selection[data-kind=target]) .plan-view{display:flex;flex-direction:column;flex:1;min-height:160px}.map-panel:has(.plan-selection[data-kind=camera]) .plan-surface,.map-panel:has(.plan-selection[data-kind=target]) .plan-surface{aspect-ratio:auto;flex:1;min-height:160px}.map-panel:has(.plan-selection[data-kind=camera]) .plan-properties,.map-panel:has(.plan-selection[data-kind=target]) .plan-properties{flex:none}}

.guide #position-fields>.field-label{display:none}.guide:has(#fields:empty) #position-fields{border-top:0;padding-top:0;margin-top:0}
/* Desktop category sections already provide navigation; keep all three shots in reach. */
@media(min-width:1101px) and (min-height:501px){.library-panel>#steps{display:none}.library-section{padding:7px 0}.library-section .prop-grid .material-tile img{max-height:36px}}

/* One coherent element manager. Source search is separate from scene contents. */
#object-list{max-height:none;overflow:visible;display:flex;flex-direction:column;gap:5px}
.scene-element{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--raised)}
.scene-element:has([data-object][aria-pressed=true]){border-color:var(--accent);background:var(--active)}
.scene-element [data-object]{display:flex;align-items:center;gap:9px;flex:1;min-width:0;border:0;border-radius:0;background:transparent;padding:6px;text-align:left;color:var(--text)}
.scene-element [data-object][aria-pressed=true]{color:var(--accent)}
.scene-element img,.scene-element svg{width:42px;height:36px;object-fit:contain;flex:none;background:#77777720;border-radius:3px}
.scene-element span{min-width:0}.scene-element b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.scene-element small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.scene-element [data-remove]{width:30px;padding:0;border:0;border-radius:0;color:var(--muted);font-size:18px;background:transparent}.scene-element [data-remove]:hover{color:#d89079;background:#d890791c}
.add-material{width:100%;margin-top:9px;border-style:dashed;color:var(--accent);background:transparent}.scene-empty{font-size:12px;color:var(--muted);padding:15px 0;line-height:1.8;text-align:center}.element-section .library-note{margin:7px 0 0;font-size:10px;line-height:1.6}
/* Fixed asset picker: 18 slots, no nested scroll, consistent card anatomy. */
#material-dialog{width:min(900px,calc(100% - 32px));height:min(680px,calc(100dvh - 32px));max-height:none;padding:20px;overflow:hidden;box-sizing:border-box}
#material-dialog[open]{display:flex;flex-direction:column;gap:0}
#material-dialog>h2{font-size:20px;line-height:26px;margin:0 0 12px;flex:none}
.material-search{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:9px;flex:none}
.material-search input{width:100%;min-width:0}
#material-count{height:20px;line-height:20px;margin:5px 0;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#material-results{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;flex:1;min-height:0;max-height:none;overflow:hidden;padding:2px}
#material-results .material-tile{display:grid;grid-template-rows:minmax(0,1fr) 16px 28px 12px;gap:3px;padding:7px;min-height:0;height:100%;width:100%;min-width:0;align-items:stretch;justify-content:normal;overflow:hidden;text-align:center}
#material-results .material-preview{display:block;min-height:0;min-width:0;width:100%;height:100%;overflow:hidden;background:#62605b;border-radius:3px}
:root[data-theme=dark] #material-results .material-preview{background:#343430}
#material-results .material-preview img,#material-results .material-preview svg{display:block;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain;margin:0;background:transparent;color:var(--muted)}
#material-results .material-name{display:block;font-size:11px;line-height:16px;width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#material-results .material-capability{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;height:28px;font-size:10px;line-height:14px;white-space:normal;word-break:normal;color:var(--muted)}
#material-results .material-author{display:block;height:12px;font-size:9px;line-height:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#material-results>.scene-empty{grid-column:1/-1;grid-row:1/-1;display:grid;place-content:center;margin:0;padding:0}
.material-pages{display:flex;justify-content:center;align-items:center;gap:16px;height:32px;margin-top:12px;flex:none}
.material-pages button{height:32px;min-height:0;padding:5px 12px;font-size:12px}.material-pages span{font-size:12px;color:var(--muted);min-width:48px;text-align:center}
#material-loading{height:20px;min-height:20px;line-height:20px;color:var(--accent);font-size:12px;margin:6px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}
#material-dialog>.library-note:not(#material-count){font-size:10px;line-height:16px;margin:10px 0 0;flex:none}#material-dialog .library-note a{color:var(--accent)}

.material-tile img,:root[data-theme=dark] .material-tile img{background:#77777720}

:root[data-theme=light] .material-tile img,:root[data-theme=light] .scene-element img{background:#62605b}:root[data-theme=dark] .material-tile img,:root[data-theme=dark] .scene-element img{background:#343430}

/* Unified scene creation: one primary action, optional starting content. */
body:not(.editing) #switch{display:none}#welcome{max-width:1060px;padding:64px 28px}.scene-start{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:38px;box-shadow:var(--shadow)}.scene-start h1{font-weight:550;font-size:34px;letter-spacing:-1px;margin:14px 0}.scene-start>p{line-height:1.9;color:var(--muted);font-size:14px}.scene-start-actions{display:flex;align-items:center;gap:12px;margin:28px 0}.scene-start-actions button{padding:12px 23px;font-size:14px}.scene-start-actions span{font-size:12px;color:var(--muted);margin-left:auto}.optional-templates{border-top:1px solid var(--line);padding-top:18px}.optional-templates>summary{font-size:13px;color:var(--muted);cursor:pointer;list-style:none}.optional-templates>summary:after{content:'＋';float:right}.optional-templates[open]>summary:after{content:'−'}.template-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.template-options>label{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:7px;padding:16px;cursor:pointer;background:var(--raised)}.template-options>label:has(:checked){border-color:var(--accent);background:var(--active)}.template-options input{margin-top:3px;accent-color:var(--accent)}.template-options b{display:block;color:var(--text);font-size:13px}.template-options small{display:block;font-size:11px;line-height:1.7;margin-top:6px}.template-note{color:var(--muted);font-size:11px;line-height:1.7;margin:14px 0 0}.scene-start .footnote{font-size:11px;margin:26px 0 0}.scene-timing{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.scene-timing summary{font-size:12px;color:var(--muted);cursor:pointer;margin-bottom:12px}.scene-timing label{display:grid;grid-template-columns:1fr 100px;align-items:center;gap:12px;margin:8px 0}.scene-timing input{width:100%;text-align:right}.action-context{font-size:12px;color:var(--muted);line-height:1.7;padding:10px;background:var(--raised);border-radius:5px;margin:0 0 14px}.action-context b{color:var(--accent)}

.route-point-tabs{display:flex;gap:5px;margin:0 0 10px}.route-point-tabs button{flex:1;font-size:12px;padding:6px}.shape-details{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.shape-details summary{font-size:11px;color:var(--muted);cursor:pointer}.shape-details label{display:grid;grid-template-columns:100px 1fr;gap:9px;align-items:center;margin:9px 0}.shape-details input{width:100%;text-align:right}.action-context{padding:7px 9px;font-size:11px;margin-bottom:10px}.route-controls #table-route{min-height:30px}.scene-timing{margin-top:12px;padding-top:12px}

body:not(.editing) #project-label{display:none}

.element-mode-tabs{display:flex;gap:4px;margin:0 0 12px}.element-mode-tabs button{flex:1;font-size:12px;background:transparent}.element-mode-tabs [aria-pressed=true]{background:var(--active);border-color:var(--accent);color:var(--accent)}



@media(max-height:650px){#material-results{grid-template-rows:repeat(2,minmax(0,1fr))}}

/* Selection scopes: object, shot, and whole video. */
.video-section .section-entry{display:grid;gap:5px;padding:9px;text-align:left}.video-section .section-entry b{font-size:12px;font-weight:450}.video-section .section-entry small{font-size:11px;color:var(--muted)}
.shot small{display:grid;gap:3px;text-align:right}.shot small strong{font-size:11px;font-weight:500;color:var(--text)}
.shot-range{font-size:11px;color:var(--muted);padding-bottom:12px;margin:4px 0 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
#video-duration{font-size:18px;font-weight:550;font-variant-numeric:tabular-nums}#video-export{width:100%;margin-top:16px;font-size:12px}
@media(max-width:1100px),(max-height:500px){.library-panel>.library-section{display:block}.library-panel>.video-section{display:block}}

.shot-row{display:grid;grid-template-columns:minmax(0,1fr) 26px;gap:2px;align-items:center}.shot-row .shot{width:100%;min-width:0}.delete-shot{padding:3px;min-height:30px;border-color:transparent;background:transparent;color:var(--muted);font-size:16px}.delete-shot:hover:enabled{color:var(--text);background:var(--active)}#add-shot{margin-top:7px}

.camera-mode-field{display:grid;gap:5px;margin-top:9px;font-size:11px;color:var(--muted)}.camera-mode-field select{width:100%;min-height:32px;font-size:12px}.whole-shot{grid-template-columns:minmax(0,1fr)}.transition-panel{padding:10px;margin-bottom:12px;border:1px solid var(--line);border-radius:5px;background:var(--raised)}.transition-panel>label{margin-bottom:6px}.transition-panel p{font-size:11px;line-height:1.5;margin:6px 0}.transition-panel small{display:block;margin-top:6px;font-size:10px;color:var(--muted);line-height:1.5}.transition-panel button{width:100%;font-size:11px}.transition-panel.has-warning{border-color:#a47839}.cut-warning{font-size:10px;font-style:normal;color:#ae792e}
/* Desktop editing workspace: spatial transforms and time share one scene clock. */
@media(min-width:1101px) and (min-height:501px){
 .layout{grid-template-columns:minmax(175px,16fr) minmax(245px,23fr) minmax(610px,61fr)}
 .viewports{grid-template-columns:minmax(190px,.8fr) minmax(350px,1.2fr);grid-template-rows:minmax(0,1fr) 184px}
 .work{grid-column:1;grid-row:1}.map-panel{grid-column:2;grid-row:1;padding:8px}
 .viewer-top{flex-wrap:wrap}.viewer-top span{margin-left:5px}.playbar{flex-wrap:wrap}#time{width:100%;margin:1px 0;font-size:10px}.below #status{display:none}
 .map-panel .plan-work,.map-panel:has(.plan-selection[data-kind]) .plan-work{display:flex!important;flex:1;min-height:90px;grid-template-columns:none}
 .map-panel .plan-view{flex:1;min-height:0}.map-panel .plan-properties{display:none!important}
 .viewports[data-space=wide]{grid-template-columns:1fr}.viewports[data-space=wide]>.work{display:none}.viewports[data-space=wide]>.map-panel{grid-column:1/-1}
 .viewports[data-space=full]>.map-panel{position:fixed;inset:57px 8px 236px;z-index:30;box-shadow:0 0 0 100vmax #0009}
 .viewports[data-space=full]>#timeline{position:fixed;left:8px;right:8px;bottom:45px;height:184px;z-index:31}
}
.map-title{gap:5px}.map-title select{font-size:10px;padding:3px 4px;min-height:26px;width:auto}.map-title b{white-space:nowrap}.spatial-tools{display:flex;align-items:center;gap:3px;flex-wrap:wrap;flex:none;margin-bottom:5px}.spatial-tools button,.plan-kind button{font-size:10px;min-height:26px;padding:3px 6px}.spatial-tools button[aria-pressed=true]{background:var(--active);color:var(--accent)}.spatial-tools i{flex:1}.spatial-tools output{font-size:9px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:44px;text-align:center}.plan-toolbar{gap:4px;flex-wrap:wrap}.plan-kind{gap:3px}.trajectory-toggle{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--muted);margin-left:auto}.plan-selection{margin-bottom:4px;min-height:16px;flex-wrap:wrap;gap:2px}.plan-selection b{font-size:10px}.plan-selection span{font-size:9px}.plan-surface{min-height:90px;outline:none}.plan-surface:focus{border-color:var(--accent)}#map [data-handle] .handle-plate{pointer-events:auto}#map [data-selected=true]{cursor:move}.plan-surface[data-tool=pan] #map,.plan-surface[data-tool=pan] #map *{cursor:grab!important}.object-label{font-size:10px;paint-order:stroke;stroke:var(--panel);stroke-width:3px;font-weight:550}.view-label{font-size:10px;fill:var(--text);paint-order:stroke;stroke:var(--panel);stroke-width:3px}.path-label{font-size:9px;fill:var(--accent);paint-order:stroke;stroke:var(--panel);stroke-width:3px}#plan-directions{display:none}.spatial-help{font-size:9px;line-height:1.4;margin:5px 0 0;flex:none;color:var(--muted)}#spatial-inspector{flex:none;padding-top:7px;margin-top:6px;border-top:1px solid var(--line)}#spatial-inspector>b,.spatial-edge b{font-size:10px;font-weight:550}#spatial-inspector small{font-size:10px;color:var(--muted)}.spatial-edge{display:flex;align-items:center;gap:4px;margin-bottom:4px}.spatial-edge b{margin-right:auto}.spatial-edge button{font-size:10px;min-height:23px;padding:2px 7px}.spatial-edge button[aria-pressed=true]{background:var(--active);color:var(--accent)}.spatial-coordinates{display:flex;flex-direction:column;gap:3px}.spatial-coordinates label{display:grid;grid-template-columns:13px minmax(40px,1fr) 62px;gap:5px;align-items:center;font-size:10px;margin:0}.spatial-coordinates input[type=number]{min-height:25px;height:25px;padding:3px 4px;font-size:11px}.spatial-coordinates input[type=range]{min-height:18px;height:18px;padding:0;width:100%;margin:0;accent-color:var(--accent)}
#timeline{grid-column:1/-1;grid-row:2;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;background:var(--panel);min-width:0;min-height:0;overflow:hidden;outline:none}#timeline:focus-within{border-color:var(--accent)}.timeline-top{display:flex;align-items:center;gap:5px;padding:6px 8px;border-bottom:1px solid var(--line);flex:none;height:35px;font-size:10px}.timeline-top b{font-size:11px;white-space:nowrap}.timeline-top label{display:flex;align-items:center;gap:3px;white-space:nowrap}#frame-jump{width:57px;min-height:24px;height:24px;font-size:11px;padding:2px 4px}.timeline-top button{min-height:24px;height:24px;font-size:10px;padding:2px 6px}.timeline-top #timeline-out{margin-left:auto}#timeline-fps,#timeline-zoom-label{font-size:9px;white-space:nowrap;color:var(--muted)}#timeline-hint{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:36%}#timeline-scroll{flex:1;overflow:auto;min-height:0;position:relative;touch-action:none;scrollbar-width:thin}.timeline-content{position:relative;min-height:100%}.timeline-row{display:flex;height:28px;border-bottom:1px solid var(--line)}.track-name{width:112px;min-width:112px;position:sticky;left:0;z-index:3;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:7px 8px;border-right:1px solid var(--line);background:var(--panel)}.track-lane{position:relative;flex:none;background:repeating-linear-gradient(90deg,transparent 0px,transparent 49px,#88888808 50px);overflow:hidden}.ruler{height:25px;position:sticky;top:0;z-index:4;background:var(--panel)}.timeline-tick{position:absolute;bottom:0;height:9px;border-left:1px solid var(--line);font-size:8px;padding-left:3px;color:var(--muted);white-space:nowrap}.timeline-tick.major{height:21px;color:var(--text);border-color:var(--muted)}.timeline-clip,.timeline-action{position:absolute;top:3px;height:21px;min-height:0;min-width:2px;margin:0;border-radius:3px;font-size:9px;padding:2px 7px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--active);color:var(--accent);border-color:var(--line)}.timeline-clip.active{border-color:var(--accent)}.timeline-action{background:#8a9b8a22;color:var(--text)}.timeline-action.still{background:#8888880b;color:var(--muted)}.clip-length{margin-left:6px;opacity:.7}.timeline-clip i{position:absolute;right:0;top:0;bottom:0;width:7px;cursor:ew-resize;background:var(--accent);opacity:.4}#timeline-playhead{position:absolute;top:0;bottom:0;width:1px;background:var(--accent);pointer-events:none;z-index:5}#timeline-playhead:before{content:'';position:absolute;top:0;left:-4px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:7px solid var(--accent)}
@media(max-width:1100px){#timeline{display:none}}
.timeline-action.active{border-color:var(--accent);background:var(--active)}
.spatial-coordinates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.spatial-coordinates label{grid-template-columns:12px minmax(0,1fr);gap:2px 3px}.spatial-coordinates input[type=number]{grid-column:2;grid-row:1;width:100%}.spatial-coordinates input[type=range]{grid-column:1/-1;grid-row:2}.spatial-help{white-space:normal}
#timeline-play{background:var(--active);color:var(--accent);min-width:27px}#timeline-hint{max-width:24%}
@media(min-width:1101px) and (min-height:501px){.work .playbar>button{display:none}}
/* Compact desktop toolbars: icon actions have native titles and accessible names. */
.icon-button{display:inline-flex!important;align-items:center;justify-content:center;flex:none;min-width:29px;width:29px;height:29px;min-height:29px;padding:5px!important;gap:0}.icon-button svg{width:17px;height:17px;display:block;flex:none}.header-actions>.icon-button,.history-actions>.icon-button{width:31px;min-width:31px;height:31px}.theme-control{display:flex;gap:2px;padding-left:8px}.theme-control button{background:transparent}.space-size-switch{display:flex;gap:2px;border-left:1px solid var(--line);padding-left:5px}.space-size-switch button{min-height:26px;height:26px;width:27px;min-width:27px}.space-size-switch svg{width:16px;height:16px}
.map-title{justify-content:flex-start;min-height:27px;margin-bottom:4px}.map-title b{margin-right:2px}.map-title .space-size-switch{margin-left:0}.map-title>label{margin-left:auto}.spatial-tool-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 7px;margin-bottom:4px;flex:none}.spatial-tools{display:flex;align-items:center;gap:3px;flex-wrap:nowrap;margin:0}.spatial-tools i{display:none}.plan-toolbar{display:flex;align-items:center;gap:5px;margin:0;flex-wrap:nowrap}.plan-kind{gap:2px}.trajectory-toggle{margin-left:0;white-space:nowrap}.spatial-tools .icon-button,.plan-kind .icon-button{height:26px;min-height:26px;min-width:26px;width:26px}.spatial-tools output{min-width:42px}.plan-selection{margin:0 0 4px;min-height:15px;justify-content:flex-start;gap:7px}.plan-selection span{font-size:9px}.spatial-help{margin-top:4px}.timeline-top .icon-button{width:25px;min-width:25px;height:24px;min-height:24px;padding:4px!important}.timeline-top .icon-button svg{width:15px;height:15px}.timeline-top{gap:4px}#timeline-hint{max-width:28%}
.timeline-action:not(.still){cursor:grab;padding-left:10px;padding-right:10px;user-select:none}.timeline-action:active{cursor:grabbing}.timeline-action [data-action-edge]{position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize;background:var(--accent);opacity:.65}.timeline-action [data-action-edge=start]{left:0}.timeline-action [data-action-edge=end]{right:0}.timeline-action [data-action-edge]:hover{opacity:1}.timeline-action.still{cursor:default}.timeline-boundary{position:absolute;top:25px;bottom:0;border-left:1px dashed var(--muted);opacity:.35;pointer-events:none;z-index:1}.action-time-fields{border:1px solid var(--line);border-radius:5px;margin:10px 0;padding:8px}.action-time-fields legend{font-size:11px;color:var(--muted)}.action-time-fields>label{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:6px;margin:5px 0}.action-time-fields input{min-height:29px;padding:4px 6px;font-size:12px}
.icon-button[hidden]{display:none!important}
@media(min-width:1101px) and (min-height:501px){.work .playbar>button{display:none!important}}
/* Four synchronized views: one realtime camera and three orthographic edit panes. */
@media(min-width:1101px) and (min-height:501px){
 .layout{grid-template-columns:minmax(175px,16fr) minmax(245px,23fr) minmax(660px,61fr)}
 .viewports{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 154px}
 .viewports>.map-panel{grid-column:1;grid-row:1;padding:7px;position:relative;inset:auto;box-shadow:none}
 .viewports>.map-panel>.plan-selection{order:4;margin:5px 0 0;min-height:13px}
 .viewports>.map-panel>#spatial-inspector{order:5;padding-top:4px;margin-top:3px}
 .viewports>.map-panel>.spatial-help{order:6;margin-top:2px}
 .map-title{order:0;gap:5px}.map-title>#spatial-view,.map-title>.space-size-switch{display:none!important}
 .map-title>label:has(#ratio){margin-left:3px;display:flex;gap:4px;align-items:center;font-size:10px}
 .map-title>#frame-lock{margin-left:auto;font-size:10px;color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}
 .map-title>label:last-child{margin-left:3px}
 .map-title select{max-width:112px}.spatial-tool-row{order:1;margin-bottom:5px;gap:3px 8px}.spatial-tool-row .trajectory-toggle{font-size:9px}
 .quad-stage{order:2;position:relative;flex:1;min-height:150px;isolation:isolate}
 .map-panel .plan-work,.map-panel:has(.plan-selection[data-kind]) .plan-work{position:absolute;inset:0;display:flex!important;min-height:0;gap:0}
 .map-panel .plan-view{min-height:0}.plan-surface{min-height:0;border:0;border-radius:0;background:var(--panel);overflow:hidden}
 .quad-stage>.work{position:absolute;left:0;top:0;width:calc((100% - 6px)/2);height:calc((100% - 6px)/2);z-index:2;padding:0;border-radius:4px;box-shadow:none}
 .work>.viewer-top{height:28px;min-height:28px;padding:2px 4px 2px 7px;flex-wrap:nowrap;gap:3px;border-bottom:1px solid var(--line);background:var(--raised)}
 .viewer-top>div:first-child{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden}.viewer-top b{font-size:10px;white-space:nowrap}.viewer-top span{font-size:9px;margin:0;white-space:nowrap;color:var(--muted)}
 .pane-actions{display:flex;gap:1px;align-items:center;flex:none;margin-left:auto}.pane-actions .icon-button{height:23px;min-height:23px;width:23px;min-width:23px;padding:4px!important;background:transparent;border-color:transparent}.pane-actions .icon-button svg{width:14px;height:14px}
 .work>#stage{border-radius:0;min-height:0;flex:1}.preview-badge{display:none}.work>.playbar,.work>#scrub,.work>.below{display:none!important}
 #pane-heads{position:absolute;inset:0;pointer-events:none}.spatial-pane-head{position:absolute;display:flex;align-items:center;justify-content:space-between;height:29px;padding:2px 4px 2px 7px;background:var(--raised);border:1px solid var(--line);border-radius:4px 4px 0 0;pointer-events:none}.spatial-pane-head b{font-size:10px;font-weight:550}.spatial-pane-head button{pointer-events:auto}
 .viewports[data-focus=camera] .quad-stage>.work{width:100%;height:100%}.viewports[data-focus=camera] .plan-work{visibility:hidden}
 .viewports:not([data-focus=quad]):not([data-focus=camera]) .quad-stage>.work{display:none}
 .viewports[data-focus=camera] #spatial-inspector,.viewports[data-focus=camera] .plan-selection,.viewports[data-focus=camera] .spatial-help{display:none}
 .viewports:fullscreen{background:var(--bg);padding:8px;width:100%;height:100%;grid-template-rows:minmax(0,1fr) 154px}
 .viewports:fullscreen>.map-panel{position:relative;inset:auto;box-shadow:none}.viewports:fullscreen>#timeline{position:relative;inset:auto;grid-row:2;height:auto}
 .timeline-top{height:32px;padding:4px 6px}.timeline-top #timeline-hint{max-width:25%}
 #preview-frame{color:var(--accent);overflow:hidden;text-overflow:ellipsis}#safe-toggle{position:relative}.spatial-coordinates{gap:8px}
 .viewports[data-focus=quad] .viewer-top span#shot-label{display:none}
}

@media(min-width:1101px) and (min-height:501px){.viewports[data-focus=camera] .spatial-tool-row{display:none}.viewports[data-focus=camera] .map-title>label:last-child{display:none}}
/* Full-bleed editing preview; only the outlined gate is encoded. */
#camera-gate{position:absolute;pointer-events:none;border:1px solid #dfc6a3cc;box-shadow:0 0 0 100vmax #14141272;z-index:1}
#gate-label{position:absolute;left:6px;top:5px;padding:2px 5px;border-radius:2px;background:#24231ec9;color:#f3e5ce;font-size:9px;white-space:nowrap;line-height:1.3}
#canvas{box-shadow:none;outline:none}#stage{background:var(--panel)}
#pane-splitters{position:absolute;inset:0;pointer-events:none;z-index:5}
#pane-splitters>[data-split]{position:absolute;pointer-events:auto;touch-action:none;outline:none;border-radius:3px;background:var(--bg)}
#pane-splitters>[data-split]:before{content:'';position:absolute;inset:0;border-radius:3px;transition:background .12s}
#pane-splitters>[data-split=x]{cursor:col-resize}#pane-splitters>[data-split=x]:before{left:-2px;right:-2px}
#pane-splitters>[data-split]:not([data-split=x]){cursor:row-resize}#pane-splitters>[data-split]:not([data-split=x]):before{top:-2px;bottom:-2px}
#pane-splitters>[data-split]:hover:before,#pane-splitters>[data-split]:focus-visible:before{background:var(--accent);opacity:.65}
@media(min-width:1101px) and (min-height:501px){
 .guide>.plan-selection{display:block;padding:0;margin:0 0 8px;min-height:0}.guide>.plan-selection b{display:block;font-size:11px}.guide>.plan-selection span{display:block;font-size:10px;line-height:1.5}
 .guide>#spatial-inspector{border:1px solid var(--line);border-radius:5px;padding:9px;margin:0 0 12px;background:var(--raised)}
 .guide .spatial-coordinates{display:flex;flex-direction:column;gap:6px}.guide .spatial-coordinates label{grid-template-columns:14px minmax(40px,1fr) 65px;align-items:center}
 .guide .spatial-coordinates input[type=number]{grid-column:3;grid-row:1}.guide .spatial-coordinates input[type=range]{grid-column:2;grid-row:1}
 .guide .spatial-edge{flex-wrap:wrap}.guide .spatial-edge b{font-size:11px;flex:1}.guide>#spatial-inspector>b{font-size:11px;display:block;margin-bottom:8px}
 .guide[data-multi=true]>#fields,.guide[data-multi=true]>#position-fields,.guide[data-multi=true]>#element-tabs{display:none!important}
 .viewports .quad-stage{min-height:190px}.map-panel .spatial-help{height:14px;min-height:14px;overflow:hidden;white-space:nowrap;margin-top:5px}
}
/* Endpoint tabs live with the precise XYZ controls in the second column. */
@media(min-width:1101px) and (min-height:501px){.guide .camera-tabs{display:none}}
#pane-splitters>[data-split]:after{content:'';position:absolute;border-radius:2px;background:var(--line);pointer-events:none}
#pane-splitters>[data-split=x]:after{width:2px;height:22px;top:calc(50% - 11px);left:2px}
#pane-splitters>[data-split]:not([data-split=x]):after{height:2px;width:28px;left:calc(50% - 14px);top:2px}

/* Two concrete starter examples stay visible; no extra disclosure step. */
#welcome{max-width:1120px;padding:20px 24px}.scene-start{padding:26px}.scene-start-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.scene-start h1{font-size:28px;letter-spacing:-.6px;margin:10px 0}.scene-start-heading p{margin:0;color:var(--muted);font-size:13px}.scene-start-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;max-width:330px;margin:0;gap:8px}.scene-start-actions span{flex-basis:100%;text-align:right;font-size:11px}.scene-start-actions button{font-size:13px;padding:9px 14px}.starter-examples{border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.template-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.template-heading h2{font-size:14px;font-weight:600;margin:0}.template-heading p{margin:0;color:var(--muted);font-size:11px}.template-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:14px}.template-card{padding:0;text-align:left;display:block;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--raised);min-width:0;transition:border-color .15s,box-shadow .15s}.template-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.template-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.template-image{height:180px;position:relative;background:#dfe3dc;overflow:hidden}.template-image img{display:block;width:100%;height:100%;object-fit:cover}.template-image>span{position:absolute;top:10px;left:10px;border-radius:4px;background:#252623dc;color:#f3f0e9;padding:4px 7px;font-size:10px}.template-body{padding:15px 16px}.template-meta{color:var(--muted);font-size:10px}.template-body h3{margin:7px 0 8px;font-size:17px;font-weight:600;color:var(--text)}.template-body p{margin:0 0 8px;font-size:12px;color:var(--text)}.template-body>small{display:block;color:var(--muted);font-size:11px;line-height:1.6}.template-open{display:flex;justify-content:space-between;margin-top:16px;padding-top:11px;border-top:1px solid var(--line);color:var(--accent);font-size:12px;font-weight:550}.scene-start .footnote{margin-top:18px;font-size:11px}

/* Six complete examples: video playback and opening a project are separate actions. */
#welcome{max-width:1440px;width:100%;padding:16px 24px;margin:0 auto}.scene-start{padding:18px 22px}.scene-start h1{font-size:25px}.starter-examples{margin-top:18px;padding-top:14px}.template-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.template-image{height:auto;aspect-ratio:16/9;background:#292b28}.template-image video{display:block;width:100%;height:100%;object-fit:contain}.template-image>span{pointer-events:none;top:7px;left:7px;padding:3px 6px}.template-body{padding:10px 12px}.template-body h3{font-size:15px;margin:5px 0}.template-body p{font-size:11px;margin:0 0 5px}.template-body>small{font-size:10px;min-height:30px;line-height:1.5}.template-open{width:100%;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;margin-top:5px;padding:7px 0 0;min-height:27px;font-size:11px}.template-open:hover{color:var(--text)}.scene-start .footnote{margin-top:12px}
@media(max-width:1050px){.template-options{grid-template-columns:repeat(2,minmax(0,1fr))}}

.template-image{height:156px;aspect-ratio:auto}.template-body>small{height:30px;overflow:hidden}.template-heading p{font-size:11px}

.product-pose-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.product-pose-grid .field{min-width:0;margin:0}.product-keys{margin-top:10px;padding:10px}.product-keys .tip{font-size:11px}

/* Compact scene lighting and shot field of view; scoped to the inspector. */
.look-panel{border:1px solid var(--line);border-radius:5px;padding:10px;margin:8px 0 12px;min-width:0}
.look-hint{font-size:10px;line-height:1.5;color:var(--muted);margin:5px 0 9px}
.look-presets{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0 12px}
.look-presets button{font-size:11px;min-height:28px;padding:5px 6px;background:transparent}
.look-presets button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--raised)}
.look-control{display:grid;grid-template-columns:80px minmax(35px,1fr) 54px;gap:6px;align-items:center;margin:9px 0}
.look-control label{font-size:10px;color:var(--muted)}
#fields .look-control input[type=number]{padding:4px;min-height:28px;font-size:11px;text-align:right}
.look-control input[type=range]{width:100%;min-width:0}
.look-details{margin-top:12px;padding-top:9px;border-top:1px solid var(--line)}
.look-details summary{cursor:pointer;font-size:11px;color:var(--muted)}
.look-reset{width:100%;font-size:11px;background:transparent;margin-top:9px;min-height:29px}
.lens-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;gap:8px}
.lens-heading span{color:var(--muted);font-size:10px}.lens-presets{grid-template-columns:repeat(3,1fr);margin:8px 0}
.lens-panel .look-control{grid-template-columns:80px minmax(35px,1fr) 54px}.lens-panel .look-hint{margin-bottom:0}

/* One row for video format and the current-frame snapshot; keep project saving secondary. */
.export-options{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:14px 0 8px}
.export-options label{display:grid;gap:6px;font-size:11px;color:var(--muted)}.export-options select{width:100%;min-height:34px;font-size:12px}
#export-frame{min-height:34px;font-size:12px;padding:7px 11px;background:var(--raised)}
#export-format-status,#export-frame-summary{font-size:11px;color:var(--muted);line-height:1.55;margin:6px 0}
#export-frame-summary{margin-bottom:12px}#export-dialog .export-info{font-size:11px;padding:9px 11px;line-height:1.65}
#export-dialog h2{font-size:21px;margin-bottom:12px}#export-dialog #export-result{margin:10px 0}
#export-dialog #download{flex:0 1 auto;background:transparent;color:var(--muted)}

#export-dialog #export-preview{max-height:min(230px,30vh);object-fit:contain}

/* Compact element editing; visibility also applies to exports. */
#element-tools{padding:8px 0;margin:0 0 8px;border-bottom:1px solid var(--line)}
.element-name-label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);margin:0 0 5px}.element-name-label input{min-width:0;flex:1;min-height:27px;font-size:12px;padding:4px 6px}
.element-tool-buttons{display:flex;align-items:center;gap:4px}.element-tool-buttons .icon-button{width:27px;min-width:27px;height:27px;min-height:27px;padding:5px}.element-tool-buttons small{font-size:9px;color:var(--muted);margin-left:3px;line-height:1.4}
.scene-element .element-mini{width:23px;min-width:23px;padding:3px;border:0;border-radius:0;background:transparent;color:var(--muted)}.scene-element .element-mini svg{width:15px;height:15px;background:none;border-radius:0}.scene-element .element-mini[aria-pressed=true]{color:var(--accent);background:var(--active)}.scene-element.is-hidden [data-object]{opacity:.5}.scene-element [data-object]>span{flex:1;min-width:0}
.element-align{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:8px;font-size:10px}.element-align button{min-height:24px;min-width:25px;padding:2px 6px}.element-align small{flex-basis:100%;line-height:1.5}
.snap-control{display:flex;align-items:center;gap:4px;margin:0 0 0 3px;font-size:10px;white-space:nowrap;color:var(--muted)}.snap-control select{width:auto;min-height:26px;font-size:10px;padding:3px 4px}
#map [data-locked=true],#map [data-locked=true] *{cursor:default!important}

.material-entry-row{display:flex;gap:5px;margin-top:9px}.material-entry-row .add-material{margin:0;flex:1;min-width:0}.material-entry-row #import-model{font-size:11px;min-height:30px;padding:4px 8px;white-space:nowrap}#model-import-status{overflow-wrap:anywhere;line-height:1.5}.element-section #model-import-status{font-size:10px}#load-error{max-width:90%;white-space:normal}
