:root{color-scheme:light dark;--paper:#f5f6f1;--surface:#ffffff;--ink:#152f29;--muted:#3b534c;--accent:#155640;--tint:#e5eee6;--line:#b1bdb3;--bad:#842e2a;--focus:#123fb0;--shadow:0 16px 44px #173b2410;--display:Georgia,'Songti SC','STSong',serif;--body:system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.85 var(--body)}a{color:var(--accent);text-underline-offset:.24em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:inherit;color:inherit}button,select,input:not([type=radio]):not([type=checkbox]),textarea{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:.55rem .75rem;min-height:44px;max-width:100%}input[type=range]{width:100%;accent-color:var(--accent);padding:0;border:0}input[type=checkbox],input[type=radio]{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none}button{cursor:pointer;color:var(--surface);background:var(--accent);border-color:var(--accent);font-weight:650}button.secondary{color:var(--ink);background:var(--surface)}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}p{margin:.6em 0 1.2em}h1,h2,h3{line-height:1.35;text-wrap:balance}h1{font:500 clamp(2.1rem,5.4vw,4.5rem)/1.18 var(--display);margin:.4em 0}h2{font:500 clamp(1.6rem,3vw,2.25rem)/1.4 var(--display);margin:0 0 .6em}h3{font-size:1.15rem;margin:.2em 0 .8em}ul,ol{padding-left:1.4em}li{padding:.2em 0}small,.small,.caption{font-size:.86rem;line-height:1.7;color:var(--muted)}.eyebrow{letter-spacing:.12em;font-size:.76rem;font-weight:750;text-transform:uppercase;color:var(--accent)}.wrap{max-width:1180px;margin:auto;padding:0 clamp(18px,4vw,48px)}.skip{position:absolute;left:1rem;top:-100px;z-index:5;background:var(--surface);padding:1rem}.skip:focus{top:1rem}.site-header{border-bottom:1px solid var(--line);padding:18px 0}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;min-height:44px;color:var(--ink);font-weight:650}.brand-mark{font-family:var(--display);font-size:1.8rem;border:1px solid var(--accent);border-radius:50%;width:48px;height:48px;display:grid;place-items:center}.brand small{display:block;font-weight:400;font-size:.7rem;letter-spacing:.08em}.main-nav{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.main-nav a{padding:10px 12px;min-height:44px;text-decoration:none;font-size:.87rem}.main-nav a[aria-current=page]{background:var(--tint);border-radius:5px}.main-nav button{font-size:.8rem}.hero{padding:56px 0 40px}.hero .deck{max-width:36em;font-size:1.1rem;color:var(--muted)}.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:40px;align-items:center}.passport{position:relative;padding:30px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.passport:before{content:'';position:absolute;width:160px;height:160px;right:-45px;top:-60px;border:1px solid var(--line);border-radius:50%;box-shadow:0 0 0 16px var(--surface),0 0 0 17px var(--line),0 0 0 33px var(--surface),0 0 0 34px var(--line);pointer-events:none;opacity:.55}.passport-title{position:relative;display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px}.passport-title strong{font:500 2.3rem var(--display)}.passport-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.passport-grid p{font-size:.86rem;margin:5px 0}.passport-grid h3{font-size:.73rem;letter-spacing:.1em;color:var(--muted);margin:0}.big-rule{font:500 2rem var(--display);color:var(--accent)}.passport-bottom{display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px dashed var(--line);padding-top:18px}.passport-bottom p{margin:0;font-size:.8rem}.income-band{height:7px;background:linear-gradient(90deg,var(--line),var(--accent));margin:12px 0}.section{padding:48px 0;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:baseline;flex-wrap:wrap}.section-head p{max-width:34em}.prose{max-width:40em}.article{padding:38px 0 64px;max-width:50em}.article>p,.article>ul,.article>ol,.article>h2,.article>h3{max-width:40em}.article>h2{margin-top:1.6em}.knowledge{background:var(--tint);border-left:4px solid var(--accent);padding:20px 24px;margin:24px 0;max-width:40em}.knowledge p:last-child{margin-bottom:0}.breadcrumbs{font-size:.84rem;margin:28px 0 8px}.breadcrumb-link{display:inline-block;min-height:44px;padding:7px 0}.controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:8px;margin:24px 0}.controls label{display:flex;flex-direction:column;gap:6px;font-size:.85rem}.controls .wide{grid-column:1/-1}.controls .check{flex-direction:row;align-items:center;min-height:44px}.controls input:not([type=checkbox]),.controls select{width:100%}.income-label{display:flex;justify-content:space-between;gap:10px}.income-label output{font-weight:700;color:var(--accent)}.comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.result-card{background:var(--surface);padding:22px 18px;border:1px solid var(--line);border-radius:8px}.focus-account{border-top:4px solid var(--accent);padding-top:19px}.result-card h3{font:500 1.4rem var(--display);margin-bottom:14px}.result-value{font:600 clamp(1.2rem,2.1vw,1.7rem)/1.5 var(--body);color:var(--accent);margin-bottom:0}.loss{color:var(--bad)}.result-card .caption{margin-top:0}.waterfall{list-style:none;padding:0;margin:24px 0}.waterfall li{display:flex;flex-wrap:wrap;justify-content:space-between;font-size:.74rem;gap:2px 4px;margin:10px 0}.waterfall strong{font-weight:600}.waterfall-track{display:block;position:relative;width:100%;height:14px;background:var(--tint)}.bar{display:block;position:absolute;top:2px;height:10px;min-width:0}.positive{background:var(--accent)}.negative{background:var(--bad)}.zero{position:absolute;height:14px;width:1px;background:var(--muted)}.unavailable{background:var(--tint)}.table-scroll{overflow-x:auto;max-width:100%;margin:24px 0;border:1px solid var(--line);border-radius:6px}table{border-collapse:collapse;width:100%;font-size:.85rem;line-height:1.6}caption{text-align:left;background:var(--tint);padding:16px;font-weight:650}td,th{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:650;background:var(--surface)}td a{display:inline-block;min-height:44px;padding:8px 0}.amount{white-space:nowrap}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-card{display:block;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:22px;min-height:44px}.profile-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.profile-card p{margin:0;font-size:.87rem;color:var(--muted)}.profile-card .figure{display:block;color:var(--accent);margin-top:12px;font-size:1.1rem}.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;gap:20px;margin:28px 0}.timeline li{border-top:3px solid var(--accent);padding-top:16px}.timeline a{display:block;min-height:44px}.timeline strong{display:block;font:500 1.7rem var(--display)}.timeline p{font-size:.85rem}.myth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.myth{padding-top:18px;border-top:1px solid var(--line)}blockquote{margin:12px 0;color:var(--muted);font-size:.88rem}.quiz fieldset{border:1px solid var(--line);border-radius:6px;margin:24px 0;padding:18px 20px}.quiz legend{font-weight:650;padding:0 8px}.quiz label{display:flex;gap:12px;align-items:center;min-height:44px;padding:8px 4px}.quiz .answer{background:var(--tint);padding:16px;margin-top:16px}.js .quiz:not(.answered) .answer{display:none}
.quiz .feedback{background:var(--tint);padding:12px 16px;margin-top:12px;border-radius:4px}.quiz .feedback p{margin:.4em 0}
.quiz-answers details{border:1px solid var(--line);border-radius:6px;padding:12px 16px}.quiz-answers summary{cursor:pointer;font-weight:650;min-height:44px;display:flex;align-items:center}.quiz-answers li{margin:12px 0;overflow-wrap:anywhere}
/* Closed answers must leave both layout and the keyboard path; native details remains usable without JS. */
.quiz-answers details:not([open])>ol{display:none}
.quiz-answers a,.quiz .feedback a{display:inline-block;min-width:44px;min-height:44px;max-width:100%;padding:10px 4px;overflow-wrap:anywhere}
.quiz-answers li,.pending li{max-width:40em}
.verdict{border-left:4px solid var(--accent);padding:4px 0 4px 16px;margin:8px 0 28px}.verdict p{margin:.5em 0}
.pending{border:1px dashed var(--line);border-radius:6px;padding:4px 18px;margin:28px 0}.pending h2{font-size:1.1em}.js-only{display:none}.js .js-only{display:block}.js .controls.js-only{display:grid}.error{color:var(--bad);font-weight:650}.sources{border-top:1px solid var(--line);margin-top:40px;padding-top:24px;max-width:40em}.sources ol{font-size:.87rem}.sources a{overflow-wrap:anywhere}.footer{padding:32px 0;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}.footer-nav{display:flex;gap:4px 20px;flex-wrap:wrap;margin:12px 0}.footer-nav a{padding:10px 0;min-height:44px}.method{font-size:.88rem;border-left:3px solid var(--line);padding-left:18px;max-width:44em;margin:24px 0}.income-sensitivity{padding:20px;background:var(--tint);margin:24px 0}.tag{display:inline-block;font-size:.72rem;padding:2px 8px;border:1px solid var(--line);border-radius:20px;color:var(--muted)}.anchor-links{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0}.anchor-links a{display:block;min-height:44px;padding:7px 12px;border:1px solid var(--line);border-radius:6px}textarea{min-height:130px;font-family:ui-monospace,monospace}.nowrap{white-space:nowrap}
[data-account=fhsa] .passport{border-radius:3px 32px 3px 3px}[data-account=fhsa] .passport:before{border-radius:0;transform:rotate(45deg);top:-100px;right:30px}[data-account=rrsp] .passport{border-radius:32px 3px 3px 3px}[data-account=rrsp] .passport:before{border-radius:50%;height:220px;width:220px;right:-70px;top:-100px}
@media(prefers-color-scheme:dark){html:not([data-theme=light]){--paper:#101a17;--surface:#162520;--ink:#eef5ee;--muted:#b8ccc1;--accent:#acdac0;--tint:#223d30;--line:#668575;--bad:#ffb5ae;--focus:#e5c879}}
html[data-theme=dark]{--paper:#101a17;--surface:#162520;--ink:#eef5ee;--muted:#b8ccc1;--accent:#acdac0;--tint:#223d30;--line:#668575;--bad:#ffb5ae;--focus:#e5c879}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:26px}.hero{padding:32px 0}.comparison,.myth-grid{grid-template-columns:1fr}.controls{grid-template-columns:1fr 1fr;padding:18px}.profile-grid{grid-template-columns:1fr}.timeline{grid-template-columns:1fr 1fr}.section{padding:32px 0}.header-inner{gap:8px}.main-nav a{padding:10px 8px}.passport{padding:22px}.result-card{padding:22px}.waterfall li{font-size:.84rem}.article{padding-top:20px}}
@media(max-width:420px){body{font-size:17px}.controls{grid-template-columns:1fr}.passport-grid{gap:15px}.timeline{gap:15px}.main-nav{gap:0}.main-nav a{font-size:.79rem}.hero h1{font-size:2.45rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media print{.site-header,.js-only,.footer-nav{display:none!important}body{background:#fff;color:#111}.wrap{max-width:none;padding:0}.comparison{display:block}.result-card{break-inside:avoid;margin:12px 0}.table-scroll{overflow:visible}.quiz .answer{display:block!important}a{color:inherit}.section{padding:20px 0}}
main p{max-width:40em}.passport-title{font-family:var(--body);font-size:1rem;font-weight:400}.passport-title span{font-size:1rem}.method{max-width:40em}.rule-list{padding-left:1em;margin:0}.rule-list li{margin-bottom:.25em}
body{font-size:1.125rem}.passport-title{flex-wrap:wrap}.controls>*{min-width:0}.controls textarea{width:100%;min-width:0}.brand{font-size:1rem}.brand-mark{font-size:clamp(1.3rem,5vw,1.8rem)}#theme-toggle{font-size:.8rem;margin-left:auto}.main-nav{margin-left:auto}
@media(max-width:760px){.main-nav{flex-basis:100%;margin-left:0}.site-header{padding:12px 0}}
@media(max-width:420px){body{font-size:1.0625rem}.brand small{display:none}}
.passport:before,[data-account=rrsp] .passport:before{right:0}[data-account=fhsa] .passport:before{right:40px}
input[type=date]:focus-within{outline:3px solid var(--focus);outline-offset:4px}
/* Source-list entries are standalone targets, including when their titles wrap. */
.sources li>a{display:inline-block;min-width:44px;min-height:44px;max-width:100%;padding:8px 0}
/* Leave room for the article at 200% text size without shrinking navigation text. */
@media(max-width:760px){.site-header{padding:8px 0}.main-nav a{padding:4px 8px}}
