:root{color-scheme:light;--bg: #d7ebf8;--sheet: #f4faff;--ink: #0a0a0a;--muted: #1e3a4c;--faint: #3d5a6e;--rule: #0a0a0a;--accent: #0b6cb5;--accent-ink: #f4fbff;--grid: rgba(10, 10, 10, .06);--shadow: rgba(10, 10, 10, .16);--node: #e7f3fb;--curve: #0e7c9a;--disabled: #6d8494;--font: "IBM Plex Sans", "IBM Plex Sans Arabic", "Segoe UI", sans-serif;--display: "Newsreader", "Times New Roman", serif;--mono: "IBM Plex Mono", "Cascadia Mono", ui-monospace, monospace}:root[data-theme=dark]{color-scheme:dark;--bg: #000000;--sheet: #000000;--ink: #d7ecff;--muted: #9ec8e8;--faint: #7eabc8;--rule: #1c3d55;--accent: #7ec8ff;--accent-ink: #000000;--grid: rgba(126, 200, 255, .06);--shadow: rgba(0, 0, 0, .6);--node: #05080d;--curve: #5ee0ff;--disabled: #5a7080}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.5;background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:28px 28px}h1,h2,h3,p{margin:0}a{color:var(--accent)}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip{position:absolute;left:12px;top:-40px;background:var(--ink);color:var(--sheet);padding:8px 12px;z-index:2}.skip:focus{top:12px}.sheet{width:min(1120px,calc(100% - 32px));margin:28px auto 48px;background:var(--sheet);border:1px solid var(--rule);box-shadow:10px 10px 0 var(--shadow)}.top{display:flex;align-items:center;gap:20px;padding:16px 22px;border-bottom:1px solid var(--rule)}.mark{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;margin-right:auto}.mark span:first-child{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--rule);font-family:var(--mono);font-size:13px}.mark strong{display:block;font-weight:600;letter-spacing:.01em}.mark small{color:var(--muted);font-family:var(--mono);font-size:12px}.top nav{display:flex;gap:16px;font-family:var(--mono);font-size:13px}.top nav a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:3px}.theme{border:1px solid var(--rule);background:transparent;color:var(--ink);font:inherit;font-family:var(--mono);font-size:13px;padding:8px 12px;cursor:pointer}.theme:hover{background:var(--ink);color:var(--sheet)}.hero,.work,.demos,.archive,.contact,footer{padding:28px 32px 32px;border-bottom:1px solid var(--rule)}footer{border-bottom:0;color:var(--muted);font-family:var(--mono);font-size:12px;text-align:center}.hero{display:grid;grid-template-columns:1.4fr .9fr;gap:36px;align-items:end}.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}h1{font-family:var(--display);font-size:clamp(40px,5vw,64px);font-weight:560;line-height:.98;letter-spacing:-.03em}.lede{margin-top:16px;max-width:58ch;color:var(--muted)}.spec{margin:0;border-top:1px solid var(--rule)}.spec div{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}.spec dt{font-family:var(--mono);font-size:12px;color:var(--faint)}.spec dd{margin:0}.section-head{display:flex;justify-content:space-between;gap:24px;align-items:baseline;margin-bottom:22px}h2{font-family:var(--display);font-size:32px;font-weight:560;letter-spacing:-.02em}.section-head p{max-width:46ch;color:var(--muted);font-size:15px}.feature{display:grid;grid-template-columns:.92fr 1.08fr;gap:28px;padding-bottom:28px;border-bottom:1px solid var(--rule);align-items:start}.index{display:flex;gap:10px;align-items:baseline;margin:0 0 8px;font-family:var(--mono);font-size:12px;color:var(--faint)}h3{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}.feature-copy ul{margin:14px 0 0;padding-left:18px}.feature-copy li+li{margin-top:6px}.stack,.status{font-size:14px}.stack{margin-top:14px;font-family:var(--mono);font-size:12px}.status{margin-top:8px;color:var(--muted)}.text-link{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:13px}.rows{display:flex;flex-direction:column}.row{padding:18px 0;border-bottom:1px solid var(--rule)}.row:last-child{border-bottom:0;padding-bottom:0}.mock{margin:0;border:1px solid var(--rule);background:var(--node);min-width:0}.mock-banner,.mock-status,.mock-titlebar{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;font-family:var(--mono);font-size:11px}.mock-banner{background:var(--ink);color:var(--sheet)}.mock-titlebar,.mock-status,.mock-ribbon{border-top:1px solid var(--rule)}.mock-dots{display:flex;gap:4px;align-items:center}.mock-dots i{width:7px;height:7px;border:1px solid var(--rule);display:block}.mock-ribbon{display:flex;flex-wrap:wrap}.mock-ribbon button,.mock-acq button{border:0;border-right:1px solid var(--rule);background:transparent;color:var(--ink);font:inherit;font-family:var(--mono);font-size:12px;padding:8px 12px;cursor:pointer}.mock-ribbon button.is-on{background:var(--ink);color:var(--sheet)}.mock-body{display:grid;grid-template-columns:1fr 168px;min-height:230px;border-top:1px solid var(--rule)}.network,.plot{width:100%;height:auto;display:block}.network.is-live{touch-action:none;-webkit-user-select:none;user-select:none}.pipe{stroke:var(--ink);stroke-width:6}.axis{stroke:var(--faint);stroke-width:1}.curve{fill:none;stroke:var(--curve);stroke-width:2.5}.sample-point{fill:var(--accent)}.axis-label{fill:var(--muted);font-family:var(--mono);font-size:11px}.network.is-live .node{cursor:grab}.network.is-dragging,.network.is-dragging .node{cursor:grabbing}.node rect{fill:var(--node);stroke:var(--ink);stroke-width:1.4}.node.is-on rect{fill:var(--ink)}.node text{fill:var(--ink);font-family:var(--mono);font-size:11px;pointer-events:none}.node.is-on text{fill:var(--sheet)}.mock-props{margin:0;border-left:1px solid var(--rule);padding:10px 12px}.mock-props div+div{margin-top:8px}.mock-props dt{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.mock-props dd{margin:0;font-size:14px}.mock-props input{width:4.2rem;margin-right:4px;border:1px solid var(--rule);background:var(--sheet);color:var(--ink);font:inherit;font-size:14px;padding:2px 4px}.mock-props .unit{color:var(--muted);font-size:13px}.mock-plot,.mock-acq,.mock-report{grid-column:1 / -1}.mock-plot,.mock-acq{padding:8px 12px 12px}.mock-plot p,.mock-acq p{color:var(--muted);font-size:14px}.mock-acq ol{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0;padding:0;list-style:none;font-family:var(--mono);font-size:12px}.mock-acq li.is-current{color:var(--accent)}.mock-acq button{border:1px solid var(--rule)}.progress{height:8px;margin:8px 0;border:1px solid var(--rule)}.progress>span{display:block;height:100%;background:var(--accent)}.report-page{display:grid;gap:6px;padding:10px 12px 12px}.report-head{display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:12px}.report-head strong{font-weight:500}.report-note{color:var(--muted);font-size:13px}.demo-list,.archive-list,.contact ul{list-style:none;margin:0;padding:0}.demo-list li{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:12px 0;border-top:1px solid var(--rule)}.demo-list a{font-weight:600;color:var(--ink)}.demo-list p{color:var(--muted);font-size:14px}.meta,.repo-link,.archive-list span{font-family:var(--mono);font-size:12px;color:var(--faint)}.meta{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.repo-link{color:var(--accent)}.archive details{border-top:1px solid var(--rule)}.archive summary{cursor:pointer;padding:12px 0;font-family:var(--mono);font-size:13px}.archive-list li{display:grid;grid-template-columns:minmax(180px,.8fr) auto;gap:4px 16px;padding:10px 0;border-top:1px solid var(--rule)}.archive-list a{color:var(--ink);font-weight:600}.archive-list p{grid-column:1 / -1;color:var(--muted);font-size:14px}.contact ul{display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--mono);font-size:14px}.contact li{color:var(--muted)}.sidlab-block .feature{border-bottom:0;padding-bottom:12px}.stills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start;padding-bottom:28px;border-bottom:1px solid var(--rule)}.still{container-type:inline-size;margin:0;border:1px solid var(--rule);background:var(--node);min-width:0}.still figcaption,.phone-caption,.phone-bar{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:11px;font-style:normal}.still figcaption,.phone-caption{color:var(--muted)}@container (max-width: 480px){.node text,.axis-label{font-size:8px}}.demos .feature:last-child{border-bottom:0;padding-bottom:0}.demo-stage{display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);gap:10px 14px;align-items:start;min-width:0}.live-col,.shots{display:flex;flex-direction:column;gap:10px;min-width:0}.phone{width:100%;max-width:420px;margin:0;border:1px solid var(--rule);background:var(--node);min-width:0}.phone-screen{display:flex;flex-direction:column;gap:8px;padding:8px 10px 10px}.phone.is-live .phone-screen{min-height:260px}.segment{display:flex;width:fit-content;border:1px solid var(--rule)}.segment button{border:0;background:transparent;color:inherit;font:inherit;font-family:var(--mono);font-size:12px;padding:6px 10px;cursor:pointer}.segment button+button{border-left:1px solid var(--rule)}.segment button.is-on{background:var(--ink);color:var(--sheet)}.lines{list-style:none;margin:0;padding:0}.lines li{border-bottom:1px solid var(--rule)}.line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;padding:7px 0;border:0;background:transparent;color:inherit;font:inherit;font-size:14px;text-align:start}button.line{cursor:pointer}button.line:disabled{color:var(--disabled);cursor:not-allowed}.line .name{flex:1;min-width:0}.qty,.money{white-space:nowrap}.is-low{color:var(--accent);font-family:var(--mono);font-size:12px}.total-row,.budget-line{display:flex;justify-content:space-between;gap:8px}.total-row{font-size:14px;font-weight:600;padding-top:8px}.budget-line,.hint,.quiet,.phone-label{color:var(--muted);font-size:13px}.budget-line,.phone-label{font-family:var(--mono);font-size:12px}.phone-label{letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.bar{height:8px;border:1px solid var(--rule)}.bar>span{display:block;height:100%;background:var(--ink)}.bar.is-warn>span{background:var(--accent)}.warn{color:var(--accent);font-size:13px}.add-line{display:flex;gap:6px}.add-line input{flex:1;min-width:0;border:1px solid var(--rule);background:transparent;color:inherit;font:inherit;font-size:14px;padding:6px 8px}.add-line button{border:1px solid var(--rule);background:var(--ink);color:var(--sheet);font:inherit;font-family:var(--mono);font-size:12px;padding:6px 10px;cursor:pointer}.add-line button:disabled{background:transparent;color:var(--disabled);cursor:not-allowed}@media(max-width:860px){.hero,.feature,.row,.mock-body,.stills,.demo-stage{grid-template-columns:1fr}.section-head,.top{align-items:flex-start;flex-direction:column}.top nav{flex-wrap:wrap}.mock-props{border-left:0;border-top:1px solid var(--rule)}.demo-list li,.archive-list li{grid-template-columns:1fr}.meta{align-items:flex-start;text-align:left;flex-direction:row;gap:10px}.hero,.work,.demos,.archive,.contact,footer{padding:22px 18px 24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
