:root {
  --ink: #15283d;
  --muted: #526170;
  --paper: #f4f0e6;
  --surface: #fffdf7;
  --coral: #f07862;
  --mint: #99d8c0;
  --yellow: #f2c94c;
  --blue: #77aee5;
  --line: #c8c6bd;
  --focus: #005fcc;
  --shadow: 0 12px 32px rgb(21 40 61 / 10%);
  color: var(--ink);
  background: var(--paper);
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-synthesis: none;
}

/* Decision journey: procedure -> comparable quote -> region -> safety */
.decision-hub { display:grid; width:min(calc(100% - 3rem),1192px); margin:2.25rem auto 5rem; padding:2rem; grid-template-columns:minmax(16rem,.55fr) minmax(0,1fr); gap:2rem; border:1px solid var(--ink); background:var(--surface); }
.decision-hub h2 { margin:.35rem 0 .75rem; font:800 clamp(1.9rem,3.5vw,3.25rem)/1.12 "Yu Mincho",serif; letter-spacing:-.03em; }
.decision-hub ol { display:grid; margin:0; padding:0; grid-template-columns:repeat(3,1fr); gap:.5rem; list-style:none; }
.decision-hub li a { display:grid; min-height:9rem; padding:1.1rem; grid-template-columns:2rem 1fr; gap:.25rem .65rem; border-top:5px solid var(--coral); background:var(--paper); color:inherit; text-decoration:none; }
.decision-hub li:nth-child(2) a { border-color:var(--yellow); }.decision-hub li:nth-child(3) a { border-color:var(--mint); }
.decision-hub li span { grid-row:1/3; color:var(--muted); font-weight:900; }.decision-hub li b,.decision-hub li small { display:block; }.decision-hub li small { color:var(--muted); }
.decision-hub>.primary-action { grid-column:2; justify-self:start; }
.decision-page { width:min(100%,1240px); margin:0 auto; padding:clamp(3rem,8vw,7rem) 1.5rem 7.5rem; }
.decision-hero { display:grid; padding-bottom:3.5rem; grid-template-columns:minmax(0,1fr) minmax(16rem,.45fr); align-items:end; gap:3rem; border-bottom:1px solid var(--line); }.decision-hero.compact { display:block; max-width:56rem; }
.decision-hero h1,.procedure-detail-head h1 { margin:.18em 0; font:800 clamp(2.7rem,7vw,6.2rem)/.98 "Yu Mincho",serif; letter-spacing:-.055em; }.decision-hero .lead { max-width:45rem; }
.decision-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; }.decision-actions>a:not(.primary-action) { min-height:48px; padding:.8rem 1rem; border:1px solid var(--line); text-decoration:none; }
.procedure-directory,.price-table-section,.decision-page>section { margin-top:4.5rem; }.procedure-list { border-top:2px solid var(--ink); }
.procedure-row { display:grid; padding:1.25rem .5rem; grid-template-columns:3rem minmax(11rem,1.3fr) 1fr 1fr minmax(7.5rem,.8fr); align-items:center; gap:1.1rem; border-bottom:1px solid var(--line); color:inherit; text-decoration:none; }.procedure-row:hover { background:var(--surface); }.procedure-row>span:first-child { color:var(--muted); font-variant-numeric:tabular-nums; }.procedure-row b,.procedure-row small { display:block; }.procedure-row small { margin-top:.2rem; color:var(--muted); }.procedure-row strong { text-align:right; }
.data-note,.definition-stack { margin-top:2rem; padding:1.5rem; border-left:5px solid var(--coral); background:var(--surface); }
.procedure-detail-head { display:grid; padding-bottom:3rem; grid-template-columns:1fr auto; gap:2rem; border-bottom:1px solid var(--line); }.procedure-detail-head .korean-name { color:var(--muted); font-size:1.25rem; }.procedure-detail-head dl { min-width:16rem; }.procedure-detail-head dl div { padding:.9rem 0; border-bottom:1px solid var(--line); }.procedure-detail-head dt { color:var(--muted); font-size:.78rem; }.procedure-detail-head dd { margin:.3rem 0 0; font-weight:800; }
.stat-cards { display:grid; grid-template-columns:repeat(5,1fr); gap:.75rem; }.stat-cards dl { margin:0; padding:1.4rem; border-top:4px solid var(--ink); background:var(--surface); }.stat-cards dt { color:var(--muted); font-size:.8rem; }.stat-cards dd { margin:.5rem 0 0; font-size:clamp(1.15rem,2.2vw,1.85rem); font-weight:900; }
.sample-ledger { margin-top:1rem; padding:1rem; border:1px solid var(--line); }.sample-ledger li { display:flex; padding:.55rem 0; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); }.capture-note { color:var(--muted); font-size:.82rem; line-height:1.7; }.data-empty { padding:1.75rem; border:1px dashed var(--line); }
.preflight-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }.preflight-grid>div { padding:1.75rem; background:var(--surface); }.preflight-grid li { margin:.75em 0; }
.table-scroll { width:100%; max-width:100%; overflow:auto; border:1px solid var(--line); }.price-table { width:100%; min-width:760px; border-collapse:collapse; }.price-table th,.price-table td { padding:1rem; border-bottom:1px solid var(--line); text-align:right; font-variant-numeric:tabular-nums; }.price-table th:first-child { text-align:left; }.price-table tbody th a { display:inline-flex; min-width:44px; min-height:44px; align-items:center; color:inherit; }.price-table tbody th small { display:block; margin-top:.25rem; color:var(--muted); font-weight:400; }.data-pending { color:var(--muted); font-size:.84rem; }
.quote-checker { display:grid; min-width:0; padding:2.25rem; grid-template-columns:minmax(0,.65fr) minmax(0,1fr); gap:2.5rem; background:var(--surface); }.quote-checker>* { min-width:0; }.quote-checker form { display:grid; min-width:0; gap:1.1rem; }.quote-checker label,.region-side>label { display:grid; min-width:0; gap:.45rem; font-weight:700; }.quote-checker input:not([type="checkbox"]),.quote-checker select,.region-side select { width:100%; min-width:0; min-height:48px; padding:.65rem .75rem; border:1px solid var(--line); background:#fff; color:var(--ink); font:inherit; }.quote-checker input[type="checkbox"] { width:44px; height:44px; flex:0 0 44px; margin:0 .35rem 0 0; vertical-align:middle; }.quote-checker fieldset { display:grid; min-width:0; padding:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; border:1px solid var(--line); }.quote-checker fieldset label { display:flex; min-height:48px; align-items:center; font-weight:500; }.quote-result { min-width:0; grid-column:1/-1; padding:1.9rem; background:var(--ink); color:#fff; }.quote-result>span,.quote-result>strong { display:block; }.quote-result>strong { margin:.5rem 0; font-size:clamp(2rem,6vw,4rem); overflow-wrap:anywhere; }.quote-result dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#ffffff33; }.quote-result dl div { min-width:0; padding:.8rem; background:var(--ink); }.quote-result dd { margin:.2rem 0 0; font-weight:800; overflow-wrap:anywhere; }
.region-explorer { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(16rem,.65fr); gap:1.9rem; }.map-panel { min-width:0; padding:1.1rem; background:#edf1eb; }.map-panel svg { display:block; width:100%; max-height:680px; }.beauty-map-cell { stroke:#fff; stroke-width:.7; cursor:pointer; transition:fill .16s,stroke-width .16s; }.beauty-map-cell:hover,.beauty-map-cell:focus,.beauty-map-cell.selected { fill:var(--yellow); stroke:var(--ink); stroke-width:2; outline:none; }.map-status,.map-credit { color:var(--muted); font-size:.78rem; }.map-credit a,.data-note a { display:inline-flex; min-height:44px; align-items:center; }.region-side { display:flex; min-width:0; flex-direction:column; gap:1.25rem; }.region-detail { padding:1.6rem; background:var(--ink); color:#fff; }.region-detail span,.region-detail strong { display:block; }.region-detail strong { margin:.8rem 0; font-size:clamp(3rem,7vw,5.5rem); line-height:1; }.region-detail strong small { margin-left:.3rem; font-size:.9rem; }.region-legend { display:flex; align-items:center; gap:.25rem; font-size:.72rem; }.region-legend i { width:1.5rem; height:.75rem; }
.region-ranking { margin:0; padding:0; border-top:2px solid var(--ink); list-style:none; }.region-ranking li { display:grid; padding:.9rem .5rem; grid-template-columns:2.5rem minmax(9.4rem,.7fr) 1fr 4.4rem; align-items:center; gap:.9rem; border-bottom:1px solid var(--line); }.region-ranking b small { display:block; color:var(--muted); font-weight:400; }.region-ranking i { height:.6rem; background:var(--coral); }.region-ranking strong { text-align:right; }.hub-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; }.hub-grid article { padding:1.25rem; border-top:4px solid var(--coral); background:var(--surface); }.hub-grid span,.hub-grid small { display:block; color:var(--muted); }.hub-grid h3 { margin:.3rem 0 1rem; }.hub-grid strong { font-size:1.8rem; }
.density-1 { fill:#d9ded8; background:#d9ded8!important; width:10%; }.density-2 { fill:#d7cfc6; background:#d7cfc6!important; width:20%; }.density-3 { fill:#d6c1b5; background:#d6c1b5!important; width:30%; }.density-4 { fill:#d6b2a3; background:#d6b2a3!important; width:40%; }.density-5 { fill:#d7a38f; background:#d7a38f!important; width:50%; }.density-6 { fill:#d9947b; background:#d9947b!important; width:60%; }.density-7 { fill:#dc856a; background:#dc856a!important; width:70%; }.density-8 { fill:#e0775c; background:#e0775c!important; width:80%; }.density-9 { fill:#e56955; background:#e56955!important; width:90%; }.density-10 { fill:var(--coral); background:var(--coral)!important; width:100%; }
.definition-stack dl { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); }.definition-stack dl div { padding:1rem; background:var(--surface); }.definition-stack dt { font-weight:900; }.definition-stack dd { margin:.4rem 0 0; font-size:.85rem; }
.journey-checklist { display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; }.journey-checklist article { padding:1.75rem; border-top:6px solid var(--coral); background:var(--surface); }.journey-checklist article:nth-child(2) { border-color:var(--yellow); }.journey-checklist article:nth-child(3) { border-color:var(--ink); }.journey-checklist span { font-size:.72rem; font-weight:900; letter-spacing:.12em; }.journey-checklist li { margin:.8em 0; }.official-help { display:grid; grid-template-columns:.6fr 1fr; gap:2.25rem; }.official-help ul { margin:0; padding:0; border-top:2px solid var(--ink); list-style:none; }.official-help a { display:grid; padding:1.1rem .4rem; grid-template-columns:1fr 1fr; gap:.75rem; border-bottom:1px solid var(--line); color:inherit; text-decoration:none; }.official-help a span { color:var(--muted); }.print-pass { margin-top:1.9rem; padding:1rem 1.4rem; border:1px solid var(--ink); background:transparent; font:inherit; font-weight:800; cursor:pointer; }

@media (max-width:760px) {
  .decision-hub,.decision-hero,.procedure-detail-head,.quote-checker,.region-explorer,.official-help { grid-template-columns:1fr; }.decision-hub { width:calc(100% - 2rem); padding:1rem; }.decision-hub ol { grid-template-columns:1fr; }.decision-hub li a { min-height:auto; }.decision-hub>.primary-action { grid-column:1; }
  .decision-page { padding-inline:1rem; }.procedure-row { grid-template-columns:2.2rem 1fr auto; }.procedure-row>span:nth-child(3),.procedure-row>span:nth-child(4) { display:none; }.stat-cards { grid-template-columns:1fr 1fr; }.preflight-grid,.journey-checklist { grid-template-columns:1fr; }.definition-stack dl { grid-template-columns:1fr 1fr; }.quote-checker { padding:1.35rem; }.region-ranking li { grid-template-columns:2rem 1fr 4rem; }.region-ranking i { display:none; }.hub-grid { grid-template-columns:1fr 1fr; }.official-help a { grid-template-columns:1fr; }
}

@media print { .site-header,footer,.decision-actions,.print-pass,.primary-action { display:none!important; }.decision-page { padding:0; }.journey-checklist { grid-template-columns:repeat(3,1fr); }.journey-checklist article { break-inside:avoid; } }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  display: flex;
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  flex-direction: column;
  background: var(--paper);
  line-height: 1.7;
  overflow-wrap: break-word;
  word-break: normal;
}
main { flex: 1; }
a { color: inherit; text-underline-offset: .22em; }
button, a, input { touch-action: manipulation; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: .5rem;
  left: .5rem;
  min-height: 44px;
  padding: .65rem 1rem;
  background: white;
  color: var(--ink);
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

.site-header {
  display: flex;
  width: min(100%, 1240px);
  min-height: 84px;
  margin: 0 auto;
  padding: 1rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  border-bottom: 1px solid var(--line);
}
.brand {
  display: flex;
  min-height: 52px;
  align-items: center;
  gap: .75rem;
  line-height: 1.15;
  text-decoration: none;
}
.brand-mark {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  border: 2px solid var(--ink);
  border-radius: 50%;
  background: var(--yellow);
  font: 900 1.5rem/1 "Yu Mincho", serif;
  transform: rotate(-8deg);
}
.brand b { display: block; letter-spacing: .02em; }
.brand small {
  display: block;
  margin-top: .25rem;
  color: var(--muted);
  font-size: .72rem;
}
.site-header nav {
  display: flex;
  align-items: center;
  gap: .25rem;
  font-size: .88rem;
  font-weight: 800;
}
.site-header nav a {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  padding: .6rem .8rem;
  align-items: center;
  text-decoration: none;
}
.site-header nav a:hover { text-decoration: underline; }

.category-label,
.section-number,
.footer-label {
  margin: 0;
  color: #36556c;
  font: 800 .72rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero {
  display: grid;
  width: min(100%, 1240px);
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 4.5rem) 1.5rem 2.5rem;
  grid-template-columns: minmax(0, 1.05fr) minmax(24rem, .95fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
}
.hero-copy h1,
.article h1,
.plain-page h1,
.not-found h1 {
  margin: .7rem 0 1rem;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.7rem, 5.6vw, 5.4rem);
  line-height: 1.08;
  letter-spacing: -.045em;
}
.hero-copy h1 em {
  display: block;
  color: var(--coral);
  font-style: normal;
}
.lead {
  max-width: 46rem;
  margin: 0;
  color: #3b4d5d;
  font-size: clamp(1rem, 1.6vw, 1.2rem);
}
.lead b { color: var(--ink); }
.hero-steps {
  display: grid;
  margin: 1.5rem 0;
  padding: 0;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
  list-style: none;
}
.hero-steps li {
  position: relative;
  min-width: 0;
  padding: .8rem .65rem .75rem 2.25rem;
  border-top: 2px solid var(--ink);
}
.hero-steps li > span {
  position: absolute;
  top: .7rem;
  left: .3rem;
  display: grid;
  width: 1.45rem;
  height: 1.45rem;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 50%;
  font: 800 .7rem/1 ui-monospace, monospace;
}
.hero-steps b,
.hero-steps small { display: block; }
.hero-steps b { font-size: .92rem; }
.hero-steps small {
  margin-top: .15rem;
  color: var(--muted);
  font-size: .7rem;
  line-height: 1.35;
}
.primary-action {
  display: inline-flex;
  min-height: 52px;
  padding: .75rem 1.1rem;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  border: 2px solid var(--ink);
  background: var(--ink);
  box-shadow: 5px 5px 0 var(--coral);
  color: white;
  font-weight: 900;
  text-decoration: none;
}
.primary-action span { color: var(--yellow); }
.hero-visual { min-width: 0; }
.hero-visual img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 470px;
}
.hero-visual p {
  margin: .75rem 0 0;
  padding-left: 1rem;
  border-left: 3px solid var(--coral);
  color: var(--muted);
  font-size: .78rem;
}
.hero-visual p span { color: var(--coral); }

.boundary-strip {
  display: grid;
  width: min(calc(100% - 3rem), 1192px);
  margin: 0 auto;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--ink);
  background: var(--surface);
}
.boundary-strip p {
  display: grid;
  margin: 0;
  padding: 1rem 1.2rem;
  grid-template-columns: auto 1fr;
  gap: .85rem;
  border-right: 1px solid var(--ink);
  align-items: baseline;
}
.boundary-strip p:last-child { border-right: 0; }
.boundary-strip b { white-space: nowrap; }
.boundary-strip span { color: var(--muted); font-size: .78rem; }

.literacy-paths,
.topics,
.question-studio {
  width: min(100%, 1240px);
  margin: 0 auto;
  padding: 7rem 1.5rem 0;
}
.section-heading,
.studio-head {
  display: flex;
  margin-bottom: 2rem;
  align-items: end;
  justify-content: space-between;
  gap: 3rem;
}
.section-heading h2,
.question-studio h2,
.article h2,
.plain-page h2 {
  margin: .45rem 0 0;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.8rem, 3.3vw, 3.2rem);
  line-height: 1.18;
  letter-spacing: -.025em;
}
.section-heading > p,
.studio-head > div > p {
  max-width: 32rem;
  margin: 0;
  color: var(--muted);
}

.literacy-path-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
}
.literacy-path-card {
  display: flex;
  min-width: 0;
  min-height: 22rem;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  flex-direction: column;
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  background: var(--surface);
}
.literacy-path-card:nth-child(1) { border-top: 8px solid var(--mint); }
.literacy-path-card:nth-child(2) { border-top: 8px solid var(--yellow); }
.literacy-path-card:nth-child(3) { border-top: 8px solid var(--blue); }
.literacy-path-card:nth-child(4) { border-top: 8px solid var(--coral); }
.literacy-path-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.literacy-path-card header span { font: 800 2.3rem/1 "Yu Mincho", serif; }
.literacy-path-card header small { color: var(--muted); font: 800 .7rem/1.3 ui-monospace, monospace; letter-spacing: .08em; }
.literacy-path-card h3 { margin: 1.25rem 0 .7rem; font: 800 clamp(1.45rem, 2.5vw, 2rem)/1.2 "Yu Mincho", serif; }
.literacy-path-card p { margin: 0; color: var(--muted); }
.literacy-path-card strong { margin: auto 0 1rem; padding-top: 1.5rem; font-size: .86rem; }
.literacy-path-card a { display: inline-flex; min-height: 48px; padding: .6rem 0; align-items: center; justify-content: space-between; border-top: 1px solid var(--ink); font-weight: 900; text-decoration: none; }
.literacy-path-card a:hover { text-decoration: underline; }
.editorial-boundary {
  display: flex;
  width: min(calc(100% - 3rem), 1192px);
  margin: 2rem auto 0;
  padding: 1.2rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  border: 1px solid var(--ink);
  background: #e5edf2;
}
.editorial-boundary p { margin: 0; }
.editorial-boundary a { display: inline-flex; min-height: 44px; flex: 0 0 auto; align-items: center; font-weight: 900; }

.filter-row {
  display: flex;
  margin: 0;
  padding: .65rem;
  flex-wrap: wrap;
  gap: .5rem;
  border: 1px solid var(--line);
  background: var(--surface);
}
.filter-row legend {
  width: 100%;
  padding: 0 .25rem .35rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}
.filter-option {
  position: relative;
  display: inline-flex;
  min-height: 48px;
  cursor: pointer;
}
.filter-option input {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  margin: 0;
  border: 0;
  accent-color: var(--ink);
}
.filter-option span {
  display: inline-flex;
  min-height: 48px;
  margin-left: -.45rem;
  padding: .65rem .8rem .65rem .25rem;
  align-items: center;
  gap: .45rem;
  font-size: .85rem;
  font-weight: 800;
}
.filter-option b {
  display: grid;
  min-width: 1.7rem;
  min-height: 1.7rem;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--muted);
  font: 700 .68rem/1 ui-monospace, monospace;
}
.filter-option:has(input:checked) {
  background: #dbeee7;
  outline: 2px solid var(--ink);
  outline-offset: -2px;
}
.filter-result {
  min-height: 1.7rem;
  margin: .75rem 0 1rem;
  color: var(--muted);
  font-size: .8rem;
}

.topic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--ink);
}
.topic-card {
  min-width: 0;
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.topic-card:nth-child(2n) { border-right: 0; }
.topic-card > a {
  display: grid;
  min-height: 285px;
  padding: 1.4rem;
  grid-template-columns: minmax(9rem, .72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: 1.25rem;
  background: var(--surface);
  text-decoration: none;
  transition: background-color .18s ease;
}
.topic-card > a:hover { background: #fff; }
.topic-card > a:hover .topic-link { text-decoration: underline; }
.topic-card-visual {
  display: grid;
  min-height: 210px;
  place-items: center;
  background: var(--topic-color, var(--mint));
}
.topic-card:nth-child(4n + 1) { --topic-color: #9fdac5; }
.topic-card:nth-child(4n + 2) { --topic-color: #f4c975; }
.topic-card:nth-child(4n + 3) { --topic-color: #91bee8; }
.topic-card:nth-child(4n + 4) { --topic-color: #f39b87; }
.topic-visual {
  width: min(75%, 9.5rem);
  color: var(--ink);
  overflow: visible;
}
.topic-visual g {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.topic-visual .accent {
  fill: var(--surface);
  stroke: currentColor;
  stroke-width: 2.8;
}
.topic-card-copy { min-width: 0; }
.topic-meta {
  display: flex;
  align-items: center;
  gap: .65rem;
  color: var(--muted);
  font: 800 .72rem/1.3 ui-monospace, monospace;
  letter-spacing: .06em;
}
.topic-meta b {
  color: var(--coral);
  font-size: 1rem;
}
.topic-card h3 {
  margin: .75rem 0;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.35;
}
.topic-question {
  display: block;
  color: var(--muted);
  font-size: .83rem;
  line-height: 1.6;
}
.topic-link {
  display: inline-block;
  margin-top: 1.25rem;
  font-size: .82rem;
  font-weight: 900;
}
.empty-filter { padding: 2rem; background: var(--surface); }

.question-studio {
  margin-top: 7rem;
  padding-top: 4rem;
  padding-bottom: 7rem;
  border-top: 5px solid var(--ink);
}
.sheet-count {
  display: flex;
  flex: 0 0 auto;
  gap: .5rem;
}
.sheet-count strong {
  display: grid;
  min-width: 6.5rem;
  padding: .7rem;
  grid-template-columns: auto 1fr;
  align-items: end;
  gap: .4rem;
  border: 1px solid var(--ink);
  background: var(--surface);
}
.sheet-count span {
  font: 800 2.2rem/1 "Yu Mincho", serif;
}
.sheet-count small {
  padding-bottom: .2rem;
  color: var(--muted);
  font-size: .72rem;
}
.sheet-paper {
  position: relative;
  min-height: 360px;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  border: 1px solid var(--ink);
  background-color: var(--surface);
  box-shadow: 9px 9px 0 var(--blue);
}
.sheet-paper::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(1rem, 3vw, 2.2rem);
  width: 1px;
  background: #efa28f;
  content: "";
}
.sheet-empty {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 280px;
  place-items: center;
  align-content: center;
  text-align: center;
}
.empty-mark {
  display: grid;
  width: 4.5rem;
  height: 4.5rem;
  place-items: center;
  border: 2px dashed var(--ink);
  border-radius: 50%;
  background: var(--yellow);
  font-size: 2rem;
}
.sheet-empty h3 { margin: 1rem 0 .25rem; font: 800 1.4rem/1.3 "Yu Mincho", serif; }
.sheet-empty p { margin: 0; color: var(--muted); }
.sheet-empty a {
  display: inline-flex;
  min-height: 44px;
  margin-top: .6rem;
  padding: .5rem .75rem;
  align-items: center;
  font-weight: 800;
}
.sheet-content {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 2.5rem;
}
.sheet-topic {
  padding: .8rem 1rem 1.3rem;
  background: rgb(255 253 247 / 92%);
}
.sheet-topic header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: .2rem 1rem;
}
.sheet-topic header > span {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 800;
}
.sheet-topic h3 {
  margin: 0;
  font: 800 1.35rem/1.35 "Yu Mincho", serif;
}
.sheet-topic button {
  min-width: 48px;
  min-height: 44px;
  grid-row: 1 / 3;
  grid-column: 2;
  border: 1px solid var(--line);
  background: white;
  color: var(--muted);
  cursor: pointer;
}
.sheet-topic ol { margin: 1rem 0; padding-left: 1.6rem; }
.sheet-topic li { padding: .25rem 0; font-weight: 700; }
.sheet-topic > a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--muted);
  font-size: .8rem;
}
.sheet-actions {
  display: flex;
  margin-top: 1.5rem;
  flex-wrap: wrap;
  gap: .65rem;
}
.sheet-action,
.save-topic,
.copy-questions {
  min-height: 48px;
  padding: .7rem 1rem;
  border: 2px solid var(--ink);
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.3;
  cursor: pointer;
}
.sheet-action.primary,
.save-topic {
  background: var(--ink);
  color: white;
}
.sheet-action.quiet { margin-left: auto; border-color: var(--line); }
.sheet-action:disabled {
  cursor: not-allowed;
  opacity: .45;
}
.saved-status,
.copy-status {
  min-height: 1.8rem;
  margin: .75rem 0 0;
  color: var(--muted);
  font-size: .85rem;
}

.article,
.plain-page,
.not-found {
  width: min(100%, 1100px);
  margin: 0 auto;
  padding: 3rem 1.5rem 7rem;
}
.breadcrumb {
  display: flex;
  margin-bottom: 2rem;
  align-items: center;
  gap: .35rem;
  color: var(--muted);
  font-size: .78rem;
}
.breadcrumb a {
  display: inline-flex;
  min-height: 44px;
  padding: .45rem .25rem;
  align-items: center;
}
.article-head {
  display: grid;
  padding-bottom: 3rem;
  grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr);
  align-items: center;
  gap: 4rem;
}
.article h1,
.plain-page h1 {
  max-width: 52rem;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
}
.korea-context {
  max-width: 44rem;
  margin: 1.5rem 0 0;
  padding: 1rem 1.2rem;
  border-left: 5px solid var(--coral);
  background: var(--surface);
}
.korea-context b { display: block; margin-bottom: .2rem; font-size: .72rem; letter-spacing: .08em; }
.article-visual {
  padding: 1.5rem;
  background: var(--yellow);
  box-shadow: 7px 7px 0 var(--ink);
}
.topic-visual.large {
  display: block;
  width: 75%;
  max-width: 12rem;
  margin: auto;
}
.article-visual dl {
  display: grid;
  margin: 1.25rem 0 0;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ink);
}
.article-visual dl div {
  padding: .65rem .3rem 0;
  text-align: center;
}
.article-visual dt { font-size: .65rem; line-height: 1.3; }
.article-visual dd { margin: 0; font: 800 1.5rem/1.2 "Yu Mincho", serif; }
.question-panel {
  display: grid;
  padding: clamp(1.5rem, 4vw, 3rem);
  grid-template-columns: .8fr 1.2fr;
  gap: 2rem 4rem;
  border: 2px solid var(--ink);
  background: var(--surface);
  box-shadow: 8px 8px 0 var(--mint);
}
.article > .question-panel { margin-top: 4rem; }
.question-intro p:last-child { color: var(--muted); }
.question-panel ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: questions;
}
.question-panel li {
  position: relative;
  min-height: 4rem;
  padding: .65rem 0 .65rem 3.3rem;
  border-bottom: 1px solid var(--line);
  counter-increment: questions;
  font-weight: 800;
}
.question-panel li::before {
  position: absolute;
  top: .55rem;
  left: 0;
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 50%;
  background: var(--yellow);
  content: counter(questions);
  font: 800 .8rem/1 ui-monospace, monospace;
}
.question-actions {
  display: flex;
  grid-column: 2;
  flex-wrap: wrap;
  gap: .6rem;
}
.save-topic[aria-pressed="true"] {
  background: var(--mint);
  color: var(--ink);
}
.article-layout {
  display: grid;
  margin-top: 5rem;
  grid-template-columns: minmax(0, 1fr) 20rem;
  gap: 5rem;
}
.article-main > section { margin-bottom: 5rem; }
.section-number.warning { color: #b03e2c; }
.fact-list,
.warning-list {
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}
.fact-list li,
.warning-list li {
  display: grid;
  min-height: 4rem;
  padding: 1rem 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 1rem;
  border-bottom: 1px solid var(--line);
}
.warning-list li {
  position: relative;
  display: block;
  padding-left: 2.5rem;
  font-weight: 800;
}
.warning-list li::before {
  position: absolute;
  top: .9rem;
  left: 0;
  display: grid;
  width: 1.7rem;
  height: 1.7rem;
  place-items: center;
  border-radius: 50%;
  background: var(--coral);
  color: white;
  content: "!";
  font-weight: 900;
}
.fact-sources {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .3rem;
}
.fact-sources a {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  padding: .45rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  background: var(--surface);
  font-size: .72rem;
  text-decoration: none;
}
.evidence-card {
  position: sticky;
  top: 1rem;
  align-self: start;
  padding: 1.5rem;
  border-top: 5px solid var(--ink);
  background: #e5edf2;
}
.evidence-card h2 { font-size: 1.7rem; }
.evidence-card dl div {
  display: flex;
  min-height: 44px;
  padding: .6rem 0;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid #b5c1ca;
}
.evidence-card dt { color: var(--muted); }
.evidence-card dd { margin: 0; text-align: right; font-weight: 800; }
.evidence-card ul { padding-left: 1.1rem; }
.evidence-card li { margin-top: 1.25rem; }
.evidence-card li > a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  font-weight: 800;
}
.evidence-card li small,
.evidence-card li span {
  display: block;
  color: var(--muted);
  font-size: .76rem;
}
.evidence-card > p:last-child { color: var(--muted); font-size: .78rem; }
.topic-return { display: flex; margin-top: 2rem; justify-content: space-between; gap: 1rem; }
.topic-return a { display: inline-flex; min-height: 48px; padding: .6rem .8rem; align-items: center; font-weight: 800; }

.korea-guide {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: 4rem 1.5rem 8rem;
}
.guide-intro {
  display: grid;
  padding-bottom: 3.5rem;
  grid-template-columns: minmax(0, 1fr) minmax(17rem, .42fr);
  gap: 1rem 5rem;
  border-bottom: 5px solid var(--ink);
}
.guide-intro .category-label,
.guide-intro h1,
.guide-intro .lead { grid-column: 1; }
.guide-intro h1 { margin: .7rem 0 1rem; font: 800 clamp(3rem, 6.5vw, 6.2rem)/1.02 "Yu Mincho", serif; letter-spacing: -.055em; }
.guide-intro dl { display: grid; grid-row: 1 / 4; grid-column: 2; margin: 0; align-self: end; border-top: 7px solid var(--coral); background: var(--surface); }
.guide-intro dl div { display: flex; min-height: 4.2rem; padding: .8rem 1rem; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.guide-intro dt { color: var(--muted); font-size: .78rem; }
.guide-intro dd { margin: 0; font: 800 2rem/1 "Yu Mincho", serif; }
.guide-index { display: grid; margin: 2rem 0 6rem; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.guide-index a { display: grid; min-height: 12rem; padding: 1.2rem; align-content: start; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--surface); text-decoration: none; }
.guide-index a:hover { background: white; }
.guide-index span { color: var(--coral); font: 800 1.5rem/1 "Yu Mincho", serif; }
.guide-index b { margin-top: 1rem; font-size: 1rem; }
.guide-index small { margin-top: .5rem; color: var(--muted); line-height: 1.5; }
.literacy-chapters { display: grid; gap: 7rem; }
.literacy-chapter { scroll-margin-top: 1rem; }
.literacy-chapter > header { display: grid; padding-bottom: 1.5rem; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1.5rem; border-bottom: 2px solid var(--ink); }
.literacy-chapter > header > span { display: grid; width: 5rem; height: 5rem; place-items: center; border: 2px solid var(--ink); border-radius: 50%; background: var(--yellow); font: 800 1.7rem/1 "Yu Mincho", serif; }
.literacy-chapter:nth-child(2) > header > span { background: var(--mint); }
.literacy-chapter:nth-child(3) > header > span { background: var(--blue); }
.literacy-chapter:nth-child(4) > header > span { background: var(--coral); }
.literacy-chapter h2 { margin: .35rem 0 0; font: 800 clamp(2rem, 4vw, 3.5rem)/1.15 "Yu Mincho", serif; letter-spacing: -.03em; }
.chapter-promise { max-width: 50rem; margin: 1.5rem 0 0; color: var(--muted); font-size: 1.05rem; }
.chapter-outcome { display: grid; max-width: 50rem; margin: 1rem 0 2.5rem; padding: 1rem 1.2rem; grid-template-columns: 8rem 1fr; gap: 1rem; border-left: 5px solid var(--coral); background: var(--surface); }
.chapter-topics,
.chapter-sources { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 2rem; }
.chapter-topics h3,
.chapter-sources h3 { margin: 0; font-size: .82rem; letter-spacing: .06em; }
.chapter-topics ol,
.chapter-sources ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.chapter-topics a { display: grid; min-height: 6rem; padding: 1rem 0; grid-template-columns: 8rem minmax(0, .7fr) minmax(0, 1fr); align-items: start; gap: 1rem; border-bottom: 1px solid var(--line); text-decoration: none; }
.chapter-topics a:hover b { text-decoration: underline; }
.chapter-topics span { color: var(--muted); font-size: .72rem; font-weight: 800; }
.chapter-topics b { line-height: 1.45; }
.chapter-topics small { color: var(--muted); line-height: 1.55; }
.chapter-sources { margin-top: 2.5rem; }
.chapter-sources li { display: flex; min-height: 4rem; padding: .65rem 0; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); }
.chapter-sources a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 800; }
.chapter-sources small { color: var(--muted); white-space: nowrap; }
.guide-handoff { margin-top: 7rem; padding: clamp(1.5rem, 4vw, 3rem); border: 2px solid var(--ink); background: var(--mint); }
.guide-handoff h2 { max-width: 48rem; margin: .5rem 0; font: 800 clamp(2rem, 4vw, 3.4rem)/1.15 "Yu Mincho", serif; }
.guide-handoff p:not(.section-number) { max-width: 48rem; }
.guide-handoff a { display: inline-flex; min-height: 48px; margin-top: 1rem; padding: .7rem 1rem; align-items: center; gap: 2rem; border: 2px solid var(--ink); background: var(--ink); color: white; font-weight: 900; text-decoration: none; }

.plain-page { max-width: 1050px; }
.plain-page > p:not(.section-number) { max-width: 48rem; }
.plain-page > h2 { margin-top: 3rem; font-size: 2rem; }
.policy-grid,
.source-list {
  display: grid;
  margin-top: 3rem;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.policy-grid section,
.source-list section {
  padding: 1.5rem;
  border-top: 5px solid var(--ink);
  background: var(--surface);
}
.policy-grid section:nth-child(2) { border-color: var(--coral); }
.policy-grid section:nth-child(3) { border-color: #4387be; }
.policy-grid h2,
.source-list h2 { font-size: 1.45rem; }
.policy-grid ul { padding-left: 1.2rem; }
.source-list section > a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  font-weight: 800;
}
.source-state {
  display: inline-block;
  padding: .3rem .65rem;
  border: 1px solid var(--ink);
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
}
.source-state.pending { background: var(--yellow); }
.source-state.blocked { background: #ffd2ca; }
.source-state.ready { background: var(--mint); }

.not-found {
  display: grid;
  min-height: 62vh;
  place-items: center;
  align-content: center;
  text-align: center;
}
.not-found-mark {
  display: grid;
  width: 7rem;
  height: 7rem;
  margin-top: 1rem;
  place-items: center;
  border: 3px solid var(--ink);
  border-radius: 50%;
  background: var(--coral);
  font: 900 4rem/1 "Yu Mincho", serif;
  transform: rotate(8deg);
}
.not-found h1 { margin-bottom: .5rem; }
.not-found .primary-action { margin-top: 1rem; }

footer {
  margin-top: auto;
  background: var(--ink);
  color: #e9eef1;
}
.footer-inner {
  display: grid;
  width: min(100%, 1240px);
  margin: 0 auto;
  padding: 3rem 1.5rem;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem 3rem;
}
.footer-inner > div > p:not(.footer-label) { max-width: 48rem; }
.footer-label { color: var(--mint); }
.footer-inner nav { display: flex; flex-wrap: wrap; gap: .25rem; }
.footer-inner nav a {
  display: inline-flex;
  min-height: 44px;
  padding: .5rem .65rem;
  align-items: center;
}
.footer-inner small {
  grid-column: 1 / -1;
  color: #afbcc7;
}

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr 20rem; gap: 2rem; }
  .hero-steps { grid-template-columns: 1fr; }
  .hero-steps li { min-height: 52px; }
  .boundary-strip { grid-template-columns: 1fr; }
  .boundary-strip p { border-right: 0; border-bottom: 1px solid var(--ink); }
  .boundary-strip p:last-child { border-bottom: 0; }
  .topic-card > a { grid-template-columns: 8rem 1fr; }
  .topic-card-visual { min-height: 175px; }
  .article-head { grid-template-columns: 1fr 16rem; gap: 2rem; }
  .article-layout { grid-template-columns: 1fr; gap: 2rem; }
  .evidence-card { position: static; }
  .guide-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chapter-topics a { grid-template-columns: 7rem minmax(0, .65fr) minmax(0, 1fr); }
}

@media (max-width: 680px) {
  .site-header {
    min-height: 0;
    padding: .75rem 1rem;
    flex-wrap: wrap;
    gap: .25rem .75rem;
  }
  .brand { min-height: 48px; }
  .brand-mark { width: 44px; height: 44px; flex-basis: 44px; }
  .site-header nav {
    width: 100%;
    justify-content: space-between;
    border-top: 1px solid var(--line);
  }
  .site-header nav a { padding: .5rem .2rem; font-size: .7rem; }
  .hero {
    padding: 1.35rem 1rem 1.5rem;
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .hero-copy h1 {
    margin: .35rem 0 .55rem;
    font-size: 2.15rem;
  }
  .lead { font-size: .9rem; line-height: 1.55; }
  .hero-steps {
    margin: .85rem 0;
    grid-template-columns: repeat(3, 1fr);
    gap: .25rem;
  }
  .hero-steps li {
    min-height: 0;
    padding: .45rem .2rem .45rem 1.45rem;
  }
  .hero-steps li > span {
    top: .42rem;
    left: 0;
    width: 1.15rem;
    height: 1.15rem;
    font-size: .6rem;
  }
  .hero-steps b { font-size: .73rem; }
  .hero-steps small { display: none; }
  .primary-action { min-height: 48px; width: 100%; }
  .hero-visual {
    display: grid;
    grid-template-columns: 8.5rem 1fr;
    align-items: center;
    gap: .75rem;
  }
  .hero-visual img { max-height: 145px; }
  .hero-visual p { margin: 0; font-size: .68rem; line-height: 1.45; }
  .boundary-strip { width: calc(100% - 2rem); }
  .boundary-strip p { padding: .65rem .8rem; }
  .literacy-paths,
  .topics,
  .question-studio { padding-right: 1rem; padding-left: 1rem; }
  .literacy-paths,
  .topics { padding-top: 4.5rem; }
  .literacy-path-grid { grid-template-columns: 1fr; }
  .literacy-path-card { min-height: 19rem; }
  .editorial-boundary { width: calc(100% - 2rem); flex-direction: column; align-items: flex-start; gap: .5rem; }
  .section-heading,
  .studio-head {
    margin-bottom: 1.5rem;
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }
  .section-heading h2,
  .question-studio h2 { font-size: 2rem; }
  .filter-row { margin-right: -1rem; margin-left: -1rem; border-right: 0; border-left: 0; }
  .filter-option { width: calc(50% - .25rem); }
  .filter-option span { padding-right: .25rem; font-size: .72rem; }
  .topic-grid { grid-template-columns: 1fr; }
  .topic-card,
  .topic-card:nth-child(2n) { border-right: 0; }
  .topic-card > a {
    min-height: 190px;
    padding: 1rem 0;
    grid-template-columns: 7.7rem 1fr;
    gap: 1rem;
  }
  .topic-card-visual { min-height: 154px; }
  .topic-card h3 { margin: .5rem 0; font-size: 1.18rem; }
  .topic-question { font-size: .75rem; line-height: 1.45; }
  .topic-link { margin-top: .65rem; }
  .question-studio { margin-top: 4rem; padding-top: 2.5rem; padding-bottom: 5rem; }
  .sheet-count { width: 100%; }
  .sheet-count strong { min-width: 0; flex: 1; }
  .sheet-paper { min-height: 310px; padding: 1.5rem 1rem 1.5rem 2rem; box-shadow: 6px 6px 0 var(--blue); }
  .sheet-action,
  .sheet-action.quiet { width: 100%; margin-left: 0; }
  .article,
  .plain-page,
  .not-found { padding: 2rem 1rem 5rem; }
  .breadcrumb { margin-bottom: 1rem; }
  .article-head {
    padding-bottom: 2rem;
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .article h1,
  .plain-page h1 { font-size: 2.45rem; }
  .article-visual {
    display: grid;
    padding: 1rem;
    grid-template-columns: 8rem 1fr;
    align-items: center;
  }
  .topic-visual.large { width: 7rem; }
  .article-visual dl { margin: 0; grid-template-columns: 1fr; border-top: 0; }
  .article-visual dl div {
    display: flex;
    min-height: 36px;
    padding: .25rem;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--ink);
  }
  .article-visual dl div:last-child { border-bottom: 0; }
  .article-visual dd { font-size: 1.1rem; }
  .question-panel {
    padding: 1.35rem;
    grid-template-columns: 1fr;
    gap: 1rem;
    box-shadow: 6px 6px 0 var(--mint);
  }
  .question-actions { grid-column: 1; }
  .save-topic,
  .copy-questions { width: 100%; }
  .article-layout { margin-top: 4rem; }
  .article > .question-panel { margin-top: 3rem; }
  .fact-list li { grid-template-columns: 1fr; }
  .topic-return { flex-direction: column; }
  .korea-guide { padding: 2rem 1rem 5rem; }
  .guide-intro { padding-bottom: 2rem; grid-template-columns: 1fr; gap: 1.5rem; }
  .guide-intro .category-label,
  .guide-intro h1,
  .guide-intro .lead,
  .guide-intro dl { grid-row: auto; grid-column: 1; }
  .guide-intro h1 { font-size: 2.75rem; }
  .guide-index { margin-bottom: 4rem; grid-template-columns: 1fr; }
  .guide-index a { min-height: 8rem; }
  .literacy-chapters { gap: 5rem; }
  .literacy-chapter > header { grid-template-columns: 4rem minmax(0, 1fr); gap: 1rem; }
  .literacy-chapter > header > span { width: 3.7rem; height: 3.7rem; }
  .literacy-chapter h2 { font-size: 2rem; }
  .chapter-outcome { grid-template-columns: 1fr; gap: .25rem; }
  .chapter-topics,
  .chapter-sources { grid-template-columns: 1fr; gap: .7rem; }
  .chapter-topics a { grid-template-columns: 1fr; gap: .25rem; }
  .chapter-sources li { align-items: flex-start; flex-direction: column; gap: 0; }
  .chapter-sources small { white-space: normal; }
  .policy-grid,
  .source-list { grid-template-columns: 1fr; }
  .footer-inner { padding: 2.5rem 1rem; grid-template-columns: 1fr; }
  .footer-inner small { grid-column: 1; }
}

@media (max-width: 420px) {
  .article-visual {
    grid-template-columns: minmax(0, 1fr);
  }
  .topic-visual.large {
    width: min(7rem, 100%);
  }
  .article-visual dl {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 360px) {
  .brand { width: 100%; }
  .brand > span:last-child { min-width: 0; }
  .brand small { font-size: .66rem; }
  .hero-visual { grid-template-columns: 1fr; }
  .hero-visual img { width: min(100%, 11.5rem); margin: auto; }
  .topic-card > a { grid-template-columns: 32% minmax(0, 1fr); gap: .5rem; }
  .topic-card-visual { min-height: 145px; }
  .topic-card h3 { font-size: 1.08rem; }
  .filter-option { width: 100%; }
}

.nav-board {
  border: 1px solid var(--ink);
  background: var(--yellow);
}

.board-invite {
  display: grid;
  width: min(calc(100% - 3rem), 1192px);
  margin: 1.5rem auto 0;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  grid-template-columns: minmax(0, 1.3fr) auto;
  align-items: center;
  gap: 1.5rem 3rem;
  border: 2px solid var(--ink);
  background: var(--yellow);
  box-shadow: 8px 8px 0 var(--ink);
}
.board-invite h2 { margin: .35rem 0 .5rem; font: 800 clamp(1.55rem, 3vw, 2.6rem)/1.15 "Yu Mincho", serif; }
.board-invite p { margin-bottom: 0; }
.board-invite dl { display: grid; margin: 0; grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.board-invite dl div { display: flex; padding: .8rem 1rem 0; justify-content: space-between; gap: 1rem; border-right: 1px solid var(--ink); }
.board-invite dl div:last-child { border-right: 0; }
.board-invite dt { font-size: .75rem; font-weight: 800; }
.board-invite dd { margin: 0; font-weight: 900; }

.decision-page:has(> .quote-checker) { display: flex; flex-direction: column; }
.decision-page:has(> .quote-checker) > .decision-hero { order: 0; }
.decision-page:has(> .quote-checker) > .quote-checker { order: 1; margin-top: 1rem; }
.decision-page:has(> .quote-checker) > .price-table-section { order: 2; }
.decision-page:has(> .quote-checker) > .data-note { order: 3; }

.plan-board { width: min(100%, 1240px); margin: 0 auto; padding: 0 1.5rem 8rem; }
.plan-board .decision-hero { width: 100%; padding-inline: 0; }
.board-score { display: grid; min-width: 15rem; padding: 1.3rem; grid-template-columns: auto 1fr; align-items: baseline; border: 2px solid var(--ink); background: var(--yellow); box-shadow: 7px 7px 0 var(--ink); }
.board-score strong { font: 900 4.5rem/1 ui-monospace, monospace; }
.board-score span { font: 800 1.2rem/1 ui-monospace, monospace; }
.board-score small { margin-top: .6rem; grid-column: 1 / -1; color: #3d4650; }
.board-form { display: grid; gap: 5rem; }
.board-basics,
.board-quote { display: grid; padding: 2rem; grid-template-columns: 1.05fr 1fr 1fr; gap: 1.25rem; border: 1px solid var(--ink); background: var(--surface); }
.board-basics h2,
.board-quote h2,
.candidate-section h2,
.board-share h2 { margin: .35rem 0 .6rem; font: 800 clamp(1.6rem, 3vw, 2.7rem)/1.15 "Yu Mincho", serif; }
.board-basics > label,
.board-quote > fieldset { display: grid; align-content: start; gap: .45rem; font-weight: 800; }
.board-basics select { width: 100%; min-width: 0; min-height: 52px; padding: .65rem; border: 1px solid var(--ink); background: white; color: var(--ink); font: inherit; }
.board-links { display: flex; grid-column: 2 / -1; flex-wrap: wrap; gap: .75rem; }
.board-links a,
.text-action { display: inline-flex; min-height: 44px; align-items: center; font-weight: 900; }
.board-quote > fieldset { margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 0; }
.board-quote > fieldset legend { margin-bottom: .5rem; font-weight: 900; }
.board-quote > fieldset label,
.candidate-card label { display: flex; min-height: 48px; align-items: center; gap: .65rem; cursor: pointer; }
.board-quote input,
.candidate-card input { width: 44px; height: 44px; flex: 0 0 44px; margin: 0; accent-color: var(--ink); }
.candidate-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.candidate-card { min-width: 0; margin: 0; padding: 1.25rem; border: 1px solid var(--ink); background: var(--surface); }
.candidate-card legend { display: flex; width: calc(100% + .4rem); padding: 0 .2rem; align-items: center; justify-content: space-between; gap: 1rem; font: 900 1.25rem/1.2 "Yu Mincho", serif; }
.candidate-card legend b { padding: .3rem .5rem; background: var(--mint); font: 800 .72rem/1 ui-monospace, monospace; }
.candidate-card > p { min-height: 3.5rem; color: var(--muted); font-size: .78rem; }
.candidate-card label { padding: .45rem 0; border-top: 1px solid var(--line); font-size: .86rem; }
.official-verify { display: grid; margin-top: 1rem; padding: 1.25rem; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1rem; border: 1px solid var(--ink); background: #e5edf2; }
.official-verify p { margin: .25rem 0 0; color: var(--muted); font-size: .82rem; }
.official-verify a { display: inline-flex; min-height: 48px; padding: .65rem .85rem; align-items: center; border: 1px solid var(--ink); background: white; font-weight: 900; text-decoration: none; }
.board-share { display: grid; padding: 2rem; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 2rem; border: 2px solid var(--ink); background: var(--mint); box-shadow: 8px 8px 0 var(--ink); }
.board-share output { display: block; min-height: 13rem; padding: 1.25rem; white-space: pre-wrap; border: 1px solid var(--ink); background: white; font: 700 .82rem/1.7 ui-monospace, monospace; }
.share-actions { display: flex; grid-column: 2; flex-wrap: wrap; gap: .75rem; }
.share-actions button,
.board-reset button { min-height: 48px; padding: .65rem .9rem; border: 1px solid var(--ink); background: white; color: var(--ink); font: inherit; font-weight: 900; cursor: pointer; }
.share-actions .primary-action { background: var(--ink); color: white; }
.board-share [data-board-status] { min-height: 1.5rem; margin: 0; grid-column: 1 / -1; font-size: .8rem; font-weight: 800; }
.board-reset { display: flex; margin-top: -3rem; align-items: center; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .78rem; }

@media (max-width: 760px) {
  .board-invite { width: calc(100% - 2rem); grid-template-columns: 1fr; }
  .board-invite .primary-action { width: 100%; }
  .board-invite dl { grid-template-columns: 1fr; }
  .board-invite dl div { padding-inline: 0; border-right: 0; }
  .plan-board { padding-inline: 1rem; }
  .board-score { min-width: 0; }
  .board-basics,
  .board-quote,
  .candidate-grid,
  .board-share,
  .official-verify { grid-template-columns: minmax(0, 1fr); }
  .board-basics,
  .board-quote,
  .board-share { padding: 1.25rem; }
  .board-links,
  .share-actions,
  .board-share [data-board-status] { grid-column: 1; }
  .board-quote > fieldset { grid-template-columns: 1fr 1fr; }
  .share-actions button { width: 100%; }
  .board-reset { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .topic-card > a { transition: none; }
}

@media print {
  body { background: white; color: black; }
  .site-header,
  .hero,
  .boundary-strip,
  .topics,
  .studio-head,
  .sheet-actions,
  .saved-status,
  footer { display: none !important; }
  .question-studio { margin: 0; padding: 0; border: 0; }
  .sheet-paper { min-height: 0; padding: 0; border: 0; box-shadow: none; background: white; }
  .sheet-paper::before,
  .sheet-empty,
  .sheet-topic button { display: none !important; }
  .sheet-topic { break-inside: avoid; background: white; }
}

@media screen and (max-width: 760px) {
  .journey-checklist,
  .preflight-grid,
  .official-help,
  .region-explorer,
  .quote-checker,
  .procedure-detail-head,
  .decision-hero { grid-template-columns: minmax(0, 1fr); }
  .decision-page > section { min-width: 0; }
}
