@charset "utf-8";
/* ============================================================================
   上限と下限 ── 投資・証券・FX・銀行口座／法令が定める限度だけを読むサイト

   申告（A-09：ここに書いた数字は、実装と一致していること）
   ---------------------------------------------------------------------------
   ・無彩色の階段          7段（--n1 … --n7）
   ・効かせ色              1色相のみ（藍鼠 H≈219〜223／--ac, --ac-2, --ac-lit, --ac-tint）
   ・彩度25%以上の色       --ac(#2C3A55 S31.8) --ac-2(#3A4C6D S30.5) --ac-lit(#B8C0D5 S25.7)
                          の3つ。すべて同じ色相帯。大きい面に使う色は彩度25%未満
   ・透明度の段            6段（--o1 .07 / --o2 .12 / --o3 .18 / --o4 .36 / --o5 .60 / --o6 .90）
   ・イージング            2本（--e1 開く側 / --e2 入れ替え）
   ・時間                  3段（--t1 色 .16s / --t2 移動 .34s / --t3 面 .70s）
   ・余白の刻み            17px の倍数（--s1 17 / --s2 34 / --s3 51 / --s4 85 / --s5 136 / --s6 221 / --s7 357）
   ・級数                  6段。clamp の 最小:最大 はすべて 1 : 1.56
   ・行間                  8種（1.08 / 1.16 / 1.24 / 1.32 / 1.42 / 1.58 / 1.78 / 1.90）
   ・影                    4段＋輪郭を1本の変数に。押せる要素（a.btn / label）だけに当てる
   ・動きの語彙            3種（MX-7 窓がひらく／MX-8 上限の線が引かれる／MX-9 見開きが入れ替わる）
   ・@keyframes            0本（自動で走り続けるアニメーションは1つも無い）
   ・本文カラムの上限      748px（＝17 × 44）
   ・章の地                明るい面と暗い面が章ごとに入れ替わる。暗い面では
                          --face / --ink / --ink-rgb を面の側で差し替える（落とし穴23）
   ============================================================================ */

/* ── 1. 変数 ───────────────────────────────────────────────────── */
:root{
  --n1:#F1F2F4; --n2:#E6E8EC; --n3:#CFD3DA; --n4:#868B95;
  --n5:#474C56; --n6:#252932; --n7:#191C22;
  --ac:#2C3A55; --ac-2:#3A4C6D; --ac-lit:#B8C0D5; --ac-tint:#DEE2E9;

  --face:var(--n1); --face-2:var(--n2); --face-3:var(--ac-tint);
  --ink:var(--n7); --ink-2:var(--n5); --ink-3:var(--n4);
  --rule:var(--n3); --ink-rgb:25,28,34;
  --hi:var(--ac); --hi-2:var(--ac-2);

  --o1:.07; --o2:.12; --o3:.18; --o4:.36; --o5:.60; --o6:.90;

  --s1:17px; --s2:34px; --s3:51px; --s4:85px; --s5:136px; --s6:221px; --s7:357px;

  --e1:cubic-bezier(.19,.78,.40,1);
  --e2:cubic-bezier(.68,.04,.28,1);
  --t1:.16s; --t2:.34s; --t3:.7s;

  --sh:0 0 0 1px rgba(var(--ink-rgb),var(--o2)),
       0 1px 2px rgba(var(--ink-rgb),var(--o1)),
       0 5px 11px rgba(var(--ink-rgb),var(--o1)),
       0 15px 34px rgba(var(--ink-rgb),var(--o2));
  --sh-up:0 0 0 1px rgba(var(--ink-rgb),var(--o3)),
       0 2px 4px rgba(var(--ink-rgb),var(--o1)),
       0 9px 19px rgba(var(--ink-rgb),var(--o2)),
       0 24px 51px rgba(var(--ink-rgb),var(--o2));

  --form-face:#E7EAF0; --form-ink:#1E222A; --form-line:#A9B0BC;
  --form-on:#2A3852; --form-on-ink:#EDEFF4;

  --f-disp:"Epilogue","Kaisei Tokumin","Kaisei Decol",Georgia,serif;
  --f-head:"Epilogue","Kaisei Tokumin","Kaisei Decol",serif;
  --f-text:"Epilogue","Kaisei Decol","Hiragino Mincho ProN",serif;
  --f-num:"Lekton","Kaisei Decol",monospace;

  --stable-lvh:1vh;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{
    --face:var(--n7); --face-2:var(--n6); --face-3:#1E2430;
    --ink:var(--n1); --ink-2:var(--n3); --ink-3:var(--n4);
    --rule:#333844; --ink-rgb:241,242,244;
    --hi:var(--ac-lit); --hi-2:#CBD2E1;
    --form-face:#222630; --form-ink:#E7EAF0; --form-line:#4B515C;
    --form-on:#AEB7CB; --form-on-ink:#191C22;
  }
}

/* ── 2. 土台 ───────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background-color:var(--face); color:var(--ink);
  font-family:var(--f-text); font-feature-settings:"palt" 1;
  font-size:16px; line-height:1.9;
  text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased;
}
:where(figure,blockquote,ul,ol,p,h1,h2,h3,dl,dd,aside){ margin:0 }
img,svg{max-width:100%; height:auto; display:block}
a{color:inherit}
::selection{background:var(--ac-lit); color:var(--n7)}
.skip{ position:absolute; left:var(--s1); top:calc(var(--s1) * -5); z-index:40;
  padding:var(--s1) var(--s2); background:var(--form-on); color:var(--form-on-ink);
  text-decoration:none; box-shadow:var(--sh); transition:top var(--t2) var(--e1) }
.skip:focus{ top:var(--s1) }

/* ── 3. 級数（clamp の 最小:最大 はすべて 1:1.56）───────────────── */
.t-display{ font-family:var(--f-disp); font-size:clamp(29px,6vw,45.24px);
  line-height:1.08; letter-spacing:-.032em; font-weight:400; margin:0 }
.t-h1{ font-family:var(--f-head); font-size:clamp(24px,4.2vw,37.44px);
  line-height:1.16; letter-spacing:-.024em; font-weight:400; margin:0 }
.t-h2{ font-family:var(--f-head); font-size:clamp(20.5px,3vw,31.98px);
  line-height:1.24; letter-spacing:-.014em; font-weight:400; margin:0 }
.t-h3{ font-family:var(--f-head); font-size:clamp(17.5px,2.1vw,27.3px);
  line-height:1.32; letter-spacing:-.004em; font-weight:400; margin:0 }
.t-lede{ font-size:clamp(16.5px,1.9vw,25.74px); line-height:1.78; letter-spacing:.014em;
  color:var(--ink-2); margin:0 }
.t-body{ font-size:clamp(16px,.4vw + 14.5px,18px); line-height:1.9;
  letter-spacing:.024em; margin:0 }
.lab{ font-family:var(--f-num); font-size:13px; line-height:1.42; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-3); margin:0 }
.num{ font-family:var(--f-num); font-variant-numeric:tabular-nums lining-nums;
  letter-spacing:.01em }
.fig__cap{ font-size:14px; line-height:1.58; letter-spacing:.03em; color:var(--ink-2); margin:0 }
.fig__note{ font-size:13px; line-height:1.58; letter-spacing:.03em; color:var(--ink-3); margin:0 }
.nw{ white-space:nowrap }
.t-display,.t-h1,.t-h2,.t-h3{ text-wrap:pretty }
ruby{ ruby-position:over }
rt{ font-size:.45em; letter-spacing:.04em; color:var(--ink-3); font-family:var(--f-text) }

/* ── 4. 面。明るい面と暗い面が章ごとに入れ替わる（P-16 / A-07）──── */
.band{ padding-block:var(--s4) }
.band--day{
  background-color:var(--face);
  background-image:
    radial-gradient(90% 55% at 15% 0%, rgba(var(--ink-rgb),var(--o1)) 0%, rgba(var(--ink-rgb),0) 58%),
    repeating-linear-gradient(0deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 51px);
}
.band--dusk{
  background-color:var(--face-3);
  background-image:
    radial-gradient(80% 60% at 85% 10%, rgba(var(--ink-rgb),var(--o2)) 0%, rgba(var(--ink-rgb),0) 55%),
    repeating-linear-gradient(90deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 17px);
}
/* 暗い面。色は面の側で差し替える（落とし穴23：三つ組をそのまま使うと必ずどちらかで読めなくなる） */
.band--night{
  --face:#1B2029; --face-2:#222836; --face-3:#262D3C;
  --ink:#E9ECF2; --ink-2:#C2C8D4; --ink-3:#8C93A2;
  --rule:#39404E; --ink-rgb:233,236,242;
  --hi:var(--ac-lit); --hi-2:#CBD2E1;
  --form-face:#242A36; --form-ink:#E9ECF2; --form-line:#4C5464;
  --form-on:#AEB7CB; --form-on-ink:#171B22;
  background-color:#1B2029; color:#E9ECF2;
  background-image:
    radial-gradient(75% 55% at 25% 0%, rgba(233,236,242,.07) 0%, rgba(233,236,242,0) 60%),
    repeating-linear-gradient(0deg, rgba(233,236,242,.05) 0 1px, rgba(233,236,242,0) 1px 34px);
}
@media (prefers-color-scheme:dark){
  .band--night{ background-color:#10141A; --face:#10141A }
}

/* ── 5. 版面：LX-3「上下の見開き」──────────────────────────────
   上の段は 1 : 1.62、下の段は 1.62 : 1。上下で左右の比が入れ替わる。 */
.wrap{ padding-inline:var(--s2) }
@media (min-width:1000px){ .wrap{ padding-inline:var(--s4) } }
.spread3{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--s2);
  transition:grid-template-columns var(--t3) var(--e2) }
@media (min-width:960px){
  .spread3--u{ grid-template-columns:minmax(0,1fr) minmax(0,1.62fr) }
  .spread3--d{ grid-template-columns:minmax(0,1.62fr) minmax(0,1fr) }
  .spread3 + .spread3{ margin-top:var(--s2) }
}
.prose{ max-width:748px }
.side{ align-self:start }

/* ── 6. ヘッダー・ナビ ─────────────────────────────────────────── */
.site{ position:relative; z-index:20; background-color:var(--face-2);
  background-image:repeating-linear-gradient(0deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 17px);
  border-bottom:1px solid var(--rule) }
.site__in{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--s1);
  padding:var(--s2) var(--s2) var(--s1) }
@media (min-width:1000px){
  .site__in{ grid-template-columns:minmax(0,232px) minmax(0,1fr); align-items:end;
    padding:var(--s2) var(--s4) var(--s1) }
}
.brand{ display:flex; align-items:center; gap:var(--s1); text-decoration:none }
.brand__mark{ width:34px; height:34px; flex:0 0 auto }
.brand__name{ font-family:var(--f-head); font-size:21px; line-height:1.24; letter-spacing:.004em }
.brand__sub{ display:block; font-family:var(--f-num); font-size:12.5px; line-height:1.42;
  letter-spacing:.2em; color:var(--ink-3) }
.nav{ display:flex; flex-wrap:wrap; gap:var(--s1) var(--s2); padding:0; list-style:none }
@media (max-width:999px){
  .nav{ flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px;
    -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,1) 0, rgba(0,0,0,1) calc(100% - 34px), rgba(0,0,0,0) 100%);
    mask-image:linear-gradient(90deg,rgba(0,0,0,1) 0, rgba(0,0,0,1) calc(100% - 34px), rgba(0,0,0,0) 100%);
    -webkit-mask-size:100% 100%; mask-size:100% 100%;
    -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat }
  .nav li{ flex:0 0 auto }
}
.nav a{ font-size:14px; line-height:1.42; letter-spacing:.05em; text-decoration:none;
  color:var(--ink-2); padding-block:4px; border-bottom:1px solid transparent;
  transition:color var(--t1) var(--e1), border-color var(--t1) var(--e1) }
.nav a:hover,.nav a:focus-visible{ color:var(--hi); border-bottom-color:var(--hi) }
.nav a[aria-current="page"]{ color:var(--ink); border-bottom-color:var(--hi) }

/* ── 7. 広告開示 ──────────────────────────────────────────────── */
.disclose{ display:grid; gap:var(--s1); grid-template-columns:minmax(0,1fr);
  padding:var(--s1) var(--s2); background-color:var(--face-3);
  background-image:repeating-linear-gradient(90deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 17px);
  border-bottom:1px solid var(--rule) }
@media (min-width:1000px){ .disclose{ grid-template-columns:minmax(0,136px) minmax(0,884px); padding-inline:var(--s4) } }
.disclose p{ margin:0; font-size:14px; line-height:1.58; letter-spacing:.02em; color:var(--ink-2) }

/* ── 8. FV（VX-3 2つの数だけを置く型）──────────────────────────── */
.fv{ position:relative; overflow:hidden; padding-block:var(--s4) var(--s5) }
.fv--top{ min-height:calc(58 * var(--stable-lvh)) }
.fv__bg{ position:absolute; inset:0; z-index:0; pointer-events:none; color:var(--ink-3);
  opacity:var(--o4) }
.fv__bg svg{ width:100%; height:100% }
.fv__in{ position:relative; z-index:1 }
.twonum{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--s2) }
@media (min-width:640px){ .twonum{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) } }
.nb{ border-top:3px solid var(--hi); padding-top:var(--s1) }
.nb__k{ margin:0 0 6px }
.nb__v{ margin:0; font-family:var(--f-num); font-size:clamp(34px,5.4vw,53.04px);
  line-height:1.08; letter-spacing:-.02em; color:var(--ink) }
.nb__v small{ font-size:.42em; letter-spacing:.06em; padding-left:6px; color:var(--ink-2) }
.nb__src{ margin:6px 0 0; font-size:13px; line-height:1.58; color:var(--ink-3) }
.fvfig svg{ width:100%; height:auto; display:block }
.fvfig__cap{ margin-top:var(--s1) }

/* ── 9. 記事の中身 ────────────────────────────────────────────── */
.deco{ display:block; width:42px; height:42px; color:var(--hi); margin-bottom:var(--s1) }
.headrule{ display:block; width:var(--s2); height:3px; background:var(--hi); margin:var(--s1) 0 }

.cl{ padding:0; list-style:none; display:grid; gap:var(--s1) }
.cl__item{ display:grid; grid-template-columns:minmax(0,28px) minmax(0,1fr); gap:var(--s1);
  align-items:start }
.cl__item p{ margin:0; font-size:15.5px; line-height:1.78; letter-spacing:.02em }
.cl__no{ font-family:var(--f-num); font-size:13px; line-height:1.78; color:var(--hi) }

.quote{ padding:var(--s2); background-color:var(--face-2);
  background-image:repeating-linear-gradient(0deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 34px);
  border-left:3px solid var(--hi) }
.quote p{ margin:0; font-size:15.5px; line-height:1.78; letter-spacing:.02em }
.quote__src{ margin-top:var(--s1); font-size:13px; line-height:1.58; color:var(--ink-3) }

.pair{ display:grid; grid-template-columns:minmax(0,1fr); gap:6px }
@media (min-width:700px){ .pair{ grid-template-columns:minmax(0,4fr) minmax(0,9fr); gap:var(--s1) } }
.pair__k{ font-family:var(--f-num); font-size:13.5px; line-height:1.58; letter-spacing:.05em;
  color:var(--hi); margin:0; padding-top:2px }
.pair__v{ margin:0; font-size:15.5px; line-height:1.78; letter-spacing:.02em }

.notes{ padding:var(--s2); background-color:var(--face-2);
  background-image:repeating-linear-gradient(90deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 17px);
  border-top:3px solid var(--hi) }
.notes p + p{ margin-top:var(--s1) }
.note{ margin:0; font-size:14px; line-height:1.58; letter-spacing:.02em; color:var(--ink-2) }

.tablewrap{ overflow-x:auto;
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0, rgba(0,0,0,1) 17px, rgba(0,0,0,1) calc(100% - 17px), rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0, rgba(0,0,0,1) 17px, rgba(0,0,0,1) calc(100% - 17px), rgba(0,0,0,0) 100%);
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat }
table{ border-collapse:collapse; width:100%; min-width:476px }
th,td{ text-align:left; padding:var(--s1); border-bottom:1px solid var(--rule);
  font-size:14.5px; line-height:1.58; letter-spacing:.02em; vertical-align:top }
th{ font-family:var(--f-num); font-size:13px; letter-spacing:.1em; color:var(--ink-3); font-weight:400 }
td .num{ color:var(--hi) }
.tag{ display:inline-block; font-family:var(--f-num); font-size:13px; line-height:1.42;
  letter-spacing:.06em; padding:2px 8px }
.tag--strong{ background:var(--hi); color:var(--n1) }
.tag--subtle{ background:rgba(var(--ink-rgb),var(--o2)); color:var(--hi) }
.band--night .tag--strong{ color:#1B2029 }

/* ── 9b. 図：GX-3「限度線と帯」──────────────────────────────────
   横軸のいちばん右が上限。帯がそこに届くかどうかで大きさを示す。 */
.fig{ display:grid; gap:var(--s1) }
.fig__frame{ background-color:var(--face-2);
  background-image:repeating-linear-gradient(90deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 34px);
  border:1px solid var(--rule); padding:var(--s2) }
.lim{ position:relative; padding-right:2px }
.lim__row{ display:grid; grid-template-columns:minmax(0,102px) minmax(0,1fr); gap:var(--s1);
  align-items:center }
.lim__row + .lim__row{ margin-top:var(--s1) }
.lim__k{ margin:0; font-family:var(--f-num); font-size:13px; line-height:1.42;
  letter-spacing:.04em; color:var(--ink-2) }
.lim__track{ position:relative; height:26px; background:rgba(var(--ink-rgb),var(--o1));
  border-right:3px solid var(--hi) }
.lim__track i{ position:absolute; inset:0 auto 0 0; display:block;
  background:rgba(var(--ink-rgb),var(--o4)) }
.lim__track i.on{ background:var(--hi) }
.lim__track b{ position:absolute; right:8px; top:0; font-family:var(--f-num);
  font-size:13px; line-height:26px; font-weight:400; color:var(--ink-2) }
.lim__cap{ margin-top:6px; text-align:right }

/* MX-8 上限の線が引かれる */
.cap{ text-decoration:underline; text-decoration-color:var(--hi);
  text-decoration-thickness:0; text-underline-offset:2px;
  transition:text-decoration-thickness var(--t3) var(--e2),
             text-underline-offset var(--t3) var(--e2) }
[data-rv="in"] .cap{ text-decoration-thickness:3px; text-underline-offset:5px }

/* MX-9 見開きが入れ替わる（押したときだけ走る） */
.flip{ position:absolute; opacity:0; pointer-events:none }
.fliplab{ display:inline-block; cursor:pointer; padding:9px var(--s2);
  background:var(--form-face); color:var(--form-ink); border:1px solid var(--form-line);
  font-size:14px; line-height:1.42; letter-spacing:.04em; box-shadow:var(--sh);
  transition:box-shadow var(--t2) var(--e1), background-color var(--t1) var(--e1),
             color var(--t1) var(--e1) }
.fliplab:hover,.flip:focus-visible + .fliplab{ background:var(--form-on);
  color:var(--form-on-ink); box-shadow:var(--sh-up) }
@media (min-width:960px){
  .flip:checked ~ .spread3--u{ grid-template-columns:minmax(0,1.62fr) minmax(0,1fr) }
}
.flipbox .a{ display:block } .flipbox .b{ display:none }
.flip:checked ~ .spread3 .a{ display:none }
.flip:checked ~ .spread3 .b{ display:block }

/* ── 10. 広告枠 ───────────────────────────────────────────────── */
.adslot__lab{ margin:0 0 var(--s1); font-family:var(--f-num); font-size:13px;
  line-height:1.42; letter-spacing:.12em; color:var(--ink-3) }
.adslot__box{ min-height:170px; display:grid; place-items:center; padding:var(--s2);
  border:1px solid var(--rule); background-color:var(--face-2);
  background-image:repeating-linear-gradient(135deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 17px) }
.adslot__box p{ margin:0; font-size:14px; line-height:1.58; letter-spacing:.02em;
  color:var(--ink-3); text-align:center }

/* ── 11. 一覧・ページャ ──────────────────────────────────────── */
.idx{ display:grid; gap:var(--s2); grid-template-columns:minmax(0,1fr) }
@media (min-width:820px){ .idx{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:var(--s3) } }
.card{ display:block; text-decoration:none; padding:var(--s1) 0 var(--s2);
  border-bottom:1px solid var(--rule); transition:border-color var(--t1) var(--e1) }
.card:hover,.card:focus-visible{ border-bottom-color:var(--hi) }
.card__no{ font-family:var(--f-num); font-size:13px; letter-spacing:.16em; color:var(--ink-3) }
.card__ttl{ margin:4px 0 6px; font-family:var(--f-head); font-size:19.5px; line-height:1.32;
  letter-spacing:-.004em; transition:color var(--t1) var(--e1) }
.card:hover .card__ttl,.card:focus-visible .card__ttl{ color:var(--hi) }
.card__sum{ margin:0; font-size:14.5px; line-height:1.78; color:var(--ink-2) }

.pager{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--s1) var(--s2);
  border-top:1px solid var(--rule); padding-top:var(--s2) }
.pager__frac{ font-family:var(--f-num); font-size:14px; letter-spacing:.12em; color:var(--ink-3) }
.btn{ display:inline-block; text-decoration:none; padding:10px var(--s2);
  background:var(--form-face); color:var(--form-ink); border:1px solid var(--form-line);
  font-size:14px; line-height:1.42; letter-spacing:.04em; box-shadow:var(--sh);
  transition:box-shadow var(--t2) var(--e1), background-color var(--t1) var(--e1),
             color var(--t1) var(--e1) }
.btn:hover,.btn:focus-visible{ background:var(--form-on); color:var(--form-on-ink);
  box-shadow:var(--sh-up) }

/* ── 12. フッター ─────────────────────────────────────────────── */
.foot{ background-color:var(--face-2); border-top:1px solid var(--rule);
  background-image:repeating-linear-gradient(0deg, rgba(var(--ink-rgb),var(--o1)) 0 1px, rgba(var(--ink-rgb),0) 1px 34px);
  padding:var(--s3) var(--s2) var(--s4) }
@media (min-width:1000px){ .foot{ padding-inline:var(--s4) } }
.foot__in{ display:grid; gap:var(--s2); grid-template-columns:minmax(0,1fr) }
@media (min-width:760px){ .foot__in{ grid-template-columns:minmax(0,1fr) minmax(0,1.62fr); column-gap:var(--s3) } }
.foot p{ margin:0; font-size:13.5px; line-height:1.58; color:var(--ink-3) }
.foot ul{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:var(--s1) var(--s2) }
.foot a{ font-size:13.5px; color:var(--ink-2); text-decoration:none;
  border-bottom:1px solid var(--rule);
  transition:color var(--t1) var(--e1), border-color var(--t1) var(--e1) }
.foot a:hover,.foot a:focus-visible{ color:var(--hi); border-bottom-color:var(--hi) }

/* ── 12b. 余白のリズム（A-03）。部品の margin に負けないよう終わり近くに置く ── */
.stack > * + *{ margin-top:var(--s2) }
.stack > * + .g1{ margin-top:var(--s1) }
.stack > * + .g3{ margin-top:var(--s3) }
.stack > * + .g4{ margin-top:var(--s4) }
.sec + .sec{ margin-top:var(--s3) }

/* ── 13. 動きの語彙（3種）────────────────────────────────────────
   MX-7 窓がひらく     … 限度の内側だけを見ていた状態から、全体が見える状態へ
   MX-8 上限の線が引かれる … ここがその数字の上限だと決められた
   MX-9 見開きが入れ替わる … 上限の側から読むか、下限の側から読むか
   ------------------------------------------------------------------ */
[data-rv]{ opacity:var(--o3);
  -webkit-clip-path:circle(0% at 26% 50%); clip-path:circle(0% at 26% 50%);
  transition:opacity var(--t3) var(--e1),
             -webkit-clip-path var(--t3) var(--e1), clip-path var(--t3) var(--e1);
  transition-delay:var(--rv-d,0s) }
[data-rv="in"]{ opacity:1;
  -webkit-clip-path:circle(150% at 26% 50%); clip-path:circle(150% at 26% 50%) }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ transition-duration:.001s !important }
  [data-rv]{ opacity:1 !important;
    -webkit-clip-path:none !important; clip-path:none !important }
  .cap{ text-decoration-thickness:3px; text-underline-offset:5px }
}

/* ── 14. 印刷（B-15）─────────────────────────────────────────── */
@media print{
  .site,.foot,.adslot,.skip,.fliplab{ display:none }
  body{ background:none; color:var(--n7); font-size:11pt }
  .band{ padding-block:12pt; background:none; color:var(--n7) }
  .band--night{ background:none; color:var(--n7); --ink:var(--n7); --ink-rgb:25,28,34 }
  .spread3{ display:block }
  .quote,.notes,.fig__frame{ break-inside:avoid; border:1pt solid var(--n4) }
  [data-rv]{ opacity:1; clip-path:none }
}
