:root{color:#142033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--panel:#faf7f1c7;--panel-strong:#f5efe6f0;--panel-border:#14203324;--ink-strong:#142033;--ink-soft:#48586c;--accent:#8b4a24;--accent-soft:#8b4a2424;--cool:#254f79;--cool-soft:#254f7924;--shadow:0 18px 40px #1b2a401a;background:radial-gradient(circle at 0 0,#fff4dbeb,#fff4db00 30%),linear-gradient(135deg,#ede7da 0%,#dce6ee 42%,#cfdae5 100%);font-family:IBM Plex Sans,Alegreya Sans,Cantarell,sans-serif;font-weight:400;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;color:var(--ink-strong)}button,input,select{font:inherit}button{cursor:pointer}code{font-family:IBM Plex Mono,Fira Code,monospace}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{gap:18px;min-height:100vh;padding:18px;display:grid}.app-shell__topbar,.app-shell__status-strip,.rail-card,.app-shell__panel,.app-shell__scene{background:var(--panel);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid var(--panel-border);box-shadow:var(--shadow)}.app-shell__topbar{border-radius:22px;flex-wrap:wrap;justify-content:space-between;gap:18px;padding:18px;display:flex}.topbar-group{flex-direction:column;gap:8px;min-width:220px;display:flex}.topbar-group__label,.rail-card__eyebrow,.status-card__eyebrow,.plane-scene__banner span,.scene-placeholder__eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem}.segmented-control{flex-wrap:wrap;gap:8px;display:flex}.segmented-control__button{color:var(--ink-strong);background:#ffffff94;border:1px solid #14203324;border-radius:999px;padding:9px 14px;text-decoration:none;transition:transform .14s,background .14s,border-color .14s}.segmented-control__button:hover,.segmented-control__button:focus-visible{background:#ffffffd6;border-color:#14203340;transform:translateY(-1px)}.segmented-control__button--active{background:var(--cool);color:#f7f3ea;border-color:#0000}.app-shell__body{grid-template-columns:260px minmax(0,1fr) 320px;gap:18px;min-height:0;display:grid}.app-shell__rail{align-content:start;gap:18px;display:grid}.rail-card,.app-shell__panel,.app-shell__status-strip{border-radius:22px}.rail-card{padding:18px}.mode-stepper{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.mode-stepper__item{background:#ffffff75;border:1px solid #1420331f;border-radius:18px}.mode-stepper__item--active{background:#254f791a;border-color:#254f7942}.mode-stepper__button{text-align:left;width:100%;color:inherit;background:0 0;border:0;gap:4px;padding:14px 16px;display:grid}.mode-stepper__button span{color:var(--ink-soft);font-size:.9rem}.app-shell__scene{background:radial-gradient(circle at 50% 24%,#273d59b8,#090d14fa 52%,#04060a 100%);border-radius:28px;min-height:68vh;position:relative;overflow:hidden}.scene-canvas,.scene-canvas canvas,.scene-canvas__overlay,.plane-scene__overlay,.sphere-scene__overlay{position:absolute;inset:0}.scene-canvas canvas{display:block}.scene-canvas__overlay,.plane-scene__overlay,.sphere-scene__overlay{pointer-events:none}.plane-scene__banner,.sphere-scene__banner,.plane-scene__legend,.sphere-scene__legend,.scene-compare-card,.plane-scene__drag-hint,.sphere-scene__drag-hint,.plane-scene__readout,.sphere-scene__readout{pointer-events:none;background:#faf7f1d6;border:1px solid #1420331f;border-radius:16px;position:absolute;box-shadow:0 12px 30px #131d2b1f}.plane-scene__banner,.sphere-scene__banner{gap:3px;padding:12px 14px;display:grid;top:18px;left:18px}.plane-scene__banner strong,.sphere-scene__banner strong{font-size:1.1rem}.scene-compare-card{pointer-events:none;max-width:320px;color:var(--ink-soft);gap:4px;padding:12px 14px;display:grid;position:absolute}.scene-compare-card strong{color:var(--ink-strong)}.scene-compare-card p{margin:0}.scene-compare-card__eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem}.scene-compare-card--top-right{top:18px;right:18px}.scene-compare-card--top-left-offset{top:92px;left:18px}.plane-scene__legend,.sphere-scene__legend,.plane-scene__drag-hint,.sphere-scene__drag-hint,.plane-scene__readout,.sphere-scene__readout{color:var(--ink-soft);padding:10px 12px}.plane-scene__legend,.sphere-scene__legend{align-items:center;gap:10px;display:flex}.plane-scene__legend--top,.sphere-scene__legend--top{top:18px;right:18px}.plane-scene__legend--bottom,.sphere-scene__legend--bottom{bottom:18px;right:18px}.plane-scene__drag-hint,.sphere-scene__drag-hint{max-width:320px;bottom:18px;left:18px}.plane-scene__readout,.sphere-scene__readout{gap:4px;max-width:360px;display:grid;bottom:18px;right:18px}.plane-scene__readout strong,.sphere-scene__readout strong{color:var(--ink-strong);font-size:1.15rem}.plane-scene__readout p,.sphere-scene__readout p{margin:0}.plane-scene__readout-label{letter-spacing:.16em;text-transform:uppercase;font-size:.72rem}.plane-scene__boundary-probe-target{pointer-events:auto;cursor:crosshair;background:0 0;border:0;width:100%;height:32px;position:absolute;left:0}.plane-scene__boundary-probe-target:before{content:"";background:linear-gradient(90deg,#ffe9c100,#ffe9c124 18% 82%,#ffe9c100);height:10px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.legend-swatch{border-radius:4px;width:14px;height:14px;display:inline-block}.legend-swatch--sphere-boundary{background:linear-gradient(135deg,#f1dcc0,#97b4d8);border:1px solid #1420332e}.legend-swatch--excluded{background:#2a3344}.charge-handle{pointer-events:auto;width:72px;color:var(--ink-strong);background:0 0;border:0;justify-items:center;gap:4px;display:grid;position:absolute}.charge-handle__glyph{background:#f7f0e2f0;border:2px solid #18345a;border-radius:999px;place-items:center;width:34px;height:34px;font-weight:700;display:grid;box-shadow:0 10px 26px #16243933}.charge-handle__caption{letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.charge-handle--ghost .charge-handle__glyph{background:#dbe5f12e;border-color:#c5d6eb94;border-radius:9px;transform:rotate(45deg)}.charge-handle--ghost .charge-handle__glyph:before{content:""}.charge-handle--ghost .charge-handle__glyph,.charge-handle--ghost .charge-handle__caption{color:#dbe6f4}.charge-handle--ghost .charge-handle__glyph{opacity:.88}.charge-handle--ghost .charge-handle__glyph,.charge-handle--ghost .charge-handle__glyph *{pointer-events:none}.charge-handle--ghost .charge-handle__glyph{text-align:center;color:#254f79;transform-origin:50%;white-space:nowrap;letter-spacing:0;box-sizing:border-box;content:normal;z-index:1;background-clip:padding-box;border-width:2px;outline:none;place-items:center;padding:0;font-family:inherit;font-size:.92rem;font-style:normal;font-weight:700;line-height:1;display:grid;position:relative;overflow:visible}.charge-handle--ghost-cool .charge-handle__glyph{color:#254f79;background:#dbe5f12e;border-color:#c5d6eb94}.charge-handle--ghost-cool .charge-handle__caption{color:#dbe6f4}.charge-handle--ghost-warm .charge-handle__glyph{color:#8b3f1f;background:#f9d8c92e;border-color:#e7906dad}.charge-handle--ghost-warm .charge-handle__caption{color:#f0c7b7}.charge-handle--real .charge-handle__glyph{color:#271603;background:#fff1cf;border-color:#ffe2a2f5;box-shadow:0 0 0 1px #fff0cc2e,0 0 28px #ffd27975,0 14px 32px #0204096b}.charge-handle--subtle{opacity:.54}.charge-handle--subtle .charge-handle__caption{color:#dbe6f4cc}.app-shell__panel{align-content:start;gap:18px;padding:18px;display:grid}.panel-section{gap:14px;display:grid}.panel-section__header{gap:6px;display:grid}.panel-section__header h2,.panel-section__header h3,.status-card h3,.scene-placeholder h2{margin:0;font-family:Iowan Old Style,Georgia,serif;font-weight:600}.panel-section__header p,.status-card p,.scene-placeholder p,.rail-card p{color:var(--ink-soft);margin:0}.control{background:#ffffff80;border:1px solid #1420331f;border-radius:18px;gap:8px;padding:14px;display:grid}.control input[type=range]{width:100%}.overlay-list{gap:10px;display:grid}.overlay-item{background:#ffffff80;border:1px solid #1420331f;border-radius:16px;justify-content:space-between;gap:12px;padding:12px 14px;display:flex}.overlay-item--planned{opacity:.62}.action-button{color:var(--ink-strong);text-align:left;background:#ffffffd1;border:1px solid #14203324;border-radius:14px;padding:10px 12px;transition:transform .14s,border-color .14s,background .14s}.action-button:hover,.action-button:focus-visible{background:#fffffff5;border-color:#1420333d;transform:translateY(-1px)}.sphere-scene__point-marker{pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;transform:translate(-50%,-50%)}.sphere-scene__point-marker-dot{background:#fff0ca;border-radius:999px;width:12px;height:12px;box-shadow:0 0 0 4px #fff0ca29}.sphere-scene__point-marker-label{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;background:#faf7f1e0;border:1px solid #1420331f;border-radius:999px;padding:4px 8px;font-size:.76rem}.app-shell__status-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:18px;display:grid}.status-card{background:#fff6;border:1px solid #1420331f;border-radius:18px;padding:18px}.status-card--accent{background:linear-gradient(135deg,#254f7924,#ffffff8f)}.scene-placeholder{background:#faf7f1d6;border:1px solid #1420331f;border-radius:24px;max-width:540px;margin:12vh auto 0;padding:32px;box-shadow:0 18px 40px #1b2a401f}@media (width<=1200px){.app-shell__body{grid-template-columns:minmax(0,1fr)}.app-shell__scene{min-height:60vh}.app-shell__status-strip{grid-template-columns:1fr}}
