:root{
  --text:#231f1b;--muted:#625d57;--surface:#fff;--surface-soft:#fff8ef;--border:#ded5ca;
  --accent:#b94f13;--accent-dark:#86370c;--accent-contrast:#fff;--notice:#fff6e9;
  --success:#245d3a;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;
  --space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--measure:47rem;--shell:72rem
}
*{box-sizing:border-box}
/* Author button display rules must never override the HTML hidden attribute. */
[hidden]{display:none!important}
html{font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;line-height:1.75;color:var(--text);background:#fffdf9}
body{margin:0}
a{color:var(--accent-dark);text-underline-offset:.16em}
.shell{width:min(var(--shell),calc(100% - 2rem));margin:auto}
.measure{max-width:var(--measure)}
header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:4}
header .shell{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-3)}
.brand{font-weight:900;text-decoration:none;color:var(--text);letter-spacing:.01em}
nav ul,.crumbs ol{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-4);flex-wrap:wrap}
header nav a{text-decoration:none;font-weight:700}
header nav a[aria-current]{color:var(--accent-dark);text-decoration:underline;text-decoration-thickness:.14em;text-underline-offset:.28em}
.skip{position:absolute;left:-9999px}.skip:focus{left:var(--space-4);top:var(--space-4);z-index:6;background:var(--surface);padding:var(--space-3)}
main{padding-block:var(--space-8)}
.hero{padding-block:var(--space-8) var(--space-12);background:linear-gradient(135deg,#fffdf9,#fff3df);border-radius:1.2rem;padding-inline:clamp(1rem,4vw,3rem);margin-bottom:var(--space-8)}
h1{font-size:clamp(2.1rem,6vw,3.8rem);line-height:1.1;letter-spacing:-.035em;max-width:18ch}
h2{font-size:clamp(1.45rem,4vw,2.2rem);line-height:1.25;margin-top:2.2em}
h3{font-size:1.18rem;line-height:1.35}
.lead{font-size:clamp(1.05rem,2vw,1.2rem);color:var(--muted)}
.eyebrow{font-size:.85rem;font-weight:900;color:var(--accent-dark);letter-spacing:.08em;text-transform:uppercase}
.grid,.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.card,.callout,.cta,.panel,.tool,.sources,.checklist{border:1px solid var(--border);border-radius:1rem;background:var(--surface);padding:var(--space-6);box-shadow:0 8px 28px rgba(69,45,21,.04)}
.card{display:block;text-decoration:none;color:var(--text);transition:transform .15s ease,box-shadow .15s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(69,45,21,.09)}
.card strong,.card span{display:block}.card span{color:var(--muted);margin-top:.35rem}
.button,button{display:inline-block;min-height:46px;padding:.7rem 1rem;border-radius:.7rem;background:var(--accent);color:var(--accent-contrast);font:inherit;font-weight:800;text-decoration:none;border:1px solid var(--accent);cursor:pointer}
.button.secondary{background:transparent;color:var(--accent-dark)}
.hero-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6)}
.callout{background:var(--notice);border-left:5px solid var(--accent)}
.callout[data-variant="caution"]{border-left-style:solid}.callout[data-variant="source-needed"]{border-left-style:dashed}
.table-wrap{overflow-x:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:36rem}.table-wrap th,.table-wrap td{border:1px solid var(--border);padding:var(--space-3);text-align:left}
.category-nav{margin-block:var(--space-6)}.category-nav ul{display:flex;gap:var(--space-2);flex-wrap:wrap;list-style:none;padding:0}.category-nav a{display:inline-block;padding:.5rem .75rem;border:1px solid var(--border);border-radius:999px;text-decoration:none}
.diagram{max-width:100%;height:auto;background:var(--surface-soft);border-radius:.8rem}
.result{margin-top:var(--space-4);padding:var(--space-4);background:#f2f8f3;border-left:4px solid var(--success);display:grid;gap:.25rem}
.result strong{font-size:1.35rem}.result span{color:var(--muted)}
.tool{background:linear-gradient(180deg,#fff,#fff9f1)}
.input-row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.input-row input{width:8rem;min-height:46px;padding:.55rem .7rem;font:inherit;border:1px solid var(--border);border-radius:.6rem;background:#fff}
.muted{color:var(--muted);font-size:.94rem}
.journey,.decision-list{list-style:none;padding:0;display:grid;gap:var(--space-3);counter-reset:item}
.journey li,.decision-list li{border:1px solid var(--border);border-radius:.9rem;background:#fff;padding:var(--space-4)}
.journey a{text-decoration:none;color:var(--text);display:grid;gap:.2rem}.journey span{color:var(--muted)}
.checklist label{display:flex;gap:.7rem;align-items:flex-start;font-weight:800;margin-top:1rem}.checklist input{margin-top:.35rem;transform:scale(1.15)}.checklist p{margin:.25rem 0 1rem 1.8rem;color:var(--muted)}
.sources ul{padding-left:1.2rem}.sources li+li{margin-top:.5rem}
.crumbs{font-size:.9rem;color:var(--muted)}
footer{border-top:1px solid var(--border);padding-block:var(--space-8);color:var(--muted);margin-top:var(--space-12)}
.footer-grid{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-6);flex-wrap:wrap}.footer-grid p{max-width:42rem;margin:.25rem 0}.build-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
:focus-visible{outline:3px solid var(--accent-dark);outline-offset:3px}
@media(max-width:48rem){header{position:static}header .shell{align-items:flex-start;flex-direction:column;gap:var(--space-2)}header nav{width:100%;overflow:visible}header nav ul{width:100%;min-width:0;flex-wrap:wrap;gap:var(--space-2);padding-bottom:.2rem}header nav a{display:inline-flex;align-items:center;min-height:44px;padding:.25rem .45rem;white-space:nowrap}.grid,.steps{grid-template-columns:1fr}main{padding-block:var(--space-6)}h1{max-width:none}.hero{padding-block:var(--space-6);margin-inline:-.25rem}.footer-grid{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.progress-summary{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:.8rem;background:var(--surface-soft);display:grid;gap:.25rem}.progress-summary strong{font-size:1.15rem}.progress-summary span{color:var(--muted)}
@media print{header,.crumbs,.no-print,footer{display:none!important}body{background:#fff}.shell{width:100%;max-width:none}main{padding:0}.checklist{box-shadow:none}.checklist label{break-inside:avoid}.checklist p{break-inside:avoid}a{color:inherit;text-decoration:none}}
.home-hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(16rem,.75fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center;background:radial-gradient(circle at 88% 18%,#ffe1b9 0 7rem,transparent 7.1rem),linear-gradient(135deg,#fffaf3,#fff0d9)}
.home-hero h1{max-width:14ch}.hero-copy{min-width:0}.reassurance{background:rgba(255,255,255,.86);border:1px solid #ead6bc;border-radius:1.1rem;padding:1.5rem;box-shadow:0 14px 34px rgba(92,56,20,.08)}.reassurance-mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:999px;background:#f2f8f3;color:var(--success);font-size:1.25rem;font-weight:900;margin-bottom:.8rem}.reassurance strong{font-size:1.08rem}.reassurance p{color:var(--muted);margin:.5rem 0 0}.section-kicker{font-weight:900;color:var(--accent-dark);margin-bottom:-1.3rem}.situation-section .card strong{font-size:1.04rem}.situation-section .card span{line-height:1.6}
@media(max-width:48rem){.home-hero{grid-template-columns:1fr;background:linear-gradient(145deg,#fffaf3,#fff0d9)}.reassurance{padding:1.15rem}.home-hero h1 br{display:none}}

.hub-filter{margin:var(--space-6) 0 var(--space-8);padding:var(--space-4);border:1px solid var(--border);border-radius:1rem;background:var(--surface-soft)}.hub-filter label{display:grid;gap:.2rem}.hub-filter label span{color:var(--muted);font-size:.92rem;font-weight:400}.hub-filter-row{display:flex;gap:var(--space-2);align-items:center;margin-top:var(--space-3)}.hub-filter-row input{flex:1;min-width:10rem;min-height:46px;padding:.65rem .8rem;font:inherit;border:1px solid var(--border);border-radius:.7rem;background:#fff}.hub-filter .button.secondary{background:#fff}.hub-filter [hidden],.card[hidden],h3[hidden]{display:none!important}
@media(max-width:48rem){.hub-filter-row{align-items:stretch;flex-direction:column}.hub-filter-row .button{width:100%}}

.hero-subaction{margin:.8rem 0 0;font-size:.96rem}.hero-subaction a{font-weight:700;text-underline-offset:.18em}@media(max-width:48rem){}

.term-finder{margin-top:var(--space-8)}.term-links{display:flex;flex-wrap:wrap;gap:.65rem;margin:var(--space-4) 0}.term-links a{display:inline-flex;align-items:center;min-height:44px;padding:.55rem .85rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-weight:700;text-decoration:none}.term-links a:hover,.term-links a:focus-visible{border-color:currentColor;text-decoration:underline}

.memo-table-wrap{overflow-x:auto}.memo-table{width:100%;border-collapse:collapse;table-layout:fixed}.memo-table th,.memo-table td{border:1px solid var(--border);padding:.7rem;vertical-align:top}.memo-table th:first-child{width:24%}.memo-table td{height:3.4rem}.memo-table th:last-child,.memo-table td:last-child{width:4.5rem;text-align:center}.memo-notes{margin-top:1.5rem}.memo-lines{height:9rem;margin-top:.6rem;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2rem,var(--border) 2.05rem,var(--border) 2.1rem)}
@media print{.memo-sheet h2{margin-top:.8rem}.memo-sheet p{margin:.3rem 0 .7rem}.memo-table th,.memo-table td{padding:.45rem}.memo-table td{height:2.7rem}.memo-notes{break-inside:avoid}.memo-lines{height:7rem}}

.memo-finder .panel strong{font-size:1.04rem}.memo-finder .panel p{margin:.35rem 0 0;color:var(--muted)}.memo-finder .callout{margin-top:var(--space-4)}


.text-size-toggle{flex:0 0 auto;min-height:44px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.7rem;background:#fff;color:var(--text);font:inherit;font-weight:800;cursor:pointer;white-space:nowrap}.text-size-toggle:hover{border-color:currentColor}.text-size-toggle[aria-pressed="true"]{background:var(--surface-soft)}html.text-large{font-size:118.75%}@media(max-width:48rem){.text-size-toggle{align-self:flex-start}}@media print{.text-size-toggle{display:none!important}}

header nav a[aria-current="page"],header nav a[aria-current="location"]{font-weight:900;text-decoration-thickness:.16em;text-underline-offset:.28em;background:var(--surface-soft);border-radius:.45rem}

.hub-filter-suggestions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:var(--space-3)}.hub-filter-suggestions>span{width:100%;color:var(--muted);font-size:.9rem}.hub-filter-suggestions button{min-height:44px;padding:.45rem .8rem;border:1px solid var(--border);border-radius:999px;background:#fff;color:inherit;font:inherit;font-weight:700;cursor:pointer}.hub-filter-suggestions button:hover,.hub-filter-suggestions button:focus-visible{border-color:currentColor;text-decoration:underline}


/* Two-column consultation worksheet: preserve a wide handwriting area. */
.consultation-memo-table th:first-child{width:34%}.consultation-memo-table th:last-child,.consultation-memo-table td:last-child{width:auto;text-align:left}

.paper-start{margin-top:var(--space-8);padding:var(--space-6);border:1px solid var(--border);border-radius:1rem;background:var(--surface-soft)}.paper-start .section-kicker{margin-bottom:-1rem}.paper-start-grid{margin-top:var(--space-4)}

.memo-pack-sheet{margin-top:var(--space-8)}
@media print{.memo-pack-sheet{break-before:page;page-break-before:always}.memo-pack-sheet--first{break-before:auto;page-break-before:auto}.memo-pack-sheet .section-kicker{margin-bottom:-.8rem}}

/* The three-sheet printable pack must not create an introductory fourth page. */
@media print {
  .memo-pack-page main > .eyebrow,
  .memo-pack-page main > h1,
  .memo-pack-page main > .lead { display: none !important; }
  .memo-pack-page .memo-pack-sheet--first { margin-top: 0; }
  .memo-pack-page .memo-pack-sheet { break-inside: avoid; page-break-inside: avoid; }
  .memo-pack-page .memo-table td { height: 4.6rem; }
}


/* In-page topic jumps should not disappear beneath the sticky desktop header. */
main[id],main section[id]{scroll-margin-top:6.5rem}

/* First-step deadline routes: visible without JavaScript, one clear target per row. */
.deadline-chooser h3{font-size:1.08rem;line-height:1.5;margin:0 0 .5rem}.deadline-chooser p{margin:.3rem 0 .7rem;color:var(--muted)}.deadline-choice-links{list-style:none;padding:0;margin:0}.deadline-choice-links li+li{border-top:1px solid var(--border)}.deadline-choice-links a{display:flex;align-items:center;min-height:44px;padding:.6rem .15rem;font-weight:750;text-underline-offset:.18em;overflow-wrap:anywhere}.deadline-choice-links a:focus-visible{outline:3px solid var(--accent-dark);outline-offset:3px;border-radius:.2rem}

/* Printable memo ruling uses actual borders, not backgrounds that browsers often omit. */
.memo-lines{height:auto;background:none;display:grid;grid-template-rows:repeat(4,2rem)}
.memo-lines span{display:block;border-bottom:1px solid #9a9084}
@media print{.memo-lines{height:auto;grid-template-rows:repeat(4,1.65rem)}}

/* Keep single-page worksheets within normal printer margins; reserve room for handwriting. */
@media print {
 .memo-single-page main > .eyebrow { margin:0 0 .2rem }
 .memo-single-page main > h1 { font-size:1.5rem;line-height:1.25;margin:.15rem 0 .4rem;max-width:none }
 .memo-single-page main > .lead { display:none!important }
 .memo-single-page .memo-sheet h2 { margin-top:.7rem;font-size:1.2rem }
 .memo-single-page .memo-sheet > p { margin:.15rem 0 .4rem }
 .memo-single-page .memo-table td { height:3.3rem }
 .memo-single-page .memo-table th,.memo-single-page .memo-table td { padding:.32rem }
 .memo-single-page .memo-notes { margin-top:.7rem }
 .memo-single-page .memo-lines { grid-template-rows:repeat(4,1.5rem) }
}

/* Paper-first pack: use otherwise blank space for two real ink-safe handwriting lines. */
.memo-pack-extra{margin-top:1rem}
.memo-pack-extra h3{font-size:.98rem;margin:0 0 .3rem;font-weight:700}
.memo-pack-extra-lines{display:grid;grid-template-rows:repeat(2,1.7rem)}
.memo-pack-extra-lines span{display:block;border-bottom:1px solid #777}
.memo-pack-paper-privacy{font-size:.82rem;color:#444;margin:.65rem 0 0}
@media print{
 .memo-pack-page .memo-pack-extra{margin-top:.6rem;break-inside:avoid}
 .memo-pack-page .memo-pack-extra h3{font-size:.86rem;margin:0 0 .1rem}
 .memo-pack-page .memo-pack-extra-lines{grid-template-rows:repeat(2,1.35rem)}
 .memo-pack-page .memo-pack-paper-privacy{font-size:.73rem;margin:.4rem 0 0}
}

/* Paper-only follow-up: an action a reader can carry away from a consultation. */
.memo-next-action{margin-top:.8rem;break-inside:avoid}
.memo-next-action h3{font-size:.98rem;margin:0 0 .35rem}
.memo-next-action p{display:flex;gap:.6rem;align-items:flex-end;font-size:.9rem;margin:.3rem 0}
.memo-action-line{flex:1;min-width:3rem;border-bottom:1px solid #777;height:1.25rem}
@media print{.memo-pack-page .memo-next-action{margin-top:.4rem}.memo-pack-page .memo-next-action h3{font-size:.82rem;margin:0 0 .15rem}.memo-pack-page .memo-next-action p{font-size:.78rem;margin:.1rem 0}.memo-pack-page .memo-action-line{height:.95rem}}

/* Older-reader baseline: 18px default without a per-page click.
   Preserve the enlargement control's +18.75% option; keep printable worksheets at
   the validated 16px scale even when that control has been activated. */
html{font-size:112.5%}
html.text-large{font-size:133.59375%}
@media print{html,html.text-large{font-size:100%}}
/* Keep the welcoming headline on balanced lines across tablet and desktop. */
.home-hero h1{font-size:clamp(2.1rem,4.8vw,3.2rem);max-width:none}

/* Optional topic directory is native HTML: no search input, URL handling, or JS required. */
.topic-directory{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:1rem;background:var(--surface-soft)}.topic-directory summary{min-height:44px;display:list-item;padding:.7rem .3rem;cursor:pointer;font-weight:800}.topic-directory summary:focus-visible{outline:3px solid var(--accent-dark);outline-offset:3px;border-radius:.2rem}.topic-directory .term-links{margin-top:var(--space-3)}

/* Screen-reader names for printable worksheets, without consuming print space. */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* A hand-written next action for a checklist item that is still unknown. */
.prep-followup{margin-top:1.5rem;padding:1rem 1.2rem;background:var(--surface-soft);border:1px solid var(--border);border-radius:.9rem}
.prep-followup h3{margin:.2rem 0 .6rem}.prep-followup p{margin:.5rem 0}
.prep-followup-paper{margin:1rem 0;padding:.5rem .75rem;background:#fff;border:1px solid var(--border);border-radius:.6rem;break-inside:avoid}
.prep-followup-paper p{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap;margin:.55rem 0}.prep-writing-line{display:inline-block;flex:1 1 8rem;min-width:8rem;height:1.35rem;border-bottom:1px solid #777}
@media print{.prep-followup{background:#fff;border:1px solid #777;break-inside:avoid}.prep-followup-paper{border:0;padding:0}.prep-writing-line{border-bottom-color:#444}}

/* Privacy-first printing: a page-level print button must not expose a calculator's
   locally entered financial values or computed result on shared printers. */
.print-only{display:none!important}
@media print {
  #basic-deduction-form,#basic-deduction-result,
  #tax-bracket-form,#tax-bracket-result{display:none!important}
  .calculator-print-privacy{display:block!important;margin:1rem 0;padding:.6rem 0;border-top:1px solid #888;border-bottom:1px solid #888;color:#222}
}

/* Plain-language glossary: readable without JavaScript or search telemetry. */
.glossary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin:var(--space-4) 0 var(--space-8)}
.glossary-entry{scroll-margin-top:6rem}.glossary-entry dt{font-weight:900;font-size:1.14rem}.glossary-entry dd{margin:.4rem 0 0}.glossary-entry dd p{margin:.2rem 0 .7rem}.glossary-entry a{font-weight:800}
@media(max-width:48rem){.glossary-grid{grid-template-columns:1fr}}

/* Printed topic lists must not reveal locally typed search text or even which
   results a reader filtered on a shared printer. Print the complete directory. */
@media print {
  .hub-filter{display:none!important}
  .card[hidden],h3[hidden]{display:block!important}
}

/* Shared-printer privacy: a checklist is a reusable blank worksheet on paper.
   A checked box may reveal a family's private preparation status. Never print
   its interactive state; show identical empty ink-safe boxes instead. */
.checklist-print-privacy{display:none!important}
@media print{
  .checklist input[type="checkbox"]{display:none!important}
  .checklist label::before{content:"";display:block;flex:0 0 .85rem;width:.85rem;height:.85rem;border:1px solid #444;margin-top:.3rem;background:#fff}
  #prep-progress{display:none!important}
  .checklist-print-privacy{display:block!important;font-size:.85rem;color:#333;margin:.35rem 0 .7rem}
}
