/* 週刊誌の中吊り（ブライアンの窓）── 見出しは画像に描かせず、文字で重ねる。
   誌面は横長 2.8:1 の 1 枚。大きさは誌面の幅（cqw）で決めるので、どの幅でも比が崩れない。 */
:root {
  --nk-paper: #fbfaf6;
  --nk-ink: #141414;
  --nk-sub: #6b665c;
  --nk-red: #d2102a;
  --nk-red-deep: #8f0a1d;
  --nk-yellow: #ffe100;
  --nk-blue: #0a2f78;
  --nk-white: #ffffff;
  --nk-photo: #2a2a2a;
  --nk-bg: #d9d5cc;
  --nk-strap: #3a3a3a;
  --nk-strap-hi: #6a6a6a;
  --nk-rail: #8c8c8c;
  --nk-ratio: 2.8;
  --nk-sheet-max: 72rem;
  --nk-sheet-min: 75rem;
  --nk-hang-h: 3.2rem;
  /* 柱の幅（誌面の幅に対する割合）。縦書きは中身の幅を先に測れないので、幅は先に決める */
  --nk-w-xl: 18cqw;
  --nk-w-l: 26.4cqw;
  --nk-w-photo: 15.1cqw;
  --nk-font-gothic: "Hiragino Kaku Gothic StdN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  --nk-font-mincho: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
}
* { box-sizing: border-box; }
.nk-body {
  margin: 0;
  background: var(--nk-bg);
  color: var(--nk-ink);
  font-family: var(--nk-font-gothic);
}
.nk { max-width: 76rem; margin: 0 auto; padding: 1rem 1rem 3rem; }
.nk-top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.nk-top p { margin: .2rem 0; }
.nk-back a { color: var(--nk-sub); font-size: .85rem; }
.nk-owner { color: var(--nk-sub); font-size: .8rem; letter-spacing: .2em; }

/* 額縁（スマホでは、ここが横に動く） */
.nk-frame {
  padding-top: var(--nk-hang-h);
  border-top: .5rem solid var(--nk-rail);
}
.nk-sheet {
  position: relative;
  width: min(100%, var(--nk-sheet-max));
  margin: 0 auto;
  aspect-ratio: var(--nk-ratio);
  container-type: inline-size;
  background: var(--nk-paper);
  box-shadow: 0 .5rem 1.2rem rgba(0, 0, 0, .35), 0 0 0 1px rgba(0, 0, 0, .5);
}
/* 吊り具（2 か所） */
.nk-sheet::before,
.nk-sheet::after {
  content: "";
  position: absolute;
  top: calc(var(--nk-hang-h) * -1);
  width: 1.1rem;
  height: var(--nk-hang-h);
  background: linear-gradient(90deg, var(--nk-strap) 0 35%, var(--nk-strap-hi) 50%, var(--nk-strap) 65% 100%);
  border-radius: 0 0 .5rem .5rem;
  z-index: 3;
}
.nk-sheet::before { left: 16%; }
.nk-sheet::after { right: 16%; }

.nk-paper {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* 紙の質感: ごく薄い繊維の筋と、端の焼け */
  background:
    repeating-linear-gradient(90deg, rgba(0, 0, 0, .025) 0 1px, transparent 1px 3px),
    radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, 0) 60%, rgba(120, 100, 60, .18) 100%),
    var(--nk-paper);
}

/* 上の帯（特集） */
.nk-kicker {
  margin: 0;
  flex: 0 0 auto;
  background: var(--nk-ink);
  color: var(--nk-yellow);
  font-weight: 900;
  font-size: 2.3cqw;
  line-height: 1;
  padding: .65cqw 1.4cqw;
  letter-spacing: .25em;
  border-bottom: .2cqw solid var(--nk-paper);
}

/* 本体: 左から 左の柱 → 写真 → l → xl（xl が右端） */
.nk-deck { flex: 1 1 0; min-height: 0; display: flex; }
.nk-rest { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }
.nk-zone {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row-reverse;
  min-height: 0;
}
.nk-rest .nk-zone { flex: 1 1 0; min-width: 0; }
/* 小さい見出しは本数に合わせて段に割り付ける（道具が 1〜3 段を選ぶ）。段が少ないほど 1 本が高いので、字を少し大きくする */
.nk-zone--row { flex: 1 1 0; min-width: 0; }
.nk-rest--rows-3 .nk-zone--row { min-height: 0; }
.nk-rest--rows-2 .nk-h--m { font-size: 1.7cqw; --nk-face: 2cqw; }
.nk-rest--rows-2 .nk-h--s { font-size: 1.55cqw; --nk-face: 1.9cqw; }
.nk-rest--rows-1 .nk-h--m { font-size: 2cqw; --nk-face: 2.3cqw; }
.nk-rest--rows-1 .nk-h--s { font-size: 1.9cqw; --nk-face: 2.2cqw; }
.nk-deck > .nk-zone--xl { flex: 0 0 var(--nk-w-xl); }
.nk-deck > .nk-zone--l { flex: 0 0 var(--nk-w-l); }

/* 写真: 塊の中に四角くはめ込む */
.nk-photo {
  position: relative;
  margin: 0;
  flex: 0 0 var(--nk-w-photo);
  display: flex;
  flex-direction: column;
  border-left: .2cqw solid var(--nk-paper);
  border-right: .2cqw solid var(--nk-paper);
  background: var(--nk-photo);
}
.nk-photo__img { display: block; flex: 1 1 0; min-height: 0; width: 100%; object-fit: cover; object-position: 100% 100%; }
.nk-photo__frame { flex: 1 1 0; position: relative; background: var(--nk-photo); }
.nk-photo__tony { position: absolute; right: .8cqw; top: .8cqw; color: var(--nk-white); font-size: 1cqw; opacity: .7; }
.nk-photo figcaption {
  flex: 0 0 auto;
  background: var(--nk-ink);
  color: var(--nk-white);
  font-size: .95cqw;
  line-height: 1.35;
  padding: .3cqw .8cqw;
}
/* 表紙の写真だけに添える一言（🕵️ トニー 10/13 W2）。トニーの一文の後ろに続ける */
.nk-photo__ai { margin-left: .6em; }

/* 題字: 写真の下側に重ねる。白い極太の明朝に、黒の縁取りと赤の影 */
.nk-mast {
  position: absolute;
  left: -.2cqw;
  bottom: 9.6cqw;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.nk-belt {
  margin: 0 0 .2cqw .6cqw;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  white-space: nowrap;
  background: var(--nk-ink);
  color: var(--nk-white);
  font-size: .95cqw;
  font-weight: 700;
  padding: .25cqw .7cqw;
  line-height: 1.1;
}
.nk-issue { color: var(--nk-yellow); }
.nk-sale { color: var(--nk-white); }
.nk-name {
  margin: 0;
  font-family: var(--nk-font-mincho);
  font-weight: 900;
  --nk-name-size: 4.3cqw;
  --nk-name-stroke: .153; /* 縁取りの太さ（文字の大きさに対する割合） */
  font-size: var(--nk-name-size);
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--nk-white);
  white-space: nowrap;
  -webkit-text-stroke: calc(var(--nk-name-size) * var(--nk-name-stroke)) var(--nk-ink);
  paint-order: stroke fill;
  text-shadow: calc(var(--nk-name-size) * .082) calc(var(--nk-name-size) * .082) 0 var(--nk-red),
               calc(var(--nk-name-size) * .143) calc(var(--nk-name-size) * .143) 0 var(--nk-ink);
}
.nk-draft {
  position: absolute;
  top: 1.2cqw;
  right: 1cqw;
  z-index: 2;
  background: var(--nk-red);
  color: var(--nk-white);
  font-weight: 900;
  font-size: 1.5cqw;
  padding: .3cqw .9cqw;
  border: .2cqw solid var(--nk-white);
  transform: rotate(8deg);
  letter-spacing: .1em;
}

/* 見出しの塊（縦書き・隙間なし） */
.nk-h {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border-left: .2cqw solid var(--nk-paper);
  border-bottom: .2cqw solid var(--nk-paper);
  background: var(--nk-tone-bg);
  color: var(--nk-tone-fg);
  --nk-stroke: 0;
  --nk-stroke-color: var(--nk-ink);
  --nk-shadow: transparent;
}
.nk-h--red {
  --nk-tone-bg: var(--nk-red);
  --nk-tone-fg: var(--nk-white);
  --nk-sub-bg: var(--nk-yellow);
  --nk-sub-fg: var(--nk-ink);
  --nk-stroke: .07em;
  --nk-shadow: var(--nk-yellow);
  font-family: var(--nk-font-mincho);
}
.nk-h--ink {
  --nk-tone-bg: var(--nk-ink);
  --nk-tone-fg: var(--nk-white);
  --nk-sub-bg: var(--nk-white);
  --nk-sub-fg: var(--nk-ink);
  font-family: var(--nk-font-gothic);
}
.nk-h--yellow {
  --nk-tone-bg: var(--nk-yellow);
  --nk-tone-fg: var(--nk-ink);
  --nk-sub-bg: var(--nk-red);
  --nk-sub-fg: var(--nk-white);
  --nk-shadow: var(--nk-red);
  font-family: var(--nk-font-gothic);
}
.nk-h--blue {
  --nk-tone-bg: var(--nk-blue);
  --nk-tone-fg: var(--nk-white);
  --nk-sub-bg: var(--nk-yellow);
  --nk-sub-fg: var(--nk-ink);
  --nk-stroke: .04em;
  font-family: var(--nk-font-mincho);
}
.nk-h--xl { font-size: 4.2cqw; --nk-face: 4.4cqw; --nk-tag: 1.5cqw; }
.nk-h--l { font-size: 3.3cqw; --nk-face: 3.4cqw; --nk-tag: 1.2cqw; }
.nk-h--m { font-size: 1.35cqw; --nk-face: 1.8cqw; --nk-tag: .85cqw; }
.nk-h--m .nk-sub { font-size: 1cqw; }
.nk-h--s .nk-sub { font-size: .95cqw; }
.nk-h--s { font-size: 1.25cqw; --nk-face: 1.6cqw; --nk-tag: .8cqw; }

.nk-link {
  flex: 1 1 0;
  min-height: 0;
  display: block;
  writing-mode: vertical-rl;
  text-orientation: upright; /* 縦書きの英数字も正立（ミミドラ！ 1.6.0 など） */
  color: inherit;
  text-decoration: none;
  /* button の初期の見た目を消す */
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 900;
  text-align: start;
  cursor: pointer;
}
/* 塊のどこを押しても開く（顔写真・余白も） */
.nk-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.nk-link:focus-visible { outline: .35cqw solid var(--nk-yellow); outline-offset: -.5cqw; }
.nk-h:hover { filter: brightness(1.1); }
.nk-text {
  display: block;
  padding: .5cqw .3cqw .2cqw .3cqw;
  line-height: 1.16;
  text-wrap: balance;
  -webkit-text-stroke: var(--nk-stroke) var(--nk-stroke-color);
  paint-order: stroke fill;
  text-shadow: .07em .07em 0 var(--nk-shadow);
}
.nk-link:hover .nk-text { text-decoration: underline; }
/* 縦書きの数字は 2 桁まで正立で組み、語の途中では割らない（対応しない画面では素直に折れる） */
.nk-text, .nk-sub, .nk-sp-head, .nk-sp-sub { text-combine-upright: digits 2; word-break: auto-phrase; }
.nk-sub {
  display: block;
  font-size: .43em;
  font-weight: 700;
  line-height: 1.2;
  padding: .5em .25em;
  background: var(--nk-sub-bg);
  color: var(--nk-sub-fg);
  text-wrap: balance;
}
.nk-uncf {
  display: block;
  font-size: 1cqw;
  font-weight: 700;
  line-height: 1.2;
  padding: .4em .25em;
  background: var(--nk-paper);
  color: var(--nk-ink);
  border-left: 1px dashed var(--nk-ink);
  letter-spacing: .05em;
}

/* 顔写真（小さく丸く） */
.nk-faces { flex: 0 0 auto; display: flex; justify-content: flex-start; gap: .3cqw; padding: .2cqw .3cqw .3cqw; }
.nk-face {
  display: block;
  width: var(--nk-face);
  height: var(--nk-face);
  border-radius: 50%;
  object-fit: cover;
  background: var(--nk-white);
  border: .2cqw solid var(--nk-white);
}

/* 札（丸・角・斜め） */
.nk-tag {
  position: absolute;
  z-index: 2;
  top: -1.1em;
  right: .2cqw;
  font-size: var(--nk-tag);
  font-family: var(--nk-font-gothic);
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
  -webkit-text-stroke: 0;
  text-shadow: none;
  pointer-events: none;
}
.nk-tag--round {
  display: grid;
  place-items: center;
  width: 3em;
  height: 3em;
  border-radius: 50%;
  white-space: normal;
  word-break: break-all;
  padding: .25em;
  line-height: 1.05;
  background: var(--nk-yellow);
  color: var(--nk-red);
  border: .2cqw solid var(--nk-red);
  transform: rotate(-10deg);
  top: -2.5em;
}
.nk-tag--square {
  padding: .25em .5em;
  background: var(--nk-white);
  color: var(--nk-red);
  border: .2cqw solid var(--nk-red);
  box-shadow: .25cqw .25cqw 0 var(--nk-ink);
}
.nk-tag--slant {
  padding: .25em .7em;
  background: var(--nk-ink);
  color: var(--nk-yellow);
  border: .2cqw solid var(--nk-yellow);
  transform: rotate(-9deg);
}

.nk-hint { display: none; margin: .5rem 0 0; font-size: .85rem; color: var(--nk-sub); text-align: center; }
.nk-foot { color: var(--nk-sub); font-size: .85rem; margin-top: 1.2rem; }
.nk-foot p { margin: .2rem 0; }
.nk-editors { color: var(--nk-ink); font-weight: 700; }

/* 狭い画面: 組み替えない。2.8:1 の誌面の幅を保って、額縁の中で横に動かす */
@media (max-width: 899px) {
  /* 右端から読み始める（トップ記事が右端）。rtl は、横に動く額縁の初期位置を右端にするため */
  .nk-frame { overflow-x: auto; -webkit-overflow-scrolling: touch; direction: rtl; }
  .nk-sheet { direction: ltr; width: var(--nk-sheet-min); max-width: none; margin: 0; }
  .nk-hint { display: block; }
}

/* ───────── 見開き（写真週刊誌）──────────
   中吊りを隠して、同じ場所に出す。body の class（nk-is-spread）と見開きの class（nk-spread--open）の付け替えだけ。 */
:root {
  --nk-sp-paper: #f7f5ef;
  --nk-sp-frame: #ffffff;
  --nk-sp-max: 72rem;
}
.nk-spreads { margin-top: 1rem; }
.nk-spread {
  display: none;
  width: min(100%, var(--nk-sp-max));
  margin: 0 auto;
  container-type: inline-size;
  outline: none;
}
.nk-spread--open { display: block; }
.nk-is-spread .nk-top,
.nk-is-spread .nk-frame,
.nk-is-spread .nk-hint { display: none; }

.nk-sp-page {
  background:
    repeating-linear-gradient(0deg, rgba(0, 0, 0, .02) 0 1px, transparent 1px 3px),
    var(--nk-sp-paper);
  border-top: 1.2cqw solid var(--nk-red);
  padding: 1.6cqw 2.4cqw 2.4cqw;
  box-shadow: 0 .5rem 1.2rem rgba(0, 0, 0, .3), 0 0 0 1px rgba(0, 0, 0, .45);
}
.nk-sp-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1cqw;
  margin-bottom: 1.8cqw;
  border-bottom: .25cqw solid var(--nk-ink);
}
/* トニーの絵（題字の横・小さく・題字より目立たない。吹き出しも台詞も無し） */
.nk-sp-tony { margin: 0 auto 0 1.8cqw; display: flex; align-items: flex-end; gap: .7cqw; }
/* 2026-10-11 🌹「タイトル横の左空きに　トニーのイラスト」── 空きを使って見える大きさに。
   線画なので、太字に赤い影の題字より目立たない（トニーの条件）。drop-shadow は灰色のにじみになったので外した */
.nk-sp-tony__img {
  display: block;
  height: 7cqw;
  width: auto;
  filter: contrast(1.6);
}
/* 見出しの左の余白に大きく（🌹 10/13）。顔写真の上に置く */
.nk-sp-tony--copy { position: absolute; z-index: 2; left: 0; bottom: 9cqw; margin: 0; writing-mode: horizontal-tb; }
/* 絵はボタン（押すと吹き出しでセリフ）。ボタンの見た目は消す */
.nk-sp-tony__btn { display: block; margin: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.nk-sp-tony__btn:focus-visible { outline: 3px solid var(--nk-blue); outline-offset: 2px; }
/* 吹き出し: 絵の右上に出す。白い紙・太い黒枠・赤い影（誌面と同じ） */
.nk-sp-tony__bubble {
  position: absolute;
  left: calc(100% + 1cqw);
  bottom: 45%;
  width: max-content;
  max-width: 24cqw;
  padding: .8cqw 1.3cqw;
  background: var(--nk-white);
  color: var(--nk-ink);
  border: .25cqw solid var(--nk-ink);
  border-radius: 1.2cqw;
  box-shadow: .3cqw .3cqw 0 var(--nk-red);
  font-family: var(--nk-font-gothic);
  font-size: 1.6cqw;
  font-weight: 800;
  line-height: 1.45;
  text-align: left;
}
.nk-sp-tony__bubble::before {
  content: "";
  position: absolute;
  left: -1.3cqw;
  bottom: 1cqw;
  border: .6cqw solid transparent;
  border-right: .8cqw solid var(--nk-ink);
}
/* 絵は縦長と横長が混ざる。枠を決めて、比率を保ったまま左下に収める（いちばん狭い見開きの空きより枠を小さく・10/13 実測） */
.nk-sp-tony--copy .nk-sp-tony__img { width: 12.5cqw; height: 17cqw; object-fit: contain; object-position: left bottom; }
.nk-sp-run { margin: 0; display: flex; align-items: baseline; gap: 1.2cqw; font-weight: 900; white-space: nowrap; }
/* 白い紙の上でも読めるよう、黒帯ではなく縁取りを太くする（定義は .nk-name と共有・変数だけ渡す） */
.nk-sp-run__name { --nk-name-size: 3.4cqw; --nk-name-stroke: .22; display: inline-block; padding: 0 .5cqw .4cqw 0; }
.nk-sp-run__issue { font-size: 1.4cqw; color: var(--nk-sub); }
.nk-sp-run__no { font-size: 1.4cqw; color: var(--nk-red); }

.nk-sp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: .55rem 1.1rem;
  border: 2px solid var(--nk-ink);
  background: var(--nk-white);
  color: var(--nk-ink);
  font-family: var(--nk-font-gothic);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.nk-sp-btn:hover { filter: brightness(.94); }
.nk-sp-btn:focus-visible { outline: 3px solid var(--nk-blue); outline-offset: 2px; }
.nk-sp-btn--back { flex: none; background: var(--nk-ink); color: var(--nk-white); }
/* スキ（ハート）: 見開きの下の操作の段・「詳細」の次。写真や大見出しを隠さない。操作の段は 1 行のまま（縮めない） */
.nk-sp-suki { flex: none; }
.nk-sp-btn--prev, .nk-sp-btn--next { min-width: 8rem; }
.nk-sp-btn--next:first-child { margin-left: auto; }
.nk-sp-btn__short { display: none; }
.nk-sp-btn--detail { background: var(--nk-red); color: var(--nk-white); border-color: var(--nk-red-deep); padding-left: 1.6rem; padding-right: 1.6rem; }

/* 見開きの本文のどこを押しても開く。<a> で本文を包むと中に顔のボタンを入れられないので、本文の上に透明な押し面を 1 枚重ねる。
   href がある見開き = <a>（別タブで詳細）／ 無い見開き = <button>（「続きのページが無い」モーダル）。顔・トニーはこの上（z-index 2） */
.nk-sp-area-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
}
.nk-sp-area-link:focus-visible { outline: 3px solid var(--nk-blue); outline-offset: -3px; }
.nk-sp-body:has(> .nk-sp-area-link:hover) .nk-sp-photo__img { filter: brightness(1.14); }
.nk-sp-body:has(> .nk-sp-area-link:hover) .nk-sp-head { text-decoration: underline; text-decoration-thickness: .3cqw; }
.nk-sp-body {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 2cqw;
  align-items: stretch;
}
/* 写真: 白枠。白黒・粒子の粗い写真 */
.nk-sp-photo { margin: 0; display: flex; flex-direction: column; min-width: 0; }
.nk-sp-photo__frame {
  position: relative;
  background: var(--nk-sp-frame);
  padding: .9cqw;
  box-shadow: 0 0 0 .12cqw var(--nk-ink), .5cqw .6cqw 1.1cqw rgba(0, 0, 0, .3);
}
.nk-sp-photo__img { display: block; width: 100%; min-height: 36cqw; max-height: 42cqw; object-fit: cover; object-position: 50% 55%; }
.nk-sp-cap { margin-top: 1.8cqw; font-size: 1.5cqw; line-height: 1.5; font-weight: 700; display: flex; flex-direction: column; }
.nk-sp-cap__text { color: var(--nk-ink); }
/* 本物の画面（スクリーンショット）は上から見せる。AI の絵は中央寄り */
.nk-spread--screen .nk-sp-photo__img { object-position: 50% 0; }
.nk-spread--ai .nk-sp-photo__img { object-position: 50% 55%; }

/* 見出し: 極太の黒い縦書き。右の端に赤い札、左に小さい縦書きの柱 */
.nk-sp-copy {
  position: relative;
  min-height: 0;
  writing-mode: vertical-rl;
  text-orientation: upright; /* 縦書きの英数字も正立（ミミドラ！ 1.6.0 など） */
  padding-top: 5.4cqw;
  color: var(--nk-ink);
  /* 見出しの長さで行の高さが決まらないように。高さは写真の側（grid の行）が決める */
  contain: size;
}
.nk-sp-head {
  display: block;
  margin: 0;
  font-family: var(--nk-font-gothic);
  font-weight: 900;
  font-size: 5.2cqw; /* 1 列に 7 文字入る大きさ（語の途中で割れないため） */
  line-height: 1.18;
  text-wrap: balance;
  -webkit-text-stroke: .22cqw var(--nk-ink);
}
.nk-sp-sub {
  display: block;
  margin: 0 1.4cqw 8.8cqw 0; /* 下は顔写真と名前の分（柱が顔にかぶらない） */
  padding: 0 .8cqw 0 0;
  border-right: .2cqw solid var(--nk-ink);
  font-size: 1.9cqw;
  font-weight: 800;
  line-height: 1.55;
  text-wrap: balance;
}
.nk-sp-uncf {
  display: block;
  margin: 0 1cqw 8.8cqw 0;
  padding: .5cqw .3cqw;
  border: 1px dashed var(--nk-ink);
  font-size: 1.3cqw;
  font-weight: 700;
  line-height: 1.3;
}
.nk-sp-tag {
  position: absolute;
  top: 0;
  right: 0;
  writing-mode: horizontal-tb;
  background: var(--nk-red);
  color: var(--nk-white);
  font-weight: 900;
  font-size: 2.4cqw;
  line-height: 1.1;
  padding: .55cqw 1.4cqw;
  transform: rotate(-4deg);
  box-shadow: .3cqw .3cqw 0 var(--nk-ink);
  white-space: nowrap;
}
.nk-sp-faces {
  position: absolute;
  z-index: 2; /* 押し面（z-index 1）の上。顔を押しても記事は開かない */
  left: 0;
  bottom: 0;
  margin: 0;
  writing-mode: horizontal-tb;
  display: flex;
  align-items: flex-start;
  gap: 1.2cqw;
}
.nk-face--sp { width: 5.2cqw; height: 5.2cqw; }
/* 顔 + 名前（押すと紹介のモーダル）。intro が無い人は span（--static）で、押せない */
.nk-sp-face {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .3cqw;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--nk-ink);
  font: inherit;
  cursor: pointer;
}
.nk-sp-face--static { cursor: default; }
.nk-sp-face:focus-visible { outline: 3px solid var(--nk-blue); outline-offset: 3px; }
.nk-sp-face:hover .nk-face { box-shadow: 0 0 0 .3cqw var(--nk-red); }
.nk-sp-face__name { font-size: 1.2cqw; font-weight: 800; line-height: 1.2; white-space: nowrap; }

.nk-sp-nav {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  margin-top: 2cqw;
  padding-top: 1.6cqw;
  border-top: .25cqw solid var(--nk-ink);
}

/* ───────── 共用モーダル（<dialog> 1 つ）──────────
   3 用途: 続きのページが無い見開き／人の紹介。週刊FAB の紙面に合わせる（白い紙・太い黒枠・赤）。単位は rem（モーダルは誌面の外） */
.nk-modal {
  width: min(92vw, 34rem);
  max-width: none;
  max-height: 90vh;
  margin: auto;
  padding: 0;
  overflow: auto;
  border: .25rem solid var(--nk-ink);
  background: var(--nk-white);
  color: var(--nk-ink);
  font-family: var(--nk-font-gothic);
  box-shadow: .5rem .5rem 0 var(--nk-red);
}
.nk-modal::backdrop { background: rgba(20, 20, 20, .62); }
.nk-modal__panel { border-top: .8rem solid var(--nk-red); padding: .9rem 1.4rem 1.6rem; }
.nk-modal__bar { margin: 0 0 .8rem; text-align: right; }
.nk-modal__person { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.nk-modal__avatar {
  flex: none;
  display: block;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  object-fit: cover;
  background: var(--nk-white);
  border: .25rem solid var(--nk-ink);
}
.nk-modal__title { margin: 0; font-size: 1.45rem; font-weight: 900; line-height: 1.3; }
.nk-modal__role {
  display: inline-block;
  margin: .5rem 0 0;
  padding: .2rem .65rem;
  background: var(--nk-red);
  color: var(--nk-white);
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.3;
}
.nk-modal__text { margin: 0; font-size: 1.05rem; line-height: 1.85; font-weight: 500; }
.nk-modal__title + .nk-modal__text { margin-top: .9rem; }
.nk-modal__linkrow { margin: 1.3rem 0 0; }
.nk-modal__link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: .55rem 1.3rem;
  border: 2px solid var(--nk-red-deep);
  background: var(--nk-red);
  color: var(--nk-white);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}
.nk-modal__link:hover { filter: brightness(.94); }
.nk-modal__link:focus-visible { outline: 3px solid var(--nk-blue); outline-offset: 2px; }

@media (max-width: 899px) {
  .nk-sp-page { border-top-width: 2.5cqw; padding: 3.5cqw 4cqw 4.5cqw; }
  .nk-sp-bar { padding-bottom: 2cqw; margin-bottom: 3.5cqw; }
  .nk-sp-run { gap: 2.4cqw; }
  .nk-sp-run__name { --nk-name-size: 7.6cqw; padding: 0 1.4cqw 1cqw 0; }
  .nk-sp-run__no { font-size: 3.1cqw; }
  .nk-sp-run__issue { display: none; }
  .nk-sp-bar { gap: .5rem; flex-wrap: wrap; }
  .nk-sp-tony--copy { bottom: 0; }
  .nk-sp-tony__bubble { max-width: 52cqw; left: calc(100% + 2cqw); bottom: 40%; padding: 2cqw 3cqw; border-width: .6cqw; border-radius: 3cqw; font-size: 3.9cqw; box-shadow: .8cqw .8cqw 0 var(--nk-red); }
  .nk-sp-tony__bubble::before { left: -3cqw; bottom: 2.5cqw; border-width: 1.4cqw; border-right-width: 1.8cqw; }
  .nk-sp-tony--copy .nk-sp-tony__img { width: 38cqw; height: 40cqw; }
  .nk-sp-btn { padding: .5rem .8rem; font-size: .95rem; }
  .nk-sp-btn--prev, .nk-sp-btn--next, .nk-sp-btn--detail { min-width: 0; padding-left: .9rem; padding-right: .9rem; }
  .nk-sp-btn__long { display: none; }
  .nk-sp-btn__short { display: inline; }
  .nk-sp-nav { gap: .5rem; }
  .nk-sp-body { display: block; }
  .nk-sp-photo__frame { padding: 2cqw; }
  .nk-sp-photo__img { min-height: 0; max-height: 70cqw; }
  .nk-sp-cap { margin-top: 3cqw; font-size: 3.5cqw; }
  .nk-sp-copy { contain: none; width: 100%; height: 112cqw; margin-top: 5cqw; padding-top: 11cqw; }
  .nk-sp-head { font-size: 11cqw; margin-bottom: 17.5cqw; -webkit-text-stroke-width: .4cqw; }
  .nk-sp-sub { font-size: 4.2cqw; margin: 0 3cqw 17.5cqw 0; padding-right: 2cqw; }
  .nk-sp-uncf { font-size: 3cqw; margin: 0 2cqw 17.5cqw 0; padding: 1cqw .7cqw; }
  .nk-sp-tag { font-size: 5cqw; padding: 1.2cqw 3cqw; }
  .nk-sp-faces { gap: 3cqw; left: auto; right: 0; }
  .nk-face--sp { width: 11cqw; height: 11cqw; }
  .nk-sp-face { gap: 1cqw; }
  .nk-sp-face__name { font-size: 3.2cqw; }
  .nk-modal__panel { padding: .8rem 1rem 1.3rem; }
  .nk-modal__avatar { width: 5rem; height: 5rem; }
  .nk-modal__title { font-size: 1.25rem; }
  .nk-sp-nav { margin-top: 5cqw; padding-top: 4cqw; }
}
