:root {
  --navy: #142938;
  --navy-2: #1c3648;
  --blue: #187ca8;
  --cyan: #47c2db;
  --ice: #eaf6f8;
  --line: #c8d8de;
  --paper: #f8fafb;
  --ink: #17242d;
  --muted: #526775;
  --white: #ffffff;
  --red: #c64f48;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.55;
}

a { color: inherit; }

.site-header {
  max-width: var(--max);
  margin: 0 auto;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--navy);
  font-size: 1.08rem;
  font-weight: 750;
  letter-spacing: .02em;
  text-decoration: none;
}
.brand b { color: var(--blue); }
.brand-mark {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--navy);
  background: var(--white);
  color: var(--navy);
  line-height: 1;
  box-shadow: inset 0 -3px 0 var(--cyan);
}
.brand-mark > span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  font-style: italic;
  font-weight: 700;
  letter-spacing: -.08em;
  transform: translateY(-1px);
}
.brand-mark sub {
  margin-left: 1px;
  color: var(--blue);
  font-size: .6rem;
  font-weight: 850;
  line-height: 1;
  transform: translateY(7px);
}
.tagline { color: var(--muted); font-size: .92rem; }

.hero {
  max-width: var(--max);
  margin: 0 auto;
  padding: 70px 28px 82px;
  display: grid;
  grid-template-columns: minmax(0, 1.14fr) minmax(360px, .86fr);
  gap: 70px;
  align-items: center;
}
.eyebrow {
  margin: 0 0 12px;
  color: var(--blue);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
h1, h2, h3 { color: var(--navy); line-height: 1.08; letter-spacing: -.035em; }
h1 { margin: 0; font-size: clamp(2.75rem, 5.6vw, 5.15rem); font-weight: 790; }
h1 em { color: var(--blue); font-style: normal; }
.hero-lede {
  max-width: 690px;
  margin: 26px 0 32px;
  color: var(--muted);
  font-size: 1.18rem;
  line-height: 1.62;
}

.signup {
  max-width: 680px;
  padding: 22px;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 5px solid var(--cyan);
  box-shadow: 0 14px 40px rgba(20, 41, 56, .08);
}
.signup label { display: block; margin-bottom: 9px; font-weight: 750; color: var(--navy); }
.form-trap {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.form-row { display: flex; gap: 10px; }
.form-row input {
  min-width: 0;
  flex: 1;
  padding: 14px 15px;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid #afc3cc;
  border-radius: 3px;
  font: inherit;
}
.form-row button, .cta-link {
  border: 0;
  border-radius: 3px;
  background: var(--blue);
  color: var(--white);
  padding: 14px 20px;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
  text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}
.form-row button:hover:not(:disabled), .cta-link:hover { background: #11668c; transform: translateY(-1px); }
.form-row button:disabled { cursor: wait; opacity: .68; }
.form-row input:focus-visible, .form-row button:focus-visible, .cta-link:focus-visible {
  outline: 3px solid rgba(71, 194, 219, .45);
  outline-offset: 2px;
}
.form-note { margin: 10px 0 0; color: var(--muted); font-size: .79rem; }
.form-note.error { color: var(--red); font-weight: 650; }
.form-success {
  margin-top: 14px;
  padding: 12px 14px;
  background: var(--ice);
  border: 1px solid #a9dce5;
}
.form-success a { margin-left: 8px; color: #075f83; font-weight: 750; }
.trust-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: 22px 0 0;
  padding: 0;
  color: var(--muted);
  list-style: none;
  font-size: .88rem;
}
.trust-list li::before { content: "✓"; margin-right: 7px; color: var(--blue); font-weight: 850; }

.review-panel {
  position: relative;
  min-height: 565px;
  padding: 24px;
  overflow: hidden;
  color: var(--white);
  background: var(--navy);
  box-shadow: 24px 24px 0 var(--ice);
}
.review-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(120,208,225,.075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120,208,225,.075) 1px, transparent 1px),
    linear-gradient(rgba(120,208,225,.11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120,208,225,.11) 1px, transparent 1px);
  background-size: 18px 18px, 18px 18px, 90px 90px, 90px 90px;
}
.panel-top, .mini-checks, .panel-result, .frame-diagram { position: relative; z-index: 1; }
.panel-top { display: flex; justify-content: space-between; color: #bdd1da; font-size: .78rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.frame-diagram { height: 270px; margin: 22px -6px 12px; }
.cad-frame { display: block; width: 100%; height: 100%; overflow: visible; }
.cad-construction { fill: none; stroke: #6d91a3; stroke-width: 1; stroke-dasharray: 4 5; }
.cad-construction text, .cad-labels text {
  fill: #86a7b6;
  stroke: none;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .12em;
}
.cad-dimension { stroke: #7ca9ba; stroke-dasharray: none; }
#dimension-start path, #dimension-end path { stroke: #7ca9ba; stroke-width: 1.25; }
.cad-object { fill: none; stroke: #50dcfa; stroke-width: 6; stroke-linejoin: miter; filter: drop-shadow(0 0 4px rgba(80,220,250,.36)); }
.cad-object circle { fill: var(--navy); stroke: #f2fbfd; stroke-width: 3; }
.cad-brace { stroke: #f2fbfd; stroke-width: 5; }
.cad-joint { stroke: #50dcfa; stroke-width: 1.5; stroke-dasharray: 3 3; filter: none; }
.cad-load { fill: #f3c866; stroke: #f3c866; stroke-width: 3; }
.cad-load text { stroke: none; font-size: 11px; font-weight: 850; letter-spacing: .11em; }
#load-arrowhead path { fill: #f3c866; }
.cad-labels { fill: none; stroke: #86a7b6; stroke-width: 1; }
.cad-labels text { fill: #b8d0d9; letter-spacing: .08em; }
.mini-checks { margin: 0; padding: 0; list-style: none; }
.mini-checks li { display: flex; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.13); color: #e1edf1; font-size: .88rem; }
.mini-checks li span { color: var(--cyan); font-weight: 800; }
.panel-result { margin: 17px 0 0; color: #bed0d7; font-size: .84rem; }
.panel-result span { display: inline-block; width: 8px; height: 8px; margin-right: 7px; background: #efca6b; border-radius: 50%; }

.problem-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--navy-2);
  color: #e3edf0;
  border-top: 1px solid #355063;
  border-bottom: 1px solid #355063;
}
.problem-strip p { margin: 0; padding: 22px; text-align: center; border-right: 1px solid #355063; font-size: .88rem; font-weight: 700; }
.problem-strip p:last-child { border-right: 0; }

.inside { max-width: var(--max); margin: 0 auto; padding: 105px 28px; }
.section-heading { max-width: 720px; }
h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.45rem); }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 52px; background: var(--line); border: 1px solid var(--line); }
.feature-grid article { padding: 32px; background: var(--white); }
.feature-grid article > span { color: var(--blue); font-size: .8rem; font-weight: 850; letter-spacing: .1em; }
.feature-grid h3 { margin: 18px 0 12px; font-size: 1.35rem; }
.feature-grid p { margin: 0; color: var(--muted); }

.decision {
  max-width: var(--max);
  margin: 0 auto 105px;
  padding: 46px;
  display: grid;
  grid-template-columns: 1fr .85fr;
  gap: 65px;
  align-items: center;
  background: var(--ice);
  border-top: 5px solid var(--cyan);
}
.decision > div > p:last-child { max-width: 620px; color: var(--muted); }
.scorecard { background: var(--white); border: 1px solid var(--line); }
.scorecard div { display: grid; grid-template-columns: 82px 1fr; align-items: center; min-height: 66px; border-bottom: 1px solid var(--line); }
.scorecard div:last-child { border-bottom: 0; }
.scorecard b { align-self: stretch; display: grid; place-items: center; background: var(--navy); color: var(--white); font-size: 1.16rem; }
.scorecard span { padding: 14px 18px; color: var(--muted); }

.final-cta { padding: 110px 28px; text-align: center; background: var(--navy); }
.final-cta .eyebrow { color: var(--cyan); }
.final-cta h2 { max-width: 760px; margin: 0 auto 32px; color: var(--white); }
.cta-link { display: inline-block; }
footer { padding: 24px 28px; display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: .85rem; }
footer span:first-child { color: var(--navy); font-weight: 800; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; gap: 50px; padding-top: 42px; }
  .review-panel { max-width: 560px; width: 100%; min-height: 540px; }
  .problem-strip { grid-template-columns: repeat(2, 1fr); }
  .problem-strip p:nth-child(2) { border-right: 0; }
  .problem-strip p:nth-child(-n+2) { border-bottom: 1px solid #355063; }
  .feature-grid { grid-template-columns: 1fr; }
  .decision { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 600px) {
  .site-header { padding: 18px; }
  .tagline { display: none; }
  .hero { padding: 34px 18px 62px; }
  h1 { font-size: clamp(2.5rem, 13vw, 4rem); }
  .hero-lede { font-size: 1.04rem; }
  .form-row { flex-direction: column; }
  .form-row button { width: 100%; }
  .review-panel { min-height: 520px; padding: 20px; box-shadow: 12px 12px 0 var(--ice); }
  .problem-strip { grid-template-columns: 1fr; }
  .problem-strip p { border-right: 0; border-bottom: 1px solid #355063; }
  .problem-strip p:last-child { border-bottom: 0; }
  .inside { padding: 75px 18px; }
  .feature-grid article { padding: 25px; }
  .decision { margin: 0 18px 75px; padding: 28px 20px; }
  .scorecard div { grid-template-columns: 68px 1fr; }
  .final-cta { padding: 82px 18px; }
  footer { padding: 22px 18px; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

.form-note a, .footer-links a, .legal-page a { color: #075f83; }
.footer-links { display: flex; gap: 22px; align-items: center; }
.legal-page {
  max-width: 820px;
  margin: 0 auto;
  padding: 72px 28px 110px;
}
.legal-page h1 { margin: 0; font-size: clamp(2.6rem, 6vw, 4.6rem); }
.legal-date { margin: 12px 0 34px; color: var(--muted); font-size: .9rem; }
.legal-page > p:not(.eyebrow):not(.legal-date) { color: var(--muted); font-size: 1.08rem; }
.legal-page section { margin-top: 38px; }
.legal-page section h2 { font-size: 1.5rem; letter-spacing: -.02em; }
.legal-page section p { margin: 10px 0 0; color: var(--muted); }
.legal-back {
  display: inline-block;
  margin-top: 48px;
  font-weight: 750;
}
@media (max-width: 600px) {
  .legal-page { padding: 50px 18px 80px; }
  .footer-links { align-items: flex-start; flex-direction: column; gap: 8px; }
}

.site-nav { display:flex; align-items:center; gap:24px; color:var(--muted); font-size:.92rem; font-weight:700; }
.site-nav a { text-decoration:none; }
.site-nav a:hover { color:var(--blue); }
.site-nav .nav-cta { padding:9px 13px; color:var(--white); background:var(--navy); border-radius:3px; }
.publication-page, .article-page { max-width:var(--max); margin:0 auto; padding:64px 28px 110px; }
.publication-hero { max-width:870px; padding:30px 0 68px; }
.publication-hero h1, .article-hero h1 { font-size:clamp(2.7rem,6vw,5rem); }
.publication-hero > p:last-child, .article-deck { max-width:790px; color:var(--muted); font-size:1.18rem; line-height:1.65; }
.resource-list { border-top:1px solid var(--line); }
.resource-card { display:grid; grid-template-columns:96px 1fr; gap:28px; padding:42px 0; border-bottom:1px solid var(--line); }
.resource-number { color:var(--cyan); font-size:2.1rem; font-weight:850; letter-spacing:-.04em; }
.resource-kicker { margin:0 0 8px; color:var(--blue); font-size:.76rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.resource-card h2 { max-width:800px; margin:0; font-size:clamp(1.55rem,3vw,2.4rem); }
.resource-card h2 a { text-decoration:none; }
.resource-card h2 a:hover { color:var(--blue); }
.resource-card p { max-width:800px; color:var(--muted); }
.text-link { color:#075f83; font-weight:800; text-decoration:none; }
.text-link span { display:inline-block; transition:transform .15s ease; }
.text-link:hover span { transform:translateX(3px); }
.library-principles { margin-top:78px; padding:44px; display:grid; grid-template-columns:1fr 1fr; gap:60px; background:var(--navy); color:var(--white); }
.library-principles h2 { color:var(--white); }
.library-principles ul { margin:0; padding-left:22px; align-self:center; }
.library-principles li { margin:13px 0; color:#dce9ed; }
.about-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.about-grid article { padding:32px; background:var(--white); }
.about-grid article > span { color:var(--blue); font-weight:850; }
.about-grid h2 { margin:18px 0 12px; font-size:1.45rem; }
.about-grid p, .editorial-standard p, .editorial-scope p { color:var(--muted); }
.editorial-standard { margin-top:86px; display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; }
.standard-list article { padding:0 0 26px; margin-bottom:26px; border-bottom:1px solid var(--line); }
.standard-list h3 { margin:0 0 8px; font-size:1.2rem; }
.standard-list p { margin:0; }
.standard-list a, .editorial-scope a { color:#075f83; }
.editorial-scope { margin-top:62px; padding:38px; background:var(--ice); border-top:4px solid var(--cyan); }
.editorial-scope h2 { font-size:1.8rem; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:52px; color:var(--muted); font-size:.82rem; }
.breadcrumbs a { color:#075f83; }
.article-page article { max-width:860px; margin:0 auto; }
.article-hero { padding-bottom:42px; border-bottom:1px solid var(--line); }
.article-deck { margin:24px 0; }
.article-meta { display:flex; flex-wrap:wrap; gap:8px 22px; color:var(--muted); font-size:.8rem; }
.article-meta span + span::before { content:"•"; margin-right:22px; color:var(--cyan); }
.answer-box { margin:40px 0; padding:28px 30px; background:var(--navy); color:var(--white); border-left:5px solid var(--cyan); }
.answer-box strong { color:var(--cyan); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.answer-box p { margin:8px 0 0; color:#e5f0f3; font-size:1.08rem; }
.article-toc { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 18px; margin:36px 0 54px; padding:24px; background:var(--white); border:1px solid var(--line); }
.article-toc strong { grid-column:1/-1; color:var(--navy); }
.article-toc a { color:#075f83; font-size:.9rem; }
.article-page article > section { scroll-margin-top:24px; margin:58px 0; }
.article-page article > section h2 { margin-bottom:19px; font-size:clamp(1.8rem,3.5vw,2.55rem); }
.article-page article > section h3 { font-size:1.2rem; }
.article-page article > section p, .article-page article > section li { color:#3e5360; font-size:1.04rem; line-height:1.72; }
.article-page article > section a { color:#075f83; }
.field-note { margin:28px 0; padding:22px 24px; background:var(--ice); border-left:4px solid var(--cyan); }
.field-note p { margin:5px 0 0; }
.decision-table { margin:26px 0; border:1px solid var(--line); }
.decision-table > div { display:grid; grid-template-columns:180px 1fr; }
.decision-table span { padding:12px 15px; border-bottom:1px solid var(--line); }
.decision-table div:last-child span { border-bottom:0; }
.decision-table span:first-child { color:var(--navy); background:#eef4f6; font-weight:800; }
.decision-table .table-head span { color:var(--white); background:var(--navy); text-transform:uppercase; font-size:.74rem; letter-spacing:.08em; }
.equation { margin:24px 0; padding:24px; color:var(--navy); background:var(--white); border:1px solid var(--line); border-left:5px solid var(--blue); font-family:Georgia,serif; font-size:clamp(1.55rem,4vw,2.35rem); text-align:center; }
.review-steps { padding-left:24px; }
.review-steps li { margin:13px 0; padding-left:5px; }
.mechanism-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:28px 0; }
.mechanism-grid article { padding:22px; background:var(--white); border:1px solid var(--line); }
.mechanism-grid article > span { color:var(--cyan); font-weight:850; }
.mechanism-grid h3 { margin:12px 0 8px; }
.mechanism-grid p { margin:0; font-size:.94rem !important; }
.faq-section { padding-top:48px; border-top:1px solid var(--line); }
.faq-section details { background:var(--white); border:1px solid var(--line); border-bottom:0; }
.faq-section details:last-child { border-bottom:1px solid var(--line); }
.faq-section summary { padding:18px 20px; color:var(--navy); font-weight:800; cursor:pointer; }
.faq-section details p { margin:0; padding:0 20px 20px; }
.related-guides { padding-top:42px; border-top:1px solid var(--line); }
.related-guides > div { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.related-guides a { display:flex; justify-content:space-between; gap:18px; padding:18px 20px; color:var(--navy) !important; background:var(--white); border:1px solid var(--line); font-weight:800; text-decoration:none; }
.related-guides a:hover { border-color:var(--blue); }
.related-guides a span { color:var(--blue); }
.article-disclaimer { margin:68px 0 0; padding:24px; color:var(--muted); background:#eef4f6; border:1px solid var(--line); }
.article-disclaimer p { margin:6px 0 0; }
.article-next { margin:50px 0 0 !important; padding:42px; text-align:center; background:var(--navy); }
.article-next h2 { color:var(--white); }
.article-next p:not(.eyebrow) { color:#d6e5ea !important; }
.home-resources { max-width:var(--max); margin:0 auto; padding:95px 28px; }
.home-resource-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:38px; background:var(--line); border:1px solid var(--line); }
.home-resource-grid article { padding:28px; background:var(--white); }
.home-resource-grid span { color:var(--blue); font-size:.75rem; font-weight:850; letter-spacing:.1em; }
.home-resource-grid h3 { margin:15px 0 12px; }
.home-resource-grid p { color:var(--muted); }
.authority-home { overflow:hidden; }
.authority-hero { max-width:var(--max); margin:0 auto; padding:74px 28px 92px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(340px,.75fr); gap:72px; align-items:center; }
.authority-hero h1 { max-width:800px; font-size:clamp(3rem,6.2vw,5.5rem); }
.authority-lede { max-width:760px; margin:26px 0 30px; color:var(--muted); font-size:1.2rem; line-height:1.65; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.secondary-link { color:#075f83; font-weight:800; }
.authority-trust { display:flex; flex-wrap:wrap; gap:10px 24px; margin:26px 0 0; padding:0; color:var(--muted); font-size:.86rem; list-style:none; }
.authority-trust li::before { content:""; display:inline-block; width:7px; height:7px; margin:0 8px 1px 0; background:var(--cyan); }
.method-panel { position:relative; padding:26px; color:var(--white); background:var(--navy); box-shadow:20px 20px 0 var(--ice); }
.method-panel::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.35; background-image:linear-gradient(rgba(120,208,225,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(120,208,225,.12) 1px,transparent 1px); background-size:22px 22px; }
.method-panel > p, .method-panel ol { position:relative; z-index:1; }
.method-panel > p { margin:0 0 15px; color:#bcd2db; font-size:.76rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.method-panel ol { margin:0; padding:0; list-style:none; }
.method-panel li { display:flex; align-items:center; gap:16px; padding:16px 0; border-top:1px solid rgba(255,255,255,.15); }
.method-panel li > span { width:35px; color:var(--cyan); font-weight:850; }
.method-panel strong, .method-panel small { display:block; }
.method-panel small { margin-top:2px; color:#bcd2db; font-size:.82rem; }
.start-index { padding:100px max(28px,calc((100vw - var(--max))/2 + 28px)); background:#edf4f6; }
.index-heading { max-width:760px; }
.index-heading > p:last-child { color:var(--muted); font-size:1.08rem; }
.index-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:42px; }
.index-card { position:relative; min-height:340px; padding:34px; background:var(--white); border:1px solid var(--line); }
.index-card.tool-card { color:var(--white); background:var(--navy); border-color:var(--navy); }
.index-number { position:absolute; top:28px; right:30px; color:var(--cyan); font-size:1.25rem; font-weight:850; }
.index-card h3 { max-width:480px; margin:38px 0 15px; font-size:clamp(1.55rem,3vw,2.25rem); }
.index-card h3 a { text-decoration:none; }
.index-card > p:not(.resource-kicker) { max-width:570px; color:var(--muted); }
.tool-card h3, .tool-card h3 a { color:var(--white); }
.tool-card > p:not(.resource-kicker) { color:#cfe0e6; }
.tool-card .text-link { color:var(--cyan); }
.question-paths { max-width:var(--max); margin:0 auto; padding:105px 28px; display:grid; grid-template-columns:.72fr 1.28fr; gap:70px; }
.question-grid { border-top:1px solid var(--line); }
.question-grid > a { display:block; padding:26px 8px; border-bottom:1px solid var(--line); text-decoration:none; }
.question-grid > a:hover strong { color:var(--blue); }
.question-grid span { color:var(--blue); font-size:.73rem; font-weight:850; letter-spacing:.1em; }
.question-grid strong { display:block; margin:7px 0; color:var(--navy); font-size:1.3rem; }
.question-grid p { margin:0; color:var(--muted); }
.authority-statement { padding:72px max(28px,calc((100vw - var(--max))/2 + 28px)); display:grid; grid-template-columns:1fr 1fr; gap:70px; color:var(--white); background:var(--navy); }
.authority-statement h2 { color:var(--white); }
.authority-statement > div:last-child { align-self:center; }
.authority-statement > div:last-child p { color:#d3e2e7; }
.light-link { color:var(--cyan); }
.home-checklist-cta { max-width:850px; margin:0 auto; padding:105px 28px; text-align:center; }
.home-checklist-cta > p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; }
.home-checklist-cta .cta-link { display:inline-block; margin-top:14px; }
.calculator-section { max-width:1100px; width:min(1100px,calc(100vw - 36px)); margin:70px 50% !important; transform:translateX(-50%); padding:42px; background:#edf4f6; border-top:5px solid var(--cyan); scroll-margin-top:24px; }
.calculator-intro { max-width:780px; color:var(--muted); font-size:1.04rem; }
.calculator-shell { display:grid; grid-template-columns:minmax(310px,.86fr) minmax(360px,1.14fr); gap:22px; margin-top:30px; }
.calculator-form, .calculator-output { padding:27px; background:var(--white); border:1px solid var(--line); }
.calculator-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px 14px; }
.calculator-fields label { display:block; color:var(--navy); font-size:.88rem; font-weight:750; }
.calculator-fields label > span { display:block; margin-bottom:7px; }
.calculator-fields label > span small { color:var(--blue); font-size:.75rem; font-weight:800; }
.calculator-fields input, .calculator-fields select { width:100%; min-height:46px; padding:10px 11px; color:var(--ink); background:var(--paper); border:1px solid #aebfc7; border-radius:3px; font:inherit; }
.calculator-fields input:focus-visible, .calculator-fields select:focus-visible, .calculator-actions button:focus-visible { outline:3px solid rgba(71,194,219,.45); outline-offset:2px; }
.field-help { display:block; margin-top:5px; color:var(--muted); font-size:.72rem; font-weight:500; line-height:1.35; }
.calculator-actions { display:flex; gap:10px; margin-top:24px; }
.calculator-actions button { min-height:46px; padding:10px 15px; border:0; border-radius:3px; color:var(--white); background:var(--blue); font:inherit; font-weight:800; cursor:pointer; }
.calculator-actions .reset-button { color:var(--navy); background:#dde8ec; }
.calculator-validation { margin:12px 0 0; color:var(--red); font-weight:750; }
.calculator-output { color:var(--white); background:var(--navy); border-color:var(--navy); }
.beam-diagram { height:190px; margin:-6px -4px 23px; overflow:hidden; border:1px solid #315164; }
.beam-diagram svg { display:block; width:100%; height:100%; }
.diagram-grid { fill:#142938; }
#calc-diagram { background-image:linear-gradient(rgba(120,208,225,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,208,225,.08) 1px,transparent 1px); background-size:20px 20px; }
.diagram-beam { fill:none; stroke:#50dcfa; stroke-width:8; filter:drop-shadow(0 0 4px rgba(80,220,250,.35)); }
.diagram-support, .diagram-dimension, .diagram-tick { fill:none; stroke:#9ab8c4; stroke-width:2; }
.diagram-roller { fill:none; stroke:#9ab8c4; stroke-width:2; }
.diagram-load, .diagram-load-line { fill:none; stroke:#f3c866; stroke-width:2.5; }
.diagram-arrow { fill:#f3c866; }
#calc-diagram text { fill:#a9c2cc; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:10px; font-weight:750; letter-spacing:.08em; }
.result-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.result-heading p { margin:0; color:#a9c2cc !important; font-size:.76rem !important; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.result-heading h3 { margin:3px 0 0; color:var(--white); font-size:1.45rem; }
.result-status { padding:7px 10px; color:#d9edf1; background:#274657; border:1px solid #49697a; font-size:.75rem; font-weight:800; }
.result-status.result-pass { color:#dff8ed; border-color:#4e9077; background:#245b49; }
.result-status.result-fail { color:#ffe9e7; border-color:#a76661; background:#713a37; }
.deflection-result { display:block; margin:18px 0 22px; color:var(--white); font-size:clamp(2.5rem,6vw,4.3rem); font-weight:820; letter-spacing:-.05em; line-height:1; }
.deflection-result small { color:var(--cyan); font-size:1rem; letter-spacing:0; }
.result-details { display:grid; grid-template-columns:repeat(3,1fr); margin:0; border:1px solid #365568; }
.result-details div { padding:13px; border-right:1px solid #365568; }
.result-details div:last-child { border-right:0; }
.result-details dt { color:#9fb8c3; font-size:.7rem; font-weight:750; text-transform:uppercase; }
.result-details dd { margin:3px 0 0; color:var(--white); font-size:.94rem; font-weight:800; }
.equation-used { display:flex; justify-content:space-between; gap:20px; margin-top:19px; color:#a9c2cc; font-size:.78rem; }
.equation-used code { color:var(--cyan); font-family:Georgia,serif; font-size:1rem; }
.result-assumption { margin:14px 0 0; color:#bfd1d8 !important; font-size:.82rem !important; }
.calculator-limit { margin-top:20px; padding:19px 22px; background:var(--white); border:1px solid var(--line); }
.calculator-limit p { margin:5px 0 0; color:var(--muted); font-size:.9rem !important; }
@media (max-width:900px) {
  .site-nav { gap:15px; }
  .about-grid, .mechanism-grid, .home-resource-grid { grid-template-columns:1fr; }
  .editorial-standard, .library-principles { grid-template-columns:1fr; gap:30px; }
  .authority-hero { grid-template-columns:1fr; gap:50px; }
  .method-panel { max-width:560px; }
  .question-paths, .authority-statement { grid-template-columns:1fr; gap:34px; }
  .calculator-shell { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .publication-header { align-items:flex-start; }
  .site-nav { flex-wrap:wrap; justify-content:flex-end; gap:8px 13px; font-size:.82rem; }
  .site-nav .nav-cta { display:none; }
  .publication-page, .article-page { padding:42px 18px 80px; }
  .publication-hero { padding-bottom:45px; }
  .resource-card { grid-template-columns:1fr; gap:8px; padding:32px 0; }
  .resource-number { font-size:1.45rem; }
  .library-principles, .editorial-scope, .article-next { padding:27px 22px; }
  .article-meta { flex-direction:column; gap:4px; }
  .article-meta span + span::before { content:none; }
  .article-toc { grid-template-columns:1fr; }
  .related-guides > div { grid-template-columns:1fr; }
  .decision-table > div { grid-template-columns:1fr; }
  .decision-table span { border-bottom:0; }
  .decision-table span:last-child { border-bottom:1px solid var(--line); }
  .home-resources { padding:72px 18px; }
  .authority-hero { padding:45px 18px 72px; }
  .index-grid { grid-template-columns:1fr; }
  .start-index { padding:72px 18px; }
  .index-card { min-height:0; padding:27px 23px; }
  .question-paths { padding:75px 18px; }
  .authority-statement { padding:62px 18px; }
  .home-checklist-cta { padding:78px 18px; }
  .calculator-section { width:calc(100vw - 24px); padding:28px 14px; }
  .calculator-fields { grid-template-columns:1fr; }
  .calculator-form, .calculator-output { padding:21px 16px; }
  .result-details { grid-template-columns:1fr; }
  .result-details div { border-right:0; border-bottom:1px solid #365568; }
  .result-details div:last-child { border-bottom:0; }
  .result-heading { flex-direction:column; }
  .equation-used { flex-direction:column; gap:5px; }
}
