:root{--ground:#070b10;--panel:#0b121a;--panel-2:#0f1922;--panel-3:#142230;--line:#1a2a36;--line-2:#26405a;--text:#d9e6ec;--muted:#8299a4;--faint:#5d727d;--teal:#3fe0c0;--teal-dim:#3fe0c01f;--teal-glow:#3fe0c059;--copper:#c9814e;--copper-text:#dc9a69;--copper-dim:#c9814e24;--danger:#e8705f;--danger-dim:#e8705f21;--font-head:"Michroma", "Barlow", sans-serif;--font-body:"Barlow", system-ui, sans-serif;--font-mono:"Share Tech Mono", ui-monospace, monospace;--rail:304px;--strip:132px;--gap:12px;--radius:8px;--glass:#0a1118db;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ground);color:var(--text);font:15px/1.45 var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-head);letter-spacing:.08em;margin:0;font-weight:400}button,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.t-ok{color:var(--teal)}.t-warn{color:var(--copper-text)}.t-bad{color:var(--danger)}.dot{background:var(--faint);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.s-ok{background:var(--teal);box-shadow:0 0 6px var(--teal-glow)}.dot.s-warn{background:var(--copper)}.dot.s-bad{background:var(--danger)}.dot.s-pending{border:1.5px solid var(--muted);background:0 0;animation:1.2s ease-in-out infinite blink}@keyframes blink{50%{opacity:.3}}.pill{font:10.5px/17px var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-2);border-radius:10px;padding:0 7px;display:inline-block}.pill.s-ok{color:var(--teal);background:var(--teal-dim);border-color:#3fe0c073}.pill.s-warn{color:var(--copper-text);background:var(--copper-dim);border-color:#c9814e8c}.pill.s-bad{color:var(--danger);background:var(--danger-dim);border-color:#e8705f8c}.app{grid-template-columns:var(--rail) minmax(0, 1fr) var(--rail);grid-template-rows:auto minmax(0, 1fr) var(--strip);background:radial-gradient(1200px 600px at 50% 40%, #3fe0c00d, transparent 70%), var(--ground);grid-template-areas:"top top top""left stage right""strip strip strip";height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);grid-area:top;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand h1{color:var(--teal);font-size:17px}.tagline{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:13px;overflow:hidden}.topbar-actions{align-items:center;gap:10px;display:flex}.privacy{font:12px var(--font-mono);color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-right:6px;padding:4px 2px;display:inline-flex}.privacy:hover,.privacy[aria-pressed=true]{color:var(--text)}.linkish{font:inherit;color:var(--teal);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.privacy.offline{cursor:default;border-left:1px solid var(--line-2);border-radius:0;padding-left:10px}.privacy.offline:hover{color:var(--muted)}.privacy .dot{background:var(--teal);width:7px;height:7px;box-shadow:0 0 8px var(--teal)}.btn{border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;white-space:nowrap;border-radius:5px;padding:7px 14px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s,color .15s}.btn:hover{border-color:var(--teal)}.btn.primary{border-color:var(--teal);background:var(--teal-dim);color:var(--teal)}.btn.primary:hover{background:#3fe0c03d}.btn.ghost{color:var(--muted);background:0 0}.btn.ghost:hover,.btn.ghost[aria-pressed=true]{color:var(--text)}.row{flex-wrap:wrap;gap:8px;display:flex}.rail{gap:var(--gap);padding:var(--gap);flex-direction:column;min-height:0;display:flex;overflow:hidden}.rail.left{border-right:1px solid var(--line);grid-area:left}.rail.right{border-left:1px solid var(--line);grid-area:right}.panel{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--line);border-radius:var(--radius);min-height:0;padding:14px}.panel.grow{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;flex:1;overflow:auto}.panel>h2{color:var(--copper-text);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:12px;font-size:11px;display:flex}.panel>h2:before{content:"";background:var(--copper);width:14px;height:1px}.empty{color:var(--muted);margin:0;font-size:13.5px}.lede{color:var(--muted);margin:8px 0 6px;font-size:13px}.hint{color:var(--muted);margin:10px 0 0;font-size:12.5px}.char-name{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.chips{flex-wrap:wrap;gap:6px;margin:6px 0 12px;display:flex}.chip{border:1px solid var(--copper);font:11px/17px var(--font-mono);color:var(--copper-text);background:var(--copper-dim);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;max-width:100%;padding:1px 8px;display:inline-block;overflow:hidden}.chip.quiet{border-color:var(--line-2);color:var(--muted);background:0 0}.tiles{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px;display:grid}.tile{background:var(--ground);border:1px solid var(--line);border-radius:6px;min-width:0;padding:7px 9px}.tile b{font:17px/1.2 var(--font-mono);color:var(--text);display:block}.tile span{color:var(--muted);font-size:11.5px}.tile.warn b{color:var(--copper-text)}.stats{grid-template-columns:1fr auto;gap:4px 12px;margin:0;font-size:13px;display:grid}.stats dt{color:var(--muted)}.stats dd{text-align:right;font-family:var(--font-mono);color:var(--text);margin:0}.rig-head{align-items:center;gap:10px;display:flex}.rig-head .chip{flex:none;max-width:55%}.confidence{font:11.5px var(--font-mono);color:var(--teal);white-space:nowrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.confidence .bar{background:var(--line);border-radius:2px;flex:1;min-width:24px;height:4px;overflow:hidden}.confidence .bar span{background:currentColor;height:100%;display:block}.confidence.medium{color:var(--copper-text)}.confidence.low{color:var(--danger)}.rig-map{border-top:1px solid var(--line);margin-top:4px;font-size:13.5px}.rig-map:last-child{border-bottom:1px solid var(--line)}.rig-map>summary{cursor:pointer;color:var(--text);padding:8px 0}.rig-map summary::marker{color:var(--teal)}.rig-map ul{font:12px/1.7 var(--font-mono);margin:0 0 8px;padding:0;list-style:none}.rig-map li{border-bottom:1px dashed var(--line);justify-content:space-between;gap:8px;display:flex}.rig-map .hb{color:var(--muted)}.rig-map .fb{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rig-map li.missing .fb{color:var(--danger)}.rig-map details summary{cursor:pointer;padding:4px 0;font-size:12.5px}.bone-tree,.bone-tree ul{margin:0;padding:0;list-style:none}.bone-tree ul{border-left:1px solid var(--line-2);margin-left:4px;padding-left:12px}.bone-tree{font:12.5px/1.6 var(--font-mono);padding-bottom:8px}.bone-tree summary{cursor:pointer;color:var(--text)}.bone-tree summary::marker{color:var(--teal)}.bone.leaf{color:var(--muted);padding-left:14px}.verdict{border:1px solid var(--line-2);border-left:3px solid var(--faint);background:var(--ground);border-radius:6px;padding:12px 12px 10px}.verdict.s-ok{border-left-color:var(--teal)}.verdict.s-warn{border-left-color:var(--copper)}.verdict.s-bad{border-left-color:var(--danger)}.verdict-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.verdict-word{font:14px var(--font-head);letter-spacing:.04em;white-space:nowrap}.verdict.s-ok .verdict-word{color:var(--teal)}.verdict.s-warn .verdict-word{color:var(--copper-text)}.verdict.s-bad .verdict-word{color:var(--danger)}.verdict p{color:var(--muted);margin:6px 0 0;font-size:13px}.counts{font:12px var(--font-mono);flex-wrap:wrap;gap:2px 12px;margin-top:6px;display:flex}.counts span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.counts .none{color:var(--faint)}.counts .none .dot{background:var(--line-2);box-shadow:none}.progress{background:var(--line);border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.progress span{background:var(--teal);height:100%;display:block}.worst{text-align:left;border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;width:100%;color:var(--muted);border-radius:5px;margin-top:10px;padding:6px 10px;font-size:13px}.worst b{color:var(--text);font-weight:600}.worst span{float:right;color:var(--teal)}.worst:hover,.worst[aria-pressed=true]{border-color:var(--teal)}.export{gap:6px;margin-top:10px;display:flex}.export .btn{padding:5px 10px;font-size:13px}.export .btn.primary{flex:1}.export .btn:disabled{opacity:.45;cursor:not-allowed;border-color:var(--line-2)}.export-note{color:var(--faint);margin:6px 0 0;font-size:11.5px}.memory{border-top:1px dashed var(--line-2);margin-top:10px;padding-top:9px}.memory-toggle{color:var(--text);cursor:pointer;align-items:center;gap:7px;font-size:13px;display:flex}.memory-toggle input{accent-color:var(--teal);width:14px;height:14px;margin:0}.verdict .memory-note,.verdict .memory-foot{color:var(--faint);margin:5px 0 0;font-size:11.5px}.memory-diff{border-left:2px solid var(--teal);margin-top:8px;padding:2px 0 2px 9px}.memory-diff.t-warn{border-left-color:var(--copper)}.memory-diff.t-bad{border-left-color:var(--danger)}.verdict .memory-head{margin:0;font-size:11.5px}.verdict .memory-line{color:var(--text);margin:3px 0 0;font-size:13px}.memory-list{gap:3px;margin:6px 0 0;padding:0;list-style:none;display:grid}.memory-list button{text-align:left;background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--muted);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:12.5px}.memory-list button:hover{border-color:var(--teal)}.memory-list b{color:var(--text);font-weight:600}.memory-list .mono{font:11.5px var(--font-mono);color:var(--faint)}.memory-list .worse>span:first-child{color:var(--danger)}.memory-list .better>span:first-child{color:var(--teal)}h3.sub{color:var(--muted);text-transform:uppercase;margin:18px 0 8px;font-size:10px;display:inline-block}.checks{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.engines-sum{margin:0 0 8px;font-size:12.5px;line-height:1.4}.check{border:1px solid var(--line);background:var(--panel);border-radius:6px}.check[open]{border-color:var(--line-2);background:var(--panel-2)}.check>summary{cursor:pointer;grid-template-columns:8px 1fr auto;align-items:center;gap:2px 10px;padding:9px 10px;list-style:none;display:grid}.check>summary::-webkit-details-marker{display:none}.check>summary:hover .check-title{color:var(--teal)}.check-title{font-size:14px;font-weight:600}.check-sum{color:var(--muted);grid-column:2/4;font-size:12.5px;line-height:1.35}.check.s-bad .check-sum{color:#d99a90}.check-body{padding:0 10px 10px 28px;font-size:13px}.explain{color:var(--text);opacity:.86;margin:0 0 8px}.facts{font:12px/1.5 var(--font-mono);color:var(--muted);margin:0 0 8px;padding:0;list-style:none}.facts li{overflow-wrap:anywhere;padding-left:12px;position:relative}.facts li:before{content:"›";color:var(--faint);position:absolute;left:0}.rule{color:var(--muted);margin:0 0 4px;font-size:12px}.rule b{color:var(--text);font-weight:600}.finding>summary{grid-template-columns:20px 1fr auto}.finding.on{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal-dim)}.num,.pin{width:20px;height:20px;font:11.5px/1 var(--font-mono);color:var(--ground);background:var(--faint);border-radius:50%;place-items:center;display:inline-grid}.num.s-warn,.pin.s-warn{background:var(--copper)}.num.s-bad,.pin.s-bad{background:var(--danger)}.num.s-ok,.pin.s-ok{background:var(--teal)}.finding .check-body{padding-left:40px}.finding-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.dual{vertical-align:1px;gap:4px;display:inline-flex}.badge{font:12px/18px var(--font-mono);border:1px solid var(--line-2);color:var(--text);background:var(--panel-3);border-radius:4px;padding:0 6px}.show-on{border:1px solid var(--line-2);color:var(--teal);cursor:pointer;background:0 0;border-radius:5px;margin-left:auto;padding:2px 8px;font-size:12.5px}.show-on:hover,.show-on[aria-pressed=true]{border-color:var(--teal);background:var(--teal-dim)}.finding-facts{grid-template-columns:auto 1fr;gap:2px 10px;margin:0 0 8px;font-size:12.5px;display:grid}.finding-facts dt{color:var(--muted)}.finding-facts dd{overflow-wrap:anywhere;margin:0}.mono{font-family:var(--font-mono);font-size:12px}.recipe-tabs{flex-wrap:wrap;gap:4px;margin:4px 0 6px;display:flex}.recipe-tabs button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:1px 7px;font-size:12px}.recipe-tabs button.on{color:var(--teal);background:var(--teal-dim);border-color:#3fe0c080}.recipe{color:var(--muted);margin:0;padding-left:18px;font-size:12.5px}.recipe li{margin:2px 0}.findings-none{margin-top:14px}.pose-numbers{align-items:center;gap:6px;display:flex}.pins{pointer-events:none;position:absolute;inset:0;overflow:hidden}.pin{border:2px solid var(--ground);pointer-events:auto;cursor:pointer;will-change:transform;width:22px;height:22px;padding:0;position:absolute;top:-11px;left:-11px;box-shadow:0 0 0 1px #ffffff40,0 2px 8px #00000080}.pin:hover,.pin.on{outline:2px solid var(--teal);outline-offset:1px;z-index:1}.pin:focus-visible{outline:2px solid var(--teal)}.split{pointer-events:none;z-index:2;border-left:1px solid #3fe0c0d9;width:0;position:absolute;top:0;bottom:0;box-shadow:0 0 10px #3fe0c059}.split[hidden]{display:none}.split-grip{pointer-events:auto;cursor:ew-resize;touch-action:none;background:#070b10e0;background-image:linear-gradient(90deg, transparent 10px, var(--teal) 10px, var(--teal) 11px, transparent 11px, transparent 16px, var(--teal) 16px, var(--teal) 17px, transparent 17px);border:1px solid #3fe0c0b3;border-radius:14px;width:28px;height:44px;margin-top:-22px;padding:0;position:absolute;top:50%;left:-14px}.split-grip:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.split-tag{font:10.5px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--teal);border:1px solid var(--line);white-space:nowrap;background:#070b10bf;border-radius:4px;padding:2px 6px;position:absolute;top:calc(50% + 32px)}.split-tag.l{right:8px}.split-tag.r{left:8px}.legend .sw{vertical-align:-1px;border-radius:2px;width:10px;height:10px;display:inline-block}.numbers{margin-top:4px}.numbers>summary{cursor:pointer;list-style:none}.numbers>summary::-webkit-details-marker{display:none}.numbers>summary h3:after{content:" ▾";color:var(--teal)}.numbers:not([open])>summary h3:after{content:" ▸"}.data-table table{border-collapse:collapse;table-layout:fixed;width:100%;font:11.5px var(--font-mono)}.data-table caption{text-align:left;font:10px var(--font-head);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;padding:6px 0}.data-table col.name{width:33%}.data-table.limbs col.name{width:40%}.data-table th,.data-table td{text-align:right;white-space:nowrap;text-overflow:ellipsis;padding:5px 2px;overflow:hidden}.data-table thead th{color:var(--muted);border-bottom:1px solid var(--line-2);cursor:help;font-size:11px;font-weight:400}.data-table tbody th,.data-table tbody td{border-bottom:1px dashed var(--line)}.data-table th:first-child{text-align:left}.data-table tbody th{color:var(--text);font-weight:400}.data-table tbody th .dot{vertical-align:1px;margin-right:7px}.data-table td.t-ok{color:inherit}.row-pick{all:unset;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;width:100%;display:block;overflow:hidden}.row-pick:focus-visible{outline:2px solid var(--teal);outline-offset:-1px}.numbers tbody tr{cursor:pointer}.numbers tbody tr:hover{background:var(--panel-3)}.numbers tbody tr.on{background:var(--teal-dim)}.numbers tbody tr.on th{color:var(--teal)}.key{color:var(--muted);grid-template-columns:auto 1fr;gap:1px 8px;margin:10px 0 0;font-size:12px;display:grid}.key dt{font-family:var(--font-mono);color:var(--text)}.key dd{margin:0}.note{color:var(--muted);margin:8px 0 0;font-size:12px}.stage{grid-area:stage;min-width:0;min-height:0;position:relative;overflow:hidden}.viewport{position:absolute;inset:0}.viewport canvas{display:block}.toolbar{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-wrap:wrap;justify-content:center;gap:4px;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 24px);margin-inline:auto;padding:4px;display:flex;position:absolute;top:12px;left:12px;right:12px}.tgroup{align-items:center;gap:2px;padding:0 4px;display:flex}.tgroup+.tgroup{border-left:1px solid var(--line-2);padding-left:8px}.tlabel{font:9.5px var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap;margin-right:6px}.toggle{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;padding:5px 10px;font-size:13.5px}.toggle:hover:not(:disabled){color:var(--text);border-color:var(--line-2)}.toggle.on{color:var(--teal);border-color:var(--teal);background:var(--teal-dim)}.toggle:disabled{opacity:.4;cursor:not-allowed}.pose-card,.legend,.onboard{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:absolute}.pose-card{pointer-events:none;max-width:min(340px,100% - 24px);padding:9px 12px;bottom:12px;left:12px}.kicker{font:9.5px var(--font-head);letter-spacing:.1em;text-transform:uppercase;color:var(--copper-text);display:block}.pose-card strong{align-items:center;gap:8px;margin-top:2px;font-size:16px;font-weight:600;display:flex}.pose-card p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.legend{width:260px;padding:10px 12px;font-size:12.5px;bottom:12px;right:12px}.legend strong{font:10px var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin-bottom:8px;display:block}.legend p{color:var(--muted);margin:6px 0 0;line-height:1.4}.scale{margin:0 10px 0 6px;padding-bottom:16px;position:relative}.ramp{border-radius:2px;height:10px;display:block}.ticks span{font:11px var(--font-mono);color:var(--muted);white-space:nowrap;position:absolute;top:13px;transform:translate(-50%)}.swatches{gap:4px;margin:0;padding:0;list-style:none;display:grid}.swatches li{align-items:center;gap:8px;display:flex}.swatches i{border-radius:3px;flex:none;width:14px;height:14px}.bone-pick{align-items:center;gap:8px;margin-bottom:8px;display:flex}.bone-pick span{color:var(--muted)}.bone-pick select{background:var(--panel-2);border:1px solid var(--line-2);min-width:0;font:12px var(--font-mono);color:var(--text);border-radius:5px;flex:1;padding:4px 6px}.onboard{border-color:var(--line-2);width:320px;max-width:calc(100% - 24px);padding:14px 16px;top:64px;right:12px;box-shadow:0 10px 40px #00000073}.onboard h2{color:var(--teal);text-transform:uppercase;margin-bottom:10px;font-size:12px}.onboard ol{counter-reset:step;color:var(--muted);gap:8px;margin:0;padding:0;font-size:13.5px;list-style:none;display:grid}.onboard li{counter-increment:step;grid-template-columns:22px 1fr;align-items:start;gap:10px;display:grid}.onboard li:before{content:counter(step);border:1px solid var(--teal);width:22px;height:22px;color:var(--teal);font:11px/20px var(--font-mono);text-align:center;border-radius:50%}.onboard li b{color:var(--text);font-weight:600}.onboard .private{font:12px var(--font-mono);color:var(--muted);margin:12px 0}.about{width:360px;max-height:calc(100% - 76px);font-size:13px;line-height:1.5;overflow:auto}.about p{margin:0 0 10px}.about b{color:var(--text);font-weight:600}.about h3{font:10.5px var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:var(--copper-text);margin:12px 0 6px}.about ul{color:var(--muted);gap:4px;margin:0 0 10px;padding-left:16px;list-style:square;display:grid}.about li{counter-increment:none;display:list-item}.about li:before{content:none}.about a{color:var(--teal)}.about .mono-small{font:11.5px var(--font-mono)}.empty-stage{text-align:center;border:2px dashed var(--line-2);border-radius:12px;flex-direction:column;align-items:center;gap:8px;width:min(420px,100% - 32px);height:max-content;margin:auto;padding:36px 24px;display:flex;position:absolute;inset:0}.empty-stage strong{font:14px var(--font-head);letter-spacing:.06em;color:var(--teal);font-weight:400}.empty-stage span{font:12px var(--font-mono);color:var(--muted);margin-bottom:8px}.notice{border:1px solid var(--danger);border-radius:var(--radius);background:#0a1118f7;border-left-width:4px;width:min(480px,100% - 32px);padding:16px 18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #00000080}.notice.unrigged{border-color:var(--copper)}.notice strong{font-family:var(--font-head);letter-spacing:.06em;font-size:13px;font-weight:400}.notice p{color:var(--text);margin:8px 0 14px;font-size:14px}.notice details{color:var(--muted);margin:-6px 0 14px;font-size:12px}.notice details summary{cursor:pointer}.notice code{font:11.5px var(--font-mono);overflow-wrap:anywhere;margin-top:4px;display:block}.loading,.dropzone{background:#070b10cc;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.loading span{font:13px var(--font-mono);color:var(--teal)}.dropzone{z-index:5}.dropzone>div{border:2px dashed var(--teal);background:var(--teal-dim);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:40px 56px;animation:1.6s ease-in-out infinite pulse;display:flex}.dropzone strong{font-family:var(--font-head);color:var(--teal);letter-spacing:.08em;font-weight:400}.dropzone span{font:12px var(--font-mono);color:var(--text)}.dropzone em{color:var(--muted);font-size:12px;font-style:normal}@keyframes pulse{50%{border-color:var(--copper)}}.filmstrip{border-top:1px solid var(--line);flex-direction:column;grid-area:strip;gap:6px;min-height:0;padding:8px 12px 10px;display:flex}.strip-head{align-items:baseline;gap:12px;font-size:12px;display:flex}.strip-head h2{color:var(--copper-text);text-transform:uppercase;font-size:10px}.poses{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;flex:1;gap:8px;min-height:0;display:flex;overflow-x:auto}.pose{max-width:128px;font:12px var(--font-body);color:var(--muted);text-align:center;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1 0 92px;gap:2px;min-height:0;padding:0;display:flex}.pose:disabled{opacity:.4;cursor:default}.pose .thumb{border:1px solid var(--line);background:repeating-linear-gradient(135deg, transparent 0 6px, #3fe0c00a 6px 7px), var(--panel);width:100%;min-height:0;stroke:var(--muted);stroke-width:2.4px;stroke-linecap:round;border-radius:6px;flex:1;transition:border-color .15s}.pose:hover:not(:disabled){color:var(--text)}.pose:hover:not(:disabled) .thumb{border-color:var(--line-2);stroke:var(--text)}.pose.on{color:var(--teal)}.pose.on .thumb{border-color:var(--teal);background:var(--teal-dim);stroke:var(--teal);box-shadow:0 0 0 1px var(--teal) inset}.pose:focus-visible{outline:none}.pose:focus-visible .thumb{outline:2px solid var(--teal);outline-offset:2px}.pose-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pose-meta{font:11px/14px var(--font-mono);color:var(--muted);white-space:nowrap;justify-content:center;align-items:center;gap:5px;display:flex}.pose-meta .dot{width:7px;height:7px}.pose-meta em{color:var(--copper-text);font-style:normal}.pose-meta .pose-ms{color:var(--faint);font-size:10px}.pose.measuring .thumb{border-color:var(--copper);animation:1.2s ease-in-out infinite alternate measuring}.measuring-label{color:var(--copper-text)}@keyframes measuring{0%{box-shadow:inset 0 0 #0000}to{box-shadow:0 0 0 1px var(--copper) inset}}.strip-status{font:11px var(--font-mono);color:var(--teal);white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.strip-bar{background:var(--line);border-radius:2px;width:72px;height:3px;display:inline-block;overflow:hidden}.strip-bar>span{background:var(--copper);height:100%;transition:width .2s;display:block}.samples{flex-wrap:wrap;align-items:center;gap:5px;margin:-2px 0 10px;display:flex}.samples .kicker{font:10px var(--font-mono);color:var(--faint);text-transform:uppercase;letter-spacing:.08em;margin-right:2px}.sample{border:1px solid var(--line-2);background:var(--panel-2);font:11px/16px var(--font-body);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:10px;padding:2px 8px}.sample:hover:not(:disabled){color:var(--text);border-color:var(--teal)}.sample[aria-pressed=true]{color:var(--teal);border-color:var(--teal);background:var(--teal-dim)}.sample:disabled{opacity:.5;cursor:default}@media (max-width:1360px){:root{--rail:276px}.privacy{display:none}}@media (max-width:1180px){:root{--rail:256px;--gap:10px}.tagline,.tlabel{display:none}.legend{width:230px}.pose-card p{display:none}}@media (max-width:960px){.app{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 62vh var(--strip) auto;grid-template-areas:"top top""stage stage""strip strip""left right";height:auto;min-height:100%}.rail{overflow:visible;border:0!important}.panel.grow{overflow:visible}.filmstrip{border-bottom:1px solid var(--line)}.pose-card p{display:block}.onboard{top:auto;bottom:12px}.pose-card{display:none}}@media (max-width:640px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 58vh var(--strip) auto auto;grid-template-areas:"top""stage""strip""right""left"}.topbar{padding:8px 12px}.topbar .btn.ghost{display:none}.toggle{padding:5px 8px;font-size:13px}.tgroup+.tgroup{border-left:0;padding-left:4px}.legend{width:auto;left:12px;right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.load-summary{font:12px/1.5 var(--font-mono);color:var(--muted);margin:4px 0 12px}.platforms li.over .fb{color:var(--copper-text)}.map-actions{gap:6px;margin:0 0 8px;display:flex}.btn.sm{padding:3px 9px;font-size:12.5px}.btn:disabled{opacity:.45;cursor:not-allowed}.rig-map li.manual .hb{color:var(--copper-text)}.rig-map select{min-width:0;max-width:58%;font:11.5px var(--font-mono);background:var(--panel);color:var(--text);border:1px solid var(--line-2);border-radius:4px;padding:1px 2px}.rig-map button.fb,.bone-name{font:inherit;color:inherit;cursor:pointer;text-align:right;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;padding:0;overflow:hidden}.bone-name{text-align:left}.rig-map button.fb:hover,.bone-name:hover{color:var(--teal)}.rig-map button.fb.sel,.bone-name.sel{color:var(--ground);background:var(--teal);border-radius:3px;padding:0 4px}.bone.leaf .bone-name{color:var(--muted)}.bone.leaf .bone-name.sel{color:#070b10}.sel-line{align-items:baseline;gap:8px;display:flex;overflow:hidden}.sel-line b{font:12px var(--font-mono);color:var(--teal);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scrub{font:11px var(--font-mono);color:var(--muted);pointer-events:auto;align-items:center;gap:8px;margin-top:6px;display:flex}.scrub input{min-width:80px;accent-color:var(--teal);flex:1}.scrub span:last-child{text-align:right;width:34px;color:var(--text)}.pose-card p.scrub-note{color:var(--copper-text);font-size:11.5px}.legend .cb{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-top:8px;display:flex}.legend .cb input{accent-color:var(--teal)}.notice.beside{width:min(400px,100% - 24px);inset:auto 12px 12px auto;transform:none}.rig-options{margin:0 0 12px;padding-left:18px;font-size:13.5px;line-height:1.45}.rig-options li+li{margin-top:6px}.rig-options b{color:var(--teal);font-weight:600}.notice .small{font:11.5px var(--font-mono);margin:0 0 12px}.compare-pick{margin-top:-4px}.ab-tag{width:24px;height:22px;font:12px var(--font-head);color:var(--ground);background:var(--teal);will-change:transform;border-radius:4px;place-items:center;display:grid;position:absolute;top:-30px;left:-12px;box-shadow:0 2px 8px #00000080}.ab-tag.b{background:var(--copper)}.compare{border:1px solid var(--line-2);background:var(--ground);border-radius:6px;margin-top:12px;padding:10px 12px}.compare-head{justify-content:space-between;align-items:baseline;display:flex}.compare-who{grid-template-columns:16px 1fr;gap:3px 6px;margin:6px 0 0;font-size:12.5px;display:grid}.compare-who dt{font:11px var(--font-head);color:var(--teal)}.compare-who dt:nth-of-type(2){color:var(--copper-text)}.compare-who dd{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.compare-line{color:var(--text);margin:6px 0;font-size:13px}.compare-table{border-collapse:collapse;width:100%;font-size:12.5px}.compare-table th,.compare-table td{text-align:left;border-top:1px solid var(--line);padding:3px 4px;font-weight:400}.compare-table thead th{color:var(--faint);font:10.5px var(--font-mono);text-transform:uppercase;border-top:0}.compare-table td{font:12px var(--font-mono);white-space:nowrap}.compare-table tbody tr{cursor:pointer}.compare-table tbody tr:hover,.compare-table tr.on{background:var(--panel-2)}.compare-table tr.worse td:last-child{color:var(--danger)}.compare-table tr.better td:last-child{color:var(--teal)}.linkish.plain{color:var(--text);text-decoration:none}.compare-note{color:var(--faint);margin:6px 0 0;font-size:11.5px}.compare-table th .linkish{text-align:left}.rail.left>.panel:first-child{flex-shrink:0}.panel.battery{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;flex:0 auto;min-height:96px;overflow:auto}.rail.left>.panel.grow{min-height:46px}.battery-head{align-items:center;gap:8px;min-width:0;display:flex}.battery-head .chip{border-color:var(--line-2);color:var(--muted);background:0 0}.battery-head .chip.custom{border-color:var(--teal);color:var(--teal);background:var(--teal-dim)}.battery-name{font:12px var(--font-mono);color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.battery-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.battery-edit{margin-top:10px}.battery-edit .field{color:var(--muted);grid-template-columns:64px 1fr;align-items:center;gap:8px;margin:0 0 8px;font-size:12.5px;display:grid}.battery-edit input[type=text],.battery-edit select,.battery-edit input[type=number]{background:var(--panel);width:100%;min-width:0;color:var(--text);border:1px solid var(--line-2);font:12px var(--font-mono);border-radius:4px;padding:3px 6px}.battery-poses{gap:3px;margin:0 0 8px;padding:0;list-style:none;display:grid}.battery-poses li{border:1px solid #0000;border-radius:5px;align-items:center;gap:4px;display:flex}.battery-poses li.on{border-color:var(--teal);background:var(--teal-dim)}.bp-pick{cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:2px 4px;font-size:13px;display:flex}.bp-pick span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bp-pick .thumb{fill:none;width:30px;height:30px;stroke:var(--muted);stroke-width:3px;stroke-linecap:round;flex:none}.battery-poses li.on .bp-pick .thumb{stroke:var(--teal)}.bp-tools{flex:none;gap:2px;display:flex}.battery-edit button.icon{border:1px solid var(--line-2);background:var(--panel);width:22px;height:22px;color:var(--muted);cursor:pointer;border-radius:4px;padding:0;font-size:11px;line-height:1}.battery-edit button.icon:hover:not(:disabled){color:var(--text);border-color:var(--teal)}.battery-edit button.icon:disabled{opacity:.35;cursor:default}.battery-pose{border-top:1px solid var(--line);margin-top:4px;padding-top:10px}.battery-pose .kicker{margin:4px 0 6px}.battery-steps{scrollbar-width:thin;gap:6px;max-height:260px;margin:0 0 8px;padding:0;list-style:none;display:grid;overflow:auto}.step{border:1px solid var(--line);background:var(--panel);border-radius:5px;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:6px;font-size:12px;display:flex}.step .step-kind{color:var(--muted);font:11.5px var(--font-mono);flex:100%}.step select{flex:100%}.step .angle{color:var(--muted);flex:100%;align-items:center;gap:4px;display:flex}.step .angle input[type=range]{min-width:0;accent-color:var(--teal);flex:1}.step .angle input[type=number]{flex:none;width:62px!important}.step>button.icon{margin-left:auto}
