/* ─────────────────────────────────────────────────────────────
   Yoshinkan Honke — luxe.css (v97)
   宝飾・高級車サイトの文法を、武道の意匠で。
   静かな入場 / 字詰めの気品 / 髪の毛ほどの罫 / 遅く柔らかな所作
   ───────────────────────────────────────────────────────────── */
:root{
  --luxe-ease: cubic-bezier(.22,1,.36,1);
  --luxe-hairline: rgba(243,237,225,.14);
  --luxe-accent: #c75a52;
}

/* 1. 静かな入場 — 幕が上がるように */
@media (prefers-reduced-motion: no-preference){
  body{ animation: luxe-enter .9s ease-out both; }
  @keyframes luxe-enter{ from{ opacity: 0; } to{ opacity: 1; } }
}

/* 2. 字詰めの気品 — 和文プロポーショナル詰め + 多行見出しの均整 */
h1, h2, .hero-title, .fv-title, .cf-title{
  font-feature-settings: "palt" 1;
  text-wrap: balance;
}

/* 3. ナビの所作 — 罫が右へ走る下線 */
nav.primary a, .site-nav a{ position: relative; }
nav.primary a::before, .site-nav a::before{
  content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px;
  background: var(--luxe-accent);
  transition: right .5s var(--luxe-ease);
}
nav.primary a:hover::before, nav.primary a.active::before,
.site-nav a:hover::before, .site-nav a.active::before{ right:0; }

/* 4. カードとイメージの所作 — ゆっくり持ち上がり、静かに寄る */
.champion-card, .df-card, .journal-card, .vir-card, .program-card{
  transition: transform .8s var(--luxe-ease), box-shadow .8s var(--luxe-ease),
              border-color .8s var(--luxe-ease), background-color .8s var(--luxe-ease);
}
.champion-card:hover, .df-card:hover, .journal-card:hover{ transform: translateY(-4px); }
.chart-image-link{ overflow: hidden; display: block; }
.chart-image-link img{ transition: transform 1.4s var(--luxe-ease); }
.chart-image-link:hover img{ transform: scale(1.02); }

/* 5. スクロールバー — 墨に沈む */
::-webkit-scrollbar{ width: 10px; }
::-webkit-scrollbar-track{ background: #14110f; }
::-webkit-scrollbar-thumb{ background: #3a332e; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover{ background: var(--luxe-accent); }

/* 6. ヘッダー — スクロール時は磨りガラスと髪罫 */
header.scrolled, .site-header.scrolled{
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--luxe-hairline);
}

/* 7. 眉ラベルの字間統一 */
[class*="eyebrow"]{ letter-spacing: .4em; }

/* 8. 資料図版バンド — 生成りのマットに載せた一枚 */
.archive-plate{min-height:100svh;display:flex;align-items:center;justify-content:center;background:#181411;padding:8vh 6vw;}
.archive-plate .ap-inner{display:flex;gap:5vw;align-items:flex-start;justify-content:center;flex-wrap:wrap;max-width:1500px;}
.archive-plate figure{margin:0;max-width:760px;flex:1 1 420px;}
.archive-plate img{width:100%;height:auto;display:block;background:#f3ede1;padding:14px;box-shadow:0 24px 60px rgba(0,0,0,.55);}
.archive-plate figcaption{margin-top:18px;text-align:center;}
.archive-plate .ap-jp{display:block;font-size:15px;letter-spacing:.28em;color:#e9e2d3;}
.archive-plate .ap-en{display:block;margin-top:7px;font-size:10.5px;letter-spacing:.34em;color:#8d857a;text-transform:uppercase;}
@media (max-width:1024px){.archive-plate{min-height:auto;padding:64px 22px;}.archive-plate .ap-inner{gap:44px;}}

/* 9. 五徳紋の舞 — 家紋が雪片のように、ごく静かに */
.kamon-drift{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;}
.kamon-drift span{position:absolute;top:-70px;background:url(../images/brand/kamon-white.png) center/contain no-repeat;
  animation:kamonFall linear infinite;will-change:transform;}
@keyframes kamonFall{
  0%{transform:translateY(-8vh) translateX(0) rotate(0deg)}
  50%{transform:translateY(54vh) translateX(var(--sway)) rotate(150deg)}
  100%{transform:translateY(114vh) translateX(calc(var(--sway) * -0.4)) rotate(320deg)}
}

/* 10. スライド窓での本文寸法 — 低い画面では自動的に締まる */
@media (min-width:900px) and (min-height:621px){
  .chapter-frame p, .free-scroll p, .stream p,
  .chapter-frame li, .free-scroll li, .stream li{
    font-size: clamp(14.5px, 1.55vh, 17.5px);
    line-height: 1.9;
  }
}

/* 11. 一枚化 — 年表・三本柱・章カードをスライド窓で一画面に収める */
@media (min-width:900px) and (min-height:621px){
  .timeline-section{padding-top:7vh !important;padding-bottom:6vh !important;}
  .timeline-section .timeline-head{margin-bottom:2.6vh !important;}
  .timeline-section .timeline-head h2{font-size:clamp(22px,3vh,34px) !important;margin:0 !important;}
  .timeline-section .tl-item{margin-bottom:2.2vh !important;padding-bottom:0 !important;}
  .timeline-section .tl-era{font-size:clamp(13px,1.6vh,17px) !important;}
  .timeline-section .tl-name{font-size:clamp(15px,1.9vh,20px) !important;}
  .timeline-section .tl-desc{font-size:clamp(12.5px,1.5vh,16px) !important;line-height:1.7 !important;}
  .formula-v2{padding-top:6vh !important;padding-bottom:6vh !important;}
  .formula-v2 h2{margin-bottom:1.6vh !important;font-size:clamp(24px,3.4vh,40px) !important;}
  .fighter-card, .champion-card{padding:2.6vh 2vw !important;}
  .fighter-card p, .champion-card p{font-size:clamp(12.5px,1.5vh,16px) !important;line-height:1.75 !important;}
}

@media (min-width:900px) and (min-height:621px){
  .formula-v2 .fv-lead{font-size:clamp(13px,1.6vh,17px) !important;line-height:1.8 !important;margin-bottom:2.4vh !important;}
  .formula-v2 .fv-kanji{font-size:clamp(64px,11vh,120px) !important;line-height:1.1 !important;}
  .formula-v2 .fv-pillar{padding:2.4vh 1.6vw !important;}
  .formula-v2 .fv-pillar-desc{font-size:clamp(12px,1.45vh,15.5px) !important;line-height:1.7 !important;}
  .formula-v2 .fv-head{margin-bottom:1.5vh !important;}
}

/* 11b. 一枚化・第二段 — 年表は年号+名称を1行に */
@media (min-width:900px) and (min-height:621px){
  .timeline-section{padding-top:6vh !important;padding-bottom:5vh !important;}
  .timeline-section .tl-item{display:grid !important;grid-template-columns:auto 1fr;grid-template-areas:"era name" "desc desc";column-gap:14px;align-items:baseline;margin-bottom:1.5vh !important;}
  .timeline-section .tl-era{grid-area:era;margin:0 !important;}
  .timeline-section .tl-name{grid-area:name;margin:0 !important;}
  .timeline-section .tl-desc{grid-area:desc;margin-top:.4vh !important;font-size:clamp(12px,1.35vh,15px) !important;line-height:1.62 !important;}
  .timeline-section .timeline-head{margin-bottom:2vh !important;}
  .timeline-section .timeline-head .tag{margin-bottom:.6vh !important;}
  .formula-v2 .fv-kanji{font-size:clamp(56px,8.6vh,100px) !important;}
  .formula-v2 .fv-pillar{padding:1.8vh 1.4vw !important;}
  .formula-v2{padding-top:5vh !important;padding-bottom:5vh !important;}
  .formula-v2 .fv-lead{margin-bottom:1.8vh !important;}
}

/* 11c. 日本語版への忠実化 — 年表は五つの節目に統一(全言語・全端末) */
.timeline-section .tl-list .tl-item:nth-child(1),
.timeline-section .tl-list .tl-item:nth-child(5),
.timeline-section .tl-list .tl-item:nth-child(6),
.timeline-section .tl-list .tl-item:nth-child(9){display:none !important;}
/* 三本柱・最終圧縮 */
@media (min-width:900px) and (min-height:621px){
  .formula-v2{padding-top:4vh !important;padding-bottom:4vh !important;}
  .formula-v2 .fv-title{font-size:clamp(22px,3vh,36px) !important;}
  .formula-v2 .fv-eyebrow{margin-bottom:.8vh !important;}
  .formula-v2 .fv-kanji{font-size:clamp(48px,7.4vh,88px) !important;}
  .formula-v2 .fv-pillar{padding:1.4vh 1.2vw !important;}
  .formula-v2 .fv-pillars{gap:1.6vw !important;}
  .formula-v2 .fv-lead{margin-bottom:1.4vh !important;line-height:1.7 !important;}
}

@media (min-width:900px) and (min-height:621px){
  .formula-v2 .fv-kanji{font-size:clamp(44px,6.4vh,78px) !important;}
  .formula-v2 .fv-pillar-name{margin-top:.5vh !important;margin-bottom:.4vh !important;font-size:clamp(15px,2vh,20px) !important;}
  .formula-v2 .fv-pillar-en{margin-top:.6vh !important;font-size:clamp(9px,1.15vh,11px) !important;}
  .formula-v2 .fv-pillar-desc{font-size:clamp(11.5px,1.35vh,14.5px) !important;line-height:1.6 !important;margin-top:.4vh !important;}
  .formula-v2 .fv-title{margin-bottom:.8vh !important;}
}

@media (min-width:900px) and (min-height:621px){
  .formula-v2 .fv-pillars{margin-bottom:2.6vh !important;}
  .formula-v2 .fv-equals{transform:scale(.72);height:auto !important;margin-bottom:1.4vh !important;}
  .formula-v2 .fv-result{padding-top:0 !important;}
}

/* 11d. 日本語版年表の一枚化仕上げ */
@media (min-width:900px) and (min-height:621px){
  .lineage-section .timeline .tl-node{margin-bottom:2vh !important;}
  .lineage-section .timeline .tl-desc{font-size:clamp(12.5px,1.5vh,16px) !important;line-height:1.7 !important;}
  .lineage-section .timeline .tl-name{font-size:clamp(16px,2.1vh,22px) !important;}
}

/* 12. 可読性フロア — 全端末・全言語で本文13px/ラベル10.5px未満を禁止 */
.fv-pillar-desc{font-size:max(13px,1.35vh) !important;line-height:1.62 !important;}
.tl-desc, .timeline-section .tl-desc{font-size:max(13px,1.35vh) !important;}
.lineage-section .timeline .tl-desc{font-size:max(13px,1.5vh) !important;}
.km-pin-essence, .km-source-quote, .footer-social-note, .fv-lead{font-size:max(13px,1.3vh) !important;}
.fv-pillar-en{font-size:max(10.5px,1.15vh) !important;letter-spacing:.14em !important;}
.km-pin-tag, .km-pin-tag-ours{font-size:10.5px !important;}
.flow-emblem-romaji, .kogetsu-fab-label-eyebrow{font-size:10.5px !important;}
.hero-tag-jp, .jp-term, .name-jp, .footer-tagline, .f-copy, figcaption, .so3-en, .str-essence-label,
.str-lineage-en, .str-giant-en, .pg-meta-label, .vir-jp, .l-label, .ph-tag-jp,
.km-source-en, .c-jp, .step-tag, .req, .opt{font-size:max(11.5px,1.15vh) !important;}
.tsv-stream-en, .tsv-other-label, .tsv-us-label, .km-source-years, .karate-map .km-source-inner .red, .str-marker-en, .tc-en,
.step-title-jp, .rc-kicker, .footer-social-title{font-size:max(12px,1.2vh) !important;}
.breadcrumb-current, .breadcrumb-progress, .chart-zoom-hint, .flow-leader, .flow-cta,
.page-nav-eyebrow, .page-nav-label, .lb-hint, .chapter-eyebrow, .fv-eyebrow, .dv-eyebrow,
.km-source-quote, .manifesto-eyebrow, .l-tag, .l-name-jp, .ns-eyebrow, .form-eyebrow{font-size:max(12.5px,1.2vh) !important;}
/* 一枚化維持のための相殺 */
@media (min-width:900px) and (min-height:621px){
  .formula-v2{padding-top:3.4vh !important;padding-bottom:3.4vh !important;}
  .formula-v2 .fv-pillars{margin-bottom:2.1vh !important;}
  .formula-v2 .fv-equals{margin-bottom:1vh !important;}
  .timeline-section .tl-item{margin-bottom:1.3vh !important;}
  .timeline-section{padding-top:5vh !important;padding-bottom:4.4vh !important;}
  .lineage-section .timeline .tl-node{margin-bottom:1.7vh !important;}
}

/* 12b. 床の特異度強化 */
.formula-v2 .fv-pillar-desc, .formula-v2 .fv-inner .fv-pillar-desc{font-size:max(13px,1.35vh) !important;line-height:1.6 !important;}
.formula-v2 .fv-pillar-en{font-size:max(10.5px,1.15vh) !important;}
figure figcaption, .article-body figcaption, figcaption, figcaption strong{font-size:max(12.5px,1.25vh) !important;line-height:1.6 !important;}
.f-copy a{font-size:max(11.5px,1.1vh) !important;}
.so3-en{font-size:max(12px,1.2vh) !important;}

/* 12c. フッター微小文字の底上げ */
.footer-tagline{font-size:max(12px,1.15vh) !important;}


/* 13. 雲霞 — 湖上の雲のように、ヒーローの上をゆっくり流れる霞 */
@keyframes yk-kumo-a{from{transform:translate3d(-6%,0,0)}to{transform:translate3d(7%,-2.5%,0)}}
@keyframes yk-kumo-b{from{transform:translate3d(5%,1.5%,0)}to{transform:translate3d(-7%,0,0)}}
.yk-kumo{position:absolute;inset:-18% -25%;pointer-events:none;z-index:2;filter:blur(30px);mix-blend-mode:screen;will-change:transform;}
.yk-kumo.a{opacity:.5;animation:yk-kumo-a 46s ease-in-out infinite alternate;
  background:
    radial-gradient(42% 24% at 22% 62%, rgba(226,216,198,.14), transparent 70%),
    radial-gradient(34% 18% at 66% 40%, rgba(214,204,188,.10), transparent 70%),
    radial-gradient(50% 26% at 88% 72%, rgba(226,216,198,.08), transparent 72%);}
.yk-kumo.b{opacity:.42;animation:yk-kumo-b 67s ease-in-out infinite alternate;
  background:
    radial-gradient(46% 22% at 40% 78%, rgba(222,212,196,.12), transparent 70%),
    radial-gradient(30% 16% at 12% 34%, rgba(214,204,188,.09), transparent 70%),
    radial-gradient(38% 20% at 78% 26%, rgba(222,212,196,.07), transparent 72%);}
@media (prefers-reduced-motion: reduce){.yk-kumo.a,.yk-kumo.b{animation:none;}}

/* 14. 動く浮世絵 — 北斎の波(index 系譜セクション) */
@keyframes yk-ukiyoe-pan{from{background-position:38% 64%}to{background-position:62% 60%}}
.yk-ukiyoe{position:relative;}
.yk-ukiyoe::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url(../images/archive/hokusai-kajikazawa.jpg) 38% 64%/135% auto no-repeat;
  animation:yk-ukiyoe-pan 74s ease-in-out infinite alternate;filter:saturate(.85) brightness(.9);}
.yk-ukiyoe::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(rgba(16,13,11,.82),rgba(16,13,11,.72) 40%,rgba(16,13,11,.86));}
.yk-ukiyoe > *{position:relative;z-index:1;}
@media (prefers-reduced-motion: reduce){.yk-ukiyoe::before{animation:none;}}

/* v119: FABまわりの重なり解消 — ラベルは1181px以上のみ、900-1180帯はFAB縮小・パンくず進捗を整理 */
@media (min-width:1181px){ .kogetsu-fab-label-card{display:block !important;} }
@media (min-width:900px) and (max-width:1180px){
  .kogetsu-fab-label-card{display:none !important;}
  .kogetsu-fab-main{transform:scale(.85);right:14px !important;bottom:14px !important;}
  .breadcrumb-progress{display:none !important;}
}

/* 15. 写真を見せる — 減光の全面見直し(v120) */
.hero-photo{opacity:.68 !important;}
.yk-ukiyoe::after{background:linear-gradient(rgba(16,13,11,.52),rgba(16,13,11,.42) 40%,rgba(16,13,11,.6)) !important;}
.art-tiger{opacity:.62 !important;}

/* 16. 文字保護 — 写真は見せ、文字の載る場所だけ守る(v125) */
.hero-photo::after{content:'';position:absolute;inset:0;
  background:linear-gradient(rgba(12,10,9,.5),rgba(12,10,9,.3) 42%,rgba(12,10,9,.62));}
.hero-inner, .page-hero .hero-inner{position:relative;z-index:3;}
.hero-inner h1, .hero-inner h2, .hero-inner p, .hero-inner .hero-lede, .hero-inner div{
  text-shadow:0 2px 22px rgba(8,6,5,.9), 0 0 3px rgba(8,6,5,.75);}
.yk-ukiyoe::after{background:linear-gradient(rgba(16,13,11,.58),rgba(16,13,11,.56) 30%,rgba(16,13,11,.8)) !important;}
.yk-ukiyoe .flow-era h3, .yk-ukiyoe .flow-leader, .yk-ukiyoe .flow-desc, .yk-ukiyoe .flow-cta,
.yk-ukiyoe .flow-note, .yk-ukiyoe [class*="year"], .yk-ukiyoe .lf-title, .yk-ukiyoe h2,
.lineage-flow .flow-era *, .lineage-flow .flow-note{
  text-shadow:0 1px 14px rgba(10,8,7,.95), 0 0 4px rgba(10,8,7,.85);}

/* 16. 文字保護 — 写真は見せたまま、文字の下だけ守る(v125) */
.page-hero h1, .page-hero h2, .page-hero p, .page-hero .hero-lede, .page-hero .hero-sub,
section[class*="hero"] h1, section[class*="hero"] h2, section[class*="hero"] p,
.hero-inner h1, .hero-inner p{
  text-shadow: 0 1px 3px rgba(10,8,7,.92), 0 2px 16px rgba(10,8,7,.78), 0 0 34px rgba(10,8,7,.5);
}
.yk-ukiyoe::after{
  background: linear-gradient(rgba(16,13,11,.46), rgba(16,13,11,.6) 34%, rgba(16,13,11,.8) 62%, rgba(16,13,11,.86)) !important;
}
.yk-ukiyoe .flow-year, .yk-ukiyoe .flow-era h3, .yk-ukiyoe .flow-leader, .yk-ukiyoe .flow-desc,
.yk-ukiyoe .flow-cta, .yk-ukiyoe .lf-note, .yk-ukiyoe p{
  text-shadow: 0 1px 2px rgba(10,8,7,.95), 0 2px 12px rgba(10,8,7,.85);
}
.yk-ukiyoe .flow-cta{background: rgba(16,13,11,.45);}
