@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(inter-latin-var.woff2) format("woff2")}
/* MedForge public site. Visual system follows the Nutrisize Health site (owner request 2026-10-21): Inter, white paper, deep green + blue, pill buttons, dark-green footer. Organ-system colours stay on app cards. */
:root{--green-900:#0b3d2e;--green-700:#14684c;--green-600:#178a5e;--green-500:#1fa971;--green-100:#e3f5ec;--blue-700:#0b4f8a;--blue-600:#1268b3;--blue-100:#e5f0fa;--paper:#fff;--paper2:#f4faf7;--card:#fff;--ink:#12211b;--soft:#40544a;--faint:#6b7f74;--rule:#dcebe3;--red:#dc2626;--ecgp:#fbf3f1;--ecgm:#f3d6d2;--ecgM:#e6aaa3;--good:#178a5e;--bad:#dc2626;--accent:#178a5e;--accent-ink:#fff;--shadow:0 4px 24px rgba(11,61,46,.08);--mon:#0F151C;--monline:#59E3A5}

*{box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
h1,h2,h3,.serif{font-family:Inter,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:-.012em}
h1,h2,h3{line-height:1.12;margin:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:8px;z-index:50}.skip:focus{left:8px}
/* header */
header.site{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
header.site .in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:700 1.5625rem Inter,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:-.02em}
.brand svg{width:42px;height:21px}
nav.main{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
nav.main a{padding:8px 11px;border-radius:9px;color:var(--soft);text-decoration:none;font-size:0.9375rem;font-weight:550}
nav.main a:hover{color:var(--ink);background:var(--paper2)}
nav.main a.on{color:var(--ink)}
@media (max-width:760px){header.site .in{flex-direction:column;align-items:flex-start;gap:4px}nav.main{justify-content:flex-start;margin-left:-11px}nav.main a{padding:6px 9px;font-size:0.875rem}}
/* hero */
.hero{padding:56px 0 26px;display:grid;grid-template-columns:1.02fr 1fr;gap:44px;align-items:center}
@media (max-width:940px){.hero{grid-template-columns:1fr;gap:28px;padding-top:34px}}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:700 0.75rem/1 Inter,-apple-system,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.eyebrow:before{content:"";width:26px;height:2px;background:var(--accent);display:block}
.hero h1{font-size:clamp(2.5rem,6.2vw,4.375rem);line-height:1.02;margin:14px 0 18px}
.hero h1 em{font-style:italic;color:var(--accent)}
.lead{font-size:clamp(1.125rem,2.2vw,1.3125rem);color:var(--soft);max-width:600px;margin:0 0 24px}
.cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{display:inline-block;border:0;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;padding:12px 20px;border-radius:12px;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.07)}.btn.soft{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent)}
.btn.ghost{background:transparent;border:1.5px solid var(--ink);color:var(--ink)}
.soon{display:inline-block;padding:11px 16px;border-radius:12px;border:1px dashed var(--soft);color:var(--soft);font-size:0.9062rem;font-weight:600}
.trust{display:flex;flex-wrap:wrap;gap:8px 18px;margin:26px 0 0;padding:0;list-style:none;color:var(--soft);font-size:0.9062rem}
.trust li{display:flex;align-items:center;gap:7px}.trust li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--good)}
.heroCard{background:var(--card);border:1px solid var(--rule);border-radius:22px;box-shadow:var(--shadow);padding:18px 18px 20px;position:relative}
.heroCard .bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font:700 0.75rem Inter,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.heroCard .bar .live{display:inline-flex;gap:6px;align-items:center;color:var(--accent)}.heroCard .bar .live:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.25}}
.heroCard .demo{border:0;padding:0;margin:0;background:none}.heroCard .demo h3,.heroCard .demo .hint{display:none}
/* ecg */
.ecg{display:block;width:100%;height:auto;border:1px solid var(--ecgM);border-radius:12px;background:var(--ecgp)}
.ecg .g1{stroke:var(--ecgm);stroke-width:.5}.ecg .g5{stroke:var(--ecgM);stroke-width:1}.ecg .tr{fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
/* sections */
section{padding:44px 0}
section.tint{background:var(--paper2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sechead{max-width:700px;margin:0 0 26px}.sechead h2{font-size:clamp(1.875rem,4.2vw,2.625rem);margin:10px 0 10px}.sechead p{margin:0;color:var(--soft);font-size:1.125rem}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule);border-radius:18px;background:var(--card);overflow:hidden;box-shadow:var(--shadow)}
.stats div{padding:20px 22px;border-right:1px solid var(--rule)}.stats div:last-child{border-right:0}
.stats b{display:block;font:700 2.375rem/1 Inter,-apple-system,"Segoe UI",Roboto,sans-serif}.stats span{color:var(--soft);font-size:0.9062rem}
@media (max-width:760px){.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
/* app grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:980px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.grid{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--rule);border-radius:20px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-3px);border-color:var(--cc)}
.card .top{height:112px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#fff;position:relative;overflow:hidden}
.card .top:after{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.12)}
.card .top svg{width:58px;height:58px;position:relative;z-index:1}
.card .top .sys{font:700 0.6875rem Inter,-apple-system,sans-serif;letter-spacing:.1em;text-transform:uppercase;opacity:.92;position:relative;z-index:1}
.card .body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{font-size:1.4375rem}.card p{margin:0;color:var(--soft);font-size:0.9688rem;flex:1}
.card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:12px;border-top:1px solid var(--rule);font-size:0.875rem}
.card .price{font-weight:700}.card .price small{font-weight:500;color:var(--soft)}.card .go{color:var(--cc);font-weight:700}
.tag{font:700 0.6875rem/1 Inter,-apple-system,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 20px;padding:0;list-style:none;font-size:0.875rem;color:var(--soft)}
.legend li{display:flex;align-items:center;gap:7px}.legend i{width:12px;height:12px;border-radius:4px;display:block}
/* steps + cite */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:s}
@media (max-width:860px){.steps{grid-template-columns:1fr}}
.step{background:var(--card);border:1px solid var(--rule);border-radius:18px;padding:22px;counter-increment:s;position:relative}
.step:before{content:counter(s);font:700 0.9375rem Inter,-apple-system,"Segoe UI",Roboto,sans-serif;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.step h3{font-size:1.375rem;margin-bottom:6px}.step p{margin:0;color:var(--soft);font-size:1rem}
.citeDemo{display:grid;grid-template-columns:1.1fr 1fr;gap:26px;align-items:start}
@media (max-width:860px){.citeDemo{grid-template-columns:1fr}}
.lesson{background:var(--card);border:1px solid var(--rule);border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.lesson h3{font-size:1.375rem;margin-bottom:8px}.lesson p{margin:0 0 12px}
.cite{display:flex;gap:10px;align-items:flex-start;text-decoration:none;color:var(--ink);border:1px solid var(--rule);border-radius:12px;padding:10px 12px;background:var(--paper);margin:8px 0;font-size:0.9062rem;line-height:1.35}
.cite:hover{border-color:var(--accent)}.cite .n{flex:none;font:700 0.6875rem ui-monospace,Menlo,monospace;background:var(--accent);color:var(--accent-ink);border-radius:6px;padding:3px 6px;margin-top:1px}
.cite small{display:block;color:var(--soft);font-size:0.7812rem}
sup.c{font:700 0.6875rem ui-monospace,Menlo,monospace;color:var(--accent)}
.rules{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.rules li{display:flex;gap:12px;align-items:flex-start;font-size:1.0312rem}.rules li:before{content:"";flex:none;width:22px;height:22px;border-radius:50%;margin-top:2px;background:var(--good) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat}
.auth{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.auth div{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:14px 16px}.auth b{display:block;font-size:1rem}.auth span{color:var(--soft);font-size:0.8438rem;line-height:1.4;display:block;margin-top:3px}
.auth .now{border-color:var(--good)}.auth .now em{font:700 0.625rem Inter,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--good);font-style:normal}
/* pricing */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:820px){.plans{grid-template-columns:1fr}}
.plan{background:var(--card);border:1px solid var(--rule);border-radius:20px;padding:24px;box-shadow:var(--shadow)}
.plan h3{font-size:1.5rem}.plan .amt{font:700 2.5rem/1.1 Inter,-apple-system,"Segoe UI",Roboto,sans-serif;margin:12px 0 2px}.plan .amt small{font:500 0.9375rem Inter,-apple-system,sans-serif;color:var(--soft)}
.plan ul{margin:14px 0 0;padding-left:20px;color:var(--soft);font-size:0.9688rem}
.plan.best{border:2px solid var(--accent)}.plan .flag{display:inline-block;font:700 0.6875rem Inter,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;background:var(--accent);color:var(--accent-ink);padding:4px 9px;border-radius:99px;margin-left:8px;vertical-align:middle}
table.pr{width:100%;border-collapse:collapse;margin-top:22px;background:var(--card);border:1px solid var(--rule);border-radius:16px;overflow:hidden;font-size:0.9688rem}
table.pr th,table.pr td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--rule)}table.pr th{font:700 0.75rem Inter,-apple-system,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);background:var(--paper2)}
table.pr tr:last-child td{border-bottom:0}table.pr i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:9px}
.fine{color:var(--soft);font-size:0.875rem;margin-top:14px;max-width:760px}
.pill{display:inline-block;padding:5px 12px;border-radius:99px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);font-weight:700;font-size:0.8125rem}
/* app page */
.apphero{margin:26px 0 8px;border-radius:26px;overflow:hidden;color:#fff;display:grid;grid-template-columns:1.5fr 1fr;gap:20px;padding:34px;position:relative;box-shadow:var(--shadow)}
@media (max-width:860px){.apphero{grid-template-columns:1fr;padding:24px}}
.apphero h1{font-size:clamp(2.125rem,5vw,3.375rem);margin:8px 0 6px;color:#fff}.apphero .sub{font-size:1.3125rem;opacity:.95;margin:0 0 12px}.apphero p{margin:0 0 10px;opacity:.95}
.apphero .tag{opacity:.9}.apphero .glyph{display:flex;align-items:center;justify-content:center}.apphero .glyph svg{width:min(190px,60%);height:auto;opacity:.9}
.apphero .pillw{display:inline-block;background:rgba(255,255,255,.18);border-radius:99px;padding:6px 13px;font-size:0.875rem;font-weight:600;margin:4px 6px 0 0}
.twocol{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;align-items:start}
@media (max-width:900px){.twocol{grid-template-columns:1fr}}
.side{background:var(--card);border:1px solid var(--rule);border-radius:18px;padding:20px;position:sticky;top:84px}
@media (max-width:900px){.side{position:static}}
.side h3{font-size:1.3125rem;margin-bottom:8px}.side .row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--rule);font-size:0.9688rem}.side .row:last-of-type{border-bottom:0}
.crumbs{font-size:0.9062rem;color:var(--soft);padding:18px 0 0}.crumbs a{color:var(--soft)}
/* demos (used by previews.js) */
.demo{background:var(--card);border:1px solid var(--rule);border-radius:20px;padding:20px;margin:0;box-shadow:var(--shadow)}
.demo h3{margin:0 0 4px;font-size:1.5rem}.demo .hint{color:var(--soft);font-size:0.9062rem;margin:0 0 14px}
.opts{display:grid;gap:8px;margin-top:10px}
.opt{border:1.5px solid var(--rule);background:var(--paper);color:var(--ink);padding:12px 14px;border-radius:12px;text-align:left;font:inherit;font-weight:600;cursor:pointer}
.opt:hover{border-color:var(--accent)}.opt.ok{border-color:var(--good);background:color-mix(in srgb,var(--good) 14%,transparent)}.opt.no{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--soft)}
.feedback{margin-top:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--rule);background:var(--paper);font-size:0.9688rem}
.feedback a{display:inline-block;margin:3px 4px 3px 0;font-size:0.8438rem;text-decoration:none;border:1px solid var(--rule);border-radius:8px;padding:3px 9px;background:var(--card)}.feedback a:hover{border-color:var(--accent)}
.mono{font-family:ui-monospace,Menlo,monospace}
.ticket{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;margin:10px 0}
.ticket div b{display:block;font:700 1.75rem ui-monospace,Menlo,monospace}.ticket div span{font-size:0.75rem;color:var(--soft)}
.sl{display:grid;grid-template-columns:90px 1fr 54px;gap:10px;align-items:center;margin:6px 0;font-size:0.875rem}.sl input{width:100%;accent-color:var(--accent)}
.chart .clue{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:0.9375rem}
.chip{font:700 0.625rem ui-monospace,Menlo,monospace;color:#fff;padding:3px 6px;border-radius:4px;height:fit-content;white-space:nowrap}
.neph{width:100%;max-width:420px;display:block;margin:0 auto}
.neph .seg{fill:none;stroke-linecap:round;stroke-linejoin:round;cursor:pointer}.neph .seg:hover{opacity:.8}
.neph text{font:700 0.6875rem sans-serif;fill:var(--ink);pointer-events:none}
ul.clean{padding-left:20px}ul.clean li{margin:6px 0}
.src{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.src li{margin:0}.src a{display:block;text-decoration:none;border:1px solid var(--rule);border-radius:12px;padding:10px 14px;background:var(--card);color:var(--ink);font-size:0.9688rem}.src a:hover{border-color:var(--accent)}.src small{color:var(--soft);display:block;font-size:0.8125rem}
/* long text pages */
.prose{max-width:760px;padding:40px 0}.prose h1{font-size:clamp(2.125rem,5vw,3rem);margin-bottom:16px}.prose h2{font-size:1.625rem;margin:30px 0 8px}.prose p,.prose li{color:var(--ink)}.prose ul{padding-left:22px}
.notice{border:1px solid var(--rule);background:var(--card);border-radius:14px;padding:14px 16px;color:var(--soft);font-size:0.9375rem;margin:18px 0}
/* footer */
footer.site{border-top:1px solid var(--rule);margin-top:30px;padding:34px 0 56px;color:var(--soft);font-size:0.9062rem;background:var(--paper2)}
footer.site .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:28px}
@media (max-width:760px){footer.site .cols{grid-template-columns:1fr}}
footer.site h4{margin:0 0 8px;color:var(--ink);font-size:0.875rem;letter-spacing:.06em;text-transform:uppercase}
footer.site a{color:var(--soft)}footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
footer.site p{margin:0 0 10px}

/* ---- Nutrisize-style overrides ---- */
a{color:var(--blue-600);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{font-weight:800;letter-spacing:-.02em;color:var(--green-900)}
.serif{font-family:Inter,sans-serif}
header.site{background:rgba(255,255,255,.92);border-bottom:1px solid var(--rule)}
header.site .in{padding:12px 24px}
.brand{font:800 1.0625rem Inter,sans-serif;color:var(--green-900);letter-spacing:-.02em}
.brand svg{width:34px;height:34px;padding:6px;border-radius:8px;background:linear-gradient(135deg,#1fa971,#0b4f8a);stroke:#fff}
nav.main a{color:var(--soft);font-weight:500;font-size:0.9375rem;border-radius:999px}
nav.main a:hover{color:var(--green-700);background:transparent}
nav.main a.on{color:var(--green-700)}
nav.main a.navcta{background:var(--green-600);color:#fff;padding:8px 18px;font-weight:600}nav.main a.navcta:hover{background:var(--green-700);color:#fff}
.hero{background:radial-gradient(1000px 500px at 85% -10%,var(--blue-100) 0%,transparent 60%),radial-gradient(900px 500px at 10% 110%,var(--green-100) 0%,transparent 60%),var(--paper2);margin:0 -24px;padding:72px 24px 56px;border-radius:0}
.hero h1{font-weight:900;letter-spacing:-.03em;line-height:1.08;color:var(--green-900)}
.hero h1 em{font-style:normal;color:var(--green-600)}
.lead{color:var(--soft)}
.eyebrow{color:var(--green-600);background:var(--green-100);border-radius:999px;padding:6px 14px}.eyebrow:before{display:none}
.btn{background:var(--green-600);color:#fff;border-radius:999px;padding:12px 26px;font-weight:700}.btn:hover{background:var(--green-700);filter:none}
.btn.ghost{background:transparent;border:2px solid var(--green-600);color:var(--green-700)}
.btn.soft{background:var(--green-100);color:var(--green-700)}
.soon{border-radius:999px;border:1px solid var(--rule);background:#fff;color:var(--blue-700)}
.trust li:before{background:var(--green-500)}
.heroCard,.card,.step,.lesson,.plan,.side,.demo,.stats,.auth div{border-radius:14px;border-color:var(--rule);box-shadow:var(--shadow);background:#fff}
.stats b{font:800 1.75rem/1.1 Inter,sans-serif;color:var(--green-700);letter-spacing:-.02em}
.sechead h2{font-weight:800;color:var(--green-900)}
.sechead .eyebrow{margin-bottom:2px}
section.tint{background:var(--paper2)}
.step:before{background:var(--green-600);color:#fff;font:800 0.9375rem Inter,sans-serif}
.card .price,.plan .amt{color:var(--green-900)}.plan .amt{font:800 2.375rem/1.1 Inter,sans-serif;letter-spacing:-.02em}
.plan.best{border:2px solid var(--green-600)}.plan .flag{background:var(--green-600);color:#fff}
.cite .n{background:var(--blue-600);color:#fff}.cite:hover,.src a:hover,.feedback a:hover{border-color:var(--green-500)}
sup.c{color:var(--blue-600)}
.pill{background:var(--green-100);color:var(--green-700)}
.opt:hover{border-color:var(--green-500)}
table.pr th{background:var(--green-100);color:var(--green-900)}
.crumbs{color:var(--faint)}.crumbs a{color:var(--green-700);font-weight:600}
.prose h1,.prose h2{color:var(--green-900)}
footer.site{background:var(--green-900);color:#cfe6db;margin-top:40px;padding:44px 0 36px;border:0;font-size:0.875rem;text-align:center}
footer.site a{color:#eaf7f0;font-weight:500}footer.site a:hover{color:#fff}
footer.site b,footer.site h4{color:#fff}
footer.site .cols{display:block}
footer.site .flinks{list-style:none;display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:0 0 18px;padding:0}
footer.site .fcopy{opacity:.85;line-height:1.9;max-width:760px;margin:0 auto}
footer.site .fcopy p{margin:0 0 6px}
.hero{margin:0;padding:72px 0 56px;box-shadow:0 0 0 100vmax var(--paper2);clip-path:inset(0 -100vmax)}
@media (max-width:940px){.hero{padding:44px 0 36px}}
/* ---- Type scale copied from Nutrisize Health (assets/css/style.css) so reading size is identical ---- */
body{font-size:1rem;line-height:1.65}
.brand{font-size:1.0625rem}
nav.main a{font-size:0.9375rem;font-weight:500}nav.main a.navcta{font-weight:600}
.hero h1{font-size:clamp(2.125rem,5.5vw,3.5rem);font-weight:900;letter-spacing:-.03em;line-height:1.12}
.lead{font-size:1.0625rem;max-width:620px}
.eyebrow{font-size:0.8125rem;font-weight:700;letter-spacing:.08em}
.sechead h2{font-size:clamp(1.625rem,4vw,2.25rem);font-weight:800;letter-spacing:-.02em;line-height:1.2}
.sechead p{font-size:1rem}
.btn{font-size:1rem;font-weight:700;padding:12px 24px;border-radius:10px}
.soon{font-size:0.875rem}
.trust{font-size:0.875rem}
.stats b{font-size:1.625rem;font-weight:800}.stats span{font-size:0.8125rem}
.card h3,.step h3,.plan h3,.lesson h3,.side h3,.demo h3,.auth b{font-size:1.125rem;font-weight:700;letter-spacing:-.01em}
.card p,.step p,.lesson p,.auth span,.rules li,.plan ul,.feedback,.src a,.cite{font-size:0.9375rem}
.plan .amt{font-size:1.625rem;font-weight:800}
.card .meta,.side .row,table.pr,.legend,.fine,.cite small,.src small,.demo .hint{font-size:0.875rem}
.tag{font-size:0.75rem}
.apphero h1{font-size:clamp(2.125rem,5.5vw,3.5rem);font-weight:900;letter-spacing:-.03em}
.apphero .sub{font-size:1.0625rem;font-style:normal;font-weight:600}.apphero p{font-size:1rem}
.prose h1{font-size:clamp(1.75rem,4vw,2.25rem)}.prose h2{font-size:1.25rem}.prose p,.prose li{font-size:1rem}
footer.site{font-size:0.875rem}
.hero{background:none;box-shadow:none;clip-path:none;position:relative;isolation:isolate}
.hero:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;background:radial-gradient(1000px 500px at 85% -10%,var(--blue-100) 0%,transparent 60%),radial-gradient(900px 500px at 10% 110%,var(--green-100) 0%,transparent 60%),var(--paper2)}
html,body{overflow-x:clip}
/* readability pass: citation/source lists use the Nutrisize body size (16px) and full ink, secondary lines 14px in --soft */
.src a,.cite{font-size:1rem;font-weight:600;color:var(--ink);line-height:1.4}
.src small,.cite small{font-size:0.875rem;font-weight:400;color:var(--soft)}
.feedback a{font-size:0.875rem;color:var(--ink)}
/* ---- Readability step 2 (owner 2026-10-21): larger than Nutrisize's CSS sizes, same colours/theme. Secondary text is never fainter than --soft. ---- */
body{font-size:1.125rem;line-height:1.65}
nav.main a{font-size:1rem}.brand{font-size:1.1875rem}
.hero h1,.apphero h1{font-size:clamp(2.375rem,5.5vw,3.75rem)}
.lead{font-size:1.25rem}.eyebrow{font-size:0.875rem}
.sechead h2{font-size:clamp(1.875rem,4.2vw,2.5rem)}.sechead p{font-size:1.125rem}
.btn,.soon{font-size:1.0625rem}.trust{font-size:1rem}
.stats b{font-size:1.875rem}.stats span{font-size:0.9375rem}
.card h3,.step h3,.plan h3,.lesson h3,.side h3,.demo h3,.auth b{font-size:1.3125rem}
.card p,.step p,.lesson p,.auth span,.rules li,.plan ul,.feedback,.side .row,.chart .clue,.demo,.lead,.opt{font-size:1.0625rem}
.opt{padding:14px 16px}
.card .meta,table.pr,.legend,.fine,.demo .hint,.sl,.ticket div span,.crumbs{font-size:1rem}
.tag,.card .top .sys{font-size:0.8125rem}
.src a,.cite{font-size:1.125rem}.src small,.cite small{font-size:0.9688rem}
.feedback a{font-size:0.9688rem}
.plan .amt{font-size:1.875rem}.plan .amt small{font-size:1rem}
table.pr th{font-size:0.8438rem}
.prose p,.prose li{font-size:1.125rem}.prose h2{font-size:1.5rem}.prose h1{font-size:clamp(1.875rem,4.5vw,2.625rem)}
.apphero .sub{font-size:1.25rem}.apphero p{font-size:1.125rem}.apphero .pillw{font-size:1rem}
footer.site{font-size:1rem}
.side{color:var(--ink)}.soft,.card p,.step p,.sechead p,.lead,.fine,.crumbs{color:var(--soft)}

/* ---- structure additions (reuse existing colours and sizes) ---- */
.shelves{display:grid;gap:18px}
.shelf{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:22px;box-shadow:var(--shadow)}
.shelf h3{font-size:1.3125rem;margin-bottom:2px}.shelf>p{margin:0 0 14px;color:var(--soft);font-size:1.0625rem}
.shelf ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.shelf li{border:1px solid var(--rule);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;background:var(--paper2)}
.shelf li b{font-size:1.0625rem}.shelf li span{font-size:0.9688rem;color:var(--soft)}
.shelf li.have{background:var(--green-100);border-color:var(--green-500)}.shelf li.have span a{font-weight:600}
.faq details{background:var(--card);border:1px solid var(--rule);border-radius:14px;margin:0 0 10px;padding:0 18px}
.faq summary{cursor:pointer;padding:16px 0;font-weight:700;font-size:1.125rem;color:var(--green-900)}
.faq details[open] summary{border-bottom:1px solid var(--rule)}
.faq details p{margin:12px 0 16px;color:var(--soft);font-size:1.0625rem}

/* ---- fixed header + fixed footer (owner 2026-10-21) ---- */
html{scroll-padding-top:84px}
header.site{position:sticky;top:0;z-index:40}
footer.site{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;padding:10px 0;border-top:1px solid #0f2f24;box-shadow:0 -4px 18px rgba(11,61,46,.18)}
footer.site .flinks{margin:0 0 6px;gap:6px 20px}
footer.site .fcopy p{margin:0}
body{padding-bottom:var(--footh,110px)}
@media (max-width:1180px){nav.main{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}nav.main::-webkit-scrollbar{display:none}}
@media (max-width:760px){footer.site .flinks{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;justify-content:flex-start;scrollbar-width:none}footer.site .flinks::-webkit-scrollbar{display:none}header.site .in{padding:8px 16px}}
.shelf li b{margin-right:0}.shelf li span{display:block}

/* ---- foldable footer: slim bar, "More" unfolds the full links and legal text ---- */
footer.site{text-align:left;padding:0}
footer.site .fbar{display:flex;align-items:center;gap:18px;padding:12px 0}
footer.site .fkey{list-style:none;display:flex;gap:20px;margin:0;padding:0}
footer.site .fc{margin-left:auto;opacity:.85;white-space:nowrap}
footer.site .fmore{font:inherit;font-weight:600;color:#fff;background:none;border:0;cursor:pointer;padding:6px 2px;white-space:nowrap}
footer.site .fmore:hover{text-decoration:underline}
footer.site .fpanel{max-height:52vh;overflow-y:auto;border-top:1px solid rgba(255,255,255,.18);padding:14px 0 12px;text-align:center}
footer.site .fpanel[hidden]{display:none}
footer.site .fpanel .flinks{margin:0 0 10px}
@media (max-width:760px){footer.site .fc{display:none}footer.site .fmore{margin-left:auto}footer.site .fkey{gap:16px}}
@media (max-height:520px){footer.site .fpanel{max-height:40vh}}

/* ---- fluid layout: container gutters and header offset follow the viewport ---- */
.wrap{padding-left:clamp(14px,4vw,24px);padding-right:clamp(14px,4vw,24px)}
html{scroll-padding-top:5.5rem}
img,svg,video{max-width:100%}

/* ECG lead panels */
.ecgp{border:0;background:none}.ecgp .pbg{fill:var(--ecgp);stroke:var(--ecgM);stroke-width:1}.ecgp .lead{font:700 12px ui-monospace,Menlo,monospace;fill:var(--ink)}
/* Outbreak Desk demo */
.obbars{display:flex;align-items:flex-end;gap:2px;overflow-x:auto;padding:6px 0 2px;min-height:210px}
.obbar{flex:1 0 54px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-height:48px;border:0;background:none;cursor:pointer;font:inherit;color:var(--ink);padding:0}
.obbar .obfill{display:block;width:80%;background:var(--accent);border-radius:5px 5px 0 0;min-height:2px;opacity:.85}.obbar.on .obfill{background:var(--green-900);opacity:1}
.obbar .obn{font-weight:700;font-size:15px}.obbar .obl{font-size:13px;color:var(--soft);text-align:center;line-height:1.2}
.obscroll{overflow:auto;max-height:260px;margin:8px 0}.oblist{margin:10px 0}.oblist summary{cursor:pointer;font-weight:700;color:var(--green-700);min-height:44px;display:flex;align-items:center}
.ob22 td,.ob22 th{text-align:center}.ob22 td:first-child,.ob22 th:first-child{text-align:left}
.ob-in{font:inherit;font-weight:700;width:5em;min-height:44px;text-align:center;border:1px solid var(--rule);border-radius:10px;background:var(--paper2);color:var(--ink)}
/* GI tract demo */
.gi-map{display:block;width:100%;max-width:460px;margin:8px auto}.gi-st{cursor:pointer}.gi-st:focus-visible circle:first-child{stroke:var(--blue-600);stroke-width:4}
.gi-card{background:var(--paper2);border:1px solid var(--rule);border-radius:14px;padding:14px;margin:6px 0}

/* ---- Dose and Interaction Drill demo (same tokens and sizes as the rest of the site) ---- */
.dval{font:700 2.5rem/1.15 ui-monospace,Menlo,monospace;margin:.3rem 0;color:var(--ink)}.dval small{font:600 1.15rem Inter,sans-serif;color:var(--soft)}
.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:.5rem 0}
.stepper button{min-height:3rem;border:0;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--green-700);font:700 1rem ui-monospace,Menlo,monospace;cursor:pointer;touch-action:manipulation;user-select:none}
.stepper button:active{background:color-mix(in srgb,var(--accent) 32%,transparent)}
.stepper button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
table.given{width:100%;border-collapse:collapse;border:1px solid var(--rule);border-radius:12px;overflow:hidden;margin-top:.6rem}
table.given td{padding:.65rem .8rem;font-size:1rem}table.given tr:nth-child(odd){background:var(--paper2)}
/* ---- screenshot gallery (original app screens in a plain rounded frame) ---- */
.shots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}
.shot{margin:0}
.shot img{display:block;width:100%;height:auto;border-radius:22px;border:1px solid var(--rule);box-shadow:var(--shadow);background:var(--card)}
.shot figcaption{margin-top:8px;color:var(--soft);font-size:.9375rem}
.shot.one{max-width:300px}
.btn.soft[aria-pressed="true"]{background:var(--green-600);color:#fff}
.shots{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.inapp{display:grid;grid-template-columns:1fr 240px;gap:28px;align-items:center}
.inapp .shot.one{margin:0;justify-self:end;max-width:240px}
@media (max-width:760px){.inapp{grid-template-columns:1fr}.inapp .shot.one{justify-self:start}}
/* links inside running text are underlined so they never rely on colour alone */
.prose p a,.prose li a,.fine a,.sechead p a,.step p a,.faq p a{text-decoration:underline;text-underline-offset:3px}
.rules a{text-decoration:underline;text-underline-offset:3px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.shelf h2{font-size:1.3125rem;margin-bottom:2px}
/* tablet widths: the brand never shrinks; the link row scrolls instead */
.brand{flex:none}
nav.main{min-width:0}
