@charset "UTF-8";
:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:#303a35;background:#f5f5f1;font-synthesis:none;--ink:#303a35;--muted:#7b827a;--line:#e4e6df;--accent:#bd512f;--sidebar:246px;--track:var(--sidebar)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:0;background:transparent;color:inherit;cursor:pointer;font-size:12px;font-weight:500;white-space:nowrap;text-decoration:none;border-radius:7px;padding:0 13px}button:hover,.button:hover{background:#edf0e9}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[role=slider]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button[aria-pressed=true]{background:#e8ece5;color:#334b3c}.dark{background:var(--ink);color:white}.dark:hover{background:#45584a}.outline{border:1px solid #dfe3da;background:#fff}.quiet{color:#626b60}.full{width:100%}.icon-button{min-width:44px;padding:0;font-size:20px}.muted{color:var(--muted);font-weight:400}.micro{font-size:10px;color:var(--muted);line-height:1.7}.eyebrow,.section-kicker{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;letter-spacing:1.5px;color:#828b7e}.app{height:100dvh;min-height:700px;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);grid-template-rows:82px minmax(270px,1fr) 312px;overflow:hidden}.topbar{grid-column:1/-1;display:flex;align-items:center;padding:0 26px;gap:26px;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:27px;font-weight:650;letter-spacing:-1.4px;text-decoration:none}.brand-mark{width:32px;height:32px;background:var(--ink);color:white;border-radius:8px;font-size:31px;font-family:Georgia,serif;font-style:italic;line-height:27px;text-align:center;letter-spacing:-2px}.brand-mark span{color:#d3ddbc}.brand-dot{color:#8b9c79}.header-divider{height:26px;width:1px;background:var(--line)}.project-heading{display:flex;flex-direction:column;gap:3px;min-width:0}.project-heading button{justify-content:flex-start;font-size:13px;font-weight:600;padding:0;min-height:25px;overflow:hidden;text-overflow:ellipsis;max-width:240px}.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}#save-status{font-size:10px;color:#698366;margin-right:13px}.sidebar{background:#fff;border-right:1px solid var(--line);grid-row:2;overflow:auto;display:flex;flex-direction:column}.sidebar-top{padding:24px 20px 12px}.section-heading{display:flex;align-items:center;gap:10px;margin-top:3px}.section-heading h1{font-size:20px;font-weight:600;letter-spacing:-.6px;margin:0}.section-heading .icon-button{margin-left:auto;font-size:21px}.count{font:11px ui-monospace,monospace;background:#eff1eb;padding:3px 7px;border-radius:4px;color:#737e6b}.sidebar-top p{font-size:10px;margin:2px 0 3px;line-height:1.7}.actor-list{padding:0 10px}.actor-row{display:flex;align-items:center;border:1px solid transparent;border-radius:8px;margin:4px 0;min-height:64px;position:relative}.actor-row.selected{background:#f0f3eb;border-color:#e0e6d7}.actor-select{padding:8px 10px;display:flex;gap:11px;justify-content:flex-start;width:100%;min-width:0;text-align:left}.actor-badge{background:var(--actor-color);border-radius:50%;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;color:white;font:600 11px ui-monospace,monospace;flex-shrink:0}.actor-meta{display:flex;flex-direction:column;gap:5px;overflow:hidden}.actor-meta strong{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.actor-meta small{font-size:9px;color:#858c81;font-weight:400}.actor-edit{min-width:34px;padding:0;margin-right:5px;color:#92998c;align-self:stretch;font-size:19px}.add-wide{margin:8px 20px 20px;border:1px dashed #d8dfd0;color:#7b8770;font-size:11px;flex-shrink:0}.inspector{margin:0 20px;padding:18px 0;border-top:1px solid var(--line)}.inspector-head{display:flex;justify-content:space-between;font-size:11px;margin-bottom:12px}.inspector-head small{color:var(--muted);font-size:9px}.coordinates{display:grid;grid-template-columns:1fr 1fr;gap:8px}.coordinate-field{display:flex;align-items:center;gap:6px;padding:0 8px;height:37px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font:10px ui-monospace,monospace}.coordinate-field input{min-width:0;width:100%;border:0;padding:0;color:var(--ink);font:11px ui-monospace,monospace;background:transparent}.inspector select{width:100%;font-size:10px;margin:10px 0;border:1px solid var(--line);background:white;padding:9px;color:#616e5c;border-radius:5px;height:38px}.inspector .key-actions{display:flex;gap:4px}.inspector .key-actions button{font-size:10px;flex:1;min-height:36px;padding:0 6px}.sidebar-bottom{padding:20px;margin-top:auto;border-top:1px solid var(--line)}.plan-file{display:flex;align-items:center;gap:10px;margin:12px 0}.file-symbol{font-size:25px;color:#879579}.plan-file div{display:flex;flex-direction:column;gap:5px;min-width:0}.plan-file strong{font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-file div span{font-size:9px;color:#8c9287}.sidebar-bottom .outline{justify-content:space-between;font-size:10px;min-height:37px}.sidebar-bottom .micro{margin-bottom:0}.workspace{min-width:0;position:relative;display:flex;flex-direction:column;background:#f1f2ed;overflow:hidden}.workspace-bar{height:57px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #e2e5dc;background:#f8f9f5}.view-title{display:flex;gap:10px;align-items:center;font-size:11px;font-weight:600}.view-title .muted{font-size:10px}.view-dot{width:7px;height:7px;background:#7c9166;border-radius:2px}.view-actions{display:flex;align-items:center;gap:4px}.view-actions button{font-size:10px;min-height:34px}.view-actions .icon-button{font-size:22px;min-width:36px}.tool-divider{height:17px;width:1px;background:#dfe3d7;margin:0 8px}.canvas-viewport{position:relative;flex:1;overflow:auto;overscroll-behavior:contain;padding:28px 45px;background-image:radial-gradient(#cdd4c5 .7px,transparent .7px);background-size:18px 18px}.canvas-paper{background:#fff;box-shadow:0 3px 18px #26311e0b;position:relative;margin:auto;flex-shrink:0;overflow:visible;isolation:isolate}#floor-image{display:block;width:100%;height:100%;pointer-events:none;opacity:.67;filter:saturate(.55)}#paths,#grid,#actor-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#grid{display:none;background-image:linear-gradient(#74896822 1px,transparent 1px),linear-gradient(90deg,#74896822 1px,transparent 1px);background-size:5% 5%}#grid.visible{display:block}.stage-actor{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:var(--actor-color);color:white;border:3px solid white;box-shadow:0 2px 6px #0002;width:40px;height:40px;min-height:40px;padding:0;pointer-events:auto;touch-action:none;cursor:grab;font:600 11px ui-monospace,monospace;z-index:2;user-select:none}.stage-actor:hover{background:var(--actor-color)}.stage-actor.selected{outline:2px solid var(--actor-color);outline-offset:3px;z-index:3}.stage-actor:active{cursor:grabbing}.stage-actor .actor-label{position:absolute;top:44px;left:50%;transform:translateX(-50%);color:var(--ink);font:500 9px -apple-system,sans-serif;white-space:nowrap;background:#ffffffed;padding:4px 7px;border-radius:4px;pointer-events:none;box-shadow:0 1px 4px #0001}.canvas-status{height:47px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#f8f9f5;border-top:1px solid #e5e8df;font-size:10px;color:#7a8372}#stage-hint{display:flex;gap:8px;align-items:center}.hint-dot{width:5px;height:5px;border:1px solid #879978;border-radius:50%}.zoom-controls{display:flex;align-items:center;gap:2px}.zoom-controls button{min-width:36px;padding:0 7px;font-size:12px;min-height:35px}#zoom-fit{font:10px ui-monospace,monospace}.timeline{grid-column:1/-1;min-width:0;display:flex;flex-direction:column;background:#fff;border-top:1px solid #dfe3d8;z-index:4}.transport{display:flex;align-items:center;padding:0 23px;gap:20px;height:65px;flex-shrink:0;border-bottom:1px solid var(--line)}.timeline-title{width:calc(var(--sidebar) - 43px);display:flex;gap:10px;align-items:center;flex-shrink:0}.timeline-title h2{font-size:13px;font-weight:600}.timeline-title span{font:9px ui-monospace,monospace;color:#89907f}.play-controls{display:flex;align-items:center;gap:14px}.play-controls .icon-button{font-size:11px;min-width:28px}.play-button{background:var(--ink);color:white;border-radius:50%;width:35px;min-height:35px;font-size:11px;padding:0}.play-button:hover{background:#53634a}.play-controls output{font:19px ui-monospace,SFMono-Regular,monospace;letter-spacing:-.8px;min-width:85px}.slash,#total-time{font:11px ui-monospace,monospace;color:#99a08f}.play-controls select{border:0;background:transparent;font:10px ui-monospace,monospace;color:#6c7764;height:40px}.timeline-actions{margin-left:auto;display:flex;gap:10px}.timeline-actions button{font-size:11px;min-height:37px}.record-button{border:1px solid #e5b4a7;background:#fff8f4;color:#b85433}.record-button:hover{background:#fae8df}.record-button.active{background:#ba4a31;color:white;border-color:#ba4a31}.record-dot{width:7px;height:7px;background:currentColor;border-radius:50%}.timeline-scroll{flex:1;overflow:auto;position:relative}.timeline-content{min-width:740px;position:relative;min-height:100%;padding-bottom:12px}.ruler-row,.markers-row,.track-row{display:grid;grid-template-columns:var(--track) minmax(0,1fr)}.track-heading{padding:0 24px;display:flex;align-items:center;font-size:9px;color:#849078;border-right:1px solid var(--line);background:#fff;position:sticky;left:0;z-index:3}.track-heading.small{font-size:9px}.ruler-row{height:29px}.ruler{position:relative;margin-right:28px;touch-action:none;cursor:crosshair;border-bottom:1px solid #e8ebe2}.tick{position:absolute;height:100%;border-left:1px solid #dde3d4;padding-left:5px;padding-top:7px;white-space:nowrap;font:9px ui-monospace,monospace;color:#959d8d}.tick:last-child{transform:translateX(-100%);border:0;padding-right:0}.markers-row{height:29px;background:#fbfcf8;border-bottom:1px solid #edf0e7}.marker-lane{position:relative;margin-right:28px}.marker{position:absolute;top:0;transform:translateX(-5px);display:flex;gap:5px;font-size:9px;height:28px;min-height:28px;padding:0 4px;color:#9a7937;max-width:120px;border-radius:3px}.marker span:last-child{overflow:hidden;text-overflow:ellipsis}.marker:hover{background:#f7efd9}.track-row{height:36px}.track-row.selected .track-heading{background:#f4f6f0}.track-label{display:flex;align-items:center;gap:9px;justify-content:flex-start;padding:0 24px;border-radius:0;border-right:1px solid var(--line);min-height:36px;font-size:10px;background:white;position:sticky;left:0;z-index:3}.track-label i{width:7px;height:7px;background:var(--actor-color);border-radius:50%}.track-label span{font:9px ui-monospace,monospace;color:#9aa18f;margin-left:auto}.track-lane{position:relative;margin-right:28px;border-bottom:1px solid #eff1eb;touch-action:none;cursor:crosshair;background:repeating-linear-gradient(to right,#e6eadf 0,#e6eadf 1px,transparent 1px,transparent 10%)}.track-line{position:absolute;top:17px;height:2px;background:var(--actor-color);opacity:.35;pointer-events:none}.keyframe{position:absolute;top:0;transform:translateX(-50%);width:24px;min-height:36px;padding:0;border-radius:0;color:var(--actor-color);font-size:15px;z-index:1;touch-action:none}.keyframe:hover{background:#e9eddf99}.keyframe.current{font-size:20px;text-shadow:0 0 4px white}.playhead-area{position:absolute;left:var(--track);right:28px;top:0;bottom:0;pointer-events:none}.playhead-area #playhead{position:absolute;top:0;bottom:0;width:1px;background:#c25736;z-index:2;left:0}.playhead-area #playhead span{position:absolute;top:0;width:9px;height:9px;left:-4px;background:#c25736;clip-path:polygon(0 0,100% 0,100% 65%,50% 100%,0 65%)}.timeline-footer{padding:0 22px;height:32px;flex-shrink:0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#9ba28e}.timeline-footer>span:last-child{display:flex;align-items:center;gap:7px}#cue-status{color:#829171;font:9px ui-monospace,monospace;letter-spacing:.6px}kbd{font:9px ui-monospace,monospace;border:1px solid #e2e7d9;padding:2px 4px;border-radius:3px;color:#8b957d}.footer-separator{margin:0 5px;color:#c7cebc}#help{min-height:25px;min-width:25px;padding:0;border:1px solid #e1e6d8;border-radius:50%;margin-left:8px}dialog{width:min(450px,calc(100vw - 32px));padding:25px;border:1px solid #dce2d3;border-radius:14px;color:var(--ink);box-shadow:0 20px 100px #1b291b22}dialog::backdrop{background:#24311e66;backdrop-filter:blur(3px)}dialog h2{font-size:23px;letter-spacing:-.8px;margin:6px 0 24px}.dialog-top{display:flex;align-items:center;justify-content:space-between}.dialog-top button{min-height:30px;font-size:25px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:26px}.dialog-actions .danger{margin-right:auto;color:#b05139}.dialog-actions .dark{min-width:80px}#dialog-fields label{display:block;font-size:11px;margin-top:17px;color:#727c69}#dialog-fields input,#dialog-fields select{display:block;width:100%;height:44px;padding:10px 12px;border:1px solid #dce2d4;border-radius:6px;background:#fff;color:var(--ink);margin-top:7px;font-size:15px}#dialog-fields input[type=color]{padding:4px;width:70px}#dialog-fields p,dialog>p,.help-list p{font-size:12px;color:#7b8672;line-height:1.9}.help-list{padding-left:20px;font-size:12px}.help-list li{margin-bottom:18px;padding-left:5px}.help-list p{margin:4px 0}#toast{position:fixed;left:50%;bottom:40px;transform:translate(-50%,15px);background:#303a35;color:#fff;padding:13px 22px;border-radius:8px;font-size:12px;z-index:10;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90vw;line-height:1.6}#toast.visible{opacity:1;transform:translate(-50%,0)}progress{width:100%;accent-color:#75855d;height:8px}#video-preview{width:100%;border-radius:6px;background:#f6f8f1}body.recording .workspace{box-shadow:inset 0 0 0 2px #b75036}body.recording #stage-hint{color:#b75036}[hidden]{display:none!important}
@media(min-width:1500px){:root{--sidebar:270px}.app{grid-template-rows:86px minmax(300px,1fr) 340px}.track-row{height:41px}.keyframe{min-height:41px}.track-line{top:20px}.sidebar-top{padding-top:30px}}
@media(max-width:1100px){:root{--sidebar:220px}.topbar{padding:0 18px;gap:18px}.header-actions{gap:6px}#save-status{display:none}.header-actions button{font-size:10px;padding:0 10px}.transport{padding:0 16px;gap:15px}.timeline-title{width:calc(var(--sidebar) - 32px)}.timeline-title span{display:none}.play-controls{gap:9px}.timeline-actions{gap:6px}.timeline-actions button{padding:0 9px;font-size:10px}.canvas-viewport{padding:25px}.sidebar-top p{font-size:9px}.project-heading button{max-width:190px}.sidebar-bottom{padding:17px}.view-title .muted{display:none}}
@media(max-width:800px){:root{--sidebar:185px}.topbar{padding:0 14px;gap:14px}.brand{font-size:23px}.brand-mark{width:29px;height:29px;font-size:28px;line-height:25px}.header-divider{display:none}.header-actions button{font-size:10px;padding:0 9px}.eyebrow{font-size:8px;letter-spacing:1px}.project-heading button{font-size:11px;max-width:155px}.sidebar-top{padding:18px 14px 10px}.sidebar-top p{display:none}.actor-row{min-height:59px}.actor-select{gap:8px;padding:8px}.actor-badge{width:29px;height:29px}.actor-meta strong{font-size:11px}.actor-meta small{font-size:8px}.actor-edit{min-width:28px}.inspector{margin:0 14px}.add-wide{margin:8px 14px 16px}.sidebar-bottom{padding:16px 14px}.workspace-bar{padding:0 12px}.view-actions button{padding:0 8px}.view-actions .tool-divider{margin:0 3px}.view-actions .icon-button{min-width:30px}.canvas-status{padding:0 10px;font-size:8px}.zoom-controls button{min-width:28px;padding:0 5px}.timeline-title{width:auto;min-width:100px}.transport{gap:15px}.timeline-actions button{padding:0 8px}.play-controls{gap:6px}.play-controls output{font-size:17px;min-width:75px}.timeline-footer{padding:0 15px}.app{grid-template-rows:74px minmax(280px,1fr) 312px}}
@media(max-width:600px){:root{--sidebar:150px;--track:150px}.app{min-height:850px;grid-template-rows:110px minmax(380px,1fr) 320px}.topbar{flex-wrap:wrap;gap:5px 15px;padding:9px 14px}.header-actions{width:100%;justify-content:flex-end;gap:8px}.header-actions button{min-height:34px}.brand{font-size:21px}.brand-mark{width:25px;height:25px;font-size:24px;line-height:22px}.project-heading{margin-left:auto}.eyebrow{display:none}.project-heading button{max-width:220px}.actor-list{padding:0 5px}.actor-meta small{display:none}.actor-meta strong{font-size:10px}.actor-select{padding:5px;gap:6px}.actor-badge{width:24px;height:24px;font-size:9px}.actor-edit{min-width:24px}.actor-row{min-height:48px}.sidebar-top{padding:14px 10px 8px}.section-kicker{font-size:8px}.section-heading h1{font-size:17px}.section-heading .icon-button{min-width:28px}.inspector{margin:0 10px}.inspector-head{font-size:9px}.inspector-head small{display:none}.coordinates{gap:4px}.coordinate-field{padding:0 4px;gap:2px}.inspector .key-actions{flex-wrap:wrap}.inspector select{font-size:9px;padding:6px}.sidebar-bottom{padding:12px 10px}.file-symbol{display:none}.plan-file strong{font-size:9px}.canvas-viewport{padding:18px 8px}.workspace-bar{height:auto;min-height:65px;flex-wrap:wrap;padding:8px;gap:4px}.view-title{font-size:10px}.view-actions{margin-left:auto}.view-actions button{min-height:26px;padding:0 7px;font-size:9px}.canvas-status{height:63px;gap:3px;flex-wrap:wrap;justify-content:center}#stage-hint{font-size:8px;line-height:1.5;text-align:center}.transport{height:90px;flex-wrap:wrap;padding:8px 10px;gap:5px 10px}.timeline-title{min-width:90px}.timeline-title h2{font-size:11px}.play-controls{margin-left:auto}.play-controls output{font-size:15px;min-width:67px}.play-controls .icon-button{min-width:24px}.timeline-actions{width:100%;justify-content:flex-end}.timeline-actions button{min-height:32px}.timeline-footer>span:last-child{font-size:0;gap:0}.timeline-footer kbd,.footer-separator{display:none}.stage-actor{width:36px;height:36px;min-height:36px}.stage-actor .actor-label{top:39px}.sidebar .add-wide{font-size:10px;margin:6px 10px 14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
/* Keep cast controls available while the stage and timeline share the right pane. */
#crop-frame{position:relative;overflow:hidden;margin:auto;background:white;box-shadow:0 3px 18px #26311e0b}
#crop-frame .canvas-paper{margin:0;box-shadow:none}
#center-actor{margin-top:8px;font-size:10px;min-height:36px}
:root{--track:130px}
.app{grid-template-rows:76px minmax(300px,1fr) 268px}
.sidebar{grid-row:2/4}
.timeline{grid-column:2}
.transport{height:60px;padding:0 18px;gap:15px}
.timeline-title{width:auto;min-width:95px}.timeline-title span{display:none}
.timeline-title h2{font-size:12px}
.canvas-viewport{padding:18px 30px}
.track-heading,.track-label{padding-left:18px;padding-right:14px}
.timeline-footer>span:last-child{gap:5px}
.timeline-footer .footer-separator{margin:0 2px}
.timeline-footer{padding:0 18px}
.sidebar-bottom .micro{font-size:10px}
.actor-meta small{font-size:10px}.sidebar-top p{font-size:10px}
.section-kicker,.eyebrow{font-size:10px}
@media(min-width:1500px){.app{grid-template-rows:82px minmax(320px,1fr) 296px}}
@media(max-width:1100px){.transport{gap:10px;padding:0 12px}.timeline-title{display:none}.timeline-actions{gap:6px}.canvas-viewport{padding:16px}.timeline-footer{padding:0 12px}.timeline-footer>span:last-child{font-size:0;gap:0}.timeline-footer kbd,.timeline-footer .footer-separator{display:none}}
@media(max-width:800px){.app{grid-template-rows:74px minmax(300px,1fr) 268px}.transport{height:60px}.play-controls{gap:5px}.timeline-actions button{font-size:9px;padding:0 6px}.play-controls output{font-size:15px;min-width:66px}#total-time,.slash{display:none}.play-controls select{max-width:48px}.actor-meta small{font-size:9px}}
@media(max-width:600px){:root{--track:100px}.app{grid-template-rows:110px minmax(380px,1fr) 320px}.timeline{grid-column:1/-1}.sidebar{grid-row:2}.transport{height:90px;padding:8px 10px}.timeline-title{display:flex}.play-controls{gap:6px}.canvas-viewport{padding:18px 8px}.timeline-actions button{font-size:11px;padding:0 10px}.track-label{padding-left:12px}.section-kicker{font-size:8px}}
