/* style.css */
: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}

/* gallery.css */
/* The gallery is isolated from the editing workspace. */
body:not(.editing){background:radial-gradient(ellipse at 82% 0%,#a9885120,transparent 48%),var(--bg)}
body:not(.editing)>header{height:68px;padding:0 36px;background:transparent;border-bottom-color:color-mix(in srgb,var(--line) 55%,transparent)}
body:not(.editing) .history-actions,body:not(.editing) #save,body:not(.editing) #switch{display:none!important}
body:not(.editing){scrollbar-gutter:stable}
body:has(#template-dialog[open]){overflow:hidden}
body:not(.editing) #restore{width:auto;padding:0 12px;gap:7px}
body:not(.editing) #restore::after{content:'打开项目';font-size:12px}
#welcome{max-width:1600px;width:100%;padding:44px 36px 24px;margin:0 auto}
.scene-start{border:0;border-radius:0;background:none;padding:0;box-shadow:none}
.scene-start-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:0 0 36px}
.scene-start-heading .eyebrow{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:10px;letter-spacing:2px}
.scene-start-heading .eyebrow::before{content:'';width:20px;height:1px;background:var(--accent)}
.scene-start h1{font-size:clamp(30px,3.2vw,48px);line-height:1.3;letter-spacing:-1.5px;font-weight:600;margin:15px 0 12px}
.scene-start h1 em{font-style:normal;color:var(--accent)}
.scene-start-heading p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}
.scene-start-actions{display:flex;align-items:flex-end;flex-direction:column;gap:9px;max-width:none;margin:0;flex:none}
.scene-start-actions>div{display:flex;align-items:center;gap:8px}
.scene-start-actions button{min-height:42px;padding:10px 16px;border-radius:7px;font-size:12px;display:flex;align-items:center;gap:7px}
.scene-start-actions button svg{width:15px;height:15px}
.scene-start-actions #resume-scene{background:transparent}
.scene-start-actions #new-scene-summary{font-size:10px;color:var(--muted);margin:0}
.starter-examples{border-top:1px solid var(--line);padding-top:22px;margin-top:0}
.template-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}
.template-heading h2{font-size:16px;letter-spacing:.2px;font-weight:550;display:flex;align-items:baseline;gap:10px;margin:0}
.template-heading h2 span{font-size:10px;color:var(--muted);font-weight:400;letter-spacing:1px}
.template-heading p{font-size:11px;color:var(--muted);margin:0;display:flex;gap:16px}
.template-heading p span::before{content:'·';color:var(--accent);margin-right:6px}
#template-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1px;gap:0 20px;margin:0;align-items:start}
.template-card{padding:0;min-width:0;grid-row-end:span 320;background:none;border:0;border-radius:0;overflow:visible;transition:none}
.template-card:hover{box-shadow:none;border:0}
.template-card-inner{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;transition:border-color .18s,box-shadow .18s}
.template-card-inner:hover{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));box-shadow:0 10px 28px #00000018}
.template-poster{position:relative;display:block;overflow:hidden;width:100%;aspect-ratio:16/10;padding:0;border:0;border-radius:0;background:#dce0d7;min-height:0}
.template-poster.portrait{aspect-ratio:4/5}
.template-poster img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}
.template-poster.portrait img{object-fit:contain;background:#dce0d7}
.template-poster:hover img{transform:scale(1.035)}
.template-category,.template-duration{position:absolute;top:12px;font-size:10px;letter-spacing:.2px;color:#f3f0e9;background:#24241ed9;border:1px solid #ffffff18;border-radius:4px;padding:4px 7px;pointer-events:none}
.template-category{left:12px}.template-duration{right:12px;font-variant-numeric:tabular-nums}
.template-play{position:absolute;bottom:12px;right:12px;height:34px;padding:0 11px 0 9px;border-radius:20px;display:flex;align-items:center;gap:5px;background:#f5f0e7ed;border:1px solid #ffffff70;color:#2b2822;box-shadow:0 2px 12px #0002;font-size:10px;transition:background .18s;pointer-events:none}
.template-play svg{width:15px;height:15px}
.template-poster:hover .template-play{background:#dfc6a3}
.template-card-content{padding:15px 15px 13px}
.template-card-content h3{font-size:14px;line-height:1.6;font-weight:550;letter-spacing:.1px;margin:0 0 14px}
.template-card-content h3 button{padding:0;min-height:0;background:none;border:0;border-radius:2px;font:inherit;line-height:inherit;text-align:left}
.template-card-content h3 button:hover{color:var(--accent)}
.template-card-actions{display:flex;align-items:center;gap:8px;justify-content:space-between}
.template-card-actions button{min-height:30px;font-size:10px;padding:5px 9px;display:flex;align-items:center;gap:5px;border-radius:5px}
.template-card-actions svg{width:12px;height:12px}
.template-detail{border-color:transparent;background:transparent;color:var(--muted);margin-left:-9px}
.template-make{background:var(--active);color:var(--accent);border-color:transparent}
.template-make:hover{border-color:var(--accent);background:var(--active)}
.gallery-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);padding:18px 0 0;margin:10px 0 0;color:var(--muted);font-size:10px}
.gallery-foot>span:last-child{letter-spacing:2px;font-size:9px;opacity:.7}
#template-dialog{width:min(1160px,calc(100vw - 64px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border-radius:14px;overflow:auto;background:var(--panel);box-shadow:0 32px 120px #0008}
#template-dialog::backdrop{background:#080807b8;backdrop-filter:blur(8px)}
.template-dialog-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);gap:16px}
.template-dialog-head h2{font-size:18px;line-height:1.5;font-weight:550;letter-spacing:0;margin:0}
#template-dialog-meta{font-size:11px;color:var(--muted);margin-top:5px}
#close-template{position:static;width:32px;height:32px;flex:none;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center}
.template-dialog-main{display:flex;min-height:0;background:var(--bg)}
.template-video-wrap{min-width:0;flex:1;display:flex;align-items:center;justify-content:center;background:#10110f;padding:0}
#template-preview{display:block;width:100%;height:min(62dvh,610px);object-fit:contain;outline:none}
#template-dialog[data-ratio=portrait][data-mode=preview]{width:min(800px,calc(100vw - 64px))}
#template-dialog[data-ratio=portrait] #template-preview{height:min(68dvh,700px)}
#template-details-panel{width:285px;flex:none;padding:24px;background:var(--panel);overflow:auto}
.template-detail-eyebrow{color:var(--accent);font-size:10px;letter-spacing:1.5px}
#template-details-panel #template-original-name{font-size:16px;font-weight:550;line-height:1.6;margin:10px 0 24px;color:var(--text)}
#template-details-panel h3{font-size:11px;font-weight:500;margin:24px 0 12px;color:var(--muted)}
#template-beats{padding:0;list-style:none;display:grid;gap:13px;margin:0}
#template-beats li{font-size:12px;line-height:1.6;display:flex;gap:10px;align-items:baseline}
#template-beats span{font-size:10px;font-variant-numeric:tabular-nums;color:var(--accent)}
#template-edit-note{font-size:11px;line-height:1.85;color:var(--muted);margin:0 0 12px}
.template-license-link{font-size:10px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.template-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:14px 22px}
#template-playback-status{font-size:11px;color:var(--muted);line-height:1.6;margin-right:auto}
.template-dialog-footer>div{display:flex;gap:8px;flex:none;margin-left:auto}
.template-dialog-footer button{font-size:12px;min-height:37px;padding:8px 17px;border-radius:6px}
:root[data-theme=light] body:not(.editing){background:radial-gradient(ellipse at 82% 0%,#d9c5a72b,transparent 48%),var(--bg)}
@media(min-width:1800px){#welcome{max-width:1760px;padding-left:44px;padding-right:44px}}
@media(max-width:1350px){#template-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:920px){#welcome{padding:32px 22px 20px}body:not(.editing)>header{padding:0 22px}.scene-start-heading{gap:16px}.scene-start h1{font-size:32px}.scene-start-actions>div{flex-direction:column;align-items:stretch}.scene-start-actions button{min-height:36px;padding:8px 12px}.scene-start-heading p{font-size:12px}#template-options{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.template-heading p{display:none}#template-details-panel{width:240px;padding:20px}.template-dialog-head h2{font-size:16px}}
@media(max-width:600px){body:not(.editing)>header{height:56px;padding:0 16px;flex-wrap:nowrap}body:not(.editing) .brand{width:auto;font-size:15px}body:not(.editing) .header-actions{display:flex;margin-left:auto}body:not(.editing) #restore{display:none}#welcome{padding:28px 16px 18px}.scene-start-heading{display:block;padding-bottom:25px}.scene-start h1{font-size:30px;letter-spacing:-1px}.scene-start-actions{align-items:stretch;margin-top:22px}.scene-start-actions>div{flex-direction:row}.scene-start-actions #new-scene-summary{display:none}.template-heading{margin-bottom:16px}#template-options{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px}.template-card-content{padding:10px}.template-card-content h3{font-size:12px;margin-bottom:10px}.template-card-actions{gap:2px;flex-wrap:wrap}.template-card-actions button{padding:5px;font-size:10px}.template-detail{margin-left:-5px}.template-category,.template-duration{top:7px;font-size:9px;padding:3px 5px}.template-category{left:7px}.template-duration{right:7px}.template-play{bottom:7px;right:7px;height:28px;padding:0 7px}.template-play span{display:none}.gallery-foot{font-size:9px}.gallery-foot>span:last-child{display:none}#template-dialog,#template-dialog[data-ratio=portrait][data-mode=preview]{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.template-dialog-head{padding:14px;gap:8px}.template-dialog-head h2{font-size:14px}#template-dialog-meta{font-size:10px}.template-dialog-main{display:block}#template-preview,#template-dialog[data-ratio=portrait] #template-preview{height:min(53dvh,480px)}#template-details-panel{width:auto;padding:18px}#template-original-name{margin-bottom:14px}#template-details-panel h3{margin-top:16px}.template-dialog-footer{padding:12px 14px;gap:8px;flex-wrap:wrap}.template-dialog-footer button{font-size:11px;padding:7px 12px}}
@media(prefers-reduced-motion:reduce){.template-poster img,.template-card-inner{transition:none}}

/* project-library.css */
#project-label.project-menu-trigger{display:block;font:inherit;font-size:12px;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 8px;flex-shrink:1;min-width:70px;background:transparent;color:var(--muted,#8d9bb3);border:1px solid transparent;border-radius:6px;cursor:pointer}#project-label.project-menu-trigger:hover{border-color:var(--line,#344158);color:var(--text,#dce5f5)}.project-save-status{font-size:11px;color:var(--muted,#91a0b8);white-space:nowrap}.project-save-status[data-phase=saved]::before{content:'●';font-size:8px;color:#70b594;margin-right:5px}.project-save-status[data-phase=error]{color:#dc775f}.project-save-status[data-phase=saving]{color:var(--text,#dce5f5)}#project-library-dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:20px;border:1px solid var(--line,#344158);border-radius:12px;background:var(--panel,#151e2d);color:var(--text,#dce5f5)}.project-library-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-library-head h2{margin:0;font-size:17px}.project-library-head button{font-size:20px;padding:1px 8px}.project-library-note{font-size:11px;line-height:1.6;color:var(--muted,#91a0b8)}.project-library-controls{border:0;padding:0;margin:14px 0 0;min-width:0}.project-name-row{display:flex;align-items:center;gap:8px}.project-name-row label{font-size:12px;white-space:nowrap}.project-name-row input{min-width:0;flex:1;padding:7px 8px;background:var(--bg,#101725);border:1px solid var(--line,#344158);border-radius:6px;color:inherit;font-size:12px}.project-library-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.project-library-actions button,.project-name-row button{padding:6px 9px;font-size:12px}.project-library-controls h3{font-size:12px;margin:10px 0 7px}#project-recent-list{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow:auto}.project-recent-item{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;width:100%;padding:9px 10px;font-size:12px}.project-recent-item b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.project-recent-item small{font-size:10px;color:var(--muted,#91a0b8);flex-shrink:0}.project-recent-item[aria-current=true]{border-color:var(--accent,#6ca5f8)}#project-recovery{margin-top:16px;border-top:1px solid var(--line,#344158);padding-top:12px}#project-recovery summary{font-size:12px;cursor:pointer}#project-recovery-count{color:var(--muted,#91a0b8)}#project-recovery-list{display:flex;flex-direction:column;align-items:stretch;gap:5px;font-size:11px}.project-recovery-item{text-align:left;padding:7px 9px;font-size:11px}#project-library-feedback{font-size:12px;line-height:1.5;color:#dc775f;margin-bottom:0}#project-library-dialog button:focus-visible,#project-library-dialog input:focus-visible{outline:2px solid var(--accent,#6ca5f8);outline-offset:2px}@media(max-width:640px){#project-label.project-menu-trigger{max-width:120px;font-size:11px;padding:4px}.project-name-row{flex-wrap:wrap}.project-name-row label{width:100%}.project-save-status{font-size:10px}} 

/* shot-tools.css */
.shot-row .shot>b{min-width:0;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shot-tools{position:relative;align-self:start;margin-top:3px;z-index:1}.shot-tools[open]{z-index:35}.shot-tools>summary{display:flex;align-items:center;justify-content:center;list-style:none;cursor:pointer;width:26px;min-height:30px;border-radius:4px;color:var(--muted);font-size:19px;line-height:1;background:transparent}.shot-tools>summary::-webkit-details-marker{display:none}.shot-tools>summary:hover,.shot-tools[open]>summary{background:var(--active);color:var(--text)}.shot-tools>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.shot-tools-panel{position:absolute;top:32px;right:0;width:205px;padding:7px;background:var(--raised);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 22px #0003}.shot-tool-actions{display:grid;grid-template-columns:1fr 1fr;gap:3px}.shot-tool-actions button{min-height:29px;padding:4px;font-size:11px}.shot-tool-actions button:last-child{color:var(--muted)}.shot-tools-note,.shot-tools-error{font-size:10px;line-height:1.5;margin:7px 0 0;color:var(--muted)}.shot-tools-error{color:#d66b47}.shot-name-form{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}.shot-name-form label{font-size:11px;display:grid;gap:4px}.shot-name-form input{width:100%;min-width:0;min-height:29px;padding:4px 6px}.shot-name-form>div{display:flex;gap:4px;margin-top:4px}.shot-name-form button{min-height:27px;font-size:10px;padding:4px 6px}

/* export-quality.css */
/* One compact two-row group for output preferences; never changes scene settings. */
#export-dialog .export-options{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px 12px}
#export-dialog .export-options label{min-width:0}
#export-dialog .export-options #export-frame{min-height:34px;white-space:normal;font-size:12px}
@media(max-width:420px){#export-dialog{padding:20px}#export-dialog .export-options{gap:8px}#export-dialog .export-options select{font-size:11px}}

/* free-basics.css */
.product-placement{display:grid;gap:8px;margin-top:12px}.placement-buttons,.environment-presets,.environment-checks{display:flex;flex-wrap:wrap;gap:5px}.placement-buttons button,.environment-presets button{flex:1;padding:6px 4px;font-size:11px}.product-placement small{font-size:11px;line-height:1.5;color:var(--muted)}.product-placement details,.environment-controls{border-top:1px solid var(--line);padding-top:10px;margin-top:8px}.product-placement label,.background-color{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.product-placement label input{width:82px}.environment-presets{margin:10px 0}.background-color input{width:54px;height:30px;padding:2px}.environment-checks{margin:10px 0}.environment-checks label{display:flex;align-items:center;gap:4px;font-size:12px}.environment-checks input{width:auto}#help-dialog{max-width:540px;width:calc(100vw - 40px);max-height:85vh;overflow:auto}#help-dialog ol{padding-left:22px;line-height:1.8}#help-dialog dl{font-size:12px;display:grid;grid-template-columns:auto 1fr;gap:9px 18px}#help-dialog dd{margin:0}#help-dialog p{font-size:12px;line-height:1.7}.first-steps{display:inline-flex;gap:10px;align-items:center;margin-left:12px}.first-steps[hidden]{display:none}.first-steps button{padding:0 4px;border:0;background:transparent}.first-steps span{color:var(--text)}@media(max-width:1000px){.first-steps{display:none}}
#fields .background-color{display:flex;flex-direction:row;align-items:center;justify-content:space-between;white-space:nowrap;gap:12px}#fields .background-color input[type=color]{width:54px;max-width:54px;flex:none;height:30px;min-height:30px}#fields .environment-checks{display:flex;gap:16px;flex-wrap:wrap}#fields .environment-checks label{display:inline-flex;flex-direction:row;align-items:center;white-space:nowrap;gap:5px;grid-template-columns:none}#fields .environment-checks input{width:14px;min-width:14px;min-height:14px;margin:0}.environment-presets{display:flex!important}

/* landing.css */
/* Public content only; editor layout continues to use the existing styles. */
#welcome{max-width:1440px;padding-top:22px}#welcome [hidden]{display:none!important}#welcome a{color:inherit;text-underline-offset:4px}#welcome a:hover{color:var(--accent)}
.home-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:36px;font-size:11px;color:var(--muted)}.home-nav>span{letter-spacing:1.4px}.home-nav>div{display:flex;gap:22px}.home-nav a,.gallery-foot a{text-decoration:none}
#welcome .scene-start-heading{align-items:flex-start;padding-bottom:30px}#welcome .scene-start h1{font-size:clamp(30px,3.1vw,44px);letter-spacing:-1px;margin:16px 0}#welcome .scene-start-heading p{font-size:14px;line-height:1.9}#welcome .scene-start-actions{margin-top:34px;align-items:stretch}#welcome .scene-start-actions>div{display:grid;grid-template-columns:1fr;gap:8px}#welcome .scene-start-actions button{justify-content:center}#welcome .scene-start-actions #new-scene-summary{text-align:center;font-size:11px}
#welcome .home-primary{display:flex;justify-content:center;align-items:center;min-height:46px;padding:10px 22px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);text-decoration:none;font-size:13px;font-weight:600}#welcome .home-primary:hover{filter:brightness(1.08)}
.home-steps{list-style:none;padding:20px 0 24px;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid var(--line)}.home-steps li{display:flex;gap:12px;font-size:11px;line-height:1.8;color:var(--muted)}.home-steps li>b{font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}.home-steps strong{display:block;font-size:13px;color:var(--text);font-weight:550;margin-bottom:2px}
#welcome .template-heading{margin-bottom:16px}#template-heading{scroll-margin-top:20px}#welcome .template-heading p{display:block;font-size:11px}#welcome .template-heading h2{font-size:19px}#welcome .template-heading h2 span{font-size:11px;letter-spacing:0}
.template-filter{display:flex;align-items:center;gap:8px;margin-bottom:20px;flex-wrap:wrap}.template-filter button{border-radius:20px;padding:7px 14px;font-size:12px;min-height:36px;background:transparent}.template-filter button[aria-pressed=true]{background:var(--active);border-color:var(--accent);color:var(--accent)}#template-filter-status{margin-left:auto;font-size:11px;color:var(--muted)}
/* Equal cover sizes make comparison quicker and prevent tall portrait cards dominating. */
#welcome .template-poster,#welcome .template-poster.portrait{aspect-ratio:16/10}#welcome .template-poster img{object-fit:contain;background:#dce0d7}#welcome .template-card-content h3{margin-bottom:5px;font-size:14px}.template-meta{margin:0 0 8px;font-size:11px;color:var(--muted);line-height:1.7}.template-purpose{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 14px;min-height:38px}#welcome .template-card-actions button{min-height:36px;font-size:11px}#welcome .template-card-content{padding:14px}
.home-notes{display:grid;grid-template-columns:1.35fr 1fr;gap:64px;border-top:1px solid var(--line);padding:32px 0;margin-top:8px}.home-notes h2,.home-faq h2{font-size:20px;font-weight:550;line-height:1.5;margin:10px 0 14px}.home-notes p{font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 12px}.home-notes a{font-size:12px}.local-note{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px}.local-note b{font-size:14px;font-weight:550}.local-note p{margin-top:10px;font-size:12px}.local-note>span{font-size:11px;color:var(--accent)}
.home-faq{border-top:1px solid var(--line);padding:24px 0 34px;scroll-margin-top:24px}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.faq-grid details{border-bottom:1px solid var(--line);padding:14px 0;margin:0;background:none;border-radius:0}.faq-grid summary{font-size:13px;cursor:pointer;line-height:1.8}.faq-grid p{font-size:12px;line-height:1.95;color:var(--muted);padding-right:12px;margin:12px 0 0}.faq-grid a{color:var(--accent)!important}
#welcome .gallery-foot{padding:22px 0;flex-wrap:wrap;line-height:1.8;font-size:11px}#welcome .gallery-foot nav{display:flex;flex-wrap:wrap;gap:12px 22px}
#home-ad-placement:empty{display:none}.whitebox-advertisement{margin:60px 0!important;padding:28px 0!important;min-height:180px}.whitebox-advertisement[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
/* Standalone editorial pages share the product palette, without editor scripts. */
body.info-page{overflow:auto;height:auto;min-height:100vh;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,'PingFang SC',sans-serif}.info-shell{max-width:860px;padding:28px 28px 48px;margin:auto}.info-nav{display:flex;flex-wrap:wrap;gap:14px 24px;border-bottom:1px solid var(--line);padding:0 0 22px;align-items:center;font-size:13px}.info-nav a{color:var(--muted);text-decoration:none}.info-nav .info-brand{color:var(--accent);font-weight:650;margin-right:auto}.info-shell article{padding:30px 0}.info-shell h1{font-size:32px;line-height:1.45;letter-spacing:-.6px;margin:12px 0}.info-shell h2{font-size:19px;line-height:1.6;margin:32px 0 12px}.info-shell p,.info-shell li{font-size:14px;line-height:2;color:var(--muted)}.info-shell li{margin-bottom:8px}.info-shell a{color:var(--accent);text-underline-offset:4px}.info-shell .info-date{font-size:12px}.info-shell .info-intro{font-size:17px;color:var(--text)}.info-shell footer{border-top:1px solid var(--line);padding-top:22px;font-size:12px;color:var(--muted);line-height:1.8}.info-callout{padding:16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.info-shell code{overflow-wrap:anywhere}
@media(max-width:920px){.home-nav{margin-bottom:28px}#welcome .scene-start-heading{display:block}#welcome .scene-start-actions{margin-top:20px;max-width:100%;align-items:flex-start}#welcome .scene-start-actions>div{display:flex;flex-direction:row;flex-wrap:wrap}#welcome .scene-start-actions #new-scene-summary{display:block}.home-notes{gap:28px}.home-steps{gap:14px}}
@media(max-width:600px){#welcome{padding-top:18px}.home-nav{font-size:10px;gap:12px;align-items:flex-start;margin-bottom:28px}.home-nav>span{max-width:112px;line-height:1.8;letter-spacing:.8px}.home-nav>div{gap:12px;flex-wrap:wrap;justify-content:flex-end}#welcome .scene-start h1{font-size:29px;letter-spacing:-.8px;max-width:340px}#welcome .scene-start-heading p{font-size:13px}#welcome .scene-start-actions{align-items:stretch}#welcome .scene-start-actions>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}#welcome .home-primary{grid-column:1/-1;min-height:46px}#welcome .scene-start-actions>div>#create-scene{grid-column:1/-1}#welcome .scene-start-actions>div:has(#resume-scene:not([hidden]))>#create-scene{grid-column:auto}.home-steps{grid-template-columns:1fr;padding:20px 0;gap:12px}.home-steps li{align-items:baseline}.home-steps strong{display:inline;margin-right:10px;font-size:12px}.home-steps li>b{font-size:11px}.home-steps li{font-size:11px}#welcome .template-heading{align-items:flex-start}#welcome .template-heading h2{display:block;font-size:18px}#welcome .template-heading h2 span{display:block;margin-top:5px}#welcome .template-heading p{max-width:135px;text-align:right;font-size:10px;line-height:1.8}#welcome .template-card-content{padding:12px}#welcome .template-card-content h3{font-size:14px}.template-filter button{padding:7px 12px;font-size:11px}#template-filter-status{font-size:10px}#welcome #template-options{grid-template-columns:1fr}#welcome .template-card-actions button{min-height:40px;font-size:12px;padding:6px 10px}#welcome .template-purpose{min-height:0;font-size:12px}#welcome .template-meta{font-size:11px}#welcome .template-play span{display:inline}.home-notes,.faq-grid{grid-template-columns:1fr}.home-notes{gap:20px;padding:24px 0}.home-notes h2,.home-faq h2{font-size:18px}.home-faq{padding-bottom:26px}#welcome .gallery-foot nav{gap:12px 18px}.info-shell{padding:22px 20px 36px}.info-shell h1{font-size:28px}}
@media(max-width:600px){#welcome .scene-start h1 em{display:block}body:not(.editing)>header #restore{display:flex;padding:0 8px;min-width:32px}body:not(.editing)>header #restore::after{font-size:11px}}
@media(max-width:600px){body:not(.editing)>header .header-actions{flex:none;gap:6px}body:not(.editing)>header #restore,body:not(.editing)>header #quick-help{flex:none;width:32px;min-width:32px;padding:0;height:32px}body:not(.editing)>header #restore::after{display:none}}

/* bone-editor.css */
.bone-tabs,.bone-toggle,.bone-key-tools{display:flex;gap:4px;margin:8px 0}.bone-tabs button{flex:1}.bone-tabs [aria-pressed=true],.bone-joints [aria-pressed=true]{background:var(--active-bg,#eee3d2);border-color:var(--accent,#9a7951)}.bone-summary{padding:5px 0;margin:4px 0!important}.bone-toggle{align-items:center;justify-content:space-between}.bone-toggle label{display:flex!important;align-items:center;gap:4px}.bone-toggle input{width:auto!important}.bone-toggle button{font-size:11px}.bone-strength{display:flex!important;align-items:center;gap:5px}.bone-strength input{min-width:40px;width:100%!important;flex:1}.bone-joints{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:8px 0}.bone-joints button{padding:5px 1px;font-size:11px}.bone-current{font-size:12px;margin:8px 0 4px}.bone-current span{float:right;color:var(--muted,#888)}.bone-add{width:100%;padding:5px!important}.bone-angles>div{display:grid;grid-template-columns:65px minmax(40px,1fr) 50px;align-items:center;gap:4px;margin:4px 0}.bone-angles label{font-size:11px}.bone-angles input{width:100%!important;min-width:0}.bone-angles input[type=number]{padding:4px!important}.bone-key-tools button{flex:1;padding:5px 2px;font-size:11px}.bone-move{display:flex!important;gap:5px;align-items:center;font-size:11px}.bone-move input{width:70px!important}.bone-warning{font-size:11px;color:#9a4a24;margin:5px 0}.bone-warning:empty{display:none}.bone-more{margin-top:9px;font-size:11px}.bone-more button{display:block;margin:6px 0;width:100%}.bone-proposal{margin-top:8px;border:1px solid #a58d69;padding:8px;border-radius:5px;font-size:12px}.bone-proposal p{font-size:11px}.bone-proposal button{font-size:11px;margin-right:4px}.bone-track .track-name{font-size:10px;color:#8d6434}.bone-key{position:absolute;top:4px;transform:translateX(-50%);height:20px;width:17px;padding:0;border:0;background:transparent;color:#916b3d;cursor:ew-resize;font-size:16px;line-height:18px;z-index:3}.bone-key.endpoint{cursor:pointer;color:#8c8a83}.bone-key:focus{outline:2px solid #a58d69;outline-offset:0}.bone-track .track-lane{background:rgba(164,132,80,.07)}

body:has(#bone-panel) #spatial-inspector,body:has(#bone-panel) #position-fields{display:none}

/* usability.css */
.element-mode-tabs{position:sticky;top:0;z-index:5;background:var(--panel,#f8f7f4);padding:5px 0;gap:4px}.element-mode-tabs button{padding:7px 6px;white-space:nowrap;flex:1}
#workspace[data-pose=true] .element-name-label{display:none}#workspace[data-pose=true] #element-tools{margin-bottom:8px}#workspace[data-pose=true] .bone-summary{margin:5px 0 9px}.bone-joints{gap:4px}.bone-joints button{padding:6px 3px}.bone-current{margin:8px 0 5px}.bone-key-strip{display:flex;gap:4px;overflow-x:auto;max-width:100%;padding-bottom:5px}.bone-key-strip button{white-space:nowrap;padding:4px 6px;font-size:11px;flex:none}.bone-key-strip button[aria-pressed=true]{border-color:var(--accent,#b79872);background:var(--active,#e9dfcf)}.bone-more .bone-strength{margin:10px 0}
.pose-transport{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin:3px 0 10px;padding:5px;border:1px solid var(--line,#ddd);border-radius:5px}.pose-transport[hidden]{display:none}.pose-transport button{padding:5px;min-width:28px}.pose-transport label{display:flex;align-items:center;gap:3px;margin:0;font-size:12px}.pose-transport input{width:60px;min-width:0;padding:5px;margin:0}.pose-transport small{font-size:10px;color:var(--muted,#888)}
.quick-framing{position:relative;margin-left:auto;flex:none;font-size:11px}.quick-framing summary{cursor:pointer;list-style:none;padding:4px 6px;border:1px solid var(--line,#ddd);border-radius:4px}.quick-framing summary::after{content:' ▾'}.quick-framing-menu{position:absolute;right:0;top:100%;z-index:30;width:215px;padding:8px;background:var(--panel,#f8f7f4);color:var(--text,#292722);border:1px solid var(--line,#ddd);border-radius:5px;box-shadow:0 5px 18px #0003}.quick-framing-menu button{display:block;width:100%;text-align:left;margin:0 0 5px;padding:8px}.quick-framing-menu p{font-size:11px;line-height:1.5;margin:7px 1px 0}#quick-framing-error{color:var(--danger,#a44030)}.viewer-top{overflow:visible}.work{overflow:visible}.pane-actions{flex:none}
#save-recovery{position:fixed;bottom:54px;left:50%;transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);width:max-content;padding:10px 12px;border:1px solid #b56f38;border-radius:6px;background:var(--panel,#fff9ec);color:var(--text,#292722);box-shadow:0 4px 20px #0003;font-size:12px}#save-recovery[hidden]{display:none}#save-recovery button{white-space:nowrap;padding:6px 9px}
@media(max-width:700px){.pose-transport{gap:6px}.pose-transport button{min-height:34px}.bone-key-strip button{min-height:30px}.quick-framing-menu{width:210px}.quick-framing summary{padding:6px}.quick-framing{margin-left:4px}#save-recovery{flex-wrap:wrap;width:calc(100vw - 24px);bottom:65px}}
.guide .inspector-heading{position:static}#workspace[data-pose=true] .inspector-heading,#workspace[data-pose=true] .plan-selection{display:none}.pose-transport{position:sticky;top:47px;z-index:4;background:var(--panel)}
.work:has(.quick-framing[open]){z-index:20}#workspace[data-pose=true] #element-tools,#workspace[data-pose=true] #position-fields{display:none}
@media(max-width:600px){header{display:grid;grid-template-columns:minmax(0,1fr) repeat(6,30px);gap:4px;padding:6px 8px}.brand{grid-column:1 / span 5;grid-row:1;width:auto;min-width:0}.theme-control{grid-column:6 / -1;grid-row:1}.header-actions,.history-actions{display:contents}#project-label.project-menu-trigger{grid-row:2;grid-column:1;min-width:0;max-width:none;width:100%}.header-actions>button,.history-actions>button{grid-row:2;order:0;flex:none}.header-actions>.icon-button,.history-actions>.icon-button{width:30px;min-width:30px}#quick-help{width:30px!important;min-width:30px!important}}
@media(max-width:1100px),(max-height:500px){#workspace[data-view=preview] .viewports>.map-panel{display:flex;padding:0;overflow:visible}#workspace[data-view=preview] .map-panel>.map-title,#workspace[data-view=preview] .map-panel>.spatial-tool-row,#workspace[data-view=preview] .map-panel>.spatial-help,#workspace[data-view=preview] .map-panel>.plan-selection{display:none}#workspace[data-view=preview] .quad-stage{display:flex;position:relative;flex:1;min-height:0}#workspace[data-view=preview] .quad-stage>.work{display:flex;position:relative;inset:auto!important;width:100%!important;height:100%!important;min-height:0;flex:1;padding:7px 10px 10px}#workspace[data-view=preview] .quad-stage>.plan-work,#workspace[data-view=preview] #pane-splitters{display:none!important}#workspace[data-view=preview] .pane-actions{display:none!important}#workspace[data-view=preview] .viewer-top>.mobile-shot-picker{display:flex!important}#workspace[data-view=preview] .quick-framing{margin-left:auto}#workspace[data-view=preview] #stage{min-height:60px}#workspace[data-view=preview] .playbar{display:flex!important}#workspace[data-view=preview] #scrub{display:block!important}}
.bone-joints [aria-pressed=true]{background:var(--active);color:var(--accent)}.bone-track .track-name,.bone-key:not(.endpoint){color:var(--accent)}:root[data-theme=dark] .bone-warning,:root[data-theme=dark] #quick-framing-error{color:#edb385}

/* free-finish.css */
.free-buttons{display:flex;align-items:center;gap:5px;margin:7px 0}.free-buttons>*{min-width:0;flex:1}.free-buttons button{padding:6px 5px;font-size:11px}.free-buttons input,.free-buttons select{width:100%;font-size:12px}.free-sequence,.free-poses,.free-story{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}.free-sequence summary,.free-poses summary,.free-story summary{font-size:12px;cursor:pointer;color:var(--text)}.free-story>label{display:block;margin:10px 0}.free-story textarea{display:block;width:100%;resize:vertical;min-height:55px;background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:7px;font:inherit;font-size:12px;margin-top:5px}.free-story button,.free-poses button{font-size:11px}.free-poses select{width:100%}.free-poses [role=status]{font-size:11px;color:var(--accent)}#storyboard-pdf{font-size:11px;margin:6px 0}
#reference-dialog{width:min(440px,calc(100vw - 24px));font-size:12px}#reference-controls{border:0;margin:0;padding:0}#reference-controls h3{font-size:13px;border-top:1px solid var(--line);padding-top:10px;margin:12px 0 6px}#reference-controls>label{display:flex;align-items:center;gap:7px}#reference-controls .reference-volume input{flex:1}#reference-controls input[type=checkbox]{width:auto}.free-dialog-head{display:flex;align-items:center;gap:8px;justify-content:space-between}.free-dialog-head h2{font-size:19px;margin:0}.free-dialog-head button{padding:2px 9px;font-size:20px}#reference-status{font-size:11px;line-height:1.6;color:var(--accent)}.reference-peek{position:relative;flex:none;font-size:10px}.reference-peek summary{cursor:pointer;padding:5px;border:1px solid var(--line);border-radius:4px;white-space:nowrap}.reference-peek img{position:absolute;z-index:35;right:0;top:100%;width:250px;height:220px;object-fit:contain;background:var(--panel);border:1px solid var(--line);padding:7px;box-shadow:var(--shadow)}.work:has(.reference-peek[open]){z-index:20}
.project-search-row{display:flex;align-items:center;gap:8px}.project-search-row>input{flex:1;width:100%}.project-search-row label{display:flex;align-items:center;gap:4px;white-space:nowrap}.project-library-row{display:flex;gap:5px;align-items:center}.project-library-row>.project-recent-item{flex:1;min-width:0;justify-content:flex-start;gap:9px;padding:7px}.project-recent-item>span:last-child{min-width:0;display:grid;gap:5px}.project-thumbnail{width:65px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--raised);font-size:11px;border:1px solid var(--line);overflow:hidden}.project-thumbnail img{width:100%;height:100%;object-fit:cover}.project-trash-action{font-size:10px;padding:7px 5px;white-space:nowrap}#project-recent-list{max-height:260px}.project-recent-item b{text-align:left}.project-recent-item small{font-size:10px;text-align:left}
@media(max-width:600px){.reference-peek img{width:220px;height:180px}.free-story textarea{font-size:16px}.project-search-row label{font-size:11px}.project-thumbnail{width:48px;height:34px}.project-trash-action{font-size:10px}.project-library-row>.project-recent-item{gap:5px}}

/* home-layout.css */
/* Homepage and save-label refinement. Scene data and editor geometry stay untouched. */
body:not(.editing)>header{height:56px;padding:0 max(24px,calc((100vw - 1200px)/2))}
#welcome{width:100%;max-width:1248px;margin:0 auto;padding:14px 24px 28px}
#welcome .home-nav{margin-bottom:8px;min-width:0;font-size:11px}
#welcome .scene-start-heading{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:36px;padding:0 0 12px;align-items:center}
#welcome .home-intro{min-width:0}
#welcome .scene-start h1{font-size:clamp(28px,2.8vw,36px);line-height:1.35;letter-spacing:-.8px;margin:8px 0 10px}
#welcome .scene-start-heading p{font-size:13px;line-height:1.7}
#welcome .scene-start-actions{display:block;max-width:none;margin:14px 0 0}
#welcome .scene-start-actions>div{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;flex-wrap:wrap}
#welcome .scene-start-actions button{font-size:12px;padding:9px 14px;min-height:38px;white-space:nowrap}
#welcome .scene-start-actions #new-scene-summary{display:block;text-align:left;font-size:10px;margin:8px 0 0;line-height:1.6;flex-basis:auto}
#welcome .home-feature{display:block;position:relative;width:100%;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);text-align:left}
#welcome .home-feature img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.home-feature-play{position:absolute;top:12px;left:12px;padding:6px 10px;background:#faf7efed;color:#322a20;border-radius:20px;font-size:11px}
.home-feature-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;font-size:12px;font-weight:600}
.home-feature-caption small{font-size:10px;color:var(--muted);font-weight:400}
#welcome .home-steps{margin:0;padding:8px 0;gap:24px}
#welcome .home-steps li{gap:10px;font-size:11px;line-height:1.6}
#welcome .home-steps strong{display:inline;font-size:12px;margin-right:8px}
#welcome .starter-examples{padding-top:16px}
#welcome .template-heading{margin-bottom:12px}
#welcome .template-heading h2{font-size:18px}
#welcome .template-filter{margin-bottom:14px}
#welcome #template-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:18px;align-items:stretch}
#welcome .template-card{display:flex;grid-row:auto;min-width:0;height:auto}
#welcome .template-card-inner{display:flex;flex-direction:column;width:100%;height:100%;border-radius:10px}
#welcome .template-poster,#welcome .template-poster.portrait{height:clamp(140px,11.5vw,155px);aspect-ratio:auto;flex:none}
#welcome .template-poster img{object-fit:contain}
#welcome .template-card-content{display:flex;flex-direction:column;flex:1;padding:10px 14px}
#welcome .template-card-content h3{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:23px;margin:0 0 5px;font-size:14px;line-height:1.6}
#welcome .template-card-content h3 button{min-width:0;overflow-wrap:anywhere}
.template-beginner{flex:none;border:1px solid var(--line);padding:1px 6px;border-radius:4px;color:var(--accent);font-size:10px;white-space:nowrap}
#welcome .template-meta{font-size:11px;margin-bottom:6px}
#welcome .template-purpose{min-height:28px;margin-bottom:10px;font-size:11px;line-height:1.5}
#welcome .template-card-actions{margin-top:auto;gap:8px;flex-wrap:nowrap}
#welcome .template-card-actions button{white-space:nowrap;word-break:keep-all;flex:none;min-height:34px;font-size:11px}
#welcome .home-notes{margin-top:28px;padding-top:26px;gap:40px}
body.editing>header #save{width:auto;min-width:32px;display:flex;align-items:center;gap:5px;padding:0 8px}
body.editing>header #save::after{content:'备份';font-size:11px}
@media(max-width:960px){#welcome .scene-start-heading{grid-template-columns:minmax(0,1fr) 240px;gap:20px}#welcome .scene-start h1{font-size:29px}#welcome .home-steps strong{display:block}#welcome #template-options{grid-template-columns:repeat(2,minmax(0,1fr))}#welcome .template-poster,#welcome .template-poster.portrait{height:185px}}
@media(max-width:700px){#welcome{padding:16px 16px 24px}#welcome .home-nav{margin-bottom:20px}#welcome .scene-start-heading{display:block}#welcome .home-feature{display:none}#welcome .scene-start h1{font-size:30px}#welcome .scene-start h1 em{display:block}#welcome .scene-start-actions>div{display:flex}#welcome .scene-start-actions .home-quick-start{flex:1}#welcome .home-steps{grid-template-columns:1fr;gap:8px}#welcome .home-steps strong{display:inline}#welcome .template-heading{align-items:flex-start}#welcome .template-heading h2{font-size:17px}#welcome .template-heading p{max-width:130px;font-size:10px}#welcome #template-options{grid-template-columns:1fr;gap:16px}#welcome .template-poster,#welcome .template-poster.portrait{height:auto;aspect-ratio:16/9}#welcome .template-purpose{min-height:0}#welcome .template-card-actions button{min-height:40px;font-size:12px}#welcome .home-notes{gap:20px}body:not(.editing)>header{display:flex;flex-wrap:nowrap;padding:0 16px}body:not(.editing)>header .brand{width:auto;flex:0 0 auto}body:not(.editing)>header .header-actions{display:flex;margin-left:auto}body.editing>header #save::after{display:none}body.editing>header #save{width:32px;padding:0}}
@media print{
 @page{size:A4;margin:12mm}
 html,body:not(.editing){height:auto!important;min-height:0!important;overflow:visible!important;width:100%!important;min-width:0!important;background:#fff!important;color:#222!important}
 body:not(.editing)>header{height:auto;padding:0 0 5mm;border-bottom:1px solid #ccc}
 body:not(.editing)>header .header-actions,.home-nav,.home-feature,.scene-start-actions,.template-filter,.template-play,.template-card-actions,#home-ad-placement{display:none!important}
 #welcome{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:5mm 0!important}
 #welcome .scene-start{width:100%!important;max-width:none!important;padding:0!important}
 #welcome .scene-start-heading{display:block;padding-bottom:4mm}
 #welcome .scene-start h1{font-size:22pt;margin:0 0 3mm}
 #welcome .scene-start-heading p{font-size:10pt}
 #welcome .home-steps{grid-template-columns:repeat(3,1fr);padding:3mm 0}
 #welcome .starter-examples{margin-top:0;padding-top:4mm}
 #welcome .template-heading h2{font-size:14pt}
 #welcome #template-options{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important;gap:5mm!important}
 #welcome .template-card{display:block!important;grid-row:auto!important;break-inside:avoid;page-break-inside:avoid;height:auto!important}
 #welcome .template-card[hidden]{display:none!important}
 #welcome .template-card-inner{height:auto!important;border:1px solid #bbb;box-shadow:none}
 #welcome .template-poster,#welcome .template-poster.portrait{height:40mm!important;aspect-ratio:auto!important}
 #welcome .template-card-content{padding:3mm}
 #welcome .template-card-content h3{font-size:11pt}
 #welcome .template-meta,#welcome .template-purpose{font-size:9pt;line-height:1.6;min-height:0}
 #welcome .template-category,#welcome .template-duration{font-size:8pt}
 #welcome .home-notes,#welcome .home-faq{break-inside:avoid;page-break-inside:avoid}
 #welcome .gallery-foot{font-size:8pt;break-inside:avoid}
}

/* Guide entry is scoped to the welcome screen. */
#welcome .home-guide-entry{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 14px;border:1px solid var(--accent);border-radius:5px;font-size:12px;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap}
#welcome .home-guide-feature{color:var(--text);text-decoration:none}#welcome .home-guide-feature:hover{border-color:var(--accent)}
#welcome .home-guide-feature img{height:146px;object-fit:cover}
#welcome .fizzi-start{display:flex;align-items:center;gap:16px;padding:16px;margin:0 0 14px;border:1px solid var(--accent);border-radius:8px;background:var(--panel)}
#welcome .fizzi-start[hidden]{display:none}#welcome .fizzi-start div{flex:1}#welcome .fizzi-start b{display:block;font-size:14px}#welcome .fizzi-start span{display:block;margin-top:5px;font-size:11px;color:var(--muted)}#welcome .fizzi-start button{background:var(--primary);color:var(--button-text);font-size:12px;white-space:nowrap}#welcome .fizzi-start a{font-size:11px;color:var(--muted);white-space:nowrap}
@media(max-width:700px){#welcome .home-guide-entry{flex:1}#welcome .home-nav>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}#welcome .home-nav>span{max-width:105px;flex:none}#welcome .fizzi-start{flex-wrap:wrap}#welcome .fizzi-start div{flex-basis:100%}#welcome .home-guide-feature{display:none}}
@media print{.home-guide-entry,.fizzi-start{display:none!important}}

/* product-demo.css */
/* Scoped product tour: editor layout and historical pages are unaffected. */
.home-demo-nav{font:inherit;color:var(--accent);border:0;background:none;padding:0;min-height:0;cursor:pointer;white-space:nowrap}.home-demo-cta{font-weight:650;border-color:var(--accent);white-space:nowrap}.home-demo-feature{padding:0;text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%;display:block}.home-demo-feature img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.home-demo-feature .home-feature-caption{display:block}.home-demo-feature .home-feature-play{display:inline-flex}.home-demo-feature:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
#product-demo-dialog{color-scheme:dark;box-sizing:border-box;width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:20px;background:#121410;color:#eeeee6;border:1px solid #454b3d;border-radius:12px;overflow:auto;overscroll-behavior:contain}#product-demo-dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}.product-demo-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.product-demo-heading span{font-size:12px;color:#adb3a4}.product-demo-heading h2{font-size:21px;margin:5px 0;line-height:1.4}.product-demo-close{flex:none;background:#24291f;color:#eeeee6;border:1px solid #454b3d;border-radius:5px;font-size:25px;line-height:1;width:38px;height:38px;cursor:pointer}.product-demo-player video{display:block;box-sizing:border-box;width:100%;height:auto;max-height:66dvh;aspect-ratio:16/9;object-fit:contain;background:#000;border:1px solid #34392e;border-radius:6px}.product-demo-chapters{display:flex;flex-wrap:wrap;gap:7px;padding:12px 0 0}.product-demo-chapters button{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;font:inherit;font-size:12px;border:1px solid #454b3d;border-radius:5px;background:#24291f;color:#eeeee6;cursor:pointer}.product-demo-chapters button:hover{background:#343d2c;border-color:#d2b98f}.product-demo-note{display:flex;flex-wrap:wrap;gap:7px 18px;font-size:12px;line-height:1.6;color:#adb3a4;margin:12px 0}.product-demo-note a,.product-demo-guide-link{color:#d2b98f}.product-demo-guide-link{display:inline-block;font-size:13px;margin-top:2px}.product-demo-status{width:100%;color:#e5c591}.guide-product-demo{scroll-margin-top:90px;padding:30px 0 38px;border-top:1px solid #34392e}.guide-demo-heading h2{margin-bottom:12px}.guide-demo-heading p:not(.eyebrow){color:#adb3a4;max-width:760px;margin-bottom:20px}.product-demo-player button:focus-visible,.product-demo-close:focus-visible{outline:2px solid #d2b98f;outline-offset:3px}
@media(max-width:640px){#product-demo-dialog{padding:13px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.product-demo-heading h2{font-size:17px}.product-demo-player video{max-height:60dvh}.product-demo-chapters{gap:6px}.product-demo-chapters button{flex:1 0 28%;padding:8px 5px;font-size:11px}.home-demo-nav{font-size:11px}.guide-product-demo{padding-top:24px}.guide-demo-heading h2{font-size:23px}}
#welcome .home-demo-feature .home-feature-caption small{display:block;margin-top:5px}
@media print{[data-demo-open],#product-demo-dialog,.guide-product-demo{display:none!important}}

/* element-follow.css */
 .element-follow{margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:6px}.element-follow legend{font-size:12px;font-weight:650;color:var(--accent)}.element-follow label{display:block;font-size:11px;color:var(--muted)}.element-follow select{width:100%;margin-top:5px;font-size:12px}.follow-offsets{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.follow-offsets input{display:block;width:100%;margin-top:4px}.element-follow p{font-size:11px;color:var(--muted);line-height:1.7;margin:9px 0 0}.element-follow:disabled{opacity:.7}
/* course-entry.css */
#welcome .home-course-card{display:flex;align-items:center;gap:20px;margin:18px 0 6px;padding:16px;border:1px solid var(--accent);border-radius:9px;background:var(--panel);text-decoration:none;color:var(--text)}#welcome .home-course-card img{width:146px;height:82px;object-fit:cover;border:1px solid var(--line);border-radius:5px;flex:none}#welcome .home-course-card div{flex:1;min-width:0}#welcome .home-course-card span{color:var(--accent);font-size:11px}#welcome .home-course-card b{display:block;font-size:16px;line-height:1.5;margin:4px 0}#welcome .home-course-card small{display:block;font-size:11px;color:var(--muted)}#welcome .home-course-card strong{font-size:12px;color:var(--accent);white-space:nowrap}#welcome .home-guide-entry{background:var(--primary);color:var(--button-text)}@media(max-width:700px){#welcome .home-course-card{gap:12px;padding:13px;flex-wrap:wrap}#welcome .home-course-card img{width:94px;height:66px}#welcome .home-course-card b{font-size:13px}#welcome .home-course-card small{font-size:10px}#welcome .home-course-card strong{margin-left:106px;font-size:12px}}@media print{#welcome .home-course-card{display:none}}