/* ==========================================================================
   Reading pages: single post (single.php) and fixed pages (page.php)
   Layout, reading bar, table of contents, body typography and the content parts
   produced by tools/normalize.mjs.
   ========================================================================== */

/* ---------- layout ----------
   phones/tablets: one column, the contents list sits between the intro and the body.
   1100px+: contents list in a sticky rail on the left.
   1480px+: the theme's six layers in a second rail on the right. */
.art{display:grid;grid-template-columns:[full-start] minmax(var(--m),1fr) [text-start] minmax(0,var(--measure)) [text-end] minmax(var(--m),1fr) [full-end];padding-bottom:clamp(96px,10vw,140px)}
.art>*{grid-column:text;min-width:0}
.art:not([data-layer]){--lc:var(--ul)}
.ts-rail{display:none}
@media (min-width:1100px){
  .art{grid-template-columns:[full-start] minmax(var(--m),1fr) [rail-start] var(--rail) [rail-end] 64px [text-start] minmax(0,var(--measure)) [text-end] 0 [aside-start] 0 [aside-end] minmax(var(--m),1fr) [full-end]}
  .art__head{grid-column:text-start / aside-end}
  .art__head,.art__intro{grid-row:auto}
  .toc{grid-column:rail;grid-row:2 / span 2;align-self:start;position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .art__intro{grid-row:2}
  .art__body{grid-row:3}
  .art__foot{grid-row:4}
}
@media (min-width:1480px){
  .art{grid-template-columns:[full-start] minmax(var(--m),1fr) [rail-start] var(--rail) [rail-end] 64px [text-start] minmax(0,var(--measure)) [text-end] 64px [aside-start] var(--rail) [aside-end] minmax(var(--m),1fr) [full-end]}
  .ts-rail{display:block;grid-column:aside;grid-row:2 / span 2;align-self:start;position:sticky;top:76px}
  .art__foot .ts-foot{display:none}
}

/* ---------- reading bar: appears once the title has scrolled away ---------- */
.readbar{position:fixed;z-index:40;left:0;right:0;top:0;height:52px;background:var(--paper);border-bottom:1px solid var(--hair);transform:translateY(-110%);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.readbar.is-shown{transform:none}
.readbar__in{display:flex;align-items:center;gap:14px;height:100%;max-width:var(--page-max);margin:0 auto;padding:0 calc(var(--m) - 6px) 0 var(--m)}
.readbar__logo{display:none;font-size:16px;font-weight:900;white-space:nowrap}
@media (min-width:700px){.readbar__logo{display:block;padding-right:14px;border-right:1px solid var(--hair)}}
.readbar__now{display:flex;align-items:baseline;gap:10px;flex:1;min-width:0;font-size:16px;font-weight:700;line-height:1.3;white-space:nowrap}
.readbar__no{flex:none;font-family:var(--lat);font-stretch:75%;font-weight:400;font-size:24px;line-height:1;color:var(--lc);font-feature-settings:normal}
.readbar__t{overflow:hidden;text-overflow:ellipsis}
.readbar__toc{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:2px solid var(--ink);font-size:16px;font-weight:700}
@media (min-width:1100px){.readbar__toc{display:none}}
.readbar__bar{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--lc);transform-origin:0 50%;transform:scaleX(var(--p,0))}

/* ---------- header ---------- */
.art__head{padding:20px 0 0}
.art__kicker{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:clamp(24px,4vw,48px);font-size:16px;font-weight:700;line-height:1.5}
.art__kicker .layer{color:var(--ink)}
.art__kicker .layer::before{width:.9em;height:.9em}
.art__kicker a{color:var(--ink-2)}
.art__kicker a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:.3em}
.art__title{display:flex;flex-direction:column;gap:14px;margin-top:14px;font-weight:900;word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
@supports (word-break:auto-phrase){.art__title{word-break:auto-phrase}}
.art__main{font-size:clamp(28px,2.6vw + 16px,50px);line-height:1.32;letter-spacing:-.025em}
.art__sub{font-size:clamp(18px,.8vw + 14px,24px);font-weight:700;line-height:1.55;letter-spacing:-.005em;color:var(--ink-2)}
.art__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;margin-top:26px;padding-top:16px;border-top:1px solid var(--hair);font-size:16px;line-height:1.5;color:var(--ink-2)}
.art__meta time{color:var(--ink);font-weight:700;font-feature-settings:"tnum" 1}
.art__meta a{color:var(--ink);font-weight:700}
.art__meta a:hover{text-decoration:underline;text-underline-offset:.3em}
.art__pr{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:12px;font-size:16px;line-height:1.7;color:var(--ink-2)}
.art__pr b{flex:none;padding:0 .5em;border:1px solid var(--ink-2);font-weight:700;color:var(--ink);line-height:1.6}
.art__pr a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--ul);text-underline-offset:.3em}

/* theme strip in the header: where this article sits among the theme's six layers */
.tstrip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:22px;padding:14px 16px;background:var(--paper-2)}
.tstrip__name{font-size:16px;font-weight:700;line-height:1.4}
.tstrip__name span{color:var(--ink-2);font-weight:500}
.tstrip__cells{display:flex;gap:6px}
.tstrip__cells .cell{width:24px;height:24px}
.tstrip__cells .cell.is-current{outline-width:2px;outline-offset:2px}
.tstrip__pos{font-size:16px;line-height:1.4;color:var(--ink-2)}
.tstrip__pos b{color:var(--ink);font-weight:700}
@media (min-width:1480px){.tstrip{display:none}}

/* ---------- table of contents ---------- */
.toc{margin:40px 0 0;padding-top:14px;border-top:2px solid var(--ink)}
.toc__h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:18px;font-weight:900;line-height:1.4}
.toc__h span{font-size:16px;font-weight:500;color:var(--ink-2)}
.toc ol{margin-top:8px}
.toc li{border-top:1px solid var(--hair)}
.toc li:first-child{border-top:0}
.toc a{position:relative;display:grid;grid-template-columns:2.1em minmax(0,1fr);column-gap:10px;align-items:baseline;padding:10px 0 11px;font-size:16px;font-weight:500;line-height:1.6}
.toc__t{word-break:keep-all;overflow-wrap:anywhere}
.toc__no{font-family:var(--lat);font-stretch:75%;font-weight:400;font-size:22px;line-height:1;color:var(--ink-2);font-feature-settings:normal}
.toc a:hover .toc__t{text-decoration:underline;text-decoration-color:var(--ul);text-underline-offset:.25em}
.toc a[aria-current="true"]{font-weight:700}
.toc a[aria-current="true"] .toc__no{color:var(--lc)}
.toc a[aria-current="true"]::before{content:"";position:absolute;left:-14px;top:12px;bottom:12px;width:4px;background:var(--lc)}
.toc__end{margin-top:6px;padding-top:12px;border-top:1px solid var(--hair)}
.toc__end a{grid-template-columns:minmax(0,1fr);font-weight:700}
@media (max-width:1099px){
  .toc{padding:14px 18px 8px;border:2px solid var(--ink)}
  .toc a[aria-current="true"]::before{display:none}
}

/* sheet with the same list, opened from the reading bar below 1100px */
.tocsheet{width:100%;max-width:none;max-height:min(80vh,640px);margin:auto 0 0;padding:0;border:0;border-top:2px solid var(--ink);background:var(--paper);color:var(--ink);overscroll-behavior:contain}
.tocsheet::backdrop{background:rgba(15,14,36,.5)}
.tocsheet__in{max-width:var(--measure);margin:0 auto;padding:6px var(--m) calc(20px + env(safe-area-inset-bottom))}
.tocsheet__bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:8px 0;background:var(--paper)}
.tocsheet__bar p{font-size:18px;font-weight:900}
.tocsheet__close{min-height:44px;padding:0 14px;border:2px solid var(--ink);font-weight:700}
.tocsheet .toc{margin:0;padding:0;border:0}
.tocsheet .toc__h{display:none}
.motion .tocsheet[open]{animation:sheet-in .3s cubic-bezier(.2,.8,.2,1)}
@keyframes sheet-in{from{translate:0 40px}}

/* ==========================================================================
   Body text
   Japanese long-form: 16px / 1.95 on phones (about 20 characters at 375px),
   17px from 600px and 18px / 2 from 1024px (about 42 characters per line); proportional kerning only in headings, never in the text.
   ========================================================================== */
.prose{font-size:16px;font-weight:400;line-height:1.95;letter-spacing:.03em;font-feature-settings:normal;line-break:strict;overflow-wrap:anywhere;hanging-punctuation:allow-end;text-wrap:pretty}
@supports (text-autospace:normal){.prose{text-autospace:normal}}
@media (min-width:600px){.prose{font-size:17px}}
@media (min-width:1024px){.prose{font-size:18px;line-height:2}}
.prose>*+*,.prose section>*+*{margin-top:1.2em}
.prose b,.prose strong{font-weight:700}
.prose small{font-size:inherit;color:var(--ink-2)}
.prose a{text-decoration:underline;text-decoration-color:var(--ul);text-decoration-thickness:1px;text-underline-offset:.32em}
.prose a:hover{text-decoration-thickness:2px}
.prose a.ext::after{content:"\2060\2009↗";font-size:.82em;color:var(--ink-2)} /* word joiner: the arrow never starts a line on its own */
.prose code{padding:.1em .35em;background:var(--paper-2);font-family:inherit;font-size:1em}
.prose hr{height:0;margin:28px 0;border:0;border-top:1px solid var(--hair)}

/* intro */
.art__intro,.art__head+.art__body{margin-top:clamp(32px,4vw,48px)}
.lede{font-size:clamp(18px,.5vw + 16px,21px);font-weight:500;line-height:1.9;letter-spacing:.02em}
.judge{display:flex;flex-direction:column;gap:4px;padding:16px 0 16px 20px;border-left:6px solid var(--lc)}
.judge__k{font-size:16px;font-weight:900;letter-spacing:.04em}
.scope{padding:18px 22px 20px;background:var(--paper-2)}
.scope__k{margin-bottom:6px;font-size:16px;font-weight:700;color:var(--ink-2);letter-spacing:.04em}
.scope p:not(.scope__k){font-size:16px;line-height:1.9}
.related{padding:14px 18px 16px;border:1px solid var(--hair);font-size:16px;line-height:1.9}
.related__k{display:inline-block;margin-right:.7em;padding:0 .5em;background:var(--ink);color:var(--paper);font-weight:700;line-height:1.6;letter-spacing:.04em}

/* headings */
.prose .h2{display:grid;grid-template-columns:minmax(0,1fr);row-gap:12px;margin-top:clamp(72px,7vw,104px);padding-top:20px;border-top:2px solid var(--ink);font-feature-settings:"palt" 1;letter-spacing:-.01em}
.prose .h2+*{margin-top:28px}
.h2__no{display:flex;align-items:flex-end;gap:8px;font-family:var(--lat);font-stretch:75%;font-weight:400;font-size:clamp(44px,3vw + 30px,58px);line-height:.78;color:var(--lc);font-feature-settings:normal;letter-spacing:.01em}
.h2__p{font-family:var(--jp);font-size:16px;font-weight:900;line-height:1;color:var(--ink);letter-spacing:.06em;padding-bottom:.08em}
.h2__t{font-size:clamp(23px,1vw + 18px,30px);font-weight:900;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
@supports (word-break:auto-phrase){.h2__t{word-break:auto-phrase}}
@media (min-width:600px){
  .prose .h2{grid-template-columns:auto minmax(0,1fr);column-gap:22px;align-items:baseline}
  .prose .h2--plain{grid-template-columns:minmax(0,1fr)}
}
.prose h3{position:relative;margin-top:56px;word-break:keep-all;overflow-wrap:anywhere;font-size:clamp(19px,.4vw + 17px,21px);font-weight:700;line-height:1.6;letter-spacing:.01em;font-feature-settings:"palt" 1}
.prose h3:not(.qa__q):not(.cta__t){padding-left:1.1em}
.prose h3:not(.qa__q):not(.cta__t)::before{content:"";position:absolute;left:0;top:.56em;width:.5em;height:.5em;background:var(--lc)}
.prose h3+*{margin-top:14px}
.prose h4{margin-top:36px;font-size:18px;font-weight:700}

/* lists */
.prose ul,.prose ol{padding:0}
.prose li{position:relative;padding-left:1.4em}
.prose li+li{margin-top:.45em}
.prose ul>li::before{content:"";position:absolute;left:.25em;top:.8em;width:.38em;height:.38em;background:var(--lc)}
.prose ol{counter-reset:li}
.prose ol>li{counter-increment:li;padding-left:2em}
.prose ol>li::before{content:counter(li);position:absolute;left:0;top:-.08em;width:1.2em;text-align:right;font-family:var(--lat);font-stretch:75%;font-weight:400;font-size:1.45em;line-height:1.4;color:var(--lc);font-feature-settings:normal}
.prose li>ul,.prose li>ol{margin-top:.45em}

/* notes under tables and figures */
.note{padding-left:14px;border-left:2px solid var(--hair);font-size:16px;line-height:1.85;color:var(--ink-2)}
.tbl+.note,.fig+.note,.cards+.note,.formula+.note{margin-top:14px}
.note__date{color:var(--ink);font-weight:700;font-feature-settings:"tnum" 1}

/* tables */
.tbl{margin-top:32px;overflow-x:auto}
.tbl table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.75;letter-spacing:.02em;overflow-wrap:break-word}
.tbl th,.tbl td{padding:12px 14px 13px;text-align:left;vertical-align:top;border-bottom:1px solid var(--hair)}
.tbl thead th{padding-top:6px;vertical-align:bottom;font-weight:700;border-bottom:2px solid var(--ink);font-feature-settings:"palt" 1}
.tbl tbody tr:nth-child(even){background:var(--paper-2)}
.tbl td{overflow-wrap:anywhere}
/* headers and row names break only at spaces and the phrase points (<wbr>) tools/normalize.mjs adds */
.tbl thead th,.tbl--rowhead tbody td:first-child{word-break:keep-all;overflow-wrap:break-word}
.tbl--rowhead tbody td:first-child{font-weight:700}
.tbl .num{text-align:right;font-feature-settings:"tnum" 1}
.tbl .c{text-align:center}
.tbl figcaption{margin-top:10px;font-size:16px;color:var(--ink-2)}
.tbl small{display:inline-block;margin-top:2px}
@media (max-width:639px){
  .tbl th,.tbl td{padding:10px 10px 11px}
  .tbl th:first-child,.tbl td:first-child{padding-left:8px}
  /* four or more columns: one card per row, each value labelled with its column */
  .tbl[data-stack] thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .tbl[data-stack] table,.tbl[data-stack] tbody,.tbl[data-stack] tr,.tbl[data-stack] td{display:block}
  .tbl[data-stack] tr{padding:14px 0 6px;border-top:2px solid var(--ink)}
  .tbl[data-stack] tbody tr:nth-child(even){background:none}
  .tbl[data-stack] td{display:grid;grid-template-columns:8em minmax(0,1fr);column-gap:14px;padding:9px 0 10px;border:0;border-top:1px solid var(--hair);text-align:left}
  .tbl[data-stack] td::before{content:attr(data-label);font-weight:700;color:var(--ink-2);line-height:1.6}
  .tbl[data-stack] td:first-child{display:block;padding:0 0 10px;border-top:0;font-size:18px;font-weight:700;line-height:1.55}
  .tbl[data-stack] td:first-child::before{content:none}
  .tbl[data-stack] td:empty{display:none}
  /* column names longer than 8 characters sit above the value instead of beside it */
  .tbl[data-stack] td[data-long]{display:block}
  .tbl[data-stack] td[data-long]::before{display:block;margin-bottom:2px}
}

/* figures */
.fig{margin-top:36px}
.fig img{display:block;width:100%;height:auto;background:#fff;border:1px solid var(--hair)}
.fig figcaption{margin-top:12px;font-size:16px;line-height:1.75;color:var(--ink-2)}
.fig__no{margin-right:.8em;font-weight:700;color:var(--ink)}
:root[data-theme="dark"] .prose img{filter:brightness(.88)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .prose img{filter:brightness(.88)}}

/* card grid (price examples, steps, side-by-side images) */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px}
.cards:has(.card__t),.cards:has(.card--fig){grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.card{display:block;container-type:inline-size;padding:16px 18px 18px;border-top:6px solid var(--lc);background:var(--paper-2);font-size:16px;line-height:1.8}
.card__k{color:var(--ink-2)}
.card__v{margin:2px 0 8px;font-size:24px;font-size:min(30px,20cqi);white-space:nowrap;font-weight:900;line-height:1.25;letter-spacing:-.01em;font-feature-settings:"tnum" 1,"palt" 1}
.card__note{margin-top:6px;color:var(--ink-2)}
.card__t{font-size:17px;font-weight:700;line-height:1.6}
.card p+p,.card__t+p{margin-top:6px}
.card--fig{padding:0;border:0;background:none}
.card--fig img{display:block;width:100%;height:auto;border:1px solid var(--hair)}
.card--fig figcaption{margin-top:10px;font-size:16px;color:var(--ink-2)}
a.card{text-decoration:none;border:2px solid var(--ink);border-top-width:6px;border-top-color:var(--lc);background:none}

/* boxes */
.box{padding:20px 22px 22px;border:2px solid var(--ink)}
.box__t{margin-bottom:8px;font-size:17px;font-weight:900}
.box>*+*{margin-top:10px}
.box li{font-size:16px;line-height:1.85}

/* formula / flow */
.formula{padding:16px 22px 18px;background:var(--paper-2);border-left:6px solid var(--ink)}
.formula__k{font-size:16px;font-weight:700;color:var(--ink-2);letter-spacing:.06em}
.formula__v{margin-top:4px;word-break:keep-all;font-size:clamp(17px,.4vw + 16px,19px);font-weight:700;line-height:1.85;letter-spacing:.02em;font-feature-settings:"tnum" 1}
.formula__d{margin-top:8px;font-size:16px;line-height:1.85;color:var(--ink-2)}

/* sample sentence */
.sample{margin-top:32px}
.sample__k{display:inline-block;padding:2px 12px;background:var(--ink);color:var(--paper);font-size:16px;font-weight:700;line-height:1.6;letter-spacing:.06em}
.sample blockquote{margin:0;padding:16px 20px 18px;border:2px solid var(--ink)}
.sample blockquote p+p{margin-top:.6em}

/* template to fill in */
.memo{margin-top:32px;border:2px solid var(--ink)}
.memo__k{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 6px 6px 16px;border-bottom:2px solid var(--ink);font-size:16px;font-weight:700;line-height:1.5}
.memo__copy{min-height:40px;padding:0 16px;background:var(--ink);color:var(--paper);font-size:16px;font-weight:700}
.memo__copy[data-done]{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.memo pre{margin:0;padding:0 18px 4px;overflow-x:auto;font-family:var(--jp);font-size:16px;font-weight:500;line-height:40px;letter-spacing:.02em;white-space:pre-wrap;background:repeating-linear-gradient(transparent 0 39px,var(--hair) 39px 40px) content-box}

/* next step and ad boxes */
.cta{margin-top:48px;padding:18px 22px 24px;border:2px solid var(--ink);border-top:8px solid var(--lc)}
.cta__k{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:16px;font-weight:700;line-height:1.5;color:var(--ink-2);letter-spacing:.04em}
.cta__k .layer{color:var(--ink)}
.cta__t,.prose .cta__t{margin-top:6px;word-break:keep-all;overflow-wrap:anywhere;font-size:clamp(19px,.4vw + 17px,21px);font-weight:900;line-height:1.55;letter-spacing:0;font-feature-settings:"palt" 1}
.cta>*+*{margin-top:10px}
.cta p{font-size:16px;line-height:1.85}
.cta .cta__k+.cta__t{margin-top:6px}
.cta__note{color:var(--ink-2)}
.cta--ad{border:1px solid var(--ink-2);background:var(--paper-2)}
.cta--ad .cta__k span{padding:0 .5em;border:1px solid var(--ink-2);color:var(--ink);letter-spacing:.1em}
.cta hr{margin:18px 0}

.btn{display:inline-flex;align-items:center;gap:.7em;min-height:52px;padding:12px 22px;background:var(--ink);color:var(--paper);font-size:16px;font-weight:700;line-height:1.5;text-decoration:none!important;letter-spacing:.02em}
.btn::after{content:"→";flex:none;transition:translate .25s cubic-bezier(.2,.8,.2,1)}
.btn:hover::after{translate:4px 0}
.btn--ad::after{content:"↗"}
.btn--ad:hover::after{translate:2px -2px}
.btn--dl::after{content:"↓"}
.btn--dl:hover::after{translate:0 3px}
.btns{display:flex;flex-wrap:wrap;gap:10px}

/* download */
.dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 18px;align-items:start;padding:20px 22px 22px;border:2px solid var(--ink)}
.dl__x{grid-row:1 / span 2;padding:.22em .36em .12em;border:2px solid currentColor;font-family:var(--lat);font-stretch:75%;font-weight:400;font-size:24px;line-height:1;letter-spacing:.04em;font-feature-settings:normal}
.dl__note{grid-column:2;font-size:16px;line-height:1.85;color:var(--ink-2)}
@media (max-width:479px){.dl{grid-template-columns:minmax(0,1fr)}.dl__x{grid-row:auto;justify-self:start}.dl__note{grid-column:1}}

/* summary: the one ink block in the text */
.summary{margin-top:clamp(72px,7vw,104px);padding:26px 24px 30px;background:var(--ink);color:var(--paper)}
.summary .h2{margin-top:0;padding-top:0;border-top:0}
.summary .h2__t{font-size:clamp(21px,.6vw + 18px,24px)}
.summary .h2+*{margin-top:14px}
.summary p{font-weight:500}
.summary a{text-decoration-color:currentColor}
.summary ul>li::before{background:var(--paper)}

/* sources */
.refs{padding-top:14px;border-top:1px solid var(--hair);font-size:16px;line-height:1.85}
section.refs{margin-top:64px}
section.refs .h2{margin-top:0;padding-top:0;border-top:0}
section.refs .h2__t{font-size:20px}
.refs__k{font-weight:900;letter-spacing:.06em}
.refs__k+p{margin-top:4px}
.refs-list li{padding-left:1.2em}
.refs-list li+li{margin-top:.3em}

/* FAQ */
.faq .qa{margin-top:0;padding:22px 0 24px;border-top:1px solid var(--hair)}
.faq .h2+.qa{margin-top:20px;border-top:0}
.prose .qa__q{margin:0;padding-left:2em;font-size:clamp(18px,.3vw + 17px,20px)}
.qa__q::before{content:"Q";position:absolute;left:0;top:-.12em;font-family:var(--lat);font-stretch:75%;font-weight:400;font-size:1.6em;line-height:1.2;color:var(--lc)}
.qa>p{margin-top:8px;padding-left:calc(2em * 19 / 17)}

/* link lists (link + one-line description) */
.links li{padding:14px 0 16px!important;border-top:1px solid var(--hair)}
.links li::before{content:none!important}
.links li+li{margin-top:0}
.links__t{display:block;font-weight:700;text-decoration:none!important}
.links__t:hover{text-decoration:underline!important;text-decoration-color:var(--ul)!important}
.links__d{display:block;margin-top:2px;font-size:16px;line-height:1.8;color:var(--ink-2)}

/* ---------- article footer ---------- */
.art__foot{margin-top:clamp(80px,8vw,120px);display:flex;flex-direction:column;gap:clamp(56px,6vw,80px)}
.nr__lead{margin:-6px 0 16px;font-size:16px;line-height:1.85;color:var(--ink-2)}
.nr{border-top:2px solid var(--ink)}
.nr li{border-bottom:1px solid var(--hair)}
.nr a{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:18px 0 20px 18px;border-left:6px solid var(--lc);margin:12px 0}
.nr__k{font-size:16px;line-height:1.4;color:var(--ink-2)}
.nr__k .layer{color:var(--ink);font-weight:700}
.nr__t{font-size:clamp(18px,.4vw + 16px,20px);font-weight:700;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
.nr__s{font-size:16px;line-height:1.7;color:var(--ink-2)}
.nr a:hover .nr__t{text-decoration:underline;text-decoration-color:var(--lc);text-decoration-thickness:2px;text-underline-offset:.2em}

/* the theme's six layers (footer on narrow screens, right rail from 1480px) */
.ts{border-top:2px solid var(--ink)}
.ts li{border-bottom:1px solid var(--hair)}
.ts a,.ts__here,.ts__none{display:grid;grid-template-columns:2em minmax(0,1fr);column-gap:12px;row-gap:2px;padding:14px 0 15px}
.ts__n{grid-row:span 2;display:grid;place-items:center;width:1.6em;height:1.6em;background:var(--lc);color:var(--paper);font-family:var(--lat);font-stretch:75%;font-size:22px;line-height:1;font-feature-settings:normal;padding-top:.1em}
.ts__k{font-size:16px;line-height:1.4;color:var(--ink-2)}
.ts__t{font-size:16px;font-weight:700;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}
.ts a:hover .ts__t{text-decoration:underline;text-decoration-color:var(--lc);text-decoration-thickness:2px;text-underline-offset:.2em}
.ts__here{position:relative}
.ts__here::after{content:"";position:absolute;inset:6px -10px;border:2px solid var(--ink);pointer-events:none}
.ts__here .ts__k b{color:var(--ink);font-weight:700}
.ts__none .ts__n{background:none;color:var(--ink-2);box-shadow:inset 0 0 0 2px var(--ink-2)}
.ts__none .ts__t{font-weight:500;color:var(--ink-2)}
.ts-rail .subh{margin-bottom:12px}
.ts-rail .subh__t{font-size:18px}
.ts-rail .ts a,.ts-rail .ts__here,.ts-rail .ts__none{padding:10px 0 11px}
.ts-rail .ts__t{font-size:16px;line-height:1.55}

.art__fix{padding-top:18px;border-top:1px solid var(--hair);font-size:16px;line-height:1.85;color:var(--ink-2)}
.art__fix a{color:var(--ink);font-weight:700;text-decoration:underline;text-decoration-color:var(--ul);text-underline-offset:.3em}

/* sibling pages under fixed pages */
.sibs{display:grid;grid-template-columns:minmax(0,1fr);border-top:2px solid var(--ink)}
@media (min-width:600px){.sibs{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gut)}}
.sibs a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:12px 0;border-bottom:1px solid var(--hair);font-size:16px;font-weight:700}
.sibs a::after{content:"→";transition:translate .25s cubic-bezier(.2,.8,.2,1)}
.sibs a:hover::after{translate:4px 0}
.sibs a[aria-current]{color:var(--ink-2)}
.sibs a[aria-current]::after{content:"表示中";font-size:16px;font-weight:500}

/* ---------- fixed pages ---------- */
.art--page .art__main{font-size:clamp(28px,2.4vw + 16px,46px)}
.art--page .art__meta{margin-top:20px}
