:root {
  --ink: #102a2e;
  --ink-2: #234348;
  --green: #1f6b5c;
  --green-dark: #145044;
  --sage: #dfe9df;
  --sage-2: #eef3ed;
  --paper: #f7f3ea;
  --paper-2: #fffdf8;
  --coral: #e46f51;
  --coral-text: #a84833;
  --coral-soft: #f9ddd3;
  --text: #183236;
  --muted: #5c6d6f;
  --line: #d7dfda;
  --white: #fff;
  --radius: 0;
  --wrap: 1240px;
  --article: 760px;
}

* { box-sizing: border-box; }
.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; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--paper-2); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.65; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: var(--green-dark); text-underline-offset: 3px; }
button, input, textarea, select { border-radius: 0; font: inherit; }
button { color: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.wrap { width: min(calc(100% - 40px), var(--wrap)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 999; background: var(--white); color: var(--ink); padding: .65rem 1rem; border: 2px solid var(--green); }
.skip-link:focus { top: 1rem; }

.site-nav { position: sticky; top: 0; z-index: 200; height: 76px; background: rgba(16,42,46,.98); color: #fff; border-bottom: 0; }
.nav-inner { height: 100%; display: flex; align-items: center; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; color: #fff; text-decoration: none; font-size: 1.13rem; font-weight: 820; letter-spacing: -.035em; white-space: nowrap; }
.brand img { width: 42px; height: 42px; object-fit: contain; }
.brand > span > span { color: #86c3af; font-weight: 650; }
.desktop-nav { list-style: none; padding: 0; margin: 0 auto; display: flex; align-items: center; height: 100%; gap: .25rem; }
.desktop-nav > li { height: 100%; display: flex; align-items: center; }
.desktop-nav a, .nav-trigger { border: 0; background: none; color: #e7efec; text-decoration: none; font-size: .84rem; font-weight: 680; padding: .65rem .85rem; cursor: pointer; }
.desktop-nav > li > a:hover, .desktop-nav > li > a[aria-current="page"], .nav-trigger:hover, .nav-menu.has-current .nav-trigger { color: #fff; }
.desktop-nav > li > a[aria-current="page"], .nav-menu.has-current .nav-trigger { text-decoration: underline; text-decoration-color: var(--coral); text-decoration-thickness: 2px; text-underline-offset: 7px; }
.nav-menu { position: static; }
.nav-trigger { display: flex; align-items: center; gap: .55rem; min-height: 40px; padding: .4rem .45rem .4rem .8rem; border-radius: 0; transition: color .18s ease, background-color .18s ease; }
.nav-trigger:hover, .nav-trigger[aria-expanded="true"] { color: #fff; background: rgba(255,255,255,.08); }
.nav-chevron { position: relative; display: inline-grid; place-items: center; width: 27px; height: 24px; color: #b9dece; background: rgba(185,222,206,.08); border: 1px solid rgba(185,222,206,.32); border-radius: 0; transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
.nav-chevron::before { content: none; }
.nav-chevron svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .22s ease; }
.nav-trigger:hover .nav-chevron { color: #fff; background: rgba(185,222,206,.16); border-color: rgba(185,222,206,.58); }
.nav-trigger[aria-expanded="true"] .nav-chevron { color: var(--ink); background: #b9dece; border-color: #b9dece; }
.nav-trigger[aria-expanded="true"] .nav-chevron::before { background: var(--green-dark); }
.nav-trigger[aria-expanded="true"] .nav-chevron svg { transform: rotate(180deg); }
.mega-menu { display: grid; grid-template-columns: 310px minmax(0, 1fr); position: absolute; top: 70px; left: 50%; width: min(930px, calc(100vw - 40px)); min-height: 345px; overflow: hidden; color: var(--text); background: var(--paper-2); border: 1px solid rgba(16,42,46,.18); border-top: 4px solid var(--coral); border-radius: 0; box-shadow: 0 28px 70px rgba(8,30,33,.25), 0 5px 14px rgba(8,30,33,.12); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, -9px) scale(.985); transform-origin: top center; transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
.nav-menu.force-open .mega-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0) scale(1); transition-delay: 0s; }
.mega-menu::after { content: none; }
.mega-intro { position: relative; z-index: 1; display: flex; flex-direction: column; padding: 1.45rem; color: #fff; background: linear-gradient(155deg, var(--green-dark), var(--ink)); }
.mega-intro-mark { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 0 1.1rem; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(185,222,206,.34); border-radius: 0; }
.mega-intro-mark svg { width: 37px; height: 37px; }
.mega-intro strong { color: #fff; font: 700 1.4rem/1.12 Georgia, serif; }
.mega-intro p { margin: .8rem 0 1.2rem; color: #c9dcd6; font-size: .76rem; line-height: 1.55; }
.desktop-nav .mega-overview { display: flex; justify-content: space-between; align-items: center; gap: .8rem; margin-top: auto; padding: .75rem .8rem; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(185,222,206,.24); border-radius: 0; font-size: .72rem; font-weight: 800; }
.desktop-nav .mega-overview:hover { color: #fff; background: rgba(255,255,255,.13); border-color: rgba(185,222,206,.45); }
.mega-overview .arrow-icon { width: 28px; }
.mega-directory, .mega-tool-directory { position: relative; z-index: 1; padding: 1.35rem; }
.mega-directory-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 31px; margin-bottom: .8rem; padding-bottom: .65rem; border-bottom: 1px solid var(--line); }
.mega-directory-head > strong { color: var(--ink); font-size: .75rem; letter-spacing: .02em; }
.mega-directory-head > span { color: var(--coral-text); font-size: .62rem; font-weight: 850; letter-spacing: .12em; }
.desktop-nav .mega-directory-head > a { padding: .2rem 0; color: var(--green-dark); font-size: .68rem; font-weight: 800; text-decoration: underline; }
.mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.desktop-nav .mega-item { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: .7rem; align-items: center; min-height: 91px; padding: .72rem; color: var(--ink); background: var(--paper); border: 1px solid transparent; border-radius: 0; transition: border-color .18s ease, background-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.desktop-nav .mega-item:hover, .desktop-nav .mega-item[aria-current="page"] { color: var(--ink); background: #fff; border-color: #9db8ae; box-shadow: 0 7px 15px rgba(16,42,46,.07); transform: translateY(-1px); }
.mega-icon { display: grid; place-items: center; width: 42px; height: 42px; color: var(--green-dark); background: var(--sage-2); border-radius: 0; }
.mega-icon svg, .mega-tool-mark svg, .mega-intro-mark svg { fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.mega-icon svg { width: 29px; height: 29px; }
.mega-copy, .mega-copy strong, .mega-copy small, .mega-tool-item > span:last-child, .mega-tool-item strong, .mega-tool-item small { display: block; }
.mega-copy strong, .mega-tool-item strong { font-size: .79rem; }
.mega-copy small, .mega-tool-item small { margin-top: .12rem; color: var(--muted); font-size: .64rem; font-weight: 560; line-height: 1.4; }
.mega-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: .8rem; color: var(--muted); font-size: .63rem; }
.desktop-nav .mega-foot a { padding: .2rem 0; color: var(--green-dark); font-size: .63rem; font-weight: 800; text-decoration: underline; white-space: nowrap; }

#tools-menu { grid-template-columns: 330px minmax(0, 1fr); }
.desktop-nav .mega-tool-lead { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; padding: 1.45rem; color: #fff; background: linear-gradient(155deg, #234348, #102a2e); }
.desktop-nav .mega-tool-lead:hover { color: #fff; background: linear-gradient(155deg, #2a5055, #102a2e); }
.mega-tool-mark { display: grid; place-items: center; width: 64px; height: 64px; color: var(--ink); background: #b9dece; border-radius: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.45); }
.mega-tool-mark svg { width: 43px; height: 43px; }
.mega-tool-lead > span:nth-child(2), .mega-tool-lead small, .mega-tool-lead strong, .mega-tool-lead em { display: block; }
.mega-tool-lead strong { margin-top: .35rem; color: #fff; font: 700 1.45rem/1.12 Georgia, serif; }
.mega-tool-lead em { margin-top: .65rem; color: #cadbd7; font-size: .72rem; font-style: normal; line-height: 1.5; }
.mega-tool-lead .arrow-icon { width: 42px; margin-top: auto; color: var(--coral-soft); }
.mega-tool-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.desktop-nav .mega-tool-item { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: .7rem; align-items: center; min-height: 82px; padding: .7rem; color: var(--ink); background: #f5f1e8; border: 1px solid transparent; border-radius: 0; transition: background-color .18s ease, border-color .18s ease, transform .18s ease; }
.desktop-nav .mega-tool-item:hover, .desktop-nav .mega-tool-item[aria-current="page"] { color: var(--ink); background: #fff; border-color: #9db8ae; transform: translateY(-1px); }
.mega-tool-item:nth-child(2) .mega-icon { color: var(--coral-text); background: var(--coral-soft); border-radius: 0; }
.mega-tool-item:nth-child(3) .mega-icon { color: #fff; background: #2a5055; border-radius: 0; }
.mega-tool-item:nth-child(4) .mega-icon { color: var(--ink); background: #fffaf1; border: 1px solid var(--ink); border-radius: 0; }
.mega-privacy { display: flex; align-items: center; gap: .65rem; margin-top: .85rem; padding: .7rem .8rem; background: var(--sage-2); border: 1px solid var(--line); border-radius: 0; }
.privacy-signal { width: 10px; height: 10px; background: var(--green); border: 2px solid #fff; border-radius: 0; box-shadow: 0 0 0 3px rgba(31,107,92,.16); flex: 0 0 auto; }
.mega-privacy strong, .mega-privacy small { display: block; }
.mega-privacy strong { color: var(--ink); font-size: .67rem; }
.mega-privacy small { color: var(--muted); font-size: .61rem; }
.nav-actions { display: flex; align-items: center; gap: .8rem; }
.nav-cta { color: var(--ink); background: #b9dece; text-decoration: none; padding: .62rem .9rem; font-size: .78rem; font-weight: 800; }
.menu-button { display: none; align-items: center; gap: .6rem; min-height: 40px; padding: .42rem .55rem .42rem .75rem; border: 1px solid rgba(185,222,206,.28); border-radius: 0; background: rgba(255,255,255,.04); color: #fff; cursor: pointer; transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
.menu-button:hover { background: rgba(255,255,255,.09); border-color: rgba(185,222,206,.5); }
.menu-label { font-size: .69rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.menu-mark { position: relative; display: block; width: 23px; height: 19px; }
.menu-mark i { position: absolute; right: 0; height: 2px; background: currentColor; transition: .2s ease; }
.menu-mark i:first-child { top: 5px; width: 23px; }
.menu-mark i:last-child { top: 13px; width: 15px; }
.menu-button.open { color: var(--ink); background: #b9dece; border-color: #b9dece; }
.menu-button.open .menu-mark i { top: 9px; width: 21px; }
.menu-button.open .menu-mark i:first-child { transform: rotate(45deg); }
.menu-button.open .menu-mark i:last-child { transform: rotate(-45deg); }
.mobile-menu { display: block; position: fixed; inset: 76px 0 0; z-index: 190; overflow-y: auto; color: var(--ink); background: linear-gradient(180deg, var(--paper) 0, #edf2eb 100%); border-top: 1px solid rgba(255,255,255,.08); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-10px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
.mobile-menu.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition-delay: 0s; }
.mobile-menu-inner { position: relative; padding-block: 1.75rem 4rem; }
.mobile-menu-head { display: grid; grid-template-columns: minmax(0, .9fr) minmax(260px, .7fr); gap: 2rem; align-items: end; padding-bottom: 1.35rem; border-bottom: 1px solid rgba(16,42,46,.16); }
.mobile-menu-head strong { display: block; color: var(--ink); font: 700 clamp(1.55rem, 3vw, 2.15rem)/1.08 Georgia, serif; letter-spacing: -.025em; }
.mobile-menu-head p { max-width: 470px; margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.55; }
.mobile-primary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 1rem 0; padding: 1rem 1.15rem; color: #fff; background: var(--green); border: 1px solid var(--green); border-radius: 0; box-shadow: 0 10px 24px rgba(20,80,68,.16); text-decoration: none; transition: background-color .18s ease, transform .18s ease; }
.mobile-primary:hover { color: #fff; background: var(--green-dark); transform: translateY(-1px); }
.mobile-primary span, .mobile-primary strong, .mobile-primary small { display: block; }
.mobile-primary strong { font-size: .92rem; }
.mobile-primary small { margin-top: .15rem; color: #d9ebe4; font-size: .7rem; font-weight: 550; }
.mobile-primary .arrow-icon { color: #fff; }
.mobile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.mobile-grid section { overflow: hidden; background: rgba(255,253,248,.84); border: 1px solid rgba(16,42,46,.13); border-radius: 0; box-shadow: 0 8px 20px rgba(16,42,46,.06); padding: .35rem 1rem .45rem; }
.mobile-grid-head { margin: -.35rem -1rem .15rem; padding: .85rem 1rem .75rem; background: rgba(223,233,223,.72); border-bottom: 1px solid rgba(16,42,46,.1); }
.mobile-grid-label { display: block; color: var(--green-dark); font-size: .69rem; letter-spacing: .12em; text-transform: uppercase; }
.mobile-grid-head span { display: block; margin-top: .1rem; color: var(--muted); font-size: .7rem; }
.mobile-grid a { display: grid; grid-template-columns: 30px minmax(0, 1fr) 27px; gap: .6rem; align-items: center; min-height: 52px; padding: .62rem .15rem; color: var(--ink); text-decoration: none; font-size: .86rem; font-weight: 720; border-bottom: 1px solid rgba(16,42,46,.1); }
.mobile-grid a:hover { color: var(--green-dark); }
.mobile-link-icon { display: grid; place-items: center; width: 30px; height: 30px; color: var(--green-dark); background: var(--sage-2); border-radius: 0; }
.mobile-link-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.mobile-link-copy { min-width: 0; }
.mobile-grid a .arrow-icon { width: 27px; color: var(--coral-text); }
.mobile-grid a:last-child { border-bottom: 0; }
.mobile-utility { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1px solid rgba(16,42,46,.14); }
.mobile-utility a { padding: .42rem .7rem; color: var(--ink-2); background: rgba(255,255,255,.58); border: 1px solid rgba(16,42,46,.13); border-radius: 0; font-size: .73rem; font-weight: 680; text-decoration: none; }
.mobile-utility a:hover { color: var(--green-dark); background: #fff; border-color: #9db8ae; }
.arrow-icon { width: 34px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }

h1, h2, h3 { color: var(--ink); line-height: 1.12; overflow-wrap: anywhere; text-wrap: pretty; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; letter-spacing: -.035em; }
h1 { margin: 0; font-size: clamp(2.7rem, 6.5vw, 5.7rem); font-weight: 700; }
h2 { font-size: clamp(2rem, 4vw, 3.35rem); }
h3 { font-size: 1.1rem; }
.home-hero { position: relative; min-height: 670px; background: var(--paper); overflow: hidden; }
.hero-grid { min-height: 670px; display: grid; grid-template-columns: minmax(0, 64%) minmax(0, 36%); align-items: center; position: relative; z-index: 2; }
.hero-copy { min-width: 0; padding: 4.5rem 2.5rem 5.5rem 0; }
.hero-copy h1 { max-width: none; font-size: clamp(3rem, 5.1vw, 5rem); }
.hero-copy > p { max-width: none; margin: 1.5rem 0 0; color: var(--ink-2); font-size: clamp(1.05rem, 2vw, 1.3rem); }
.hero-art { position: absolute; inset: 0 0 0 56%; }
.hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--paper) 0, rgba(247,243,234,.9) 10%, transparent 38%); }
.hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem; margin-top: 2rem; }
.button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; padding: .85rem 1.1rem; text-decoration: none; font-size: .86rem; font-weight: 800; cursor: pointer; }
.button-primary { color: #fff; background: var(--green); border-color: var(--green); }
.button-primary:hover { background: var(--green-dark); }
.button-paper { background: var(--paper); color: var(--ink); }
.button-small { padding: .55rem .75rem; background: var(--ink); color: #fff; }
.button-quiet { background: transparent; color: var(--ink); border-color: #a8b9b3; }
.text-link, .card-action { display: inline-flex; align-items: center; gap: .55rem; color: var(--green-dark); font-size: .86rem; font-weight: 800; text-decoration: none; }
.text-link:hover, .card-action:hover { text-decoration: underline; }
.privacy-note { display: flex; gap: .7rem; align-items: start; max-width: 520px; margin-top: 2rem; color: var(--muted); font-size: .78rem; }
.privacy-note strong { color: var(--ink); }
.privacy-dot { width: 10px; height: 10px; margin-top: .38rem; background: var(--green); border-radius: 0; box-shadow: 0 0 0 5px rgba(31,107,92,.12); }
.proof-strip { color: #fff; background: var(--ink); }
.proof-grid { display: grid; grid-template-columns: repeat(3, 1fr); padding-block: 1.1rem; }
.proof-grid div { display: flex; align-items: center; gap: .8rem; padding-inline: 1.4rem; border-right: 1px solid rgba(255,255,255,.16); }
.proof-grid div:first-child { padding-left: 0; }
.proof-grid div:last-child { border-right: 0; }
.proof-grid strong { color: #b9dece; font-family: Georgia, serif; font-size: 1.65rem; }
.proof-grid span { color: #d7e3e0; font-size: .76rem; }
.section { padding: 6rem 0; }
.split-heading { display: grid; grid-template-columns: 1fr .9fr; gap: 5rem; align-items: end; margin-bottom: 2.5rem; }
.split-heading h2, .section-head h2 { margin: 0; }
.split-heading > p, .section-head > p { color: var(--muted); max-width: none; }
.section-head { margin-bottom: 2.5rem; }
.category-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.category-card { min-height: 350px; display: flex; flex-direction: column; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.category-card:nth-child(even) { background: var(--paper); }
.category-icon { color: var(--coral); margin-bottom: 2.5rem; }
.category-icon .arrow-icon { width: 50px; }
.category-card h3 { margin: 0 0 .8rem; font-size: 1.3rem; }
.category-card h3 a, .tool-card h3 a, .tool-card h2 a, .article-card h3 a, .article-card h2 a, .magazine-list h3 a { color: var(--ink); text-decoration: none; }
.category-card p, .tool-card p, .article-card p { color: var(--muted); font-size: .88rem; }
.category-card .card-action { margin-top: auto; }
.private-section { color: #fff; background: var(--green-dark); }
.private-section h2 { color: #fff; }
.private-section .split-heading > p, .private-section .section-head > p { color: #cee0da; }
.private-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 6rem; align-items: center; }
.private-grid > div > p { color: #cee0da; }
.tick-list { list-style: none; padding: 0; margin: 1.5rem 0; }
.tick-list li { position: relative; padding: .55rem 0 .55rem 1.6rem; border-bottom: 1px solid rgba(255,255,255,.15); }
.tick-list li::before { content: "↗"; position: absolute; left: 0; color: #f5aa94; }
.private-diagram { text-align: center; }
.device { width: min(100%, 420px); margin: auto; padding: 1.3rem; color: var(--ink); background: var(--paper); border: 8px solid var(--ink); }
.device > span { display: block; font-weight: 800; text-align: left; }
.device-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: 1rem; }
.device-cards i { padding: .75rem; background: var(--sage); font-style: normal; font-size: .75rem; }
.private-diagram > svg { width: 240px; fill: none; stroke: #f5aa94; stroke-width: 2; }
.private-diagram > p { color: #cee0da; font-size: .78rem; }
.tool-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.tool-grid-wide { grid-template-columns: repeat(2, 1fr); }
.tool-card { min-height: 285px; display: flex; flex-direction: column; padding: 1.5rem; background: #fff; border: 1px solid var(--line); }
.tool-symbol { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: .8rem; color: var(--green-dark); background: var(--sage-2); border-radius: 0; }
.tool-symbol svg { width: 39px; height: 39px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tool-card-balance-sheet .tool-symbol { color: #fff; background: var(--green-dark); border-radius: 0; }
.tool-card-coverage-scenario .tool-symbol { color: #793b27; background: var(--coral-soft); border-radius: 0; }
.tool-card-debt-ledger .tool-symbol { color: #fff; background: #213f43; border-radius: 0; }
.tool-card-estate-index .tool-symbol { color: var(--ink); background: #fffaf1; border: 1px solid var(--ink); border-radius: 0; }
.tool-card h3, .tool-card h2 { margin: 0; font-family: inherit; font-size: 1.15rem; letter-spacing: 0; }
.tool-card .card-action { margin-top: auto; }
.magazine-section { background: var(--paper); }
.magazine-grid { display: grid; grid-template-columns: .85fr 1.4fr; gap: 6rem; }
.magazine-lead h2 { margin-top: 0; }
.magazine-lead p { color: var(--muted); }
.magazine-list article { display: grid; grid-template-columns: 110px 1fr; column-gap: 1rem; padding: 1.25rem 0; border-top: 1px solid #cdd5d0; }
.magazine-list article > span { grid-column: 2; color: var(--coral-text); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.magazine-list h3, .magazine-list p { margin: 0; }
.magazine-list p { color: var(--muted); font-size: .82rem; }
.home-library { color: #fff; background: var(--ink); }
.library-heading { display: grid; grid-template-columns: .9fr 1.1fr; gap: 4rem; align-items: end; margin-bottom: 2rem; }
.library-heading h2 { max-width: none; margin: .35rem 0 0; color: #fff; }
.library-heading p { max-width: none; margin: 0 0 1rem; color: #bfd0cc; }
.library-heading .text-link { color: #d5eee5; }
.library-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.library-group { padding: 1.4rem; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.13); border-radius: 0; }
.library-group h3 { margin: 0 0 .9rem; font: 700 1.2rem/1.25 Georgia, serif; }
.library-group h3 a { color: #fff; text-decoration-color: rgba(185,222,206,.45); }
.library-group ul { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.library-group li { position: relative; padding-left: 1rem; }
.library-group li::before { content: ""; position: absolute; top: .72rem; left: 0; width: 5px; height: 5px; background: var(--coral); border-radius: 0; }
.library-group li a { color: #c9dad6; text-decoration: none; font-size: .84rem; }
.library-group li a:hover { color: #fff; text-decoration: underline; }

.foundation-copy p { color: var(--muted); }
.foundation-copy .section-answer { color: var(--ink-2); font-size: 1.12rem; }
.home-checklist { margin-top: 3.5rem; }
.home-checklist .section-head { max-width: none; }
.inventory-checklist-table { width: 100%; min-width: 820px; border-collapse: collapse; background: var(--paper-2); }
.inventory-checklist-table th, .inventory-checklist-table td { padding: 1rem; border: 1px solid var(--line); text-align: left; vertical-align: top; font-size: .82rem; line-height: 1.55; }
.inventory-checklist-table thead th { color: #fff; background: var(--ink); }
.inventory-checklist-table tbody th { width: 18%; color: var(--ink); background: var(--sage-2); }
.checklist-followup { max-width: 900px; margin: 1.1rem 0 0; color: var(--muted); font-size: .86rem; }
.home-build-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 5rem; align-items: start; }
.home-build-grid h2 { margin-top: 0; }
.home-steps { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.home-steps li { display: block; padding: 1.05rem 0 1.05rem 1rem; border-top: 1px solid var(--line); border-left: 3px solid var(--green); }
.home-steps strong, .home-steps span { display: block; }
.home-steps span { margin-top: .2rem; color: var(--muted); font-size: .88rem; }
.inventory-differences article { padding: 1rem 0; border-top: 1px solid var(--line); }
.inventory-differences h3, .inventory-differences p { margin: 0; }
.inventory-differences h3 { font-size: 1rem; }
.inventory-differences p { margin-top: .25rem; color: var(--muted); font-size: .84rem; }
.home-question-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 5rem; align-items: start; }
.home-question-grid h2 { margin-top: 0; }
.home-question-grid > div:first-child > p { color: var(--muted); }
.home-evidence { margin-top: 2rem; padding: 1rem; background: var(--sage-2); border-left: 3px solid var(--green); }
.home-evidence strong { font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; }
.home-evidence p { margin: .45rem 0 0; color: var(--muted); font-size: .78rem; }

.breadcrumb-bar { background: rgba(16,42,46,.98); border: 0; box-shadow: none; }
.breadcrumb-bar .breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin: 0; padding: .7rem 0; color: rgba(255,255,255,.75); font-size: .85rem; }
.breadcrumb-bar .breadcrumb a { color: rgba(255,255,255,.9); }
.breadcrumb-bar .breadcrumb a:hover { color: #fff; }
.breadcrumb-bar .breadcrumb .sep { color: rgba(255,255,255,.5); }
.breadcrumb-bar .breadcrumb [aria-current="page"] { color: #fff; overflow-wrap: anywhere; }
.hub-hero { padding: 3rem 0 5rem; background: var(--paper); }
.hub-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 3.5rem; align-items: center; }
.hub-grid > div { min-width: 0; }
.hub-grid h1 { font-size: clamp(2.7rem, 5vw, 4.8rem); }
.hub-grid p { max-width: none; color: var(--ink-2); font-size: 1.1rem; }
.hub-grid img { width: 100%; aspect-ratio: 1.91/1; object-fit: cover; border: 1px solid #d9d4c8; }
.principles { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.principles > div { padding: 1.5rem; border-right: 1px solid var(--line); }
.principles > div:last-child { border-right: 0; }
.curly-arrow svg { width: 54px; fill: none; stroke: var(--coral); stroke-width: 2; stroke-linecap: round; }
.principles h3 { margin: 1.2rem 0 .4rem; }
.principles p { color: var(--muted); }
.paper-section, .related { background: var(--paper); }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin: 2rem auto 0; }
.pagination a { font-weight: 700; }
.article-card { display: flex; flex-direction: column; min-height: 275px; padding: 1.5rem; background: var(--paper-2); border: 1px solid var(--line); }
.article-card img { width: 100%; aspect-ratio: 1.91/1; object-fit: cover; margin-bottom: 1rem; }
.reading-time { color: var(--coral-text); font-size: .7rem; font-weight: 800; }
.article-card h3, .article-card h2 { margin: .8rem 0 .5rem; font-family: inherit; font-size: 1.18rem; letter-spacing: 0; }
.article-card .card-action { margin-top: auto; }
.page-hero { max-width: none; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 4rem; align-items: end; padding-block: 4rem 5rem; text-align: left; }
.page-hero h1 { font-size: clamp(2.7rem, 6vw, 5rem); }
.page-hero p { margin: 0; color: var(--muted); font-size: 1.15rem; }

.article-layout { display: grid; grid-template-columns: 220px minmax(0, var(--article)) 1fr; gap: 3rem; padding-block: 3rem 6rem; }
.article-header { grid-column: 1 / -1; max-width: none; border-bottom: 1px solid var(--line); padding-bottom: 2rem; }
.article-header h1 { font-size: clamp(2.7rem, 5.5vw, 5rem); }
.article-cover { grid-column: 1 / -1; width: 100%; margin: 0 0 1rem; }
.article-cover img, .collection-cover img { display: block; width: 100%; height: auto; aspect-ratio: 1.91/1; object-fit: cover; border: 1px solid var(--line); }
.article-cover figcaption, .collection-cover figcaption { margin-top: .55rem; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.collection-cover { max-width: none; margin-block: -3rem 4rem; }
.article-dek { color: var(--ink-2); font-size: 1.18rem; }
.answer-summary { max-width: none; margin: 1.25rem 0 .75rem; }
.answer-evidence { max-width: none; margin: 0 0 1.5rem; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.answer-evidence cite { font-style: normal; }
.answer-evidence a { font-weight: 700; }
.hero-answer { max-width: none; margin: 1rem 0 1.5rem; }
.hero-answer > strong { color: var(--green-dark); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.hero-answer p { margin: .35rem 0 0; }
.section-answer { max-width: none; color: var(--ink-2); }
.byline { display: flex; flex-wrap: wrap; gap: .65rem 1.3rem; color: var(--muted); font-size: .73rem; }
.article-toc { grid-column: 1; position: sticky; top: 105px; align-self: start; display: flex; flex-direction: column; border-top: 3px solid var(--coral); }
.article-toc strong { padding: .8rem 0 .45rem; }
.article-toc a { padding: .4rem 0; color: var(--muted); font-size: .75rem; text-decoration: none; }
.article-toc a:hover { color: var(--green-dark); text-decoration: underline; }
.article-body { grid-column: 2; max-width: var(--article); font-family: Georgia, "Times New Roman", serif; font-size: 1.08rem; line-height: 1.78; }
.article-body h2 { margin: 3.2rem 0 1rem; font-size: 2.15rem; }
.takeaway, .boundary-note { padding: 1.25rem 1.4rem; background: var(--sage-2); border-left: 4px solid var(--green); }
.takeaway strong, .boundary-note strong { color: var(--ink); font-family: Inter, sans-serif; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.takeaway p, .boundary-note p { margin-bottom: 0; }
.answer-style-warning { background: var(--coral-soft); border-color: var(--coral); }
.answer-style-formula { color: #fff; background: var(--ink); border-color: var(--coral); }
.answer-style-formula strong, .answer-style-formula p { color: #fff; }
.answer-style-sequence { background: var(--paper); border-left-color: var(--coral); }
.answer-style-definition { background: transparent; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 0; padding-inline: 0; }
.answer-style-rule { background: #e6eee8; border-left-width: 6px; }
.key-points { margin-top: 2rem; padding: 1.2rem 1.4rem; background: var(--paper); border: 1px solid var(--line); }
.key-points h2 { margin: 0 0 .8rem; font: 800 .78rem/1.2 Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.key-points ul { margin: 0; padding-left: 1.2rem; }
.key-points li { margin: .35rem 0; }
.article-actions { margin-top: 2rem; padding: 1.4rem; background: #fff; border: 1px solid var(--line); }
.article-actions h2 { margin: 0 0 .7rem; font-size: 1.65rem; }
.article-actions > p { color: var(--muted); font-family: Inter, sans-serif; font-size: .84rem; }
.article-actions ul { display: grid; gap: .7rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.article-actions li { padding-top: .7rem; border-top: 1px solid var(--line); }
.article-actions li a { display: block; color: var(--green-dark); font: 800 .9rem/1.4 Inter, sans-serif; }
.article-actions li span { display: block; margin-top: .2rem; color: var(--muted); font: .78rem/1.5 Inter, sans-serif; }
.contextual-next { padding-left: 1rem; border-left: 3px solid var(--green); }
.contextual-next a { color: var(--green-dark); font-weight: 700; text-decoration-thickness: .08em; text-underline-offset: .12em; }
.plain-language { margin: 1.5rem 0; padding: 1.25rem 1.4rem; background: var(--paper); border: 1px solid var(--line); }
.plain-language h3 { margin: 0 0 .65rem; font-size: 1.35rem; }
.plain-language p { margin: .65rem 0; }
.plain-language ul { margin: .8rem 0; padding-left: 1.3rem; }
.plain-language li { margin: .35rem 0; }
.practical-tip { padding-top: .75rem; border-top: 1px solid var(--line); }
.comparison-block { margin: 2rem 0; }
.comparison-block h3 { font-size: 1.35rem; }
.table-scroll { overflow-x: auto; }
.comparison-block table { width: 100%; min-width: 560px; border-collapse: collapse; font: .78rem/1.45 Inter, sans-serif; }
.comparison-block th, .comparison-block td { padding: .75rem; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.comparison-block th { color: var(--ink); background: var(--sage-2); }
.action-steps { list-style: none; padding: 0; }
.action-steps li { display: block; padding: 1rem 0 1rem 1rem; border-top: 1px solid var(--line); border-left: 3px solid var(--green); }
.action-steps strong, .action-steps span { display: block; }
.action-steps strong { font-family: Inter, sans-serif; font-size: .9rem; }
.action-steps span { color: var(--muted); }
.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; padding: 0; list-style: none; font-family: Inter, sans-serif; }
.check-grid li { padding: .7rem .8rem .7rem 2.2rem; position: relative; background: var(--paper); font-size: .8rem; }
.check-grid li::before { content: ""; position: absolute; left: .8rem; top: .92rem; width: 10px; height: 10px; border: 2px solid var(--green); }
.boundary-note { margin-top: 3rem; background: var(--coral-soft); border-color: var(--coral); }
.module-boundary h2 { margin: 0 0 .65rem; font: 850 .78rem/1.35 Inter, sans-serif; letter-spacing: .075em; text-transform: uppercase; }
.module-boundary p { margin-top: 0; }
.article-format-search .action-steps li, .article-format-reconciliation .action-steps li, .article-format-emergency .action-steps li, .article-format-case-file .action-steps li { border-left-color: var(--coral-text); }
.article-format-comparison .key-points ul, .article-format-system .key-points ul, .article-format-coordination .key-points ul { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem 1.2rem; padding-left: 1.1rem; }
.article-format-calendar .action-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.article-format-calendar .action-steps li { align-content: start; }
.article-format-handoff-letter .plain-language, .article-format-executor-map .plain-language { background: #fffaf0; border-color: #d8cdb8; }
.article-format-document-index .check-grid li, .article-format-authority-register .check-grid li, .article-format-policy-register .check-grid li { background: var(--sage-2); }
.article-format-evidence-plan .editorial-section, .article-format-case-file .editorial-section { padding-left: 1.1rem; border-left: 2px solid var(--line); }
.article-format-risk-map .module-boundary, .article-format-emergency .module-boundary { box-shadow: 0 8px 22px rgba(168,72,51,.09); }
.article-format-needs-analysis .comparison-block table, .article-format-comparison .comparison-block table { border: 2px solid var(--ink); }
.sources { font-size: .9rem; }
.sources li { margin-bottom: .5rem; }
.questions details { border-top: 1px solid var(--line); }
.questions details:last-child { border-bottom: 1px solid var(--line); }
.questions summary { padding: 1rem .2rem; color: var(--ink); cursor: pointer; font: 800 .9rem/1.4 Inter, sans-serif; }
.questions details p { margin: 0 0 1rem; }
.sitemap-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.sitemap-grid > section { padding: 1.5rem; background: var(--paper-2); border: 1px solid var(--line); }
.sitemap-grid h2 { margin: 0 0 1rem; font-size: 1.45rem; }
.sitemap-grid ul { margin: 0; padding-left: 1.2rem; }
.sitemap-grid li { margin: .45rem 0; }
.policy-page { max-width: var(--wrap); padding-block: 3rem 6rem; }
.policy-page h1 { font-size: clamp(2.8rem, 5.5vw, 4.8rem); }
.policy-page h2 { margin-top: 3rem; font-size: 2rem; }
.policy-page > h2, .policy-page > p, .policy-page > ul, .policy-page > ol, .policy-page > .contact-card { max-width: 780px; }
.policy-page > .article-dek { max-width: 960px; }
.policy-page p { font-family: Georgia, serif; font-size: 1.06rem; }
.contact-card { margin-top: 2rem; padding: 1.5rem; background: var(--paper); border: 1px solid var(--line); }
.contact-card h2 { margin-top: 0; }
.error-page { min-height: 65vh; padding-block: 8rem; text-align: center; }
.error-page h1 { font-size: clamp(2.8rem, 6vw, 5rem); }
.empty-journal { grid-column: 1 / -1; padding: 3rem; background: var(--paper); border: 1px solid var(--line); }
.imported-post { max-width: var(--wrap); padding-block: 3rem 6rem; }
.imported-post > header { width: 100%; }
.imported-post header h1 { font-size: clamp(2.7rem, 5.5vw, 4.8rem); }
.imported-post header > p { font-size: 1.18rem; color: var(--muted); }
.post-cover { width: 100%; aspect-ratio: 1.91/1; object-fit: cover; margin: 2rem 0; }
.prose { max-width: var(--article); margin-inline: auto; font: 1.08rem/1.78 Georgia, serif; }
.prose h2 { margin-top: 3rem; font-size: 2.1rem; }.prose h3 { margin-top: 2rem; font-size: 1.35rem; }

.tool-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .3fr); gap: 3rem; align-items: end; padding: 3rem 0; }
.tool-header > div:first-child { min-width: 0; }
.tool-header h1 { font-size: clamp(2.7rem, 5.5vw, 5rem); }
.tool-header p { max-width: none; color: var(--muted); font-size: 1.12rem; }
.local-badge { display: grid; grid-template-columns: 12px 1fr; column-gap: .65rem; min-width: 240px; padding: .9rem; border: 1px solid #a8c5ba; background: var(--sage-2); }
.local-badge > span { grid-row: span 2; align-self: center; width: 10px; height: 10px; border-radius: 0; background: var(--green); box-shadow: 0 0 0 4px rgba(31,107,92,.12); }
.local-badge strong { font-size: .78rem; }.local-badge small { color: var(--muted); font-size: .66rem; }
.tool-shell { padding: 0 0 5rem; }
.tool-warning { margin-bottom: 1rem; padding: .8rem 1rem; color: #6b382d; background: var(--coral-soft); border-left: 4px solid var(--coral); font-size: .78rem; }
.inventory-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; background: var(--ink); }
.category-tabs { display: flex; flex-wrap: wrap; gap: .35rem; }
.category-tabs button { border: 1px solid rgba(255,255,255,.18); background: transparent; color: #d9e6e2; padding: .55rem .7rem; font-size: .73rem; cursor: pointer; }
.category-tabs button.active { color: var(--ink); background: #b9dece; border-color: #b9dece; font-weight: 800; }
.tool-actions { display: flex; gap: .4rem; }
.inventory-toolbar .button-quiet { color: #fff; border-color: rgba(255,255,255,.25); }
.inventory-layout, .calculator-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .75fr); gap: 1rem; padding: 1rem; background: var(--paper); border: 1px solid var(--line); border-top: 0; }
.entry-form, .calc-form { padding: 1.3rem; background: #fff; border: 1px solid var(--line); }
.entry-form h2, .calc-form h2, .calculator-grid h2 { margin: 0 0 1rem; font-family: inherit; font-size: 1rem; letter-spacing: 0; }
.entry-form label, .calc-form label { display: block; margin-bottom: .8rem; color: var(--ink); font-size: .75rem; font-weight: 700; }
.entry-form input, .entry-form textarea, .calc-form input, .money-row input, .debt-row input, .document-checklist input[type="text"] { width: 100%; margin-top: .3rem; padding: .65rem .7rem; color: var(--text); background: #fff; border: 1px solid #aebdb8; border-radius: 0; }
.entry-form input:focus, .entry-form textarea:focus, .calc-form input:focus, .money-row input:focus, .debt-row input:focus { outline: 3px solid rgba(31,107,92,.18); border-color: var(--green); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.inventory-panel { min-width: 0; }
.inventory-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-bottom: 1rem; background: var(--line); border: 1px solid var(--line); }
.inventory-summary div { padding: 1rem; background: #fff; }
.inventory-summary strong { display: block; color: var(--ink); font: 700 2rem Georgia, serif; }
.inventory-summary span { color: var(--muted); font-size: .7rem; }
.inventory-list { display: grid; gap: .6rem; }
.inventory-item { padding: .9rem; background: #fff; border: 1px solid var(--line); }
.inventory-item-head { display: flex; justify-content: space-between; gap: .8rem; }
.inventory-item h3 { margin: 0; font-size: .9rem; }
.inventory-item button { border: 0; background: transparent; color: #9f3f2d; font-size: .7rem; cursor: pointer; }
.inventory-item dl { display: grid; grid-template-columns: 120px 1fr; margin: .6rem 0 0; font-size: .72rem; }
.inventory-item dt { color: var(--muted); }.inventory-item dd { margin: 0; overflow-wrap: anywhere; }
.empty-state { padding: 3rem 1rem; text-align: center; border: 1px dashed #aebdb8; }
.empty-state p { color: var(--muted); font-size: .78rem; }
.tool-explainer { padding: 4rem 0; background: var(--sage-2); }
.explainer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.explainer-grid h2 { margin: 0; font-size: 1.8rem; }.explainer-grid p { color: var(--muted); }
.money-rows { display: grid; gap: .55rem; }
.money-row { display: grid; grid-template-columns: 1fr 150px auto; gap: .5rem; }
.remove-row { border: 0; color: #9f3f2d; background: transparent; cursor: pointer; }
.add-row { margin-top: .7rem; border: 0; background: transparent; color: var(--green-dark); font-size: .78rem; font-weight: 800; cursor: pointer; }
.spaced-heading { margin-top: 2rem !important; }
.result-panel { align-self: start; padding: 1.5rem; color: #fff; background: var(--ink); }
.result-panel > span { color: #b9dece; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.result-panel > strong { display: block; margin: .5rem 0 1.4rem; font: 700 clamp(2.3rem, 5vw, 4rem) Georgia, serif; overflow-wrap: anywhere; }
.result-breakdown { border-top: 1px solid rgba(255,255,255,.18); }
.result-breakdown p { display: flex; justify-content: space-between; gap: 1rem; margin: 0; padding: .65rem 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: .75rem; }
.result-note { color: #b7c9c5; font-size: .72rem; }
.calc-form label { position: relative; }.calc-form label span { position: absolute; left: .7rem; bottom: .65rem; color: var(--muted); }.calc-form label input { padding-left: 1.6rem; text-align: right; }
.debt-tool { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1rem; padding: 1rem; background: var(--paper); border: 1px solid var(--line); }
.debt-head, .debt-row { display: grid; grid-template-columns: 1.4fr 1fr .7fr 1fr auto; gap: .5rem; align-items: center; }
.debt-head { padding: .5rem; color: var(--muted); font-size: .68rem; font-weight: 800; }
.debt-row { padding: .5rem; margin-bottom: .35rem; background: #fff; border: 1px solid var(--line); }
.result-panel h2 { color: #fff; margin-top: 1.5rem; font-size: .85rem; }
.result-panel ol { padding-left: 1.3rem; color: #d9e6e2; font-size: .75rem; }
.checklist-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1rem; padding: 1rem; background: var(--paper); border: 1px solid var(--line); }
.document-checklist { display: grid; gap: .5rem; }
.document-checklist > label { display: grid; grid-template-columns: auto 1fr; gap: .8rem; padding: .9rem; background: #fff; border: 1px solid var(--line); }
.document-checklist input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--green); }
.document-checklist span strong { display: block; font-size: .84rem; }
.document-checklist span small { display: block; }
.document-checklist input[type="text"] { font-size: .72rem; }
.progress-track { height: 8px; background: rgba(255,255,255,.16); }
.progress-track i { display: block; width: 0; height: 100%; background: #b9dece; transition: width .2s ease; }
.compact-private { padding-block: 4rem; }
.hub-questions { max-width: 760px; margin-top: 3rem; }
.hub-questions h2 { font-size: 2rem; }
.hub-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.25rem; }
.tool-guide-inner { max-width: 920px; }
.tool-guide-inner > header { max-width: none; }
.tool-guide-inner > header h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
.tool-guide-inner > header p { color: var(--muted); font-size: 1.08rem; }
.tool-guide .action-steps { max-width: 780px; margin: 2rem 0 3rem; }
.tool-guide-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.tool-guide-grid h2 { font-size: 1.75rem; }

/* Each tool is a separate product surface, not a recolored calculator shell. */
.inventory-studio-workspace { grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr); }
.inventory-entry-card { border-top: 5px solid var(--coral); }
.inventory-manual { background: var(--paper-2); }
.inventory-manual-inner > header { max-width: none; }
.inventory-manual-inner > header h2, .snapshot-reading-inner > header h2, .scenario-method-inner > header h2, .debt-reading-inner > header h2, .estate-index-guide-inner > header h2 { margin: 0; }
.inventory-manual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.record-anatomy, .handoff-test { padding: 1.4rem; border: 1px solid var(--line); }
.record-anatomy { background: var(--paper); }
.handoff-test { background: var(--sage-2); }
.record-anatomy h3, .handoff-test h3 { margin-top: 0; font-size: 1.35rem; }
.handoff-test p { color: var(--ink-2); }
.inventory-workflow { max-width: 800px; margin-top: 3rem; }
.inventory-questions { max-width: 800px; margin-top: 3rem; }

.net-worth-workbench { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 1rem; padding: 1rem; background: #e8eee8; border: 1px solid var(--line); }
.balance-sheet-entry { padding: 1.4rem; background: var(--paper-2); border: 1px solid var(--line); }
.balance-sheet-entry > header { padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.balance-sheet-entry > header h2 { margin: 0; font-size: 1.45rem; }
.balance-sheet-entry > header p { color: var(--muted); font-size: .8rem; }
.balance-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 1.2rem; }
.balance-columns > section { min-width: 0; padding: 1rem; border-top: 4px solid var(--green); background: #f6f2e9; }
.balance-columns .liability-column { border-top-color: var(--coral); }
.balance-columns h3 { margin: 0; }
.balance-columns p { min-height: 3.2em; color: var(--muted); font-size: .73rem; }
.net-worth-result-card { background: var(--green-dark); border-radius: 0; }
.net-worth-equation { display: flex; flex-wrap: wrap; gap: .35rem; margin: -1rem 0 1.2rem; color: #d8ebe3; font-size: .68rem; }
.net-worth-equation i { color: #93afa6; font-style: normal; }
.snapshot-reading { background: var(--paper); }
.snapshot-reading-inner { max-width: 1040px; }
.snapshot-equation { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: .8rem; align-items: center; margin: 2rem 0; padding: 1.2rem; color: #fff; background: var(--ink); text-align: center; }
.snapshot-equation span { color: #b9dece; font-size: 1.4rem; }
.snapshot-lenses { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.snapshot-lenses section { padding: 1.4rem; background: var(--paper-2); border: 1px solid var(--line); }
.snapshot-lenses h3 { margin-top: 0; font-size: 1.4rem; }
.snapshot-method { max-width: 800px; margin-top: 3rem; }
.snapshot-questions { max-width: 800px; margin-top: 3rem; }

.insurance-scenario-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 1rem; padding: 1rem; background: #f4eadf; border: 1px solid #dfccbb; }
.coverage-scenario-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #d8cdbf; border: 1px solid #d8cdbf; }
.scenario-column { padding: 1.3rem; background: var(--paper-2); }
.scenario-column h2 { margin: 0; font-size: 1.25rem; }
.scenario-column > p { min-height: 3.2em; color: var(--muted); font-size: .76rem; }
.scenario-resources { background: #eef3ed; }
.coverage-scenario-form label { position: relative; display: block; margin-bottom: .8rem; color: var(--ink); font-size: .75rem; font-weight: 700; }
.coverage-scenario-form label span { position: absolute; left: .7rem; bottom: .65rem; color: var(--muted); }
.coverage-scenario-form label input { width: 100%; margin-top: .3rem; padding: .65rem .7rem .65rem 1.6rem; color: var(--text); background: #fff; border: 1px solid #aebdb8; text-align: right; }
.coverage-scenario-form label input:focus { outline: 3px solid rgba(217, 111, 74, .28); outline-offset: 1px; border-color: var(--coral-text); }
.coverage-result-card { color: var(--ink); background: #fffaf2; border: 2px solid var(--green); border-radius: 0; }
.coverage-result-card > span { color: var(--green-dark); }
.coverage-result-card .result-breakdown { border-top-color: var(--line); }
.coverage-result-card .result-breakdown p { border-bottom-color: var(--line); }
.coverage-result-card .result-note { color: var(--muted); }
.scenario-method { background: var(--paper-2); }
.scenario-method-inner { max-width: 1040px; }
.scenario-map { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; margin: 2rem 0; }
.scenario-map section { min-height: 250px; padding: 1.4rem; background: var(--coral-soft); border-top: 5px solid var(--coral); }
.scenario-map section:last-child { background: var(--sage-2); border-top-color: var(--green); }
.scenario-map h3 { font-size: 1.35rem; }
.scenario-operator { font-weight: 850; color: var(--muted); text-transform: uppercase; writing-mode: vertical-rl; }
.scenario-plain { max-width: 800px; padding: 1.4rem; border-left: 5px solid var(--green); background: var(--paper); }
.scenario-review-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 3rem; margin-top: 3rem; }
.scenario-review-grid h2 { font-size: 1.8rem; }
.scenario-questions { max-width: 800px; margin-top: 3rem; }

.debt-ledger-workbench { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 1rem; padding: 1rem; background: #ede9df; border: 1px solid var(--line); }
.debt-ledger-entry { min-width: 0; padding: 1.2rem; background: var(--paper-2); border: 1px solid var(--line); }
.debt-ledger-entry > header { margin-bottom: 1rem; }
.debt-ledger-entry > header h2 { margin: 0; font-size: 1.45rem; }
.debt-ledger-entry > header p { color: var(--muted); font-size: .78rem; }
.debt-result-board { background: #213f43; border-top: 6px solid var(--coral); }
.debt-reading { background: #eef3ed; }
.debt-reading-inner { max-width: 1040px; }
.metric-ledger { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 2rem 0; background: #a9bbb5; border: 1px solid #a9bbb5; }
.metric-ledger section { padding: 1.25rem; background: var(--paper-2); }
.metric-ledger h3 { margin: 0; color: var(--ink); font-size: 1rem; }
.metric-ledger p { color: var(--muted); font-size: .82rem; }
.debt-plain { max-width: 800px; padding: 1.4rem; color: #fff; background: var(--ink); }
.debt-plain h2 { color: #fff; }
.debt-plain .practical-tip { border-top-color: rgba(255,255,255,.18); }
.debt-decision-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 3rem; margin-top: 3rem; }
.debt-decision-grid h2 { font-size: 1.8rem; }
.debt-interpretation { padding: 1.2rem; background: var(--paper-2); border: 1px solid var(--line); }
.debt-questions { max-width: 800px; margin-top: 3rem; }

.estate-index-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 1rem; padding: 1rem; background: #e7ece7; border: 1px solid var(--line); }
.estate-document-list { padding: 1.2rem; background: var(--paper-2); border: 1px solid var(--line); }
.estate-document-list > header h2 { margin: 0; font-size: 1.45rem; }
.estate-document-list > header p { color: var(--muted); font-size: .78rem; }
.estate-progress-card { color: var(--ink); background: var(--paper); border: 2px solid var(--ink); border-radius: 0; }
.estate-progress-card > span { color: var(--green-dark); }
.estate-progress-card .progress-track { background: #d9dfd8; }
.estate-progress-card .progress-track i { background: var(--green); }
.estate-progress-card .button-quiet { color: var(--ink); }
.estate-status-key { margin: 1.2rem 0; border-top: 1px solid var(--line); }
.estate-status-key p { display: grid; gap: .1rem; margin: 0; padding: .7rem 0; border-bottom: 1px solid var(--line); }
.estate-status-key b { font-size: .75rem; }
.estate-status-key span { color: var(--muted); font-size: .7rem; }
.estate-index-guide { background: #fffaf1; }
.estate-index-guide-inner { max-width: 960px; }
.meaning-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 2rem 0; }
.meaning-split section { padding: 1.4rem; border: 1px solid var(--line); }
.meaning-split section:first-child { background: var(--sage-2); border-top: 5px solid var(--green); }
.meaning-split section:last-child { background: var(--coral-soft); border-top: 5px solid var(--coral); }
.meaning-split h3 { margin-top: 0; font-size: 1.35rem; }
.estate-plain { max-width: 800px; }
.retrieval-drill { max-width: 800px; margin-top: 3rem; padding: 1.4rem; background: var(--paper-2); border: 1px solid var(--line); }
.estate-interpretation { max-width: 800px; margin-top: 3rem; }
.estate-questions { max-width: 800px; margin-top: 3rem; }

.site-footer { padding-top: 4rem; color: #cbdad6; background: #0a2225; }
.footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 3rem; padding-bottom: 3rem; }
.footer-grid h2 { margin: 0 0 .8rem; color: #86c3af; font-family: inherit; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-grid > div > a:not(.brand) { display: block; padding: .28rem 0; color: #cbdad6; font-size: .77rem; text-decoration: none; }
.footer-grid > div > a:hover { color: #fff; text-decoration: underline; }
.footer-about p { max-width: 390px; color: #9eb4af; font-size: .78rem; }
.disclaimer { padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.12); }
.footer-bottom { display: flex; justify-content: space-between; padding-block: 1rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .7rem; }

@media (max-width: 1050px) {
  .desktop-nav, .nav-cta { display: none; }
  .nav-inner { justify-content: space-between; }
  .menu-button { display: flex; }
  .hero-grid { grid-template-columns: minmax(0, 62%) minmax(0, 38%); }
  .hero-copy { padding-right: 1.5rem; }
  .hero-copy h1 { font-size: clamp(2.9rem, 6.2vw, 4.3rem); }
  .hero-art { inset-inline-start: 58%; }
  .page-hero { grid-template-columns: 1fr; gap: 1.25rem; align-items: start; padding-block: 3.5rem 4rem; }
  .page-hero p { max-width: none; }
  .hub-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .hub-grid img { max-height: 420px; }
  .tool-header { grid-template-columns: minmax(0, 1fr) minmax(220px, .32fr); gap: 2rem; }
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  .tool-grid { grid-template-columns: repeat(2, 1fr); }
  .article-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .article-header { grid-column: 1 / -1; }.article-body { grid-column: 2; }
}

@media (max-width: 760px) {
  .wrap { width: min(calc(100% - 28px), var(--wrap)); }
  .site-nav { height: 66px; }.mobile-menu { inset-block-start: 66px; }
  .brand img { width: 36px; height: 36px; }
  .home-hero, .hero-grid { min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { padding: 3.25rem 0 20rem; }
  .hero-copy h1 { font-size: clamp(2.5rem, 11vw, 3.7rem); }
  .hero-art { inset: auto 0 0; height: 21rem; }
  .hero-art::after { background: linear-gradient(180deg, var(--paper), transparent 34%); }
  .hero-art img { object-position: 67% center; }
  .proof-grid { grid-template-columns: 1fr; padding-block: .4rem; }
  .proof-grid div { padding: .65rem 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }.proof-grid div:last-child { border-bottom: 0; }
  .section { padding: 4rem 0; }
  .split-heading, .private-grid, .magazine-grid, .hub-grid, .explainer-grid, .tool-guide-grid, .home-build-grid, .home-question-grid, .library-heading { grid-template-columns: 1fr; gap: 2rem; }
  .page-hero { grid-template-columns: 1fr; gap: 1rem; padding-block: 2.75rem 3.25rem; }
  .page-hero h1, .article-header h1, .tool-header h1, .hub-grid h1, .policy-page h1, .imported-post header h1 { font-size: clamp(2.35rem, 10vw, 3.5rem); }
  .library-directory { grid-template-columns: 1fr; }
  .category-grid, .tool-grid, .tool-grid-wide, .article-grid, .principles { grid-template-columns: 1fr; }
  .category-card { min-height: 280px; }.category-card:nth-child(even) { background: transparent; }
  .principles > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .magazine-list article { grid-template-columns: 1fr; }.magazine-list article > span { grid-column: 1; }
  .hub-hero { padding: 2.5rem 0 3.5rem; }.hub-grid img { grid-row: auto; max-height: none; }
  .article-layout { display: block; padding-top: 2rem; }
  .article-cover { margin-top: 2rem; }
  .article-toc { position: static; margin: 2rem 0; padding-bottom: 1rem; }
  .article-body { max-width: 100%; }
  .article-format-calendar .action-steps, .article-format-comparison .key-points ul, .article-format-system .key-points ul, .article-format-coordination .key-points ul { grid-template-columns: 1fr; }
  .check-grid { grid-template-columns: 1fr; }
  .inventory-checklist-table { min-width: 0; background: transparent; }
  .inventory-checklist-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .inventory-checklist-table, .inventory-checklist-table tbody, .inventory-checklist-table tr, .inventory-checklist-table th, .inventory-checklist-table td { display: block; width: 100%; }
  .inventory-checklist-table tr { margin-bottom: 1rem; background: var(--paper-2); border: 1px solid var(--line); }
  .inventory-checklist-table tbody th { width: 100%; padding: .85rem 1rem; color: #fff; background: var(--ink); border: 0; }
  .inventory-checklist-table td { padding: .75rem 1rem; border: 0; border-top: 1px solid var(--line); }
  .inventory-checklist-table td::before { content: attr(data-label); display: block; margin-bottom: .2rem; color: var(--green-dark); font-size: .67rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
  .sitemap-grid { grid-template-columns: 1fr; }
  .tool-header { grid-template-columns: 1fr; gap: 1.25rem; padding: 2.5rem 0; }
  .local-badge { width: 100%; }
  .inventory-toolbar { align-items: stretch; flex-direction: column; }
  .tool-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .inventory-layout, .calculator-grid, .debt-tool, .checklist-layout { grid-template-columns: 1fr; padding: .65rem; }
  .inventory-studio-workspace, .net-worth-workbench, .insurance-scenario-workspace, .debt-ledger-workbench, .estate-index-workspace { grid-template-columns: 1fr; padding: .65rem; }
  .balance-columns, .coverage-scenario-form, .inventory-manual-grid, .snapshot-lenses, .scenario-map, .scenario-review-grid, .metric-ledger, .debt-decision-grid, .meaning-split { grid-template-columns: 1fr; }
  .scenario-map section { min-height: 0; }
  .scenario-operator { writing-mode: horizontal-tb; text-align: center; }
  .snapshot-equation { grid-template-columns: 1fr; }
  .money-row { grid-template-columns: 1fr 120px auto; }
  .debt-head { display: none; }.debt-row { grid-template-columns: 1fr 1fr; }.debt-row .remove-row { grid-column: 1 / -1; justify-self: end; }
  .footer-grid { grid-template-columns: 1fr 1fr; }.footer-about { grid-column: 1 / -1; }
}

@media (max-width: 480px) {
  .mobile-menu-head { display: block; }
  .mobile-menu-head p { margin-top: .75rem; }
  .mobile-grid { grid-template-columns: 1fr; }
  .hero-actions { align-items: stretch; flex-direction: column; }.button-primary { width: 100%; }
  .hero-copy { padding-bottom: 17rem; }
  .hero-art { height: 18rem; }
  .page-hero h1, .article-header h1, .tool-header h1, .hub-grid h1, .policy-page h1, .imported-post header h1 { font-size: clamp(2.15rem, 11vw, 3rem); }
  .form-row { grid-template-columns: 1fr; }
  .money-row { grid-template-columns: 1fr 1fr auto; }
  .footer-grid { grid-template-columns: 1fr; }.footer-about { grid-column: auto; }
  .footer-bottom { display: block; }.footer-bottom span { display: block; margin-bottom: .25rem; }
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
@media print { .site-nav, .mobile-menu, .site-footer, .tool-actions, .add-row, .remove-row { display: none !important; } body { background: #fff; color: #000; } .tool-shell { width: 100%; } }
