:root{--red:#c83d35;--red-dark:#a92e28;--red-soft:#faecea;--ink:#24211e;--muted:#77766f;--line:#d9d9d5;--panel:#fbfbfa;--bg:#e7e7e4;--radius:6px}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font:13px/1.5 "Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--ink);background:#ececea}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app-shell{height:100vh;display:grid;grid-template-rows:58px minmax(0,1fr)}
.topbar{display:grid;grid-template-columns:280px minmax(220px,1fr) auto;align-items:center;padding:0 14px;background:#fff;border-bottom:1px solid var(--line);z-index:20}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:31px;height:31px;display:grid;place-items:center;background:var(--red);color:#fff;font:800 18px Georgia,serif;transform:rotate(-2deg);box-shadow:inset 0 0 0 1px var(--red-dark)}.brand b{display:block;font-size:15px;letter-spacing:.03em}.brand small{display:block;font-size:8px;letter-spacing:.13em;color:#888}.project-title{justify-self:center;display:flex;align-items:center;gap:10px;min-width:0}.project-title strong{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.project-title span{padding-left:10px;border-left:1px solid #ddd;color:#999;font-size:9px}.top-actions{display:flex;align-items:center;gap:6px}.divider{width:1px;height:20px;background:#ddd}.button,.icon-btn,.control{border:1px solid #d5d5d1;background:#fff;color:#333;border-radius:var(--radius)}.button,.icon-btn{height:32px;padding:0 11px}.button:hover,.icon-btn:hover{background:#f1f1ee}.button.primary{background:var(--red);border-color:var(--red-dark);color:#fff;font-weight:650}.button.primary:hover{background:var(--red-dark)}.button.danger{color:var(--red);background:#fff5f3}.icon-btn{width:30px;padding:0;font-size:17px}.control{width:100%;min-height:32px;padding:6px 8px;outline:none}.control:focus{border-color:var(--red);box-shadow:0 0 0 2px #c83d3520}.control.compact{width:118px;padding:0 7px}.control.tiny{width:92px;min-height:26px;height:26px;padding:0 5px;font-size:9px}.button.small{height:27px;padding:0 8px;font-size:10px}.button.square{width:34px;padding:0}.button.grow{flex:1}.button.full{width:100%}
.workspace{min-height:0;display:grid;grid-template-columns:286px minmax(440px,1fr) 300px}.panel{min-width:0;background:var(--panel)}.left-panel{border-right:1px solid var(--line);display:grid;grid-template-rows:44px minmax(0,1fr)}.right-panel{border-left:1px solid var(--line);display:grid;grid-template-rows:44px minmax(0,1fr) 54px}.panel-tabs{display:flex;border-bottom:1px solid var(--line);padding:5px 7px 0}.panel-tabs button{position:relative;flex:1;border:0;background:transparent;color:#85847f;font-size:11px}.panel-tabs button.active{color:var(--ink);font-weight:650}.panel-tabs button.active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--red)}.panel-tabs button span{margin-left:3px;padding:1px 4px;border-radius:8px;background:#e4e4e1;font-size:8px}.left-content{min-height:0;padding:14px;display:flex;flex-direction:column}.section-head,.scene-toolbar,.inspector-title{display:flex;align-items:center;justify-content:space-between}.section-head>div,.scene-toolbar>div{display:grid}.section-head b,.scene-toolbar b,.inspector-title b{font-size:12px}.section-head small,.scene-toolbar small,.inspector-title small{display:block;font-size:9px;color:#999;margin-top:2px}.section-head>span,.inspector-title>span{color:var(--red);font-weight:bold}.script-input{min-height:0;flex:1;margin-top:10px;resize:none;border:1px solid #d5d5d1;background:#fff;border-radius:5px;padding:11px;font-size:12px;line-height:1.7;outline:none}.script-input:focus{border-color:#c88d88}.script-meta{display:flex;justify-content:space-between;padding:7px 2px;color:#999;font-size:9px}.generation-settings{padding:8px 0;border-top:1px solid #e2e2df}.generation-settings label:not(.check-row){display:grid;grid-template-columns:62px 1fr;align-items:center;gap:7px;font-size:9px;color:#777}.generation-settings .control{min-height:28px;height:28px;font-size:10px}.check-row{display:flex;gap:6px;align-items:center;margin-top:7px;font-size:9px;color:#777}.check-row input,.check-field input{accent-color:var(--red)}.generate{height:38px}.local-note{margin-top:10px;padding:9px;background:#f0f0ed;font-size:9px;color:#777}.local-note b{color:#444}.local-note p{margin:2px 0 0}.scene-list{min-height:0;overflow:auto;margin:8px -7px 0;padding:0 7px 20px;scrollbar-width:thin}.scene-card{width:100%;display:grid;grid-template-columns:22px 64px minmax(0,1fr);align-items:center;gap:7px;border:1px solid transparent;background:transparent;padding:6px;text-align:left;margin-bottom:4px}.scene-card:hover{background:#efefec}.scene-card.active{border-color:#e4afa9;background:var(--red-soft)}.scene-card>span{align-self:start;font:600 8px monospace;color:#999}.scene-thumb{aspect-ratio:9/16;background:#fff;border:1px solid #d5d5d0;padding:6px;overflow:hidden}.scene-thumb i{display:block;height:1px;background:var(--red);margin-bottom:7px}.scene-thumb b{font:6px/1.3 KaiTi,serif}.scene-info{min-width:0}.scene-info b,.scene-info small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-info b{font-size:10px}.scene-info small{font-size:8px;color:#999}.drop-zone{margin-top:12px;height:90px;border:1px dashed #c7aaa7;background:#fff8f7;color:#555;display:grid;place-content:center;text-align:center}.drop-zone span{font-size:9px;color:var(--red)}.asset-card{padding:11px 0;border-bottom:1px solid #e1e1de}.asset-card b{font-size:11px}.asset-card p{margin:3px 0 0;color:#777;font-size:9px}.asset-card.muted{opacity:.55}
.stage-panel{min-width:0;min-height:0;display:grid;grid-template-rows:44px minmax(0,1fr) 66px;background-color:var(--bg);background-image:linear-gradient(#dadad6 1px,transparent 1px),linear-gradient(90deg,#dadad6 1px,transparent 1px);background-size:24px 24px}.stage-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 12px;background:#fafaf8ed;border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.ratio-chips,.stage-tools{display:flex;align-items:center;gap:2px}.ratio-chips button,.tool-toggle{height:26px;border:0;background:transparent;color:#777;border-radius:4px;padding:0 7px;font-size:9px}.ratio-chips button{font-family:monospace;font-weight:bold}.ratio-chips button.active{background:var(--ink);color:#fff}.tool-toggle.active{background:#ecece9;color:var(--ink);box-shadow:inset 0 0 0 1px #d2d2ce}.stage-status{display:flex;align-items:center;gap:5px;font-size:8px;color:#777}.stage-status i{height:12px;width:1px;background:#ccc;margin:0 2px}.ok-dot{width:6px;height:6px;border-radius:50%;background:#43a36a;box-shadow:0 0 0 3px #d9ecdf}.stage-tools{justify-self:end}.stage-viewport{min-height:0;overflow:auto;display:grid;place-items:center;padding:18px}.board-scaler{height:100%;max-width:100%;display:grid;place-items:center;transform-origin:center}.board{position:relative;height:100%;max-width:100%;overflow:hidden;background:#fff;color:var(--ink);font-family:KaiTi,STKaiti,"Microsoft YaHei",sans-serif;box-shadow:0 16px 46px #3333,0 1px 2px #0002;container-type:size}.board.paper{background:#f8f4e9}.board-grain{position:absolute;inset:0;opacity:.055;pointer-events:none;background-image:radial-gradient(#888 0 .32px,transparent .65px);background-size:12px 14px}.board.paper .board-grain{opacity:.16}.board-inner{position:absolute;inset:0;padding:6.4% 7.2% 6.8%;display:flex;flex-direction:column}.safe-guide{position:absolute;inset:5.5% 6.1% 6.2%;border:1px dashed #c83d3540;pointer-events:none;z-index:5}.safe-guide:before{content:"安全区";position:absolute;top:2px;right:4px;color:#c83d3560;font:7px sans-serif}.subtitle-guide{position:absolute;z-index:5;pointer-events:none;left:6.1%;right:6.1%;bottom:6.2%;height:15%;border:1px dashed #4789bd70;background:#4789bd09;color:#4789bd;font:7px sans-serif}.subtitle-guide span{position:absolute;right:4px;bottom:2px}.board-element{position:relative;z-index:2;cursor:grab;outline:none;transform:translate(var(--move-x,0px),var(--move-y,0px)) scale(var(--element-scale,1));transform-origin:left center;color:var(--element-color,var(--ink));transition:outline .15s}.board-element:hover,.board-element.selected{outline:1px dashed #c83d3580;outline-offset:4px}.board-element:active{cursor:grabbing}.eyebrow-element{width:max-content;max-width:92%;padding-bottom:1.7%;border-bottom:clamp(1px,.38cqw,3px) solid var(--red);color:var(--red);font:700 clamp(8px,2.85cqw,22px)/1.2 "Segoe UI","Microsoft YaHei",sans-serif;letter-spacing:.035em}.board-layout{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;padding:4.6% 0 2.5%}.title-element{white-space:pre-line;margin:0;max-width:100%;font-size:clamp(27px,10.2cqw,86px);line-height:1.08;font-weight:500;letter-spacing:-.02em;text-wrap:balance;overflow-wrap:anywhere}.red-line{width:46%;height:clamp(2px,.58cqw,5px);background:var(--red);margin:3.2% 0;border-radius:50%;transform:rotate(.35deg)}.accent-element{color:var(--red);font-size:clamp(16px,5.45cqw,46px);line-height:1.25;margin-bottom:2.5%;overflow-wrap:anywhere}.body-element{margin:0;max-width:95%;font-size:clamp(12px,3.55cqw,30px);line-height:1.5;text-align:left;overflow-wrap:anywhere}.board-visual{margin-top:4.5%}.points{display:grid;gap:clamp(6px,1.8cqh,19px)}.point-element{display:grid;grid-template-columns:auto 1fr;gap:3%;align-items:baseline;font-size:clamp(13px,4.05cqw,34px);line-height:1.38}.point-element b{color:var(--red);font:800 .75em Arial,sans-serif}.point-element p{margin:0;overflow-wrap:anywhere}.stack-diagram{display:grid;gap:2.2%}.stack-diagram .point-element{display:block;padding:3.5% 4%;border:clamp(1px,.42cqw,3px) solid var(--ink);text-align:center}.stack-diagram .point-element:nth-child(2){color:var(--red);border-color:var(--red);border-width:clamp(2px,.65cqw,5px)}.flow-diagram{display:grid;grid-template-columns:1fr;gap:clamp(16px,4cqh,34px)}.flow-diagram .point-element{position:relative;display:grid;place-items:center;min-height:clamp(48px,13cqw,110px);border:clamp(1px,.42cqw,3px) solid;padding:3.3% 4%;text-align:center}.flow-diagram .point-element:after{content:"↓";position:absolute;left:50%;bottom:calc(-1 * clamp(16px,3.6cqh,30px));transform:translateX(-50%);z-index:2;color:var(--red);font:700 clamp(13px,3.5cqw,29px) Arial,sans-serif}.flow-diagram .point-element:last-child:after{display:none}.compare-diagram{display:grid;grid-template-columns:1fr auto 1fr;gap:3.5%;align-items:center}.compare-card{min-height:clamp(88px,26cqw,220px);border:clamp(1px,.42cqw,3px) solid;padding:6%;display:flex;flex-direction:column;justify-content:center}.compare-card.red{border-color:var(--red)}.compare-card small{color:#777;font-size:clamp(7px,2.2cqw,18px)}.compare-card b{color:var(--red);font:600 clamp(13px,4.2cqw,36px)/1.2 "Segoe UI","Microsoft YaHei",sans-serif;margin:6% 0}.compare-plus{color:var(--red);font:600 clamp(20px,5.5cqw,46px) Arial,sans-serif}.board footer{margin-top:auto;display:flex;justify-content:space-between;color:#aaa;font:600 clamp(6px,1.55cqw,12px) "Segoe UI","Microsoft YaHei",sans-serif;letter-spacing:.08em}.board.layout-cover .title-element{font-size:clamp(30px,11cqw,92px)}.board.layout-cover .board-visual{margin-top:5.5%}.board.layout-definition .body-element{font-size:clamp(13px,3.8cqw,32px)}.board.sparse .title-element{font-size:clamp(31px,11.4cqw,96px)}.board.sparse .body-element{font-size:clamp(13px,3.9cqw,33px)}.board.dense .board-inner{padding-top:5.7%;padding-bottom:5.9%}.board.dense .board-layout{padding-top:3.4%}.board.dense .board-visual{margin-top:3.2%}.board.wide .board-inner{padding:5.2% 6.5%}.board.wide .board-layout{display:grid;grid-template-columns:1.08fr .92fr;gap:6%;align-items:center;padding:2.8% 0}.board.wide .title-element{font-size:clamp(28px,6.6cqh,70px)}.board.wide .body-element{font-size:clamp(12px,2.8cqh,28px)}.board.wide .accent-element{font-size:clamp(18px,4.2cqh,41px)}.board.wide .board-visual{margin-top:0}.board.wide .flow-diagram{display:grid;grid-template-columns:1fr 1fr;gap:6%}.board.wide .flow-diagram .point-element:after{display:none}.board.wide .compare-diagram{grid-template-columns:1fr;gap:5%}.board.wide .compare-plus{display:none}.board.wide .compare-card{min-height:0;padding:5%}.board.playing .reveal{animation:write .5s both}.board.playing .reveal:nth-child(2){animation-delay:.16s}.board.playing .reveal:nth-child(3){animation-delay:.32s}@keyframes write{from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(5px)}to{opacity:1;clip-path:inset(0)}}
.transport{display:flex;align-items:center;gap:5px;padding:0 12px;background:#fafaf8;border-top:1px solid var(--line)}.transport-btn{width:26px;height:28px;border:0;background:transparent;color:#555;font-size:16px}.play-btn{width:36px;height:36px;border:0;border-radius:50%;background:var(--ink);color:#fff}.timecode{min-width:92px;font:9px monospace;color:#666;text-align:center}.timeline-scroll{position:relative;height:38px;flex:1;overflow:auto;background:#ecece9}.timeline{height:100%;display:flex;min-width:100%}.timeline-clip{position:relative;min-width:42px;height:100%;border:0;border-right:1px solid #d1d1cd;background:#e2e2df;color:#666;padding:4px 6px;text-align:left;overflow:hidden}.timeline-clip.active{background:#f3ceca;color:#7f2823;box-shadow:inset 0 -3px var(--red)}.timeline-clip b{display:block;font-size:8px;white-space:nowrap;overflow:hidden}.timeline-clip small{font-size:7px}.playhead{position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--red);pointer-events:none}.playhead:before{content:"";position:absolute;top:0;left:-3px;border-left:3px solid transparent;border-right:3px solid transparent;border-top:5px solid var(--red)}
.inspector{min-height:0;overflow:auto;padding:14px;scrollbar-width:thin}.inspector-title{margin-bottom:14px}.inspector-title>div{display:flex;align-items:baseline;gap:7px}.field{display:grid;gap:5px;margin-bottom:12px}.field>span{font-size:9px;font-weight:650;color:#666}.field>span small{float:right;color:#999;font-weight:400}.field textarea{min-height:62px;resize:vertical;line-height:1.45}.field .points-input{min-height:84px}.red-text{color:var(--red);font-weight:bold}.range-row{display:grid;grid-template-columns:1fr 38px;align-items:center;gap:7px}.range-row input{accent-color:var(--red);width:100%}.range-row output{color:var(--red);font:650 9px monospace}.quality-box{padding:10px;background:#efefec;font-size:9px}.quality-box>div{display:flex;justify-content:space-between}.quality-box b{color:#398456}.quality-box ul{padding-left:15px;margin:5px 0 0;color:#777}.layer-list{display:grid;gap:4px}.layer-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;border:1px solid #ddd;background:#fff;padding:7px;text-align:left}.layer-item.active{border-color:#dfa49f;background:#fff7f6}.layer-icon{color:var(--red);font-weight:bold}.layer-item b{font-size:10px}.layer-item button{border:0;background:transparent;color:#777}.element-editor{margin-top:14px;padding-top:12px;border-top:1px solid #ddd}.selected-element{display:flex;justify-content:space-between;margin-bottom:12px;font-size:9px}.selected-element b{color:var(--red)}.color-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}.color-options button{height:32px;border:1px solid #ddd;background:#fff;font-size:9px}.color-options button.active{border-color:var(--red)}.color-options i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px}.color-options i.ink{background:var(--ink)}.color-options i.red{background:var(--red)}.color-options i.muted{background:#777}.element-help{font-size:9px;color:#888}.check-field{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.check-field span{display:grid}.check-field b{font-size:10px}.check-field small{font-size:8px;color:#999}.project-actions{display:grid;gap:6px;padding-top:12px;border-top:1px solid #ddd}.offline-badge{margin-top:14px;padding:10px;background:#e8f4eb;color:#34734b;font-size:9px}.offline-badge p{margin:2px 0 0}.scene-actions{display:flex;align-items:center;gap:5px;padding:8px 10px;border-top:1px solid var(--line)}.toast{position:fixed;right:16px;bottom:16px;z-index:50;transform:translateY(20px);opacity:0;pointer-events:none;background:#24211e;color:#fff;padding:10px 14px;border-radius:5px;font-size:10px;transition:.2s}.toast.show{opacity:1;transform:none}
@media(max-width:1100px){.workspace{grid-template-columns:250px minmax(400px,1fr) 260px}.topbar{grid-template-columns:215px 1fr auto}.project-title span{display:none}}@media(max-width:850px){html,body{overflow:auto}.app-shell{height:auto;min-height:100vh}.topbar{grid-template-columns:1fr auto;min-height:58px;height:auto;padding:8px}.project-title{display:none}.top-actions{flex-wrap:wrap;justify-content:flex-end}.workspace{grid-template-columns:1fr;grid-template-rows:380px 720px 600px}.left-panel{border-right:0;border-bottom:1px solid var(--line)}.right-panel{border-left:0;border-top:1px solid var(--line)}.stage-status{display:none}.stage-toolbar{grid-template-columns:1fr auto}.stage-viewport{padding:16px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
