/* Three tasks, one saved event. Preview and form nodes stay attached. */
#main .scene-editor{display:grid;grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:26px;align-items:start}
#main .scene-editor .scene-settings{display:block;min-width:0}
.scene-tabs{display:flex;gap:4px;padding:4px;margin-bottom:18px;background:#ede9e1;border:1px solid #e1dbce;border-radius:10px}
.scene-tabs button{flex:1;min-width:0;min-height:38px;padding:8px 5px;border:0;border-radius:7px;background:transparent;color:#827765;font:inherit;font-size:13px;font-weight:550;white-space:nowrap;cursor:pointer}
.scene-tabs button[aria-selected=true]{background:#fffdf9;color:#3e3526;box-shadow:0 1px 4px #41362014}
.scene-tab-panel{display:grid;gap:16px}
.scene-tab-panel[hidden],[data-scene-mode][hidden],.scene-preview-canvas[hidden],.scene-mode-detail[hidden]{display:none!important}
#main .scene-editor .scene-tab-panel>.panel,#main .scene-editor .scene-tab-panel>[data-scene-mode]>.panel{margin:0;padding:22px}
#main .scene-editor .scene-tab-panel .scene-fold{margin:0}
#main .scene-editor .scene-tab-panel h2{font-size:14px;font-weight:600;margin:0 0 17px;color:#554934}
#main .scene-editor .scene-tab-panel h3{font-size:12px;margin:19px 0 11px;color:#8c7c61;font-weight:500}
#main .scene-editor .scene-tab-panel .field{margin-bottom:16px;gap:7px}
#main .scene-editor .scene-tab-panel .field>span{font-size:12px;color:#7b705e}
#main .scene-editor .scene-tab-panel .field input,#main .scene-editor .scene-tab-panel .field select,#main .scene-editor .scene-tab-panel .field textarea{font-size:13px;min-height:38px;padding:8px 10px}
#main .scene-editor .scene-tab-panel .grid2{gap:0 14px}
#main .scene-editor .scene-tab-panel .button{font-size:12px;min-height:35px;padding:8px 13px}
#main .scene-editor .scene-tab-panel .button.primary{margin-top:3px}
#main .scene-editor .scene-fold>summary{font-size:13px;min-height:23px;gap:8px}
#main .scene-editor .scene-fold[open]>summary{margin-bottom:20px}
#main .scene-editor .checkline{font-size:12px;line-height:1.6;margin:16px 0;gap:9px}
.scene-editor .mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.scene-editor .mode-buttons button{padding:10px 5px;min-height:38px;font-size:12px;border-radius:6px}
.scene-theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.scene-theme{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:9px;min-width:0;padding:7px 7px 10px;border:1px solid #e6decf;border-radius:8px;background:#fffdf8;color:#81735c;text-align:left;font:inherit;font-size:12px;cursor:pointer}
.scene-theme>span:last-of-type{padding:0 2px}
.scene-theme.active{border-color:#ac8a48;background:#fbf5e9;color:#65502d;box-shadow:0 0 0 1px #ac8a4822}
.scene-theme>i[data-icon]{position:absolute;bottom:10px;right:9px;width:14px;height:14px;color:#a18245}
.scene-theme-swatch{position:relative;display:block;overflow:hidden;aspect-ratio:2.3;border-radius:5px;background:var(--theme-bg);box-shadow:inset 0 0 0 1px #ffffff0c}
.scene-theme-swatch>i{position:absolute;top:24%;width:26%;height:54%;border:1px solid var(--theme-accent);background:var(--theme-card);border-radius:3px;box-shadow:0 3px 10px #00000018;transform:rotate(-8deg)}
.scene-theme-swatch>i:nth-child(1){left:12%}.scene-theme-swatch>i:nth-child(2){left:38%;top:19%;transform:none}.scene-theme-swatch>i:nth-child(3){left:64%;transform:rotate(8deg)}
.scene-theme-swatch>i:after{content:'';position:absolute;left:26%;right:26%;top:38%;height:3px;background:var(--theme-ink);opacity:.9}
.scene-current-theme{display:block;margin-top:12px;font-size:11px;color:#9c8353}
#main .scene-editor .scene-asset-link{display:flex;margin:0;padding:14px 5px;align-items:center;gap:9px;font-size:12px}
.scene-editor .particle-fields{display:block}
.scene-editor .particle-fields>div{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.scene-editor .particle-fields>div>.field:first-child{grid-column:1/-1}
.scene-editor .particle-fields textarea{min-height:120px}
.scene-editor .particle-panel .row{gap:5px;flex-wrap:wrap}
.scene-editor .custom-color-fields{grid-template-columns:1fr 1fr;gap:0 12px}
.scene-editor .custom-color-fields input[type=color]{padding:4px!important;height:38px}
.scene-saved-presets{display:contents}
#main .scene-editor .scene-preview{position:sticky;top:91px;display:block;grid-row:auto;min-width:0;border:1px solid #ded8cb;border-radius:12px;overflow:hidden;background:#fffdf9;box-shadow:0 8px 25px #58441a05;padding:0;align-self:start}
.scene-preview-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;background:#fcfaf6;border-bottom:1px solid #e4ded1}
.scene-preview-heading>strong{font-size:12px;font-weight:550;color:#7e7059}
.scene-preview-heading .row{gap:6px;flex-wrap:nowrap}
.scene-preview-heading .icon-button{width:29px;min-height:29px;height:29px;padding:6px;border-radius:6px}
.scene-preview-heading .icon-button i{width:14px;height:14px}
.scene-preview-canvas{min-width:0;position:relative}
.scene-preview-canvas>.stage-frame{aspect-ratio:16/10;height:auto;border:0;border-radius:0}
.scene-preview-canvas>.stage-frame iframe{width:100%;height:100%}
.scene-preview-caption{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;color:#9c8b6c;font-size:11px;border-top:1px solid #e9e2d5;background:#fcfaf6}
.scene-person-surface{display:grid;place-items:center;min-height:330px;aspect-ratio:16/10;padding:35px;background:var(--scene-bg);container-type:inline-size}
.scene-person-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;width:min(68%,300px);aspect-ratio:1.12;padding:26px 22px;border:1px solid var(--scene-accent);border-radius:11px;background:var(--scene-card);color:var(--scene-ink);box-shadow:0 10px 35px #00000012;text-align:center;position:relative;overflow:hidden;container-type:inline-size}
.scene-person-card[data-card-layout=outline]{background:color-mix(in srgb,var(--scene-card) 55%,transparent);box-shadow:inset 0 0 0 3px #ffffff0a,0 10px 35px #0000000b}
.scene-person-card[data-card-layout=ticket]{border-left-width:6px;border-radius:4px 11px 11px 4px}
.scene-person-card[data-font=song]{font-family:'Songti SC','STSong','Noto Serif CJK SC',serif}
.scene-person-line{display:block;width:100%;text-align:center;overflow-wrap:anywhere;font-size:clamp(14px,2.8cqw,24px);line-height:1.4}
.scene-person-line.is-primary{font-size:clamp(16px,calc(88cqw/var(--name-units)),44px);font-weight:700;white-space:nowrap;line-height:1.25}
.scene-person-photo{width:65px;height:65px;object-fit:cover;border-radius:12px;margin-bottom:2px}
.scene-result-preview{min-height:330px;padding:15px;background:#faf8f3}
.scene-result-preview>.arrangement-preview{margin:0;border-color:#d9cba9;background:var(--scene-bg);color:var(--scene-accent);max-height:none}
.scene-result-preview .arrangement-preview-cards>span{background:var(--scene-card);color:var(--scene-ink);border-color:var(--scene-accent)}
.scene-result-preview .arrangement-preview-title{color:var(--scene-accent)}
.scene-result-preview .arrangement-preview.portrait{max-width:330px}
.scene-result-preview .arrangement-preview-caption{padding:0 2px;margin-top:13px;color:#8d7d61;font-size:11px}
.scene-winner-settings #arrangement-preview{display:none}
.scene-winner-settings .arrangement-preview-tools{gap:12px;margin-top:18px}
.scene-winner-settings .arrangement-advanced>summary{font-size:12px}
.scene-winner-settings .arrangement-rule{grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr) minmax(0,1fr);gap:6px}
.scene-winner-settings .arrangement-rule>.button{grid-column:4;justify-self:end;padding:3px 7px!important;min-height:24px!important;font-size:11px!important}
.scene-preview-canvas:fullscreen{display:grid;place-items:center;width:100vw;height:100vh;background:#f4f0e5;padding:24px}
.scene-preview-canvas:fullscreen>.stage-frame{width:100%;height:100%;aspect-ratio:auto}
.scene-preview-canvas:fullscreen>.scene-person-surface{width:100%;height:100%;aspect-ratio:auto}
.scene-preview-canvas:fullscreen>.arrangement-preview{width:min(100%,1500px);max-height:100%;margin:auto}
@media(max-width:1250px){#main .scene-editor{grid-template-columns:minmax(280px,335px) minmax(0,1fr);gap:20px}#main .scene-editor .scene-tab-panel>.panel,#main .scene-editor .scene-tab-panel>[data-scene-mode]>.panel{padding:19px}.scene-tabs button{font-size:12px}.scene-person-surface{padding:25px;min-height:300px}.scene-person-card{width:min(78%,270px)}}
@media(max-width:900px){#main .scene-editor{grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:16px}.scene-person-surface{min-height:300px;padding:22px 15px}.scene-person-card{width:86%;padding:22px 15px;gap:12px}.scene-person-line{font-size:16px}.scene-person-line.is-primary{font-size:clamp(14px,calc(88cqw/var(--name-units)),34px)}.scene-preview-heading{padding:12px}.scene-preview-caption{padding:11px 12px;font-size:10px}}
@media(max-width:720px){#main .scene-editor{grid-template-columns:minmax(0,1fr);gap:19px}#main .scene-editor .scene-preview{position:static;grid-row:2}.scene-tabs{position:sticky;top:72px;z-index:8;margin-bottom:15px}.scene-tab-panel{gap:13px}.scene-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.scene-theme{font-size:11px;padding:5px 5px 8px}.scene-theme>i[data-icon]{bottom:7px;right:5px;width:12px;height:12px}.scene-theme-swatch{aspect-ratio:1.8}.scene-editor .mode-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.scene-editor .mode-buttons button{font-size:11px;min-height:39px}.scene-person-surface{aspect-ratio:16/10;min-height:290px}.scene-person-card{width:min(65%,280px);gap:14px}.scene-person-line.is-primary{font-size:clamp(14px,calc(88cqw/var(--name-units)),40px)}.scene-person-line{font-size:18px}.scene-result-preview{min-height:260px;padding:12px}.scene-tabs button{font-size:12px}.scene-editor .scene-mode-detail .mode-buttons{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.scene-theme-grid{grid-template-columns:1fr 1fr}.scene-editor .mode-buttons{grid-template-columns:1fr 1fr}.scene-tabs button{font-size:11px}.scene-person-card{width:78%;padding:20px 15px}}

/* Letterbox short viewports instead of cropping a wide canvas under the footer. */
#main .scene-editor{--scene-canvas-height:clamp(150px,calc(100svh - 300px),620px)}
.setup-guided #main .scene-editor{--scene-canvas-height:clamp(140px,calc(100svh - 450px),560px)}
.scene-preview-canvas[data-scene-preview=stage]{display:grid;place-items:center;background:#e9e4d9}
.scene-preview-canvas>.stage-frame{width:min(100%,calc(var(--scene-canvas-height)*1.6));height:auto;max-height:none;margin:auto;aspect-ratio:16/10}
.scene-card-preview{height:var(--scene-canvas-height);min-height:0}
.scene-person-surface{height:100%;min-height:0;aspect-ratio:auto;padding:20px}
.scene-person-card{width:min(68%,300px,calc((var(--scene-canvas-height) - 40px)*1.12));max-height:calc(var(--scene-canvas-height) - 40px);gap:clamp(8px,1.6vh,15px);padding:20px 18px}
.scene-result-preview{display:grid;align-content:center;justify-items:center;min-height:0;min-height:var(--scene-canvas-height);padding:12px}
.scene-result-preview>.arrangement-preview{width:min(100%,calc((var(--scene-canvas-height) - 42px)*1.77778));max-width:none;max-height:none}
.scene-result-preview>.arrangement-preview.ultra{width:min(100%,calc((var(--scene-canvas-height) - 42px)*2.66667))}
.scene-result-preview>.arrangement-preview.portrait{width:min(100%,calc((var(--scene-canvas-height) - 42px)*.714286));max-width:none}
.scene-result-preview>.arrangement-preview-caption{width:100%;min-width:0;justify-content:center;gap:8px;margin-top:10px;text-align:center;font-size:10px}
#main .scene-editor .scene-fold>summary:after{content:'';width:7px;height:7px;border-right:1px solid #a38b60;border-bottom:1px solid #a38b60;transform:rotate(45deg);flex:none;margin-right:3px}
#main .scene-editor .scene-fold[open]>summary:after{transform:rotate(225deg)}
.scene-preview-canvas:fullscreen>.stage-frame{width:100%;max-height:none;aspect-ratio:auto}
.scene-card-preview:fullscreen{height:100vh}.scene-card-preview:fullscreen .scene-person-card{width:min(65%,520px);max-height:85vh}
.scene-result-preview:fullscreen>.arrangement-preview{width:min(100%,1500px);max-height:90vh}
@media(max-width:720px){#main .scene-editor,.setup-guided #main .scene-editor{--scene-canvas-height:clamp(220px,45svh,400px)}#main .scene-editor .scene-preview{grid-row:1}.scene-person-card{width:min(74%,300px,calc((var(--scene-canvas-height) - 40px)*1.12))}}

/* One page, with optional card and reveal controls beside the live stage. */
#main .scene-editor[data-unified]{grid-template-columns:minmax(300px,360px) minmax(0,1fr);--scene-canvas-height:clamp(220px,calc(100svh - 300px),680px)}
.scene-editor[data-unified] .scene-settings{display:grid!important;gap:18px}
.scene-editor[data-unified] .scene-tab-panel{gap:18px}
.scene-editor[data-unified] .unified-card-settings,.scene-editor[data-unified] .unified-winner-settings{background:white;border:1px solid #e5dfd2;border-radius:12px;padding:20px 22px}
.scene-editor[data-unified] .unified-card-settings>.panel,.scene-editor[data-unified] .unified-winner-settings>.panel{padding:18px 0 0;border:0;box-shadow:none;margin:0;background:transparent}
.scene-editor[data-unified] .scene-card-preview{height:230px;border-radius:8px;overflow:hidden;margin-top:18px}
.scene-editor[data-unified] .scene-person-card{max-height:190px;font-size:16px}
.scene-editor[data-unified] .scene-result-preview[hidden]{display:none!important}
.scene-editor[data-unified] .scene-preview{position:sticky;top:92px}
@media(max-width:850px){#main .scene-editor[data-unified]{grid-template-columns:minmax(270px,320px) minmax(0,1fr)}}
@media(max-width:720px){#main .scene-editor[data-unified]{grid-template-columns:minmax(0,1fr);--scene-canvas-height:clamp(220px,42svh,360px)}.scene-editor[data-unified] .scene-preview{position:static}}
#main .scene-editor[data-unified]{--scene-canvas-height:clamp(210px,calc(100svh - 395px),680px)}

.scene-person-card[data-avatar-only=true]{position:relative;padding:0;aspect-ratio:1;overflow:hidden}.scene-person-card[data-avatar-only=true]>.scene-person-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;margin:0}.scene-person-card[data-avatar-only=true]>.scene-person-line{visibility:hidden}
