:root{color-scheme:dark;--background: #0b0f17;--surface: #121826;--surface-raised: #18202f;--border: #243044;--border-strong: #35455f;--text: #dfe7f1;--text-muted: #93a2b8;--text-faint: #64748b;--accent: #7fd1ff;--accent-strong: #4cb4e8;--accent-soft: rgba(127, 209, 255, .12);--positive: #5fd39a;--warning: #e8c26a;--negative: #f28b82;--shadow: rgba(0, 0, 0, .35);--graph-surface: #161d2b;--graph-grid: #1e2738;--topbar: rgba(11, 15, 23, .9);--scrim: rgba(0, 0, 0, .45);--warning-soft: rgba(232, 194, 106, .1);--negative-soft: rgba(242, 139, 130, .1);--accent-faint: rgba(127, 209, 255, .04);--on-accent: #04121c;--syntax-keyword: #c792ea;--syntax-type: #82aaff;--syntax-function: #7fd1ff;--sidebar-width: 19rem;--toc-width: 15rem;--group-overview: #7fd1ff;--group-foundation: #a3e635;--group-physics: #4ade80;--group-geometry: #34d399;--group-elements: #fbbf24;--group-orbit: #fb923c;--group-propagation: #f87171;--group-rf: #e879f9;--group-network: #c084fc;--group-ops: #818cf8;--group-sim: #38bdf8;--group-methods: #94a3b8;--group-input: #94a3b8;--group-parse: #7dd3fc;--group-prepare: #a78bfa;--group-propagate: #38bdf8;--group-verify: #4ade80;--group-fields: #4ade80;--group-crosscheck: #fbbf24;--group-branch: #fbbf24;--group-error: #f87171;--group-output: #4ade80;--group-validate: #a78bfa;--group-convert: #38bdf8;--group-store: #a78bfa;--group-frames: #4ade80;--group-rotate: #38bdf8;--group-geodetic: #fbbf24;--group-time: #a78bfa;--group-general: #94a3b8;--group-damping: #4ade80;--group-frameset: #4ade80}:root[data-theme=light]{color-scheme:light;--background: #f4f6fa;--surface: #ffffff;--surface-raised: #eef1f6;--border: #d3dae4;--border-strong: #b3bfcd;--text: #16202e;--text-muted: #4a5769;--text-faint: #6b7787;--accent: #0b6fa4;--accent-strong: #08587f;--accent-soft: rgba(11, 111, 164, .1);--positive: #147d54;--warning: #9a6510;--negative: #b3261e;--shadow: rgba(15, 30, 50, .12);--graph-surface: #ffffff;--graph-grid: #dce3ec;--topbar: rgba(255, 255, 255, .9);--scrim: rgba(15, 30, 50, .35);--warning-soft: rgba(154, 101, 16, .1);--negative-soft: rgba(179, 38, 30, .09);--accent-faint: rgba(11, 111, 164, .05);--on-accent: #ffffff;--syntax-keyword: #7c3aed;--syntax-type: #1d4ed8;--syntax-function: #0b6fa4;--group-overview: #0b6fa4;--group-foundation: #4d7c0f;--group-physics: #15803d;--group-geometry: #0f766e;--group-elements: #a16207;--group-orbit: #c2410c;--group-propagation: #b91c1c;--group-rf: #86198f;--group-network: #6d28d9;--group-ops: #3730a3;--group-sim: #0369a1;--group-methods: #475569;--group-input: #475569;--group-parse: #0369a1;--group-prepare: #5b21b6;--group-propagate: #0369a1;--group-verify: #15803d;--group-fields: #15803d;--group-crosscheck: #a16207;--group-branch: #a16207;--group-error: #b91c1c;--group-output: #15803d;--group-validate: #5b21b6;--group-convert: #0369a1;--group-store: #5b21b6;--group-frames: #0f766e;--group-rotate: #0369a1;--group-geodetic: #a16207;--group-time: #5b21b6;--group-general: #475569;--group-damping: #15803d;--group-frameset: #0f766e}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--background);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{line-height:1.25;font-weight:600}h1{font-size:1.9rem;margin:0 0 .5rem}h2{font-size:1.35rem;margin:2.25rem 0 .75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}h3{font-size:1.1rem;margin:1.75rem 0 .5rem}h4{font-size:1rem;margin:1.25rem 0 .4rem;color:var(--text-muted)}p{margin:.75rem 0}ul,ol{margin:.75rem 0;padding-left:1.5rem}li{margin:.3rem 0}code{font-family:var(--mono);font-size:.88em;background:var(--surface-raised);padding:.12em .35em;border-radius:var(--radius-small)}pre{margin:0;overflow-x:auto}pre code{background:none;padding:0;font-size:.85rem;line-height:1.6}blockquote{margin:1rem 0;padding:.25rem 1rem;border-left:3px solid var(--border-strong);color:var(--text-muted)}hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.app{display:flex;min-height:100vh}.sidebar-frame{flex:0 0 var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border)}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;padding:1.25rem 0 2rem}.sidebar-brand{display:block;padding:0 1.25rem 1rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.sidebar-brand a{color:var(--text);font-size:1.05rem;font-weight:600;letter-spacing:.01em}.sidebar-brand p{margin:.15rem 0 0;color:var(--text-faint);font-size:.78rem}.sidebar nav{padding:0 .75rem}.sidebar-section{margin-bottom:1.5rem}.sidebar-group-title{color:var(--accent);font-size:.72rem;line-height:1.35;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding-bottom:.35rem;margin:0 0 .55rem .4rem;border-bottom:1px solid var(--border-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-section h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin:0 0 .5rem .5rem;border:none;padding:0}.sidebar-chapter{display:grid;grid-template-columns:minmax(0,1fr) 1.1rem;align-items:center;column-gap:.15rem;padding-left:.4rem;border-left:2px solid var(--border-strong);min-height:1.35rem;margin-bottom:.15rem}.sidebar-chapter>a.item{grid-column:1 / -1}.sidebar-chapter-title{min-width:0;font-size:.78rem;line-height:1.35;color:var(--text);margin:0;font-weight:700;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-chapter-title:hover{color:var(--accent);text-decoration:none}.sidebar-chapter-toggle{width:1.1rem;height:1.1rem;padding:0;border:none;background:none;color:var(--text-faint);font-size:.65rem;line-height:1;cursor:pointer;transition:transform .12s ease}.sidebar-chapter.collapsed .sidebar-chapter-toggle{transform:rotate(-90deg)}.sidebar-chapter-toggle:hover{color:var(--accent);background:none}.sidebar a.item{display:block;padding:.3rem .5rem;border-radius:var(--radius-small);color:var(--text-muted);font-size:.88rem}.sidebar a.item:hover{background:var(--surface-raised);color:var(--text);text-decoration:none}.sidebar a.item.active{background:var(--accent-soft);color:var(--accent)}.main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--border);background:var(--topbar);position:sticky;top:0;z-index:20;backdrop-filter:blur(6px)}.search-box{flex:0 1 auto;max-width:34rem;display:flex;gap:.5rem;align-items:stretch}.search-box input{flex:1 1 auto;min-width:0}button{white-space:nowrap;flex-shrink:0}.content{padding:1.75rem 2.5rem 4rem;width:100%;flex:1 1 auto}.content.doc{max-width:calc(62rem + var(--toc-width) + 2.5rem);margin:0 auto}.content.wide{max-width:none}input,select,textarea,button{font-family:inherit;font-size:.9rem}input[type=text],input[type=number],input[type=search],select,textarea{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-small);padding:.45rem .6rem;transition:border-color .12s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-strong)}textarea{font-family:var(--mono);font-size:.82rem;line-height:1.5;resize:vertical;min-height:6rem}button{background:var(--accent-strong);color:var(--on-accent);border:none;border-radius:var(--radius-small);padding:.45rem .9rem;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:var(--accent)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong)}button.secondary:hover:not(:disabled){background:var(--border)}button.ghost{background:none;color:var(--text-muted);border:1px solid var(--border)}button.ghost:hover:not(:disabled){background:var(--surface-raised);color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem}.card+.card{margin-top:1rem}.grid.cards>.card+.card{margin-top:0}.filter-field{max-width:34rem}.card h3{margin-top:0}.page-root{display:block}.grid.cards>.card{display:flex;flex-direction:column;height:100%}.card-action{margin-top:auto;padding-top:.75rem;align-self:flex-start}.grid.cards>.card>button,.grid.cards>.card>a{align-self:flex-start}.card-tags{padding-top:.15rem}.card-clamp{overflow-wrap:anywhere}.crate-grid .card-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;margin:.4rem 0 0;color:var(--text-muted);font-size:.9rem}.api-layer-heading{display:flex;align-items:baseline;gap:.5rem;margin:1.75rem 0 0;font-size:1.05rem}.api-layer-heading a{color:var(--text)}.api-layer-summary{margin:.25rem 0 0;color:var(--text-muted);font-size:.9rem}.grid{display:grid;gap:1rem}.grid.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.metrics{grid-template-columns:repeat(auto-fill,minmax(min(11rem,100%),1fr))}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem}.metric .value{font-size:1.45rem;font-weight:600;color:var(--accent);font-family:var(--mono)}.metric .label{color:var(--text-faint);font-size:.78rem;letter-spacing:.03em}.page-header{margin-bottom:1.5rem}.page-header p{color:var(--text-muted);max-width:60rem}.breadcrumb{color:var(--text-faint);font-size:.82rem;margin-bottom:.4rem}.breadcrumb a{color:var(--text-faint)}.tag{display:inline-block;white-space:nowrap;background:var(--surface-raised);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.05rem .6rem;font-size:.75rem;margin:0 .3rem .3rem 0}.badge{display:inline-block;white-space:nowrap;border-radius:var(--radius-small);padding:.05rem .4rem;font-size:.72rem;font-family:var(--mono);border:1px solid var(--border-strong);color:var(--text-muted)}.notice{border-left:3px solid var(--accent-strong);background:var(--accent-soft);padding:.6rem .9rem;border-radius:var(--radius-small);margin:1rem 0;font-size:.88rem}.notice.warning{border-color:var(--warning);background:var(--warning-soft)}.notice.error{border-color:var(--negative);background:var(--negative-soft)}.notice.muted{border-color:var(--border-strong);background:var(--surface);color:var(--text-muted)}.empty{color:var(--text-faint);font-style:italic;padding:1rem 0}.result-list{list-style:none;padding:0;margin:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.result{padding:.85rem 1.1rem;border-bottom:1px solid var(--border);background:var(--surface)}.result:last-child{border-bottom:none}.result:hover{background:var(--surface-raised)}.result-title{font-size:1rem;font-weight:600}.result-summary{margin:.35rem 0 .55rem;color:var(--text-muted);font-size:.88rem}.result-meta{display:flex;gap:.35rem;flex-wrap:wrap}.doc-body{min-width:0;overflow-wrap:anywhere}.doc-body h1,.doc-body h2,.doc-body h3{position:relative;scroll-margin-top:4.5rem}.doc-body .anchor{opacity:0;margin-left:.4rem;color:var(--text-faint);font-weight:400;text-decoration:none}.doc-body h1:hover .anchor,.doc-body h2:hover .anchor,.doc-body h3:hover .anchor{opacity:1}.doc-body figure.code{margin:1rem 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.doc-body figure.code figcaption{padding:.3rem .8rem;background:var(--surface-raised);border-bottom:1px solid var(--border);color:var(--text-faint);font-size:.72rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}.doc-body figure.code pre{padding:.9rem 1rem}.doc-body a.concept-link{border-bottom:1px dotted var(--accent-strong)}.doc-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--toc-width);gap:2.5rem;align-items:start}.doc-layout.no-toc{grid-template-columns:minmax(0,1fr);max-width:46rem}.doc-toc{position:sticky;top:4.5rem;align-self:start;font-size:.85rem;max-height:calc(100vh - 6rem);overflow-y:auto;padding-left:1rem;border-left:1px solid var(--border)}.table-wrap{overflow-x:auto;margin:1rem 0;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.5rem .8rem;border-bottom:1px solid var(--border);vertical-align:top}td:first-child{white-space:nowrap}th{background:var(--surface-raised);color:var(--text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}th.numeric,td.numeric{text-align:right;font-family:var(--mono);font-size:.82rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--accent-faint)}.scalars{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:.6rem 1.5rem;margin:1rem 0}.scalar{display:flex;justify-content:space-between;gap:.75rem;padding:.35rem 0;border-bottom:1px dashed var(--border)}.scalar .label{color:var(--text-muted);font-size:.85rem}.scalar .value{font-family:var(--mono);font-size:.85rem;text-align:right;white-space:nowrap}.scalar .unit{color:var(--text-faint);margin-left:.3rem}.graph-canvas{width:100%;aspect-ratio:2 / 1;min-height:20rem;max-height:46rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:block;cursor:grab;touch-action:none}.graph-canvas:active{cursor:grabbing}.graph-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;font-size:.78rem;color:var(--text-muted)}.legend span{display:inline-flex;align-items:center;gap:.35rem}.legend i{width:.75rem;height:.75rem;border-radius:50%;display:inline-block}.chart{width:100%;height:14rem;display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:.75rem 0}.signature{font-family:var(--mono);font-size:.82rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-small);padding:.5rem .7rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.signature .kw{color:var(--syntax-keyword)}.signature .ty{color:var(--syntax-type)}.signature .fn{color:var(--syntax-function)}.api-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.85rem 1rem;margin-bottom:.6rem}.api-item header{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(28rem,100%),1fr));gap:.6rem;align-items:start}.item-grid .api-item{margin-bottom:0}.api-item .name{font-family:var(--mono);font-size:.95rem;color:var(--accent);font-weight:600}.api-item .doc{color:var(--text-muted);font-size:.85rem;margin:.5rem 0 0;white-space:pre-wrap}.api-doc{color:var(--text-muted);font-size:.85rem;margin-top:.5rem}.api-doc p{margin:.4rem 0}.api-doc ul,.api-doc ol{margin:.4rem 0;padding-left:1.2rem}.api-doc h1,.api-doc h2,.api-doc h3,.api-doc h4{font-size:.9rem;margin:.75rem 0 .3rem;color:var(--text)}.api-doc figure.code{margin:.5rem 0}.api-doc figure.code figcaption{display:none}.api-doc .table-wrap{margin:.5rem 0}.crate-summary{color:var(--text-muted);font-size:.9rem;max-width:60rem;margin-bottom:.5rem}.crate-summary p{margin:.5rem 0}.api-doc a.api-link,.crate-summary a.api-link{color:var(--accent);border-bottom:1px dotted var(--accent-strong)}.calls{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border)}.calls-label{color:var(--text-faint);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;margin-right:.2rem}.crate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr));gap:.75rem;margin-top:1rem}.crate-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;color:var(--text)}.crate-card:hover{border-color:var(--accent-strong);background:var(--surface-raised);text-decoration:none}.crate-card header{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.crate-card .name{font-family:var(--mono);font-size:.95rem;color:var(--accent);font-weight:600}.crate-card p{margin:.5rem 0 0;color:var(--text-muted);font-size:.85rem}.docs-group-title{padding-bottom:.4rem;margin-bottom:1rem;border-bottom:1px solid var(--border-strong);color:var(--accent)}.docs-subject{margin:1.5rem 0 .5rem;color:var(--text);font-size:.95rem;border-left:2px solid var(--border-strong);padding-left:.6rem}.sidebar-subject{font-size:.72rem;color:var(--text-muted);margin:.35rem 0 .15rem .55rem;padding-left:.45rem;border-left:2px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-card{color:var(--text)}.tool-card:hover{border-color:var(--accent-strong);background:var(--surface-raised);text-decoration:none}.tool-card h4{display:flex;align-items:baseline;gap:.35rem;margin:0 0 .35rem;font-size:.98rem;color:var(--accent)}.tool-go{color:var(--text-faint);font-size:1.05rem;line-height:1;transition:transform .12s ease,color .12s ease}.tool-card:hover .tool-go{color:var(--accent);transform:translate(2px)}.tool-form{scroll-margin-top:4.5rem}.tool-card p{margin:0;color:var(--text-muted);font-size:.86rem}.tool-card.selected{border-color:var(--accent);background:var(--accent-soft)}.toc-list{list-style:none;padding:0;margin:0}.toc-item{display:flex;align-items:baseline;gap:.15rem;margin:.1rem 0}.toc-item.level-3{padding-left:.85rem}.toc-item.level-4{padding-left:1.7rem}.toc-item.level-5,.toc-item.level-6{padding-left:2.55rem}.toc-toggle{flex:0 0 auto;width:1rem;height:1rem;padding:0;border:none;background:none;color:var(--text-faint);font-size:.7rem;line-height:1;cursor:pointer;transition:transform .12s ease}.toc-toggle.collapsed{transform:rotate(-90deg)}.toc-toggle:hover{color:var(--accent);background:none}.toc-link{color:var(--text-muted);font-size:.85rem;line-height:1.4}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.85rem}.chip{display:inline-flex;align-items:baseline;gap:.4rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;padding:.2rem .7rem;font-family:var(--mono);font-size:.78rem;color:var(--accent)}.chip:hover{border-color:var(--accent-strong);text-decoration:none}.chip-note{color:var(--text-faint);font-size:.72rem}.kind{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:.05rem .4rem;border-radius:var(--radius-small);background:var(--surface-raised);border:1px solid var(--border-strong);color:var(--text-muted)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));gap:.9rem 1.25rem}.field{display:flex;flex-direction:column;gap:.25rem}.field.wide{grid-column:1 / -1}.field label{font-size:.82rem;color:var(--text-muted);font-weight:600}.field .help{font-size:.75rem;color:var(--text-faint)}.field .unit{font-size:.72rem;color:var(--text-faint);font-family:var(--mono)}.field.invalid input,.field.invalid textarea,.field.invalid select{border-color:var(--negative)}.spinner{display:inline-block;width:.85rem;height:.85rem;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-.1rem;margin-right:.4rem}@keyframes spin{to{transform:rotate(360deg)}}.math{font-size:1.02em;line-height:1.5}.math math{user-select:none}.math-source{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.math-display{display:block;margin:1.1rem 0;overflow-x:auto;overflow-y:hidden;text-align:center}:root[data-theme=light] .math{font-weight:500}.menu-button{display:none}@media(max-width:1180px){.grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.grid.cards{grid-template-columns:minmax(0,1fr)}}@media(max-width:700px){.topbar .badge{display:none}.topbar{padding:.6rem 1rem}}@media(max-width:960px){.app{flex-direction:column}.menu-button{display:inline-flex}.sidebar-frame{flex:0 0 auto;width:0;height:0;border-right:none;background:none;overflow:visible}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(20rem,84vw);background:var(--surface);border-right:1px solid var(--border);max-width:none;height:100dvh;z-index:40;box-shadow:var(--shadow);transform:translate(-100%);transition:transform .16s ease}.sidebar.open{transform:translate(0)}.sidebar-scrim{position:fixed;inset:0;z-index:30;background:var(--scrim);border:none;padding:0;cursor:pointer}.content{padding:1.25rem 1rem 3rem}.doc-layout{grid-template-columns:minmax(0,1fr)}.doc-layout.no-toc{max-width:none}.doc-toc{position:static;max-height:none;width:100%;border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:.75rem}}
