:root{color-scheme:dark;--bg: #10161d;--panel: #17212b;--panel-raised: #1d2935;--ink: #eef4f8;--muted: #9fb0bd;--line: #2d3c4a;--accent: #6fd3c7;--accent-ink: #08211f;--warn: #f0c36a;--radius: 14px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 18% -10%,rgba(111,211,199,.14),transparent 34rem),var(--bg)}.shell{width:min(1080px,100%);margin:0 auto;padding:28px 18px 40px}.masthead{margin-bottom:24px}.eyebrow{margin:0 0 8px;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}h1,h2{margin:0;line-height:1.12}h1{font-size:clamp(2rem,7vw,3.4rem);letter-spacing:-.035em}h2{font-size:1.05rem}.lede{max-width:62ch;margin:12px 0 0;color:var(--muted);line-height:1.55}.grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:18px;align-items:start}.outputs{display:grid;gap:18px}.card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.025),transparent),var(--panel);padding:18px;box-shadow:0 18px 50px #00000029}.result-card{padding:16px 18px}.card-heading{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.axle-toggle{display:inline-flex;gap:4px;margin-top:8px;border:1px solid var(--line);border-radius:999px;background:var(--panel-raised);padding:3px}.axle-toggle button{border:0;border-radius:999px;background:transparent;color:var(--muted);padding:5px 12px;font:inherit;font-size:.76rem;font-weight:700;cursor:pointer}.axle-toggle button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.axle-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pill{display:inline-block;max-width:65%;border:1px solid var(--line);border-radius:999px;background:var(--panel-raised);color:var(--muted);padding:4px 9px;font-size:.7rem;line-height:1.3;text-align:right}.hint,.footnote{color:var(--muted);font-size:.84rem;line-height:1.5}.hint{margin:0 0 14px}.footnote{margin:12px 0 0;border-top:1px solid var(--line);padding-top:12px}.fields{width:100%;border-collapse:collapse;font-size:.9rem}.fields th,.fields td{border-bottom:1px solid var(--line);padding:8px 4px;text-align:left;vertical-align:middle}.fields thead th{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.fields tbody th{font-weight:500}.fields input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:#0d1319;color:var(--ink);padding:9px 8px;font:inherit;font-variant-numeric:tabular-nums}.fields input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.slider-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 14px;color:var(--muted);font-size:.84rem}.slider-row input[type=range]{width:100%;accent-color:var(--accent)}.slider-row output{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}.value-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.value{font-size:clamp(1.9rem,6vw,2.8rem);font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.band{border:1px solid rgba(240,195,106,.38);border-radius:999px;background:#f0c36a1a;color:var(--warn);padding:4px 9px;font-size:.78rem;font-weight:700}.no-answer{margin:0;color:var(--warn);font-size:1.05rem;font-weight:700}.maths-card summary{cursor:pointer;font-weight:700}.maths-card summary::marker{color:var(--accent)}.maths{display:grid;gap:10px;margin:14px 0 0;padding-left:1.4rem;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.55;overflow-wrap:anywhere}.error-card{border-color:#f0c36a80}.footer{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between;margin-top:22px;color:var(--muted);font-size:.76rem}.scene-figure,.camber-figure{margin:0}.scene-well{border:1px solid var(--line);border-radius:12px;background:#0d1319;padding:12px}.scene-svg,.camber-svg{display:block;width:100%;height:auto}.scene-ground{stroke:var(--line);stroke-width:1}.scene-centreline{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}.scene-axis-label,.scene-label,.scene-hardpoint-label,.scene-note{font-size:9px;font-weight:600;fill:var(--muted)}.scene-note{fill:var(--warn);font-size:8.5px}.scene-derived-badge rect{fill:#f0c36a29;stroke:var(--warn);stroke-width:1}.scene-derived-badge text{fill:var(--warn);font-size:9px;font-weight:700}.scene-derived-note{color:var(--warn);font-weight:700}.scene-arm,.scene-link{stroke:var(--muted);stroke-width:2.4;stroke-linecap:round}.scene-construction{stroke:var(--warn);stroke-width:1.1;stroke-dasharray:4 4}.scene-wheel{fill:none;stroke:var(--line);stroke-width:1.6}.scene-carrier{fill:#6fd3c714;stroke:var(--muted);stroke-width:1.1}.scene-hardpoint{cursor:default}.scene-hardpoint-hit{fill:transparent}.scene-hardpoint-dot{fill:var(--panel);stroke:var(--muted);stroke-width:1.5}.scene-hardpoint-label{opacity:0;fill:var(--ink);pointer-events:none}.scene-hardpoint:hover .scene-hardpoint-label,.scene-hardpoint:focus .scene-hardpoint-label{opacity:1}.scene-hardpoint:hover .scene-hardpoint-dot,.scene-hardpoint:focus .scene-hardpoint-dot{fill:var(--accent);stroke:var(--accent)}.scene-contact{cursor:default}.scene-contact-mark{fill:none;stroke:var(--accent);stroke-width:1.6}.scene-roll-centre circle{fill:var(--accent);stroke:var(--accent);stroke-width:1.5}.scene-instant circle{fill:var(--panel);stroke:var(--accent);stroke-width:1.6}.scene-value-label{fill:var(--accent)}.scene-band-label{fill:var(--warn);font-size:8.5px}.scene-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;color:var(--muted);font-size:.72rem;line-height:1.45}.camber-figure{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.camber-caption{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;margin-bottom:4px;color:var(--muted);font-size:.78rem}.camber-caption span:first-child{color:var(--ink);font-weight:700}.camber-axis,.camber-tick{stroke:var(--line);stroke-width:1}.camber-tick-label,.camber-axis-label{fill:var(--muted);font-size:8.5px}.camber-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.camber-static{fill:var(--accent);stroke:var(--panel);stroke-width:1.5}.camber-static-label{fill:var(--ink);font-size:9px;font-weight:600}@media(max-width:760px){.grid{grid-template-columns:1fr}.shell{padding:22px 14px 32px}.card{padding:15px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
