:root {
  --paper:#f7f4ee; --surface:#fffdf9; --tint:#efe9df; --ink:#1c2321; --muted:#565e5a; --line:#ddd4c6;
  --accent:#7a1f2e; --accent-strong:#5e1623; --on-accent:#ffffff; --law:#9a4a24; --mark:#f0dde0;
  --ok:#2f6b4a; --block:#b42318; --dark:#1f1517; --on-dark:#f4eeea; --accent-on-dark:#e9a8b3;
  --f-display:"Literata", Georgia, serif; --f-text:"Literata", Georgia, serif;
  --f-ui:"IBM Plex Sans", "Segoe UI", sans-serif; --f-mono:"IBM Plex Mono", ui-monospace, monospace;
  --w-display:500; --track-display:-0.015em; --radius:6px; --radius-lg:10px; --display-scale:1.04;
}
/* Wordmarks: every page carries all three; only the active direction's shows. */
.wm { display:inline-flex; align-items:center; gap:.6em; color:var(--ink); text-decoration:none; line-height:1; }
.wm svg { width:1.9em; height:1.9em; flex:none; }
:root .wm-b { display:inline-flex; }
.wm-b .wm-word { font-family:"Literata", Georgia, serif; font-weight:500; font-size:1.12em; letter-spacing:-.01em; }
.wm-b .wm-word b { font-weight:500; color:var(--accent); }
.wm.on-dark { color:var(--on-dark); --accent:var(--accent-on-dark); }
.wm.on-dark .wm-word mark { color:#121212; }

/* Shared atoms */
.cite { font-family:var(--f-mono); font-size:.78em; color:var(--law); background:color-mix(in oklab, var(--law) 9%, var(--surface)); padding:.18em .5em; border-radius:var(--radius); white-space:normal; }
.state { display:inline-flex; align-items:center; gap:.4em; font-family:var(--f-ui); font-weight:600; font-size:.78rem; letter-spacing:.02em; padding:.25em .65em; border-radius:999px; border:1px solid currentColor; }
.state::before { content:""; width:.5em; height:.5em; border-radius:50%; background:currentColor; }
.state.inuse { color:var(--ok); }
.state.blocked { color:var(--block); }
.state.dedus { color:var(--muted); border-style:dashed; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.7em 1.25em; border-radius:var(--radius); font-family:var(--f-ui); font-weight:600; font-size:1rem; text-decoration:none; border:1.5px solid var(--accent); background:var(--accent); color:var(--on-accent); cursor:pointer; transition:background .15s, color .15s; white-space:nowrap; }
.btn:hover { background:var(--accent-strong); border-color:var(--accent-strong); }
.btn.ghost { background:transparent; color:var(--accent); }
.btn.ghost:hover { background:var(--tint); }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline:3px solid color-mix(in oklab, var(--accent) 55%, transparent); outline-offset:2px; }

/* Patient document mock (used on the landing page and the brand board) */
.pdoc { background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.6rem 1.6rem 1.2rem; box-shadow:0 1px 0 var(--line), 0 18px 40px -24px color-mix(in oklab, var(--ink) 45%, transparent); font-family:var(--f-text); font-size:.98rem; line-height:1.55; max-width:30rem; }
.pdoc p { margin:0 0 .8rem; }
.pdoc-head { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-bottom:.7rem; margin-bottom:1rem; border-bottom:1px solid var(--line); font-family:var(--f-ui); font-size:.8rem; }
.pdoc-clinic { font-weight:600; letter-spacing:.02em; }
.pdoc-tag { color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; }
.pdoc-title { font-family:var(--f-display); font-weight:var(--w-display); letter-spacing:var(--track-display); font-size:1.32rem; line-height:1.2; margin:0 0 1rem; }
.pdoc-kicker { font-family:var(--f-ui); font-weight:600; font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); margin:1rem 0 .4rem !important; }
.pdoc-check { list-style:none; padding:0; margin:0 0 1rem; }
.pdoc-check li { position:relative; padding:.3rem 0 .3rem 1.9rem; }
.pdoc-check li::before { content:""; position:absolute; left:0; top:.42rem; width:1.15rem; height:1.15rem; border:1.6px solid var(--ink); border-radius:calc(var(--radius) * .6); }
.pdoc-check li::after { content:""; position:absolute; left:.36rem; top:.55rem; width:.38rem; height:.68rem; border:solid var(--accent); border-width:0 2.6px 2.6px 0; transform:rotate(42deg); }
.pdoc-foot { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-top:.7rem; border-top:1px solid var(--line); font-family:var(--f-ui); font-size:.72rem; color:var(--muted); }
.pdoc-foot code { font-family:var(--f-mono); color:var(--ink); overflow-wrap:anywhere; }

:root { scroll-behavior:smooth; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--f-text); font-size:1.075rem; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
p, li, h1, h2, h3 { text-wrap:pretty; }
a { color:var(--accent); }
.wrap { width:min(74rem, 100% - 2.5rem); margin-inline:auto; }
.ui { font-family:var(--f-ui); }
.eyebrow { font-family:var(--f-ui); font-weight:600; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin:0 0 1rem; display:flex; gap:.8rem; align-items:baseline; }
.eyebrow .num { font-family:var(--f-mono); letter-spacing:0; color:var(--accent); }
h1, h2, h3 { font-family:var(--f-display); font-weight:var(--w-display); letter-spacing:var(--track-display); line-height:1.12; margin:0; }
h2 { font-size:calc(clamp(1.75rem, 1.2rem + 2vw, 2.6rem) * var(--display-scale)); max-width:22ch; }
h3 { font-size:1.2rem; line-height:1.3; }
.lead { font-size:1.2rem; color:var(--muted); max-width:38rem; }
section { padding:clamp(3.5rem, 7vw, 6.5rem) 0; border-top:1px solid var(--line); }
section[id] { scroll-margin-top:4.5rem; }

/* Header */
.top { position:sticky; top:0; z-index:20; background:var(--paper); border-bottom:1px solid var(--line); }
.top .wrap { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:4.5rem; }
.top .wm { font-size:1.05rem; }
.top nav { display:flex; gap:1.6rem; align-items:center; font-family:var(--f-ui); font-size:.95rem; }
.top nav a:not(.btn) { color:var(--ink); text-decoration:none; padding:.6rem 0; }
.top nav a:not(.btn):hover { color:var(--accent); text-decoration:underline; text-underline-offset:.3em; }
.top .btn { min-height:40px; padding:.5em 1em; font-size:.92rem; }
@media (max-width: 56rem) { .top nav a:not(.btn) { display:none; } }
.top .wm { white-space:nowrap; }
@media (max-width: 30rem) { .top .wm { font-size:.95rem; } .top .btn { display:none; } }

/* Hero */
.hero { border-top:0; padding-top:clamp(3rem, 6vw, 5.5rem); }
.hero .wrap { display:grid; grid-template-columns:minmax(0, 1.12fr) minmax(0, .88fr); gap:clamp(2rem, 5vw, 5rem); align-items:start; }
.hero h1 { font-size:calc(clamp(2.3rem, 1.4rem + 3.6vw, 4.1rem) * var(--display-scale)); max-width:16ch; margin-bottom:1.5rem; }
:root .hero h1 em { font-style:italic; color:var(--accent); }
.hero .lead { margin:0 0 2rem; }
.hero .actions { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; margin-bottom:1.25rem; }
.hero .facts { list-style:none; padding:0; margin:0; display:grid; gap:.55rem; font-family:var(--f-ui); font-size:.95rem; color:var(--muted); max-width:34rem; }
.hero .facts li { display:grid; grid-template-columns:1.4rem 1fr; gap:.5rem; }
.hero .facts li::before { content:"—"; color:var(--accent); }
.hero .doc { position:relative; padding-top:.5rem; }
.hero .doc .note { font-family:var(--f-ui); font-size:.8rem; color:var(--muted); margin:.9rem 0 0; max-width:30rem; }
@media (max-width: 60rem) { .hero .wrap { grid-template-columns:1fr; } }

/* Problem */
.quotes { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:clamp(1.5rem, 4vw, 3.5rem); margin:2.5rem 0 3rem; }
.quote { margin:0; }
.quote p { font-size:1.22rem; line-height:1.5; margin:0 0 .8rem; font-style:italic; }
.quote .cite { font-size:.8rem; }
.pains { counter-reset:pain; list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 clamp(1.5rem, 4vw, 3.5rem); }
.pains li { counter-increment:pain; display:grid; grid-template-columns:2.4rem 1fr; padding:1.2rem 0; border-top:1px solid var(--line); }
.pains li::before { content:counter(pain, decimal-leading-zero); font-family:var(--f-mono); font-size:.85rem; color:var(--muted); padding-top:.2rem; }
.pains strong { display:block; font-family:var(--f-ui); font-weight:600; margin-bottom:.2rem; }
.pains span { color:var(--muted); font-size:1rem; }
@media (max-width: 48rem) { .quotes, .pains { grid-template-columns:1fr; } }

/* Before / after */
.compare-head { display:flex; justify-content:space-between; align-items:end; gap:2rem; flex-wrap:wrap; margin-bottom:2rem; }
.profile-switch { display:flex; flex-wrap:wrap; max-width:100%; min-width:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; font-family:var(--f-ui); font-size:.9rem; }
.profile-switch button { flex:1 1 auto; min-height:44px; padding:.5rem 1rem; border:0; background:var(--surface); color:var(--ink); font:inherit; cursor:pointer; }
.profile-switch button + button { border-left:1px solid var(--line); }
.profile-switch button[aria-pressed="true"] { background:var(--accent); color:var(--on-accent); }
.compare { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:var(--surface); }
.compare > div { padding:clamp(1.3rem, 3vw, 2.2rem); }
.compare .before { background:var(--tint); border-right:1px solid var(--line); }
.compare .label { font-family:var(--f-ui); font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin:0 0 1rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.clause { font-size:1.02rem; line-height:1.6; margin:0 0 1.2rem; }
.clause .conflict { text-decoration:line-through; text-decoration-color:var(--block); text-decoration-thickness:2px; color:color-mix(in oklab, var(--ink) 60%, var(--paper)); }
.findings { list-style:none; padding:0; margin:0; display:grid; gap:.7rem; font-family:var(--f-ui); font-size:.88rem; }
.findings li { display:grid; gap:.3rem; justify-items:start; }
.findings b { font-weight:600; }
.findings .k-direct { color:var(--ok); }
.findings .k-conflict { color:var(--block); }
.findings .k-gap { color:var(--law); }
.plain { font-size:1.12rem; line-height:1.65; margin:0 0 1.2rem; }
.plain-meta { font-family:var(--f-ui); font-size:.88rem; color:var(--muted); margin:0; }
.compare-foot { font-family:var(--f-ui); font-size:.85rem; color:var(--muted); margin:1rem 0 0; }
@media (max-width: 52rem) { .compare { grid-template-columns:1fr; } .compare .before { border-right:0; border-bottom:1px solid var(--line); } }

/* How it works */
.steps { list-style:none; padding:0; margin:3rem 0 0; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:0; position:relative; }
.steps li { padding:0 1.5rem 0 0; position:relative; }
.steps .n { font-family:var(--f-mono); font-size:.85rem; color:var(--accent); display:flex; align-items:center; gap:.6rem; margin-bottom:1rem; }
.steps .n::after { content:""; flex:1; height:1px; background:var(--line); }
.steps h3 { margin-bottom:.6rem; }
.steps p { margin:0; color:var(--muted); font-size:1rem; }
.steps .gate { margin-top:1rem; font-family:var(--f-ui); font-size:.85rem; display:flex; gap:.5rem; align-items:flex-start; flex-direction:column; }
.steps .gate span { color:var(--muted); }
@media (max-width: 68rem) { .steps { grid-template-columns:repeat(2, minmax(0,1fr)); row-gap:2.5rem; } }
@media (max-width: 34rem) { .steps { grid-template-columns:1fr; } }

/* Principle (dark band) */
.principle { background:var(--dark); color:var(--on-dark); border-top:0; }
.principle .eyebrow { color:color-mix(in oklab, var(--on-dark) 70%, transparent); }
.principle .eyebrow .num { color:var(--on-dark); }
.principle .big { font-family:var(--f-display); font-weight:var(--w-display); letter-spacing:var(--track-display); font-size:calc(clamp(2rem, 1.2rem + 3vw, 3.4rem) * var(--display-scale)); line-height:1.1; max-width:20ch; margin:0 0 1.5rem; }
.principle .big em { font-style:normal; color:var(--mark); }
:root .principle .big em { color:var(--accent-on-dark); }
.principle .lead { color:color-mix(in oklab, var(--on-dark) 78%, transparent); }
.checks { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(1.5rem, 4vw, 4rem); margin-top:3rem; }
.checks h3 { font-family:var(--f-ui); font-size:.85rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1rem; color:color-mix(in oklab, var(--on-dark) 70%, transparent); }
.checks ul { margin:0; padding:0; list-style:none; }
.checks li { padding:.75rem 0; border-top:1px solid color-mix(in oklab, var(--on-dark) 18%, transparent); }
@media (max-width: 48rem) { .checks { grid-template-columns:1fr; } }

/* Who answers */
.answer { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; margin-top:2.5rem; border-top:2px solid var(--ink); }
.answer > div { padding:1.6rem 2rem 0 0; }
.answer > div + div { padding-left:2rem; border-left:1px solid var(--line); }
.answer h3 { margin-bottom:.4rem; }
.answer .who { font-family:var(--f-ui); color:var(--muted); font-size:.92rem; margin:0 0 1rem; }
.answer ul { margin:0; padding-left:1.1rem; }
.answer li { margin-bottom:.5rem; }
.roles { margin-top:2.5rem; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1.5rem; font-family:var(--f-ui); font-size:.92rem; }
.roles b { display:block; margin-bottom:.2rem; }
.roles span { color:var(--muted); }
@media (max-width: 52rem) { .answer { grid-template-columns:1fr; } .answer > div + div { padding-left:0; border-left:0; border-top:1px solid var(--line); margin-top:1.6rem; } .roles { grid-template-columns:repeat(2, minmax(0,1fr)); } }

/* Data flow */
.split { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:clamp(2rem, 5vw, 5rem); align-items:start; }
.flow { display:grid; gap:.7rem; font-family:var(--f-ui); font-size:.95rem; }
.flow .row { display:grid; grid-template-columns:minmax(0,1fr) minmax(7.5rem, 14rem); gap:1rem; align-items:center; padding:1rem 1.1rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.flow .row .verdict { font-weight:600; text-align:right; font-size:.85rem; }
.flow .row.no { background:transparent; border-style:dashed; }
.flow .row.no .what { text-decoration:line-through; text-decoration-color:var(--block); color:var(--muted); }
.flow .row.no .verdict { color:var(--block); }
.flow .row.yes .verdict { color:var(--ok); }
.flow .row.dest { border-style:solid; border-color:var(--ink); }
.flow .row.dest .verdict { color:var(--muted); font-weight:500; }
.flow .screen { padding:1rem 1.1rem; border-radius:var(--radius); background:var(--ink); color:var(--paper); }
.flow .screen small { display:block; opacity:.75; }
.list-plain { margin:1.5rem 0 0; padding:0; list-style:none; }
.list-plain li { padding:.8rem 0; border-top:1px solid var(--line); }
.list-plain b { font-family:var(--f-ui); font-weight:600; }
@media (max-width: 56rem) { .split { grid-template-columns:1fr; } }

/* Law change */
.timeline { list-style:none; padding:0; margin:2.5rem 0 0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface); overflow:hidden; }
.timeline li { padding:1.3rem 1.3rem 1.5rem; border-right:1px solid var(--line); font-family:var(--f-ui); font-size:.95rem; }
.timeline li:last-child { border-right:0; }
.timeline .when { display:block; font-family:var(--f-mono); font-size:.8rem; color:var(--muted); margin-bottom:.6rem; }
.timeline .state { margin-top:.8rem; }
@media (max-width: 52rem) { .timeline { grid-template-columns:1fr 1fr; } .timeline li:nth-child(2) { border-right:0; } .timeline li:nth-child(-n+2) { border-bottom:1px solid var(--line); } }

/* Limits */
.limits { columns:2 22rem; column-gap:clamp(2rem, 5vw, 4rem); margin-top:2rem; }
.limits p { break-inside:avoid; margin:0 0 1.4rem; }
.limits b { display:block; font-family:var(--f-ui); font-weight:600; }

/* Patients */
.patients { background:var(--tint); }
.patients .split { align-items:center; }
.url { font-family:var(--f-mono); font-size:clamp(.95rem, .8rem + .6vw, 1.2rem); padding:1.1rem 1.3rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow-wrap:anywhere; }
.url b { color:var(--accent); font-weight:500; }

/* CTA + footer */
.cta .wrap { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(2rem, 5vw, 5rem); align-items:end; }
.cta address { font-style:normal; font-family:var(--f-ui); display:grid; gap:.5rem; }
.cta address .ph { color:var(--muted); }
footer.site { border-top:1px solid var(--line); padding:2rem 0 4rem; font-family:var(--f-ui); font-size:.85rem; color:var(--muted); }
footer.site .wrap { display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; align-items:center; }
@media (max-width: 52rem) { .cta .wrap { grid-template-columns:1fr; } }
.skip-link { position:absolute; left:-999px; top:0; }
.skip-link:focus { left:1rem; z-index:30; background:var(--surface); padding:.5rem; }
.wm-b { display:inline-flex; }
.contact-lines { display:grid; gap:.5rem; }
.contact-provider { color:var(--muted); }
.site-footer-inner { align-items:flex-start !important; }
.footer-links { display:flex; gap:1rem; font-size:.8rem; }
.entry-compact { display:none; }
.lead-spaced, .url-note { margin-top:1.2rem; }
.url-note { color:var(--muted); font-size:.9rem; }
@media (max-width:56rem) { .top nav a:not(.btn) { display:none; } .entry-compact { display:inline-flex; margin-left:auto; } .top .wrap { gap:.65rem; } .top nav { gap:.5rem; } }
@media (max-width:30rem) { .top .btn { display:none; } .top .entry-compact { display:inline-flex; } .top .wm { font-size:.82rem; } .top .wm svg { width:1.55em; height:1.55em; } .top .wm-word { font-size:.9em; } .top .wrap { width:calc(100% - 1.25rem); gap:.4rem; } }
.entry-main { max-width:34rem; min-height:60vh; padding-top:clamp(3.5rem, 7vw, 6.5rem); }
.entry-main h1 { font-size:clamp(2.3rem, 1.4rem + 3.6vw, 4.1rem); margin:0 0 1.2rem; }
.entry-form { display:grid; gap:.7rem; margin-top:2rem; }
.entry-form label { font-family:var(--f-ui); font-size:.95rem; font-weight:600; }
.entry-form input { width:100%; min-height:52px; padding:.65rem .8rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--ink); font-family:var(--f-mono); font-size:1.05rem; }
.entry-form input:focus { border-color:var(--accent); outline:3px solid color-mix(in oklab, var(--accent) 18%, transparent); outline-offset:1px; }
.entry-form .btn { justify-self:start; }
.entry-error { padding:.8rem 1rem; border:1px solid color-mix(in oklab, var(--block, #b42318) 30%, white); border-radius:var(--radius); background:color-mix(in oklab, var(--block, #b42318) 7%, white); font-family:var(--f-ui); font-size:.95rem; }
.entry-note { margin-top:1.5rem; color:var(--muted); font-family:var(--f-ui); font-size:.9rem; }
@media (max-width:30rem) { .entry-form .btn { width:100%; } }
.site-footer-inner { flex-direction:column; align-items:center !important; }
.footer-main { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1rem; }
