:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f4f4f5;background:#0a0a0a;font-synthesis:none;--muted:#b1bac8;--blue:#78b7ff;--gold:#d6b56e;--line:#303947}
*{box-sizing:border-box}body{margin:0}main{max-width:1300px;margin:auto;padding:28px}h2,h3,p{margin:0}h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.15;letter-spacing:-.03em;margin:8px 0 12px}h3{font-size:1rem;line-height:1.5}.eyebrow{font-size:.7rem;letter-spacing:.2em;font-weight:700;color:var(--gold)}.intro>p:not(.eyebrow){max-width:85ch;line-height:1.65}.muted{color:var(--muted)}.small{font-size:.77rem;line-height:1.55}.badges{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 20px}.badge{padding:5px 9px;border:1px solid var(--line);border-radius:5px;color:#ced8e8;font-size:.7rem;background:#101721}.badge.evidence{color:var(--gold);border-color:#5c5036}.notice{padding:18px;background:#101721;border:1px solid var(--line);border-radius:10px;line-height:1.6}.notice.error{border-color:#c77c60;color:#ffd4c2}.selectors{display:grid;grid-template-columns:2fr 1.4fr 1fr;gap:12px;margin:24px 0}.selectors label,.view-options>label{display:grid;gap:8px;font-size:.76rem;color:#cbd5e1}select,button{font:inherit;color:#edf3ff;background:#131d2e;border:1px solid #405069;border-radius:7px;min-height:42px;padding:10px 12px}select{width:100%;font-size:.86rem}button{cursor:pointer;font-size:.8rem;font-weight:600}button:hover{border-color:var(--blue);background:#1b2b45}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}input[type=range]{width:100%;accent-color:var(--blue);cursor:pointer;min-height:24px;margin:0}input[type=checkbox]{accent-color:var(--blue);width:18px;height:18px}.stage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px}.stage-head>span{font-size:.75rem}.stage-wrap{border:1px solid var(--line);border-radius:12px;background:radial-gradient(ellipse at 50% 45%,#142235,#0b1019 80%);overflow:hidden}#mesh,#curve{display:block;width:100%;height:auto}#mesh{min-height:220px}.stage-key{display:flex;justify-content:center;gap:22px;padding:4px 10px 15px;font-size:.65rem;color:var(--muted)}.stage-key>span{display:flex;align-items:center;gap:6px}.stage-key i{width:14px;display:inline-block}.key-outline{border-top:1px dashed #a2acc0}.key-support{height:8px;border:1px solid #a9bbd6;clip-path:polygon(50% 0,100% 100%,0 100%);background:#a9bbd6}.key-load{border-top:2px solid var(--gold)}.legend{display:flex;align-items:center;justify-content:center;gap:10px;margin:14px 0 6px;font-size:.74rem;color:#dbeafe;font-variant-numeric:tabular-nums}.legend-gradient{height:9px;width:min(280px,45vw);background:linear-gradient(90deg,rgb(81,115,216),rgb(80,183,247),rgb(106,221,190),rgb(233,218,124),rgb(235,129,103));border-radius:8px}#field-note{text-align:center;min-height:1.55em}.playback{display:flex;gap:20px;align-items:center;margin:25px 0 12px}.playback>button{min-width:142px;background:#1f4e87}.increment-label{display:grid;grid-template-columns:1fr auto;gap:6px;flex:1;font-size:.76rem;color:#cbd5e1}.increment-label input{grid-column:1/-1}.view-options{display:grid;grid-template-columns:minmax(180px,1.2fr) auto minmax(130px,1fr);align-items:center;gap:20px;padding:15px 0 20px;border-bottom:1px solid var(--line)}.view-options>label:first-child{grid-template-columns:1fr auto}.view-options>label:first-child input{grid-column:1/-1}.view-options .checkbox{display:flex;align-items:center;gap:7px;line-height:1.4}.measurements{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.measurement{padding:15px 18px;background:#101721;border:1px solid var(--line);border-radius:9px}.measurement small{display:block;color:var(--muted);font-size:.71rem}.measurement strong{display:block;margin-top:8px;font-size:1.3rem;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.measurement strong span{font-size:.75rem;color:#b7c5d9;margin-left:5px}.curve-panel{margin-top:24px;padding:1px 18px 14px;background:#0d131d;border:1px solid var(--line);border-radius:10px}#curve{min-height:170px}.scope-note{font-size:.8rem;line-height:1.65;border-left:2px solid var(--gold);padding-left:12px;margin:22px 0;color:#d3d9e3}details{margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;font-size:.8rem;line-height:1.6}summary{cursor:pointer;color:var(--blue);font-weight:600}#technical-content{padding:14px 0 0;color:#c8d1df}#technical-content h4{font-size:.76rem;color:#f3f6fc;margin:18px 0 6px}#technical-content p{white-space:pre-wrap;overflow-wrap:anywhere}#technical-content ul{padding-left:20px}#technical-content code{font-size:.64rem;overflow-wrap:anywhere}.check{display:flex;justify-content:space-between;gap:20px;padding:7px 0;border-bottom:1px solid #202a39}.check.pass b{color:#91dbbf}.check.fail b{color:#f5ad94}.exports{display:flex;flex-wrap:wrap;gap:10px}.exports button{font-size:.75rem;color:#c9d8ed;background:#101721}[hidden]{display:none!important}svg text{font-family:inherit}a{color:var(--blue)}
@media(max-width:640px){main{padding:20px 14px}.selectors{grid-template-columns:1fr 1fr;gap:12px}.selectors>label:first-child{grid-column:1/-1}.stage-head{align-items:flex-start;flex-direction:column;gap:3px}.playback{gap:12px}.playback>button{min-width:109px;padding:10px 8px;font-size:.71rem}.view-options{grid-template-columns:1fr auto;gap:12px}.view-options>p{grid-column:1/-1}.measurements{gap:7px}.measurement{padding:12px 8px}.measurement strong{font-size:1rem}.measurement small{font-size:.65rem}.curve-panel{padding:1px 8px 12px}.stage-key{gap:14px}.legend{font-size:.64rem;gap:7px}#mesh{min-height:210px}.exports>button{flex:1}h2{max-width:23ch}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
input[type=number]{width:100%;font:inherit;font-size:.86rem;color:#edf3ff;background:#131d2e;border:1px solid #405069;border-radius:7px;min-height:42px;padding:10px 12px}.model-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.recovery>*:not(#model-controls){display:none!important}@media(max-width:640px){.model-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.model-fields>label:first-child{grid-column:auto}}
