:root {
  --bg-canvas: #f4f6f8;
  --bg-sidebar: #0f172a;
  --bg-card: #ffffff;
  --text-primary: #0f172a;
  --text-sidebar: #dbeafe;
  --text-muted: #64748b;
  --accent: #0ea5e9;
  --accent-soft: #e0f2fe;
  --border: #dbe4ee;
}

body {
  font-family: "Manrope", "Segoe UI", sans-serif;
  background: radial-gradient(circle at top right, #e2e8f0 0%, var(--bg-canvas) 45%);
  color: var(--text-primary);
}

.layout-shell {
  min-height: 100vh;
}

.sidebar-shell {
  box-shadow: inset -1px 0 0 rgba(148, 163, 184, 0.12);
}

.page-shell {
  background:
    radial-gradient(circle at top left, rgba(14, 165, 233, 0.12), transparent 32%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.24));
}

.sidebar-link {
  display: block;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  color: var(--text-sidebar);
  transition: background-color 150ms ease, color 150ms ease;
}

.sidebar-link:hover {
  background: rgba(224, 242, 254, 0.15);
  color: #ffffff;
}

.sidebar-link[aria-disabled="true"] {
  opacity: 0.55;
  pointer-events: none;
}

.main-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 1rem;
}

.hero-panel {
  position: relative;
}

.hero-accent {
  position: absolute;
  inset: auto -5rem -6rem auto;
  width: 14rem;
  height: 14rem;
  border-radius: 9999px;
  background: radial-gradient(circle, rgba(14, 165, 233, 0.18), transparent 68%);
  pointer-events: none;
}

.tool-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.tool-card {
  display: block;
  min-height: 180px;
  padding: 1.25rem;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.tool-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 30px rgba(15, 23, 42, 0.1);
  border-color: rgba(14, 165, 233, 0.28);
}

.tool-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.tool-badge,
.page-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  background: var(--accent-soft);
  color: #0369a1;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tool-arrow {
  color: #94a3b8;
  font-size: 1.25rem;
  line-height: 1;
}

.calculator-form {
  display: block;
}

.field-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.field-card {
  display: block;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: #fff;
}

.field-label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.field-label {
  font-size: 0.875rem;
  font-weight: 700;
  color: #0f172a;
}

.field-unit {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0369a1;
}

.field-input {
  width: 100%;
  margin-top: 0.75rem;
  padding: 0.85rem 0.95rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.85rem;
  background: #f8fafc;
  color: #0f172a;
}

.field-input:focus {
  outline: none;
  border-color: #0ea5e9;
  box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.14);
}

.field-help {
  margin-top: 0.6rem;
  font-size: 0.8rem;
  line-height: 1.5;
  color: #64748b;
}

.submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.15rem;
  border-radius: 0.9rem;
  background: #0f172a;
  color: #fff;
  font-weight: 700;
  transition: transform 160ms ease, background-color 160ms ease;
}

.submit-button:hover {
  transform: translateY(-1px);
  background: #111827;
}

.response-graph {
  width: 100%;
  height: auto;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: linear-gradient(180deg, #ffffff, #f8fafc);
}

.response-axis {
  stroke: #334155;
  stroke-width: 1.5;
}

.response-grid {
  stroke: #cbd5e1;
  stroke-width: 1;
  stroke-dasharray: 4 4;
}

.response-cutoff {
  stroke: #0369a1;
  stroke-width: 1.5;
  stroke-dasharray: 6 4;
}

.response-cutoff-marker {
  stroke: #dc2626;
  stroke-width: 2;
  stroke-dasharray: 4 3;
}

.response-cutoff-point {
  fill: #dc2626;
  stroke: #ffffff;
  stroke-width: 1.5;
}

.response-curve {
  fill: none;
  stroke: #0ea5e9;
  stroke-width: 2.5;
}

.response-label {
  fill: #475569;
  font-size: 11px;
  font-weight: 600;
}

.response-title {
  fill: #0f172a;
  font-size: 12px;
  font-weight: 700;
}

@media (max-width: 767px) {
  .hero-accent {
    inset: auto -7rem -8rem auto;
    width: 11rem;
    height: 11rem;
  }
}

/* Benchbook landing page */
:root{--bench-bg:#0a0f0c;--bench-bg2:#0c120e;--bench-panel:#111a14;--bench-line:#24332a;--bench-phos:#5fe8a3;--bench-amber:#e8a253;--bench-text:#d9e3db;--bench-muted:#8ea79a;--bench-paper:#f1ede1;--bench-ink:#171d19;--bench-mono:"IBM Plex Mono",ui-monospace,monospace;--bench-display:"Bricolage Grotesque",sans-serif;--bench-body:"IBM Plex Sans",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bench-bg);color:var(--bench-text);font-family:var(--bench-body);line-height:1.55}body::selection{background:var(--bench-phos);color:var(--bench-bg)}a{color:inherit}.wrap{max-width:1240px;margin:0 auto;padding:0 24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ticker{background:var(--bench-bg2);border-bottom:1px solid #1a261e;overflow:hidden}.ticker-track{display:flex;width:max-content;animation:bench-tick 40s linear infinite}.ticker span{font:500 11px/1 var(--bench-mono);letter-spacing:.14em;color:var(--bench-muted);padding:9px 0 9px 28px;white-space:nowrap}.ticker b,.brand em,.live i,.foot-bar i{color:var(--bench-phos);font-style:normal}@keyframes bench-tick{to{transform:translateX(-50%)}}.nav{position:sticky;top:0;z-index:10;background:rgba(10,15,12,.94);backdrop-filter:blur(8px);border-bottom:1px solid #1a261e}.nav-in{display:flex;align-items:center;gap:32px;height:62px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:600 15px var(--bench-mono);letter-spacing:.06em}.brand-mark{display:grid;place-items:center;width:26px;height:26px;border:1px solid currentColor;color:var(--bench-text);font-size:23px;line-height:1}.navlinks{display:flex;gap:26px;margin-left:8px}.navlinks a{font:500 11px var(--bench-mono);letter-spacing:.16em;color:var(--bench-muted);text-decoration:none}.navlinks a:hover,.foot-grid a:hover{color:var(--bench-phos)}.nav-right{display:flex;align-items:center;gap:18px;margin-left:auto}.live{display:flex;align-items:center;gap:8px;font:500 10px var(--bench-mono);letter-spacing:.14em;color:var(--bench-muted)}.led{width:8px;height:8px;border-radius:50%;background:var(--bench-phos);box-shadow:0 0 8px var(--bench-phos);animation:bench-led 2.6s ease-in-out infinite}@keyframes bench-led{50%{opacity:.7;box-shadow:0 0 15px var(--bench-phos)}}.btn,.mini,.copy,.qchip{font-family:var(--bench-mono);cursor:pointer}.btn{padding:11px 16px;border:1px solid var(--bench-phos);color:var(--bench-phos);font-size:11px;letter-spacing:.14em;text-decoration:none}.btn:hover{background:var(--bench-phos);color:var(--bench-bg)}.hero{position:relative;overflow:hidden;border-bottom:1px solid #1a261e;background-image:linear-gradient(rgba(95,232,163,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(95,232,163,.035) 1px,transparent 1px);background-size:56px 56px}.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-top:84px;padding-bottom:78px}#scope{position:absolute;inset:0;width:100%;height:100%;opacity:.45;pointer-events:none}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--bench-phos);font:600 11px/1 var(--bench-mono);letter-spacing:.2em;text-transform:uppercase}.eyebrow::before{content:"";width:22px;height:1px;background:var(--bench-phos)}h1,h2,h3{font-family:var(--bench-display);text-transform:uppercase;letter-spacing:-.015em}h1{font-size:clamp(3rem,7.2vw,6.3rem);line-height:.96;margin:20px 0 22px}h1 .l2{color:var(--bench-phos);text-shadow:0 0 34px rgba(95,232,163,.3)}.sub{max-width:52ch;color:var(--bench-muted);font-size:16px}.sub b{color:var(--bench-text);font-weight:500}.qchips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.qchip{padding:9px 13px;border:1px solid var(--bench-line);background:transparent;color:var(--bench-muted);font-size:11px;letter-spacing:.06em}.qchip::before{content:"↳ ";color:var(--bench-phos)}.qchip:hover{border-color:var(--bench-phos);color:var(--bench-phos)}.hero-meta{margin-top:30px;color:var(--bench-muted);font:500 10px var(--bench-mono);letter-spacing:.12em}.hero-meta i{color:var(--bench-phos);font-style:normal}.panel{position:relative;background:linear-gradient(180deg,#131d16,#0f1712);border:1px solid var(--bench-line)}.brk::before{content:"";position:absolute;top:-1px;left:-1px;width:16px;height:16px;border-top:2px solid var(--bench-phos);border-left:2px solid var(--bench-phos)}.brk2{position:absolute;bottom:-1px;right:-1px;width:16px;height:16px;border-bottom:2px solid var(--bench-phos);border-right:2px solid var(--bench-phos)}.solver{padding:26px}.solver-head,.solver-actions{display:flex;align-items:center;gap:12px}.solver-head{justify-content:space-between;margin-bottom:20px}.solver-head .ttl,.solver-head .ch,.side-lbl,.g-idx,.g-count,.date,.who,h4{font-family:var(--bench-mono);letter-spacing:.16em}.solver-head .ttl{font-size:12px}.solver-head .ch{font-size:10px;color:var(--bench-amber)}.seg{display:flex;border:1px solid var(--bench-line);margin-bottom:20px}.segbtn{flex:1;padding:11px 0;border:0;border-right:1px solid var(--bench-line);background:transparent;color:var(--bench-muted);font:600 11px var(--bench-mono);cursor:pointer}.segbtn:last-child{border-right:0}.segbtn[aria-pressed=true]{background:var(--bench-phos);color:var(--bench-bg)}.slots{display:grid;grid-template-columns:1fr 1fr;gap:14px}.slot label{display:block;margin-bottom:7px;color:var(--bench-muted);font:500 10px var(--bench-mono);letter-spacing:.14em}.slot-in{display:flex;border:1px solid var(--bench-line);background:#0b110d}.slot-in input{min-width:0;flex:1;padding:13px 12px;border:0;outline:0;background:transparent;color:var(--bench-text);font:500 16px var(--bench-mono)}.slot-in .unit{padding:13px;color:var(--bench-muted);font:500 12px var(--bench-mono)}.slot.out label{color:var(--bench-phos)}.slot.out .slot-in{border-color:rgba(95,232,163,.55)}.slot.out input{color:var(--bench-phos)}.solver-foot{margin-top:20px;padding-top:16px;border-top:1px dashed var(--bench-line)}.eq{min-height:22px;color:var(--bench-amber);font:italic 13px var(--bench-mono)}.hint{min-height:18px;margin-top:6px;color:var(--bench-muted);font:12px var(--bench-mono)}.solver-actions{flex-wrap:wrap;margin-top:16px}.mini{padding:8px 10px;border:1px solid var(--bench-line);background:transparent;color:var(--bench-muted);font-size:10px}.mini:hover{border-color:var(--bench-phos);color:var(--bench-phos)}.copy{margin-left:auto;padding:9px 13px;border:1px solid var(--bench-phos);background:var(--bench-phos);color:var(--bench-bg);font-size:10px;letter-spacing:.1em}.copy[hidden]{display:none}.index{padding:96px 0 100px}.index-top{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:52px}.index h2,.paper h2,.notes h2{font-size:clamp(2.2rem,4.4vw,3.6rem);margin:16px 0 0}.note{max-width:38ch;color:var(--bench-muted);font-size:14px;border-left:2px solid var(--bench-phos);padding-left:16px}.index-grid{display:grid;grid-template-columns:272px 1fr;gap:60px}.index-side{position:sticky;top:96px;align-self:start}.side-lbl{margin-bottom:14px;color:var(--bench-muted);font-size:10px}.catnav{display:grid;gap:3px}.catlink{display:flex;justify-content:space-between;padding:10px 12px;border-left:2px solid transparent;color:var(--bench-muted);font-size:13px;text-decoration:none}.catlink:hover{color:var(--bench-phos);border-left-color:var(--bench-phos);background:rgba(95,232,163,.05)}.catlink .n{font:10px var(--bench-mono)}.side-sep{height:1px;margin:22px 0;background:var(--bench-line)}.filter-box input{width:100%;padding:12px;border:1px solid var(--bench-line);outline:0;background:#0b110d;color:var(--bench-text);font:500 12px var(--bench-mono)}#filterCount{display:block;margin-top:10px;color:var(--bench-muted);font:10px var(--bench-mono);letter-spacing:.1em}#filterCount b{color:var(--bench-phos)}.group{border-bottom:1px solid #1a261e}.g-head{padding:0 0 12px}.g-idx{color:var(--bench-phos);font-size:10px}.g-name{font-size:clamp(24px,2.6vw,34px);margin:8px 0}.g-count{color:var(--bench-muted);font-size:10px}.g-rule{display:block;height:1px;margin:16px 0 10px;background:linear-gradient(90deg,var(--bench-line),transparent)}.g-blurb,.c-desc{color:var(--bench-muted);font-size:13px}.g-rows{padding-bottom:14px}.calc{display:flex;align-items:center;gap:16px;padding:15px 12px;border-top:1px solid #1a261e;text-decoration:none}.calc:hover{background:rgba(95,232,163,.05)}.c-num{width:26px;color:var(--bench-muted);font:12px var(--bench-mono)}.c-main{min-width:0;flex:none;max-width:65%}.c-name{display:block;font-size:16px;font-weight:600}.c-desc{margin-top:3px;line-height:1.45}.c-dots{flex:1;min-width:20px;border-bottom:2px dotted rgba(142,167,154,.28);transform:translateY(5px)}.c-arr{color:var(--bench-muted);font-size:18px}.empty-state{padding:34px 12px;color:var(--bench-muted)}.paper{padding:100px 0 90px;background:linear-gradient(rgba(23,29,25,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(23,29,25,.055) 1px,transparent 1px),var(--bench-paper);background-size:24px 24px;color:var(--bench-ink)}.paper .eyebrow{color:#1c6b45}.paper .eyebrow::before{background:#1c6b45}.paper-lead{max-width:56ch;color:rgba(23,29,25,.7);font-size:16px}.principles{max-width:760px;margin-top:50px;border-top:1px solid rgba(23,29,25,.25)}.principles article{display:grid;grid-template-columns:88px 1fr;gap:20px;padding:25px 0;border-bottom:1px solid rgba(23,29,25,.18)}.principles strong{font:800 42px/1 var(--bench-display);color:rgba(23,29,25,.28)}.principles h3{margin:0 0 8px;font-size:19px}.principles p{max-width:52ch;margin:0;color:rgba(23,29,25,.7);font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border-top:2px solid rgba(23,29,25,.3)}.stats div{padding:28px 22px 6px;border-left:1px solid rgba(23,29,25,.18)}.stats div:first-child{border-left:0;padding-left:0}.stats b{display:block;font:800 clamp(38px,4.6vw,58px)/1 var(--bench-display)}.stats span{display:block;margin-top:12px;color:rgba(23,29,25,.55);font:500 10px var(--bench-mono);letter-spacing:.15em}.notes{padding:100px 0 96px;border-bottom:1px solid #1a261e}.notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:52px}.notes-grid article{padding:30px 28px 26px;border:1px solid var(--bench-line);background:#121a15}.date,.who{display:block;color:var(--bench-muted);font-size:10px}.notes q{display:block;margin:15px 0 17px;font-size:17px;line-height:1.6}.who{color:var(--bench-phos)}.cta{padding:120px 0 110px;background:radial-gradient(60% 90% at 50% 110%,rgba(95,232,163,.12),transparent 70%),var(--bench-bg2)}.cta-big{display:flex;align-items:center;gap:24px;margin-top:26px;color:var(--bench-text);font:800 clamp(2.6rem,8vw,6.6rem)/1 var(--bench-display);text-decoration:none}.cta-big span{color:var(--bench-phos)}.cta p{margin-top:28px;color:var(--bench-muted);font:500 11px var(--bench-mono);letter-spacing:.12em}footer{padding:64px 0 0;background:var(--bench-bg);border-top:1px solid #1a261e}.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;padding-bottom:56px}.foot-grid p{max-width:30ch;color:var(--bench-muted);font-size:13px}.foot-grid h4{color:var(--bench-muted);font-size:10px;margin:0 0 12px}.foot-grid a:not(.brand){display:block;padding:5px 0;color:var(--bench-text);font-size:13px;text-decoration:none}.foot-bar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;padding-bottom:26px;border-top:1px solid #1a261e;color:var(--bench-muted);font:10px var(--bench-mono);letter-spacing:.1em}
@media(max-width:1020px){.hero-in{grid-template-columns:1fr}.index-grid{grid-template-columns:1fr;gap:34px}.index-side{position:static}.catnav{display:flex;flex-wrap:wrap;gap:8px}.catlink{border:1px solid var(--bench-line);padding:8px 12px}.catlink:hover{border-color:var(--bench-phos)}}@media(max-width:680px){.navlinks,.live{display:none}.nav-in{gap:12px}.slots,.notes-grid,.stats{grid-template-columns:1fr}.index-top{display:block}.note{margin-top:24px}.c-dots{display:none}.c-main{max-width:none}.stats div{border-left:0;border-top:1px solid rgba(23,29,25,.18);padding-left:0}.stats div:first-child{border-top:2px solid rgba(23,29,25,.3)}.stats{border-top:0}.foot-grid{grid-template-columns:1fr 1fr}.hero-in{padding-top:58px}.solver{padding:20px}.copy{margin-left:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track,.led{animation:none!important}}
