@font-face{font-family:'DM Sans';src:url('fonts/DMSans-VariableFont.woff2') format('woff2');font-weight:100 1000;font-display:swap}@font-face{font-family:'Chivo Mono';src:url('fonts/ChivoMono-VariableFont_wght.woff2') format('woff2');font-weight:100 900;font-display:swap}
*{box-sizing:border-box}body{margin:0;font-size:14px;letter-spacing:-.005em}button,input,select{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,a:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}button:hover{color:var(--text-primary)}[hidden]{display:none!important}.topbar{height:80px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 28px;gap:20px}.top-left,.top-right{display:flex;align-items:center;gap:12px;min-width:0}.top-right{justify-content:flex-end}.brand{display:flex;align-items:center;gap:12px;color:var(--text-primary);text-decoration:none;font:500 14px var(--font-mono);letter-spacing:.06em;white-space:nowrap}.brand b{color:var(--text-secondary);font-size:11px;font-weight:400;margin-left:5px}.orka-mark{width:23px;height:23px;position:relative;transform:rotate(45deg);display:block;margin:0 3px}.orka-mark i{position:absolute;width:10px;height:10px;border:2.5px solid var(--accent-quiet)}.orka-mark i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:6px 0 0}.orka-mark i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 6px 0 0}.orka-mark i:nth-child(3){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 6px}.orka-mark i:nth-child(4){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 6px}.header-divider{height:20px;width:1px;background:var(--border-hairline);margin:0 5px}.quiet-button{color:var(--text-secondary);font-size:14px;padding:8px;border-radius:8px;white-space:nowrap}.quiet-button:hover{background:var(--surface-hover)}.local-note{font-size:12px;color:var(--text-muted)}.compose-group{display:flex;align-items:center;border:1px solid var(--border-hairline);border-radius:12px;padding:4px;background:var(--surface-panel);box-shadow:var(--shadow-1)}.compose-button{padding:8px 16px;border-radius:8px;color:var(--text-primary);font-size:14px;display:flex;gap:8px;align-items:center}.compose-button.active{background:var(--accent);color:white}.compose-button:hover{background:var(--accent);color:white}.clear-points{width:29px;height:29px;margin:0 3px;font-size:20px;color:var(--text-secondary)}.workspace{height:calc(100dvh - 80px);min-height:470px;display:flex;flex-direction:column;align-items:center;padding:20px 40px 26px;gap:0}.stage{flex:1;min-height:0;width:100%;max-width:1240px;display:flex;align-items:center;justify-content:center;padding:15px 0 0}.canvas-wrap{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;min-height:0}canvas{max-width:100%;max-height:100%;width:auto;height:auto;display:block;border-radius:14px;box-shadow:0 0 0 1px #f6f5fd14,0 32px 65px -20px #0004;touch-action:none;cursor:crosshair}.manual-orbit canvas{cursor:grab}.manual-orbit canvas:active{cursor:grabbing}.scene-hint{font-size:14px;color:var(--text-secondary);text-align:center;padding:20px 0 23px;min-height:65px}.scene-hint span{color:var(--text-muted);font-size:12px;margin-left:15px}.dock{display:flex;align-items:center;gap:4px;background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:16px;padding:7px;box-shadow:var(--shadow-2);flex-shrink:0;max-width:100%;position:relative}.segmented{display:flex;padding:3px;gap:1px;border-radius:10px;background:var(--surface-sunken)}.segmented button{color:var(--text-secondary);padding:9px 15px;border-radius:8px;font-size:14px}.segmented button.selected{background:var(--surface-raised);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-hairline)}.dock-separator{width:1px;height:20px;background:var(--border-hairline);margin:0 5px}.dock-button{height:38px;min-width:38px;padding:0 9px;display:flex;align-items:center;justify-content:center;gap:4px;border-radius:9px;color:var(--text-secondary);font-size:22px}.dock-button:hover,.dock-button.active{background:var(--surface-selected);color:var(--accent-quiet)}.dock-button span:not(.color-preview){font:12px var(--font-mono)}.dock-button i{font:italic 24px Georgia,serif}.color-preview{height:20px;width:20px;border:1px solid #fff5;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #ffffff08}.dock select{border:none;background:transparent;font:12px var(--font-mono);color:var(--text-secondary);padding:9px 2px;cursor:pointer;max-width:75px}.dock option{background:var(--surface-panel);color:var(--text-primary)}.primary{height:38px;background:var(--accent);color:var(--on-accent);padding:0 18px;border-radius:9px;display:flex;align-items:center;gap:16px;font-size:14px;font-weight:500;white-space:nowrap;margin-left:6px;min-width:108px;justify-content:center}.primary:hover{background:var(--accent-hover);color:var(--on-accent)}.popover{border:1px solid var(--border-strong);background:var(--surface-panel);color:var(--text-primary);border-radius:14px;box-shadow:var(--shadow-3);padding:22px;width:300px;max-height:calc(100dvh - 160px);overflow:auto;margin:auto;position:fixed;inset:auto 0 110px;scrollbar-width:thin}.popover:popover-open{display:block}.popover::backdrop{background:transparent}.popover section+section{border-top:1px solid var(--border-hairline);padding-top:20px;margin-top:20px}.section-title,.popover-heading{font-size:15px;font-weight:500;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.small,.text-button{font-size:13px;color:var(--accent-quiet);padding:2px}.popover .segmented button{width:50%;padding:7px}.swatches{display:flex;gap:9px;margin:20px 0}.swatch{height:28px;width:28px;flex:1;border-radius:50%;border:3px solid var(--surface-panel);outline:1px solid transparent}.swatch.active{outline-color:var(--accent-quiet)}.color-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;color:var(--text-secondary);margin:14px 0}.color-row>span{display:flex;gap:6px;align-items:center;font:12px var(--font-mono)}input[type=color]{width:22px;height:22px;border:0;padding:0;background:none;cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:0;border-radius:4px}.color-row select,.timeline select{background:var(--surface-raised);border:1px solid var(--border-hairline);border-radius:6px;font-size:12px;color:var(--text-primary);padding:6px;max-width:160px}.range-label{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--text-secondary);margin:17px 0 12px}.range-label output{color:var(--text-primary);font:12px var(--font-mono)}input[type=range]{width:100%;height:3px;appearance:none;background:linear-gradient(to right,var(--accent) var(--progress,50%),var(--surface-hover) var(--progress,50%));border-radius:3px;cursor:pointer;display:block;margin:0 0 24px}input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-primary);box-shadow:0 0 0 3px var(--surface-panel)}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--text-primary)}.range-caption{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin:-9px 0 20px}.lens-badge{font:italic 24px Georgia,serif;color:var(--accent-quiet)}.focus-button{background:var(--surface-selected);border:1px solid var(--border-accent);padding:9px;border-radius:8px;color:var(--accent-quiet);width:100%;font-size:14px}.control-help{font-size:12px;line-height:1.6;color:var(--text-muted);margin:0}.switch-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--text-secondary);margin:24px 0}.switch-row input{appearance:none;width:32px;height:18px;background:var(--surface-hover);border-radius:20px;position:relative;cursor:pointer}.switch-row input:after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;background:white;left:3px;top:3px}.switch-row input:checked{background:var(--accent)}.switch-row input:checked:after{transform:translateX(14px)}.export-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:20px}.library-panel{inset:73px auto auto 28px}.media-list{display:grid;gap:10px}.media-item{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--border-hairline);padding:9px;border-radius:8px;width:100%}.media-item.active{background:var(--surface-selected);border-color:var(--accent)}.media-item img{width:60px;height:40px;object-fit:cover;border-radius:3px}.media-info{min-width:0}.media-info strong{display:block;max-width:155px;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:500;white-space:nowrap}.media-info small,.library-panel>p{color:var(--text-muted);font-size:12px}.focus-marker{position:absolute;width:36px;height:36px;border:1px solid #a393ff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;display:none;z-index:2;box-shadow:0 0 0 1px #0002}.focus-marker span{position:absolute;left:50%;top:50%;width:4px;height:4px;background:#8c75ff;transform:translate(-50%,-50%);border-radius:50%}#selection-box{position:absolute;pointer-events:none;background:#7664ea1c;border:1px solid #7664ea;display:none;z-index:3}#interest-markers{pointer-events:none;position:absolute;inset:0}.interest-dot{position:absolute;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;transform:translate(-50%,-50%);color:#fff;background:var(--accent);box-shadow:0 0 0 3px #7664ea28;font:12px var(--font-mono)}.timeline{width:min(100%,900px);margin:0 0 23px}.timeline-head{display:flex;gap:12px;align-items:center;margin-bottom:15px}.play-button{width:28px;height:32px;color:var(--text-primary);font-size:15px;flex-shrink:0}.keyframes{display:flex;gap:6px;overflow:auto;scrollbar-width:thin;flex:1}.keyframe{border:1px solid var(--border-hairline);background:var(--surface-panel);border-radius:7px;flex-shrink:0;padding:7px 12px;color:var(--text-secondary);font-size:12px}.keyframe.active{border-color:var(--accent);color:var(--accent-quiet);background:var(--surface-selected)}.keyframe-num{display:none}.keyframe small{display:none}.delete-key{color:var(--text-muted);font-size:18px}.add-detail{color:var(--text-secondary);font-size:21px}.timeline #time-readout{color:var(--text-muted);font:11px var(--font-mono);white-space:nowrap}.timeline input{margin:0;height:2px}.video-mode .scene-hint{padding:14px 0 16px;min-height:50px;font-size:12px}.toast{position:fixed;left:50%;bottom:105px;transform:translate(-50%,10px);background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-2);padding:12px 20px;font-size:14px;max-width:90vw;width:max-content;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}.drop-overlay{position:fixed;inset:12px;border:2px dashed var(--accent-quiet);background:#141417ef;display:none;place-items:center;z-index:100;border-radius:18px}.drop-overlay.show{display:grid}.drop-overlay>div{font-size:28px;color:var(--text-primary);text-align:center}.drop-overlay span{display:block;margin-top:14px;color:var(--text-secondary);font-size:14px}.recording header,.recording .workspace>*:not(.dock),.recording .dock>*:not(.export){pointer-events:none;opacity:.75}.recording .popover{pointer-events:none}.recording .export{min-width:145px}.stage.focus-pick canvas{cursor:crosshair}@media(min-width:1700px){.workspace{padding-top:35px;padding-bottom:38px}.scene-hint{padding:25px 0 36px}.stage{max-width:1380px}}@media(max-width:1000px){.topbar{padding:0 20px;gap:12px}.brand b,.local-note,.header-divider{display:none}.top-left{gap:5px}.workspace{padding:10px 24px 24px}.stage{padding-top:5px}.scene-hint{font-size:13px}.dock{gap:2px}.dock-button{padding:0 7px}.segmented button{padding:9px 12px}}@media(max-width:700px){.topbar{height:70px;padding:0 16px;grid-template-columns:1fr auto}.top-right{display:none}.brand>span:last-child{display:none}.library-trigger{display:none}.top-left{gap:12px}.compose-button{padding:7px 12px;font-size:13px}.workspace{height:calc(100dvh - 70px);min-height:480px;padding:8px 16px 20px}.dock{flex-wrap:wrap;justify-content:center;gap:3px;max-width:480px;border-radius:14px;padding:7px}.dock-separator{margin:0 2px}.dock-button{font-size:20px;min-width:32px;height:34px;padding:0 5px}.segmented button{font-size:12px;padding:8px 11px}.primary{padding:0 12px;font-size:12px;min-width:82px;height:34px}.scene-hint span{display:block;margin:5px 0 0}.scene-hint{padding:15px 0 20px}.timeline-head{gap:7px}.timeline #time-readout{display:none}.timeline{margin-bottom:18px}.keyframe{font-size:11px;padding:7px}.popover{bottom:130px;max-height:calc(100dvh - 200px)}.library-panel{inset:70px auto auto 16px}.toast{bottom:140px;font-size:12px}canvas{border-radius:9px}}@media(max-width:430px){.dock{max-width:370px}.dock-separator{display:none}.dock .zoom-trigger{display:none}.dock-button{min-width:30px}.dock .lens-trigger span{display:none}.dock select{font-size:11px;max-width:57px}.primary{min-width:69px;padding:0 9px;gap:7px}.brand{gap:0}.quiet-button{font-size:12px}.scene-hint{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.theme-toggle{font-size:21px;width:36px;height:36px;display:grid;place-items:center;padding:0;flex-shrink:0}
:root[data-theme="light"] canvas{box-shadow:0 0 0 1px var(--border-hairline),0 25px 65px -22px rgb(41 38 49 / 22%)}
:root[data-theme="light"] .color-preview{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--surface-hover)}
:root[data-theme="light"] .drop-overlay{background:rgb(243 242 247 / 94%)}
@media(max-width:700px){.topbar{grid-template-columns:1fr auto 36px;gap:8px}.top-right{display:flex}.top-right>*:not(.theme-toggle){display:none}.top-left{gap:7px}.compose-button{padding:7px 9px}.topbar{padding-inline:12px}}

.timeline{width:min(100%,1100px)}.timeline-head{flex-wrap:wrap}.add-keyframe{display:flex;align-items:center;gap:8px;color:var(--accent-quiet);background:var(--surface-selected);border:1px solid var(--border-hairline);border-radius:7px;padding:7px 10px;font-size:13px;white-space:nowrap}.add-keyframe kbd{font:11px var(--font-mono);border:1px solid var(--border-strong);padding:0 4px;border-radius:3px}.timeline-track{padding:0 7px}.timeline-ruler{display:flex;justify-content:space-between;font:11px var(--font-mono);color:var(--text-muted);margin-bottom:7px}.timeline-lane{height:43px;position:relative;border-radius:5px;background:var(--surface-raised);border:1px solid var(--border-hairline)}.timeline #scrub{position:absolute;inset:0 0 auto;width:100%;height:18px;margin:0;background:linear-gradient(to right,var(--accent) var(--progress,0%),var(--border-strong) var(--progress,0%));border-radius:4px 4px 0 0;z-index:2}.timeline #scrub::-webkit-slider-thumb{width:10px;height:18px;border-radius:2px;box-shadow:none;background:var(--accent-quiet)}.timeline #scrub::-moz-range-thumb{width:10px;height:18px;border-radius:2px;background:var(--accent-quiet)}.timeline-markers{position:absolute;left:5px;right:5px;top:28px;height:12px}.timeline-key{position:absolute;width:11px;height:11px;background:var(--text-secondary);border:1px solid var(--surface-panel);transform:translate(-50%,-50%) rotate(45deg);padding:0;border-radius:2px}.timeline-key:hover,.timeline-key.active{background:var(--accent-quiet);box-shadow:0 0 0 2px var(--surface-selected)}.timeline-playhead{position:absolute;top:0;bottom:0;width:1px;background:var(--accent-quiet);pointer-events:none;z-index:1}.keyframes{min-width:100px}.timeline-head #time-readout{display:block}@media(max-width:700px){.add-keyframe{font-size:12px;padding:6px 8px}.add-keyframe kbd{display:none}.timeline-head .keyframes{order:4;width:100%;flex-basis:100%}.timeline-head #time-readout{font-size:10px;margin-left:auto}.timeline-lane{height:39px}.timeline-ruler{font-size:10px}}

.timeline-key{cursor:ew-resize;touch-action:none}.timeline-key::before{content:'';position:absolute;inset:-7px}.timeline-key.dragging{background:var(--accent);box-shadow:0 0 0 4px var(--surface-selected);z-index:4}.timeline-markers{touch-action:none}

.keyframe-menu{position:fixed;inset:auto;margin:0;padding:4px;width:204px;border:1px solid var(--border-hairline);border-radius:10px;background:var(--surface-panel);color:var(--text-primary);box-shadow:var(--shadow-2);z-index:1000}.keyframe-menu button{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:6px;color:var(--text-secondary);font:500 13px var(--font-ui);white-space:nowrap;transition:background .15s,color .15s}.keyframe-menu button:hover,.keyframe-menu button:focus-visible{background:var(--accent-wash);color:var(--text-accent)}.keyframe-menu button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.keyframe-menu svg{width:15px;height:15px;flex-shrink:0;color:var(--text-accent)}.keyframe-menu kbd{margin-left:auto;font:11px var(--font-mono);color:var(--text-muted);border:1px solid var(--border-hairline);border-radius:4px;padding:1px 4px}

.timeline-head #add-detail{margin-right:auto}.timeline-lane{touch-action:none;cursor:ew-resize}.timeline-key{z-index:3}.timeline-key.dragging{z-index:5}

.music-button{display:flex;align-items:center;gap:6px;border-radius:7px;padding:7px 10px;color:var(--text-secondary);font-size:13px;background:var(--surface-panel);border:1px solid var(--border-hairline)}.music-button.has-music{color:var(--accent-quiet);background:var(--surface-selected)}.music-label{display:block;margin-bottom:8px;font-size:13px;color:var(--text-secondary)}#music-track{width:100%;background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-strong);padding:10px 8px;border-radius:7px;font-size:14px}#music-audition:disabled{opacity:.4}#music-button span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){#music-button span{max-width:75px}.music-button{font-size:12px;padding:6px}}
