@font-face{font-family:Bitter;src:url('./assets/bitter_bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{color-scheme:light;--paper:#faf8f3;--ink:#232b23;--muted:#4d574c;--green:#3f5848;--on-green:#faf8f3;--line:#d9d3c2;--input-line:#8b8778;--surface:#f3f0e7;--blue:#0e3a5d;--error:#9e3026;--focus:#0e3a5d;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);accent-color:var(--green);scrollbar-color:var(--input-line) var(--paper)}
:root[data-theme=dark]{color-scheme:dark;--paper:#10151c;--ink:#e9e6da;--muted:#b7bcae;--green:#a9c0ae;--on-green:#1b2922;--line:#29323f;--input-line:#6c7889;--surface:#161d26;--blue:#83b8d8;--error:#ffaca0;--focus:#83b8d8}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button,a,summary{ -webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button{color:var(--ink)}button:disabled{cursor:default}input,select{min-width:0}input::placeholder{color:var(--muted);opacity:1}input{caret-color:var(--green)}::selection{background:var(--green);color:var(--on-green)}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}a{color:var(--blue);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}[hidden]{display:none!important}svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled{opacity:.45}button{transition:background-color .15s ease-out}button:hover:enabled{background:var(--surface)}h1,h2,p{margin:0}h2{font-size:1rem;line-height:1.4;font-weight:650}output,input[type=number],.times{font-variant-numeric:tabular-nums}.masthead{max-width:1440px;margin:auto;min-height:78px;padding:16px 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);font:700 25px/1.2 Bitter,Georgia,serif;text-decoration:none}main{max-width:1440px;padding:28px 44px 0;margin:auto}.workbench{display:grid;grid-template-columns:minmax(205px,.9fr) minmax(320px,1.65fr) minmax(250px,1fr);align-items:start}.sources{padding-right:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.section-heading span{font-size:.8rem;color:var(--muted)}.drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:28px 12px;border:1px dashed var(--input-line);border-radius:8px;cursor:pointer;background:var(--surface)}.drop-zone:hover,.drop-zone.dragging{border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--paper))}.drop-zone:focus-within{outline:2px solid var(--focus);outline-offset:3px}.drop-zone svg{width:28px;height:28px;margin-bottom:8px;color:var(--green)}.drop-zone strong{font-weight:600;font-size:.9rem}.drop-zone span{font-size:.8rem;color:var(--muted)}.drop-zone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.source-hint{margin:16px 0;font-size:.8rem;line-height:1.6;color:var(--muted)}.format-confirm{font-size:.78rem;display:block;line-height:1.7}.format-confirm span{padding-left:24px;color:var(--muted)}input[type=checkbox]{margin:0 6px 0 0;vertical-align:-2px;width:15px;height:15px}.take-list{list-style:none;padding:0;margin:24px 0 0;max-height:470px;overflow-y:auto}.take-list li{border-top:1px solid var(--line)}.take-button{display:block;width:100%;text-align:left;background:none;border:0;padding:14px 10px;overflow-wrap:anywhere;font-size:.86rem}.take-button small{display:block;color:var(--muted);font-size:.74rem;margin-top:3px}.take-button[aria-current=true]{background:var(--surface);color:var(--green);font-weight:650}.empty-list{margin-top:28px;color:var(--muted);font-size:.8rem}.player{border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 28px 20px;min-width:0}.recording-heading{text-align:center;min-height:50px}.recording-heading h2{overflow-wrap:anywhere}.recording-heading p{font-size:.75rem;color:var(--muted);margin-top:5px}.compass-wrap{width:100%;max-width:470px;margin:0 auto;aspect-ratio:1}.compass-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;border-radius:50%}.compass-wrap canvas[aria-disabled=true]{cursor:default}.heading-controls{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:-3px}.heading-controls label{display:flex;align-items:center;gap:12px;font-size:.87rem}.degree-input{border-bottom:1px solid var(--input-line);display:flex;align-items:center}.degree-input input{border:0;background:transparent;width:70px;text-align:right;padding:7px 3px;color:var(--ink)}.text-button{padding:8px 6px;border:0;background:transparent;color:var(--green);font-size:.85rem;min-height:40px}.meter-controls{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.72rem;margin:16px 0 20px}.transport{display:flex;justify-content:center;align-items:center;gap:26px}.play-button{width:58px;height:58px;border:1px solid var(--green);border-radius:50%;color:var(--green);background:transparent;display:grid;place-items:center}.play-button svg{width:25px;height:25px}.icon-button{width:42px;height:44px;position:relative;display:grid;place-items:center;background:none;border:0;color:var(--muted)}.icon-button svg{width:26px;height:26px}.icon-button span{position:absolute;font-size:9px;top:19px;left:15px}.seek{width:100%;margin:24px 0 0;cursor:pointer;height:18px}.times{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted)}.export-panel{padding-left:28px}.export-panel>h2{margin-bottom:22px}.field{display:flex;flex-direction:column;gap:6px;font-size:.8rem;margin-bottom:15px}.field input,.field select{width:100%;height:41px;padding:8px 10px;border:1px solid var(--input-line);border-radius:4px;background:var(--paper);color:var(--ink);font-size:.87rem}.suffix-input{position:relative}.suffix-input input{padding-right:42px}.suffix-input>span{position:absolute;right:13px;top:10px;color:var(--muted)}.range-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.unit{font-size:.68rem;color:var(--muted);margin-top:-5px}.export-summary{font-size:.76rem;color:var(--muted);margin:18px 0}.primary-button{width:100%;min-height:46px;padding:11px 16px;background:var(--green);color:var(--on-green);border:1px solid var(--green);border-radius:5px;font-weight:600;font-size:.9rem}.primary-button:hover:enabled{background:color-mix(in srgb,var(--green) 88%,var(--ink));color:var(--on-green)}.notice{padding:14px 18px;margin-bottom:22px;border:1px solid var(--input-line);border-radius:6px;font-size:.87rem;white-space:pre-line;overflow-wrap:anywhere}.notice.error{color:var(--error);border-color:var(--error)}#export-progress{margin-top:18px;font-size:.8rem}progress{display:block;width:100%;margin:12px 0;height:8px}.result{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:.82rem}.download-link{display:block;margin-top:10px}.help{margin-top:34px;border-top:1px solid var(--line);padding:20px 0;color:var(--muted);font-size:.8rem}.help summary{width:fit-content;padding:5px 0}.help-body{max-width:75ch;padding-top:12px}.help p+p{margin-top:12px}footer{max-width:1440px;margin:auto;padding:20px 44px 28px;display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:.7rem}noscript{display:block;text-align:center;padding:20px;color:var(--error)}
@media(max-width:1080px){.masthead{padding-inline:28px}main{padding-inline:28px}.workbench{grid-template-columns:210px minmax(300px,1fr)}.player{border-right:0;padding-right:0}.export-panel{grid-column:1/-1;border-top:1px solid var(--line);margin-top:28px;padding:26px 0 0}.export-panel fieldset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}.export-summary{align-self:center}.primary-button{align-self:start}.export-panel>h2{margin-bottom:18px}footer{padding-inline:28px}}
@media(max-width:650px){.masthead{min-height:72px;padding:14px 20px}.brand{font-size:21px}main{padding:24px 20px 0}.workbench{display:flex;flex-direction:column}.sources{padding:0;width:100%}.section-heading{margin-bottom:14px}.drop-zone{padding:18px 12px;gap:2px}.drop-zone svg{display:none}.source-hint{margin:12px 0;font-size:.74rem}.format-confirm{font-size:.74rem}.take-list{max-height:190px;margin-top:16px}.empty-list{margin:16px 0}.player{width:100%;border-left:0;border-top:1px solid var(--line);padding:24px 0 0;margin-top:24px}.compass-wrap{max-width:400px}.recording-heading{min-height:45px}.export-panel{width:100%;margin-top:28px}.export-panel fieldset{grid-template-columns:1fr 1fr;gap:0 14px}#export-controls > .field:first-child,.range-fields,.format-field,.export-summary,.primary-button{grid-column:1/-1}.export-summary{margin-top:5px}.meter-controls{font-size:.7rem;gap:12px}footer{padding-inline:20px;flex-direction:column;gap:4px}.help{margin-top:28px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

.normalization{grid-column:1/-1;border-block:1px solid var(--line);margin:0 0 18px;font-size:.8rem}.normalization summary{padding:12px 0;cursor:pointer}.normalize-body{padding:4px 0 16px}.secondary-button{width:100%;min-height:42px;border:1px solid var(--input-line);border-radius:4px;background:transparent;padding:8px;color:var(--green);font-size:.82rem}.secondary-button:disabled{opacity:.5}.measurements,.proposal{font-size:.78rem;margin:12px 0;line-height:1.6;font-variant-numeric:tabular-nums}.normalize-note{font-size:.72rem;color:var(--muted);margin-top:12px;line-height:1.6}
.timeline{margin-top:16px}.timeline .seek{margin:0}.trim-track{position:relative;height:44px;margin:0 24px;touch-action:none}.trim-track::before{content:"";position:absolute;inset:20px 0;background:var(--line);border-radius:2px}.trim-track #trim-highlight{position:absolute;top:19px;height:6px;left:0;width:100%;background:var(--green)}
.trim-handle{position:absolute;top:0;width:24px;height:44px;border:0;padding:0;background:transparent;touch-action:none;cursor:ew-resize;user-select:none}.trim-start{left:0;transform:translateX(-100%)}.trim-end{left:100%}.trim-handle::before{content:"";position:absolute;inset:9px 2px;border:1px solid var(--green);border-radius:3px;background:var(--paper)}.trim-handle::after{content:"";position:absolute;inset:17px 9px;border-inline:1px solid var(--green)}.trim-handle:hover:enabled{background:transparent}.trim-handle:hover:enabled::before,.trim-handle.dragging::before{background:var(--green)}.trim-handle:hover:enabled::after,.trim-handle.dragging::after{border-color:var(--on-green)}.trim-handle:disabled{cursor:default}.trim-hint{font-size:.72rem;line-height:1.5;color:var(--muted);margin:-2px 0 14px}.trim-controls{margin-top:22px;border-top:1px solid var(--line);padding-top:12px}.trim-heading,.trim-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.trim-heading{margin-bottom:12px}.trim-heading h3{font-size:.86rem;margin:0;font-weight:650}.trim-point .field{margin-bottom:8px}.trim-actions{margin-top:10px}.trim-actions output{font-size:.74rem;color:var(--muted);text-align:right}.trim-actions .text-button{white-space:nowrap}

.theme-control{position:relative;flex-shrink:0}.theme-toggle{display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--muted)}.theme-toggle:hover:enabled,.theme-toggle[aria-expanded=true]{border-color:var(--green);color:var(--green)}.theme-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:5;min-width:156px;padding:4px;border:1px solid var(--input-line);border-radius:6px;background:var(--paper)}.theme-menu button{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:3px;background:transparent;text-align:left;font-size:.85rem}.theme-menu button[aria-checked=true]{color:var(--green);background:var(--surface)}.theme-menu svg{width:18px;height:18px}.theme-menu [aria-checked=false] svg{visibility:hidden}.theme-menu button:focus-visible{outline-offset:-2px}

.keyframe-bar{display:flex;align-items:center;gap:8px;min-height:44px;margin-top:6px;font-size:.78rem}.keyframe-bar>label{display:flex;align-items:center;gap:6px;margin-right:auto;white-space:nowrap}.keyframe-buttons{display:flex;align-items:center;gap:0}.keyframe-buttons .icon-button{width:40px;height:44px;border:0;border-radius:4px}.keyframe-buttons svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.keyframe-buttons .icon-button:disabled{opacity:.35}.keyframe-buttons .icon-button[data-action=update]{color:var(--blue)}.keyframe-bar .text-button{min-height:44px;padding-inline:4px}.seek-wrap{position:relative}.seek-wrap.has-keyframes{padding-top:24px}.keyframe-marks{position:absolute;top:0;left:8px;width:calc(100% - 16px);height:24px;cursor:pointer}.keyframe-buttons[hidden],.keyframe-bar>[hidden]{display:none}

.export-error{color:var(--error);font-size:.8rem;line-height:1.6;margin-top:16px;overflow-wrap:anywhere}
