/** Shopify CDN: Minification failed

Line 280:53 Unexpected "`"

**/
/* ============================================================================
   anv-tokens.css — 感謝祭ハブ「ANNIVERSARY ISSUE（案2）」デザイントークン正本
   ----------------------------------------------------------------------------
   これが唯一のトークンソース。全 anv-* セクションはここを参照する。
   仕様の正典: design/mocks/site-v21/DESIGN_DIRECTION.md（値はそこと1:1）。
   値を変えるときは DESIGN_DIRECTION.md と本ファイルを同時に更新すること。

   読み込み（本番セクション側の {%- stylesheet -%} より前に1回）:
     {{ 'anv-tokens.css' | asset_url | stylesheet_tag }}

   命名: 全トークンを --anv-* に名前空間化。案2スペックの --paper 等は
   --anv-paper に対応する（下の対応表参照）。Focal(theme.css) / c-* / Dawn系と
   衝突しないことを検証済み（CLAUDE.md 非交渉: 既存命名と絶対に被らない）。

   スペック名 → トークン名 対応:
     --paper→--anv-paper / --paper-2→--anv-paper-2 / --ink→--anv-ink
     --ink-soft→--anv-ink-soft / --byakugun→--anv-byakugun / --nakabeni→--anv-nakabeni
     --wakanae→--anv-wakanae / --fujimurasaki→--anv-fujimurasaki / --tamago→--anv-tamago
     --aonibi→--anv-aonibi / --serif→--anv-serif-display / --sans→--anv-sans / --en→--anv-en


   ★ モック運用メモ（v21 以降）: 本ファイルは本番 assets/anv-tokens.css と
     **同一内容**に保つ（2026-08-29 J-03 で同期した）。片方だけ編集しない。
     接頭辞なしの旧トークン名（--deep / --ink / --serif …）は
     assets/anv-compat.css がエイリアスとして持つ（モック専用・本番へ持ち込まない）。

   ── 更新履歴 ──────────────────────────────────────────────────────────
   2026-08-29 (v21 J-03) モック側 68トークンと本ファイル 38トークンの乖離を解消。
     ① v18 の色再設計を反映（紙・墨・罫線の値が v17 のまま止まっていた）
     ② 朱（--anv-vermilion / --anv-vermilion-deep）を追加。主CTAの地色に使う。
        これが無いあいだ、主CTAの色は実装で出せなかった
     ③ 暗色（深緑）・売場・木地・真鍮・見出し明朝・イージング・z-index 追補を追加
     ④ 明朝を --anv-serif-display の1つに統一（A-01）
   ========================================================================== */:where(.anv-teaser){/* ══════════════════════════════════════════════════════════════════════
     v18 カラー再設計「秋の昼 ／ 紙と紅葉」（2026-08-09・黒岩指示）
     ----------------------------------------------------------------------
     先方指摘 #10「全編通してこのダークネイビーは重たい印象」に対し、
     v17 は D17-3「色値は変えず面積で解く」で対応した。これを **撤回** する。

     撤回の理由: KV はすでに「秋の昼・湖・紅葉」（kv-autumn-lake）である一方、
     UI の地は v15 で追加された夜の紺（#08111d 系）のままだった。
     ＝ KV と UI の世界観が割れていたことが「重たい」の実体であり、
     面積調整では解けない。よって **色値そのものを KV 側へ寄せる**。

     設計原則（v18）:
       ① 紺は全廃する。ページ内に青紫系の暗色を置かない。
       ② 暗色の役目は「湖の深緑」が担う。面積は v17 比で約 1/3。
       ③ 祝祭の熱は紅葉の朱が持つ。真鍮は彩度を落として脇へ回る。
       ④ フロア7色は据え置き（KV のステンドグラスと一致しているため）。
     ══════════════════════════════════════════════════════════════════════ */

  /* --- カラー: 地と墨（基調はこのモノトーン。7色は面積小さく効かせる）------- */
  --anv-paper: #f6f2ea;       /* 地。生成りの紙（v17 #f7f6f3 → 黄味へ） */
  --anv-paper-2: #ece5d8;     /* 淡いセクション地（v17 #efede8） */
  --anv-ink: #211d18;         /* 墨。本文・見出し（純黒にしない） */
  --anv-ink-soft: #5c564c;    /* 補助文。paper 上で 6.8:1 */

  /* --- カラー: フロア7色（カラーチップ / 図版の座布団 / 見出し下線 / カラーバー）--- */
  --anv-byakugun: #8fc6d2;    /* 白群   = 1F 会員フロア */
  --anv-nakabeni: #cf7fa5;    /* 中紅花 = 2F 音楽 */
  --anv-wakanae: #a9c46c;     /* 若苗色 = 2F スポーツ */
  --anv-fujimurasaki: #9a8bc4;/* 藤紫   = 2F 映画 */
  --anv-tamago: #f2ce72;      /* 玉子色 = 2F 暮らし */
  --anv-aonibi: #2c5850;      /* 青鈍   = 3F 100選・締めの深緑 */

  /* --- カラー: 紅葉の朱（v18 新設・祝祭のアクセント）------------------------ */
  /* 面で塗らない。CTA・下線・章番号・カラーバーの一色として点で効かせる。
     コントラスト実測（WCAG 2.1・相対輝度から算出。docs/35_cta-system §2-3）:
       --anv-vermilion-deep 地 × --anv-paper 文字   6.03:1 → 主CTAはこれ
       --anv-vermilion      地 × --anv-paper 文字   4.30:1 → ボタン地に使わない
       --anv-vermilion-deep 文字 × --anv-paper 地   5.72:1 → テキストリンク
     紙地 #f6f2ea に対するコントラスト:
       --anv-vermilion       4.1:1 → 大きい文字・図形・枠線のみ
       --anv-vermilion-deep  5.7:1 → 本文サイズのリンク・小さい文字はこちら */
  --anv-vermilion: #c0562c;
  --anv-vermilion-deep: #9c4523;
  --anv-vermilion-press: #83381b;  /* :active（押した瞬間）。v21 H-06 で追加 */

  /* --- 罫線（区切りは余白と1pxの罫線。装飾グリッド線は禁止）----------------- */
  --anv-rule: rgba(33, 29, 24, 0.14);        /* 標準ヘアライン */
  --anv-rule-strong: rgba(33, 29, 24, 0.28); /* 表・見出し下線など強めの1px */
  --anv-line: #cdc4b2;                       /* 売場の罫線。--anv-rule より暖色寄り */

  /* --- タイポグラフィ -------------------------------------------------------- */
  /* 明朝はこの1つだけ（v21 A-01）。見出し・リード・ボタンを同じ書体で通す。
     モックは Google Fonts の Shippori Mincho B1、本番は self-host に切り替える。
     Shippori が落ちたときは Hiragino Mincho → Yu Mincho の順にフォールバックする。 */
  --anv-serif-display: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  /* 非推奨エイリアス（v20 以前の参照を壊さないためだけに残す。新規参照は --anv-serif-display）*/
  --anv-serif: var(--anv-serif-display);
  --anv-sans: "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", sans-serif; /* 本文・UI */
  --anv-en: "Helvetica Neue", Helvetica, Arial, sans-serif; /* 欧文・数字（Univers系代替）*/

  /* 本文組み（§2-2）: ゴシック15px / 行間1.9 / 計測幅34em */
  --anv-body-size: 15px;
  --anv-body-leading: 1.9;
  --anv-measure: 34em;        /* 本文の読み幅上限 */
  --anv-content-max: 720px;   /* cover-content 等の要素幅上限 */

  /* --- 余白（4pxグリッド。セクション余白は非交渉の下限あり）----------------- */
  --anv-space-1: 4px;
  --anv-space-2: 8px;
  --anv-space-3: 12px;
  --anv-space-4: 16px;
  --anv-space-6: 24px;
  --anv-space-8: 32px;
  --anv-section-py: 96px;     /* 章の縦余白（検収基準5: 96px以上）*/
  --anv-section-py-sp: 64px;  /* SPは64px以上 */
  --anv-page-gutter: 48px;    /* 左右ガター（PC）*/
  --anv-page-gutter-sp: 20px; /* 左右ガター（SP）*/

  /* --- 角丸（この意匠は角丸0が基調。ボタンも角丸0）------------------------- */
  --anv-radius: 0;
  --anv-radius-chip: 2px;     /* バッジ等ごく小さいものだけ */

  /* --- z-index（ヘッダー10 / SPメニュー20。999999 は使わない）--------------- */
  --anv-z-header: 10;
  --anv-z-menu: 20;
  --anv-z-rail: 5;            /* 昇降路レール（TOP のみ） */
  --anv-z-cta: 6;             /* 追従CTA */
  --anv-z-buybar: 8;          /* 商品詳細の追従購入バー */

  /* --- モーション（MOTION_INTENSITY 6。ループ禁止・即時表示の原則は各所で）--- */
  --anv-ease: cubic-bezier(0.16, 1, 0.3, 1); /* 標準リビール／ワイプ */
  --anv-ease-out: cubic-bezier(0.16, 1, 0.3, 1);  /* 着地リビール（facade 由来）*/
  --anv-ease-soft: cubic-bezier(0.33, 0, 0.2, 1);
  --anv-dur-reveal: 0.8s;     /* .rv リビール・図版クリップワイプ */
  --anv-dur-hover: 0.3s;      /* ホバー（0.25〜0.6sの標準）*/
  --anv-dur-hover-fast: 0.25s;
  --anv-dur-rv: 0.5s;
  --anv-dur-mask: 0.6s;

  /* ══════════════════════════════════════════════════════════════════════
     暗色＝湖の深緑（v18。旧「夜の紺」を置換した。ページ内に紺は無い）
     ----------------------------------------------------------------------
     KV の湖面から採った深緑。青紫を含まないため、同じ明度でも冷たく沈まない。
     使ってよい面は 4つだけ: ファサードの着床部 / 昇降路 / 3F / 退館。
     それ以外のセクションに暗色地を新設しないこと（v18 非交渉）。
     ══════════════════════════════════════════════════════════════════════ */
  --anv-deep: #22403f;        /* 標準の暗色地。旧 --anv-night #08111d */
  --anv-deep-2: #2b504d;      /* 一段明るい暗色（帯・カード）。旧 --anv-night-2 #0d1826 */
  --anv-deep-strong: #14282a; /* 最深。昇降路・退館。旧 --anv-shaft #05080d */

  /* 旧名エイリアス（v17 以前の CSS を壊さないための移行用。新規参照禁止） */
  --anv-night: var(--anv-deep);
  --anv-night-2: var(--anv-deep-2);
  --anv-shaft: var(--anv-deep-strong);

  /* --- 売場（紙・生成り・象牙。明るいセクションの地）------------------------ */
  --anv-stone: #ece5d8;       /* v17 #ece7dc */
  --anv-lit: #f6f2ea;         /* v17 #f6f1e7 */
  --anv-ivory: #fbf8f2;       /* v17 #faf7ef */

  /* --- 木地（階札・銘板・平台の台輪）--------------------------------------- */
  --anv-walnut: #2f241c;
  --anv-wood: #4f3b2c;

  /* --- 真鍮・金（v18 で彩度を落として脇へ。主役の熱は --anv-vermilion）------ */
  --anv-brass: #a8853f;       /* v17 #b79750 */
  --anv-oldbrass: #6b5730;    /* v17 #776138。紙地 6.2:1 ＝小さい文字にも使える */
  --anv-gold: #c29d52;        /* v17 #c9a95c */
  --anv-gold-dim: #836b39;    /* v17 #8a7340 */
  --anv-gold-lit: #d9b978;    /* v18 新設。深緑地の上の文字用（5.9:1） */}
/* フロア色ユーティリティ（章ごとの色差し替えに使う。--anv-floor を1つ塗れば済む）
   例: <section class="anv-floor1" ...>  → 下線・チップ・色面が白群になる */
/* 1F 会員フロア */
/* 3F 百選 */
/* ============================================================================
   anv-compat.css — 接頭辞なし旧トークン名のエイリアス（v21・モック専用）
   ----------------------------------------------------------------------------
   ⚠️ このファイルは本番テーマへ持ち込まない。

   v15 の index.html は `--deep` `--ink` `--serif` のように接頭辞なしの
   カスタムプロパティを inline `<style>` の `:root` に持っていた。
   同じ値が assets/anv-tokens.css にも `--anv-*` として存在し、二重管理だった
   （docs/35_cta-system §1-1「index だけ様式が分かれ続ける」の根本原因）。

   v21 で index.html / teaser.html の inline `:root` を削除した（A-02）。
   ただし section-anv-v19.css と section-anv-teaser.css は接頭辞なしの名前を
   まだ直接参照しているので、その参照が解決できるよう
   **値を持たないエイリアスだけ**をここに置く。実体は anv-tokens.css にある。

   読み込み順は必ず anv-tokens.css の直後。
     <link rel="stylesheet" href="assets/anv-tokens.css">
     <link rel="stylesheet" href="assets/anv-compat.css">
     <link rel="stylesheet" href="assets/anv-base.css">

   撤去の条件: section-anv-v19.css / section-anv-teaser.css の接頭辞なし参照を
   すべて --anv-* に置換したら、このファイルごと消す（UPDATE-PLAN C-02）。
   ========================================================================== */:where(.anv-teaser){/* 暗色＝湖の深緑 */
  --deep: var(--anv-deep);
  --deep-2: var(--anv-deep-2);
  --deep-strong: var(--anv-deep-strong);

  /* 売場（紙・生成り・象牙） */
  --stone: var(--anv-stone);
  --lit: var(--anv-lit);
  --ivory: var(--anv-ivory);

  /* 木地 */
  --walnut: var(--anv-walnut);
  --wood: var(--anv-wood);

  /* 真鍮・金 */
  --brass: var(--anv-brass);
  --oldbrass: var(--anv-oldbrass);
  --gold: var(--anv-gold);
  --gold-dim: var(--anv-gold-dim);
  --gold-lit: var(--anv-gold-lit);

  /* 紅葉の朱 */
  --vermilion: var(--anv-vermilion);
  --vermilion-deep: var(--anv-vermilion-deep);

  /* 墨・罫線 */
  --ink: var(--anv-ink);
  --soft: var(--anv-ink-soft);
  --line: var(--anv-line);
  --rule: var(--anv-rule);
  --rule-strong: var(--anv-rule-strong);

  /* フロア7色（--blue / --pink / --green / --violet / --yellow は v15 の別名）*/
  --byakugun: var(--anv-byakugun);
  --nakabeni: var(--anv-nakabeni);
  --wakanae: var(--anv-wakanae);
  --fujimurasaki: var(--anv-fujimurasaki);
  --tamago: var(--anv-tamago);
  --aonibi: var(--anv-aonibi);
  --blue: var(--anv-byakugun);
  --pink: var(--anv-nakabeni);
  --green: var(--anv-wakanae);
  --violet: var(--anv-fujimurasaki);
  --yellow: var(--anv-tamago);

  /* 書体（--serif は明朝の正 --anv-serif-display を指す・A-01）*/
  --serif: var(--anv-serif-display);
  --sans: var(--anv-sans);
  --en: var(--anv-en);

  /* イージング・デュレーション */
  --ease-out: var(--anv-ease-out);
  --ease-soft: var(--anv-ease-soft);
  --dur-rv: var(--anv-dur-rv);
  --dur-mask: var(--anv-dur-mask);}
/* ============================================================================
   anv-base.css / 感謝祭ハブ v16-1 共通クラス（Phase 0 で固定）
   ----------------------------------------------------------------------------
   読み込み順（各ページ <head>）: anv-tokens.css → anv-base.css → ページ固有CSS
   このファイルは「裸の anv-<名前>」を専有する。各ページCSSは tokens→base の順で
   読み、ページ固有クラス（anv-lp- / anv-f1- / anv-f2- / anv-ph- / anv-jr-）だけを
   定義すること（ここにある共通クラスを再定義しない）。

   実装は v15 index.html の該当CSSを --anv-* トークンへ正規化して移植したもの。
   非交渉: CSSプレフィックス anv- / z-index は §4-1 トークンのみ・10000未満 /
   購入導線は演出ゼロ即時 / reduced-motion・JS無効で完成形即時（armed機構が担保）。
   ========================================================================== */
/* ════════════════ 0. リセット・土台（SP390pxで横スクロールを出さない基盤） ════════════════ */:where(.anv-teaser), :where(.anv-teaser) *,:where(.anv-teaser) *::before,:where(.anv-teaser) *::after{box-sizing: border-box; margin: 0; padding: 0;}:where(.anv-teaser){font-family: var(--anv-sans);
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: .02em;
  color: var(--anv-ink);
  background: var(--anv-deep);              /* 横スクロール保険（本来は各要素の max-width で出さない） */
  -webkit-font-smoothing: antialiased;}
/* ── 和文の組版（H-19）────────────────────────────────────────────────
   句読点や送り仮名が1〜2文字だけ次の行に落ちる崩れ（「販売開始にあわせて掲載しま／す。」
   「ご利用いただけま／す」「（WOWOWコミュニケーショ／ンズ）」）を、章ごとに手当てしていた。
   実測では word-break / text-wrap の指定が v19.css に32件・teaser に11件ある一方、
   ph.css は1件・f1.css と jr.css は0件で、当たっている章と当たっていない章に割れていた。
   ここで既定にする。
     line-break: strict      行頭に置けない文字（禁則）を厳格に扱う
     word-break: auto-phrase 文節で折る（「ご利用／いただけます」）。既存75箇所と同じ技法
     text-wrap: pretty       最終行に1語だけ残さない ／ balance は見出し2行の長さを均す
   個別の keep-all・nowrap はクラス指定なので詳細度でこの既定に勝つ（上書きされない）。

   🔴 2026-09-03: ここに `*/:where(.anv-teaser) ` が余分に入っていて、コメントが早く閉じていた。
      続く ⚠️ の段落が**セレクタとして読まれ**、`body{line-break: strict;}:where(.anv-teaser) p,:where(.anv-teaser) dd,:where(.anv-teaser) dt,:where(.anv-teaser) figcaption,:where(.anv-teaser) blockquote,:where(.anv-teaser) caption{text-wrap: pretty;}:where(.anv-teaser) h1,:where(.anv-teaser) h2,:where(.anv-teaser) h3,:where(.anv-teaser) h4,:where(.anv-teaser) h5,:where(.anv-teaser) h6{text-wrap: balance;}:where(.anv-teaser) img{display: block; max-width: 100%;}:where(.anv-teaser) a{color: inherit; text-decoration: none;}:where(.anv-teaser) button{font: inherit;}:where(.anv-teaser) :focus-visible{outline: 2px solid var(--anv-brass); outline-offset: 3px;}
/* 固定ヘッダー(64px)＋追従フロアガイド(46px)にアンカー着地が隠れないための共通オフセット */:where(.anv-teaser) main section[id]{scroll-margin-top: 122px;}
/* ════════════════ 1. レイアウト・タイポ ════════════════ */
/* 読み上げにだけ渡す文字（画面には出さない）。v20 まで index のインラインCSSにしか無く、
   他7ページで「ログイン状態: 」が可視化されてフロアガイドの幅を食っていた。 */.anv-vh{position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;}
/* ════════════════ 2. ボタン・テキストリンク（v21 A-03・型は5つだけ） ════════════════
   正本: docs/35_cta-system-0828 §2-1「整備後の体系」§2-4「確定スペック（案B 明朝の箱）」

     .anv-btn.anv-btn--accent   主CTA   朱地・白抜き・明朝  1セクションに1つ
     .anv-btn.anv-btn--outline  副CTA   地なし・墨の1px枠・明朝
     .anv-text-link             補助    朱文字＋「→」・ゴシック
     .anv-chip                  絞り込み・ブランド（A60）・ゴシック
     .anv-cardlink              カード全面リンク（内側にリンクを置かない）

   垂直中央の4条件（§2-4B・実描画のピクセル走査 tools/ink-center.py で確定）:
     ① 縦 padding は書体ごとの補正ぶんだけ。高さは min-height で作る
     ② line-height: 1
     ③ font-size は整数 px（小数だと em ボックスと行ボックスが一致しない）
     ④ 字送りが .1em 以上なら text-indent に同じ値を入れる
        （letter-spacing は最後の1文字の後ろにも入るため、中央がその半分だけ左へずれる）
   補正量は書体で違う。実測（design/versions/v21/tools/measure-center.mjs → ink-center.py）:
     Shippori Mincho B1 16px  無補正で +1.00〜+1.25px 下寄り → padding-bottom: 1px で ±0.75px 以内
     Hiragino Kaku Gothic 14px 無補正で −2.00px 上寄り      → padding-top: 2px    で ±0.75px 以内
   書体・サイズを変えたら測り直すこと。 */.anv-btn{display: inline-flex; align-items: center; justify-content: center;
  min-height: 58px; padding: 0 40px 1px;     /* 下の 1px だけが中央の補正（§2-4B 条件①）*/
  line-height: 1;
  border: 1px solid transparent; border-radius: var(--anv-radius);
  font-family: var(--anv-serif-display);     /* 見出しと同じ明朝で誌面を一続きにする */
  font-weight: 600; font-size: 16px;
  letter-spacing: .16em; text-indent: .16em; /* 字送りの末尾ぶんを戻す（条件④） */
  text-align: center;
  /* ラベルが折れるとき末尾に1〜2文字だけ残さない（H-27）。H-19 の既定は p/dd/figcaption 等が
     対象で、ボタン（a・span）が外に落ちていた。ただし text-wrap:pretty は和文では効かない
     （単語境界が無いため。実測で「見る」の孤立が残った）ので auto-phrase で文節折りにする。
     H-26 の教訓どおり**クラス指定に限る**（要素セレクタに当てると min-content 幅が増えて
     flex/grid の子が広がる）。当てた直後に 390/768/1280 の横スクロールを実測して 0px を確認済み。 */
  text-wrap: pretty; word-break: auto-phrase;
  transition: background var(--anv-dur-hover), color var(--anv-dur-hover),
              border-color var(--anv-dur-hover);}
/* 主CTA。朱地 × 紙のアイボリー = 6.03:1（WCAG AA）。朱を面で塗るのはここだけ */.anv-btn--accent{background: var(--anv-vermilion-deep); border-color: var(--anv-vermilion-deep);
  color: var(--anv-paper);}.anv-btn--accent:hover{background: var(--anv-vermilion); border-color: var(--anv-vermilion);}
/* 副CTA。紙地の上は墨の1px枠、暗色地の上はアイボリーの1px枠 */
/* ラベルが全角16字を超えて折り返すときだけ。まずラベルを短くすること（§2-4C） */
/* ファーストビューのCTA。型は主CTAのまま、寸法だけ上書きする */
/* 移行期のエイリアス（v20 以前の --dark / --brass。v22 で削除する） */@media (max-width: 767px){.anv-btn{min-height: 54px; padding: 0 20px 1px; font-size: 15px; width: 100%;}
  /* SP幅でだけ2行になるラベル。line-height: 1 のまま折り返すと行が接するので、
     SP のときだけ行間を戻す。PC は1行なので中央条件（§2-4B）を崩さない。 */
}
/* テキストリンク。ゴシックなので padding-top: 2px の補正が要る（§2-4B） */
/* チップ。用途は A60 のブランド別と 3F のジャンルアンカーだけ（F-06 で用途を限定した） */
/* 価格ラベル（A49「ログイン限定価格」）。価格の近傍に置く小さな箱。
   docs/21 の B案が採用画面。文言の正は docs/32 A49。
   v21 以前は .anv-f2-login__tag（2F 専用）だけがこの見た目を持っていた。 */
/* 注記の中のインラインリンク（F2-09）。ボタンでもテキストリンクでもない、本文中の参照。 */
/* カード全面リンク。内側にリンクを持たせない（押せる場所が2つに見える） */
/* 一覧が未作成のとき。role="link" + aria-disabled で出す。実URLは当てない（§2-5） */
/* 準備中は押せない。塗りを残したまま薄くすると、押せないものが画面で最も目立つ（H-24）。
   実測では floor-2 の4ジャンルが朱ベタ（--anv-vermilion-deep = 主CTAの色）で出ていて、
   index の同じ「準備中」はテキストリンク様式だった＝同じ状態が2つの強さで出ていた。
   押せない側を弱い方に寄せて、様式を1つにする。 */
/* ── 空・読み込み中・売り切れ（H-07）───────────────────────────────────
   一覧が0件になったとき、通信が終わっていないとき、在庫が無いとき。
   どれも「何も出ない」で済ませない。is-pending（一覧が未作成）と同じ書き方に揃える。

     <p class="anv-state anv-state--empty">条件に合う商品はありませんでした。</p>
     <p class="anv-state anv-state--loading" role="status">読み込んでいます</p>
     <span class="anv-state-tag">売り切れ</span>          （カード・商品名の隣）

   ⚠️ 読み込み中に骨組み（スケルトン）のアニメーションは置かない。
      非交渉ルール5（reduced-motion で完全停止）と購入導線の演出ゼロに合わせ、
      静止した1行で出す。 */
/* 売り切れのカードは押せるが、価格の代わりにこのタグが出る */
/* ── 状態（H-05 / H-06）──────────────────────────────────────────────
   :focus-visible はキーボード操作の現在地。:active は押した瞬間の反応で、
   SP には hover が無いためこれが唯一の手応えになる。 */.anv-btn:focus-visible{outline: 2px solid var(--anv-vermilion-deep); outline-offset: 3px;}[data-theme="dark"] .anv-btn:focus-visible{outline-color: var(--anv-gold-lit);}.anv-btn--accent:active{background: var(--anv-vermilion-press); border-color: var(--anv-vermilion-press);}
/* ════════════════ 3. ヘッダー（唯一のロゴ）＋ SPメニュー ════════════════ */
/* ── ロゴ（唯一のロゴ）──────────────────────────────────────────────────
   本番ストアの支給ロゴ（https://dept.wowow.co.jp/ ヘッダーの 158×96 PNG・白地に黒）を
   透過マットへ起こし、墨とアイボリーの2版に着色して置いてある。
     wowow-dept-logo.png        黒＋α（master。Shopify 実装で色を変えるときの元）
     wowow-dept-logo-ink.png    #211d18（紙地の区間）
     wowow-dept-logo-ivory.png  #fbf8f2（暗色地の区間）

   ⚠️ mask-image は使わない。**マスク画像は CORS の対象**で、`file://` で開いたとき
      （社内のビジュアルQAはこれ）と、本番で CDN 別ドメインから読むときに落ちる。
      背景画像なら制約を受けない。実測: file:// で net::ERR_FAILED、ロゴが消えた。
   ⚠️ 色は currentColor では取れないので、2版を重ねて opacity で入れ替える。
      ヘッダーの色遷移（.35s）と同じ長さでクロスフェードさせるため。 */
/* ── FV の上でナビが読めない（F-19・黒岩 08-31 実機目視）───────────────
   ファサード区間ではヘッダーに地色を敷かない設計だが、建物の明部や
   シャンデリアにアイボリーの小文字が乗ると 2:1 も出ない。
   地色は足さず、**上端からのごく薄いグラデーション**だけで足元を作る。
   地色を持つ区間（.light / .anv-t-scrim）では二重にかからないよう消す。 */
/* 紙地の区間（ヘッダーに .light が付く）だけ墨の版を出す */
/* dark区間: 半透明の夜スクリム / light区間: 紙地スクリム */
/* ════════════════ 4. 追従CTA（購入導線＝演出ゼロ・即時表示。SPのみ） ════════════════ */
/* 非交渉「購入導線は演出ゼロ即時」に従い、SP幅では常時可視（スライドイン等の登場演出を持たない）。
   ページ側でスクロール連動の出し入れをしたい場合は各自の責務でJSを足す（base.jsは関与しない）。 */
/* ════════════════ 4-B. 追従フロアガイド（v17 C-1 / C-2・新規機構） ════════════════
   #9「フロアガイドをスクロール追従型に（現在地が常に分かる／LINE等から各階に直接来ても回遊できる）」
   ＋ #20 / #12「SPでも1F〜4Fへ自由に飛べる導線」（既存 lift-rail はPC限定）
   ＋ 定例アクション#2「ログイン状態可視化UI」
   の3つを、館内の「案内板」1本にまとめて解く。

   ⚠️ 混同禁止: これは購入CTAの追従ではない。D-3「サイト共通の追従CTAは付けない」は継続しており、
      .anv-sticky-cta（購入導線の追従）はどのページでも使っていない。

   規律:
   - z-index 9（ヘッダー10 未満 → ヘッダーの下に潜る。SPメニュー20・入場幕500 には覆われる）
   - scroll リスナーを新設しない（既存のヘッダー theme 追従に相乗りして現在フロアを更新する）
   - JS無効／reduced-motion では最初から可視の「静的なフロアリンクの帯」として機能する
   - dark区間・light区間のどちらの上にも同じ紙地＋真鍮罫で置く（案内板は館の備品＝見た目が変わらない） */
/* ヒーロー（夜のファサード）の上だけは伏せる＝入館してから案内板が現れる。JS が付け外しする */
/* SP は項目が入り切らずスクロールになる（実測 174 > 169px）。ぶつ切りだと「読みもの」が
   「読み」で切れて事故に見えるので、右端をぼかして「続きがある」ことを見せる（H-18）。
   ※ マスクは linear-gradient のみ。画像マスクは CORS の対象で file:// と CDN で落ちる（ロゴの項参照） */
/* ログイン状態（定例#2）。モックでは押すと状態が入れ替わる検証用トグル＝実装では読み取り専用の表示 */
/* ログイン状態チップ（v21 I-03・本番仕様）。3状態を表示し、
   未ログインのときだけログインへの導線を持つ。切替の演出は持たない（非交渉ルール4）。 */
/* ② ログイン済み・非加入者 → 朱の文字 ／ ③ 加入者 → ドットも塗る */
/* 固定バーの高さぶんを最初のセクションに空ける（深掘りページ用。index はヒーローが全面なので置かない） */
/* ログイン状態による出し分け（B-1・定例#2）。
   ⚠️ display の付け外しでは切替えない: display:revert は「著者スタイルの値」ではなく UA 値へ戻るため、
      flex / grid のコンテナが block に落ちてレイアウトが壊れる。よって hidden 属性で切り替え、
      hidden が display:flex 等に負けないよう最強で潰す（JS が hidden を付け外しする）。
   既定（HTMLに hidden を書いた状態＝JS無効・初回訪問）は「未ログイン」表示＝ゲストが取り残されない安全側。
   購入・獲得導線に関わる要素なので transition / animation は一切持たせない（演出ゼロ即時・非交渉）。 */:where(.anv-teaser) [hidden]{display: none !important;}
/* ════════════════ 5. 階札（コンパクトな真鍮プレート帯） ════════════════ */
/* v17 #21: 階数の視認性を上げる（枠を太く大きく・字を明るく＝「階を示す数字」だと分かる。index 側と同寸） */
/* ════════════════ 6-A. 人格表現 A1（落款＋付け札＋名札）＝実写肖像の代替 ════════════════
   v17 D17-4: 社員の実写切り抜きは使わない（先方指示 #19 / #26 / #40）。人格は
     ① 落款  = 姓を刻した小さな方形の印（誰が話しているかの標）
     ② 付け札 = 真鍮罫＋ノッチで「これは発話だ」と示す器
     ③ 名札  = 肖像パネルの寸法枠を引き継ぐ、名前・肩書・現在案内の板
   の三点で立てる。LP／フロア／PDP の3面で同じ型を使い回す（定例P3の「アイコン＋吹き出し」への回答）。
   非交渉:
   - ラスター画像・生成画像を一切使わない（CSSの文字と罫だけで作る＝差し替え容易・軽量・権利フリー）
   - 新色をトークンに足さない（--anv-brass / --anv-ink / --anv-ivory / --anv-line だけで組む＝D17-3と整合）
   - v14 のイラスト肖像（assets/ に残る illust 系の遺産）は再利用しない（R-3・黒岩「微妙」判定済み）
     ＝ 参照は0にする。機械チェックの grep パターンをこのコメントで汚さないため実ファイル名は書かない。 */
/* 3文字姓（長谷川 等）は字面を詰めて印面に収める */
/* v17-2: 落款（姓の印）は和風の判子が全体から浮くため、案内表示のピクトグラムに差し替えた。
   「実写を持たない」方針（D17-4）はそのまま。図版は assets/anv-staff-icons.svg のシンボルを
   各ページに展開して <use> で参照する（Chrome は外部SVGの use を解決しないためインライン展開）。
   色は currentColor＝周囲の文字色に従うので、新しい色トークンを増やさない（D17-3と整合）。 */
/* 付け札（発話の器）: 落款が左、真鍮罫の内側に発話。罫から出るノッチが落款を指す。
   汎用のチャットバブル（角丸＋尻尾）にはしない＝案2「昼・紙・墨」のトーンを優先。 */
/* ════════════════ 6. 担当者ガイド（名札＋付け札で案内する。実写肖像は持たない） ════════════════ */
/* sticky配置に使う親グリッド（.scene等）は各ページの責務。ここは名札・声・現在案内の見た目を提供する。 */
/* --plated: 名札パネルを持つガイド。ガイド自身の罫は外し、真鍮罫は「声（付け札）」側へ移す
   ＝名札（誰）→ ノッチ →付け札（何を言ったか）の順で読める。 */
/* --plated は名札が「上」にあるので、ノッチは上向き＝直上の名札を指す
   （横並びの付け札＝.anv-curator-note--voiced は左向き。指す方向を幾何に合わせる） */
/* 暗地フロアに置く場合の色反転（floor-3等） */
/* 口上札（各フロアを担当者の世界にする一言帯） */
/* ════════════════ 7. 図版・銘板・価格札（売場の商品カード原子） ════════════════ */
/* 図版枠（額装のように内側に光沢。物撮りは正方が既定・main修飾で 4:3） */
/* 銘板（木地のプレート。番号→品名→理由） */
/* 小さな真鍮バッジ（STAFF PICK 等の見出し札） */
/* 価格札（端正・小さめ・tabular-nums。%OFFの大書きはしない） */
/* ════════════════ 8. 回遊ナビ（次へ誘う帯 hallband ＋ 全ページリンク crossnav） ════════════════ */
/* crossnav: フッター直上の全ページリンク4枚（トップ / 1F / 2F / 読みもの） */
/* ════════════════ 9. フッター（legal-floor 移植・特商法リンク） ════════════════ */
/* ════════════════ 10. 着地リビール（売場だけ・一度きり・安全退避ゲート） ════════════════
   規律: 既定は完成形（可視）。html.anv-armed が付く時のみ初期状態へ退避し、IOで .anv-in→完成。
   → JS無効/reduced-motion では armed が付かず、中身は常に見える。transform/opacity/clip のみ。
   価格・CTA（購入導線）は data-rv を付けず即時表示（CVR死守）。v15 §v9/v10 を無改変移植。 */html.anv-armed [data-rv]{transition-delay: var(--d, 0s);}
/* line: 見出しライン。下から上へ clip ワイプ＋微 translate＋blur 3px→0 */html.anv-armed [data-rv="line"]{clip-path: inset(0 0 112% 0); transform: translateY(14px); filter: blur(3px);
  transition: clip-path var(--anv-dur-rv) var(--anv-ease-out),
              transform var(--anv-dur-rv) var(--anv-ease-out),
              filter .6s var(--anv-ease-out);
  transition-delay: var(--d, 0s);}html.anv-armed [data-rv="line"].anv-in{clip-path: inset(0 -.06em -.2em 0); transform: none; filter: blur(0);}
/* rise: eyebrow / 数字 / 小要素の浮上 */html.anv-armed [data-rv="rise"]{opacity: 0; transform: translateY(9px);
  transition: opacity var(--anv-dur-rv) var(--anv-ease-out), transform var(--anv-dur-rv) var(--anv-ease-out);
  transition-delay: var(--d, 0s);}html.anv-armed [data-rv="rise"].anv-in{opacity: 1; transform: none;}
/* mask: 商品画像が「置かれる」所作（figure をクリップし内側 img を 1.055→1） */html.anv-armed [data-rv="mask"]{overflow: hidden;}html.anv-armed [data-rv="mask"] img{transform: scale(1.055); opacity: 0;
  transition: transform var(--anv-dur-mask) var(--anv-ease-out), opacity var(--anv-dur-rv) var(--anv-ease-soft);
  transition-delay: var(--d, 0s);}html.anv-armed [data-rv="mask"].anv-in img{transform: none; opacity: 1;}
/* plate: 真鍮プレート帯が着地（番号が pop→文字が浮上） */
/* rows: 定義リスト等を子要素単位で 80ms 刻みに浮上させる（末尾 .38s） */html.anv-armed [data-rv="rows"] > *{opacity: 0; transform: translateY(9px);
  transition: opacity var(--anv-dur-rv) var(--anv-ease-out), transform var(--anv-dur-rv) var(--anv-ease-out);}html.anv-armed [data-rv="rows"] > *:nth-child(1){transition-delay: .22s;}html.anv-armed [data-rv="rows"] > *:nth-child(2){transition-delay: .3s;}html.anv-armed [data-rv="rows"] > *:nth-child(3){transition-delay: .38s;}html.anv-armed [data-rv="rows"].anv-in > *{opacity: 1; transform: none;}
/* グループ着地の階段（隣接要素を 70ms 刻み。--d を各ページで上書きしてもよい） */
/* ════════════════ 11. 安全退避: reduced-motion 全停止（完成形を即時表示） ════════════════ */@media (prefers-reduced-motion: reduce){:where(.anv-teaser), :where(.anv-teaser) *,:where(.anv-teaser) *::before,:where(.anv-teaser) *::after{animation: none !important; transition: none !important;}
}
/* ════════════════ 12. 共通レスポンシブ（ナビ切替・幅・ヘッダー） ════════════════ */@media (max-width: 640px){:where(.anv-teaser){font-size: 15px;}
}
/* ════════════════ 13. 深掘りページ入場遷移（疑似オーバーレイ・v15 lift 語彙の転用） ════════════════
   B-2: PC(≥1024)+JS有効+non-reduced でのみ発火。reduced-motion/SP(<1024) では要素自体を display:none にし、
   JS 側もガードで発火しない（二重ガード）＝<a> は通常リンクとして即時遷移。
   z-index 500（<10000・既存トークン体系と非衝突）。scrollリスナー不使用（click/rAF/setTimeout のみ）。
   購入導線には data-lift-transition を付けない＝この演出は掛からない。 */
/* 扉筋レール（v15 .lf-shaft .door 色を踏襲・左右24%） */
/* 左右から幕のように閉じる扉（v15 door 位置設計を帯へ拡張＝scaleX 0→1） */
/* 上昇ストリーク×3（v15 @keyframes streak を1周のみ流用・名前空間化） */
/* 階数表示（v15 .lf-digits を縮小） */
/* SP・reduced-motion では要素自体を無効化（JS も発火しない二重ガード） */
/* v17-2: ログイン後の一覧・PDPに割引率を添える（黒岩判断・2026-08-09）。
   未ログイン時は出さない（OUR-DECISIONS #6）＝ .anv-auth--member の中だけに置く。 */
/* ===== [1/5] index.html インライン <style> ===== */
/* v21 A-02: ここにあった :root（接頭辞なしの色・書体トークン）を廃止した。
   値の正は assets/anv-tokens.css、接頭辞なしの旧名は assets/anv-compat.css が橋渡しする。
   読み込み順は anv-tokens.css → anv-compat.css → anv-base.css → 本ファイル。 */:where(.anv-teaser), :where(.anv-teaser) *{box-sizing:border-box;margin:0;padding:0}:where(.anv-teaser){font-family:var(--sans);font-size:16px;line-height:1.85;letter-spacing:.02em;color:var(--ink);background:var(--deep);-webkit-font-smoothing:antialiased}:where(.anv-teaser) img{display:block;max-width:100%}:where(.anv-teaser) a{color:inherit;text-decoration:none}:where(.anv-teaser) button{font:inherit}:where(.anv-teaser) :focus-visible{outline:2px solid var(--brass);outline-offset:3px}.anv-t-wrap{width:min(1160px,calc(100% - 48px));margin-inline:auto}:where(.anv-teaser) section{position:relative}
/* fixed header, sole visual logo */
/* v17: 固定ヘッダー(64px)＋追従フロアガイド(46px)にフロア見出しが隠れないよう着地位置を下げる */
/* ════════════════ v17 C-1/C-2: 追従フロアガイド（正本 assets/anv-base.css §4-B） ════════════════
   #9 追従型フロアガイド ＋ #20/#12 SPでも各階へ飛べる ＋ 定例#2 ログイン状態可視化 を1本の案内板で解く。
   ⚠️ 購入CTAの追従ではない（D-3「サイト共通の追従CTAは付けない」は継続）。
   z-index 9（ヘッダー10未満）／scrollリスナー新設なし（既存 updateHeader に相乗り）／
   JS無効・reduced-motion では最初から可視の静的フロアリンクとして機能する。 */
/* ログイン状態による出し分け（B-1・#4）。⚠️ display の付け外しでは切替えない（display:revert は
   著者値ではなく UA 値へ戻り flex/grid が block に落ちる）。hidden 属性で切替え、hidden を最強にする。
   既定（HTMLに hidden を書いた状態＝JS無効・初回）は未ログイン表示＝ゲストが取り残されない。
   獲得導線なので transition / animation は一切かけない（演出ゼロ即時・非交渉）。 */:where(.anv-teaser) [hidden]{display:none!important}
/* elevator rail */
/* ════════════════ 0. facade（夜の外観・入館プロローグ。v4フォーク＝黒岩◎資産） ════════════════ */
/* v17: --p を明示宣言（JS無効時に var(--p) が invalid → 各 scrub 式が初期値へ落ちて
   ナレーション/着床画像/CUE が同時表示され重なる事故を防ぐ。p=0＝入館前の完成形） */
/* 2026-09-03: 340vh → 220vh（SP 200vh → 160vh）に詰めた。
   TZ-4 で FV のCTAが「スクロール」になり、ログインボタンが .anv-t-login の1本だけになる。
   340vh のままだと、先方KPI（ログインボタンのクリック数）の唯一の受け皿へ
   PC で約3.4画面ぶんスクロールしないと届かない。
   h1 が消えて --p 0.26〜0.62 が何も起きない空白区間になったぶんを詰めている。
   スクラブの計算式（--p）は不変なので演出そのものは保存される（速度だけ上がる）。 */.anv-t-facade{height:220vh;background:var(--deep);--p:0}@media (max-width:640px){.anv-t-facade{height:160vh}
}.anv-t-facade .anv-t-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--deep)}.anv-t-facade .anv-t-stage > *{position:absolute;inset:0;will-change:transform,opacity}.anv-t-fx-sky-base{background:radial-gradient(ellipse at 50% 20%,var(--deep-2),var(--deep) 70%)}
/* 実動画背景。二重ラッパ: 外=scrubのpush-in／内=load-inのsettle+brightness flare（非競合） */.anv-t-fx-video-wrap{transform-origin:50% 78%;
  transform:scale(calc(1 + var(--p) * .42))}
/* v17 D-4/#3: SPは押し込み量を抑えて「引きの構図」を保つ（寄りすぎて縦長に見えるのを防ぐ） */@media (max-width:640px){.anv-t-fx-video-wrap{transform:scale(calc(1 + var(--p) * .22))}
}.anv-t-fx-video{width:100%;height:100%;object-fit:cover;object-position:50% 100%;
  display:block;background:var(--deep);
  opacity:clamp(0, calc((.62 - var(--p)) * 6), 1)}html.anv-armed .anv-t-fx-video{transform:scale(1.12);filter:brightness(.60)}.anv-t-facade.anv-t-booted .anv-t-fx-video{animation:fx-video-scale 1.4s cubic-bezier(.16,1,.3,1) both,
            fx-video-flare .95s cubic-bezier(.16,1,.3,1) .15s both}@keyframes fx-video-scale{0%{transform:scale(1.12)}100%{transform:scale(1)}}@keyframes fx-video-flare{0%{filter:brightness(.60)}78.9%{filter:brightness(1.06)}100%{filter:brightness(1.0)}}.anv-t-fx-win{opacity:clamp(0, calc((.5 - var(--p)) * 5), 1)}.anv-t-fx-win i{position:absolute;width:min(1.6vw,18px);height:min(1.6vw,18px);border-radius:50%;
  opacity:.55;transition:opacity .8s ease-out var(--wd,0s)}html.anv-armed .anv-t-fx-win i{opacity:0}.anv-t-facade.anv-t-booted .anv-t-fx-win i{opacity:.55}.anv-t-fx-win .anv-t-w1{left:38%;top:56%;background:radial-gradient(circle,var(--byakugun),transparent 70%);--wd:.9s}.anv-t-fx-win .anv-t-w2{left:44%;top:60%;background:radial-gradient(circle,var(--fujimurasaki),transparent 70%);--wd:1.0s}.anv-t-fx-win .anv-t-w3{left:52%;top:57%;background:radial-gradient(circle,var(--nakabeni),transparent 70%);--wd:1.1s}.anv-t-fx-win .anv-t-w4{left:58%;top:61%;background:radial-gradient(circle,var(--wakanae),transparent 70%);--wd:1.2s}.anv-t-fx-win .anv-t-w5{left:47%;top:65%;background:radial-gradient(circle,var(--tamago),transparent 70%);--wd:1.3s}.anv-t-fx-dim{background:var(--deep-strong);
  opacity:clamp(0, calc((var(--p) - .22) * 1.8), .62)}.anv-t-facade:not(.anv-t-settled) .anv-t-fx-dim{opacity:.62}.anv-t-facade.anv-t-booted:not(.anv-t-settled) .anv-t-fx-dim{opacity:0;transition:opacity .85s cubic-bezier(.16,1,.3,1) .15s}.anv-t-fx-glow{pointer-events:none}.anv-t-fx-glow i{position:absolute;left:50%;top:78%;width:min(58vmin,620px);height:min(58vmin,620px);
  border-radius:50%;
  background:radial-gradient(circle,rgba(194,157,82,.9) 0%,rgba(194,157,82,.45) 32%,rgba(194,157,82,0) 68%);
  filter:blur(18px);
  transform:translate(-50%,-50%) scale(.5);opacity:0}.anv-t-facade.anv-t-booted .anv-t-fx-glow i{animation:fx-glow-ignite 1.6s cubic-bezier(.16,1,.3,1) .2s 1 both}@keyframes fx-glow-ignite{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
  28%{opacity:.55;transform:translate(-50%,-50%) scale(1.2)}
  47%{opacity:.30;transform:translate(-50%,-50%) scale(1)}
  85%{opacity:.30;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}.anv-t-fx-leak{display:flex;align-items:center;justify-content:center;pointer-events:none}.anv-t-fx-leak i{width:8px;height:100%;background:linear-gradient(180deg,transparent,var(--gold) 15%,var(--gold) 85%,transparent);
  filter:blur(6px);
  transform:scaleX(clamp(0, calc((var(--p) - .34) * 5), 1));
  opacity:clamp(0, calc((.66 - var(--p)) * 8), .9)}.anv-t-fx-hall{opacity:clamp(0, calc((var(--p) - .5) * 4), 1)}
/* v18: hall-lobby.jpg は紺と紫の強い夜の内観で、秋の昼のパレットから浮く。
   画像を作り直さずに済むよう、色温度だけを紙と真鍮の側へ寄せる（着床の一瞬しか映らないため）。
   ここで生成画像の内容は変えていない（人物・ブランド・ロゴは元から無い）。 */.anv-t-fx-hall img{width:100%;height:100%;object-fit:cover;
  filter:sepia(.55) saturate(1.34) hue-rotate(-18deg) brightness(1.4) contrast(.94);
  transform:scale(calc(1.14 - clamp(0, calc(var(--p) - .5), .5) * .24))}.anv-t-fx-hall .anv-t-scrim{position:absolute;inset:0;
  background:linear-gradient(rgba(192,86,44,.10),rgba(34,64,63,.26))}
/* TZ-2: 銘板を画面中央（キャッチコピーがあった位置）へ移す。
   ⚠️ 真ん中ぴったり（50%）には置かない。画面の 45〜60% は建物の大アーチ＝
      ステンドグラスで、この面の上では額の1px罫（rgba(194,157,82,.62)）が消える。
      塊を中央に置くと、銘板そのものは砂岩の無地帯（光学中央 42〜46%）に乗る。
      §12-4 のとおり画面高で位置関係が変わるので、1つの高さで見て決めない。 */.anv-t-fx-poster{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:var(--ivory);padding:clamp(72px,12svh,128px) 24px clamp(72px,12svh,128px);
  text-shadow:0 2px 26px rgba(20,40,42,.75);z-index:1;
  opacity:clamp(0, calc((.26 - var(--p)) * 7), 1);
  transform:translateY(calc(var(--p) * -140px))}
/* v17-2 視認性: 昼のKV（紅葉・明るい壁面）の上で淡色の文字が沈む。画面全体を暗くすると
   #10「ダークネイビーが重い」に逆行するため、局所のスクリムを敷く。

   ⚠️ TZ-39（2026-09-07）で**濃さの分布を上下ひっくり返した**。
      旧: 上端 .56 → 下へ薄れて 80% で 0（＝文字が上半分にいた時代の形）
      新: 上を薄く、40% から下を濃く

      理由は2つ。
      ① **館の「wowow 百貨店」が戻った**（TZ-37）。旧の形はいちばん濃い .56 が
         ちょうど看板の帯（28〜38%）に掛かり、先方が復活を求めた当の看板を沈める。
      ② 銘板と開催期間が看板を避けて下がり（TZ-39）、**大アーチの窓の帯**へ移った。
         そこは実測で金の中央値 2.2〜3.6・最小 1.00＝FV で最も騒がしい。
         要素ごとに楕円を足すより、13-9 の原則どおり**地の側**を1枚で沈めるほうが正しい。 */.anv-t-fx-poster::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,40,42,.30) 0%,rgba(20,40,42,.13) 26%,
    rgba(20,40,42,.15) 36%,rgba(20,40,42,.30) 42%,rgba(20,40,42,.50) 48%,
    rgba(20,40,42,.52) 62%,rgba(20,40,42,.30) 78%,rgba(20,40,42,.16) 90%,
    rgba(20,40,42,.12) 100%)}
/* アニバーサリー銘板（金のクレスト。v4フォーク・load-in一度きり） */.anv-t-fx-crest{position:relative;display:inline-flex;flex-direction:column;align-items:center;
  padding:clamp(15px,2.4vh,23px) clamp(28px,5.4vw,52px) clamp(12px,2vh,19px);
  margin-bottom:clamp(14px,2.4vh,24px);isolation:isolate;
  background:radial-gradient(ellipse at 50% 42%,rgba(20,40,42,.38),transparent 76%)}.anv-t-fx-crest__frame{position:absolute;inset:0;pointer-events:none}.anv-t-fx-crest__frame .anv-t-e{position:absolute;background:rgba(194,157,82,.62);
  transition:transform .54s cubic-bezier(.16,1,.3,1)}html.anv-armed .anv-t-fx-crest__frame .anv-t-t{transform:scaleX(0)}.anv-t-fx-crest__frame .anv-t-t{top:0;left:0;right:0;height:1px;transform-origin:50% 50%}html.anv-armed .anv-t-fx-crest__frame .anv-t-b{transform:scaleX(0)}.anv-t-fx-crest__frame .anv-t-b{bottom:0;left:0;right:0;height:1px;transform-origin:50% 50%}html.anv-armed .anv-t-fx-crest__frame .anv-t-l{transform:scaleY(0)}.anv-t-fx-crest__frame .anv-t-l{left:0;top:0;bottom:0;width:1px;transform-origin:50% 50%}html.anv-armed .anv-t-fx-crest__frame .anv-t-r{transform:scaleY(0)}.anv-t-fx-crest__frame .anv-t-r{right:0;top:0;bottom:0;width:1px;transform-origin:50% 50%}.anv-t-facade.anv-t-booted .anv-t-fx-crest__frame .anv-t-t,.anv-t-facade.anv-t-booted .anv-t-fx-crest__frame .anv-t-b{transform:scaleX(1);transition-delay:.42s}.anv-t-facade.anv-t-booted .anv-t-fx-crest__frame .anv-t-l,.anv-t-facade.anv-t-booted .anv-t-fx-crest__frame .anv-t-r{transform:scaleY(1);transition-delay:.52s}html.anv-armed .anv-t-fx-crest__frame .anv-t-c{opacity:0}.anv-t-fx-crest__frame .anv-t-c{position:absolute;width:6px;height:6px;border:1px solid var(--gold);
  transition:opacity .5s ease .82s}.anv-t-facade.anv-t-booted .anv-t-fx-crest__frame .anv-t-c{opacity:.92}.anv-t-fx-crest__frame .anv-t-c1{top:-1px;left:-1px;border-right:0;border-bottom:0}.anv-t-fx-crest__frame .anv-t-c2{top:-1px;right:-1px;border-left:0;border-bottom:0}.anv-t-fx-crest__frame .anv-t-c3{bottom:-1px;left:-1px;border-right:0;border-top:0}.anv-t-fx-crest__frame .anv-t-c4{bottom:-1px;right:-1px;border-left:0;border-top:0}.anv-t-fx-crest__orn{position:absolute;top:0;left:50%;width:30px;height:30px;z-index:1;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle,var(--deep) 40%,transparent 72%);
  transition:opacity .46s ease .46s,transform .7s cubic-bezier(.34,1.56,.64,1) .46s}html.anv-armed .anv-t-fx-crest__orn{transform:translate(-50%,-50%) scale(.4);opacity:0}.anv-t-facade.anv-t-booted .anv-t-fx-crest__orn{opacity:1;transform:translate(-50%,-50%) scale(1)}.anv-t-fx-crest__orn svg{width:15px;height:15px;display:block;overflow:visible}.anv-t-fx-crest__orn svg *{stroke:var(--gold);fill:none;stroke-width:1.2}.anv-t-fx-crest__jp{display:flex;align-items:baseline;gap:.18em;
  font-family:var(--serif);font-weight:600;font-size:clamp(23px,4.9vw,37px);line-height:1;
  color:var(--tamago)}.anv-t-fx-crest__jp span{display:inline-block;
  transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1),filter .42s cubic-bezier(.16,1,.3,1)}html.anv-armed .anv-t-fx-crest__jp span{opacity:0;transform:translateY(16px);filter:blur(2.5px)}.anv-t-facade.anv-t-booted .anv-t-fx-crest__jp span{opacity:1;transform:none;filter:blur(0)}.anv-t-facade.anv-t-booted .anv-t-fx-crest__jp span:nth-child(1){transition-delay:.56s}.anv-t-facade.anv-t-booted .anv-t-fx-crest__jp span:nth-child(2){transition-delay:.62s}.anv-t-facade.anv-t-booted .anv-t-fx-crest__jp span:nth-child(3){transition-delay:.68s}.anv-t-facade.anv-t-booted .anv-t-fx-crest__jp span:nth-child(4){transition-delay:.74s}.anv-t-facade.anv-t-booted .anv-t-fx-crest__jp span:nth-child(5){transition-delay:.80s}.anv-t-facade.anv-t-booted .anv-t-fx-crest__jp span:nth-child(6){transition-delay:.86s}.anv-t-fx-crest__en{margin-top:clamp(8px,1.3vh,13px);font-family:var(--en);font-size:11px;
  letter-spacing:.66em;text-indent:.66em;color:var(--gold);
  transition:opacity .6s ease .98s,transform .6s ease .98s,letter-spacing .8s cubic-bezier(.16,1,.3,1) .98s}html.anv-armed .anv-t-fx-crest__en{opacity:0;transform:translateY(6px)}.anv-t-facade.anv-t-booted .anv-t-fx-crest__en{opacity:.92;transform:none;letter-spacing:.42em}
/* ── 2026-09-03 TZ-1/TZ-2（先方 PPT）─────────────────────────────────────
   キャッチコピー（h1「映像の余韻を、一生モノの愛着へ。」）を落とし、
   銘板 .anv-t-fx-crest を h1 に格上げした。
   ⚠️ 旧 `.anv-t-fx-poster h1` / `h1::before` / `h1 .ln` の6規則は当たる要素が消えたので削除した。
      §12-2（h1 を下げてサインから逃がす）・§12-2b（h1 の局所スクリム）と
      `section-anv-v22.css` の B06 も同じ理由で落としてある（9-6「死にセレクタで
      直したつもりになっていた」の再発を防ぐ）。 */.anv-t-fx-crest{margin-top:0;font-size:1rem;font-weight:400}.anv-t-fx-poster__meta{position:relative;margin-top:clamp(20px,3vh,30px);display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:.4em .9em;
  text-shadow:0 1px 12px rgba(20,40,42,.92),0 2px 26px rgba(20,40,42,.75);
  transition:opacity .7s cubic-bezier(.16,1,.3,1) 1.5s,transform .7s cubic-bezier(.16,1,.3,1) 1.5s}html.anv-armed .anv-t-fx-poster__meta{opacity:0;transform:translateY(12px)}.anv-t-fx-poster__meta::before{content:"";position:absolute;left:50%;top:50%;z-index:-1;
  width:150%;height:280%;transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(ellipse at 50% 50%,rgba(20,40,42,.66),rgba(20,40,42,.34) 46%,transparent 74%)}.anv-t-facade.anv-t-booted .anv-t-fx-poster__meta{opacity:1;transform:none}
/* TZ-3: 「一周年感謝祭」は銘板と重複するので落とした（区切りの「｜」も一緒に落ちる）。
   「会期」→「開催期間」。ラベルは和文なので --en（Helvetica系・和文グリフ無し）を使えない。
   ラベルは --anv-sans、日付は --en に分ける。 */.anv-t-fx-poster__meta .anv-t-label{font-family:var(--anv-sans);font-size:clamp(12px,3.2vw,13px);
  letter-spacing:.26em;text-indent:.26em;color:rgba(251,248,242,.9)}.anv-t-fx-poster__meta .anv-t-term{font-family:var(--en);font-size:clamp(12px,3.4vw,14px);letter-spacing:.16em;
  color:rgba(251,248,242,.94)}
/* ナレーション: v5改善＝文字サイズ半段上げ・SPは横書き3行 */
/* 🔴 2026-08-26 実測で発覚: .anv-t-stage > * は inset:0（＝ステージ全面）なので、装飾レイヤーが
   ヒーローのCTAを覆ってクリックを奪っていた。実際 .anv-t-fx-cue は幅1440pxで画面全体を覆い、
   CTA中央の elementFromPoint が .anv-t-fx-cue を返す＝CTAは一度も押せていなかった。
   .anv-t-fx-poster と .anv-t-fx-cue の z-index がどちらも 1 で、DOM順が後ろの .anv-t-fx-cue が勝つのが原因。
   装飾レイヤーは当たり判定を持たない（中のリンクだけ戻す）のが正しい。 */
/* ⚠️ TZ-43: 左右の余白は **24px**。30px だと 390px 幅で「一周年感 / 謝祭」と割れる。
      `word-break:auto-phrase` は文節の切れ目を優先するが、その位置で入り切らないときは
      通常の和文改行（どの字の間でも切る）に落ちる。390px・30px のときだけその条件に入っていた
      （360px と 414px では割れない）。24px にすると行が1字ぶん伸びて文節の切れ目が使える。
      reduced-motion 側（13-3）も 24px なので値が揃う。 */
/* ⚠️ 2026-09-07（TZ-36）: PC の縦組み（writing-mode:vertical-rl）を廃止し、
      SP と同じ**横組み**へ一本化した。先方指示「この3段落を縦書きではなく、
      スマホビューと同じく横書きにすることは可能でしょうか？」。
      縦組みのためだけにあった指定は、後から潰さず**それぞれの出どころで消してある**:
        §19 row-reverse（縦組みは右の列から読むので反転していた）
        §13-1 top と字送り .14em（列の丈を稼ぐための調整）
        §13-5 align-items:stretch（列の高さを親で決めて折り返させるため）
        §13-13 .tcy 縦中横（横組みでは算用数字も欧文もそのまま正立する）
        D-11 の上端起点ブロック（最長列が上端を超える事故への手当て） */.anv-t-fx-narr{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:clamp(18px,2.6vh,28px);padding:0 24px;z-index:1;pointer-events:none}.anv-t-fx-narr .anv-t-col{writing-mode:horizontal-tb;font-family:var(--serif);font-size:clamp(14px,1.7vw,17px);
  color:var(--ivory);letter-spacing:.08em;line-height:2.0;text-align:center;max-width:34em;
  text-shadow:0 1px 3px rgba(14,30,30,.62)}
/* v21 F-17: index と同じ直し。20px の影が縦組みで黒い短冊になるのを止め、
   可読は楕円のスクリムで作る。 */.anv-t-fx-narr .anv-t-col{position:relative}.anv-t-fx-narr .anv-t-col::before{content:"";position:absolute;inset:-1.7em -1.15em;z-index:-1;
  background:radial-gradient(closest-side,rgba(14,30,30,.60),rgba(14,30,30,.32) 56%,rgba(14,30,30,0) 100%)}.anv-t-fx-narr .anv-t-c1{opacity:clamp(0, calc((var(--p) - .62) * 14), 1);
  transform:translateY(clamp(0px, calc((.6914 - var(--p)) * 168px), 12px))}.anv-t-fx-narr .anv-t-c2{opacity:clamp(0, calc((var(--p) - .70) * 14), 1);
  transform:translateY(clamp(0px, calc((.7714 - var(--p)) * 168px), 12px))}.anv-t-fx-narr .anv-t-c3{opacity:clamp(0, calc((var(--p) - .78) * 14), 1);
  transform:translateY(clamp(0px, calc((.8514 - var(--p)) * 168px), 12px))}
/* v17 D-4/#3: SPでは建物ファサードに焼き込まれた「WOWOW百貨店」サインと h1 が接するため、
   見出しの起点をもう一段下げてサインから離す（PCの構図は変えない）。 */
/* ⚠️ TZ-36: SP 専用だった横組みの指定（writing-mode / text-align / 字送り）は
      上の基底へ移した。ここに残るのは SP だけの字の大きさで、それは §13-16 が持つ。
   ⚠️ TZ-36: D-11 の「PC は上端起点」ブロックを削除した。あれは縦書き3列の丈を
      画面高で決めるための手当てで、横組みには当たる問題が無い（列が縦に伸びない）。
      基底の justify-content:center が .anv-t-stage>*{inset:0} の中で塊を中央に置く。 */
/* v17 B-1/B-2: FVのCTA（出し分け）と未加入者の受け皿。演出ゼロ即時＝data-rv も boot 遅延も持たない */.anv-t-fx-cta{position:relative;margin-top:clamp(28px,4.4vh,48px);display:flex;flex-direction:column;align-items:center;gap:11px;z-index:2}
/* ── TZ-4（先方 PPT・2026-09-03）────────────────────────────────────────
   FV のログインCTAを「スクロール」に置き換えた。非交渉ルール8（スクロール誘導
   ラベル禁止）の唯一の例外。DESIGN_DIRECTION §1-8 に例外として明記してある。
   金のボタンをそのまま流用すると、ログイン導線（.anv-t-login）と同じ強さで2つ並ぶので、
   誘導は罫と字だけの控えめな形にした。 */.anv-t-fx-scroll{display:inline-flex;flex-direction:column;align-items:center;gap:10px;
  font-family:var(--serif);font-size:12px;letter-spacing:.34em;text-indent:.34em;
  color:var(--gold-lit,var(--gold));text-decoration:none;
  text-shadow:0 1px 3px rgba(12,24,26,.95),0 0 12px rgba(12,24,26,.85)}.anv-t-fx-scroll i{display:block;width:1px;height:38px;overflow:hidden;
  background:linear-gradient(rgba(194,157,82,.75),rgba(194,157,82,0))}.anv-t-fx-scroll i::after{content:"";display:block;width:1px;height:14px;background:var(--gold-lit,var(--gold));
  animation:fx-scroll-run 2.2s cubic-bezier(.5,0,.5,1) infinite}@keyframes fx-scroll-run{0%{transform:translateY(-14px)}60%,100%{transform:translateY(38px)}}@media (prefers-reduced-motion:reduce){.anv-t-fx-scroll i::after{animation:none;transform:none}
}
/* 当たり判定は中のリンクだけに持たせる（上の .anv-t-fx-narr のコメント参照）。
   このレイヤー自体が全面を覆っているので、auto のままだとCTAが押せない。 */
/* ⚠️ TZ-43: 中央寄せにした。FV の他の要素（銘板・開催期間・スクロール・ナレーション）が
   全部中央寄せなので、ここだけ右下にあると孤立して見える。
   reduced-motion 側（13-3）は前から `justify-content:center` で、値が食い違っていた。 */.anv-t-fx-cue{display:flex;align-items:flex-end;justify-content:center;padding:0 28px 34px;z-index:1;
  pointer-events:none;
  opacity:clamp(0, calc((var(--p) - .88) * 12), 1)}.anv-t-fx-cue a{display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:auto;
  font-family:var(--en);font-size:11px;letter-spacing:.3em;color:var(--gold)}.anv-t-fx-cue a::before{content:"";width:34px;height:1px;background:var(--gold)}
/* v5系 見出し共通（directory用） */
/* ════════════════ 1. directory（1Fロビー・フロア案内。v4フォーク＋タイプ是正） ════════════════
   ⚠️ v18 でこの面を暗色から紙地へ転換した。
   先方指摘 #10「全編通してこのダークネイビーは重たい印象」は Figma 上の
   `52:4`＝**この FLOOR GUIDE のダークネイビー面**を名指ししたもの（docs/20 §表 #10）。
   v17 は色値を据え置いたまま他セクションの暗色面積だけを削ったため、
   指摘された当の面が暗いまま残っていた。v18 はここを紙地にして直接答える。
   暗色を許すのは .anv-t-facade の着床部 ／ #lift-* ／ #floor3 ／ #closing の4面のみ。 */
/* v17 D-3/#11: 図の意味を言葉でも1行だけ補う（図解だけに頼らない） */
/* v18: キャッチが主、機能名（1F 加入者限定セール 等）は従。
   ＝「説明っぽくキャッチーでない」への回答。機能名を消すと何の階か読めなくなるので残す。 */
/* 機能名は館内表示の金茶。朱はリンク・CTA・動く要素に取っておく（アクセントの役割を混ぜない） */
/* SP390 でカタカナ語が語中で割れるのを止める（QA: 不自然な改行） */
/* shared interior architecture */
/* 階札（敷居アーチ廃止 → コンパクトな真鍮プレート帯） */
/* v17 #21: 階数の視認性を上げる（枠を太く・大きく・字も明るく＝「階を示す数字」だと分かる） */
/* v17 #22/C-5: 扉に「この階に来ると何がうれしいか」を1行で置く（数字と名前だけでは動機にならない） */
/* v17 #22/C-5: 商品サムネの予告（3点）。扉の段階で「何が置いてあるか」が見える */
/* 1F service counter */
/* カウンター前板は piece 全幅の台輪として敷く（画像列だけで途切れた黒帯にしない） */
/* v17 A1: コンシェルジュは落款＋付け札で案内する（実写切り抜きは廃止・D17-4）。
   D-16「引用は縦中央」の意図は align-items:center で保存。肖像が消えた分の余白は上下対称に詰める。 */
/* ════════════════ 3/5. lift-12 / lift-23（昇降路。v4フォーク＋空白フレーム改善） ════════════════ */
/* v5: エレベーターの扉筋（左右24%・常設）＝闇に構造を与え空白フレームを消す */
/* v5: 数字を44vminへ拡大＝ロール中間でも数字が画面を占有（空白フレーム対策） */
/* lift-12: 4色同心円（v4式エスカレーション）。着地= 2F 石灰の売場（--stone） */
/* lift-23: 青鈍 → walnut 着地（3F 収蔵室の地） */
/* 2F platforms */
/* 3F cabinet wall */
/* membership, journal, notes */
/* ════ v17 B-4/B-5 MEMBERSHIP 再設計（#38「何の説明か分からない」＋定例#10「用語の説明が必要」） ════ */
/* 用語の定義を先に置く。2枚の札として並べ「別のもの」だと形で分かるようにする */
/* 未加入者の受け皿（B-2） */
/* ════════ v18「色そのものを作り直す」（v17 D17-3 を撤回）════════
   v17 は #10「ダークネイビーが全編通して重たい」に対し、色値は据え置いて dark の面積だけを削った。
   しかし指摘 #10 が名指ししたのは Figma `52:4` ＝ FLOOR GUIDE の面そのものであり、
   その面は暗いまま残っていた。加えて KV はすでに「秋の昼・湖・紅葉」で、地の紺と割れていた。
   → v18 は色値を KV 側へ寄せ、紺を全廃した（assets/anv-tokens.css 参照）。

   暗色（湖の深緑）を許す面は次の4つだけ:
     .anv-t-facade の着床部（世界観の起点）／#lift-12・#lift-23（真鍮の昇降路）／
     #floor3（収蔵室）／#closing（退館の扉）
   紙地へ移した面:
     #directory（指摘 #10 の当事者）／#journal（記事は紙面のほうが記事らしい）／
     #notes（情報セクションに情緒的な暗さは不要）
   → 情景遷移は「秋の湖畔のファサード → 真鍮の昇降路 → 紙の売場」。 */
/* v18: 連載名（キャッチ）を主にした分、機能名「読みもの」を見出し直下に従として置く */
/* closing and separated legal floor */
/* v18: 退館の外観を「夜のファサード」→「同じ秋の湖畔の夕暮れ」に変えた。
   kv-facade-night.jpg はページ内で最も面積の大きい紺の画像だったため使用をやめ、
   ヒーローと同じ kv-autumn-lake.jpg を落陽のトーンに寄せて再利用する
   （＝退館時に表紙の風景へ戻る。閉館は情景の反復であって別世界ではない）。 */
/* v18: 退館の外観が明るい秋の風景になったぶん、文字側の可読性を上げ直した。
   eyebrow は建物の砂岩色に埋もれるため gold-lit（深緑地 5.9:1）＋影を足す。 */
/* 2026-09-03: 死にセレクタ（`.anv-lp-concept__body p`）と同じ規則に相乗りしていた
   `.mock-note` の組版指定を、こちらへ移した（§9-11 の折り返し対策）。 */
/* ════════════════ v9: 着地リビール（売場だけ・一度きり・安全退避ゲート） ════════════════
   規律: 既定は完成形（可視）。html.anv-armed が付く時のみ初期状態へ退避し、IOで .anv-in→完成。
   → JS無効/reduced-motion では armed が付かず、中身は常に見える。transform/opacity/clipのみ。
   価格(.buy-slip/.price-tag/.ci-bottom)とCTA(.actions/.member-actions)は data-rv を付けず即時表示（CVR死守）。 */html.anv-armed [data-rv]{transition-delay:var(--d,0s)}
/* 見出しライン: 下から上へ clip ワイプ＋微translate（facade h1 .ln の一般化・本文は1段控えめ） */html.anv-armed [data-rv="line"]{clip-path:inset(0 0 112% 0);transform:translateY(9px);
  transition:clip-path var(--dur-rv) var(--ease-out),transform var(--dur-rv) var(--ease-out);transition-delay:var(--d,0s)}html.anv-armed [data-rv="line"].anv-in{clip-path:inset(0 -.06em -.2em 0);transform:none}
/* rise: eyebrow/数字/小要素の浮上 */html.anv-armed [data-rv="rise"]{opacity:0;transform:translateY(9px);
  transition:opacity var(--dur-rv) var(--ease-out),transform var(--dur-rv) var(--ease-out);transition-delay:var(--d,0s)}html.anv-armed [data-rv="rise"].anv-in{opacity:1;transform:none}
/* mask: 商品画像が「置かれる」所作（figureをクリップし内側imgを1.055→1）。物撮りにparallaxは付けない */html.anv-armed [data-rv="mask"]{overflow:hidden}html.anv-armed [data-rv="mask"] img{transform:scale(1.055);opacity:0;
  transition:transform var(--dur-mask) var(--ease-out),opacity var(--dur-rv) var(--ease-soft);transition-delay:var(--d,0s)}html.anv-armed [data-rv="mask"].anv-in img{transform:none;opacity:1}
/* 2F平台: 3点の画像を1グループとして70ms刻みで着地（連鎖≤140ms・個別IOでも位置差で階段化） */
/* plate: 真鍮プレート帯が着地（番号がpop→文字が浮上。クレストの段階組立を低強度で反復） */
/* ════════════════ v10 ①奥行き・視差（scroll-driven parallax・宣言的） ════════════════
   translate プロパティのみを動かす＝reveal(transform/clip-path)・hover(scale)と別チャンネルで合成し衝突しない。
   三重ガード: @supports(view timeline) × prefers-reduced-motion:no-preference × PC幅。
   fill-mode は付けない（timelineが位置を支配。animation停止時 translate は初期値none=0へ戻り、ズレ残りなし） */
/* ════════════════ v10 ②登場強化（blur入りワイプ＋参加要素の増員・stagger） ════════════════ */
/* 見出し line: blur 3px→0 を追加し移動量 9px→14px（clipワイプ・arrival-once は維持） */html.anv-armed [data-rv="line"]{transform:translateY(14px);filter:blur(3px);
  transition:clip-path var(--dur-rv) var(--ease-out),transform var(--dur-rv) var(--ease-out),filter .6s var(--ease-out);
  transition-delay:var(--d,0s)}html.anv-armed [data-rv="line"].anv-in{filter:blur(0)}
/* rows: 1Fスペック行。dl(data-rv="rows")を1回観測し行を80ms刻みで浮上（plaque .06s → voice .14s の後続連鎖・末尾.38s） */html.anv-armed [data-rv="rows"]>div{opacity:0;transform:translateY(9px);
  transition:opacity var(--dur-rv) var(--ease-out),transform var(--dur-rv) var(--ease-out)}html.anv-armed [data-rv="rows"]>div:nth-child(1){transition-delay:.22s}html.anv-armed [data-rv="rows"]>div:nth-child(2){transition-delay:.3s}html.anv-armed [data-rv="rows"]>div:nth-child(3){transition-delay:.38s}html.anv-armed [data-rv="rows"].anv-in>div{opacity:1;transform:none}
/* v10 ③慣性近似: 新規コードなし（①の視差＋②のrevealで担保）。scroll-behavior:smooth は入れない（hijack禁止） */
/* ════════════════ v10 ④ホバー応答（hover:hover × PC限定・scaleプロパティ=transformと非衝突） ════════════════ */@media (hover:hover) and (min-width:1024px){
  /* armed時の登場transitionへ scale を合流（v9の transform/opacity 定義を per-property delay 付きで再宣言） */html.anv-armed [data-rv="mask"] img{transition:transform var(--dur-mask) var(--ease-out) var(--d,0s),
    opacity var(--dur-rv) var(--ease-soft) var(--d,0s),scale .3s var(--ease-out)}
}
/* ════════════════ v17 A1: 人格表現（落款＋付け札＋名札）＝実写肖像の代替 ════════════════
   D17-4。index は anv-base.css を読まないため、共通部品と同一仕様をここに自給自足で持つ
   （crossnav・lift-overlay と同じ既存パターン。正本は assets/anv-base.css §6-A）。
   非交渉: ラスター/生成画像を使わない・新色をトークンに足さない・v14イラストを再利用しない。 */
/* 3文字姓（統括バイヤー 等）は字面を詰めて印面に収める */
/* v17-2: コレクション未接続のあいだ、押せるボタンには見せない */
/* v17-2: 落款をピクトグラムに差し替え。index は anv-base.css を読まないので、
   同じ仕様をここにも持つ（これが無いとサイズが付かず TOP の24箇所が全て消える）。 */
/* 付け札: 真鍮罫＋左向きノッチで「落款の人が話している」を明示（チャットバブルにはしない） */
/* ════════════════ v11: 口上札（curator-note）＝各フロアを担当者の世界にする帯 ════════════════ */
/* v17: 落款を左に添えた付け札版（発話の明示） */
/* ════════════════ v12: 2F ガイド随伴（sticky担当者＋フォーカス送り） ════════════════ */
/* A: 「いま…」文の受け渡し（瞬間置換でなくフェード送り） */
/* responsive */@media(max-width:1023px){.anv-t-wrap{width:min(100% - 40px,900px)}
}@media(max-width:640px){:where(.anv-teaser){font-size:15px}.anv-t-wrap{width:calc(100% - 32px)}.anv-t-facade{height:160vh}
  /* v17 #32/C-6②: 5点ごとの「強い1枚」をやめ全カード均等に（一点だけ大きいと100選が均質に見えない指摘） */
}@media(prefers-reduced-motion:reduce){:where(.anv-teaser), :where(.anv-teaser) *,:where(.anv-teaser) *::before,:where(.anv-teaser) *::after{animation:none!important;transition:none!important}
}
/* ════════════════ 深掘りページ入場遷移オーバーレイ（B-2・index インライン版・v15 token 名） ════════════════
   index は anv-base を読まないためここに自給自足で持つ（ガードレール1）。PC+非reduced のみ発火。
   reduced-motion/SP(<1024) では display:none＝JS もガードで発火しない二重ガード。z-index 500(<10000)。 */
/* ════════════════ crossnav（全ページ回遊・footer直上・index インライン版・v15 token 名） ════════════════
   5新規ページの .anv-crossnav（anv-base.css）と同一マークアップ。index は anv-base を読まないためここに自給自足で持つ。 */
/* ════════════════ v16-4 追加（anv-lp- ・裸トークン・既存命名と非衝突） ════════════════ */
/* S2 ログイン誘導（旧 concept・紙地）。
   🔴 2026-09-03: セクションIDを `#anv-t-concept` → `.anv-t-login` に変えたので、
      **紙地の背景を当てていた `#anv-t-concept{background:var(--lit)}` が外れていた。**
      面が深緑のまま残り、墨色の見出しが乗って読めなくなった（実機撮影で発覚）。
      IDセレクタで面の色を持つと、IDを変えた瞬間に黙って外れる。
   ⚠️ `.anv-lp-concept*`（6規則）と `.anv-lp-why*`（7規則）は、TZ-7 で本文と3項目を
      落としたので当たる要素がゼロになった。§13-4 の `.anv-ts-login*` が置き換える。 */.anv-t-login{background:var(--lit);padding:clamp(84px,11vw,132px) 0}
/* v17 #17/C-8: 会期中の目玉を「通常商品と見分けがつく」ように色と書体でフィーチャーする。
   1F のフロア色（白群 --byakugun）を面と札に使い、ブランド群の紙地と明確に差をつける。 */
/* 目玉カード側にも小さな在処の札（群のカードには付けない＝一目で見分く） */
/* S4 ブランド群概観 */
/* v17 #16/C-3: LPでは「今週」だけをカードで見せ、以降の週はブランド名だけの行にして丈を詰める
   （全商品紹介＋目玉3点で長すぎるという指摘。フルのカード一覧は floor-1 に残す） */
/* v17 #15: WEEK 番号の隣に実日付を併記（「WEEK 1」だけでは何週目か分からないという指摘） */
/* D-9: COMING枠は元々 <article>（非リンク）だが「まだ開いていない」明示が弱くピル型ステータスがボタン風
   で誤読を招く。カード画像面に半透明veilを重ね pointer-events:none で「押せない・未開」を明示。
   角丸/box-shadow/hoverを持たせず＝ボタンに見せないスタンプ調。z-index<10000。今週開催中の枠には付けない。 */
/* S4/S6/S10 「もっと見る」深掘り導線（購入導線ではないので data-lift-transition 付与） */
/* ════ S6 ジャンル別売場の見開き（v18-2 I-1/I-2/I-4/I-5/I-6） ════════════════
   v18 まではKV＋キャッチ＋担当者チップの4枚均等グリッド＝「バナーが4枚並んでいるだけ」。
   会議②の指摘「特設トップの第2階層が、もうバナー貼ってるだけだもんね／特集バナー＋
   ちょっと商品のレコメンド＋ちょっと解説があっていい」への回答として、
   1章＝横長の見開き（KVと言葉／交互に反転）＋1周年対象のピックアップ3点に建て替える。
   🔴 I-3 非交渉: ピックアップに出すのは1周年の割引対象だけ（通常商品は出さない）。
   🔴 価格は B案（未ログイン＝割引後価格のみ／ログイン後＝二重価格・%OFFバッジは出さない）。 */
/* I-6: 売場ごとのフロア色を1本だけ通す（詳細ページの R-8「章間の色の受け渡し」と対になる） */
/* 和文の折り返し: balance で行長を均し、auto-phrase で文節を割らない
   （「その日、確かにそ／こにあったもの。」のような語中改行を防ぐ。未対応ブラウザは無視） */
/* 読み上げ専用（打消し価格の意味を音声に残す）。視覚には出さない */
/* I-1: 詳細ページの「売場の見方 ①」を一行だけ先出しして、バナーを解説に変える */
/* I-5: 厚み（型数）や束ね方を数字で出す。詳細ページの R-5「数字の柱」と対になる */
/* v17 A-3/#23: 「何を売っている売場か」を章扉の時点で言う（商材の実データ・先方指摘 #42/#44/#45/#46） */
/* I-1/I-2 1周年対象のピックアップ（横スクロール・CSS scroll-snap／新規依存なし） */
/* PC は「左＝見出しと注記／右＝レール」の2カラム。3点だけのときに右側が空くのを避け、
   レールの実効幅を広げる（点数が増えたら右カラム内でそのまま横スクロールに移行する）。 */
/* S8 三日間の特別価格 告知帯（v17: 旧名称は廃止し 100選 の従属要素に降格・D17-1） */
/* S8 100選ミニレール（署名コメント） */
/* v17 #34/C-6①: 100選の主語を人にする。各カードに選者の落款＋署名を必ず添える */
/* v17 #33/C-6③: 100選の途中からカテゴリ/商品ページへ出る導線 */
/* v16-4 レスポンシブ（SP390 横スクロール0を担保） */
/* ===== [2/5] section-anv-v19.css ===== */
/* ============================================================================
   section-anv-v19.css — v19 で足したCSSの、唯一の置き場
   ----------------------------------------------------------------------------
   ■ なぜこのファイルがあるか
     v19 の最初の実装では、共有CSSへの変更を Python の文字列（f-string）として書き、
     index.html の 86KB のインライン <style> に差し込んでいた。
     エスケープ（{{ }}）を通した結果 **閉じ括弧が1つ落ち**、以降105ルール
     （CSS全体の 12.8%）がメディアクエリに飲み込まれて PC 幅で全滅した。
     → docs/25_v19-quality-regression/README.md

     二度と起こさないため、v19 で足すCSSは **すべてこのファイルに直接書く**。
     Python で生成しない。既存CSSも書き換えない（後勝ちで上書きする）。

   ■ 読み込み位置
     全ページの </head> の直前に1行だけ入れる。
       <link rel="stylesheet" href="assets/section-anv-v19.css">
     index.html はインライン <style> を持つので、その **後ろ** に置くことで後勝ちになる。
     他ページは anv-tokens → anv-base → section-anv-* の **後ろ**。

   ■ 変数のブリッジ
     index.html のインライン CSS は `--serif` `--walnut` …（接頭辞なし）、
     assets/*.css は `--anv-serif-display` `--anv-walnut` …（接頭辞あり）を使う。
     同じセレクタが両方に出る（.anv-crossnav__* など）ので、
     var() のフォールバックで両対応させる。値は 1:1 で同一。
   ========================================================================== */:where(.anv-teaser){--v19-serif:    var(--anv-serif-display, var(--serif));
  --v19-sans:     var(--anv-sans,          var(--sans));
  --v19-en:       var(--anv-en,            var(--en));

  --v19-paper:    var(--anv-paper,         var(--lit));
  --v19-stone:    var(--anv-stone,         var(--stone));
  --v19-lit:      var(--anv-lit,           var(--lit));
  --v19-walnut:   var(--anv-walnut,        var(--walnut));
  --v19-ink:      var(--anv-ink,           var(--ink));
  --v19-soft:     var(--anv-ink-soft,      var(--soft));
  --v19-brass:    var(--anv-brass,         var(--brass));
  --v19-oldbrass: var(--anv-oldbrass,      var(--oldbrass));
  --v19-goldlit:  var(--anv-gold-lit,      var(--gold-lit));
  --v19-rule:     var(--anv-rule,          var(--rule));
  --v19-rule-st:  var(--anv-rule-strong,   var(--rule-strong));
  --v19-ease-out: var(--anv-ease-out,      var(--ease-out));}
/* ══════════════════════════════════════════════════════════════════════════
   1. 回遊ナビ（.anv-crossnav）— 3F を足したぶんの調整
   ────────────────────────────────────────────────────────────────────────
   3F が実ページを持ったので、カードが 4枚 → 5枚 になる。
   ══════════════════════════════════════════════════════════════════════ */
/* 4列固定のままだと5枚目が端数行になる */
/* CJK の任意改行を止め、マークアップに置いた <wbr> の位置だけで折る */
/* 矢印だけが次の行に落ちるのを NBSP で止める
   （word-break だけでは ::after が本文から切り離される） */
/* 現在地のカードは押せるままにしつつ、行き先ではないと分かる見た目にする */
/* ══════════════════════════════════════════════════════════════════════════
   2. TOP の各階に置く「数字の行」（.anv-lp-figures）
   ────────────────────────────────────────────────────────────────────────
   M-1: 1F/2F/3F の見せ方の型を「① 看板 → ② 見方 → ③ 抜粋 → ④ 出口」に揃える。
   2F にだけあった型数の表示に相当するものを、1F と 3F にも置く。
   ══════════════════════════════════════════════════════════════════════ */
/* 深緑地の上に置くとき */
/* ══════════════════════════════════════════════════════════════════════════
   3. 読みもの帯（.anv-lp-readband）
   ────────────────────────────────────────────────────────────────────────
   M-2: 先方「読みものは何箇所かにあっていい」。
   館内の複数箇所に置く細い帯。セクションを分断しない高さに抑える。
   ══════════════════════════════════════════════════════════════════════ */
/* 階と階のつなぎに置くときは、地をひとつ明るくして「休符」に見せる */
/* ══════════════════════════════════════════════════════════════════════════
   4. 細かい修正（8/16 のビジュアルQA指摘の積み残し）
   ══════════════════════════════════════════════════════════════════════ */
/* 1F詳細: 階札をページの題（h1）にしたので、共有の .fp-t h2 と同じ見た目を h1 にも与える */
/* ══════════════════════════════════════════════════════════════════════════
   5. ロゴウォール（.anv-lw）— 1F の主役
   ────────────────────────────────────────────────────────────────────────
   黒岩「掲載ブランド予定一覧みたいな感じでロゴ一覧を入れる方が訴求になる」
   P4「第一なんかはやっぱりブランドだなと思う。ブランドロゴの配置」

   ■ ロゴが無い状態でどう成立させるか
     実ロゴは支給待ち（権利確認も未了）。そこで **枠を先に設計する**。
     ・枠は紙地の面 ＋ 罫。ロゴが収まる横長の比率で余白をあらかじめ確保する
     ・中身はブランド名を活字で組む。支給後は <span> を <img> に差し替えるだけ
     ・右上の「仮」で、まだ本番素材でないことが一目で分かる（既定の運用ルール）

   ■ 組み方（実物を見て2回却下した末の形）
     ① 週ごとに行を割る → 1ブランドの週で右が空き「壁」に見えない。却下
     ② 4×2 の1枚の面 → 端は揃うが週の切れ目が行と一致せず誤読する。却下
     ③ **左に週の見出し列、右にその週の枠**（採用）。行に見出しが立つので
        枠が1つでも「その週はそれだけ」と読める。百貨店のブランド索引と同じ組み方
   ══════════════════════════════════════════════════════════════════════ */
/* ── 見出しと注記 ───────────────────────────────────────── */
/* ── 週の行: 左に見出し列、右に枠 ─────────────────────────── */
/* 開催中の週だけ実面で立てる */
/* ── ロゴの枠 ───────────────────────────────────────────── */
/* ロゴが入る枠。支給後は中身を <img> に差し替えるだけで済む比率にしておく */
/* 欧文と和文で書体が割れると「揃った壁」に見えないので、1つの顔に統一する。
   欧文グリフは Helvetica 系、仮名は Hiragino 系がそれぞれ拾われる。 */
/* 開催中の週の枠は罫を濃くして、行頭が分かるようにする */
/* ── 1F詳細では枠を一段大きく（詳細でも主役なので） ───────── */
/* ══════════════════════════════════════════════════════════════════════════
   6. 別agentビジュアルQA（2026-08-17・5体／136枚）の指摘反映
   ────────────────────────────────────────────────────────────────────────
   このファイルは全ページで最後に読まれるので、既存CSSを書き換えずに後勝ちで直す。
   ══════════════════════════════════════════════════════════════════════ */
/* ── 6-1 🔴 1F の週カード3枚が「中身のない灰色の箱」になっていた ─────────
   anv-tmp.css の .is-tmp{position:relative} が
   section-anv-f1.css の .anv-f1-ph{position:absolute;inset:0}  を後勝ちで潰し、
   枠の高さが 6px・中の <img> が 0px に潰れていた。読み込み順の事故。 */
/* （.anv-f1-ph の position は §6-10 でまとめて指定している） */
/* ── 6-2 🔴 見出しの末尾1〜2文字が孤立行に落ちる ─────────────────────
   「会期中の目玉は三点で／す。」「4週間の展開スケジュー／ル。」
   floor-2 は既に balance + auto-phrase を使っているので、同じ処置を横展開する。 */
/* ── 6-3 🔴 禁則が効かず、小書き仮名・長音が行頭に落ちていた ───────────
   「アイリッ／シュ」「グロ／ーグー」「スケ／ール」など全ページで多発。
   line-break: strict は JIS の厳格な行頭禁則。継承させて一括で効かせる。 */:where(.anv-teaser){line-break: strict;}
/* 商品名は語の途中で割れると読み違えるので、文節でも折る */
/* ── 6-4 🔴 #three-days が淡地の上で判読不能だった（v19 の回帰） ────────
   R-11 で 3F の暗色地の中から外へ出したとき、文字色が暗地前提のまま残った。
   ivory(#fbf8f2) on stone(#ece5d8) ＝ コントラスト比 約1.1:1。
   DESIGN_DIRECTION §0-A「暗色地をこれ以外に新設しない」に従い、
   地を暗くするのではなく **文字を墨に落とす**。 */
/* S25（2026-08-18）で `__note` と `__badge` を除去したので、その2規則も落とした。 */
/* ── 6-5 🔴 TOP 3F の100選が5列グリッドで、6点だと右に大穴が開く ────────
   M-1 で抜粋を 15点 → 6点 にしたとき、グリッドを5列のまま残していた（v19 の回帰）。
   6 = 3×2 なので3列にすると端が揃い、1カードの版面も 222px → 380px に広がって
   商品名の折り返し事故も同時に収まる。 */
/* ── 6-6 🟠 フッターの法令リンクがリンクに見えない ─────────────────────
   特定商取引法に基づく表記など、押せることが分かる必要があるもの。 */
/* ── 6-7 🟠 SP で追従フロアバーの「読」が押し出されて消える ───────────
   左の現在地ラベルが nowrap で伸び、右のリストが潰れて4つ目が可視領域の外へ出る。
   スクロールバーも隠してあるので、消えたことに気づけない。 */
/* ⚠ 最初の版は `.anv-floorbar__list{flex:0 0 auto}` を足したせいで、
   3つの子が全部「縮まない」設定になり、今度は右端の「未ログイン」が切れた（回帰）。
   実測: 149 + 145 + 82 + gap28 = 404px に対し、使える幅は 374px。
   **縮むのは現在地ラベルだけ**にして、ナビと認証は守る。 */
/* ── 6-8 🟠 2F の追従ガイドがサブナビの下に潜って上端が読めない ─────────
   top:96px はヘッダー64px前提だが、実際はヘッダー＋フロアサブナビで約112px。 */
/* ── 6-9 🔴 img に height:auto が無く、HTML の height 属性が CSS 高さとして効いていた ──
   journal-article の認証書が 320×1280 に縦伸びし、左右の高さ差 1,355px が
   そのまま空白の大穴になっていた。aspect-ratio:1/1 の指定も無効化されていた。
   同じ不具合は section-anv-f2.css で個別に対処済みだったが、横展開されていなかった。
   ※ クラス付きセレクタ（.cabinet-item img{height:68px} 等）の方が詳細度が高いので、
      明示的に高さを持つ画像には影響しない。効くのは属性値だけで高さが決まっていた画像。 */:where(.anv-teaser) img{height: auto;}
/* ── 6-10 🔴 出せない仮画像を「画像 準備中」に退避したときの枠 ────────────
   別agentの棚卸しで、仮画像33枚のうち20枚が非交渉ルール10に抵触していた
   （実在ブランドのロゴ・ラベルが読める10枚／商品名とカテゴリが違う7枚 ほか）。
   ルール10 は「別カテゴリの静物を流用せず『画像 準備中』のプレースホルダにする」と
   処置まで指定しているので、そのとおりにする。枠は残すので版面は崩れない。 */
/* 図版枠は position 指定を持たないものがあるので、ラベルの基準面を作る。
   ⚠ .anv-f1-ph は section-anv-f1.css で `position:absolute; inset:0` を前提に組まれている。
     ここに含めると枠の高さが0になり、ラベルが上端で切れる（実際に一度そうなった）。 */
/* TOP 3F 抜粋のサムネイル（68px角）用。小さいので文字を2行に折る */
/* ── 6-11 🟠 1F の週グリッドで、枚数の少ない週の右が大きく空く ──────────
   3列固定なので WEEK 1（1枚＋注記）で約350px、WEEK 4（2枚）で1列ぶんが白く残る。
   列幅に上限を付けて左詰めにすると、枚数が少ない週も「その週はそれだけ」と読める。
   注記は面の高さを揃えて、宙に浮いた札に見えないようにする。 */
/* ── 6-12 🟠 3F: 同じ商品を別々の部署が選んでいる行がある（実データ）──────
   「73点」と書くと商品数（72）と食い違うので、件数と商品数を書き分ける。 */
/* 投影距離の図: 数値（100″）を外したので、文字サイズを見出し級から落とす */
/* リード文も末尾1文字の孤立が出るので、見出しと同じ扱いにする */
/* 早見表: 列幅が中身の長さで暴れるので均等に */
/* ── 6-14 🟠「画像 準備中」の描き方が2種類あって同じ行に混在していた ──────
   .anv-lp-ph 側は左上の小さな破線ボックス、.anv-f2-ph 側は中央の文字だけ、と割れていた。
   中央に置く1種類に揃える。 */
/* ── 6-15 🟠 ロゴウォールの枠が、枚数の少ない週で横に伸びきっていた ──────
   .anv-f1-grid には列幅の上限を付けたが、ロゴウォール側は 3列 1fr のままだった。
   同じ処置を当てて、どの週でも枠の大きさが揃うようにする。 */
/* ══════════════════════════════════════════════════════════════════════════
   7. 2巡目のビジュアルQA（3体／128枚）の指摘反映
   ══════════════════════════════════════════════════════════════════════ */
/* ── 7-1 🔴 下層ページで回遊ナビの現在地が目に見えなかった ────────────────
   aria-current="location" は付けたが、CSS が [aria-current="page"] にしか
   当たっていなかった。支援技術には伝わるのに、目で見える手がかりがゼロ。
   ＋ 文言は分ける。記事ページで「読みもの（現在のページ）」と出すと嘘になる
   （読みもの一覧ではなく、その下の記事にいるので）。 */
/* ── 7-2 🟠 末尾1〜2文字の孤立が本文側に残っていた ──────────────────────
   balance は短い見出し向け。**段落の最終行が1〜2文字になるのを防ぐのは pretty**。
   見出しには balance、本文・リード・キャプションには pretty を当てる。 */
/* ── 7-3 🟠「画像 準備中」の枠の比率がばらばらで作りかけに見えていた ────────
   スポーツ売場では 655px と 700px の枠が縦に連続し、約1,400px の空白帯になっていた。
   退避枠は高さを抑えて、面としてまとまるようにする。 */
/* ⚠ 最初 `aspect-ratio:4/3; max-height:340px` と書いた。高さで頭打ちになると
     **幅まで 451px に縮み**、下の銘板（630px）と 180px ずれた。
     ＋ 同じ修飾クラスなのに実画像の有無で比率が変わり、行内でキャプションの
     開始位置が最大 157px ずれた。**カード内の枠は宣言された比率のまま残す。**
     高さを抑えたいのは「全幅1枚」の枠だけなので、そこだけ横長にする。 */
/* ── 7-4 🟠 SP で「加入者限定SALE」が語中で割れていた ──────────────────
   ⚠ 最初 white-space:nowrap にしたら、ラベルが親を押し広げて
     **SP で横に 227px はみ出した**（実測 right=617 / 幅390）。
     ラベルを1行に切り出せば、折り返し自体が起きない。 */
/* ══════════════════════════════════════════════════════════════════════════
   8. 3巡目のビジュアルQA（3体／125枚）の指摘反映
   ══════════════════════════════════════════════════════════════════════ */
/* ── 8-1 🔴 退避した枠が高さ24pxの帯に潰れていた ────────────────────────
   `.anv-photo` は中の <img> で高さが決まる作り。<img> を外してラベルだけにしたので
   高さが padding 分しか残らなかった。**画像を外すなら、枠自身に高さを持たせる。** */
/* 同じ理由で 1F の PICK（SP は flex 縦積みなので、absolute だと高さが0になる） */
/* 退避で <img> を外すと `.anv-f1-case` は padding 分しか高さが残らない。
   枠自身に比率を持たせる（§8-1 と同じ手当て）。 */
/* ── 8-2 🔴「画像 準備中」が暗地の上で 2.3:1 しか無かった ────────────────
   コントラスト検査を「v19 で足したクラスの固定リスト」で回していたので見逃した。
   検査は全テキスト走査に作り直したうえで、ここも直す。 */
/* ── 8-3 🟠「画像 準備中」の意匠が2種類あった ────────────────────────
   68px角のサムネ用（.ci-ph）と本文用（.anv-ph-label）で、枠・行数・位置が違った。
   同じ意匠のサイズ違いに揃える。 */
/* ── 8-4 🔴 SP の横スクロールに「続きがある」合図が無かった ──────────────
   最初に足したセレクタ（.anv-f2-rail 等）は **このページに1つも存在しなかった**。
   実際のスクローラを名指しする。 */
/* ── 8-5 🟠 末尾1〜2文字の孤立が残っていた箇所（列挙の取りこぼし） ────────
   ⚠ セレクタを列挙する方式は、書き忘れたところが必ず残る。
     3F は73件すべて .anv-f3-card__why なので、漏れると影響面が最大になる。 */
/* ── 8-6 🟠 読みもの一覧の大カードに約110pxの死に余白 ────────────────
   本文と図版が両方 flex:1 で余剰高を分け合っていた。余剰は図版側に寄せる。 */
/* ── 8-7 🟠 会員カードのリンクが本文の行末に流れ込み、PC/SPで位置が逆転していた */
/* ── 8-8 🟠 退館の見出しとCTAが、スクロール量によって半透明の時間帯を持っていた
   非交渉ルール4「購入導線は演出ゼロで即時表示」の趣旨に触れる。
   フェードは背景だけに掛け、文字と釦は常に読める状態にする。 */
/* ── 8-9 🟠 PC のプロローグで、縦組みがシャンデリアの明部に重なって読めない ──── */.anv-t-fx-narr .anv-t-col{text-shadow: 0 1px 2px rgba(10, 20, 20, .8), 0 0 6px rgba(10, 20, 20, .45);}
/* ── 8-10 🟡 SP の現在地ラベルが「1F →…」「ご利…」まで潰れていた ────────── */
/* ── 8-11 🔴 深緑地の上の小さな文字が 2.5〜2.6:1 しか無かった ────────────
   真鍮 #a8853f / 古真鍮 #6b5730 は**紙地の上でのための色**。
   深緑（#22403f / #2b504d）の上では読めない。暗地用の #d9b978 に替える。
   （検査を全テキスト走査に作り直して初めて見つかった。固定リスト方式では
     `.anv-eyebrow` を入れていなかったので、7ページ全部で見逃していた） */
/* 深緑地の上（暗地用の色へ） */
/* 紙地の上（明るい真鍮 #a8853f は 2.6:1 しかない。古真鍮 #6b5730 は 6.2:1）
   ⚠ 一度これも暗地用の色にしてしまい、1.69:1 とかえって悪化させた。
     **地の明暗を確かめてから色を選ぶ。** */
/* ── 8-12 回遊ナビの階数（10px）が深緑地で 3.09:1 だった ────────────────
   基準未満のまま残っている中で、**v19 が5枚に増やした部品**はここだけなので直す。
   （他の 3〜4.5:1 は v18-2 から引き継いだ配色で、色設計の見直しとして別に扱う） */
/* ══════════════════════════════════════════════════════════════════════════
   9. 検収基準・非交渉ルールの監査（4巡目）の反映
   ══════════════════════════════════════════════════════════════════════ */
/* ── 9-1 🔴 非交渉ルール4「購入導線は演出ゼロで即時表示。opacity:0 から始めない」──
   価格が [data-rv="rise"] のカードの中に入っていたため、実効 opacity が 0 から始まっていた。
   さらに 2F の追随フォーカス（いま見ていない品を .5 に沈める演出）が価格まで巻き込んでいた。
   **価格とCTAは、演出の対象から外す。** カード全体のリビールは残してよい。 */:where(.anv-teaser) [class*="__price"]{opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  clip-path: none !important;}
/* ── 9-2 🔴 非交渉ルール5「reduced-motion で全モーション停止。要素は最初から表示」──
   モーションは止まっていたが、装飾ナレーションと「FLOOR GUIDE」が
   opacity 0 のまま最後まで表示されなかった。 */@media (prefers-reduced-motion: reduce){.anv-t-fx-cue,:where(.anv-teaser) [data-rv],:where(.anv-teaser) [data-rv="line"],:where(.anv-teaser) [data-rv="rise"],:where(.anv-teaser) [data-rv="mask"]{opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    filter: none !important;}
  /* v20 teaser 切り出し時に発覚（2026-08-26 実測）:
     9-2 で .anv-t-fx-narr .anv-t-col まで opacity:1 にしていたため、reduced-motion では
     縦書きナレーション3列が H1「映像の余韻を、一生モノの愛着へ。」と CTA の上に
     まとめて重なり、どちらも読めなくなっていた（index.html / teaser.html とも）。

     ナレーションは --p .62/.70/.78 で立ち上がる「後のビート」の装飾で、
     アニメーション時は H1 が退いたあとに出るので重ならない。
     reduced-motion では時間軸が無いので、後のビートを前のビートに重ねてはいけない。
     aria-hidden="true" の純粋な装飾（読み上げ対象ではない）なので、伏せても情報は落ちない。
     同じ文意は CONCEPT 本文が持っている。 */.anv-t-fx-narr{display: none !important;}
}
/* ── 9-3 検収基準5「セクション余白は PC 96px 以上・SP 64px 以上」──
   product-hero だけ 92px / 56px で下回っていた（実測）。 */
/* ── 9-4 検収基準2「表紙は1.2秒以内に全要素が視認できる」──
   会期のメタ行だけ 1.5s かかっていた（実測 t=1202ms で opacity 0.71）。 */.anv-t-fx-poster__meta{transition-delay: .28s !important;}
/* ── 9-5 🔴 ルール4 の続き — **子で opacity を戻すことはできない** ──────────
   価格に `opacity:1 !important` を書いても、**親が 0 なら子は見えない**。
   opacity は親から継承ではなく合成されるので、直すのは演出を持つ側。

   ① 価格を含むカードは、リビール（[data-rv]）の対象から外す
   ② 2F の追随フォーカスは、カード全体ではなく **図版と銘板だけ**を沈ませる
      （価格は常に読める。非交渉ルール4「購入導線は演出ゼロで即時表示」） */:where(.anv-teaser) [data-rv]:has([class*="price"]),[data-rv]:has(.anv-price-tag){opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
  filter: none !important;}
/* ── 9-6 🔴 死にセレクタで「直したつもり」になっていた3件 ────────────────
   ⚠ **セレクタを書いたら、当たっている要素数を数える。** 3巡目で書いた
     `.anv-lp-member__card` `.anv-lp-member` `.anv-f2-rail` はいずれも
     HTML に1つも存在しなかった。検査（check-dead-css.mjs）を新設した。 */
/* 会員カードのリンクが本文の行末に流れ込み、PC/SP で位置が逆転していた
   （実クラスは .anv-lp-mem__* だった） */
/* ── 9-7 🔴 退館の見出しとCTAが親の opacity で沈む ──────────────────────
   ⚠ 子に `opacity:1 !important` を書いても**祖先の opacity は打ち消せない**。
     ルール4のときと同じ間違いを2回した。フェードを持つ**親**を止める。 */
/* ── 9-8 🟠 階札の見出し（.fp-eyebrow）が暗地で 3.93:1 ────────────────
   `.anv-eyebrow` だけ直して、階札側の `.fp-eyebrow` が漏れていた。 */
/* ── 9-9 🟠 COMING SOON の暗幕の下にラベルが置かれ 3.00:1 だった ────────── */
/* ── 9-10 🟠 SP で 3F の退避サムネだけ高さが違い、2列の行が揃わなかった ──── */
/* ── 9-11 🟡 末尾1〜2文字の孤立（列挙の取りこぼし・3回目） ────────────── */.anv-t-fx-narr .anv-t-col{text-wrap: pretty;
  word-break: auto-phrase;}
/* ── 9-12 🔴 PCのプロローグが依然 2.05:1（文字影だけでは足りなかった） ────
   シャンデリアの明部に文字を置いている。影を濃くするのではなく、
   **文字の帯にだけ局所のスクリムを敷く**（表紙で使った手法の展開）。 */
/* ⚠ 90deg の片流れだと、**右端の列だけ薄い側が当たって読めない**（Fable 指摘・PC）。
   列ごとに、その列の幅で消える縦の帯にする。 */
/* ⚠️ v21 F-17（黒岩 08-31・実機目視）: この 90deg のグラデーションは
   **左右にしか消えない**。縦組みの列は細長いので、上下は端まで不透明のまま
   ＝写真の上に**黒い短冊が3本立っている**ように見えていた。
   ＋ 0 0 16px の影を字ごとに重ねたぶんも塊になっていた。
   面は列の外まで届く楕円（下の ::before）で作り、影は輪郭ぶんだけに戻す。 */.anv-t-fx-narr .anv-t-col{position: relative;
  padding: 12px 16px;
  background: none;
  text-shadow: 0 1px 2px rgba(10, 20, 20, .92), 0 0 8px rgba(10, 20, 20, .62);}
/* closest-side = 箱の四辺でちょうど透明になる楕円。角にも端にも縁が出ない。
   ⚠️ TZ-36（2026-09-07）で inset を組み替えた。**縦組みと横組みで長い辺が入れ替わる。**
      縦組みは細長い縦の列だったので `-78px -18px`（縦に大きく）で、文字が終わる位置に
      濃さを残していた。横組みでは行が横に長いので、同じ値だと上下 78px の楕円が
      3行ぶん重なって**一枚の黒い塊**になる。長い辺（横）を広げ、短い辺（縦）を詰める。 */
/* ⚠️ TZ-36 で `closest-side` を `farthest-corner` に替えた。
      closest-side の楕円は**箱に内接する**ので、四隅が素通しになる。
      縦組みのときは列が細長く（幅 60px 級）、内接楕円でも字が全部その中に入っていた。
      横組みの行は 612x132 のように横長なので、角が楕円の外へ出る
      （実測: (612/704)² + (132/164)² = 1.40 > 1）。不足画素も**すべて角**に出ていた。
      farthest-corner にすると楕円が角まで届く。箱の外へ少し滲むが、
      3行とも同じ色なので重なっても縁は出ない。
   ⚠️ 減衰は**なだらかにする**。`.80 46%` のような広い平坦部を作ると、
      3行の楕円が重なって**黒い板**に見える（F-17 が縦組みで踏んだのと同じ症状）。
      実測 4.5:1 未満: 箱全体で 0.5〜0.6% ／ padding を除いた字の乗る範囲で 0.00〜0.27%。
      残りは中央寄せの行の**両端の余白**で、字は乗っていない。 */.anv-t-fx-narr .anv-t-col::before{content: ""; position: absolute; inset: -14px -40px; z-index: -1;
  background: radial-gradient(farthest-corner,
      rgba(12, 26, 28, .82), rgba(12, 26, 28, .68) 32%,
      rgba(12, 26, 28, .34) 68%, rgba(12, 26, 28, 0) 100%);}
/* ══════════════════════════════════════════════════════════════════════════
   10. 4巡目の指摘反映 — いずれも「3巡目の修正そのもの」が原因
   ══════════════════════════════════════════════════════════════════════ */
/* ── 10-1 🔴 棚の中央だけ図版が短く、銘板の書き出しが52〜67pxずれた ──────
   §8-1 で「img を外した枠は一律 4:3」としたのが誤り。
   **正しい規則は「同じ行の兄弟と同じ比率」**。棚の中は 1:1 で揃っている。 */
/* ── 10-2 🔴 SP で価格の説明文が3つの塊に割れた ──────────────────────
   §7-4 を子孫セレクタで書いたため、**文中の <b>¥55,992</b> まで block 化**していた。
   ラベルは直下の <b> だけ。 */
/* ── 10-3 🟠 見出し側に折り返しの手当てが無く、大きい文字で孤立が目立っていた
   ⚠ §8-5 のコメント自身が「列挙は書き忘れが必ず残る」と書いた通りになった。
     見出しクラスは grep で洗って一度に入れる。 */
/* ── 10-4 🟠 回遊ナビの現在地表示だけ 3.64:1 だった ────────────────
   §8-11/8-12 で深緑地の小文字を洗ったのに、同じ部品の中でここだけ残っていた。 */
/* ── 10-5 🟠 SP の追従バーで現在地が「2F スポ…」まで潰れていた ────────── */
/* ── 10-6 🟡 仕様表の見出しが語中で折れる／等高カードの下端が揃わない ────── */
/* ── 10-7 🟡 記事本文の1行目が極端に短くなっていた ────────────────────
   `pretty`（末尾行の孤立を防ぐ）と `auto-phrase`（文節で折る）を重ねると、
   段落によっては先頭行を強く切る。本文は `pretty` だけにする。 */
/* ══════════════════════════════════════════════════════════════════════════
   11. 5巡目の指摘反映
   ══════════════════════════════════════════════════════════════════════ */
/* ── 11-1 🟠 COMING SOON のラベルが 3.36:1（枠線だけで地が無かった）──────
   §9-9 で「画像 準備中」のほうは直したが、同じ暗幕の上にある
   COMING SOON のラベル自体は手つかずだった。 */
/* ── 11-2 🟠 1F ピックの商品名・仕様値が語中で折れる（列挙の取りこぼし・4回目）
   ⚠ 列挙式は必ず取りこぼす。**商品名・仕様を出すクラスは grep で洗って一度に入れる。** */
/* 本文のカタカナ語が語中で折れていた（「お取り／扱い」「量販のプリン／トほど」） */
/* ── 11-3 🟠 1F WEEK 1 の右下に 760×340px の白場が残っていた ──────────
   §6-11 は `.anv-lw-row` にしか効いておらず、週の売場グリッド側は手つかず。
   注記を1カラム幅に落として、カードの下に流す。 */
/* ── 11-4 🟡 SP で 3F の退避サムネだけタイル全面に伸び、意匠が揃わなかった ──
   §9-10 で `width:100%` にしたのが行き過ぎだった。実画像と同じ寸法に戻す。 */
/* ── 11-5 🟡 SP の追従バーで現在地が「1F 加入者…」に潰れる ──────────── */
/* ══════════════════════════════════════════════════════════════════════════
   12. 6巡目の検収監査の反映
   ══════════════════════════════════════════════════════════════════════ */
/* ── 12-1 🔴 検収基準2「表紙は1.2秒以内に全要素が視認できる」──────────
   `.anv-t-fx-crest__en`（1ST ANNIVERSARY）だけ transition-delay .98s ＋ .6s で
   **構造的に間に合わず**、完了は約1.9s。実測 t=1200ms で opacity 0。 */.anv-t-fx-crest__en{transition-delay: .32s !important;}
/* ── 12-2 / 12-2b（削除・2026-09-03）─────────────────────────────────────
   焼き込みサイン「WOWOW百貨店」と h1 の二重像を、h1 を下へ逃がす（margin-top）と
   局所スクリムを濃くする（h1::before）の2手で受けていた。
   TZ-1 で h1 そのものが消えたので、規則ごと落とした。当たる要素はゼロだった。
   ⚠️ **焼き込みサインは今も KV に残っている。** K-14「ロゴ除去 完了」は台帳の誤記録で、
      kv-seasons.mp4 と poster 2枚は v20 から md5 が1バイトも変わっていない
      （docs/2026-09-03-teaser-revision §4）。銘板との重なりは §12-4 の扱いが引き続き効く。 */
/* ── 12-3 🔴 検収基準5「セクション余白は PC 96px 以上・SP 64px 以上」──────
   §9-3 で `.anv-ph-sec` は直したが、`--tight` 変種（floor-1 の2セクション）が
   PC 57.6px / SP 51.2px のまま残っていた。 */
/* 会期のメタ行とCTAも同じ帯の上に載せる */.anv-t-fx-poster__meta{text-shadow: 0 1px 10px rgba(16, 32, 34, .9), 0 0 26px rgba(16, 32, 34, .7);}
/* ── 12-4 🔴 表紙の題字が建物のサインに重なって読めない（実機で発見）──────
   画面高 782px（ノートPCで一般的）で、`.anv-t-fx-crest` が KV の「WOWOW」サインの
   真上に来る。とくに「1ST ANNIVERSARY」（11px・字間 .42em）が判読できない。

   ⚠ **900px の検証では出なかった。** 表紙は vh 基準なので、画面高によって
     題字とサインの位置関係が変わる。1つの高さで見て「大丈夫」と判断してはいけない。

   ⚠ 最初、額の内側に不透明度 .82 のスクリムを敷いたら **黒い箱**になり、
     建物も額の罫も消えた。**面で覆う方向は捨てる。**
     読めないのは 11px・字間 .42em の「1ST ANNIVERSARY」だけなので、
     そこだけ色と影を強くする。題字（37px・卵色）は元から読める。 */.anv-t-fx-crest__en{color: var(--anv-gold-lit, var(--gold-lit)) !important;
  opacity: 1 !important;
  text-shadow:
    0 1px 2px rgba(12, 24, 26, .95),
    0 0 10px rgba(12, 24, 26, .9),
    0 0 22px rgba(12, 24, 26, .75);}.anv-t-fx-crest__jp{text-shadow:
    0 2px 6px rgba(12, 24, 26, .8),
    0 0 22px rgba(12, 24, 26, .6);}
/* 額の中だけ、上下に向かって消える薄い地。**箱に見えない濃度**に留める
   （不透明度 .82 の全面スクリムは黒い箱になったので却下した） */
/* ⚠ 上下だけで消す版は、左右の縁が立って**「貼ってある矩形」**に見えた（Fable 指摘）。
   四辺に向かって消す楕円にして、紙面に馴染ませる。 */.anv-t-fx-crest::after{content: "";
  position: absolute;
  inset: -6% -4%;
  z-index: -1;
  background: radial-gradient(ellipse 62% 58% at 50% 50%,
      rgba(14, 28, 30, .50) 0%,
      rgba(14, 28, 30, .40) 55%,
      rgba(14, 28, 30, .16) 82%,
      rgba(14, 28, 30, 0) 100%);}
/* ══════════════════════════════════════════════════════════════════════════
   13. 🔴 「10月の公開時点で公開されるページ」として組み直す（黒岩指示・2026-08-17）
   ────────────────────────────────────────────────────────────────────────
   これまで「画像 準備中」「仮画像」「確定前」「選定中」「取材は9月から」といった
   **制作の途中経過を読者に見せていた**。公開されるページにそんな文言は出ない。
   ・素材が来ていない枠 → 文字を出さない「写真の入る面」として組む
   ・開示は**フッターの1箇所だけ**
   ══════════════════════════════════════════════════════════════════════ */
/* 🔴 ここで「暗い面の中の枠は地に合わせる」＝半透明の暗い面にしていた。
   その結果、深緑地の PICKS 帯では**ただの濃い矩形**になり、Fable 2巡目で3体全員が
   「画像の読み込みに失敗して見える」と言った（`index_pc/10.png`）。
   §18 の紙地の板を全面で使う（暗地の上では「紙の板」として意図が読める）ので、
   この上書きは廃止する。 */
/* 枠線は破線をやめ、他の図版と同じ細罫にする（「未完成」に見せない） */
/* 3F の 68px サムネも同じ扱い */
/* ══════════════════════════════════════════════════════════════════════════
   14. 読みものの訴求（黒岩指示・2026-08-17）
   ────────────────────────────────────────────────────────────────────────
   「読み物の訴求が弱すぎる。この部分は今後も流用するので、記事一覧みたいなページを
     作った上で、冒頭に記事をもっとプッシュするように記事のサムネイルとタイトルとかの
     カードを出すように」

   これまで TOP の読みもの導線は**文字だけの細い帯**で、記事の顔が1つも見えなかった。
   1周年が終わっても残る資産なので、記事そのもの（サムネイル＋題）で押す。
   ══════════════════════════════════════════════════════════════════════ */
/* ── カード3枚 ─────────────────────────────────────────── */
/* ジャンルの色は 2F と同じ割り当て（音楽＝桃／映画＝藤紫／スポーツ＝若苗／暮らし＝黄）。
   ⚠ `.anv-floor2-*` が持っているのは `--fc` ではなく `--anv-floor`。
     推測で変数名を書いて色が出ていなかった（実機で気づいた）。 */
/* ⚠ `.anv-floor2-*` の定義は index が読み込んでいないCSSにあり、色が出なかった。
   index のインラインCSSは `--wakanae` 等、assets は `--anv-wakanae`。両対応で直接指定する。 */
/* リード文の長さが違ってもカードの足元が揃うように、下端へ寄せる */
/* ══════════════════════════════════════════════════════════════════════════
   15. 表紙のトーンを「秋の昼」に戻す（Fable 指摘・2026-08-17）
   ────────────────────────────────────────────────────────────────────────
   Fable「KVは青空なのに、窓明かり＋テキスト可読用スクリムで第一画面の実効印象は
   『夕〜夜』。先方指摘 #10『ダークネイビーが重い』への回答として出す版の
   **一枚目が暗い**のは、話の筋として弱い」

   実体は `html.anv-armed .anv-t-fx-video { filter: brightness(.60) }` と
   `.anv-t-fx-dim { opacity: .62 }` の二重の暗転だった。
   文字の可読性は §12 で**局所のスクリム**に移したので、全体を暗くする必要はもう無い。
   ══════════════════════════════════════════════════════════════════════ */html.anv-armed .anv-t-fx-video{filter: brightness(.86) saturate(1.04);}.anv-t-fx-dim{opacity: clamp(0, calc((var(--p) - .22) * 1.8), .40) !important;}html.anv-armed .anv-t-fx-dim:not([style]){opacity: 0;}
/* 明るくしたぶん、題字と見出しの局所スクリムを少しだけ強くして可読性を保つ */.anv-t-fx-crest::after{background: radial-gradient(ellipse 62% 58% at 50% 50%,
      rgba(14, 28, 30, .58) 0%,
      rgba(14, 28, 30, .46) 55%,
      rgba(14, 28, 30, .18) 82%,
      rgba(14, 28, 30, 0) 100%);}
/* 16.（廃止）TOP 末尾の読みもの章を <a class="journal-card"> にする一式。
   黒岩指示「上と同じやつを入れる感じで良いよ」で、末尾は冒頭と同じ
   `.anv-lp-readcard` に統一した（S15）。`journal-card` はページに存在しなくなったので、
   ここに書いていた4規則は削除した（check-dead-css.mjs が検出）。 */
/* ══════════════════════════════════════════════════════════════════════════
   17. 暗色プレートの上の小さな文字を、規定のコントラストまで上げる（2026-08-17）
   ────────────────────────────────────────────────────────────────────────
   check-a11y が 5件を「基準未満（3〜4.5:1）」として出していた。
     ・.anv-plaque .item-no（10px）   brass #a8853f on #2f241c = 4.38:1
     ・.anv-ph-buybar__price（15px）  gold  #c29d52 on 暗色帯   = 4.40:1
   どれも 4.5:1 に僅かに届かない。**いずれも暗色地の上**なので、
   そのために用意した既存トークン `--anv-gold-lit`（v18・深緑地の上の文字用）を使う。
   新しい色は作らない。

   ⚠ 適用先は「暗色プレート（#2f241c）の上」だけ。全ページを実測して、
     `.item-no` と `span.s` がこの地の上にしか出ないことを確かめてある。
   ══════════════════════════════════════════════════════════════════════ */
/* 章末の「読みものをすべて見る」がカードに接していた。1行ぶんの間を置く */
/* ══════════════════════════════════════════════════════════════════════════
   18. 「写真の入る面」を、意図した図版として組む（Fable 2巡目・3体すべての指摘）
   ────────────────────────────────────────────────────────────────────────
   §13 では `.anv-ph-slot` を「紙色の薄いグラデーションだけの面」にした。
   実物を3体に見せたところ、**全員が「画像の読み込みに失敗しているように見える」**と言った。
   とくに深緑地の PICKS 帯では、ただの濃い矩形になっていた（`index_pc/10.png`）。

     「1F の参加ブランド枠（紙地にブランド名の活字＋下線キャプション）は
       無地でも**意図した文字図版**として成立している。この方式を横展開すべき」

   商品名を枠の中へ機械的に持ち込むのは、カードの形が5種あるので取りこぼす。
   ここでは**意匠として意図が読める面**にする＝紙地の板＋内側の細罫＋中央に小さな菱形。
   菱形は表紙の題字の飾り・フロアガイドの ◇ と同じ記号なので、館の意匠として繋がる。

   ⚠ 深緑地の上でも「紙の板」になるので、地に沈まず「写真のない一点」として読める。
   ══════════════════════════════════════════════════════════════════════ */
/* 🔴 3F の68px角サムネは、枠ごと外して文字だけのカードにした（retire-tmp-images.py）。
   `.cabinet-item{grid-template-columns:68px 1fr}` のままだと `.ci-copy` が
   68px幅に押し込まれ、**品名が4〜6文字ずつ折り返す**（Fable 2巡目で2体が同時指摘）。
   写真の無いカードは1カラムで組む。 */
/* ⚠ `:has(img)` は `.ci-by` の担当者アイコン <img> にも当たっていた（6枚すべて真になり、
     この規則は1つも当たっていなかった＝check-dead-css.mjs が検出）。
     商品の図版は `.cabinet-item` の**直下の子**なので `> img` で見る。
     09-04 に署名（`.ci-by`）を廃止したためアイコンは無いが、`> img` のまま置く。 */
/* ══════════════════════════════════════════════════════════════════════════
   19. プロローグの縦組みナレーションを、右の列から読ませる（Fable 2巡目・🔴）
   ────────────────────────────────────────────────────────────────────────
   `writing-mode: vertical-rl` の3列を `display:flex` の DOM 順（左→右）に並べていた。
   縦組みは**右の列から読む**ので、実際に読める順は

     「1F 加入者限定セール、2F …、3F 社員が選んだ100選。」
     →「1周年の感謝祭は、3つのフロアで開きます。」
     →「一年前の秋、湖のほとりに小さな百貨店をひらきました。」

   となり、**物語が逆再生になっていた**。列の並びを反転する。
   ・リビールは c1(.62) → c2(.70) → c3(.78) の順なので、反転すると
     右から順に立ち上がる＝読む向きと一致する（DOM は触らない）。
   ・SP（max-width:640px）は `horizontal-tb` ＋ `flex-direction:column` なので対象外。

   🔴 **TZ-36（2026-09-07）で規則を削除した。** PC も横組みに一本化したので、
      3文は DOM 順のまま上から下へ読める。反転は縦組みだけの手当てだった。
      規則を残すと `flex-direction:column` を `row-reverse` が打ち消して横並びに戻る。
   ══════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   20. SP: 記事プッシュの「すべて見る」を、カードの後ろに置く（Fable 2巡目・🟠）
   ────────────────────────────────────────────────────────────────────────
   PC では見出しブロックの右端に置いているので自然だが、SP では縦積みになって
   **カードより先に離脱導線が出る**（`index_sp/03.png`）。読ませてから出す。
   ══════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   21. 3F 詳細ページに商品の図版を入れる（黒岩指示・2026-08-17）
   ────────────────────────────────────────────────────────────────────────
   > 3fの詳細ページ、商品画像はあった方がいいでしょ。。。

   素材は **先方の本番ストアのその商品の正規の写真**（fetch-f3-images.py）。
   このページは「台帳」の意匠で、箱も影も作らず罫だけで組んでいる（section-anv-f3.css）。
   図版もその文法に合わせる＝**枠線は下の細罫1本だけ**、地は紙。
   写真が取れなかった4件は枠を置かない（空枠を並べない）ので、
   図版のある行と無い行が混ざる。台帳としてはそれで読める。
   ══════════════════════════════════════════════════════════════════════ */
/* 図版のある行と無い行で番号の位置が揃わないので、番号を図版の上に出す */
/* ══════════════════════════════════════════════════════════════════════════
   22. 参加ブランドのロゴウォールに、実ロゴを入れる（黒岩指示・2026-08-17）
   ────────────────────────────────────────────────────────────────────────
   > ここのへんのロゴは全てWebで引っ張ってきて載せておいて。内部用でしか使わないから
   > 入れて大丈夫。仮バッジをつけた上で。

   ・出どころとライセンスは assets/logos/CREDITS.md に1件ずつ残してある。
   ・右上に「仮ロゴ」の印を出す（プロジェクトの仮素材ルール: 空枠にせず仮を入れ、印と出典を必ず付ける）。
   ・ロゴは縦横比も字面の濃さも各社ばらばらなので、**枠の中の面積を揃える**のが仕事。
     高さで揃えると横長のロゴ（KÄRCHER・Shot Navi）が大きく見えるので、
     `max-height` と `max-width` の両方で抑えて中央に置く。
   ══════════════════════════════════════════════════════════════════════ */
/* SP の3F台帳は、正方形の図版を全幅で積むと**全長が47,000pxを超えた**（撮影で実測）。
   73件の台帳なので長いのは当然だが、1件あたり350pxの写真は読みに邪魔。
   小さめの角版にして、番号・品名・コメントの流れを主役に戻す。 */
/* ══════════════════════════════════════════════════════════════════════════
   23. 3F 台帳に所在階を出す（支給データ 0817 で「ジャンル」列が入った）
   ────────────────────────────────────────────────────────────────────────
   TOP の3F案内は「所在階も書いていますので、理由から各フロアへ戻れます」と約束している。
   2F に売場があるジャンルだけリンクにする（音楽／映画／スポーツ／暮らし）。
   売場が無いジャンル（オリジナルドラマ・アニメ・ステージ）は文字だけ。
   ══════════════════════════════════════════════════════════════════════ */
/* ===== [3/5] section-anv-f3-2col.css ===== */
/* ============================================================================
   section-anv-f3-2col.css / v19-2 追加CSS — 3F「社員が選んだ100選」台帳を SP で2列に組む
   ----------------------------------------------------------------------------
   対象: floor-3.html（.anv-f3-grid / .anv-f3-card）。
   読み込み: design/versions/v19-2/css/*.css の glob で全ページに <link> される
             （structural-edits-2.py T3）。ファイル名昇順で section-anv-v19-2.css より前。
             このファイルは anv-f3-card 系しか触らないので、v19-2 側の
             .anv-note / #three-days とはセレクタが重ならない。

   黒岩指示（2026-08-18）:
     「第三階層の詳細ページですが100こを1個づつ縦に並べるは流石に長すぎるので、
       2列にして縦の長さを変えてください」

   ■ 何が起きていたか（実測・102件）
     .anv-f3-grid は repeat(auto-fill, minmax(288px, 1fr)) なので、
     PC 1280px=4列 / 1024px=3列 / 768px=2列 と畳めていた。
     ところが 288px の下限に届かない SP だけ **1列** に落ちる。
       390px … 1列 × 102件 = ページ全長 43,141px
     提出用スクショの合成面上限（CSS 8,192px / docs/20 §3 の欠落事故）どころか、
     指で送りきれる長さではない。1列のままでは末尾の品まで読まれない。

   ■ 直し方（HTML は触らない）
     floor-3.html は structural-edits-2.py の生成物なので、手を入れると
     次の build.sh --clean で戻る。列組みは grid の指定だけで足りるので CSS に閉じた。

   🔴 minmax(0, 1fr) が必須。`1fr 1fr` にすると 1fr = minmax(auto, 1fr) の
      auto（min-content）が効いて列が 280px まで膨らみ、
      .anv-f3-grid の overflow:hidden に隠れて**右列の中身が切れた**（実測）。
      横スクロールも出ないので、見落としやすい壊れ方をする。

   ■ 結果（390px・102件）
     1列 43,141px → 2列 27,773px（-36%）。行数 102 → 51。
     横はみ出し 0。台帳の縦罫・カード下端の所属罫はどちらも揃ったまま。
   ========================================================================== */
/* ===== [4/5] section-anv-v19-2.css ===== */
/* ══════════════════════════════════════════════════════════════
   v19-2 追加CSS — 注記（※）の型ひとつだけ
   ──────────────────────────────────────────────────────────────
   黒岩指摘（2026-08-18）:
     「割引が適用されるのは…とかを説明文に入れるのもおかしい。
       注意書きとして下に小さく入れるとかならわかるけど。」

   COPY-FIX-PLAN §3 C-20 / 黒岩判断④=(a)「※ ＋小サイズ ＋上罫線」。
   条件・免責・法令表記は本文から剥がし、価格の直下にこの型で置く。

   🔴 新規クラスは .anv-note の1本だけ。既存の注記クラス
      （.anv-f2-login / .anv-f1-member__guest）には **併記** して使うので、
      位置とマージンは既存側の指定をそのまま活かす。
   ══════════════════════════════════════════════════════════════ */
/* 🔴 注記は「紙地の上（1F・2Fの見方）」と「湖の深緑の上（TOPのジャンル抜粋）」の
   両方に出る。墨色を1つ決め打ちすると暗地で沈む（実測: TOP 2F の PICKS が判読不能だった）。
   既定は紙地用の墨、暗色地の面だけ紙色に返す（下の .anv-lp-genre 指定）。
   罫線は currentColor から作るので、どちらの地でも同じ弱さで出る。 */
/* 暗色地の面（TOP の 1周年PICKS）だけ紙色に返す */
/* ※ と ※ の行頭をそろえる（2行目以降を1文字ぶら下げる） */
/* 既存クラスと併記されたときは、既存側のフォントサイズより注記の型を優先する。
   .anv-f2-login は 13px、.anv-f1-member__guest は本文サイズだった。 */
/* 注記の中のリンクは opacity で沈ませない（押せることが分かる必要がある） */
/* 「ログイン特典あり」のタグは注記の中でも従来どおり見せる（ぶら下げの対象外） */
/* ── #three-days に戻した「対象と割引率」の1行（T2）────────────────
   非交渉ルール2「%OFFの大書き禁止」に触れないよう、本文サイズのまま置く。 */
/* ===== [5/5] section-anv-v19-3.css ===== */
/* ══════════════════════════════════════════════════════════════
   v19-3 追加CSS — 1F の出口（章末の一覧への動線）
   ──────────────────────────────────────────────────────────────
   黒岩指示（2026-08-18）:
     「第二階層の中のセクションの中の商品で一覧ページは画面的にない。
       ここは実際は既存サイト側の一覧ページになる。」

   その棚卸しで、**1F には一覧への出口が1本も無かった**ことが分かった
   （目玉3点の「この商品の詳細を見る」で終わり、そのまま会員帯に落ちていた）。
   2F は各章の末尾に `.anv-f2-outro` を持つので、同じ型を 1F にも置く。

   🔴 新規クラスは .anv-f1-outro と .anv-f1-outro__cta の2本だけ。
      注記は v19-2 で作った .anv-note をそのまま使う（型を増やさない）。
      値は .anv-f2-outro と同一にする（フロアで出口の見た目が変わると型が読めない）。
   ══════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   13. 先方 PPT の反映（2026-09-03） — docs/2026-09-03-teaser-revision
   ══════════════════════════════════════════════════════════════════════ */
/* ── 13-1 🔴 支給文が縦組み1列に収まらない ──────────────────────────────
   PC の実効値は font-size 17px ＋ letter-spacing .19em（§D-11 が :204 を上書き）で
   1字送り 20.2px。列の丈は top/bottom（:227-231）と col の padding 12px で決まる。
   実測: 画面高 1080px で 784px＝約38字 ／ 900px で 633px＝約31字 ／ 800px で約27字。

   現行原稿の最長は30字で、**この版面は「1列＝1行」を前提に組んである**。
   支給文は 24 / 49 / 62字なので、900px 高では 1行 / 2行 / 3行に折れる。

   原稿は1字も変えられないので、次の3手で受ける:
     ① h1 が消えたぶん上端を上げて列の丈を稼ぐ（+80px ≒ +4字）
     ② 字送りを詰める（.19em → .14em / 17px → 16px = 1字送り 18.2px）
     ③ 残りは「1文＝1列（複数行可）」として受ける。天は align-items:flex-start で揃う
   ⚠️ 字間はこの版の意匠の核なので .12em より下げない。PCで横組みに倒す案は採らない。

   🔴 **TZ-36（2026-09-07）で「横組みに倒す案は採らない」を先方指示が上書きした。**
      規則は削除した。`top` は縦組みの列の丈を稼ぐための起点で、横組みには要らない
      （基底の justify-content:center が塊を中央に置く）。字送り .14em も、
      1列に何字入るかを合わせるための値だった。横組みの字間は基底の .08em。
      ここで解こうとしていた「1列に収まらない」問題そのものが、横組みで消えている。 */
/* ── 13-2 支給文の「10月」「10月1日」が横倒しになる ──────────────────
   縦組みの既定（text-orientation:mixed）では2桁数字が1字ずつ倒れて並ぶ。
   現行原稿が「十月一日から三十一日まで」と漢数字なのは、これを避けた設計だった。
   支給文は算用数字なので、2桁だけ縦中横で正立させる。
   「WOWOW」「WEB」は横倒しのままにする（和文組版の通例）。

   🔴 **ここの `text-combine-upright: digits 2` は効いていなかった。** 13-13 で差し替え済み。
      宣言は消してある（残すと「直したつもり」が二重に残る＝§9-6 の再発）。 */
/* ── 13-3 🔴 reduced-motion と支援技術に本文が1文字も残らない ────────────
   §9-2 の `.anv-t-fx-narr{display:none}` は「同じ文意は CONCEPT 本文が持っている」ことを
   前提にした措置だった。TZ-6/TZ-7 で CONCEPT を見出し＋CTAだけにし、#floors も
   落としたので、その前提が消えた。伏せたままだと今回の唯一の訴求
   （「ログインした方には一周年特別プライス」）が誰にも届かない。

   絶対配置を解いて通常フローに戻す。§9-2 が言う「H1 と重なる」問題は、
   重なりの原因（inset:0 の絶対配置）を外せば起きない。h1 も既に無い。 */@media (prefers-reduced-motion:reduce){.anv-t-facade{height:auto;min-height:0}.anv-t-facade .anv-t-stage{position:static;height:auto;overflow:visible}
  /* 背景レイヤーは inset:0 のまま伸びた .anv-t-stage を覆う */.anv-t-facade .anv-t-fx-poster{position:relative;inset:auto;min-height:100svh}
  /* ⚠️ TZ-43: **組版の値はここに持たせない。** 通常経路が横組みになった（TZ-36）ので、
        writing-mode / text-align / font-size / 字送り / max-width は基底と 13-16 が正。
        ここで別の値（17px・.06em）を持っていたため、通常 18px/.08em と食い違っていた。
        reduced-motion で要るのは「ピンを解いて縦に積む」ことだけなので、それだけ残す。
        左右の余白は通常経路も 24px に揃えてある（TZ-43）。 */.anv-t-facade .anv-t-fx-narr{display:flex !important;position:relative;inset:auto;
    padding:clamp(64px,9vh,96px) 24px clamp(40px,6vh,64px)}.anv-t-facade .anv-t-fx-cue{position:relative;inset:auto;justify-content:center;
    padding:0 24px clamp(48px,7vh,72px)}.anv-t-facade .anv-t-fx-cue a{align-items:center}
}
/* ── 13-4 ログイン誘導（CONCEPT の置き換え・TZ-6/TZ-7）──────────────────
   見出し1本とCTA1本だけの面。先方の狙いは「ログインボタンへ意識がいく構成」なので、
   周りに他の要素を置かない。 */.anv-ts-login{max-width:34em;margin-inline:auto;text-align:center;
  padding-block:clamp(16px,3vh,32px)}.anv-ts-login__title{font:600 clamp(13px,calc(4.3px + 3.1vw),26px)/1.9 var(--anv-serif-display,var(--serif));
  letter-spacing:.04em;color:var(--anv-ink,var(--ink));text-wrap:pretty;word-break:auto-phrase}
/* 🔴 字の大きさは 13-17 が実測で決めている。**ここを直接書き換えること。**
   後ろに `font-size` の上書きを足すと、`font:` ショートハンドとの関係が読めなくなる
   （非交渉ルール17「後の層で前の層を潰さない」）。 */.anv-ts-login__act{margin-top:clamp(28px,4vh,40px);display:flex;justify-content:center}@media (max-width:640px){.anv-ts-login__act{display:grid}
}
/* ── 13-5 🔴 支給文が折り返さず、列が画面の外へ伸びていた ──────────────
   §D-11 で `align-items:flex-start` にしたので、列の高さが**内容なり**になる。
   30字までの原稿では親（画面高 900px で 669px）に収まっていたが、
   62字の c3 は 1130px ぶんの高さを取り、`.anv-t-stage` の overflow:hidden で
   上が切れて頭から読めなくなっていた（実測・1280x900）。
   `stretch` に戻すと列の高さが親で決まり、そこで折り返す。
   D-11 が `flex-start` にした理由（最長列が中央寄せで上端を超える）は
   `top`/`bottom` を明示した時点で解決しているので、戻して問題ない。

   🔴 **TZ-36（2026-09-07）で規則を削除した。** 横組みでは列が縦に伸びないので、
      折り返しを親の高さで作る必要が無い。残すと `align-items:center` を打ち消して
      3文が画面幅いっぱいに広がる（13-11 で reduced-motion 側が実際に踏んだ形）。 */
/* ── 13-6 銘板がステンドグラスに乗る ────────────────────────────────
   TZ-2 で塊を中央に置いたら、銘板が建物の大アーチ（画面で最も明るく彩度が高い面）に
   重なり、額の1px罫（rgba(194,157,82,.62)）が沈んだ。
   下の余白を厚くして塊全体を持ち上げ、銘板を切妻下の砂岩帯に乗せる。
   ⚠️ 上げすぎると先方指示「画面中央」から外れる。銘板の中心が画面の 33〜36% に来る量で止める。

   🔴 **この手当ては 13-9 が引き取った。** ここの `padding-bottom` は消してある
      （残すと 13-9 と二重に効いて、どちらが位置を決めているのか読めなくなる）。
      実測すると 13-6 は狙いの 33〜36% を外して銘板の中心を 30% まで上げていた。 */
/* ── 13-7 「スクロール」が壁の上で沈む ──────────────────────────────
   建物の壁（明度 150 前後）に 12px・字間 .34em の金文字を置いていた。
   字を一段上げ、影を3段にして輪郭を立てる（§12-4 で `1ST ANNIVERSARY` に当てたのと同じ手当て）。 */.anv-t-fx-scroll{font-size:13px;
  text-shadow:0 1px 2px rgba(12,24,26,.95),0 0 10px rgba(12,24,26,.9),0 0 22px rgba(12,24,26,.75)}
/* ── 13-8 「スクロール」が窓のステンドグラスに埋もれる ──────────────────
   13-7 で影を3段にしたが、実測はまだ **1.54〜2.33:1**（要 4.5:1）。
   ラベルが乗る y は建物の**窓の帯**で、地が明るく彩度も高い。
   影は暗い地には効くが、明るい地では効かない（12-4 の手当てが効いた `1ST ANNIVERSARY` は
   切妻の無地の壁＝暗い地に乗っている。ここは条件が違う）。
   `.anv-t-fx-poster__meta` と同じ**楕円のスクリム**を敷いて、地そのものを沈める。
   ⚠️ 旧素材（Laplace 除去版）でも 1.25〜2.60 で、**動画の差し替えで出たものではない**。
      TZ-4 で「スクロール」を置いた時点から読めていなかった。 */.anv-t-fx-scroll{position:relative}.anv-t-fx-scroll::before{content:"";position:absolute;left:50%;top:9px;z-index:-1;
  width:250%;height:190%;transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(ellipse at 50% 50%,rgba(20,40,42,.74),rgba(20,40,42,.40) 46%,transparent 74%)}
/* ── 13-9 🔴 塊が上半分に詰まり、下 45% が空いていた ──────────────────
   黒岩 09-03「ロゴをなくしたことでボタンとテキストの位置に余白が生まれた」。

   5季節ぶんのコマ（1/6/11/16/21秒）を 1440x900 の見え方に切り、画面中央 ±200px の
   帯ごとに `.anv-t-fx-poster::before` のスクリムを掛けたあとの地を実測した:

     帯            位置      金/白（最悪季）    ばらつき
     砂岩帯        28〜39%   3.0 / 5.3〜6.6     0.03〜0.05   ← 静か
     大アーチの窓  42〜75%   1.8 / 3.1〜4.8     0.09〜0.20   ← 全帯で最も騒がしい
     入口の暗い帯  78〜83%   4.5〜5.7 / 8〜10   0.06         ← 静か・全帯で最良

   **焼き込みロゴが乗っていた帯（28〜37%）がそのまま「静かな帯」だった。**
   ロゴを消したので、銘板をこの帯に丸ごと乗せられる。
   一方で開催期間とスクロールは大アーチの窓の帯にいて、13-8 の楕円スクリムは
   「騒がしい地に文字を置いたこと」の後始末だった。地の側で解くほうが正しい。

   組み直し:
     ① 塊を中央寄せ（justify-content:center）から**上端起点**へ。銘板を 27〜39% に固定する
     ② スクロール誘導を**下端へ寄せる**（margin-top:auto）。ラベルが入口の暗い帯に乗る
     ③ 空いていた下 45% が誘導で埋まり、上下の重心が釣り合う

   ⚠️ 位置は svh 基準にしてある。画面高が変わっても帯との対応（%）が動かないため。
      px 固定にすると 782px 高で銘板が窓の帯へ落ちる。 */
/* 🔴 TZ-39（2026-09-07）: 上端を **27svh → 46svh** に下げた。
      13-9 は「焼き込みロゴを消したので、空いた砂岩帯（28〜39%）に銘板を丸ごと乗せられる」
      という前提で組んだ。先方「館とセットの WOWOW百貨店ロゴは削除NG」でその前提が消えた
      （TZ-37 で看板を戻した）。**銘板は看板の帯を明け渡して下へ移る。**

      看板の実測位置: 素材の y 303〜409 / 1080 ＝ 28〜38%。動画は object-fit:cover で
      縦は等倍に載るので、画面でも 28〜38%（1440x900 で y 252〜342）。

      移動量は「**塊が見えているあいだ**、銘板が看板に触れない」ことで決めた。
      見る区間は動画側ではなく塊側の不透明度で決まる。
      `.anv-t-fx-poster{opacity:clamp(0,(.26 - var(--p))*7,1)}` ＝ **p=0.26 で完全に消える**
      （動画が消えるのは p=0.62 だが、そのときには塊がもう無い）。
      塊は `--p * -140px` で上へ動くので、p=0.26 での銘板の上端は
        46svh − 36px ＝ 414 − 36 ＝ 378px（42%）。看板の下端 342px から **36px 空く**。
      ⚠️ ドリフト量（-140px）は触っていない。区間が p≤0.26 と短いので詰める必要が無い。 */.anv-t-fx-poster{justify-content:flex-start;
  padding-top:clamp(150px,46svh,620px);
  padding-bottom:clamp(88px,15svh,180px)}
/* auto は余りを全部食うので、開催期間との最小の間隔はこちらで担保する
   （flex では隣接マージンが相殺されないので、auto と足し算になる）。 */.anv-t-fx-poster__meta{margin-bottom:clamp(28px,4.4vh,48px)}.anv-t-fx-cta{margin-top:auto}
/* 🔴 TZ-43: 画面が低いとスクロール誘導が画面の外へ落ちる。
   46svh の上端＋銘板 92px＋開催期間 26px＋誘導 78px＋下の余白 88px で、
   横向きスマホ（844x390）では合計 490px＝画面高 390px を 100px 超える。
   `.anv-t-facade .anv-t-stage` は `overflow:hidden` なので、はみ出したぶんは**黙って切れる**。
   実測（修正前）: 844x390 でスクロール 94〜113% ／ 736x414 で 91〜108%。
   ⚠️ 9/4 版（上端 27svh）はぎりぎり収まっていたので、TZ-39 が作った退行。

   ⚠️ 上端を単純に戻すと看板と衝突する。低い画面では動画の cover が**縦を切る**ので
      看板の位置も上がる（844x390 では 23〜35%）。銘板はその下に置く必要がある。
      上端 38svh（390px 高で 148px＝38%）で、看板の下端 35% から 3% 空く。 */@media (max-height:620px){.anv-t-fx-poster{padding-top:clamp(120px,38svh,236px);
    padding-bottom:clamp(16px,4.5svh,56px)}.anv-t-fx-poster__meta{margin-bottom:clamp(10px,2.2vh,28px)}
}
/* 🔴 TZ-39: 銘板にも楕円のスクリムを与える。
   地の1枚だけでは足りない。移動先（46〜58%）の真後ろが**大アーチのステンドグラス**で、
   金 #d9b978 は中間の明度（相対輝度 0.508）なので、4.5:1 を取るには地を
   相対輝度 0.079 以下＝ほぼ #4f4f4f まで沈める必要がある。面のスクリムだけでは届かない。

   A/B 実測（5季節 × 3画面幅・文字を透明にして地だけを採る）:

     楕円なし   最小 1.84 ／ 下位5% 3.52 ／ 中央値 5.9  ／ 4.5:1 未満が **12.8〜17.7%**
     楕円あり   最小 4.41 ／ 下位5% 6.23 ／ 中央値 7.9  ／ 4.5:1 未満が **0.0%**

   開催期間（13-12）とスクロール（13-8）に効いた楕円を、同じ recipe で銘板にも当てる。
   ⚠️ z-index:-1 ＝ 額の1px罫（.anv-t-fx-crest__frame）より後ろ。罫が沈まないように。 */.anv-t-fx-crest::before{content:"";position:absolute;left:50%;top:50%;z-index:-1;
  width:172%;height:252%;transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(ellipse at 50% 50%,rgba(20,40,42,.88),rgba(20,40,42,.60) 52%,transparent 86%)}
/* ── 13-10 🔴 reduced-motion で横に 101px あふれる ──────────────────────
   13-3 が `.anv-t-stage{overflow:visible}` にしたので、着床先ロビーの `<img>`（inset:0 の
   レイヤーで意図的に画面より大きい）がクリップされずに出て、横スクロールバーが生えていた。
   実測 PC 1440 で +101px ／ SP 390 で +37px（motion 通常時は `.anv-t-stage` の
   `overflow:hidden` が効いていて 0px）。**13-9 の位置調整とは無関係の既存欠陥**。

   ⚠️ `overflow` は sticky の祖先に置くとピンを殺す（docs/33 §4-2-5 で実際に踏んだ）。
      ここは reduced-motion で `.anv-t-stage` が `position:static` ＝ピンが無い区間なので安全。
      横方向だけ閉じる（縦は 13-3 が伸ばしているので触らない）。

   🔴 `overflow-x:hidden` だけでは効かない。ロビー画像の親 `.anv-t-fx-hall` は `position:absolute` で、
      **絶対配置は「包含ブロックになっている祖先」の overflow でしか切られない**。
      13-3 が `.anv-t-stage` を `position:static` にしていたので包含ブロックは `.anv-t-facade` 側へ抜け、
      `.anv-t-stage` のクリップが素通りしていた（実測 hidden を入れても 101px のまま）。
      `position:relative` に戻して包含ブロックへ据える。13-3 のコメントが言う
      「背景レイヤーは inset:0 のまま伸びた .anv-t-stage を覆う」も、こちらが本来の姿。 */@media (prefers-reduced-motion:reduce){.anv-t-facade .anv-t-stage{position:relative;overflow-x:hidden}
}
/* ── 13-11 🔴 reduced-motion でナレーション3文が opacity:0 のままだった ──────
   13-3（TZ-13）は「支援技術と reduced-motion に本文を残す」ための手当てだったが、
   `display:none` を解いて静的ブロックに組み替えただけで、**`--p` 連動の opacity を
   戻していなかった**。`.anv-t-c1/.anv-t-c2/.anv-t-c3` は `opacity:clamp(0,(var(--p)-.62)*14,1)` で、
   reduced-motion では時間軸が無く `--p` が 0 に固定される（実測 --p:0・opacity:0）。
   結果、3列は正しい位置に組まれていながら**1文字も見えていない**。
   TZ-13 の目的（今回の唯一の訴求「ログインした方には一周年特別プライス」を届ける）は
   達成できていなかった。

   ⚠️ この手の「組み替えたが状態を戻していない」は §9-6 の再発。
      --p 連動の宣言を解くときは opacity と transform を**両方**明示で戻す。 */
/* あわせて、PC の reduced-motion で3列が左端（x=24）に寄っていた。
   13-3 の `align-items:center` を、後ろに来る 13-5 の
   `@media (min-width:641px){ .anv-t-fx-narr{align-items:stretch} }` が打ち消していたため。
   13-5 は縦組み（列の丈を親で決めて折り返させる）ための指定で、横組みに戻した
   reduced-motion では要らない。 */@media (prefers-reduced-motion:reduce){.anv-t-facade .anv-t-fx-narr{align-items:center}.anv-t-facade .anv-t-fx-narr .anv-t-col{opacity:1 !important;transform:none !important}
}
/* ── 13-12 🔴 reduced-motion で FV の下に置いた文字が読めない ────────────
   13-11 で3列が見えるようになったので、そこで初めて測れた。実測:

     PC 1440  ナレーション 13.05〜14.26 ✅ ／ 誘導 3.13 🔴
     SP  390  ナレーション 2.85 🔴 / 5.58 / 5.35 ／ 誘導 2.38 🔴

   reduced-motion では `.anv-t-stage` が縦に伸び、背景レイヤー（inset:0）が
   その全長を `object-fit:cover` で覆う＝**FVの下も明るい湖面と紅葉のまま**。
   帯ごとに当てても季節と画面幅で当たりが変わるので、**FVより下だけを一枚のスクリムで沈める**。

   ⚠️ z-index は 0。文字（`.anv-t-fx-poster` `.anv-t-fx-narr` `.anv-t-fx-cue` はいずれも 1）の**下**に入れる。
      1 以上にすると文字ごと沈めてしまい、比は変わらない（地だけを沈めるのが要点）。
   ⚠️ 誘導の金 `--gold`（#c29d52）は、この暗さでも 4.5 に届かない（要 α.75）。
      深緑地用に用意してある `--gold-lit` へ差し替える（tokens の定義どおりの使い方）。 */@media (prefers-reduced-motion:reduce){.anv-t-facade .anv-t-stage::after{content:"";position:absolute;left:0;right:0;top:100svh;bottom:0;
    z-index:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(14,30,30,0) 0,rgba(14,30,30,.62) 9%,rgba(14,30,30,.72) 100%)}.anv-t-facade .anv-t-fx-cue a{color:var(--gold-lit,var(--gold))}
}
/* ── 13-13 🔴 縦組みの算用数字が横倒しのまま（13-2 の宣言が効いていなかった）──
   黒岩 09-04「縦書きのところの数字が横だと見づらい」。

   13-2 は `text-combine-upright: digits 2` を当てていたが、**Chromium はこの値を捨てる**。
   実測（HeadlessChrome 149）:

     指定値        computed
     digits 2   →  none    ← 捨てられる
     digits     →  none    ← 捨てられる
     all        →  all     ← これだけ通る
     none       →  none

   結果、`.anv-t-col` の computed は `none` のままで、「10」も「1」も 90° 倒れて出ていた
   （`text-orientation:mixed` では ASCII 数字は R＝回転扱い。1桁でも倒れる）。
   `digits` は Firefox 系だけの値で、Blink/WebKit は `all` しか持たない。

   直し方: 数字の連なりを `.tcy` で包んで `all` を当てる（マークアップ側は teaser.html）。
   ⚠️ 2桁までに限る。3桁以上に `all` を当てると全桁が 1em に押し込まれて潰れる（実測）。
      「2026」のような4桁は包まず、倒したままにする。

   🔴 **TZ-36（2026-09-07）で規則もマークアップも削除した。** 横組みでは算用数字も
      欧文もそのまま正立するので、縦中横そのものが要らない。
      `snippets/anv-tcy.liquid` と `preview-teaser-theme.py` の畳み込みも同時に外した。 */
/* ── 13-14 「スクロール」が小さい ──────────────────────────────────
   黒岩 09-04「スクロールも小さいし見づらい」。13-7／13-8 は**影とスクリム**で
   コントラストを稼いだだけで、**字の大きさには一度も触っていない**（13px のまま）。

   1440x900・入口の暗い帯で地を実測（文字を隠して地の画素を採り、金 #d9b978 との比を出す）:

     中央値 7.88 ／ 下位5% 2.19 ／ 最小 1.07 ／ 3:1 未満が面積の 11%

   中央値は足りているが、入口の照明（画面で最も明るい点）が真後ろに来る 11% が落ちる。
   13-8 の楕円を濃く・広くして地を沈め、あわせて字を 13px → 16px（SP 14px）へ上げる。
   字間 .34em は 13px 前提の値で、16px では散りすぎるので .24em に詰める。 */.anv-t-fx-scroll{font-size:clamp(14px,1.15vw,16px);letter-spacing:.24em;text-indent:.24em}.anv-t-fx-scroll::before{width:300%;height:230%;
  background:radial-gradient(ellipse at 50% 50%,rgba(20,40,42,.94),rgba(20,40,42,.66) 52%,transparent 86%)}
/* ── 13-15 🔴 開催期間が FV でいちばん読めない ──────────────────────
   同じ手順で地を実測（白 #fbf8f2 との比）:

     要素          中央値   下位5%   最小   4.5:1 未満の面積
     開催期間      4.44     2.59     1.93   **53%**   ← 最悪
     スクロール    7.88     2.19     1.07   21%
     ナレーション  9.16     3.84     1.37   8%

   開催期間だけ **面積の半分が 4.5:1 を割る**。13-9 が名指しした「大アーチの窓の帯
   （42〜75%・全帯で最も騒がしい）」に、この行だけが残っていた（実測 y=44〜47%）。

   13-9 の原則どおり**地の側で解く**（楕円を濃く・広く）。そのうえで字を一段上げる:
     ラベル 13px → 15px ／ 日付 14px → 17px。
   日付は 2026.10.1（木）〜10.31（土）＝この行がティザーで唯一の事実情報なので、
   銘板の次に大きくてよい。 */.anv-t-fx-poster__meta::before{width:196%;height:340%;
  background:radial-gradient(ellipse at 50% 50%,rgba(20,40,42,.84),rgba(20,40,42,.56) 50%,transparent 82%)}
/* ⚠️ SP の下限は上げない。clamp の下限を 13/14px にしたら **360px 幅で2行に折れた**
      （実測 289x23 → 312x56px）。ラベルと日付は flex の別アイテムなので、幅が足りないと
      その境目で折れる。360px は iPhone SE 級で今も現役の幅。
      vw 係数だけ少し起こして、効くのを 390px 以上と PC に寄せる。
      実測: 360px→12.96px（1行維持）／390px→14.04px／PC→17px。 */.anv-t-fx-poster__meta .anv-t-label{font-size:clamp(12px,3.3vw,15px)}.anv-t-fx-poster__meta .anv-t-term{font-size:clamp(12px,3.6vw,17px)}
/* ── 13-16 ナレーションを一段上げる ────────────────────────────────
   コントラストは足りている（中央値 9.16）ので、色は触らない。サイズだけ上げる。
   16px → 18px。
   ⚠️ TZ-36（2026-09-07）で横組みに変わったが、**この2つの値はそのまま使える**。
      縦組みのときの根拠（1字送り 20.5px・列の丈 693px＝1行 33字）は失効している。
      横組みでの行数は max-width:34em と画面幅で決まるので、13-18 で実測して確かめた。 */@media (min-width:641px){.anv-t-facade .anv-t-fx-narr .anv-t-col{font-size:clamp(15px,1.75vw,18px)}
}@media (max-width:640px){.anv-t-fx-narr .anv-t-col{font-size:15px}
}
/* ── 13-17 ログイン誘導の見出しを2行に割る（TZ-38・先方 FB 2026-09-07）────────
   先方「スマホビューだと改行位置が中途半端なため、上記と同じ個所で改行をお願いします」。
   支給原稿が2行で来ているので、その位置で改める。

   🔴 **行を要素で割るだけでは足りない。** 現行は clamp(19px,2.5vw,26px)＋字送り .04em で、
      SP 390px（.anv-t-wrap が calc(100% - 32px)＝358px）に 20字は入らない。
      指定した位置で改めたあと、**2行目がさらにもう一度折り返す**（＝先方の言う
      「中途半端な改行」がそのまま残る）。各行が1行に収まる字送りまで下げる。
   各幅で「2行とも1行に収まる上限」を二分探索で実測した（枠は .anv-t-wrap と max-width:34em の狭い方）:

     幅     枠     上限
     320px  288px  13.85px
     360px  328px  15.77px
     390px  358px  17.22px
     480px  448px  21.54px
     560〜640px  510px  24.52px   ← 枠が 510px で頭打ち
     641px 以上  544px  26.16px   ← max-width:34em

   上限を4%ほど下回る直線を引いて clamp にした（`3px + 3.2vw`）。
   実測 320px→13.2 ／ 360px→14.5 ／ 390px→15.5 ／ 640px→23.5 ／ 719px 以上→26.0。

   ⚠️ **SP で字が一段小さくなる**（390px で 19px → 15.5px）。先方指示の改行位置を
      優先した結果で、TZ-33「FVの文字が小さい」とは逆を向く。
      字の大きさを取るなら、2行目の折り返しを許す（＝今回の指示を落とす）しかない。 */.anv-ts-login__title .anv-ts-login__ln{display:block}
/* ============================================================================
   section-anv-v22.css — v21 最終検収レビューの反映（docs/2026-08-31-v21-final-review）
   ----------------------------------------------------------------------------
   全8ページで **最後に読む** 後勝ちファイル。既存のセクションCSSは触らず、ここに足す。
   専有プレフィックスは既存のまま（anv-lp- / anv-f1- / anv-f2- / anv-f3- / anv-jr- / anv-ph-）。
   非交渉:
     - 新色をトークンに足さない（紙・墨・朱・深緑・真鍮の範囲で組む）
     - z-index を新設しない
     - 購入導線に登場アニメーションを持たせない
   ========================================================================== */
/* ══════════════════════════════════════════════════════════════════════════
   1. K-10 🔴 SP の FV ナレーションで、各文の2行目だけが灰色に沈む
   --------------------------------------------------------------------------
   `.anv-t-fx-narr .anv-t-col` は translateY を持つので**それ自体がスタッキング文脈**になる。
   その中の `::before`（z-index:-1・inset -78px の楕円）は自分の列の背面までしか下がらず、
   SP の縦積み（gap:20px）では**後続の列のスクリムが前の列の最終行の上に描画される**。
   3文目だけ無傷だったのは、後続の列が無いから。
   → SP は列ごとの面をやめ、3列をまとめて1枚の面で受ける。
   ══════════════════════════════════════════════════════════════════════════ */@media (max-width: 640px){.anv-t-facade .anv-t-fx-narr .anv-t-col::before{content: none;}.anv-t-facade .anv-t-fx-narr{isolation: isolate;}.anv-t-facade .anv-t-fx-narr::before{content: ""; position: absolute; inset: 3vh -3vw; z-index: -1; pointer-events: none;
    background: radial-gradient(118% 64% at 50% 50%,
        rgba(12, 26, 28, .90), rgba(12, 26, 28, .86) 56%,
        rgba(12, 26, 28, .52) 84%, rgba(12, 26, 28, 0) 100%);
    /* ナレーションの1文目（--p .62 から）より少し早く面を用意する */
    opacity: clamp(0, calc((var(--p) - .56) * 14), 1);}
}
/* ══════════════════════════════════════════════════════════════════════════
   2. §2-4 価格ラベル。1F の加入者限定価格と 2F・3F のログイン限定価格は条件が別。
   ラベルの色で区別する（文言だけでは同じ扱いに見えていた）。
   ══════════════════════════════════════════════════════════════════════════ */
/* 品切れ。金額は残して、いくらの品だったのかが分かる形にする */
/* ══════════════════════════════════════════════════════════════════════════
   3. TOP 1Fピック — 品名と税込価格を足した（§2-3「価格が表示されます」と書いて価格が無かった）
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   4. TOP 参加ブランド — 8枚の「仮ロゴ」バッジをやめ、文字組みにした（§3-1 🔴）
   使用許諾の確認が済んでいないロゴを並べず、ブランド名と扱う分類で見せる。
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   5. TOP 3Fダイジェスト — 価格が無く、同じページの2Fピックと規則が割れていた（§2-3）
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   6. 読みもの — 3枚とも同じ記事に着いていた（§2-2）。公開済み1編以外は準備中にする。
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   7. 案内板の現在地が「ロ …」しか出ていなかった（§3-1・K-18）
   ラベルの幅を確保し、長いときだけ縮める。
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   8. 1F 週替わりセール（§3-2）
   - 開催前の表示が3重だった（週見出しのチップ・図版右上の COMING・図版中央のラベル）
     → 図版右上のバッジを廃し、暗幕のラベル1つに絞る
   - 開催中の週には暗幕を掛けない（SHARK/NINJA だけ暗幕が無く1枚だけ点灯して見えていた）
   - WEEK 1 のカードに金額も商品名も無かった → 点数と価格帯を入れた
   ══════════════════════════════════════════════════════════════════════════ */
/* 群ごとの出口。「今週の対象商品」へ行ける手段がページに1本も無かった */
/* 価格の3状態（未ログイン／ログイン済み・非加入／加入者）。加入者だけに割引後を出す。 */
/* 準備中のボタン。押せないことと理由が分かる形にする（§2-2） */
/* ══════════════════════════════════════════════════════════════════════════
   9. 商品ページ（§2-9 / §3-5）
   カート・数量・応答状態・主な仕様・ギャラリーの書き分け。
   購入導線なので登場アニメーションを一切持たせない（非交渉ルール4）。
   ══════════════════════════════════════════════════════════════════════════ */
/* 販売時期のバッジは胡桃色の地。副行を墨色にしていて読めなかった（SP390 で実測）。
   地の上で読める色に直し、インラインを縦積みにして枠から溢れないようにする。 */
/* ══════════════════════════════════════════════════════════════════════════
   10. 読みもの一覧（§2-2 「全6編」で読めるのは1編）
   公開済み1編だけを押せるようにし、残りは準備中として見せる。
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   11. K-14 ロゴが1ページに2つ出ていた（§2-8 非交渉ルール1）
   ファサードの建物正面に「WOWOW 百貨店」が焼き込まれており、固定ヘッダーの
   正式ロゴと二重になっていた（背景側のほうが大きい）。
   ファサードの上ではヘッダーのロゴを出さず、館内に入ってから出す。
   ⚠️ ナビゲーションは残す（ロゴだけを伏せる）。KVの差し替えができたら この規則は外す。
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   12. ティザー（§3-2）
   - reduced-motion では進行が0に固定されるのに、セクション丈が 340vh/200vh のまま
     残っていた＝動かない同一画面を PC 約2.4画面ぶん送らせていた
   - 読み終えた人の受け皿（3つの売場と出口）を足した
   ══════════════════════════════════════════════════════════════════════════ */
/* ⚠️ 2026-09-03: reduced-motion の丈は teaser.css §13-3 が持つようになった。
   ナレーションを通常フローへ戻して縦に積むので、height は auto にしてある。
   ここで 100vh に固定すると積んだぶんが overflow で切れる。 */
/* ⚠️ 2026-09-03: `.anv-ts-floors*` の12規則を削除した。
   先方 PPT の方針「情報は極力シンプルにしてログインボタンへ意識がいく構成」に合わせ、
   #floors（3つの売場）そのものを落としたため（黒岩判断）。
   ログイン誘導の面は teaser.css §13-4 の `.anv-ts-login*` が持つ。 */
/* 棚の列数を中身の数で決める（商品を1点外したときに穴があくのを防ぐ） */
/* ══════════════════════════════════════════════════════════════════════════
   13. セレブ酒（§2-6）
   「◯◯の写真は素材待ち（9月2週）」という制作の内部情報を出していた人物写真の枠を
   落とした。3列（人物／本文／買う）の組みだったので、2列に組み替える。
   ⚠️ 人物写真が支給されたら、この節と枠を戻す（v22 requirements の未確定事項）。
   ══════════════════════════════════════════════════════════════════════════ */
/* ティザーに足した節は、ページの地（深緑）ではなく紙地に置く */
/* タブレット幅（641〜900px）で案内板の「読みもの」が字の途中で切れていた。
   横スクロールはできるが、切れたラベルは押す前に読めない。副ラベルを畳んで4つとも収める。 */
/* 関連商品を実在の商品ページへ差し替えたぶん、品名が長くなって SP390 で横に溢れていた。
   グリッドの列と中身に min-width:0 を効かせ、長い品名を折る。 */
/* セレブ酒の価格に、税込表記と割引前の打消しが入った */
/* ══════════════════════════════════════════════════════════════════════════
   14. CONCEPT の見出し（真武 2026-08-31 の支給原稿）
   「大人のためのエンタメ・デパートメント」→「人生を楽しむ大人のための百貨店」。
   2行目が9字になり、SP390 の 30px では幅いっぱいになる（keep-all なので折れない）。
   狭い端末だけ字面を詰めて余白を確保する。
   ══════════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   15. 🔴 実写を入れた枠の作り直し（黒岩指摘 2026-09-01）
   --------------------------------------------------------------------------
   v22 で図版を本番ストアの商品写真に差し替えたが、入れた先が
   **プレースホルダ用の枠**（.anv-f2-ph ＝ 点線・砂地・place-content:center・強制アスペクト比）
   のままだった。中身の比と枠の比が合わず、16:9 の枠に 1:1 の写真が入って枠を突き抜ける、
   行内で高さがそろわない、という崩れが出ていた。実写が入った枠を1つの型に統一する。
   ══════════════════════════════════════════════════════════════════════════ */
/* ── 15-1 実写が入った枠は、実写用のマット（白の余白＋細い実線）にする ── */
/* 商品カード（棚）は全形が見えることが優先。トリミングしない */
/* ── 15-2 「売場の見方」の図版は 16:9。1:1 の商品写真は 16:9 に切り出して使う ──
   （切り出した帯が「プリント面のマクロ」「ラベルの署名部分」の説明と噛み合う） */
/* ── 15-3 リビールから拡大を外す ──
   [data-rv="mask"] の img は scale(1.055) から入る。--d の時差で立ち上がるため、
   同じ行の3枚が「大きさの違う3枚」に見える瞬間があった。
   動きは不透明度だけで作り、**寸法は最初から最後まで動かさない**。 */html.anv-armed [data-rv="mask"] img,html.anv-armed [data-rv="mask"].anv-in img{transform: none;}
/* ── 15-4 台札・価格・認証書の行を下端でそろえる ──
   品名を本番ストアのタイトル（長い）にしたので、台札の高さが1〜3行でばらけて
   価格と「認証書（COA）付き」の位置が段違いになっていた。
   カードを縦フレックスにして台札を伸ばし、価格から下を必ず同じ高さに置く。 */
/* 棚の商品カードも同じ考え方で、価格を下端にそろえる */
/* Tシャツ棚も同様（品名の行数が1〜3行でばらける） */
/* ── 15-5 章扉KVのリード文が SP で右に溢れて切れていた ──
   .anv-f2-kv は `display:grid; place-content:center` で、単一トラックが max-content に
   広がるため、長いリード1行が枠を突き抜けて overflow:hidden に刈られていた（SP390 で実測）。
   トラックを minmax(0,1fr) に閉じ、読み幅を持たせる。 */
/* ── 15-6 「売場の見方」の図版を全部落とした ──
   4章のうち図版があるのは 音楽2・映画2・暮らし2/3 で、暮らし03 だけ欠けて列が崩れていた。
   さらに残っていた素材（tmp-movie-fit / tmp-table-scene）は生成画像で、
   「着姿」「食卓」という説明と中身が合っていない（レビュー §2-5 と同じ型）。
   この節は v18-2 で「担当者の人格を降ろし、その面積を売場の見方の説明に置き換える」枠なので、
   図版なしのテキストブロックに戻す。商品写真は棚が持っている。 */
/* ── 15-7 1F ブランドカードの下端をそろえる ──
   分類が1行の週と2行の週があり、点数・価格帯・「加入者限定価格」の札が段違いになっていた。 */
/* ── 15-8 「準備中」つきのボタンが SP で崩れる ──
   .anv-btn は padding 0 40px ／ letter-spacing .16em なので、SP の幅では
   ラベルが2行に折れて「準備中」の札が右端の細い箱に押し込まれていた。
   準備中のボタンは押せない表示なので、寸法を主CTAと張り合わせず、ラベルと札を素直に積む。 */
/* H-25: 641px 以上では主CTA（.anv-btn--outline 58px）と横に並ぶので外形を揃える。
   実測で朱ベタ 52px / top 6214 と枠線 58px / top 6211 ＝ 高さ差6px・上端差3px が
   4ジャンルすべてに出ていた。ラベルは1行に収まる幅なので 58px でも折れない。
   SP は上の 15-8 の型（52px・素直に積む）のまま＝そちらの意図を保つ。 */
/* ── 15-9 SP のカート行 ──
   数量（68px）とボタンを横に並べると、発売前の長いラベル
   「10/15（木）10:00 販売開始」が2行に折れて字送りで散らばっていた。
   SP は縦積みにし、ボタンは幅いっぱいにする。 */
/* ── 15-10 🔴 1Fピックの価格が紙地に象牙色で出て読めなかった ──
   .anv-lp-pickcard__price は 2F の暗色パネルに置く前提の色（--anv-ivory）。
   1Fピック（.anv-lp-f1pick）は紙地なので、墨に戻す。
   v21 は 1F に価格が無かったため露見していなかった。 */
/* ══════════════════════════════════════════════════════════════════════════
   16. 暗色地の小さい文字のコントラスト（全ページ機械測定で拾ったぶん）
   K-16 で真鍮→gold-lit に寄せたが、index の inline CSS と teaser の
   専有CSSに取り残しがあった。実測 2.6〜4.4:1 → 5.5:1 以上へ。
   ══════════════════════════════════════════════════════════════════════════ */
/* 2F ジャンル面（深緑地）の見出しラベルと eyebrow */
/* 3F ダイジェスト（胡桃地）の番号（index の inline は .cabinet-item .ci-no で詳細度が上） */
/* 昇降路の装飾ラベル（aria-hidden だが画面には出る） */
/* ティザーのファサード直下のリンク（index は対応済み・teaser が取り残されていた） */.anv-t-fx-cue a{color: var(--anv-gold-lit);}.anv-t-fx-cue a::before{background: var(--anv-gold-lit);}
/* K-16 の取り残しと、K-16 が持ち込んだ副作用 */
/* ① ヘッダーが紙地（.light）のときに gold-lit を使うと 1.69:1 まで落ちる。地で分ける */
/* ② 昇降路の鉄道式レール（aria-hidden の装飾だが階数は読めるべき）。実測 1.62:1 → 4.6:1 */
/* ③ FV のメタ行の区切り「｜」実測 4.40:1 */
/* ── 15-11 読みもの記事の関連商品 ──
   .anv-photo--main は 4:3。本番ストアの商品写真は 1:1 なので cover で上下が切れ、
   額装品の額の縁が落ちていた。商品写真は 1:1 で全形を見せる。 */
/* ══════════════════════════════════════════════════════════════════════════
   17. 先方Figma FB（docs/32 第3稿）の反映 — 2026-09-01 黒岩指示
   「基本は全て先方指示に従う。未反映は全て対応する」（docs/32 §1-5b）
   ══════════════════════════════════════════════════════════════════════════ */
/* ── B06（真武 08-25）「これはあくまでもキャッチなので、感謝祭が目立つ要にしたほうが」──
   ロックアップとキャッチの主従を、キャッチの寸法と字送りで作っていた（46px/.16em → 36px/.08em）。
   ⚠️ 2026-09-03 に規則ごと削除した。TZ-1 でキャッチ（h1）そのものが消え、
      ロックアップが唯一の題字（h1）になったので、主従を付ける相手がいなくなった。
      teaser.html にキャッチは1つも残っていないため、この規則は当たる要素がゼロだった。 */
/* ── A42（志儀 08-21）丸を並び順にしたので、丸と階数の読み違いを1行で防ぐ ── */
/* ── A47 の正は assets/section-anv-f3.css（宣言そのものを 22px にした）。
   ここでは SP の詰めだけを持つ。 */
/* ── B14（松繁 08-21）100選の絞り込み。索引は残したまま足す ── */
/* ── A60（志儀 08-23）取り扱いブランドの行 ── */
/* ── B01（志儀 08-21）1F はブランド一覧 → ブランド別商品一覧 → 商品詳細 ── */
/* ══════════════════════════════════════════════════════════════════════════
   18. B16 読みもの一覧の主役を「商品」から「著名人」へ（枠と扱いだけ・写真は入れない）
   真武 08-25「著名人の写真を全面に出すのがいいのでは」／志儀 08-23「◯◯さんセレクトアイテム」。
   ⚠️ 実在の人物写真はモックに入れない（肖像権・出演契約の確認前）。
      写真と名前が支給されたら、カードに .anv-jr-card--person を付け、
      .anv-jr-card__person に名前を入れるだけで主役が人に替わる形にしてある。
   ══════════════════════════════════════════════════════════════════════════ */
/* 人物を主役にするときの変化（まだ適用していない） */
/* ── 15-13 縦組みナレーションの「句点の孤立」は誤検出だった（H-19）──
   check-layout.mjs が縦書きで1文字ごとに y が変わるのを「23〜30行」と数え、
   最後の1文字（句点）を常に「孤立」と報告していた。実測すると index・teaser とも
   768/1280 で c1=23字・c2=22字・c3=30字が**すべて1列に収まっていて折り返しゼロ**
   （列幅 65px・親 .anv-t-stage に 243px の余裕）。**崩れていないので CSS の対処は不要。**
   判定ツール側を直した（横書きは y、縦書きは x で行を数える）。
   ここに一度入れた hanging-punctuation / text-spacing-trim は、Chromium が未対応で
   効果を確認できなかったうえ、そもそも直す対象が無かったので削除した。 */
/* ── 15-14 会員特典の3項目で末尾2文字が孤立する（H-19 の最後の1件）──
   「1Fの加入者限定セールをご利用いただけま／す」→ pretty 適用後も「ご利用いただけ／ます」。
   `text-wrap: pretty` は和文では効かない（単語境界が無い）ので、文節折りを足す。
   この `p` はクラスを持たないので親（`.merit`）経由で当てる。
   H-26 の手順どおり**要素セレクタではなくクラス配下に限り**、直後に横スクロールを実測する。 */
/* ── 15-12 TOP のジャンル抜粋レールの右端（H-22）──
   scroll-snap は効いているが端の処理が無く、次のカードが SP390 で 70/242px＝29% だけ覗いて
   品名が「ニルヴァーナ（NIRVANA／Tシャツ グ」で断ち切られていた（768px でも 266/323px）。
   右端をぼかして「続きがある」ことを見せる。型は v19.css の .anv-f2-shelfrow と同じ。
   ※ .anv-lp-genre__rail の本体は index.html のインライン <style>（76KB・H-23）にある。
      mask-image はそちらに指定が無いので、ここで足しても競合しない。
      インラインを外部へ出す作業（H-23）のときに、この規則も本体側へ寄せる。 */
/* ══════════════════════════════════════════════════════════════════════════
   16. SP の崩れ（黒岩FB 2026-09-04「スマホで見た時にレイアウト崩れやずれが多々」）
   ══════════════════════════════════════════════════════════════════════════ */
/* ── 16-1 🔴 3F 100選の SP 2列で、左右のパディングが逆に当たっていた ──
   `section-anv-f3-2col.css` は列の空きを gap ではなく
   `:nth-child(odd){padding-right}` / `:nth-child(even){padding-left}` で作っている。
   ところが同じ `<ol>` には群見出し（`.anv-f3-grouphead`）と「先頭へ戻る」
   （`.anv-f3-backtop`）が全幅の `<li>` として混ざっており、**カードの数え方がずれる**。
   実測（390px）: 左列が padding-left:13px、右列が padding-right:13px。
     ・列と列のあいだの溝が **0px** ＝ 左列の文末と右列の文頭が接する
     ・外側（左端・右端）に 13px ずつ無駄な余白
     ・列間の縦罫が左列のさらに左（台帳の外）に出る
   2col の CSS が書かれた時点（v19-2）は `<ol>` がカードだけだった。v22 で群見出しを
   入れたときに前提が崩れている。`:nth-child` では群ごとの折り返しを表せないので、
   列は生成側が `data-sp-col` で持つ（build-floor3.py・群内の連番で決まる）。 */
/* ── 16-2 3F カードの下端がそろわない（H-17 の 3F ぶん）──
   `.anv-f3-card` は flex 縦組みで、最下段のジャンル札を `margin-top:auto` で
   下端に落とす設計（section-anv-f3.css:264）。これが2箇所で後勝ちに潰されていた。
     section-anv-v19.css:1371  `.anv-f3-card__where{margin-top:10px}`（全幅）
     section-anv-f3-2col.css   `.anv-f3-card__where{margin-top:8px}`（SP）
   実測 390px で同じ行のカード下端が最大 213px ずれる。後勝ちのこのファイルで戻す。 */
/* ── 16-3 🔴 SP で NOWバーの現在地ラベルがフロアリンクに重なる ──
   `.anv-floorbar__here` は `flex:0 0 auto` ＋ `b{white-space:nowrap}`。
   TOP は `data-floor-label` が「2F ジャンル別セレクション」のように長く、SP 374px の帯では
   ラベルだけで幅を使い切り、右の「1F 2F 3F」に重なって読めなくなっていた（390px 実測）。
   本体の直しは JS 側（SP は階の記号だけを入れる・anv-base.js と index の inline）。
   ここは取りこぼし用の受け皿として、長い文字列が来ても重ならないように刈る。 */
/* ── 16-4 SP で NOWバーのフロアリンクが 11px ぶん入り切らない ──
   390px 実測: リンク4本 187px に対して入れ物 176px。最後の「読みもの」が切れて、
   横スクロールできることも見えないため事故に見える（H-18 の SP ぶん）。
   帯の中の隙間だけ詰めて収める。文字サイズとタップの高さ（42px）は変えない。 */
/* ── 16-5 SP で TOP のカード下端がそろわない（H-17 の TOP ぶん）──
   実測 390px: 3F抜粋（`.cabinet-item`）の「2F 音楽」の行が同じ行内で最大 78px、
   ジャンル抜粋レール（`.anv-lp-pickcard`）の価格が最大 82px ずれる。
   どちらもカードの高さは同じ（グリッド/レールが伸ばしている）ので、
   中身が上から流れて余りが下に残っているだけ。最下段を下端に落とす。
   ⚠️ `.cabinet-item` は SP で `display:block` に落としてある（index の inline CSS）。
      block では `align-self:end` も `margin-top:auto` も効かないので、縦の flex に戻す。
      子は全部ブロックで、リセットで margin:0 なので、段の間隔は変わらない。 */
/* ── 16-6 iOS Safari で固定ステージの高さが画面と合わない（100vh）──
   `100vh` は**ツールバーを隠したときの高さ**で固定される。ツールバーが出ている
   通常状態では画面より 60〜90px 高く、`position:sticky` のステージは下が切れる。
   スクロールでツールバーが伸縮するたびに切れ方が変わるので、実機では「崩れて見える」。
   `dvh` は表示中の画面にそのまま追従するので、ピン中もステージが画面と一致する。
   ⚠️ エレベーターの数字は `.mask` `.d` の高さと `.reel` の移動量が -100vh で噛み合って
      いるので、3つとも同じ単位に替える（片方だけ替えると数字が半端な位置で止まる）。
   ⚠️ dvh 未対応（iOS 15.3 以前）向けに vh の行を残す。後の行だけが上書きされる。 */.anv-t-facade .anv-t-stage{height: 100vh;
  height: 100dvh;}
/* ── 16-7 TOP のカードにも「品名の行数固定」を当てる（3F と同じ型・layout-rules L2）──
   ⚠️ **本来は所有している層（`index.html` の inline `<style>`）を直すべき箇所。**
      CLAUDE.md と layout-rules §2-2 で inline への追加を止めているので、H-23（inline の
      外部化）が済むまでの間だけここに置く。H-23 のときに inline 側へ寄せる。
   実測（390 / 768 / 1280px）:
     `.cabinet-item h3`（3F抜粋12枚）  1〜4行 → `ci-why` 最大155px・`ci-price` 38px の段違い
     `.anv-lp-pickcard__t`（抜粋16枚） 1〜2行 → 価格が最大82px の段違い
     `.anv-lp-f1pick__item`（1F 4枚）  1〜3行 → 価格が段違い（PC 1280 で実測）
   全文は DOM に残るので読み上げは通る。省略されるのは見た目だけ。
   `box-sizing: content-box` と「下パディング無し」がセット（M-12 で踏んだ2つの罠）。 */
/* 抜粋レールの価格は SP だけ下端に落としていた（M-04）。PC でも同じにする。 */
