:root {
  color-scheme: light dark;
  font-family: Inter, "Hiragino Sans", "Yu Gothic", sans-serif;
  font-synthesis: none;
  --ink: light-dark(#19161c, #f6f1f7);
  --muted: light-dark(#655e67, #b8aebb);
  --paper: light-dark(#f5f1ea, #0c0a0e);
  --surface: light-dark(#fffaf4, #171319);
  --line: light-dark(#d8d0c8, #352e39);
  --cream: #fff8f1;
  --coral: #ff623b;
}

/* SCENOTE: works connect the music and idol archives */
.scenote-page,
.scenote-work-page {
  --scene-ink: #101718;
  --scene-paper: #f0eee6;
  --scene-surface: #faf8ef;
  --scene-line: #c9c8bd;
  --scene-teal: #61d6c5;
  min-height: 100vh;
  background: var(--scene-paper);
  color: var(--scene-ink);
  color-scheme: light;
}
.scenote-bar { position: sticky; z-index: 960; top: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 68px; padding: 0 clamp(20px, 4vw, 56px); align-items: center; gap: clamp(22px, 5vw, 74px); border-bottom: 1px solid rgba(255,255,255,.12); background: rgba(12,18,19,.97); color: #f8f4e9; backdrop-filter: blur(16px); }
.scenote-brand { color: #f8f4e9; font-family: Georgia, serif; font-size: 1.03rem; font-weight: 700; letter-spacing: .17em; text-decoration: none; }
.scenote-brand span { color: var(--scene-teal); }
.scenote-bar nav { display: flex; height: 68px; align-items: stretch; gap: 3px; }
.scenote-bar nav a,
.scenote-bar nav strong { position: relative; display: inline-flex; padding: 0 15px; align-items: center; color: rgba(248,244,233,.62); font-size: .68rem; font-weight: 800; text-decoration: none; }
.scenote-bar nav a:hover,
.scenote-bar nav a[aria-current],
.scenote-bar nav strong { color: #f8f4e9; }
.scenote-bar nav a[aria-current]::after,
.scenote-bar nav strong::after { content: ""; position: absolute; right: 13px; bottom: 0; left: 13px; height: 4px; background: var(--scene-teal); }
.scenote-culture-link { color: rgba(248,244,233,.58); font-size: .58rem; font-weight: 900; letter-spacing: .14em; text-decoration: none; }
.scenote-culture-link:hover { color: #f8f4e9; }
.scenote-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .6fr); min-height: 720px; border-bottom: 1px solid var(--scene-line); background: radial-gradient(circle at 82% 16%, rgba(97,214,197,.28), transparent 28%), linear-gradient(117deg, #f6f3e9 0 64%, #d9d8cc 64% 100%); }
.scenote-hero > div { display: flex; padding: clamp(72px, 10vw, 142px) clamp(25px, 8vw, 126px); justify-content: center; flex-direction: column; }
.scenote-hero > div > p:first-child,
.scenote-intro > span,
.scenote-directory > header span,
.scenote-chapter small { margin: 0 0 16px; color: #126d64; font-size: .62rem; font-weight: 900; letter-spacing: .15em; }
.scenote-hero h1 { max-width: 920px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.45rem, 7vw, 7.8rem); font-weight: 400; line-height: .94; letter-spacing: -.065em; }
.scenote-hero h1 em { color: #0f897d; font-style: normal; }
.scenote-hero > div > p:nth-of-type(2) { max-width: 700px; margin: 34px 0 0; color: #525b5b; font-family: "Yu Mincho", Georgia, serif; font-size: .93rem; line-height: 1.95; }
.scenote-hero > div > a { display: inline-flex; width: max-content; min-height: 46px; margin-top: 34px; padding: 0 17px; align-items: center; gap: 34px; border: 1px solid #1d2829; border-radius: 999px; font-size: .66rem; font-weight: 900; text-decoration: none; }
.scenote-hero > dl { display: grid; margin: 0; align-content: center; background: rgba(16,23,24,.94); color: #f8f4e9; }
.scenote-hero > dl > div { display: grid; min-height: 170px; padding: 27px clamp(25px, 4vw, 54px); grid-template-columns: minmax(0, 1fr) auto; align-content: center; gap: 5px 20px; border-bottom: 1px solid rgba(255,255,255,.13); }
.scenote-hero dt { align-self: end; color: rgba(248,244,233,.54); font-size: .58rem; font-weight: 900; letter-spacing: .14em; }
.scenote-hero dd { grid-row: span 2; margin: 0; color: var(--scene-teal); font-family: Georgia, serif; font-size: clamp(3.2rem, 5vw, 5.3rem); line-height: .8; }
.scenote-hero dl small { color: rgba(248,244,233,.7); font-size: .63rem; }
.scenote-intro { display: grid; grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr) minmax(260px, .55fr); padding: clamp(76px, 9vw, 132px) clamp(24px, 7vw, 108px); align-items: start; gap: clamp(26px, 6vw, 90px); border-bottom: 1px solid var(--scene-line); }
.scenote-intro h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2.45rem, 4.8vw, 5.2rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.scenote-intro p { margin: 7px 0 0; color: #596060; font-size: .76rem; line-height: 1.9; }
.scenote-directory { padding: clamp(76px, 9vw, 130px) clamp(24px, 6vw, 92px) 140px; }
.scenote-directory > header,
.scenote-songs > header,
.scenote-journeys > header,
.scenote-related > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 500px); margin-bottom: 48px; align-items: end; gap: 48px; }
.scenote-directory > header h2,
.scenote-songs > header h2,
.scenote-journeys > header h2,
.scenote-related > header h2,
.scenote-sources h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2.45rem, 4.7vw, 5.2rem); font-weight: 400; line-height: 1.05; letter-spacing: -.05em; }
.scenote-directory > header > p,
.scenote-songs > header > span,
.scenote-journeys > header > span,
.scenote-related > header > span { margin: 0; color: #596060; font-size: .72rem; line-height: 1.85; }
.scenote-finder { position: sticky; z-index: 20; top: 68px; display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1fr) auto; padding: 18px 20px; align-items: end; gap: 18px; border: 1px solid #aeb4ad; background: rgba(250,248,239,.96); backdrop-filter: blur(16px); }
.scenote-finder label { display: grid; gap: 7px; }
.scenote-finder label span { color: #126d64; font-size: .55rem; font-weight: 900; letter-spacing: .14em; }
.scenote-finder input { width: 100%; min-height: 42px; padding: 0 13px; border: 1px solid #77827f; border-radius: 0; background: #fffdf6; color: #101718; font: inherit; font-size: .72rem; }
.scenote-finder input:focus { outline: 3px solid color-mix(in srgb, var(--scene-teal) 48%, transparent); outline-offset: 1px; }
.scenote-finder > div { display: flex; flex-wrap: wrap; gap: 7px; }
.scenote-finder button { min-height: 38px; padding: 0 12px; border: 1px solid #8c9693; background: transparent; color: #33403f; cursor: pointer; font: inherit; font-size: .6rem; font-weight: 800; }
.scenote-finder button[aria-pressed="true"] { border-color: #101718; background: #101718; color: #f8f4e9; }
.scenote-finder > p { min-width: 66px; margin: 0 0 10px; font-family: Georgia, serif; font-size: .8rem; white-space: nowrap; }
.scenote-chapter { display: grid; grid-template-columns: 85px minmax(0, 1fr); margin: 86px 0 22px; align-items: end; gap: 18px; border-bottom: 1px solid #232d2e; }
.scenote-chapter > span { align-self: stretch; padding: 8px 0 13px; border-right: 1px solid var(--scene-line); color: #71807e; font-family: Georgia, serif; font-size: 2.2rem; }
.scenote-chapter small { display: block; margin-bottom: 7px; }
.scenote-chapter h3 { margin: 0 0 13px; font-family: "Yu Mincho", Georgia, serif; font-size: 1.12rem; font-weight: 600; }
.scenote-work-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--scene-line); border-left: 1px solid var(--scene-line); }
.scenote-work-card { position: relative; display: flex; min-height: 410px; padding: 23px; overflow: hidden; flex-direction: column; border-right: 1px solid var(--scene-line); border-bottom: 1px solid var(--scene-line); background: var(--scene-surface); text-decoration: none; }
.scenote-work-card::before { content: ""; position: absolute; top: 0; right: 0; width: 46%; height: 7px; background: linear-gradient(90deg, var(--scene-accent), var(--scene-accent-2)); }
.scenote-work-card::after { content: ""; position: absolute; right: -80px; bottom: -105px; width: 230px; height: 230px; border-radius: 50%; background: color-mix(in srgb, var(--scene-accent) 18%, transparent); transition: transform .25s ease; }
.scenote-work-card:hover::after { transform: scale(1.16); }
.scenote-work-card header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.scenote-work-card header span { color: #7a8180; font-family: Georgia, serif; font-size: 1.3rem; }
.scenote-work-card header em { color: #465151; font-size: .55rem; font-style: normal; font-weight: 900; letter-spacing: .09em; }
.scenote-work-card > small { margin-top: 46px; color: #65706f; font-size: .57rem; letter-spacing: .1em; }
.scenote-work-card h4 { max-width: 440px; margin: 13px 0 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.55rem, 2.5vw, 2.8rem); font-weight: 400; line-height: 1.08; }
.scenote-work-card > p { max-width: 390px; margin: 17px 0 0; color: #596060; font-size: .7rem; line-height: 1.75; }
.scenote-work-card footer { z-index: 1; display: flex; margin-top: auto; padding-top: 30px; align-items: end; justify-content: space-between; gap: 15px; }
.scenote-work-card footer span { color: #697371; font-size: .54rem; letter-spacing: .06em; }
.scenote-work-card footer strong { font-size: .62rem; }
.scenote-footer { display: flex; min-height: 90px; padding: 25px clamp(22px, 5vw, 70px); align-items: center; gap: 25px; border-top: 1px solid rgba(255,255,255,.14); background: #101718; color: #f8f4e9; }
.scenote-footer > strong { color: var(--scene-teal); font-family: Georgia, serif; letter-spacing: .14em; }
.scenote-footer > span { color: rgba(248,244,233,.63); font-size: .65rem; }
.scenote-footer > small { margin-left: auto; color: rgba(248,244,233,.48); font-size: .56rem; letter-spacing: .09em; }
.scenote-footer .culture-footer-links,
.scenote-footer .culture-language-links { color: rgba(248,244,233,.62); }
.scenote-breadcrumb { position: sticky; z-index: 950; top: 68px; display: flex; min-height: 43px; padding: 0 clamp(20px, 4vw, 56px); align-items: center; gap: 9px; overflow-x: auto; border-bottom: 1px solid var(--scene-line); background: rgba(250,248,239,.95); color: #66716f; font-size: .61rem; white-space: nowrap; backdrop-filter: blur(14px); }
.scenote-breadcrumb strong { max-width: min(65vw, 760px); overflow: hidden; color: var(--scene-ink); text-overflow: ellipsis; }
.scenote-work-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr); min-height: 665px; border-bottom: 1px solid var(--scene-line); background: radial-gradient(circle at 80% 16%, color-mix(in srgb, var(--scene-accent) 25%, transparent), transparent 31%), var(--scene-surface); }
.scenote-work-hero > div { display: flex; padding: clamp(68px, 9vw, 126px) clamp(24px, 8vw, 124px); justify-content: center; flex-direction: column; }
.scenote-work-hero > div > p:first-child { margin: 0 0 18px; color: #55706c; font-size: .62rem; font-weight: 900; letter-spacing: .13em; }
.scenote-work-hero h1 { max-width: 1000px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.1rem, 6vw, 7rem); font-weight: 400; line-height: .98; letter-spacing: -.06em; }
.scenote-work-hero > div > span { margin-top: 13px; color: #697270; font-size: .67rem; letter-spacing: .08em; }
.scenote-work-hero h2 { max-width: 800px; margin: 52px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.2rem, 2vw, 2rem); font-weight: 600; line-height: 1.65; }
.scenote-work-hero > div > p:last-child { max-width: 760px; margin: 17px 0 0; color: #596060; font-size: .76rem; line-height: 1.9; }
.scenote-work-hero > aside { display: flex; min-height: 100%; padding: 38px; justify-content: space-between; flex-direction: column; background: #101718; color: #f8f4e9; }
.scenote-work-hero > aside > span { color: var(--scene-accent); font-size: .62rem; font-weight: 900; letter-spacing: .16em; }
.scenote-work-hero > aside > strong { align-self: center; color: color-mix(in srgb, var(--scene-accent) 80%, #fff); font-family: Georgia, serif; font-size: clamp(8rem, 15vw, 14rem); font-weight: 400; line-height: .8; }
.scenote-work-hero > aside > small { color: rgba(248,244,233,.5); font-size: .66rem; line-height: 1.75; letter-spacing: .15em; }
.scenote-work-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--scene-line); background: #dfe0d6; }
.scenote-work-facts > div { display: grid; min-height: 125px; padding: 22px; place-content: center; gap: 7px; border-right: 1px solid var(--scene-line); text-align: center; }
.scenote-work-facts strong { font-family: Georgia, serif; font-size: 2.8rem; font-weight: 400; line-height: 1; }
.scenote-work-facts span { color: #606b69; font-size: .55rem; font-weight: 900; letter-spacing: .12em; }
.scenote-songs,
.scenote-journeys { padding: clamp(78px, 9vw, 132px) clamp(24px, 7vw, 108px); }
.scenote-songs { background: #101718; color: #f8f4e9; }
.scenote-songs > header > span { color: rgba(248,244,233,.58); }
.scenote-songs > header p,
.scenote-journeys > header p,
.scenote-related > header p,
.scenote-sources > div:first-child > p { margin: 0 0 14px; color: var(--scene-accent, #0f897d); font-size: .61rem; font-weight: 900; letter-spacing: .13em; }
.scenote-song-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.scenote-song-card { display: grid; grid-template-rows: auto minmax(150px, auto) 1fr auto; overflow: hidden; border: 1px solid rgba(248,244,233,.17); border-radius: 16px; background: rgba(248,244,233,.045); }
.scenote-song-card > header { display: flex; min-height: 50px; padding: 0 20px; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(248,244,233,.13); }
.scenote-song-card > header span { color: var(--scene-accent, var(--scene-teal)); font-size: .55rem; font-weight: 900; letter-spacing: .1em; }
.scenote-song-card > header em { color: rgba(248,244,233,.55); font-size: .56rem; font-style: normal; }
.scenote-song-card > div { padding: 25px 22px; border-bottom: 1px solid rgba(248,244,233,.13); }
.scenote-song-card > div small { color: rgba(248,244,233,.5); font-size: .58rem; }
.scenote-song-card h3 { margin: 13px 0 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.7rem, 3vw, 3.2rem); font-weight: 400; }
.scenote-song-card > div p { margin: 14px 0 0; color: rgba(248,244,233,.62); font-size: .69rem; line-height: 1.75; }
.scenote-song-card ul { margin: 0; padding: 0; list-style: none; }
.scenote-song-card li + li { border-top: 1px solid rgba(248,244,233,.1); }
.scenote-song-card li a { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 66px; padding: 12px 21px; align-items: center; color: #f8f4e9; text-decoration: none; }
.scenote-song-card li span,
.scenote-song-card li strong { display: block; }
.scenote-song-card li span { color: rgba(248,244,233,.43); font-size: .51rem; letter-spacing: .09em; }
.scenote-song-card li strong { margin-top: 4px; font-size: .7rem; }
.scenote-song-card li i { grid-column: 2; grid-row: 1 / 3; color: rgba(248,244,233,.5); font-style: normal; }
.scenote-song-link { display: flex; min-height: 60px; padding: 0 21px; align-items: center; justify-content: space-between; border-top: 1px solid rgba(248,244,233,.13); background: var(--scene-accent, var(--scene-teal)); color: #101718; font-size: .63rem; font-weight: 900; text-decoration: none; }
.scenote-journeys { background: var(--scene-paper); color: var(--scene-ink); }
.scenote-journey-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--scene-line); border-left: 1px solid var(--scene-line); }
.scenote-journey-card { display: flex; min-height: 310px; padding: 28px; flex-direction: column; border-right: 1px solid var(--scene-line); border-bottom: 1px solid var(--scene-line); background: var(--scene-surface); text-decoration: none; }
.scenote-journey-card > span { color: #5f7471; font-size: .56rem; font-weight: 900; letter-spacing: .1em; }
.scenote-journey-card strong { margin-top: 40px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.8rem, 3.2vw, 3.6rem); font-weight: 400; line-height: 1.05; }
.scenote-journey-card p { max-width: 540px; margin: 17px 0 0; color: #596060; font-size: .71rem; line-height: 1.78; }
.scenote-journey-card em { margin-top: auto; padding-top: 30px; font-size: .64rem; font-style: normal; font-weight: 900; }
.scenote-journey-card.is-audition { background: linear-gradient(145deg, color-mix(in srgb, var(--scene-accent) 11%, transparent), var(--scene-surface)); }
.scenote-journey-card.is-group { background: linear-gradient(145deg, rgba(116,92,255,.1), var(--scene-surface)); }
.scenote-editorial { padding: clamp(78px, 9vw, 132px) clamp(24px, 7vw, 108px); border-top: 1px solid rgba(248,244,233,.15); background: #101718; color: #f8f4e9; }
.scenote-editorial > header { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1fr); margin-bottom: 44px; align-items: end; gap: 18px 54px; }
.scenote-editorial > header > p { grid-column: 1 / -1; margin: 0; color: #78cbbf; font-size: .59rem; font-weight: 900; letter-spacing: .14em; }
.scenote-editorial > header h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2.45rem, 4.7vw, 5.2rem); font-weight: 400; line-height: 1.05; letter-spacing: -.05em; }
.scenote-editorial > header > span { max-width: 500px; color: rgba(248,244,233,.62); font-size: .72rem; line-height: 1.85; }
.scenote-editorial > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: rgba(248,244,233,.18); }
.scenote-editorial > div > a { display: flex; min-height: 310px; padding: clamp(24px, 3.2vw, 38px); flex-direction: column; background: #151e20; color: #f8f4e9; text-decoration: none; }
.scenote-editorial a small { color: #78cbbf; font-size: .56rem; font-weight: 900; letter-spacing: .09em; }
.scenote-editorial a strong { margin-top: 38px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.75rem, 3vw, 3.3rem); font-weight: 400; line-height: 1.08; }
.scenote-editorial a p { margin: 19px 0 0; color: rgba(248,244,233,.68); font-family: "Yu Mincho", Georgia, serif; font-size: .76rem; line-height: 1.9; }
.scenote-editorial a em { margin-top: auto; padding-top: 28px; font-size: .62rem; font-style: normal; font-weight: 900; }
.scenote-related { padding: clamp(78px, 9vw, 132px) clamp(24px, 7vw, 108px); border-top: 1px solid var(--scene-line); background: #f1eee4; color: var(--scene-ink); }
.scenote-related > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #9fa7a1; border-left: 1px solid #9fa7a1; }
.scenote-related > div > a { position: relative; display: flex; min-height: 290px; padding: 24px; overflow: hidden; flex-direction: column; border-right: 1px solid #9fa7a1; border-bottom: 1px solid #9fa7a1; background: #f8f5eb; text-decoration: none; }
.scenote-related > div > a::before { position: absolute; top: 0; right: 0; left: 0; height: 5px; background: var(--scene-related-accent, var(--scene-accent)); content: ""; }
.scenote-related a small { color: #5d716e; font-size: .55rem; font-weight: 900; letter-spacing: .07em; }
.scenote-related a strong { margin-top: 45px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.45rem, 2.4vw, 2.7rem); font-weight: 400; line-height: 1.08; }
.scenote-related a > span { margin-top: 17px; color: #67706e; font-size: .55rem; }
.scenote-related a em { margin-top: auto; padding-top: 28px; font-size: .59rem; font-style: normal; font-weight: 900; }
.scenote-sources { display: grid; grid-template-columns: minmax(0, .75fr) minmax(360px, 1fr); padding: clamp(76px, 9vw, 132px) clamp(24px, 7vw, 108px); gap: clamp(42px, 8vw, 126px); border-top: 1px solid var(--scene-line); background: #dfe0d6; }
.scenote-sources > div:first-child > span { display: block; max-width: 520px; margin-top: 25px; color: #596060; font-size: .72rem; line-height: 1.85; }
.scenote-sources > div:last-child { border-top: 1px solid #919994; }
.scenote-sources > div:last-child > a { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; min-height: 82px; padding: 15px 8px; align-items: center; gap: 17px; border-bottom: 1px solid #aeb3ac; text-decoration: none; }
.scenote-sources a > span { color: #707976; font-family: Georgia, serif; }
.scenote-sources a strong,
.scenote-sources a small { display: block; }
.scenote-sources a strong { font-size: .72rem; }
.scenote-sources a small { margin-top: 6px; color: #66706e; font-size: .57rem; }
.scenote-sources a em { font-style: normal; }
.scenote-next { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(280px, .55fr); min-height: 270px; padding: clamp(38px, 6vw, 76px) clamp(24px, 7vw, 108px); align-items: center; gap: clamp(25px, 6vw, 80px); background: #101718; color: #f8f4e9; }
.scenote-next > span { align-self: start; color: var(--scene-accent, var(--scene-teal)); font-size: .57rem; font-weight: 900; letter-spacing: .13em; }
.scenote-next h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 3.5vw, 3.7rem); font-weight: 400; }
.scenote-next p { margin: 13px 0 0; color: rgba(248,244,233,.56); font-size: .69rem; line-height: 1.75; }
.scenote-next > a { display: flex; min-height: 150px; padding: 22px; justify-content: space-between; flex-direction: column; border: 1px solid rgba(248,244,233,.18); color: #f8f4e9; text-decoration: none; }
.scenote-next > a strong { font-family: Georgia, "Yu Mincho", serif; font-size: 1.45rem; font-weight: 400; }
.scenote-next > a small { color: var(--scene-accent, var(--scene-teal)); font-size: .58rem; font-weight: 900; }
.scenote-bridge { display: grid; grid-template-columns: minmax(240px, .52fr) minmax(0, 1fr); padding: clamp(58px, 7vw, 96px) clamp(24px, 6vw, 90px); gap: clamp(32px, 6vw, 84px); border-top: 1px solid var(--line); background: light-dark(#dfe7e2, #0d1716); }
.scenote-bridge > div:first-child > p { margin: 0 0 12px; color: light-dark(#116b62, #77dfd1); font-size: .59rem; font-weight: 900; letter-spacing: .13em; }
.scenote-bridge > div:first-child h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 3.8vw, 4.2rem); font-weight: 400; line-height: 1.06; letter-spacing: -.045em; }
.scenote-bridge > div:first-child > span { display: block; max-width: 480px; margin-top: 20px; color: var(--muted); font-size: .71rem; line-height: 1.85; }
.scenote-bridge-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.scenote-bridge-card { position: relative; display: flex; min-height: 260px; padding: 23px; overflow: hidden; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); text-decoration: none; }
.scenote-bridge-card::after { content: ""; position: absolute; right: -65px; bottom: -70px; width: 170px; height: 170px; border-radius: 50%; background: color-mix(in srgb, var(--scene-card-accent) 18%, transparent); }
.scenote-bridge-card > span { color: light-dark(#46736d, #8ebeb7); font-size: .54rem; font-weight: 900; letter-spacing: .08em; }
.scenote-bridge-card strong { z-index: 1; margin-top: 29px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.4rem, 2.4vw, 2.5rem); font-weight: 400; line-height: 1.08; }
.scenote-bridge-card p { z-index: 1; margin: 13px 0 0; color: var(--muted); font-size: .66rem; line-height: 1.7; }
.scenote-bridge-card em { z-index: 1; margin-top: auto; padding-top: 25px; font-size: .6rem; font-style: normal; font-weight: 900; }
.scenote-bridge-card em i { color: light-dark(#0f8176, #77dfd1); font-style: normal; }

@media (max-width: 900px) {
  .culture-service-grid { grid-template-columns: 1fr; }
  .scenote-hero { grid-template-columns: 1fr; }
  .scenote-hero > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .scenote-hero > dl > div { min-height: 135px; padding: 22px; }
  .scenote-hero dd { font-size: 3rem; }
  .scenote-intro { grid-template-columns: 1fr; }
  .scenote-finder { grid-template-columns: 1fr auto; }
  .scenote-finder > div { grid-column: 1 / -1; grid-row: 2; }
  .scenote-work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scenote-work-hero { grid-template-columns: 1fr; }
  .scenote-work-hero > aside { min-height: 220px; flex-direction: row; align-items: center; }
  .scenote-work-hero > aside > strong { font-size: 8rem; }
  .scenote-song-grid,
  .scenote-journey-grid { grid-template-columns: 1fr; }
  .scenote-related > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scenote-sources { grid-template-columns: 1fr; }
  .scenote-next { grid-template-columns: 1fr; }
  .scenote-bridge { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .scenote-bar { grid-template-columns: auto minmax(0, 1fr); min-height: 58px; padding: 0 14px; gap: 10px; }
  .scenote-brand { font-size: .75rem; letter-spacing: .1em; }
  .scenote-bar nav { height: 58px; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .scenote-bar nav::-webkit-scrollbar { display: none; }
  .scenote-bar nav a,
  .scenote-bar nav strong { padding: 0 8px; font-size: .59rem; }
  .scenote-bar nav a[aria-current]::after,
  .scenote-bar nav strong::after { right: 7px; left: 7px; height: 3px; }
  .scenote-culture-link { display: none; }
  .scenote-breadcrumb { top: 58px; min-height: 40px; padding: 0 14px; }
  .scenote-hero > div { padding: 65px 19px 70px; }
  .scenote-hero h1 { font-size: 3.5rem; }
  .scenote-hero > dl { grid-template-columns: 1fr; }
  .scenote-hero > dl > div { min-height: 110px; }
  .scenote-intro,
  .scenote-directory,
  .scenote-songs,
  .scenote-journeys,
  .scenote-editorial,
  .scenote-related,
  .scenote-sources { padding: 60px 18px 70px; }
  .scenote-directory > header,
  .scenote-songs > header,
  .scenote-journeys > header,
  .scenote-editorial > header,
  .scenote-related > header { grid-template-columns: 1fr; align-items: start; gap: 21px; }
  .scenote-editorial > div { grid-template-columns: 1fr; }
  .scenote-related > div { grid-template-columns: 1fr; }
  .scenote-finder { position: static; grid-template-columns: 1fr; padding: 15px; }
  .scenote-finder > div { grid-column: auto; grid-row: auto; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .scenote-finder button { flex: 0 0 auto; }
  .scenote-finder > p { margin: 0; }
  .scenote-work-grid { grid-template-columns: 1fr; }
  .scenote-work-card { min-height: 350px; }
  .scenote-work-hero > div { padding: 62px 19px 70px; }
  .scenote-work-hero h1 { font-size: 3.2rem; }
  .scenote-work-hero h2 { margin-top: 37px; }
  .scenote-work-hero > aside { min-height: 180px; padding: 24px; }
  .scenote-work-hero > aside > strong { font-size: 6rem; }
  .scenote-work-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scenote-work-facts > div { min-height: 105px; }
  .scenote-next { padding: 58px 18px 66px; }
  .scenote-footer { align-items: flex-start; flex-direction: column; }
  .scenote-footer > small { margin-left: 0; }
  .scenote-bridge { padding: 58px 18px 66px; }
  .scenote-bridge-grid { grid-template-columns: 1fr; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); }
a { color: inherit; }
button { font: inherit; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; padding: .8rem 1rem; background: #111; color: #fff; }
.skip-link:focus { left: 0; }
:focus-visible { outline: 2px solid light-dark(#3b63cc, #8eb0ff); outline-offset: 3px; }

.culture-bar,
.music-bar,
.provider-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 66px;
  padding: 0 clamp(20px, 4vw, 54px);
  background: #151117;
  color: var(--cream);
}

.culture-wordmark,
.music-brand { text-decoration: none; font-weight: 800; letter-spacing: .15em; }
.culture-wordmark span { color: rgba(255,248,241,.56); font-size: .68em; }
.culture-bar nav,
.music-bar nav,
.provider-bar nav { display: flex; align-items: center; gap: 22px; color: rgba(255,248,241,.62); font-size: .76rem; }
.culture-bar nav a,
.music-bar nav a { text-decoration: none; }
.music-bar nav strong,
.provider-bar nav strong { color: var(--cream); }

/* CREDISC: persistent navigation and location */
.credisc-bar { position: sticky; z-index: 900; top: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 66px; padding: 0 clamp(20px, 4vw, 54px); align-items: center; gap: clamp(18px, 4vw, 54px); background: rgba(21,17,23,.97); color: var(--cream); box-shadow: 0 1px 0 rgba(255,248,241,.12); }
.credisc-bar .music-brand { white-space: nowrap; }
.credisc-primary-nav { display: flex; min-width: 0; height: 66px; align-items: stretch; gap: 3px; }
.credisc-primary-nav a { position: relative; display: inline-flex; min-width: 72px; padding: 0 16px; align-items: center; justify-content: center; color: rgba(255,248,241,.58); font-size: .72rem; font-weight: 800; text-decoration: none; white-space: nowrap; transition: color .18s ease, background .18s ease; }
.credisc-primary-nav a:hover { color: var(--cream); background: rgba(255,248,241,.05); }
.credisc-primary-nav a[aria-current="location"] { color: var(--cream); }
.credisc-primary-nav a[aria-current="location"]::after { content: ""; position: absolute; right: 14px; bottom: 0; left: 14px; height: 4px; background: var(--coral); }
.credisc-culture-link { color: rgba(255,248,241,.55); font-size: .59rem; font-weight: 900; letter-spacing: .13em; text-decoration: none; }
.credisc-culture-link:hover { color: var(--cream); }
.credisc-breadcrumb { position: sticky; z-index: 899; top: 66px; display: flex; min-height: 43px; padding: 0 clamp(20px, 4vw, 54px); align-items: center; gap: 9px; overflow-x: auto; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 94%, transparent); color: var(--muted); font-size: .61rem; white-space: nowrap; scrollbar-width: none; backdrop-filter: blur(14px); }
.credisc-breadcrumb::-webkit-scrollbar { display: none; }
.credisc-breadcrumb a { color: inherit; text-underline-offset: .22em; }
.credisc-breadcrumb strong { max-width: min(55vw, 650px); overflow: hidden; color: var(--ink); font-weight: 800; text-overflow: ellipsis; }

.culture-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
  min-height: 610px;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 15%, light-dark(rgba(255,98,59,.27), rgba(255,98,59,.18)), transparent 29%),
    radial-gradient(circle at 8% 92%, light-dark(rgba(116,92,255,.2), rgba(116,92,255,.13)), transparent 36%),
    var(--surface);
  border-bottom: 1px solid var(--line);
}

.culture-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 70px clamp(28px, 7vw, 110px); }
.culture-kicker,
.music-kicker,
.provider-kicker { margin: 0 0 12px; color: light-dark(#963d2b, #ff9c84); font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.culture-hero h1 { margin: 0; max-width: 760px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.2rem, 7vw, 6.8rem); font-weight: 400; line-height: .98; letter-spacing: -.055em; }
.culture-hero h1 em { color: var(--coral); font-style: normal; }
.culture-hero-copy > p:not(.culture-kicker) { max-width: 620px; margin: 26px 0 0; color: var(--muted); font-family: "Yu Mincho", Georgia, serif; font-size: 1.03rem; line-height: 1.9; }
.culture-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.culture-primary,
.culture-secondary,
.music-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 18px; border-radius: 999px; text-decoration: none; font-size: .82rem; font-weight: 700; }
.culture-primary,
.music-primary { background: var(--ink); color: var(--paper); }
.culture-secondary { border: 1px solid var(--line); }

.culture-rings { position: relative; align-self: center; justify-self: center; width: min(36vw, 460px); aspect-ratio: 1; }
.culture-rings > span { position: absolute; }
.culture-ring-one,
.culture-ring-two,
.culture-ring-three { inset: 0; border: 1px solid var(--line); border-radius: 50%; }
.culture-ring-two { inset: 17%; border-style: dashed; }
.culture-ring-three { inset: 34%; background: light-dark(rgba(255,255,255,.45), rgba(255,255,255,.03)); }
.culture-ring-core { inset: 41%; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 4rem); }
.culture-ring-label { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: .62rem; letter-spacing: .12em; }
.culture-ring-label.is-music { top: 4%; left: 42%; }
.culture-ring-label.is-screen { top: 35%; right: -5%; }
.culture-ring-label.is-books { bottom: 3%; left: 38%; }
.culture-ring-label.is-manga { top: 39%; left: -6%; }

.culture-directories { padding: 78px clamp(24px, 6vw, 90px) 94px; }
.culture-section-head,
.music-section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 26px; }
.culture-section-head h2,
.music-section-head h2,
.provider-section-head h2,
.provider-network h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 400; letter-spacing: -.025em; }
.culture-section-head > p,
.music-section-head > p { max-width: 430px; margin: 0; color: var(--muted); font-size: .83rem; line-height: 1.8; }
.culture-directory-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-directory { position: relative; min-height: 210px; padding: 22px; overflow: hidden; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
a.culture-directory { text-decoration: none; }
.culture-directory::after { content: ""; position: absolute; width: 110px; height: 110px; right: -40px; bottom: -46px; border-radius: 50%; background: light-dark(rgba(116,92,255,.1), rgba(116,92,255,.13)); }
.culture-directory.is-live::after { background: rgba(255,98,59,.2); }
.culture-directory.is-idols::after { background: rgba(123,92,255,.24); }
.culture-directory.is-idols { background: linear-gradient(135deg, light-dark(rgba(123,92,255,.1), rgba(123,92,255,.14)), var(--surface)); }
.culture-directory.is-live { grid-column: span 2; }
.culture-directory-path { display: block; margin-bottom: 45px; color: var(--muted); font-size: .65rem; letter-spacing: .11em; }
.culture-directory strong { display: block; font-family: Georgia, serif; font-size: clamp(1.45rem, 2.5vw, 2.15rem); font-weight: 400; letter-spacing: -.02em; }
.culture-directory small { display: block; max-width: 270px; margin-top: 9px; color: var(--muted); line-height: 1.6; }

/* CULTURE: cross-service discovery */
.culture-home .culture-bar { position: sticky; z-index: 950; top: 0; box-shadow: 0 1px 0 rgba(255,248,241,.12); }
.culture-discovery-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, .86fr); gap: clamp(38px, 7vw, 112px); min-height: 680px; padding: clamp(70px, 9vw, 128px) clamp(24px, 7vw, 108px); align-items: center; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 83% 10%, light-dark(rgba(255,98,59,.22), rgba(255,98,59,.16)), transparent 26%), radial-gradient(circle at 7% 90%, light-dark(rgba(116,92,255,.16), rgba(116,92,255,.11)), transparent 35%), var(--surface); }
.culture-discovery-copy h1 { max-width: 850px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.35rem, 6.5vw, 7.2rem); font-weight: 400; line-height: .98; letter-spacing: -.06em; }
.culture-discovery-copy h1 em { color: var(--coral); font-style: normal; }
.culture-discovery-copy > p:not(.culture-kicker) { max-width: 650px; margin: 30px 0 0; color: var(--muted); font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; line-height: 1.95; }
.culture-search-panel { position: relative; padding: clamp(24px, 3vw, 38px); border: 1px solid var(--line); border-radius: 22px; background: color-mix(in srgb, var(--surface) 92%, transparent); box-shadow: 0 24px 70px light-dark(rgba(38,23,26,.12), rgba(0,0,0,.28)); backdrop-filter: blur(16px); }
.culture-search-panel > label { display: block; margin-bottom: 15px; color: var(--muted); font-size: .69rem; font-weight: 800; letter-spacing: .08em; }
.culture-search-field { display: grid; grid-template-columns: 23px minmax(0, 1fr) auto; min-height: 62px; padding: 0 17px; align-items: center; gap: 12px; border: 1px solid color-mix(in srgb, var(--ink) 30%, var(--line)); border-radius: 13px; background: var(--paper); }
.culture-search-field:focus-within { border-color: var(--coral); box-shadow: 0 0 0 3px color-mix(in srgb, var(--coral) 18%, transparent); }
.culture-search-field svg { width: 21px; fill: none; stroke: var(--muted); stroke-linecap: round; stroke-width: 1.7; }
.culture-search-field input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 1rem; }
.culture-search-field input::placeholder { color: color-mix(in srgb, var(--muted) 76%, transparent); }
.culture-search-field kbd { padding: 5px 8px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: var(--surface); font-size: .62rem; font-family: inherit; white-space: nowrap; }
.culture-search-quick { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; align-items: center; }
.culture-search-quick > span { margin-right: 2px; color: var(--muted); font-size: .62rem; }
.culture-search-quick button { min-height: 30px; padding: 0 10px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--ink); cursor: pointer; font-size: .65rem; }
.culture-search-quick button:hover { border-color: var(--coral); color: light-dark(#963d2b, #ff9c84); }
.culture-search-status { min-height: 1.5em; margin: 19px 0 0; color: var(--muted); font-size: .64rem; }
.culture-search-results { display: grid; max-height: 390px; margin: 12px -8px -8px; padding: 8px; gap: 2px; overflow-y: auto; border-top: 1px solid var(--line); }
.culture-search-results[hidden] { display: none; }
.culture-search-result { display: grid; grid-template-columns: 66px minmax(0, 1fr) auto; min-height: 62px; padding: 9px 8px; align-items: center; gap: 11px; border-radius: 9px; text-decoration: none; }
.culture-search-result:hover { background: var(--paper); }
.culture-search-result > span:first-child { display: inline-flex; width: max-content; min-width: 54px; min-height: 26px; padding: 0 8px; align-items: center; justify-content: center; border-radius: 999px; background: light-dark(rgba(255,98,59,.13), rgba(255,98,59,.17)); color: light-dark(#843725, #ffb09d); font-size: .58rem; font-weight: 800; }
.culture-search-result.is-group > span:first-child,
.culture-search-result.is-person > span:first-child { background: light-dark(rgba(116,92,255,.13), rgba(145,125,255,.2)); color: light-dark(#4934a7, #c9bdff); }
.culture-search-result.is-story > span:first-child { background: light-dark(rgba(37,120,118,.13), rgba(77,181,173,.18)); color: light-dark(#1c6461, #91ded7); }
.culture-search-result.is-work > span:first-child { background: light-dark(rgba(28,139,127,.14), rgba(97,214,197,.19)); color: light-dark(#126d64, #8ee8dc); }
.culture-search-result strong,
.culture-search-result small { display: block; }
.culture-search-result strong { font-size: .77rem; }
.culture-search-result small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
.culture-search-result i { color: var(--muted); font-style: normal; }
.culture-search-empty { margin: 0; padding: 20px 10px; color: var(--muted); font-size: .72rem; line-height: 1.7; }
.culture-start-paths,
.culture-story-preview,
.culture-services { padding: clamp(66px, 8vw, 104px) clamp(24px, 7vw, 108px); }
.culture-path-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-path-card { --path-accent: var(--coral); position: relative; display: flex; min-height: 330px; padding: 27px; overflow: hidden; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); text-decoration: none; }
.culture-path-card::after { content: ""; position: absolute; right: -70px; bottom: -80px; width: 220px; height: 220px; border-radius: 50%; background: color-mix(in srgb, var(--path-accent) 17%, transparent); transition: transform .28s ease; }
.culture-path-card:hover::after { transform: scale(1.14); }
.culture-path-card.is-violet { --path-accent: #8064e9; }
.culture-path-card.is-blue { --path-accent: #3c78c7; }
.culture-path-card > span { color: var(--path-accent); font-size: .61rem; font-weight: 900; letter-spacing: .13em; }
.culture-path-card strong { margin-top: 48px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 3.2vw, 3.6rem); font-weight: 400; line-height: 1; letter-spacing: -.045em; }
.culture-path-card p { max-width: 340px; margin: 19px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.8; }
.culture-path-card em { z-index: 1; margin-top: auto; padding-top: 34px; color: var(--ink); font-size: .67rem; font-style: normal; font-weight: 800; }
.culture-story-preview { background: #151117; color: var(--cream); }
.culture-story-preview .culture-kicker { color: #ff9c84; }
.culture-story-preview .culture-section-head h2 { color: var(--cream); }
.culture-text-link { align-self: center; color: rgba(255,248,241,.7); font-size: .7rem; font-weight: 800; text-underline-offset: .25em; }
.culture-story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: rgba(255,248,241,.16); }
.culture-story-grid > a { display: flex; min-height: 265px; padding: 26px; flex-direction: column; background: #151117; color: var(--cream); text-decoration: none; }
.culture-story-grid > a:hover { background: #1d171f; }
.culture-story-grid span { color: #ff9c84; font-size: .61rem; font-weight: 800; letter-spacing: .09em; }
.culture-story-grid strong { max-width: 380px; margin-top: auto; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.55rem, 2.3vw, 2.6rem); font-weight: 400; line-height: 1.13; }
.culture-story-grid p { margin: 13px 0 0; color: rgba(255,248,241,.56); font-size: .72rem; line-height: 1.65; }
.culture-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-service-card { display: grid; min-height: 300px; padding: clamp(26px, 4vw, 48px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); text-decoration: none; }
.culture-service-card.is-music { background: linear-gradient(145deg, light-dark(rgba(255,98,59,.08), rgba(255,98,59,.11)), var(--surface)); }
.culture-service-card.is-idols { background: linear-gradient(145deg, light-dark(rgba(116,92,255,.08), rgba(116,92,255,.13)), var(--surface)); }
.culture-service-card.is-works { background: linear-gradient(145deg, light-dark(rgba(37,153,140,.1), rgba(97,214,197,.12)), var(--surface)); }
.culture-service-card small { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .12em; }
.culture-service-card strong { margin-top: 38px; font-family: Georgia, serif; font-size: clamp(2.7rem, 5vw, 5.4rem); font-weight: 400; letter-spacing: -.05em; }
.culture-service-card p { max-width: 480px; margin: 13px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.75; }
.culture-service-card span { margin-top: auto; padding-top: 30px; font-size: .68rem; font-weight: 800; }

/* CULTURE: editorial connection stories */
.culture-stories-page .culture-bar,
.culture-story-page .culture-bar { position: sticky; z-index: 950; top: 0; box-shadow: 0 1px 0 rgba(255,248,241,.12); }
.culture-bar nav strong { color: var(--cream); font-size: inherit; }
.culture-stories-hero { padding: clamp(76px, 9vw, 132px) clamp(24px, 8vw, 124px) clamp(64px, 8vw, 110px); border-bottom: 1px solid var(--line); background: radial-gradient(circle at 86% 8%, light-dark(rgba(116,92,255,.19), rgba(116,92,255,.14)), transparent 29%), var(--surface); }
.culture-stories-hero h1 { max-width: 1050px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.35rem, 7vw, 7.6rem); font-weight: 400; line-height: .98; letter-spacing: -.06em; }
.culture-stories-hero h1 em { color: var(--coral); font-style: normal; }
.culture-stories-hero > div { display: flex; margin-top: 36px; align-items: end; justify-content: space-between; gap: 34px; }
.culture-stories-hero > div > p { max-width: 680px; margin: 0; color: var(--muted); font-family: "Yu Mincho", Georgia, serif; font-size: .92rem; line-height: 1.9; }
.culture-stories-hero > div > span { color: var(--muted); font-size: .61rem; line-height: 1.7; text-align: right; letter-spacing: .08em; white-space: nowrap; }
.culture-stories-hero > div strong { color: var(--ink); font-family: Georgia, serif; font-size: 2rem; font-weight: 400; }
.culture-stories-list { padding: clamp(66px, 8vw, 108px) clamp(24px, 7vw, 108px); }
.culture-story-finder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr); gap: 18px; margin: 42px 0 18px; align-items: end; }
.culture-story-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.culture-story-filters button { padding: 12px 15px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--ink); font: inherit; font-size: .72rem; font-weight: 800; cursor: pointer; }
.culture-story-filters button span { margin-left: 7px; color: var(--muted); font-family: Georgia, serif; font-weight: 400; }
.culture-story-filters button[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--surface); }
.culture-story-filters button[aria-pressed="true"] span { color: inherit; opacity: .7; }
.culture-story-search { display: grid; gap: 8px; color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .04em; }
.culture-story-search input { min-width: 0; padding: 13px 15px; border: 1px solid var(--line); border-radius: 0; background: var(--surface); color: var(--ink); font: inherit; font-size: .78rem; outline: none; }
.culture-story-search input:focus { border-color: var(--coral); box-shadow: 0 0 0 2px color-mix(in srgb, var(--coral) 22%, transparent); }
.culture-story-result { margin: 0 0 13px; color: var(--muted); font-size: .66rem; }
.culture-story-result strong { margin-right: 4px; color: var(--ink); font-family: Georgia, serif; font-size: 1rem; font-weight: 400; }
.culture-stories-index-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-story-index-card[hidden] { display: none; }
.culture-story-index-card { display: flex; min-height: 370px; padding: 25px; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); text-decoration: none; transition: background .2s ease; }
.culture-story-index-card:hover { background: light-dark(#fff5ed, #201820); }
.culture-story-index-card.is-scene { background: light-dark(#f2eee6, #181a20); }
.culture-story-index-card.is-scene:hover { background: light-dark(#e9f0ee, #1c2327); }
.culture-story-index-card > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .61rem; letter-spacing: .09em; }
.culture-story-index-card > div > span { color: light-dark(#963d2b, #ff9c84); font-weight: 900; }
.culture-story-index-card > strong { margin-top: 39px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.55rem, 2.25vw, 2.55rem); font-weight: 400; line-height: 1.08; }
.culture-story-index-card h2 { margin: 20px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: .86rem; font-weight: 600; line-height: 1.85; }
.culture-story-index-card p { margin: 14px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.7; }
.culture-story-index-card em { margin-top: auto; padding-top: 32px; font-size: .67rem; font-style: normal; font-weight: 800; }
.culture-breadcrumb { position: sticky; z-index: 940; top: 66px; display: flex; min-height: 43px; padding: 0 clamp(20px, 4vw, 54px); align-items: center; gap: 9px; overflow-x: auto; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 94%, transparent); color: var(--muted); font-size: .61rem; white-space: nowrap; scrollbar-width: none; backdrop-filter: blur(14px); }
.culture-breadcrumb::-webkit-scrollbar { display: none; }
.culture-breadcrumb a { color: inherit; text-underline-offset: .22em; }
.culture-breadcrumb strong { max-width: min(54vw, 680px); overflow: hidden; color: var(--ink); text-overflow: ellipsis; }
.culture-story-hero { padding: clamp(70px, 9vw, 130px) clamp(24px, 10vw, 156px) clamp(64px, 8vw, 108px); border-bottom: 1px solid var(--line); background: radial-gradient(circle at 87% 8%, light-dark(rgba(255,98,59,.2), rgba(255,98,59,.14)), transparent 27%), radial-gradient(circle at 6% 96%, light-dark(rgba(116,92,255,.14), rgba(116,92,255,.1)), transparent 34%), var(--surface); }
.culture-story-hero > span { display: block; margin: 18px 0 22px; color: var(--muted); font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.4rem, 2.6vw, 2.8rem); }
.culture-story-hero h1 { max-width: 1140px; margin: 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(2.25rem, 5vw, 5.65rem); font-weight: 500; line-height: 1.28; letter-spacing: -.045em; }
.culture-story-hero > p:not(.culture-kicker) { max-width: 780px; margin: 33px 0 0; color: var(--muted); font-size: .8rem; line-height: 1.9; }
.culture-story-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 850px; margin-top: 42px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-story-stats > div { display: grid; min-height: 90px; padding: 15px; align-content: center; gap: 5px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 60%, transparent); }
.culture-story-stats strong { font-family: Georgia, serif; font-size: 1.7rem; font-weight: 400; }
.culture-story-stats span { color: var(--muted); font-size: .55rem; letter-spacing: .1em; }
.culture-story-hero > small { display: block; margin-top: 18px; color: var(--muted); font-size: .59rem; }
.culture-story-local-nav { position: sticky; z-index: 920; top: 109px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 94%, transparent); backdrop-filter: blur(16px); }
.culture-story-local-nav > div:last-child { display: flex; min-height: 50px; padding: 0 clamp(18px, 4vw, 54px); align-items: center; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.culture-story-local-nav > div:last-child::-webkit-scrollbar { display: none; }
.culture-story-local-nav a,
.culture-story-local-nav button { flex: 0 0 auto; padding: 9px 11px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font: inherit; font-size: .64rem; font-weight: 800; text-decoration: none; cursor: pointer; white-space: nowrap; }
.culture-story-local-nav a:hover,
.culture-story-local-nav a[aria-current="location"] { background: color-mix(in srgb, var(--ink) 9%, transparent); color: var(--ink); }
.culture-story-local-nav button { margin-left: auto; border: 1px solid var(--line); color: var(--ink); }
.culture-story-local-nav button:hover { border-color: var(--ink); }
.culture-story-progress { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; overflow: hidden; }
.culture-story-progress i { display: block; width: 100%; height: 100%; transform: scaleX(0); transform-origin: left; background: var(--coral); }
.culture-story-section,
.culture-story-related,
.culture-story-editorial { scroll-margin-top: 174px; }
.culture-story-editorial { padding: clamp(72px, 9vw, 126px) clamp(24px, 8vw, 126px); border-top: 1px solid var(--line); background: light-dark(#f3ede5, #181319); }
.culture-story-editorial > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 450px); margin-bottom: 42px; align-items: end; gap: 40px; }
.culture-story-editorial > header > div { position: relative; padding-left: 62px; }
.culture-story-editorial > header > div > span { position: absolute; top: 3px; left: 0; color: light-dark(rgba(25,22,28,.16), rgba(255,248,241,.18)); font-family: Georgia, serif; font-size: 2.7rem; line-height: 1; }
.culture-story-editorial h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 4.4rem); font-weight: 400; line-height: 1.08; letter-spacing: -.045em; }
.culture-story-editorial > header > p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.8; }
.culture-story-editorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-story-editorial-card { display: flex; min-height: 510px; padding: clamp(24px, 3vw, 38px); flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.culture-story-editorial-card > span { color: light-dark(#963d2b, #ff9c84); font-size: .58rem; font-weight: 900; letter-spacing: .1em; }
.culture-story-editorial-card h3 { margin: 44px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.45rem, 2.25vw, 2.35rem); font-weight: 500; line-height: 1.45; letter-spacing: -.025em; }
.culture-story-editorial-card > p { margin: 24px 0 0; color: var(--muted); font-size: .76rem; line-height: 2; }
.culture-story-editorial-card > nav { display: flex; margin-top: 28px; flex-wrap: wrap; gap: 7px; }
.culture-story-editorial-card > nav a { padding: 7px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-size: .58rem; font-weight: 800; text-decoration: none; }
.culture-story-editorial-card details { margin-top: auto; padding-top: 34px; }
.culture-story-editorial-card summary { color: var(--muted); font-size: .6rem; font-weight: 800; cursor: pointer; }
.culture-story-editorial-card ul { margin: 15px 0 0; padding: 0; list-style: none; }
.culture-story-editorial-card li { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 10px 0; align-items: start; gap: 12px; border-top: 1px solid var(--line); }
.culture-story-editorial-card li a { color: var(--ink); font-size: .59rem; line-height: 1.55; text-underline-offset: .2em; }
.culture-story-editorial-card li small { color: var(--muted); font-size: .52rem; white-space: nowrap; }
.culture-story-section { padding: clamp(66px, 8vw, 110px) clamp(24px, 8vw, 126px); }
.culture-story-section.is-audition { border-top: 1px solid var(--line); background: light-dark(#ece6f6, #100c14); }
.culture-story-section.is-works { border-top: 1px solid var(--line); background: light-dark(#e7eeec, #0d1718); }
.culture-story-section.is-works .culture-kicker { color: light-dark(#276f69, #75d2c5); }
.culture-story-section.is-music { border-top: 1px solid var(--line); background: #151117; color: var(--cream); }
.culture-story-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 450px); margin-bottom: 36px; align-items: end; gap: 40px; }
.culture-story-section-head > div { position: relative; padding-left: 62px; }
.culture-story-section-head > div > span { position: absolute; top: 3px; left: 0; color: light-dark(rgba(25,22,28,.16), rgba(255,248,241,.18)); font-family: Georgia, serif; font-size: 2.7rem; line-height: 1; }
.culture-story-section-head h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 4.4rem); font-weight: 400; letter-spacing: -.045em; }
.culture-story-section-head > p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.8; }
.culture-story-section.is-music .culture-kicker { color: #ff9c84; }
.culture-story-section.is-music .culture-story-section-head > p { color: rgba(255,248,241,.56); }
.culture-story-entity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-story-entity { display: flex; min-height: 260px; padding: 24px; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); text-decoration: none; }
.culture-story-entity > span { color: light-dark(#963d2b, #ff9c84); font-size: .58rem; font-weight: 900; letter-spacing: .09em; }
.culture-story-entity strong { margin-top: 34px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.65rem, 2.8vw, 3rem); font-weight: 400; line-height: 1.05; }
.culture-story-entity p { max-width: 380px; margin: 16px 0 0; color: var(--muted); font-size: .71rem; line-height: 1.7; }
.culture-story-entity em { margin-top: auto; padding-top: 28px; font-size: .64rem; font-style: normal; font-weight: 800; }
.culture-story-audition-grid { display: grid; gap: 14px; }
.culture-story-audition-grid > a { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; padding: clamp(23px, 4vw, 42px); align-items: center; gap: 36px; border: 1px solid color-mix(in srgb, var(--ink) 16%, transparent); border-radius: 16px; background: var(--surface); text-decoration: none; }
.culture-story-audition-grid span { color: var(--muted); font-size: .6rem; letter-spacing: .09em; }
.culture-story-audition-grid strong { display: block; margin-top: 10px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.65rem, 3vw, 3.1rem); font-weight: 400; }
.culture-story-audition-grid p { max-width: 620px; margin: 12px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.75; }
.culture-story-audition-grid dl { display: flex; margin: 0; gap: 1px; background: var(--line); }
.culture-story-audition-grid dl > div { display: grid; min-width: 82px; min-height: 78px; padding: 10px; place-content: center; gap: 4px; background: var(--surface); text-align: center; }
.culture-story-audition-grid dt { color: var(--muted); font-size: .54rem; }
.culture-story-audition-grid dd { margin: 0; font-family: Georgia, serif; font-size: 1.35rem; }
.culture-story-audition-grid em { font-size: .63rem; font-style: normal; font-weight: 800; white-space: nowrap; }
.culture-story-empty-note { padding: clamp(26px, 4vw, 44px); border: 1px solid color-mix(in srgb, var(--ink) 16%, transparent); border-radius: 16px; background: var(--surface); }
.culture-story-empty-note strong { font-family: "Yu Mincho", Georgia, serif; font-size: 1.05rem; }
.culture-story-empty-note p { max-width: 720px; margin: 13px 0 0; color: var(--muted); font-size: .73rem; line-height: 1.8; }
.culture-story-work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.culture-story-work-card { display: flex; min-height: 420px; padding: clamp(24px, 3.2vw, 38px); flex-direction: column; border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); border-radius: 18px; background: var(--surface); color: var(--ink); text-decoration: none; }
.culture-story-work-card:hover { border-color: color-mix(in srgb, var(--ink) 28%, transparent); transform: translateY(-2px); }
.culture-story-work-card > div { display: flex; justify-content: space-between; gap: 18px; color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.culture-story-work-card > strong { margin-top: 46px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.8rem, 3.2vw, 3.5rem); font-weight: 400; line-height: 1.08; }
.culture-story-work-card h3 { margin: 22px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: .9rem; line-height: 1.8; }
.culture-story-work-card > p { margin: 14px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.8; }
.culture-story-work-card ul { display: flex; margin: 24px 0 0; padding: 0; flex-wrap: wrap; gap: 7px; list-style: none; }
.culture-story-work-card li { padding: 6px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .58rem; }
.culture-story-work-card em { margin-top: auto; padding-top: 30px; font-size: .65rem; font-style: normal; font-weight: 800; }
.culture-story-music-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.culture-story-music-card { overflow: hidden; border: 1px solid rgba(255,248,241,.14); border-radius: 16px; background: rgba(255,248,241,.04); }
.culture-story-music-card header { position: relative; min-height: 150px; padding: 24px; border-bottom: 1px solid rgba(255,248,241,.14); }
.culture-story-music-card header > span { display: block; color: #ff9c84; font-size: .56rem; font-weight: 900; letter-spacing: .1em; }
.culture-story-music-card header > strong { display: block; margin-top: 16px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.7rem, 3vw, 3.2rem); font-weight: 400; }
.culture-story-music-card header > a { position: absolute; right: 24px; bottom: 22px; color: rgba(255,248,241,.65); font-size: .61rem; font-weight: 800; text-underline-offset: .2em; }
.culture-story-music-card ol { margin: 0; padding: 0; list-style: none; }
.culture-story-music-card li + li { border-top: 1px solid rgba(255,248,241,.1); }
.culture-story-music-card li a { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; min-height: 63px; padding: 0 20px; align-items: center; gap: 12px; color: var(--cream); text-decoration: none; }
.culture-story-music-card li a:hover { background: rgba(255,248,241,.055); }
.culture-story-music-card li span,
.culture-story-music-card li small { color: rgba(255,248,241,.48); font-size: .57rem; }
.culture-story-music-card li strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.culture-story-no-songs { margin: 0; padding: 22px 24px 26px; color: rgba(255,248,241,.55); font-size: .67rem; line-height: 1.75; }
.culture-story-related { padding: clamp(68px, 8vw, 110px) clamp(24px, 8vw, 126px); border-top: 1px solid var(--line); background: light-dark(#eee8df, #17131a); }
.culture-story-related > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 450px); margin-bottom: 38px; align-items: end; gap: 36px; }
.culture-story-related > header h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 4.4rem); font-weight: 400; line-height: 1.08; letter-spacing: -.045em; }
.culture-story-related > header > span { color: var(--muted); font-size: .72rem; line-height: 1.8; }
.culture-story-related > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.culture-story-related a { display: flex; min-height: 300px; padding: 24px; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; }
.culture-story-related a small { color: light-dark(#963d2b, #ff9c84); font-size: .55rem; font-weight: 900; letter-spacing: .08em; }
.culture-story-related a strong { margin-top: 40px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.5rem, 2.5vw, 2.7rem); font-weight: 400; line-height: 1.08; }
.culture-story-related a p { margin: 16px 0 22px; color: var(--muted); font-family: "Yu Mincho", Georgia, serif; font-size: .7rem; line-height: 1.8; }
.culture-story-related a em { margin-top: auto; font-size: .62rem; font-style: normal; font-weight: 900; }
.culture-story-reading-note { padding: clamp(68px, 9vw, 126px) clamp(24px, 13vw, 200px); border-top: 1px solid var(--line); text-align: center; }
.culture-story-reading-note h2 { max-width: 900px; margin: 0 auto; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4.7vw, 5.1rem); font-weight: 400; line-height: 1.15; letter-spacing: -.05em; }
.culture-story-reading-note > p:not(.culture-kicker) { max-width: 780px; margin: 28px auto 0; color: var(--muted); font-size: .75rem; line-height: 1.9; }
.culture-story-reading-note > a { display: inline-flex; min-height: 48px; margin-top: 32px; padding: 0 19px; align-items: center; border-radius: 999px; background: var(--ink); color: var(--paper); font-size: .68rem; font-weight: 800; text-decoration: none; }
.culture-footer,
.music-footer,
.provider-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px clamp(22px, 5vw, 64px); background: #151117; color: rgba(255,248,241,.6); font-size: .72rem; flex-wrap: wrap; }
.culture-footer strong { color: var(--cream); letter-spacing: .1em; }
.culture-footer-links { display: flex; gap: 14px; margin-left: auto; }
.culture-footer-links a { color: inherit; text-underline-offset: .24em; }
.culture-language-links { display: flex; gap: 10px; padding-left: 14px; border-left: 1px solid rgba(255,255,255,.18); }
.culture-language-links a { color: inherit; text-decoration: none; }
.culture-language-links a[aria-current="page"] { color: var(--cream); text-decoration: underline; text-underline-offset: .24em; }
.service-support-cta { --support-accent: var(--coral); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 34px 64px; padding: clamp(42px, 6vw, 76px) clamp(24px, 7vw, 108px); align-items: center; overflow: hidden; border-top: 1px solid rgba(255,255,255,.12); background: radial-gradient(circle at 92% 18%, color-mix(in srgb, var(--support-accent) 34%, transparent), transparent 32%), #151117; color: var(--cream); }
.service-support-cta.is-idols { --support-accent: #b69cff; background-color: #0e0b13; }
.service-support-cta > div { display: grid; max-width: 820px; gap: 12px; }
.service-support-cta > div > span { color: var(--support-accent); font-size: .61rem; font-weight: 900; letter-spacing: .16em; }
.service-support-cta strong { font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.8rem, 3.6vw, 3.8rem); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
.service-support-cta p { max-width: 720px; margin: 0; color: rgba(255,248,241,.62); font-size: .78rem; line-height: 1.75; }
.service-support-cta > a { display: inline-flex; min-height: 52px; padding: 0 22px; align-items: center; justify-content: center; gap: 12px; border: 1px solid color-mix(in srgb, var(--support-accent) 72%, white); border-radius: 999px; background: var(--support-accent); color: #151117; font-size: .7rem; font-weight: 900; text-decoration: none; white-space: nowrap; transition: transform .18s ease, filter .18s ease; }
.service-support-cta > a:hover { filter: brightness(1.08); transform: translateY(-2px); }
.service-support-cta > a:focus-visible { outline: 3px solid var(--cream); outline-offset: 4px; }
.culture-back-link { color: rgba(255,248,241,.68); font-size: .76rem; text-decoration: none; }
.culture-back-link:hover,
.culture-footer-links a:hover { color: var(--cream); }

.privacy-main { min-height: calc(100vh - 132px); }
.privacy-hero { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 34px 70px; padding: clamp(68px, 10vw, 132px) clamp(24px, 8vw, 120px) 72px; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 88% 10%, light-dark(rgba(255,98,59,.2), rgba(255,98,59,.13)), transparent 31%), var(--surface); }
.privacy-hero .culture-kicker { grid-column: 1 / -1; }
.privacy-hero h1 { margin: 0; max-width: 640px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3rem, 7vw, 6rem); font-weight: 400; line-height: 1; letter-spacing: -.055em; }
.privacy-hero > p:last-child { align-self: end; max-width: 620px; margin: 0; color: var(--muted); font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; line-height: 2; }
.privacy-sections { padding: 32px clamp(24px, 8vw, 120px) 80px; }
.privacy-sections article { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 24px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.privacy-sections article > span { color: var(--coral); font-family: Georgia, serif; font-size: 1.3rem; }
.privacy-sections h2 { margin: 0 0 10px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 400; }
.privacy-sections p { max-width: 850px; margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.9; }
.privacy-links { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 40px 70px; margin: 0 clamp(24px, 8vw, 120px); padding: 48px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.privacy-links h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.7rem, 4vw, 2.8rem); font-weight: 400; }
.privacy-links > div:last-child { display: grid; align-content: start; }
.privacy-links a { display: flex; justify-content: space-between; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-size: .84rem; }
.privacy-updated { margin: 0; padding: 30px clamp(24px, 8vw, 120px) 70px; color: var(--muted); font-size: .72rem; }

.locale-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); min-height: 570px; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 88% 12%, light-dark(rgba(116,92,255,.2), rgba(116,92,255,.14)), transparent 30%), var(--surface); }
.locale-hero > div { display: flex; padding: clamp(62px, 8vw, 112px) clamp(24px, 8vw, 120px); flex-direction: column; justify-content: center; }
.locale-hero h1 { max-width: 900px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3rem, 6.7vw, 6.7rem); font-weight: 400; line-height: .98; letter-spacing: -.055em; }
.locale-hero > div > p:not(.culture-kicker) { max-width: 760px; margin: 28px 0 32px; color: var(--muted); font-size: .95rem; line-height: 1.95; }
.locale-hero aside { display: grid; align-content: center; background: #151117; color: var(--cream); }
.locale-hero aside > div { display: grid; grid-template-columns: minmax(90px, auto) 1fr; gap: 18px; padding: 26px clamp(24px, 5vw, 58px); align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.12); }
.locale-hero aside strong { font-family: Georgia, serif; font-size: clamp(2.2rem, 5vw, 4.8rem); font-weight: 400; line-height: 1; }
.locale-hero aside span { color: rgba(255,248,241,.54); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.locale-link-language { margin-left: 6px; font-size: .55rem; opacity: .62; }
.locale-collection { padding: 90px clamp(24px, 7vw, 108px) 112px; }
.locale-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.locale-card { position: relative; display: flex; min-height: 340px; padding: 28px; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); color: inherit; text-decoration: none; }
.locale-card:hover { background: light-dark(#fff0e6, #211921); }
.locale-card > span { color: var(--coral); font-size: .6rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.locale-card strong { margin-top: 54px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.8rem, 3vw, 3.2rem); font-weight: 400; line-height: 1; letter-spacing: -.035em; }
.locale-card p { margin: 20px 0; color: var(--muted); font-size: .8rem; line-height: 1.85; }
.locale-card em { margin-top: auto; color: var(--ink); font-size: .7rem; font-style: normal; font-weight: 700; }
.locale-card small { margin-top: 10px; color: var(--muted); font-size: .56rem; letter-spacing: .04em; }
.locale-notice { max-width: 900px; margin: 34px 0 0; padding-left: 18px; border-left: 3px solid var(--coral); color: var(--muted); font-size: .78rem; line-height: 1.8; }

.locale-group-highlights { padding: 104px clamp(24px, 7vw, 108px) 112px; background: color-mix(in srgb, var(--group-accent) 5%, var(--oshi-surface)); }
.locale-group-highlights > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .62fr); gap: 36px 72px; margin-bottom: 54px; align-items: end; }
.locale-group-highlights h2,
.locale-group-sources h2 { max-width: 800px; margin: 9px 0 0; font-family: var(--oshi-serif); font-size: clamp(2.4rem, 5vw, 5.3rem); font-weight: 500; line-height: 1.02; letter-spacing: -.045em; }
.locale-group-highlights > header > p,
.locale-group-sources > div > p:last-child { margin: 0; color: var(--oshi-muted); font-size: .84rem; line-height: 1.9; }
.locale-group-highlights > ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); }
.locale-group-highlights > ol > li { display: flex; min-height: 390px; padding: 24px; flex-direction: column; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.locale-group-highlights > ol > li > div { display: flex; justify-content: space-between; color: var(--oshi-muted); font-size: .65rem; letter-spacing: .08em; }
.locale-group-highlights article { display: flex; height: 100%; flex-direction: column; }
.locale-group-highlights h3 { margin: auto 0 18px; font-family: var(--oshi-serif); font-size: clamp(1.45rem, 2.1vw, 2.15rem); font-weight: 600; line-height: 1.12; letter-spacing: -.025em; }
.locale-group-highlights article p { margin: 0 0 26px; color: var(--oshi-muted); font-size: .78rem; line-height: 1.8; }
.locale-group-highlights article a { color: inherit; font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-underline-offset: .25em; }
.locale-group-sources { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: 50px 84px; padding: 100px clamp(24px, 7vw, 108px); background: var(--oshi-ink); color: #fff; }
.locale-group-sources > div > p:last-child { margin-top: 28px; color: rgba(255,255,255,.58); }
.locale-group-sources ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.16); }
.locale-group-sources li { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 18px; padding: 22px 0; align-items: center; border-bottom: 1px solid rgba(255,255,255,.16); }
.locale-group-sources li > span { color: var(--group-accent-2); font-size: .65rem; }
.locale-group-sources li div { display: grid; gap: 7px; }
.locale-group-sources li strong { font-size: .76rem; line-height: 1.5; }
.locale-group-sources li small { color: rgba(255,255,255,.5); font-size: .6rem; letter-spacing: .06em; }
.locale-group-sources li a { color: #fff; font-size: .66rem; font-weight: 800; text-underline-offset: .25em; }
.locale-group-japanese { display: flex; justify-content: space-between; gap: 28px; padding: 36px clamp(24px, 7vw, 108px); align-items: center; background: color-mix(in srgb, var(--group-accent-2) 13%, white); border-top: 1px solid var(--oshi-line); }
.locale-group-japanese > div { display: flex; max-width: 760px; gap: 18px; align-items: flex-start; }
.locale-group-japanese > div > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; background: var(--oshi-ink); color: #fff; font-size: .61rem; font-weight: 900; }
.locale-group-japanese p { margin: 0; color: var(--oshi-muted); font-size: .76rem; line-height: 1.7; }
.locale-group-japanese > a { color: inherit; font-size: .72rem; font-weight: 900; text-underline-offset: .26em; }

.music-disc { position: relative; display: inline-block; width: 29px; height: 29px; margin-right: 10px; vertical-align: middle; border-radius: 50%; background: conic-gradient(from 24deg, #ff623b, #ffcf43, #745cff, #ff623b); box-shadow: inset 0 0 0 7px rgba(8,7,10,.7); }
.music-disc::after { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: var(--cream); }
.music-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); min-height: 520px; background: var(--surface); border-bottom: 1px solid var(--line); }
.music-hero > div:first-child { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 60px clamp(28px, 7vw, 100px); }
.music-hero h1 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3rem, 7vw, 6rem); font-weight: 400; line-height: .98; letter-spacing: -.06em; }
.music-hero p:not(.music-kicker) { max-width: 600px; margin: 24px 0 30px; color: var(--muted); line-height: 1.9; }
.music-record { position: relative; display: grid; place-items: center; overflow: hidden; background: linear-gradient(145deg, light-dark(#efe4dc, #19131d), light-dark(#dad1ee, #0c0a0e)); }
.music-record::before { content: ""; position: absolute; width: min(34vw, 420px); aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle, #161217 0 3px, #302a31 4px 5px, #161217 6px 9px); box-shadow: 0 30px 60px rgba(0,0,0,.35); }
.music-record::after { content: ""; position: absolute; width: 26%; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(#ff623b, #ffc13d, #745cff, #ff623b); box-shadow: inset 0 0 0 24px rgba(20,17,22,.5); }
.music-record span { position: relative; z-index: 1; color: white; font-size: .7rem; letter-spacing: .15em; }
.music-trackline { display: flex; align-items: center; gap: 0; min-height: 48px; overflow-x: auto; background: var(--coral); color: #151117; scrollbar-width: none; }
.music-trackline::-webkit-scrollbar { display: none; }
.music-trackline span { display: inline-flex; align-items: center; flex: 0 0 auto; font-family: "Yu Mincho", Georgia, serif; font-size: .72rem; white-space: nowrap; }
.music-trackline span::before { content: "✦"; margin: 0 18px; font-family: Georgia, serif; font-size: .58rem; }
.music-now { position: relative; padding: 92px clamp(24px, 6vw, 90px) 104px; overflow: hidden; background: #151117; color: var(--cream); }
.music-now::before { content: ""; position: absolute; width: 620px; height: 620px; right: -260px; top: -370px; border-radius: 50%; background: radial-gradient(circle, rgba(116,92,255,.3), transparent 68%); pointer-events: none; }
.music-now .music-kicker { color: #ff9c84; }
.music-now .music-section-head { position: relative; margin-bottom: 38px; }
.music-now .music-section-head h2 { color: var(--cream); font-size: clamp(2.4rem, 5vw, 4.4rem); line-height: 1.04; }
.music-now .music-section-head > p { color: rgba(255,248,241,.56); }
.music-provider-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.music-provider-feature { position: relative; display: grid; grid-template-columns: 86px minmax(0, 1fr) auto 42px; align-items: center; gap: 24px; min-height: 230px; padding: 36px 38px; overflow: hidden; border: 1px solid rgba(255,248,241,.18); border-radius: 24px; background: linear-gradient(135deg, rgba(255,248,241,.075), rgba(255,248,241,.025)); color: var(--cream); text-decoration: none; transition: border-color .2s ease, transform .2s ease; }
.music-provider-feature:hover { transform: translateY(-3px); border-color: rgba(255,98,59,.72); }
.music-provider-feature + .music-provider-feature { margin-top: 18px; }
.music-provider-feature::after { content: ""; position: absolute; width: 220px; height: 220px; right: -96px; bottom: -125px; border: 1px solid rgba(255,248,241,.12); border-radius: 50%; box-shadow: inset 0 0 0 52px rgba(255,248,241,.025); pointer-events: none; }
.music-provider-index { align-self: start; padding-top: 8px; color: rgba(255,248,241,.65); font-family: Georgia, serif; font-size: .62rem; letter-spacing: .08em; }
.music-provider-feature small,
.music-provider-feature strong,
.music-provider-feature em { display: block; }
.music-provider-feature small { margin-bottom: 9px; color: rgba(255,248,241,.65); font-size: .58rem; letter-spacing: .14em; }
.music-provider-feature strong { font-family: Georgia, serif; font-size: clamp(3.8rem, 8vw, 7.2rem); font-weight: 400; line-height: .86; letter-spacing: -.065em; }
.music-provider-feature em { margin-top: 18px; color: rgba(255,248,241,.62); font-size: .72rem; font-style: normal; line-height: 1.7; }
.music-provider-count { position: relative; z-index: 1; padding: 9px 12px; border: 1px solid rgba(255,248,241,.22); border-radius: 999px; color: rgba(255,248,241,.66); font-size: .65rem; white-space: nowrap; }
.music-provider-arrow { position: relative; z-index: 1; font-size: 1.7rem; }
.music-provider-grid .music-provider-feature { grid-template-columns: 62px minmax(0, 1fr) 28px; min-height: 210px; padding: 28px; }
.music-provider-grid .music-provider-feature + .music-provider-feature { margin-top: 0; }
.music-provider-grid .music-provider-feature strong { font-size: clamp(2.7rem, 5vw, 5.1rem); }
.music-provider-grid .music-provider-count { display: none; }

.provider-hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); min-height: 430px; overflow: hidden; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 82% 18%, light-dark(rgba(255,98,59,.25), rgba(255,98,59,.17)), transparent 28%), radial-gradient(circle at 8% 100%, light-dark(rgba(116,92,255,.16), rgba(116,92,255,.14)), transparent 35%), var(--surface); }
.provider-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 58px clamp(28px, 6vw, 82px); }
.provider-hero h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(4rem, 9vw, 7rem); font-weight: 400; line-height: .88; letter-spacing: -.07em; }
.provider-tagline { margin: 24px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.04rem, 2vw, 1.4rem); line-height: 1.75; }
.provider-intro { max-width: 650px; margin: 12px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.8; }
.provider-orbit { display: grid; place-items: center; padding: 38px; }
.provider-orbit-line { position: relative; width: 280px; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; }
.provider-orbit-line::before { content: ""; position: absolute; inset: 46px; border: 1px dashed var(--line); border-radius: 50%; }
.provider-orbit-line strong { position: absolute; inset: 32%; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); font-family: Georgia, serif; font-size: 1.15rem; }
.provider-orbit-line span { position: absolute; padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: .67rem; white-space: nowrap; }
.provider-orbit-line .is-orbit-1 { top: -4px; left: 42%; }
.provider-orbit-line .is-orbit-2 { top: 20%; right: -30px; }
.provider-orbit-line .is-orbit-3 { right: -18px; bottom: 20%; }
.provider-orbit-line .is-orbit-4 { left: 39%; bottom: -4px; }
.provider-orbit-line .is-orbit-5 { top: 23%; left: -30px; }
.provider-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.provider-facts > div { padding: 18px clamp(18px, 4vw, 42px); border-right: 1px solid var(--line); }
.provider-facts > div:last-child { border-right: 0; }
.provider-facts strong { display: block; font-family: Georgia, serif; font-size: 1.6rem; font-weight: 400; }
.provider-facts span { color: var(--muted); font-size: .7rem; }

.culture-route-bridge { display: grid; grid-template-columns: minmax(230px, .55fr) minmax(0, 1.45fr); padding: clamp(54px, 7vw, 94px) clamp(20px, 6vw, 90px); gap: clamp(30px, 5vw, 74px); border-bottom: 1px solid #c9c2b8; background: #eee9df; color: #19161c; }
.culture-route-bridge > header > p { margin: 0 0 13px; color: #a54330; font-size: .57rem; font-weight: 900; letter-spacing: .15em; }
.culture-route-bridge > header h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; line-height: 1.03; letter-spacing: -.045em; }
.culture-route-bridge > header > span { display: block; max-width: 440px; margin-top: 23px; color: #615a60; font-size: .7rem; line-height: 1.85; }
.culture-route-bridge > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #bdb5aa; border-left: 1px solid #bdb5aa; }
.culture-route-bridge > div > a { display: flex; min-width: 0; min-height: 260px; padding: 22px; flex-direction: column; border-right: 1px solid #bdb5aa; border-bottom: 1px solid #bdb5aa; background: #f8f4eb; color: #19161c; text-decoration: none; }
.culture-route-bridge a small { color: #a54330; font-size: .53rem; font-weight: 900; letter-spacing: .09em; }
.culture-route-bridge a strong { margin-top: 36px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.35rem, 2.2vw, 2.35rem); font-weight: 400; line-height: 1.1; }
.culture-route-bridge a p { margin: 15px 0 22px; color: #625b60; font-family: "Yu Mincho", Georgia, serif; font-size: .68rem; line-height: 1.8; }
.culture-route-bridge a em { margin-top: auto; font-size: .59rem; font-style: normal; font-weight: 900; }

/* A shared, early-page choice of contextual destinations across CREDISC and OSHiSTORY. */
.page-next {
  --next-accent: #ff7657;
  display: grid;
  grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
  gap: clamp(28px, 5vw, 76px);
  padding: clamp(48px, 6vw, 82px) clamp(20px, 6vw, 90px);
  border-bottom: 1px solid rgba(255,255,255,.13);
  background: #171319;
  color: #fff8f1;
}
.page-next.is-oshistory { --next-accent: var(--group-accent, var(--audition-accent, var(--person-accent, #a987ff))); background: #211827; }
.page-next-intro { align-self: start; }
.page-next-intro > p { margin: 0 0 12px; color: var(--next-accent); font-size: .57rem; font-weight: 900; letter-spacing: .15em; }
.page-next-intro h2 { max-width: 430px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; line-height: 1.02; letter-spacing: -.04em; }
.page-next.is-oshistory .page-next-intro h2 { font-family: "Arial Black", "Hiragino Kaku Gothic ProN", sans-serif; letter-spacing: -.06em; }
.page-next-intro > span { display: block; max-width: 430px; margin-top: 22px; color: rgba(255,248,241,.62); font-size: .72rem; line-height: 1.85; }
.page-next-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.page-next-card { position: relative; display: flex; min-width: 0; min-height: 255px; padding: 22px; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.17); background: rgba(255,255,255,.055); color: inherit; text-decoration: none; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.page-next-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--next-accent); transform: scaleY(.18); transform-origin: bottom; transition: transform .18s ease; }
.page-next-card:hover,
.page-next-card:focus-visible { border-color: color-mix(in srgb, var(--next-accent) 70%, white); background: rgba(255,255,255,.095); transform: translateY(-4px); }
.page-next-card:hover::before,
.page-next-card:focus-visible::before { transform: scaleY(1); }
.page-next-card:focus-visible { outline: 3px solid color-mix(in srgb, var(--next-accent) 75%, white); outline-offset: 3px; }
.page-next-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: rgba(255,248,241,.57); font-size: .5rem; font-style: normal; letter-spacing: .1em; }
.page-next-card-meta b { color: var(--next-accent); font-size: inherit; }
.page-next-card-meta em { font-style: normal; text-align: right; }
.page-next-card > strong { margin-top: 38px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.25rem, 2vw, 2rem); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; overflow-wrap: anywhere; }
.page-next.is-oshistory .page-next-card > strong { font-family: "Arial Black", "Hiragino Kaku Gothic ProN", sans-serif; font-size: clamp(1.15rem, 1.8vw, 1.75rem); letter-spacing: -.045em; }
.page-next-card > p { margin: 14px 0 22px; color: rgba(255,248,241,.65); font-size: .65rem; line-height: 1.75; }
.page-next-card > small { display: flex; margin-top: auto; align-items: center; justify-content: space-between; gap: 14px; color: #fff; font-size: .59rem; font-weight: 900; }
.page-next-card > small i { color: var(--next-accent); font-size: 1.15rem; font-style: normal; }

@media (max-width: 980px) {
  .culture-route-bridge { grid-template-columns: 1fr; }
  .page-next { grid-template-columns: 1fr; }
  .page-next-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .7fr); column-gap: 28px; }
  .page-next-intro > p { grid-column: 1 / -1; }
  .page-next-intro > span { margin-top: 0; align-self: end; }
}

@media (max-width: 700px) {
  .culture-route-bridge { padding: 54px 18px 62px; }
  .culture-route-bridge > div { grid-template-columns: 1fr; }
  .culture-route-bridge > div > a { min-height: 230px; }
  .page-next { gap: 30px; padding-right: 0; padding-left: 18px; }
  .page-next-intro { display: block; padding-right: 18px; }
  .page-next-intro > span { margin-top: 18px; }
  .page-next-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(78vw, 1fr); gap: 10px; padding: 2px 18px 12px 0; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; scrollbar-width: thin; }
  .page-next-card { min-height: 235px; scroll-snap-align: start; }
}

@media (prefers-reduced-motion: reduce) {
  .page-next-card,
  .page-next-card::before { transition: none; }
  .page-next-card:hover,
  .page-next-card:focus-visible { transform: none; }
}
.provider-main { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(310px, .7fr); gap: 36px; padding: 46px clamp(24px, 5vw, 70px); }
.provider-section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.provider-section-head h2 { font-size: 1.8rem; }
.provider-section-head > p { max-width: 240px; margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.6; text-align: right; }
.provider-list { border-top: 1px solid var(--line); }
.provider-work { display: grid; grid-template-columns: 32px minmax(0, 1.2fr) minmax(130px, .7fr); align-items: center; gap: 14px; width: 100%; min-height: 78px; padding: 12px 5px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.provider-work:hover,
.provider-work[aria-selected="true"] { padding-inline: 14px; background: var(--surface); }
.provider-work[hidden] { display: none; }
.provider-number { color: var(--muted); font-family: Georgia, serif; font-size: .75rem; }
.provider-work strong,
.provider-work small { display: block; }
.provider-work small { margin-top: 4px; color: var(--muted); font-size: .68rem; }
.provider-work-action { display: none; }
.provider-role { color: var(--muted); font-size: .7rem; }
.provider-role small { margin: 0 0 4px; }
.provider-credit { position: sticky; top: 16px; align-self: start; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); box-shadow: 0 20px 45px light-dark(rgba(45,31,26,.09), rgba(0,0,0,.25)); }
.provider-credit-handle,
.provider-credit-close,
.provider-credit-nav,
.provider-credit-backdrop { display: none; }
.provider-credit-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 20px; background: #151117; color: var(--cream); text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; }
.provider-credit-bar small { color: rgba(255,248,241,.58); text-transform: none; letter-spacing: 0; }
.provider-proof { padding: 22px 20px; }
.provider-proof[hidden] { display: none; }
.provider-proof h3 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: 1.65rem; font-weight: 400; }
.provider-proof > p { margin: 6px 0 20px; color: var(--muted); font-size: .74rem; }
.provider-connection { display: grid; gap: 5px; margin: 0 0 20px; padding: 12px 14px; border: 1px solid light-dark(rgba(150,61,43,.22), rgba(255,156,132,.2)); border-radius: 12px; background: light-dark(rgba(255,98,59,.075), rgba(255,98,59,.09)); }
.provider-connection small { color: var(--muted); font-size: .6rem; letter-spacing: .08em; }
.provider-connection strong { font-family: "Yu Mincho", Georgia, serif; font-size: .76rem; font-weight: 600; line-height: 1.65; }
.provider-video { display: grid; grid-template-columns: minmax(0, 1fr) auto; margin: 0 0 20px; overflow: hidden; border-radius: 13px; background: #151117; color: var(--cream); }
.provider-video iframe { grid-column: 1 / -1; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #000; }
.provider-video-trigger { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 12px; min-height: 78px; padding: 12px 16px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.provider-video-trigger:hover .provider-video-play { transform: scale(1.08); background: var(--coral); }
.provider-video-play { display: grid; width: 38px; height: 38px; place-items: center; padding-left: 2px; border-radius: 50%; background: rgba(255,255,255,.13); transition: transform .2s ease, background .2s ease; }
.provider-video-trigger small,
.provider-video-trigger strong,
.provider-video-trigger em { display: block; }
.provider-video-trigger small { margin: 0 0 3px; color: rgba(255,248,241,.55); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.provider-video-trigger strong { font-size: .76rem; }
.provider-video-trigger em { margin-top: 3px; color: rgba(255,248,241,.62); font-size: .61rem; font-style: normal; }
.provider-video-link { display: grid; align-items: center; padding: 0 15px; border-left: 1px solid rgba(255,255,255,.12); color: rgba(255,248,241,.72); font-size: .62rem; text-decoration: none; white-space: nowrap; }
.provider-video-link:hover { color: var(--cream); }
.provider-proof h4 { margin: 16px 0 7px; color: var(--muted); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.provider-proof blockquote { margin: 0; padding: 12px; border-left: 3px solid var(--coral); background: var(--paper); font-family: "Yu Mincho", Georgia, serif; font-size: .8rem; line-height: 1.6; }
.provider-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.provider-tags span { padding: 6px 9px; border-radius: 999px; background: var(--paper); font-size: .68rem; }
.provider-proof-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 20px; }
.provider-proof-grid > div { padding: 11px; border: 1px solid var(--line); border-radius: 10px; }
.provider-proof-grid small { display: block; margin-bottom: 4px; color: var(--muted); font-size: .6rem; }
.provider-proof-grid strong,
.provider-proof-grid a { font-size: .72rem; font-weight: 700; }
.provider-network { position: relative; padding: 72px clamp(24px, 5vw, 70px) 88px; overflow: hidden; background: #151117; color: var(--cream); }
.provider-network::before { content: ""; position: absolute; width: 520px; height: 520px; right: -210px; top: -290px; border-radius: 50%; background: radial-gradient(circle, rgba(116,92,255,.25), transparent 68%); pointer-events: none; }
.provider-network .provider-kicker { color: #ff9c84; }
.provider-network-head { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 40px; }
.provider-network h2 { color: var(--cream); }
.provider-network-head p:not(.provider-kicker) { max-width: 620px; margin: 12px 0 0; color: rgba(255,248,241,.58); font-size: .8rem; line-height: 1.8; }
.provider-network-count { display: grid; grid-template-columns: auto auto; align-items: baseline; gap: 9px; padding: 0 0 5px; color: rgba(255,248,241,.56); }
.provider-network-count strong { color: var(--cream); font-family: Georgia, serif; font-size: 2.4rem; font-weight: 400; line-height: 1; }
.provider-network-count span { font-size: .66rem; letter-spacing: .08em; }
.provider-timeline { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 44px 0 0; padding: 0; list-style: none; }
.provider-timeline::before { content: ""; position: absolute; top: 43px; right: 0; left: 0; height: 1px; background: linear-gradient(90deg, var(--coral), rgba(255,248,241,.38) 16%, rgba(255,248,241,.16) 88%, transparent); }
.provider-timeline-item { position: relative; min-width: 0; padding-right: 14px; }
.provider-timeline-item time { display: block; color: rgba(255,248,241,.74); font-family: Georgia, serif; font-size: .78rem; letter-spacing: .05em; }
.provider-timeline-node { position: relative; z-index: 1; display: block; width: 11px; height: 11px; margin-top: 20px; border: 3px solid #151117; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 1px rgba(255,248,241,.45), 0 0 18px rgba(255,98,59,.42); }
.provider-timeline-card { min-height: 142px; margin-top: 25px; padding: 17px 16px; border: 1px solid rgba(255,248,241,.14); border-radius: 14px; background: rgba(255,248,241,.055); }
.provider-timeline-card > span { display: block; color: rgba(255,248,241,.65); font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; }
.provider-timeline-card h3 { margin: 20px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: .84rem; font-weight: 400; line-height: 1.55; }
.provider-timeline-card p { margin: 11px 0 0; color: rgba(255,248,241,.52); font-size: .65rem; line-height: 1.5; }
.provider-timeline-card p strong { color: rgba(255,248,241,.82); font-weight: 600; }

@media (max-width: 900px) {
  .culture-discovery-hero { grid-template-columns: 1fr; min-height: 0; }
  .culture-service-grid { grid-template-columns: 1fr; }
  .culture-search-panel { max-width: 720px; }
  .culture-path-grid,
  .culture-story-grid { grid-template-columns: 1fr; }
  .culture-path-card { min-height: 250px; }
  .culture-story-grid > a { min-height: 220px; }
  .culture-stories-index-grid,
  .culture-story-entity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .culture-story-editorial-grid { grid-template-columns: 1fr; }
  .culture-story-editorial-card { min-height: 0; }
  .culture-story-editorial > header { grid-template-columns: 1fr; align-items: start; }
  .culture-story-section-head { grid-template-columns: 1fr; align-items: start; }
  .culture-story-audition-grid > a { grid-template-columns: 1fr; }
  .culture-story-audition-grid dl { width: max-content; }
  .culture-hero,
  .music-hero,
  .provider-hero { grid-template-columns: 1fr; }
  .locale-hero { grid-template-columns: 1fr; }
  .locale-hero aside { grid-template-columns: repeat(3, 1fr); }
  .locale-hero aside > div { grid-template-columns: 1fr; padding: 24px; }
  .locale-card-grid { grid-template-columns: 1fr; }
  .locale-group-highlights > header,
  .locale-group-sources { grid-template-columns: 1fr; }
  .locale-group-highlights > ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .culture-rings { width: min(78vw, 430px); margin: -30px auto 60px; }
  .music-record { min-height: 360px; }
  .music-record::before { width: 330px; }
  .culture-directory-grid { grid-template-columns: repeat(2, 1fr); }
  .music-provider-grid { grid-template-columns: 1fr; }
  .music-provider-feature { grid-template-columns: 70px minmax(0, 1fr) 34px; }
  .music-provider-count { display: none; }
  .provider-main { grid-template-columns: 1fr; }
  body.credit-sheet-open { overflow: hidden; }
  .provider-work-action { display: inline-flex; align-items: center; gap: 6px; margin-top: 9px; color: light-dark(#963d2b, #ff9c84); font-size: .62rem; font-weight: 700; }
  .provider-credit { --sheet-drag: 0px; position: fixed; z-index: 1001; top: auto; right: 0; bottom: 0; left: 0; display: flex; width: min(100%, 720px); height: min(86dvh, 760px); margin: 0 auto; overflow: hidden; flex-direction: column; border: 1px solid var(--line); border-bottom: 0; border-radius: 24px 24px 0 0; visibility: hidden; transform: translateY(calc(100% + 24px)); transition: transform .24s ease, visibility 0s linear .24s; }
  .provider-credit.is-open { visibility: visible; transform: translateY(var(--sheet-drag)); transition-delay: 0s; }
  .provider-credit.is-dragging { transition: none; }
  .provider-credit-handle { z-index: 5; display: grid; height: 24px; flex: 0 0 24px; place-items: center; background: var(--surface); cursor: grab; touch-action: none; }
  .provider-credit-handle span { width: 42px; height: 4px; border-radius: 999px; background: var(--line); }
  .provider-credit-bar { z-index: 4; flex: 0 0 auto; padding: 13px 16px; box-shadow: 0 1px 0 rgba(255,255,255,.08); }
  .provider-credit-bar small { display: none; }
  .provider-credit-close { display: grid; width: 34px; height: 34px; place-items: center; padding: 0; border: 1px solid rgba(255,248,241,.2); border-radius: 50%; background: transparent; color: var(--cream); cursor: pointer; font-size: 1.2rem; line-height: 1; }
  .provider-proof { min-height: 0; overflow-y: auto; flex: 1 1 auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .provider-credit-nav { z-index: 4; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; flex: 0 0 auto; padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: var(--line); }
  .provider-credit-nav button { min-height: 52px; padding: 0 16px; border: 0; background: var(--surface); color: var(--ink); cursor: pointer; font-size: .72rem; font-weight: 700; }
  .provider-credit-nav button:first-child { text-align: left; }
  .provider-credit-nav button:last-child { text-align: right; }
  .provider-credit-nav button:disabled { color: var(--muted); cursor: default; opacity: .45; }
  .provider-credit-backdrop { position: fixed; z-index: 1000; inset: 0; display: block; border: 0; background: rgba(8,6,9,.56); opacity: 0; backdrop-filter: blur(3px); transition: opacity .2s ease; }
  .provider-credit-backdrop.is-visible { opacity: 1; }
  .provider-credit-backdrop[hidden] { display: none; }
  .provider-orbit { min-height: 330px; }
  .provider-timeline { grid-template-columns: none; grid-auto-columns: minmax(200px, 34vw); grid-auto-flow: column; margin-right: calc(clamp(24px, 5vw, 70px) * -1); padding-right: clamp(24px, 5vw, 70px); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: rgba(255,248,241,.28) transparent; }
  .provider-timeline-item { scroll-snap-align: start; }
}

@media (max-width: 580px) {
  .culture-bar nav,
  .provider-bar nav span,
  .music-bar nav strong { display: none; }
  .culture-hero-copy,
  .music-hero > div:first-child,
  .provider-hero-copy { padding: 46px 21px 28px; }
  .culture-hero h1 { font-size: 3.45rem; }
  .culture-discovery-hero { gap: 42px; padding: 56px 18px 64px; }
  .culture-discovery-copy h1 { font-size: 3.35rem; }
  .culture-search-panel { padding: 20px 16px; border-radius: 16px; }
  .culture-search-field { grid-template-columns: 20px minmax(0, 1fr); }
  .culture-search-field kbd { display: none; }
  .culture-search-result { grid-template-columns: 58px minmax(0, 1fr) auto; }
  .culture-start-paths,
  .culture-story-preview,
  .culture-services { padding: 58px 18px 66px; }
  .culture-service-grid { grid-template-columns: 1fr; }
  .culture-service-card { min-height: 245px; }
  .culture-stories-hero { padding: 58px 18px 64px; }
  .culture-stories-hero h1 { font-size: 3.45rem; }
  .culture-stories-hero > div { align-items: start; flex-direction: column; }
  .culture-stories-hero > div > span { text-align: left; }
  .culture-stories-list,
  .culture-story-section { padding: 58px 18px 66px; }
  .culture-story-editorial { padding: 58px 18px 66px; }
  .culture-story-editorial > header { gap: 20px; }
  .culture-story-editorial > header > div { padding-left: 50px; }
  .culture-story-editorial > header > div > span { font-size: 2.2rem; }
  .culture-stories-index-grid,
  .culture-story-entity-grid,
  .culture-story-work-grid,
  .culture-story-music-grid,
  .culture-story-related > div { grid-template-columns: 1fr; }
  .culture-story-related { padding: 58px 18px 66px; }
  .culture-story-related > header { grid-template-columns: 1fr; align-items: start; gap: 20px; }
  .culture-story-index-card { min-height: 330px; }
  .culture-story-finder { grid-template-columns: 1fr; align-items: stretch; }
  .culture-story-local-nav > div:last-child { min-height: 48px; padding: 0 12px; }
  .culture-story-local-nav button { margin-left: 8px; }
  .culture-story-hero { padding: 58px 18px 66px; }
  .culture-story-hero h1 { font-size: 2.35rem; }
  .culture-story-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .culture-story-section-head > div { padding-left: 50px; }
  .culture-story-section-head > div > span { font-size: 2.2rem; }
  .culture-story-audition-grid dl { width: 100%; }
  .culture-story-audition-grid dl > div { min-width: 0; flex: 1; }
  .culture-story-audition-grid em { white-space: normal; }
  .culture-story-music-card header > a { position: static; display: inline-block; margin-top: 20px; }
  .culture-story-reading-note { padding: 66px 18px; }
  .culture-rings { margin-top: 0; }
  .culture-directories,
  .music-now { padding: 58px 18px 66px; }
  .culture-section-head,
  .music-section-head,
  .provider-section-head { align-items: start; flex-direction: column; }
  .culture-directory-grid { grid-template-columns: 1fr; }
  .culture-directory.is-live { grid-column: auto; }
  .music-trackline { min-height: 44px; }
  .music-provider-feature { grid-template-columns: 1fr 24px; gap: 14px; min-height: 210px; padding: 26px 22px; }
  .music-provider-index { grid-column: 1 / -1; padding: 0; }
  .music-provider-feature strong { font-size: 3.8rem; }
  .music-provider-feature em { font-size: .66rem; }
  .provider-hero h1 { font-size: 4.2rem; }
  .provider-orbit { transform: scale(.9); margin: -10px 0; }
  .provider-facts > div { padding: 14px 12px; }
  .provider-facts span { line-height: 1.4; }
  .provider-main { padding: 36px 18px; }
  .provider-work { grid-template-columns: 26px minmax(0, 1fr); }
  .provider-role { display: none; }
  .provider-section-head > p { max-width: none; text-align: left; }
  .provider-video { grid-template-columns: 1fr; }
  .provider-video-link { min-height: 42px; border-top: 1px solid rgba(255,255,255,.12); border-left: 0; }
  .provider-network { padding: 54px 18px 62px; }
  .provider-network-head { grid-template-columns: 1fr; gap: 24px; }
  .provider-network-count { justify-content: start; }
  .provider-timeline { display: block; margin: 36px 0 0; padding: 0 0 0 28px; overflow: visible; }
  .provider-timeline::before { top: 6px; right: auto; bottom: 0; left: 5px; width: 1px; height: auto; background: linear-gradient(180deg, var(--coral), rgba(255,248,241,.22) 88%, transparent); }
  .provider-timeline-item { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; padding: 0 0 22px; }
  .provider-timeline-item time { padding-top: 1px; }
  .provider-timeline-node { position: absolute; left: -28px; top: 0; margin: 0; }
  .provider-timeline-card { min-height: 0; margin: 0; }
  .provider-timeline-card h3 { margin-top: 13px; }
  .culture-footer,
  .music-footer,
  .provider-footer { flex-direction: column; padding: 20px 18px; }
  .privacy-hero { grid-template-columns: 1fr; gap: 24px; padding: 58px 20px 46px; }
  .privacy-hero .culture-kicker { grid-column: auto; }
  .privacy-hero h1 { font-size: 3.35rem; }
  .privacy-sections { padding: 20px 20px 58px; }
  .privacy-sections article { grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 28px 0; }
  .privacy-links { grid-template-columns: 1fr; gap: 24px; margin: 0 20px; padding: 38px 0; }
  .privacy-updated { padding: 26px 20px 54px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* OSHiSTORY — idol history */
.idols-home,
.idol-group,
.idol-person,
.idol-audition,
.idol-colors,
.idol-discover-page,
.idols-journeys,
.idols-history,
.idol-history-hub,
.idol-journey-case,
.audition-person-page,
.idol-crossovers,
.idol-lineage,
.idols-branches {
  color-scheme: light;
  --oshi-ink: #17131f;
  --oshi-paper: #f5f0ff;
  --oshi-surface: #fffdf8;
  --oshi-line: #d9cee7;
  --oshi-violet: #6947d8;
  --oshi-pink: #ff5ba7;
  --oshi-lime: #eaff62;
  --oshi-cyan: #63e4ef;
  background: var(--oshi-paper);
  color: var(--oshi-ink);
}

.idols-bar {
  position: sticky;
  top: 0;
  z-index: 100;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(18px, 3vw, 44px);
  min-height: 68px;
  padding: 0 clamp(20px, 4vw, 54px);
  background: var(--oshi-ink, #17131f);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255,255,255,.09);
}

.idols-brand { color: #fff; font-size: .92rem; font-weight: 900; letter-spacing: .16em; text-decoration: none; white-space: nowrap; }
.idols-brand span { color: var(--oshi-lime, #eaff62); }
.idols-primary-nav { display: flex; min-width: 0; align-items: stretch; justify-content: center; gap: clamp(14px, 2vw, 28px); color: rgba(255,255,255,.58); font-size: .72rem; }
.idols-primary-nav a { position: relative; display: inline-flex; min-height: 68px; align-items: center; gap: 5px; color: inherit; font-weight: 800; text-decoration: none; white-space: nowrap; }
.idols-primary-nav a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--oshi-lime, #eaff62); content: ""; opacity: 0; transform: scaleX(.2); transition: opacity .18s ease, transform .18s ease; }
.idols-primary-nav a:hover,
.idols-primary-nav a:focus-visible { color: #fff; }
.idols-primary-nav a[aria-current="location"] { color: #fff; }
.idols-primary-nav a[aria-current="location"]::after { opacity: 1; transform: scaleX(1); }
.idols-nav-language { display: inline-flex; min-width: 21px; min-height: 16px; padding: 0 4px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: rgba(255,255,255,.72); font-size: .45rem; line-height: 1; letter-spacing: .08em; }
.idols-culture-link { padding: 7px 10px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: rgba(255,255,255,.72); font-size: .58rem; font-weight: 900; letter-spacing: .09em; text-decoration: none; white-space: nowrap; }
.idols-culture-link:hover,
.idols-culture-link:focus-visible { border-color: var(--oshi-lime, #eaff62); color: #fff; }
.idols-breadcrumb { display: flex; min-height: 39px; padding: 0 clamp(20px, 4vw, 54px); align-items: center; gap: 8px; overflow-x: auto; border-bottom: 1px solid var(--oshi-line, #d9cee7); background: var(--oshi-surface, #fffdf8); color: #716a78; font-size: .6rem; scrollbar-width: none; white-space: nowrap; }
.idols-breadcrumb::-webkit-scrollbar { display: none; }
.idols-breadcrumb a { color: inherit; text-decoration: none; }
.idols-breadcrumb a:hover,
.idols-breadcrumb a:focus-visible { color: var(--oshi-ink, #17131f); text-decoration: underline; text-underline-offset: 3px; }
.idols-breadcrumb strong { max-width: min(62vw, 620px); overflow: hidden; color: var(--oshi-ink, #17131f); font-weight: 800; text-overflow: ellipsis; }
.idols-kicker { margin: 0 0 14px; color: #6944ec; font-size: .67rem; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.idol-research-status { display: flex; width: fit-content; max-width: 100%; margin: 24px 0 0; align-items: center; gap: 12px; flex-wrap: wrap; }
.idol-research-status strong { display: inline-flex; min-height: 30px; padding: 0 11px; align-items: center; gap: 7px; border: 1px solid currentColor; border-radius: 999px; font-size: .54rem; letter-spacing: .1em; }
.idol-research-status strong span { font-size: .62rem; }
.idol-research-status small { color: #6d6574; font-size: .58rem; font-weight: 700; line-height: 1.55; }
.idol-research-status.is-researched strong { border-color: color-mix(in srgb, var(--person-accent, var(--oshi-violet)) 52%, #17131f); background: color-mix(in srgb, var(--person-accent, var(--oshi-violet)) 18%, #fff); color: #322447; }
.idol-research-status.is-record strong { border-color: #a39aa9; background: rgba(255,255,255,.6); color: #4c4553; }

.idols-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr);
  min-height: 620px;
  overflow: hidden;
  border-bottom: 1px solid var(--oshi-line);
  background:
    linear-gradient(135deg, rgba(123,92,255,.12), transparent 42%),
    radial-gradient(circle at 90% 10%, rgba(255,91,167,.21), transparent 28%),
    var(--oshi-surface);
}

.idols-hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 70px clamp(28px, 7vw, 105px); }
.idols-hero h1 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3.2rem, 7vw, 6.5rem); font-weight: 900; line-height: .92; letter-spacing: -.075em; }
.idols-hero h1 em { position: relative; color: var(--oshi-violet); font-style: normal; }
.idols-hero h1 em::after { content: ""; position: absolute; right: 0; bottom: -.03em; left: 0; height: .12em; background: var(--oshi-lime); transform: rotate(-1.4deg); }
.idols-hero-copy > p:not(.idols-kicker) { max-width: 630px; margin: 28px 0 32px; color: #625a6b; font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; line-height: 1.9; }
.idols-primary { display: inline-flex; align-items: center; gap: 26px; min-height: 52px; padding: 0 21px; border: 2px solid var(--oshi-ink); border-radius: 999px; background: var(--oshi-ink); color: #fff; font-size: .78rem; font-weight: 800; text-decoration: none; box-shadow: 5px 5px 0 var(--oshi-lime); transition: transform .18s ease, box-shadow .18s ease; }
.idols-primary:hover { transform: translate(2px, 2px); box-shadow: 3px 3px 0 var(--oshi-lime); }

.idols-stage { position: relative; min-height: 520px; overflow: hidden; background: var(--oshi-ink); }
.idols-stage::before { content: ""; position: absolute; inset: 8% -32% -18% 14%; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: inset 0 0 0 88px rgba(255,255,255,.025), inset 0 0 0 89px rgba(255,255,255,.1); }
.idols-stage::after { content: "OSHiSTORY"; position: absolute; right: -22px; bottom: 32px; color: rgba(255,255,255,.07); font-family: "Arial Black", sans-serif; font-size: clamp(3rem, 7vw, 7rem); font-weight: 900; letter-spacing: -.06em; transform: rotate(-90deg); transform-origin: right bottom; }
.idols-stage-card { position: absolute; display: grid; grid-template-columns: 1fr auto; align-items: end; width: min(72%, 350px); aspect-ratio: 1.18; padding: 26px; border-radius: 24px; color: var(--oshi-ink); box-shadow: 0 28px 60px rgba(0,0,0,.36); }
.idols-stage-card::before,
.idols-stage-card::after { content: ""; position: absolute; top: 23%; width: 26px; height: 26px; border-radius: 50%; background: var(--oshi-ink); }
.idols-stage-card::before { left: -13px; }
.idols-stage-card::after { right: -13px; }
.idols-stage-card span { grid-column: 1 / -1; align-self: start; font-size: .65rem; font-weight: 900; letter-spacing: .18em; }
.idols-stage-card strong { font-family: "Arial Black", sans-serif; font-size: clamp(5rem, 11vw, 8rem); line-height: .72; letter-spacing: -.09em; }
.idols-stage-card small { padding-bottom: 3px; font-size: .57rem; font-weight: 900; letter-spacing: .12em; line-height: 1.6; }
.idols-stage-card.is-back { top: 17%; left: 14%; background: var(--oshi-pink); transform: rotate(-8deg); }
.idols-stage-card.is-front { right: 11%; bottom: 13%; background: var(--oshi-lime); transform: rotate(5deg); }
.idols-stage-star { position: absolute; top: 12%; right: 12%; display: grid; width: 68px; height: 68px; place-items: center; border-radius: 50%; background: var(--oshi-cyan); color: var(--oshi-ink); font-size: 1.8rem; }

.idols-name-line { display: flex; align-items: center; min-height: 48px; overflow-x: auto; background: var(--oshi-violet); color: #fff; scrollbar-width: none; }
.idols-name-line::-webkit-scrollbar { display: none; }
.idols-name-line span { display: inline-flex; align-items: center; flex: 0 0 auto; font-size: .68rem; font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
.idols-name-line span::before { content: "✦"; margin: 0 20px; color: var(--oshi-lime); }

.idols-journey-entry { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); align-items: center; gap: 58px; padding: 72px clamp(24px, 6vw, 90px); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.idols-journey-entry h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.5rem, 5vw, 4.8rem); font-weight: 900; line-height: .98; letter-spacing: -.065em; }
.idols-entry-stack { display: grid; gap: 18px; }
.idols-history-entry-card { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 28px; padding: 30px 34px; overflow: hidden; border: 2px solid var(--oshi-ink); border-radius: 25px; background: var(--oshi-violet); color: #fff; text-decoration: none; box-shadow: 8px 8px 0 var(--oshi-pink); transition: transform .18s ease, box-shadow .18s ease; }
.idols-history-entry-card:hover { transform: translate(2px, 2px); box-shadow: 5px 5px 0 var(--oshi-pink); }
.idols-history-entry-card::after { content: "↗"; position: absolute; right: 16px; bottom: -32px; color: rgba(255,255,255,.09); font-family: "Arial Black", sans-serif; font-size: 8rem; }
.idols-history-entry-card > span { color: var(--oshi-lime); font-family: "Arial Black", sans-serif; font-size: clamp(4.8rem, 10vw, 8.5rem); line-height: .72; letter-spacing: -.1em; }
.idols-history-entry-card strong { display: block; font-size: .65rem; letter-spacing: .16em; }
.idols-history-entry-card p { max-width: 520px; margin: 12px 0 18px; color: rgba(255,255,255,.88); font-size: .77rem; line-height: 1.75; }
.idols-history-entry-card em { position: relative; z-index: 1; display: inline-flex; gap: 18px; align-items: center; padding-bottom: 4px; border-bottom: 2px solid var(--oshi-lime); color: var(--oshi-lime); font-size: .72rem; font-style: normal; font-weight: 900; }
.idols-journey-entry-card { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 28px; padding: 30px 34px; overflow: hidden; border: 2px solid var(--oshi-ink); border-radius: 25px; background: var(--oshi-lime); box-shadow: 8px 8px 0 var(--oshi-violet); }
.idols-journey-entry-card::after { content: "→"; position: absolute; right: 18px; bottom: -28px; color: rgba(23,19,31,.08); font-family: "Arial Black", sans-serif; font-size: 8rem; }
.idols-journey-entry-card > span { font-family: "Arial Black", sans-serif; font-size: clamp(4.8rem, 10vw, 8.5rem); line-height: .72; letter-spacing: -.1em; }
.idols-journey-entry-card strong { display: block; font-size: .65rem; letter-spacing: .16em; }
.idols-journey-entry-card p { max-width: 520px; margin: 12px 0 18px; color: #514b32; font-size: .77rem; line-height: 1.75; }
.idols-journey-entry-card a { position: relative; z-index: 1; display: inline-flex; gap: 18px; align-items: center; padding-bottom: 4px; border-bottom: 2px solid var(--oshi-ink); font-size: .72rem; font-weight: 900; text-decoration: none; }
.idols-color-entry-card { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 28px; padding: 30px 34px; overflow: hidden; border: 2px solid var(--oshi-ink); border-radius: 25px; background: var(--oshi-ink); color: #fff; text-decoration: none; box-shadow: 8px 8px 0 var(--oshi-cyan); transition: transform .18s ease, box-shadow .18s ease; }
.idols-color-entry-card::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 12px; background: linear-gradient(#e83f4f 0 14%, #f28b2a 14% 28%, #f0d64e 28% 42%, #3aaa6c 42% 56%, #56c8e7 56% 70%, #8b5bb5 70% 84%, #f39ac1 84%); }
.idols-color-entry-card::after { content: "●"; position: absolute; right: 22px; bottom: -45px; color: rgba(255,255,255,.06); font-size: 9rem; }
.idols-color-entry-card:hover { transform: translate(2px, 2px); box-shadow: 5px 5px 0 var(--oshi-cyan); }
.idols-color-entry-card > span { color: var(--oshi-cyan); font-family: "Arial Black", sans-serif; font-size: clamp(4.8rem, 10vw, 8.5rem); line-height: .72; letter-spacing: -.1em; }
.idols-color-entry-card strong { display: block; font-size: .65rem; letter-spacing: .16em; }
.idols-color-entry-card p { max-width: 520px; margin: 12px 0 18px; color: rgba(255,255,255,.68); font-size: .77rem; line-height: 1.75; }
.idols-color-entry-card em { position: relative; z-index: 1; display: inline-flex; gap: 18px; align-items: center; padding-bottom: 4px; border-bottom: 2px solid var(--oshi-cyan); color: var(--oshi-cyan); font-size: .72rem; font-style: normal; font-weight: 900; }
.idols-audition-entry-card { background: var(--oshi-pink); color: var(--oshi-ink); box-shadow: 8px 8px 0 var(--oshi-violet); }
.idols-audition-entry-card:hover { box-shadow: 5px 5px 0 var(--oshi-violet); }
.idols-audition-entry-card > span,
.idols-audition-entry-card em { color: var(--oshi-ink); border-color: var(--oshi-ink); }
.idols-audition-entry-card p { color: rgba(23,19,31,.82); }
.idols-branch-entry-card { background: var(--oshi-ink); box-shadow: 8px 8px 0 var(--oshi-cyan); }
.idols-branch-entry-card:hover { box-shadow: 5px 5px 0 var(--oshi-cyan); }
.idols-branch-entry-card > span,
.idols-branch-entry-card em { color: var(--oshi-cyan); border-color: var(--oshi-cyan); }
.idols-branch-entry-card p { color: rgba(255,255,255,.7); }

.idols-stories { padding: 90px clamp(24px, 6vw, 90px) 108px; background: var(--oshi-paper); }
.idols-section-head { display: flex; align-items: end; justify-content: space-between; gap: 34px; margin-bottom: 38px; }
.idols-section-head h2,
.idol-section-heading h2,
.idol-history-head h2,
.idols-manifesto h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.2rem, 5vw, 4.5rem); font-weight: 900; line-height: 1; letter-spacing: -.06em; }
.idols-section-head > p { max-width: 430px; margin: 0; color: #665d70; font-size: .82rem; line-height: 1.85; }
.idols-group-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.idols-group-card { position: relative; display: grid; grid-template-columns: 76px minmax(0, 1fr) auto 30px; align-items: center; gap: 22px; min-height: 250px; padding: 30px; overflow: hidden; border: 1px solid var(--oshi-line); border-radius: 25px; background: var(--oshi-surface); color: var(--oshi-ink); text-decoration: none; transition: transform .2s ease, border-color .2s ease; }
.idols-group-card::before { content: ""; position: absolute; width: 185px; height: 185px; right: -70px; bottom: -100px; border: 34px solid color-mix(in srgb, var(--group-accent) 22%, transparent); border-radius: 50%; }
.idols-group-card::after { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 7px; background: linear-gradient(90deg, var(--group-accent), var(--group-accent-2)); }
.idols-group-card:hover { transform: translateY(-4px); border-color: var(--group-accent); }
.idols-card-index { align-self: start; padding-top: 8px; color: #6f6578; font-family: Georgia, serif; font-size: .6rem; letter-spacing: .08em; }
.idols-group-card small,
.idols-group-card strong,
.idols-group-card p { display: block; }
.idols-group-card small { margin-bottom: 10px; color: #6f6578; font-size: .57rem; letter-spacing: .13em; }
.idols-group-card strong { font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: .84; letter-spacing: -.07em; overflow-wrap: anywhere; }
.idols-group-card p { max-width: 360px; margin: 17px 0 0; color: #625a6b; font-family: "Yu Mincho", Georgia, serif; font-size: .76rem; line-height: 1.7; }
.idols-card-latest { position: relative; z-index: 1; display: grid; gap: 5px; max-width: 125px; padding: 12px; border: 1px solid var(--oshi-line); border-radius: 13px; background: rgba(255,255,255,.65); }
.idols-card-latest span { color: color-mix(in srgb, var(--group-accent) 45%, var(--oshi-ink)); font-family: "Arial Black", sans-serif; font-size: 1.4rem; }
.idols-card-latest em { color: #665d70; font-size: .61rem; font-style: normal; line-height: 1.45; }
.idols-card-arrow { position: relative; z-index: 1; font-size: 1.5rem; }

.idols-manifesto { padding: 110px clamp(24px, 8vw, 125px); overflow: hidden; background: var(--oshi-ink); color: #fff; }
.idols-manifesto p { margin: 0 0 20px; color: var(--oshi-lime); font-size: .64rem; font-weight: 900; letter-spacing: .18em; }
.idols-manifesto h2 { max-width: 980px; }
.idols-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px clamp(22px, 5vw, 64px); background: #0e0b13; color: rgba(255,255,255,.58); font-size: .7rem; flex-wrap: wrap; }

.idol-group { --group-accent: var(--oshi-violet); --group-accent-2: var(--oshi-lime); }
.idol-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); min-height: 510px; overflow: hidden; border-bottom: 1px solid var(--oshi-line); background: linear-gradient(135deg, color-mix(in srgb, var(--group-accent) 16%, white), transparent 58%), var(--oshi-surface); }
.idol-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 62px clamp(28px, 6vw, 88px); }
.idol-status { display: flex; align-items: center; gap: 7px; align-self: flex-start; margin-bottom: 28px; padding: 6px 10px; border: 1px solid var(--oshi-line); border-radius: 999px; background: rgba(255,255,255,.65); color: #6b6274; font-size: .62rem; font-weight: 700; }
.idol-status span { width: 7px; height: 7px; border-radius: 50%; background: #41b86f; box-shadow: 0 0 0 3px rgba(65,184,111,.15); }
.idol-hero h1 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(4rem, 10vw, 8.7rem); font-weight: 900; line-height: .82; letter-spacing: -.085em; overflow-wrap: anywhere; }
.idol-tagline { margin: 30px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.08rem, 2vw, 1.45rem); font-weight: 700; line-height: 1.7; }
.idol-intro { max-width: 670px; margin: 12px 0 0; color: #665d70; font-size: .82rem; line-height: 1.85; }
.idol-hero-poster { position: relative; display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 48px; overflow: hidden; background: var(--group-accent); color: var(--oshi-ink); }
.idol-hero-poster::before { content: ""; position: absolute; width: 380px; height: 380px; right: -170px; bottom: -170px; border: 1px solid rgba(23,19,31,.28); border-radius: 50%; box-shadow: inset 0 0 0 68px rgba(255,255,255,.08); }
.idol-hero-poster > span { grid-column: 1 / -1; align-self: end; margin-bottom: 28px; font-size: .65rem; font-weight: 900; letter-spacing: .18em; }
.idol-hero-poster strong { font-family: "Arial Black", sans-serif; font-size: clamp(7rem, 16vw, 12rem); line-height: .72; letter-spacing: -.1em; }
.idol-hero-poster small { align-self: end; padding-bottom: 3px; font-size: .62rem; font-weight: 900; letter-spacing: .13em; line-height: 1.6; }
.idol-hero-poster i { position: absolute; top: 30px; right: 30px; display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: var(--group-accent-2); font-size: 1.4rem; font-style: normal; }

.idol-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.idol-facts > div { padding: 20px clamp(16px, 4vw, 42px); border-right: 1px solid var(--oshi-line); }
.idol-facts > div:last-child { border-right: 0; }
.idol-facts span { display: block; color: #6f6578; font-size: .58rem; font-weight: 800; letter-spacing: .13em; }
.idol-facts strong { display: block; margin-top: 5px; font-family: "Arial Black", sans-serif; font-size: 1.85rem; line-height: 1; }

.idol-journey-feature { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); align-items: center; gap: 54px; padding: 58px clamp(24px, 6vw, 90px); border-bottom: 1px solid var(--oshi-line); background: color-mix(in srgb, var(--group-accent) 11%, var(--oshi-paper)); }
.idol-journey-feature h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 900; line-height: 1; letter-spacing: -.06em; }
.idol-journey-feature-list { display: grid; gap: 10px; }
.idol-journey-feature-list > a { position: relative; display: grid; gap: 12px; padding: 24px 28px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--group-accent) 44%, var(--oshi-line)); border-radius: 20px; background: rgba(255,255,255,.76); color: var(--oshi-ink); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.idol-journey-feature-list > a::after { content: ""; position: absolute; width: 130px; height: 130px; right: -62px; bottom: -72px; border: 22px solid color-mix(in srgb, var(--group-accent) 24%, transparent); border-radius: 50%; }
.idol-journey-feature-list > a:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(23,19,31,.1); }
.idol-journey-feature-list span { color: #6b6274; font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.idol-journey-feature-list strong { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(1.25rem, 2.3vw, 2rem); line-height: 1.2; letter-spacing: -.04em; }
.idol-journey-feature-list strong i { color: color-mix(in srgb, var(--group-accent) 45%, var(--oshi-ink)); font-size: .85em; font-style: normal; }
.idol-journey-feature-list em { color: #6944ec; font-size: .65rem; font-style: normal; font-weight: 800; }

.idol-members,
.idol-former { padding: 82px clamp(24px, 6vw, 90px) 98px; }
.idol-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: end; gap: 30px; margin-bottom: 32px; }
.idol-section-heading > p { margin: 0; color: #6944ec; font-size: .65rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.idol-section-heading h2 { font-size: clamp(2.1rem, 4vw, 3.8rem); }
.idol-member-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); list-style: none; }
.idol-member-card { position: relative; min-height: 170px; overflow: hidden; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.idol-member-card::after { content: ""; position: absolute; z-index: 0; width: 90px; height: 90px; right: -42px; top: -42px; border-radius: 50%; background: color-mix(in srgb, var(--group-accent) 20%, transparent); pointer-events: none; }
.idol-member-card.has-color::after { background: color-mix(in srgb, var(--member-color) 34%, transparent); }
.idol-member-card-body { position: relative; z-index: 1; display: grid; min-height: 170px; padding: 20px; grid-template-columns: 32px minmax(0, 1fr); align-items: end; gap: 10px; color: inherit; text-decoration: none; }
.idol-member-card-body > span { color: #71687a; font-family: Georgia, serif; font-size: .64rem; }
.idol-member-card strong,
.idol-member-card small { display: block; }
.idol-member-card strong { font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.15rem, 2.2vw, 1.7rem); line-height: 1.25; }
.idol-member-card small { margin-top: 7px; color: #6f6578; font-size: .6rem; }
.idol-member-card.has-journey { cursor: pointer; }
.idol-member-card.has-journey:hover,
.idol-member-card.has-journey:focus-within { background: color-mix(in srgb, var(--group-accent) 9%, var(--oshi-surface)); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--group-accent) 62%, transparent); }
.idol-member-card-body:focus-visible { outline: 3px solid var(--group-accent); outline-offset: -5px; }
.idol-member-journey-badge { display: inline-flex; margin-top: 12px; padding: 5px 8px; align-items: center; gap: 5px; border-radius: 999px; background: var(--group-accent); color: var(--oshi-ink); font-size: .52rem; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.idol-member-journey-badge i { font-size: .72rem; font-style: normal; transition: transform .18s ease; }
.idol-member-card.has-journey:hover .idol-member-journey-badge i,
.idol-member-card.has-journey:focus-within .idol-member-journey-badge i { transform: translateX(3px); }
.idol-member-color { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; margin-right: 6px; padding: 5px 8px; border: 1px solid color-mix(in srgb, var(--member-color) 65%, #aaa); border-radius: 999px; background: color-mix(in srgb, var(--member-color) 13%, white); color: #4f4758; font-size: .52rem; font-weight: 900; }
.idol-member-color i { width: 8px; height: 8px; border: 1px solid rgba(23,19,31,.18); border-radius: 50%; background: var(--member-color); }
.idol-member-sources { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 18px; color: #6f6578; font-size: .62rem; }
.idol-member-sources > span { font-weight: 800; }
.idol-member-sources a { text-underline-offset: 3px; }

.idol-former { padding-top: 0; }
.idol-former ul { margin: 0; padding: 0; border-top: 1px solid var(--oshi-line); list-style: none; }
.idol-former li { border-bottom: 1px solid var(--oshi-line); }
.idol-former li > a,
.idol-former li > div { display: grid; min-height: 58px; padding: 14px 4px; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 20px; color: inherit; text-decoration: none; }
.idol-former li > a:hover,
.idol-former li > a:focus-visible { padding-right: 10px; padding-left: 10px; background: color-mix(in srgb, var(--group-accent) 9%, var(--oshi-surface)); }
.idol-former li span { color: #6f6578; font-size: .68rem; }
.idol-former li em { color: #6944ec; font-size: .62rem; font-style: normal; font-weight: 900; white-space: nowrap; }
.idol-former li em i { font-style: normal; }

.idol-history { position: relative; padding: 90px clamp(24px, 6vw, 90px) 110px; overflow: hidden; background: var(--oshi-ink); color: #fff; }
.idol-history::before { content: ""; position: absolute; width: 620px; height: 620px; right: -300px; top: -350px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--group-accent) 36%, transparent), transparent 68%); }
.idol-history-head { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); align-items: end; gap: 50px; }
.idol-history-head .idols-kicker { color: var(--group-accent-2); }
.idol-history-head > p { margin: 0; color: rgba(255,255,255,.58); font-size: .78rem; line-height: 1.8; }
.idol-timeline { position: relative; margin: 56px 0 0; padding: 0; list-style: none; }
.idol-timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: 118px; width: 1px; background: linear-gradient(var(--group-accent), rgba(255,255,255,.18) 85%, transparent); }
.idol-timeline-item { position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 54px; padding-bottom: 28px; }
.idol-timeline-item::before { content: ""; position: absolute; top: 23px; left: 113px; width: 11px; height: 11px; border: 3px solid var(--oshi-ink); border-radius: 50%; background: var(--group-accent); box-shadow: 0 0 0 1px rgba(255,255,255,.48); }
.idol-timeline-date { padding-top: 16px; text-align: right; }
.idol-timeline-date span { display: block; color: rgba(255,255,255,.65); font-size: .56rem; letter-spacing: .1em; }
.idol-timeline-date time { display: block; margin-top: 5px; color: rgba(255,255,255,.76); font-family: Georgia, serif; font-size: .72rem; white-space: nowrap; }
.idol-timeline-item article { max-width: 840px; padding: 23px 25px; border: 1px solid rgba(255,255,255,.14); border-radius: 18px; background: rgba(255,255,255,.055); }
.idol-event-type { display: inline-flex; padding: 5px 8px; border-radius: 999px; background: var(--group-accent-2); color: var(--oshi-ink); font-size: .55rem; font-weight: 900; }
.idol-timeline-item h3 { margin: 15px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.1rem, 2.3vw, 1.55rem); font-weight: 700; }
.idol-timeline-item p { margin: 9px 0 0; color: rgba(255,255,255,.62); font-size: .76rem; line-height: 1.75; }
.idol-timeline-item a { display: inline-flex; gap: 5px; margin-top: 16px; color: rgba(255,255,255,.78); font-size: .62rem; font-weight: 700; }

/* OSHiSTORY — person journey */
.idol-person { --person-accent: var(--oshi-lime); --person-accent-2: var(--oshi-pink); }
.idol-person-hero { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(330px, .78fr); min-height: 570px; overflow: hidden; border-bottom: 1px solid var(--oshi-line); background: radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--person-accent-2) 16%, transparent), transparent 28%), var(--oshi-surface); }
.idol-person-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 68px clamp(28px, 7vw, 105px); }
.idol-person-hero h1 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(4.6rem, 8.8vw, 8.6rem); font-weight: 900; line-height: .78; letter-spacing: -.09em; overflow-wrap: normal; }
.idol-person-native { margin: 22px 0 0; color: #6b6274; font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; font-weight: 700; letter-spacing: .13em; }
.idol-person-poster { position: relative; display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 46px; overflow: hidden; background: var(--oshi-ink); color: #fff; }
.idol-person-poster::before { content: ""; position: absolute; width: 420px; height: 420px; right: -180px; bottom: -180px; border: 1px solid color-mix(in srgb, var(--person-accent) 60%, transparent); border-radius: 50%; box-shadow: inset 0 0 0 74px rgba(255,255,255,.035), inset 0 0 0 75px color-mix(in srgb, var(--person-accent-2) 22%, transparent); }
.idol-person-poster > span { grid-column: 1 / -1; margin-bottom: 28px; color: var(--person-accent); font-size: .65rem; font-weight: 900; letter-spacing: .18em; }
.idol-person-poster strong { position: relative; z-index: 1; color: var(--person-accent); font-family: "Arial Black", sans-serif; font-size: clamp(8rem, 18vw, 13rem); line-height: .68; letter-spacing: -.12em; }
.idol-person-poster small { position: relative; z-index: 1; align-self: end; padding-bottom: 4px; font-size: .6rem; font-weight: 900; letter-spacing: .12em; line-height: 1.65; }
.idol-person-poster i { position: absolute; top: 32px; right: 32px; display: grid; width: 60px; height: 60px; place-items: center; border-radius: 50%; background: var(--person-accent-2); color: var(--oshi-ink); font-size: 1.6rem; font-style: normal; }
.idol-person-facts { display: grid; grid-template-columns: .72fr .72fr 1.56fr; border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.idol-person-facts > div { min-width: 0; padding: 22px clamp(18px, 4vw, 48px); border-right: 1px solid var(--oshi-line); }
.idol-person-facts > div:last-child { border-right: 0; }
.idol-person-facts span { display: block; color: #6f6578; font-size: .58rem; font-weight: 800; letter-spacing: .13em; }
.idol-person-facts strong { display: block; margin-top: 7px; font-family: "Arial Black", sans-serif; font-size: clamp(1.45rem, 3vw, 2.2rem); line-height: 1; overflow-wrap: anywhere; }
.idol-person-story { padding: 96px clamp(24px, 6vw, 90px) 112px; overflow: hidden; background: linear-gradient(180deg, var(--oshi-paper), color-mix(in srgb, var(--person-accent) 9%, var(--oshi-paper))); }
.idol-person-story-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); align-items: end; gap: 50px; }
.idol-person-story-head h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.4rem, 5vw, 4.8rem); font-weight: 900; line-height: .98; letter-spacing: -.065em; }
.idol-person-story-head > p { margin: 0; color: #665d70; font-size: .8rem; line-height: 1.85; }
.idol-person-journey { position: relative; display: grid; grid-template-columns: repeat(var(--journey-count), minmax(240px, 1fr)); gap: 52px; margin: 70px 0 0; padding: 28px 0 16px; overflow-x: auto; list-style: none; }
.idol-person-journey-item { position: relative; min-width: 0; }
.idol-person-journey-item:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; top: 36px; right: -38px; color: #6f6578; font-size: 1.6rem; font-weight: 900; }
.idol-person-journey-node { position: relative; z-index: 1; display: grid; width: 72px; height: 72px; margin: 0 0 -25px 22px; place-items: center; border: 9px solid var(--oshi-paper); border-radius: 50%; background: var(--journey-accent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--journey-accent) 72%, #8c8197); }
.idol-person-journey-node span { font-family: Georgia, serif; font-size: .68rem; font-weight: 700; }
.idol-person-journey-item article { min-height: 285px; padding: 48px 24px 24px; border: 1px solid color-mix(in srgb, var(--journey-accent) 48%, var(--oshi-line)); border-radius: 22px; background: rgba(255,255,255,.78); box-shadow: 0 18px 44px rgba(23,19,31,.07); }
.idol-person-period { display: block; color: #6f6578; font-family: Georgia, serif; font-size: .68rem; letter-spacing: .04em; }
.idol-person-group-link,
.idol-person-group-name { display: inline-flex; gap: 7px; margin-top: 15px; color: var(--oshi-ink); font-family: "Arial Black", Inter, sans-serif; font-size: clamp(1.8rem, 3.2vw, 3rem); font-weight: 900; line-height: .9; letter-spacing: -.06em; text-decoration: none; overflow-wrap: anywhere; }
.idol-person-group-link:hover { color: color-mix(in srgb, var(--journey-accent) 74%, var(--oshi-ink)); }
.idol-person-group-link span { font-family: Inter, sans-serif; font-size: .6em; }
.idol-person-journey-item article > p { min-height: 50px; margin: 20px 0 0; color: #665d70; font-size: .75rem; line-height: 1.75; }
.idol-person-journey-item article > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--oshi-line); }
.idol-person-journey-item article em { padding: 5px 8px; border-radius: 999px; background: var(--journey-accent-2); font-size: .52rem; font-style: normal; font-weight: 900; letter-spacing: .09em; }
.idol-person-journey-item article > div a { color: #6944ec; font-size: .62rem; font-weight: 800; }
.idol-person-overlap { position: absolute; z-index: 3; top: -21px; right: -64px; padding: 6px 9px; border: 1px solid #ead34a; border-radius: 999px; background: #fff5a6; color: #66530a; font-size: .54rem; font-weight: 900; white-space: nowrap; transform: rotate(-3deg); }
.idol-person-method { max-width: 900px; margin: 56px 0 0; padding: 18px 20px; border-left: 4px solid var(--person-accent-2); background: rgba(255,255,255,.48); color: #665d70; font-size: .72rem; line-height: 1.75; }

/* OSHiSTORY — 100 people journey index */
.journeys-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); min-height: 560px; border-bottom: 1px solid var(--oshi-line); background: radial-gradient(circle at 78% 10%, rgba(255,91,167,.19), transparent 26%), linear-gradient(135deg, rgba(123,92,255,.14), transparent 48%), var(--oshi-surface); }
.journeys-hero > div { display: flex; flex-direction: column; justify-content: center; padding: 72px clamp(28px, 7vw, 105px); }
.journeys-hero h1 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3.6rem, 8vw, 7.5rem); font-weight: 900; line-height: .86; letter-spacing: -.08em; }
.journeys-hero h1 em { color: var(--oshi-violet); font-style: normal; }
.journeys-hero > div > p:last-child { max-width: 690px; margin: 28px 0 0; color: #625a6b; font-family: "Yu Mincho", Georgia, serif; font-size: .94rem; line-height: 1.9; }
.journeys-hero dl { display: grid; align-content: stretch; margin: 0; background: var(--oshi-ink); color: #fff; }
.journeys-hero dl div { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 34px 38px; border-bottom: 1px solid rgba(255,255,255,.13); }
.journeys-hero dl div:last-child { border-bottom: 0; }
.journeys-hero dt { color: rgba(255,255,255,.54); font-size: .6rem; font-weight: 900; letter-spacing: .15em; }
.journeys-hero dd { margin: 0; color: var(--oshi-lime); font-family: "Arial Black", sans-serif; font-size: clamp(3rem, 7vw, 5.4rem); line-height: .72; letter-spacing: -.08em; }
.journey-index { padding: 88px clamp(24px, 5vw, 76px) 112px; }
.journey-index-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .75fr); align-items: end; gap: 50px; }
.journey-index-head h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.5rem, 5vw, 4.7rem); line-height: .98; letter-spacing: -.065em; }
.journey-search { display: grid; gap: 9px; }
.journey-search span { color: #6d6377; font-size: .62rem; font-weight: 800; }
.journey-search input { width: 100%; min-height: 52px; padding: 0 18px; border: 2px solid var(--oshi-ink); border-radius: 15px; background: var(--oshi-surface); color: var(--oshi-ink); font: inherit; font-size: .78rem; box-shadow: 4px 4px 0 var(--oshi-lime); }
.journey-search input:focus { outline: 3px solid color-mix(in srgb, var(--oshi-violet) 35%, transparent); outline-offset: 3px; }
.journey-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 38px 0 0; }
.journey-filters button { display: inline-flex; align-items: center; gap: 9px; min-height: 38px; padding: 0 13px; border: 1px solid var(--oshi-line); border-radius: 999px; background: var(--oshi-surface); color: #635a6d; font: inherit; font-size: .65rem; font-weight: 800; cursor: pointer; }
.journey-filters button span { display: grid; min-width: 21px; height: 21px; padding: 0 5px; place-items: center; border-radius: 999px; background: var(--oshi-paper); font-size: .57rem; }
.journey-filters button[aria-pressed="true"] { border-color: var(--oshi-ink); background: var(--oshi-ink); color: #fff; }
.journey-filters button[aria-pressed="true"] span { background: var(--oshi-lime); color: var(--oshi-ink); }
.journey-result { margin: 28px 0 13px; color: #6f6578; font-size: .6rem; font-weight: 800; letter-spacing: .12em; }
.journey-result strong { color: var(--oshi-violet); font-family: "Arial Black", sans-serif; font-size: 1.5rem; letter-spacing: -.04em; }
.journey-index-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); }
.journey-index-card { --case-accent: var(--oshi-violet); min-width: 0; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.journey-index-card.is-transfer { --case-accent: #ff6a91; }
.journey-index-card.is-concurrent { --case-accent: #f39b38; }
.journey-index-card.is-return { --case-accent: #32b9c7; }
.journey-index-card.is-solo { --case-accent: #8b64ff; }
.journey-index-card.is-rename { --case-accent: #92a800; }
.journey-index-card.is-redebut { --case-accent: #ef5f56; }
.journey-index-card.is-formation { --case-accent: #d4a91e; }
.journey-index-card.is-creator { --case-accent: #e8529a; }
.journey-index-card[hidden] { display: none; }
.journey-index-card > a { position: relative; display: flex; min-height: 350px; padding: 24px; flex-direction: column; color: var(--oshi-ink); text-decoration: none; transition: background .18s ease, transform .18s ease; }
.journey-index-card > a::after { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 5px; background: var(--case-accent); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.journey-index-card > a:hover { background: color-mix(in srgb, var(--case-accent) 7%, var(--oshi-surface)); }
.journey-index-card > a:hover::after { transform: scaleX(1); }
.journey-index-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #6f6578; font-size: .55rem; font-weight: 800; letter-spacing: .08em; }
.journey-index-card-head em { padding: 5px 7px; border-radius: 999px; background: color-mix(in srgb, var(--case-accent) 18%, white); color: color-mix(in srgb, var(--case-accent) 80%, #2f2737); font-style: normal; letter-spacing: 0; }
.journey-index-card h2 { margin: 30px 0 0; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: .95; letter-spacing: -.055em; overflow-wrap: anywhere; }
.journey-index-card > a > small { margin-top: 10px; color: #6f6578; font-size: .58rem; }
.journey-index-path { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 26px; }
.journey-index-path span { padding: 7px 8px; border: 1px solid color-mix(in srgb, var(--case-accent) 45%, var(--oshi-line)); border-radius: 9px; background: rgba(255,255,255,.7); font-size: .62rem; font-weight: 900; }
.journey-index-path i { color: var(--case-accent); font-style: normal; font-weight: 900; }
.journey-index-card p { margin: 18px 0 22px; color: #665d70; font-size: .71rem; line-height: 1.65; }
.journey-index-open { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 13px; border-top: 1px solid var(--oshi-line); color: color-mix(in srgb, var(--case-accent) 82%, var(--oshi-ink)); font-size: .62rem; }
.journey-empty { padding: 50px 20px; border: 1px solid var(--oshi-line); background: var(--oshi-surface); color: #665d70; text-align: center; }

/* OSHiSTORY — compact journey detail */
.idol-journey-case { --case-accent: var(--oshi-violet); }
.idol-journey-case.is-transfer { --case-accent: #ff6a91; }
.idol-journey-case.is-concurrent { --case-accent: #f39b38; }
.idol-journey-case.is-return { --case-accent: #32b9c7; }
.idol-journey-case.is-solo { --case-accent: #8b64ff; }
.idol-journey-case.is-rename { --case-accent: #92a800; }
.idol-journey-case.is-redebut { --case-accent: #ef5f56; }
.idol-journey-case.is-formation { --case-accent: #d4a91e; }
.idol-journey-case.is-creator { --case-accent: #e8529a; }
.journey-case-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr); min-height: 520px; border-bottom: 1px solid var(--oshi-line); background: linear-gradient(135deg, color-mix(in srgb, var(--case-accent) 15%, white), transparent 52%), var(--oshi-surface); }
.journey-case-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 68px clamp(28px, 7vw, 105px); }
.journey-case-hero h1 { margin: 0; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(3.7rem, 9vw, 8.2rem); font-weight: 900; line-height: .82; letter-spacing: -.08em; overflow-wrap: anywhere; }
.journey-case-reading { margin: 22px 0 0; color: #746a7e; font-family: "Yu Mincho", Georgia, serif; font-size: .9rem; letter-spacing: .11em; }
.journey-case-summary { max-width: 680px; margin: 25px 0 0; color: #5e5667; font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; font-weight: 700; line-height: 1.85; }
.journey-case-hero .idol-research-status { margin-top: 26px; }
.journey-case-deep-link { display: inline-flex; align-items: center; gap: 24px; align-self: flex-start; margin-top: 28px; padding: 12px 16px; border: 2px solid var(--oshi-ink); border-radius: 999px; background: var(--oshi-ink); color: #fff; font-size: .68rem; font-weight: 900; text-decoration: none; box-shadow: 4px 4px 0 var(--case-accent); }
.journey-case-number { display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 42px; overflow: hidden; background: var(--case-accent); color: var(--oshi-ink); }
.journey-case-number span { grid-column: 1 / -1; margin-bottom: 26px; font-size: .62rem; font-weight: 900; letter-spacing: .17em; }
.journey-case-number strong { font-family: "Arial Black", sans-serif; font-size: clamp(6rem, 15vw, 11rem); line-height: .68; letter-spacing: -.1em; }
.journey-case-number small { align-self: end; padding-bottom: 3px; font-size: .65rem; font-weight: 900; letter-spacing: .13em; }
.journey-case-facts { display: grid; grid-template-columns: .7fr .7fr 1.3fr .8fr; border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.journey-case-facts div { min-width: 0; padding: 20px clamp(16px, 4vw, 42px); border-right: 1px solid var(--oshi-line); }
.journey-case-facts div:last-child { border-right: 0; }
.journey-case-facts span { color: #6f6578; font-size: .56rem; font-weight: 800; letter-spacing: .13em; }
.journey-case-facts strong { display: block; margin-top: 6px; font-family: "Arial Black", sans-serif; font-size: clamp(1.2rem, 2.6vw, 1.85rem); line-height: 1.05; overflow-wrap: anywhere; }
.journey-case-path-section { padding: 92px clamp(24px, 6vw, 90px) 108px; }
.journey-case-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); align-items: end; gap: 50px; }
.journey-case-section-head h2,
.journey-case-sources h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: .98; letter-spacing: -.065em; }
.journey-case-section-head > p { margin: 0; color: #665d70; font-size: .78rem; line-height: 1.85; }
.journey-case-path { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 46px; margin: 64px 0 0; padding: 0; list-style: none; }
.journey-case-path li { position: relative; display: grid; min-height: 190px; padding: 24px; align-content: space-between; border: 2px solid var(--oshi-ink); border-radius: 20px; background: var(--oshi-surface); box-shadow: 6px 6px 0 color-mix(in srgb, var(--case-accent) 75%, white); }
.journey-case-path li:not(:last-child)::after { content: "→"; position: absolute; top: 50%; right: -34px; color: var(--case-accent); font-size: 1.5rem; font-weight: 900; transform: translateY(-50%); }
.journey-case-path li > span { color: #6f6578; font-family: Georgia, serif; font-size: .62rem; }
.journey-case-path li strong { font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: .95; letter-spacing: -.05em; overflow-wrap: anywhere; }
.journey-case-path li small { color: color-mix(in srgb, var(--case-accent) 82%, #3f3549); font-size: .55rem; font-weight: 900; letter-spacing: .1em; }
.journey-case-sources { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: 60px; padding: 88px clamp(24px, 6vw, 90px) 100px; background: var(--oshi-ink); color: #fff; }
.journey-case-sources .idols-kicker { color: var(--oshi-lime); }
.journey-case-sources ol { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.16); list-style: none; }
.journey-case-sources li { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 15px; padding: 19px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.journey-case-sources li > span { color: rgba(255,255,255,.65); font-family: Georgia, serif; font-size: .62rem; }
.journey-case-sources li strong,
.journey-case-sources li small { display: block; }
.journey-case-sources li strong { font-size: .76rem; }
.journey-case-sources li small { margin-top: 5px; color: rgba(255,255,255,.65); font-size: .56rem; }
.journey-case-sources li > a { color: var(--oshi-lime); font-size: .62rem; font-weight: 800; }

/* OSHiSTORY — era history reader */
.history-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); min-height: 600px; border-bottom: 1px solid var(--oshi-line); background: radial-gradient(circle at 14% 18%, rgba(234,255,98,.36), transparent 24%), linear-gradient(135deg, rgba(255,91,167,.15), transparent 50%), var(--oshi-surface); }
.history-hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 74px clamp(28px, 7vw, 105px); }
.history-hero h1 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3.4rem, 7.8vw, 7.4rem); font-weight: 900; line-height: .88; letter-spacing: -.08em; }
.history-hero h1 em { position: relative; color: var(--oshi-violet); font-style: normal; }
.history-hero h1 em::after { content: ""; position: absolute; right: 0; bottom: -.03em; left: 0; height: .12em; background: var(--oshi-lime); transform: rotate(-2deg); }
.history-hero-copy > p:not(.idols-kicker) { max-width: 700px; margin: 28px 0 30px; color: #625a6b; font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; line-height: 1.9; }
.history-hero-copy > a { display: inline-flex; align-items: center; gap: 24px; min-height: 50px; padding: 0 20px; border: 2px solid var(--oshi-ink); border-radius: 999px; background: var(--oshi-ink); color: #fff; font-size: .72rem; font-weight: 900; text-decoration: none; box-shadow: 5px 5px 0 var(--oshi-pink); }
.history-hero-stats { display: grid; align-content: stretch; margin: 0; background: var(--oshi-ink); color: #fff; }
.history-hero-stats div { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 38px; border-bottom: 1px solid rgba(255,255,255,.13); }
.history-hero-stats div:last-child { border-bottom: 0; }
.history-hero-stats dt { color: rgba(255,255,255,.5); font-size: .6rem; font-weight: 900; letter-spacing: .16em; }
.history-hero-stats dd { margin: 0; color: var(--oshi-lime); font-family: "Arial Black", sans-serif; font-size: clamp(3.2rem, 7vw, 5.7rem); line-height: .7; letter-spacing: -.08em; }
.history-reader { padding: 92px clamp(24px, 6vw, 90px) 116px; }
.history-reader-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr); align-items: end; gap: 52px; }
.history-reader-head h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.6rem, 5.4vw, 5rem); line-height: .96; letter-spacing: -.07em; }
.history-reader-head > p { margin: 0; color: #665d70; font-size: .8rem; line-height: 1.85; }
.history-era-tabs { position: sticky; z-index: 5; top: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 52px; border: 1px solid var(--oshi-ink); background: var(--oshi-surface); box-shadow: 7px 7px 0 rgba(123,92,255,.22); }
.history-era-tabs button { display: grid; min-width: 0; min-height: 108px; padding: 17px 18px; border: 0; border-right: 1px solid var(--oshi-line); background: transparent; color: var(--oshi-ink); text-align: left; cursor: pointer; }
.history-era-tabs button:last-child { border-right: 0; }
.history-era-tabs button:hover { background: color-mix(in srgb, var(--oshi-lime) 32%, white); }
.history-era-tabs button[aria-selected="true"] { background: var(--oshi-ink); color: #fff; }
.history-era-tabs button:focus-visible { position: relative; z-index: 1; outline: 4px solid var(--oshi-pink); outline-offset: -4px; }
.history-era-tabs span { color: #71687a; font-family: Georgia, serif; font-size: .58rem; }
.history-era-tabs strong { align-self: end; font-family: "Arial Black", sans-serif; font-size: clamp(1.15rem, 2vw, 1.65rem); line-height: 1; letter-spacing: -.04em; }
.history-era-tabs small { margin-top: 5px; color: #6f6578; font-size: .52rem; font-weight: 900; letter-spacing: .11em; }
.history-era-tabs button[aria-selected="true"] span,
.history-era-tabs button[aria-selected="true"] small { color: var(--oshi-lime); }
.history-era-panels { margin-top: 18px; }
.history-era-panel { border: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.history-era-panel[hidden] { display: none; }
.history-era-intro { display: grid; grid-template-columns: 100px minmax(0, 1fr) minmax(260px, .55fr); align-items: stretch; border-bottom: 1px solid var(--oshi-line); }
.history-era-index { display: grid; align-content: space-between; padding: 30px 22px; background: var(--oshi-violet); color: #fff; }
.history-era-index span { color: var(--oshi-lime); font-size: .58rem; font-weight: 900; letter-spacing: .15em; }
.history-era-index strong { color: var(--oshi-lime); font-family: "Arial Black", sans-serif; font-size: 4.4rem; line-height: .7; letter-spacing: -.1em; }
.history-era-intro > div:nth-child(2) { padding: 46px 42px; }
.history-era-intro h2 { max-width: 740px; margin: 0; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(2.3rem, 4.5vw, 4.4rem); line-height: .98; letter-spacing: -.06em; }
.history-era-intro > div:nth-child(2) > p:last-child { max-width: 720px; margin: 22px 0 0; color: #665d70; font-family: "Yu Mincho", Georgia, serif; font-size: .88rem; line-height: 1.85; }
.history-era-intro aside { display: flex; flex-direction: column; justify-content: center; padding: 34px; border-left: 1px solid var(--oshi-line); background: color-mix(in srgb, var(--oshi-lime) 46%, white); }
.history-era-intro aside small { color: #6f7450; font-size: .55rem; font-weight: 900; letter-spacing: .15em; }
.history-era-intro aside strong { margin-top: 15px; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1rem, 2vw, 1.35rem); line-height: 1.7; }
.history-group-hubs { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 24px; padding: 25px 30px; border-bottom: 1px solid var(--oshi-line); background: var(--oshi-paper); }
.history-group-hubs > span { color: #6f6578; font-size: .6rem; font-weight: 900; letter-spacing: .1em; }
.history-group-hubs > div { display: flex; flex-wrap: wrap; gap: 7px; }
.history-group-hubs a { padding: 6px 9px; border: 1px solid var(--oshi-line); border-radius: 999px; background: var(--oshi-surface); color: var(--oshi-ink); font-size: .6rem; font-weight: 800; text-decoration: none; }
.history-group-hubs a:hover { border-color: var(--oshi-violet); color: var(--oshi-violet); }
.history-milestone-list { position: relative; margin: 0; padding: 24px 30px 54px; list-style: none; }
.history-milestone-list::before { content: ""; position: absolute; top: 24px; bottom: 54px; left: 119px; width: 2px; background: linear-gradient(var(--oshi-pink), var(--oshi-violet), transparent); }
.history-milestone { position: relative; display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 58px; padding: 26px 0; }
.history-milestone::before { content: ""; position: absolute; top: 41px; left: 83px; width: 13px; height: 13px; border: 4px solid var(--oshi-surface); border-radius: 50%; background: var(--oshi-pink); box-shadow: 0 0 0 1px var(--oshi-line); }
.history-milestone-year { padding-top: 4px; text-align: right; }
.history-milestone-year time { display: block; font-family: "Arial Black", sans-serif; font-size: 1.5rem; letter-spacing: -.05em; }
.history-milestone-year span { display: block; margin-top: 5px; color: #71687a; font-family: Georgia, serif; font-size: .55rem; }
.history-milestone > article { min-width: 0; padding: 27px; border: 1px solid var(--oshi-line); border-radius: 22px; background: #fff; }
.history-milestone h3 { margin: 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.35rem, 2.7vw, 2.15rem); line-height: 1.35; }
.history-milestone > article > p { max-width: 820px; margin: 12px 0 0; color: #665d70; font-size: .76rem; line-height: 1.8; }
.history-people-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 25px; }
.history-person-card { --history-accent: var(--oshi-violet); display: grid; min-width: 0; min-height: 165px; padding: 18px; border: 1px solid color-mix(in srgb, var(--history-accent) 48%, var(--oshi-line)); border-radius: 16px; background: color-mix(in srgb, var(--history-accent) 7%, white); color: var(--oshi-ink); text-decoration: none; transition: transform .18s ease, border-color .18s ease; }
.history-person-card.is-transfer { --history-accent: #ff6a91; }
.history-person-card.is-formation { --history-accent: #d4a91e; }
.history-person-card.is-concurrent { --history-accent: #f39b38; }
.history-person-card.is-return { --history-accent: #32b9c7; }
.history-person-card.is-solo { --history-accent: #8b64ff; }
.history-person-card.is-rename { --history-accent: #92a800; }
.history-person-card.is-redebut { --history-accent: #ef5f56; }
.history-person-card.is-creator { --history-accent: #e8529a; }
.history-person-card:hover { transform: translateY(-2px); border-color: var(--history-accent); }
.history-person-card > small { color: color-mix(in srgb, var(--history-accent) 82%, #3f3549); font-size: .53rem; font-weight: 900; }
.history-person-card > strong { margin-top: 10px; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(1.25rem, 2.4vw, 1.8rem); line-height: 1; letter-spacing: -.04em; overflow-wrap: anywhere; }
.history-person-card > span { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 13px; color: #665d70; font-size: .58rem; font-weight: 800; }
.history-person-card > span i { color: color-mix(in srgb, var(--history-accent) 45%, var(--oshi-ink)); font-style: normal; }
.history-person-card em { align-self: end; margin-top: 15px; color: color-mix(in srgb, var(--history-accent) 85%, var(--oshi-ink)); font-size: .56rem; font-style: normal; font-weight: 900; }
.history-milestone-sources { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 22px; padding-top: 17px; border-top: 1px solid var(--oshi-line); }
.history-milestone-sources small { color: #71687a; font-size: .52rem; font-weight: 900; letter-spacing: .13em; }
.history-milestone-sources a { color: #6944ec; font-size: .58rem; font-weight: 800; }
.history-next { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .78fr); align-items: center; gap: 54px; padding: 86px clamp(24px, 6vw, 90px); background: var(--oshi-ink); color: #fff; }
.history-next h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.5rem, 5vw, 4.8rem); line-height: .97; letter-spacing: -.065em; }
.history-next .idols-kicker { color: var(--oshi-lime); }
.history-next > a { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 12px 20px; padding: 30px; border: 1px solid rgba(255,255,255,.3); border-radius: 24px; background: rgba(255,255,255,.06); color: #fff; text-decoration: none; box-shadow: 7px 7px 0 var(--oshi-violet); }
.history-next > a strong { color: var(--oshi-lime); font-family: "Arial Black", sans-serif; font-size: 5.4rem; line-height: .7; letter-spacing: -.1em; }
.history-next > a span { padding-bottom: 3px; font-size: .6rem; font-weight: 900; letter-spacing: .13em; }
.history-next > a em { grid-column: 1 / -1; margin-top: 8px; color: rgba(255,255,255,.72); font-size: .68rem; font-style: normal; }

.history-hubs { padding: 90px clamp(24px, 6vw, 90px) 108px; border-top: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.history-hub-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 46px; border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); }
.history-hub-card { position: relative; display: flex; min-height: 390px; padding: 27px; flex-direction: column; overflow: hidden; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: linear-gradient(155deg, color-mix(in srgb, var(--hub-accent) 16%, white), white 55%); color: var(--oshi-ink); text-decoration: none; }
.history-hub-card::before { content: ""; position: absolute; width: 190px; height: 190px; right: -95px; bottom: -95px; border: 34px solid color-mix(in srgb, var(--hub-accent-2) 42%, transparent); border-radius: 50%; transition: transform .2s ease; }
.history-hub-card:hover::before { transform: scale(1.13); }
.history-hub-card > span { color: color-mix(in srgb, var(--hub-accent) 85%, #3d3447); font-size: .56rem; font-weight: 900; letter-spacing: .13em; }
.history-hub-card > strong { margin-top: 32px; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(2.2rem, 4vw, 3.7rem); line-height: .85; letter-spacing: -.065em; overflow-wrap: anywhere; }
.history-hub-card > small { margin-top: 12px; color: #6f6578; font-size: .58rem; font-weight: 800; }
.history-hub-card p { max-width: 310px; margin: 28px 0 0; color: #665d70; font-family: "Yu Mincho", Georgia, serif; font-size: .8rem; font-weight: 700; line-height: 1.7; }
.history-hub-card em { position: relative; z-index: 1; margin-top: auto; padding-top: 22px; color: color-mix(in srgb, var(--hub-accent) 88%, var(--oshi-ink)); font-size: .62rem; font-style: normal; font-weight: 900; }

/* OSHiSTORY — group history hubs */
.idol-history-hub { --hub-accent: var(--oshi-violet); --hub-accent-2: var(--oshi-lime); }
.hub-hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); min-height: 600px; border-bottom: 1px solid var(--oshi-line); background: radial-gradient(circle at 12% 16%, color-mix(in srgb, var(--hub-accent-2) 30%, transparent), transparent 24%), linear-gradient(135deg, color-mix(in srgb, var(--hub-accent) 16%, white), transparent 54%), var(--oshi-surface); }
.hub-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 68px clamp(28px, 7vw, 105px); }
.hub-hero h1 { margin: 0; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(4rem, 10vw, 8.7rem); font-weight: 900; line-height: .8; letter-spacing: -.085em; overflow-wrap: anywhere; }
.hub-alternate { margin: 19px 0 0; color: #746a7e; font-family: "Yu Mincho", Georgia, serif; font-size: .82rem; letter-spacing: .11em; }
.hub-hero h2 { max-width: 780px; margin: 34px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.25rem, 2.5vw, 1.8rem); line-height: 1.6; }
.hub-hero-copy > p:last-child { max-width: 720px; margin: 14px 0 0; color: #665d70; font-size: .82rem; line-height: 1.85; }
.hub-poster { display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 42px; overflow: hidden; background: var(--hub-accent); color: var(--oshi-ink); }
.hub-poster span { grid-column: 1 / -1; margin-bottom: 32px; font-size: .62rem; font-weight: 900; letter-spacing: .16em; }
.hub-poster strong { font-family: "Arial Black", sans-serif; font-size: clamp(7rem, 16vw, 12rem); line-height: .66; letter-spacing: -.12em; }
.hub-poster small { align-self: end; padding-bottom: 3px; font-size: .62rem; font-weight: 900; letter-spacing: .11em; }
.hub-facts { display: grid; grid-template-columns: 1.2fr repeat(3, .7fr); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.hub-facts div { min-width: 0; padding: 21px clamp(16px, 4vw, 42px); border-right: 1px solid var(--oshi-line); }
.hub-facts div:last-child { border-right: 0; }
.hub-facts span { color: #6f6578; font-size: .55rem; font-weight: 900; letter-spacing: .13em; }
.hub-facts strong { display: block; margin-top: 7px; font-family: "Arial Black", sans-serif; font-size: clamp(1.35rem, 3vw, 2rem); line-height: 1; overflow-wrap: anywhere; }
.hub-lens { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 28px; padding: 25px clamp(24px, 6vw, 90px); border-bottom: 1px solid var(--oshi-line); background: color-mix(in srgb, var(--hub-accent-2) 48%, white); }
.hub-lens small { color: #786f42; font-size: .57rem; font-weight: 900; letter-spacing: .14em; }
.hub-lens p { max-width: 920px; margin: 0; font-family: "Yu Mincho", Georgia, serif; font-size: .82rem; font-weight: 700; line-height: 1.75; }
.hub-journeys { padding: 92px clamp(24px, 6vw, 90px) 112px; }
.hub-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr); align-items: end; gap: 50px; }
.hub-section-head h2,
.hub-sources h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.5rem, 5vw, 4.8rem); line-height: .97; letter-spacing: -.065em; }
.hub-section-head > p { margin: 0; color: #665d70; font-size: .78rem; line-height: 1.85; }
.hub-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 38px; }
.hub-filters button { display: inline-flex; align-items: center; gap: 9px; min-height: 38px; padding: 0 13px; border: 1px solid var(--oshi-line); border-radius: 999px; background: var(--oshi-surface); color: #635a6d; font: inherit; font-size: .64rem; font-weight: 800; cursor: pointer; }
.hub-filters button span { display: grid; min-width: 21px; height: 21px; padding: 0 5px; place-items: center; border-radius: 999px; background: var(--oshi-paper); font-size: .56rem; }
.hub-filters button[aria-pressed="true"] { border-color: var(--oshi-ink); background: var(--oshi-ink); color: #fff; }
.hub-filters button[aria-pressed="true"] span { background: var(--hub-accent-2); color: var(--oshi-ink); }
.hub-result { margin: 27px 0 13px; color: #6f6578; font-size: .6rem; font-weight: 900; letter-spacing: .12em; }
.hub-result strong { color: var(--hub-accent); font-family: "Arial Black", sans-serif; font-size: 1.5rem; }
.hub-people-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); }
.hub-person-card { --case-accent: var(--hub-accent); min-width: 0; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.hub-person-card.is-transfer { --case-accent: #ff6a91; }
.hub-person-card.is-concurrent { --case-accent: #f39b38; }
.hub-person-card.is-return { --case-accent: #32b9c7; }
.hub-person-card.is-solo { --case-accent: #8b64ff; }
.hub-person-card.is-rename { --case-accent: #92a800; }
.hub-person-card.is-redebut { --case-accent: #ef5f56; }
.hub-person-card.is-formation { --case-accent: #d4a91e; }
.hub-person-card.is-creator { --case-accent: #e8529a; }
.hub-person-card[hidden] { display: none; }
.hub-person-card > a { position: relative; display: flex; min-height: 280px; padding: 22px; flex-direction: column; color: var(--oshi-ink); text-decoration: none; }
.hub-person-card > a::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 5px; background: var(--case-accent); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.hub-person-card > a:hover::before { transform: scaleX(1); }
.hub-person-card small { color: color-mix(in srgb, var(--case-accent) 82%, #3e3548); font-size: .54rem; font-weight: 900; }
.hub-person-card strong { margin-top: 23px; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(1.55rem, 3vw, 2.35rem); line-height: .95; letter-spacing: -.05em; overflow-wrap: anywhere; }
.hub-person-card div { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 24px; }
.hub-person-card div span { padding: 6px 7px; border: 1px solid color-mix(in srgb, var(--case-accent) 40%, var(--oshi-line)); border-radius: 8px; font-size: .57rem; font-weight: 800; }
.hub-person-card div i { color: var(--case-accent); font-style: normal; font-weight: 900; }
.hub-person-card em { margin-top: auto; padding-top: 20px; color: color-mix(in srgb, var(--case-accent) 85%, var(--oshi-ink)); font-size: .57rem; font-style: normal; font-weight: 900; }
.hub-timeline { padding: 92px clamp(24px, 6vw, 90px) 110px; background: var(--oshi-ink); color: #fff; }
.hub-timeline .idols-kicker { color: var(--hub-accent-2); }
.hub-timeline .hub-section-head > p { color: rgba(255,255,255,.58); }
.hub-timeline ol { position: relative; margin: 60px 0 0; padding: 0; list-style: none; }
.hub-timeline ol::before { content: ""; position: absolute; top: 0; bottom: 0; left: 115px; width: 1px; background: linear-gradient(var(--hub-accent), rgba(255,255,255,.18), transparent); }
.hub-timeline li { position: relative; display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 56px; padding-bottom: 30px; }
.hub-timeline li::before { content: ""; position: absolute; top: 24px; left: 110px; width: 11px; height: 11px; border: 3px solid var(--oshi-ink); border-radius: 50%; background: var(--hub-accent-2); box-shadow: 0 0 0 1px rgba(255,255,255,.42); }
.hub-timeline-year { padding-top: 12px; text-align: right; }
.hub-timeline-year time { display: block; font-family: "Arial Black", sans-serif; font-size: 1.35rem; }
.hub-timeline-year span { display: block; margin-top: 5px; color: rgba(255,255,255,.65); font-size: .52rem; }
.hub-timeline li article { max-width: 920px; padding: 25px; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: rgba(255,255,255,.055); }
.hub-timeline h3 { margin: 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.25rem, 2.5vw, 1.8rem); line-height: 1.4; }
.hub-timeline article > p { margin: 10px 0 0; color: rgba(255,255,255,.62); font-size: .76rem; line-height: 1.8; }
.hub-timeline-people { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.hub-timeline-people a { padding: 6px 9px; border-radius: 999px; background: color-mix(in srgb, var(--hub-accent) 76%, white); color: var(--oshi-ink); font-size: .57rem; font-weight: 900; text-decoration: none; }
.hub-timeline-sources { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.13); }
.hub-timeline-sources a { color: var(--hub-accent-2); font-size: .58rem; font-weight: 800; }
.hub-sources { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 60px; padding: 88px clamp(24px, 6vw, 90px) 104px; background: var(--oshi-surface); }
.hub-sources > div:last-child { border-top: 1px solid var(--oshi-line); }
.hub-sources > div:last-child > a { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 18px 0; border-bottom: 1px solid var(--oshi-line); color: var(--oshi-ink); text-decoration: none; }
.hub-sources a > span { color: #71687a; font-family: Georgia, serif; font-size: .56rem; }
.hub-sources a > strong { font-size: .72rem; }
.hub-sources a > small { grid-column: 2; color: #6f6578; font-size: .54rem; }
.hub-sources a > em { grid-row: 1 / 3; grid-column: 3; color: var(--hub-accent); font-size: 1rem; font-style: normal; }
.hub-next { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 27px clamp(24px, 6vw, 90px); border-top: 1px solid var(--oshi-line); background: var(--oshi-paper); }
.hub-next > span { color: #6f6578; font-size: .57rem; font-weight: 900; letter-spacing: .14em; }
.hub-next > div { display: flex; flex-wrap: wrap; gap: 8px; }
.hub-next a { padding: 9px 13px; border: 1px solid var(--oshi-line); border-radius: 999px; background: var(--oshi-surface); color: var(--oshi-ink); font-size: .62rem; font-weight: 900; text-decoration: none; }
.journey-case-hub-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 26px; }
.journey-case-hub-links > span { width: 100%; color: #6f6578; font-size: .55rem; font-weight: 900; letter-spacing: .1em; }
.journey-case-hub-links a { padding: 8px 11px; border: 1px solid color-mix(in srgb, var(--case-accent) 52%, var(--oshi-line)); border-radius: 999px; background: rgba(255,255,255,.68); color: var(--oshi-ink); font-size: .62rem; font-weight: 900; text-decoration: none; }

/* OSHiSTORY — history hub branch map */
.hub-branch { padding: 92px clamp(24px, 6vw, 90px) 105px; overflow: hidden; border-bottom: 1px solid var(--oshi-line); background: linear-gradient(145deg, color-mix(in srgb, var(--hub-accent-2) 22%, white), color-mix(in srgb, var(--hub-accent) 10%, var(--oshi-paper))); }
.hub-branch-map { display: grid; grid-template-columns: minmax(210px, .9fr) 62px minmax(230px, 1fr) 62px minmax(240px, 1.1fr); align-items: center; gap: 15px; margin-top: 60px; }
.hub-branch-map > i { color: color-mix(in srgb, var(--hub-accent) 80%, var(--oshi-ink)); font-size: .56rem; font-style: normal; font-weight: 900; letter-spacing: .08em; text-align: center; }
.hub-branch-roots,
.hub-branch-ends { display: grid; gap: 13px; }
.hub-branch-roots article,
.hub-branch-center,
.hub-branch-ends a { display: flex; min-width: 0; min-height: 140px; padding: 20px; flex-direction: column; justify-content: center; border: 1px solid var(--oshi-line); border-radius: 19px; background: rgba(255,255,255,.8); color: var(--oshi-ink); text-decoration: none; box-shadow: 0 12px 35px rgba(23,19,31,.06); }
.hub-branch-roots small,
.hub-branch-center small,
.hub-branch-ends small { color: #6f6578; font-size: .51rem; font-weight: 900; letter-spacing: .1em; }
.hub-branch-roots strong,
.hub-branch-center strong,
.hub-branch-ends strong { margin-top: 12px; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(1.35rem, 2.8vw, 2.25rem); line-height: .9; letter-spacing: -.055em; overflow-wrap: anywhere; }
.hub-branch-roots span,
.hub-branch-center span,
.hub-branch-ends span { margin-top: 13px; color: #6c6376; font-size: .58rem; font-weight: 700; line-height: 1.55; }
.hub-branch-center { min-height: 250px; border: 2px solid var(--oshi-ink); background: var(--hub-accent); box-shadow: 7px 7px 0 var(--oshi-ink); text-align: center; }
.hub-branch-center strong { font-size: clamp(2rem, 4vw, 3.65rem); }
.hub-branch-ends a { position: relative; min-height: 122px; padding-right: 42px; transition: transform .18s ease, background .18s ease; }
.hub-branch-ends a::after { content: "→"; position: absolute; right: 18px; color: var(--hub-accent); font-weight: 900; }
.hub-branch-ends a:hover { background: color-mix(in srgb, var(--hub-accent-2) 24%, white); transform: translateX(4px); }

.hub-role-shift { padding: 92px clamp(24px, 6vw, 90px) 105px; overflow: hidden; border-bottom: 1px solid var(--oshi-line); background: radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--hub-accent-2) 42%, transparent), transparent 28%), linear-gradient(145deg, color-mix(in srgb, var(--hub-accent) 12%, white), var(--oshi-paper)); }
.hub-role-shift-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 58px; }
.hub-role-shift-grid > a { display: flex; min-width: 0; min-height: 480px; padding: 24px; flex-direction: column; border: 1px solid color-mix(in srgb, var(--hub-accent) 36%, var(--oshi-line)); border-radius: 22px; background: rgba(255,255,255,.86); color: var(--oshi-ink); text-decoration: none; box-shadow: 0 16px 45px rgba(23,19,31,.07); transition: transform .18s ease, box-shadow .18s ease; }
.hub-role-shift-grid > a:hover { transform: translateY(-4px); box-shadow: 0 22px 55px rgba(23,19,31,.12); }
.hub-role-shift-grid header { padding-bottom: 20px; border-bottom: 1px solid var(--oshi-line); }
.hub-role-shift-grid header small { color: color-mix(in srgb, var(--hub-accent) 88%, var(--oshi-ink)); font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.hub-role-shift-grid header strong { display: block; margin-top: 13px; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(1.8rem, 3.5vw, 3rem); line-height: .92; letter-spacing: -.055em; }
.hub-role-shift-grid > a > div { padding: 20px; border: 1px solid var(--oshi-line); border-radius: 15px; background: var(--oshi-surface); }
.hub-role-shift-grid > a > div small { display: block; color: #6f6578; font-size: .5rem; font-weight: 900; letter-spacing: .12em; }
.hub-role-shift-grid > a > div b { display: block; margin-top: 9px; font-size: .78rem; line-height: 1.5; }
.hub-role-shift-grid > a > i { padding: 12px 4px; color: color-mix(in srgb, var(--hub-accent) 86%, var(--oshi-ink)); font-size: .52rem; font-style: normal; font-weight: 900; letter-spacing: .1em; text-align: center; }
.hub-role-shift-grid > a > div.is-output { flex: 1; border-color: color-mix(in srgb, var(--hub-accent) 48%, var(--oshi-line)); background: color-mix(in srgb, var(--hub-accent-2) 22%, white); }
.hub-role-shift-grid > a > div.is-output b { font-size: .9rem; }
.hub-role-shift-grid > a > div p { margin: 13px 0 0; color: #665d70; font-size: .65rem; line-height: 1.75; }
.hub-role-shift-grid > a > em { margin-top: 20px; color: color-mix(in srgb, var(--hub-accent) 88%, var(--oshi-ink)); font-size: .58rem; font-style: normal; font-weight: 900; }

/* OSHiSTORY — audition archive */
.idol-audition { --audition-accent: var(--oshi-pink); --audition-accent-2: var(--oshi-lime); }
.idol-audition-feature { display: grid; grid-template-columns: minmax(0, .82fr) minmax(360px, 1.18fr); gap: 54px; padding: 82px clamp(24px, 6vw, 90px); border-bottom: 1px solid var(--oshi-line); background: linear-gradient(120deg, color-mix(in srgb, var(--group-accent-2) 35%, white), var(--oshi-paper)); }
.idol-audition-feature h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: .98; letter-spacing: -.065em; }
.idol-audition-feature > div > p:last-child { max-width: 580px; margin: 22px 0 0; color: #665d70; font-size: .78rem; line-height: 1.85; }
.idol-audition-feature > a { position: relative; display: flex; min-height: 270px; padding: 30px; flex-direction: column; overflow: hidden; border: 2px solid var(--oshi-ink); border-radius: 24px; background: var(--oshi-ink); color: #fff; text-decoration: none; box-shadow: 8px 8px 0 var(--group-accent); }
.idol-audition-feature > a::after { content: "YES"; position: absolute; right: -12px; bottom: -40px; color: color-mix(in srgb, var(--group-accent) 70%, transparent); font-family: "Arial Black", sans-serif; font-size: 9rem; line-height: 1; letter-spacing: -.12em; transform: rotate(-7deg); }
.idol-audition-feature > a span { color: var(--group-accent-2); font-size: .6rem; font-weight: 900; letter-spacing: .15em; }
.idol-audition-feature > a strong { position: relative; z-index: 1; margin-top: 28px; font-family: "Arial Black", sans-serif; font-size: clamp(2.6rem, 6vw, 5rem); line-height: .86; letter-spacing: -.075em; }
.idol-audition-feature > a em { position: relative; z-index: 1; margin-top: 20px; color: var(--group-accent); font-family: Georgia, serif; font-size: 1rem; font-style: normal; font-weight: 900; }
.idol-audition-feature > a small { position: relative; z-index: 1; margin-top: auto; font-size: .65rem; font-weight: 900; }
.audition-hero { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(330px, .72fr); min-height: 650px; border-bottom: 1px solid var(--oshi-line); background: radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--audition-accent-2) 30%, transparent), transparent 25%), linear-gradient(135deg, color-mix(in srgb, var(--audition-accent) 16%, white), transparent 54%), var(--oshi-surface); }
.audition-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 70px clamp(28px, 7vw, 105px); }
.audition-hero h1 { max-width: 950px; margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(4.2rem, 10vw, 9rem); font-weight: 900; line-height: .78; letter-spacing: -.09em; overflow-wrap: anywhere; }
.audition-alternate { margin: 21px 0 0; color: #746a7e; font-family: Georgia, serif; font-size: .76rem; letter-spacing: .14em; }
.audition-hero h2 { max-width: 730px; margin: 36px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.3rem, 2.6vw, 1.9rem); line-height: 1.6; }
.audition-hero-copy > p:last-child { max-width: 710px; margin: 15px 0 0; color: #665d70; font-size: .82rem; line-height: 1.85; }
.audition-poster { position: relative; display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 42px; overflow: hidden; background: var(--oshi-ink); color: #fff; }
.audition-poster::before { content: ""; position: absolute; width: 390px; height: 390px; right: -145px; bottom: -170px; border: 1px solid color-mix(in srgb, var(--audition-accent) 60%, transparent); border-radius: 50%; box-shadow: inset 0 0 0 66px rgba(255,255,255,.025), inset 0 0 0 67px color-mix(in srgb, var(--audition-accent-2) 15%, transparent); }
.audition-poster > span { grid-column: 1 / -1; margin-bottom: 34px; color: var(--audition-accent-2); font-size: .62rem; font-weight: 900; letter-spacing: .17em; }
.audition-poster strong { position: relative; z-index: 1; color: var(--audition-accent); font-family: "Arial Black", sans-serif; font-size: clamp(6rem, 14vw, 10rem); line-height: .62; letter-spacing: -.1em; }
.audition-poster small { position: relative; z-index: 1; align-self: end; padding-bottom: 3px; font-size: .57rem; font-weight: 900; letter-spacing: .1em; line-height: 1.7; }
.audition-poster i { position: absolute; top: 32px; right: 30px; padding: 10px 13px; border-radius: 999px; background: var(--audition-accent-2); color: var(--oshi-ink); font-size: .65rem; font-style: normal; font-weight: 900; transform: rotate(5deg); }
.audition-numbers { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.audition-numbers.is-compact { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); }
.audition-numbers div { min-width: 0; padding: 25px clamp(16px, 3vw, 38px); }
.audition-numbers > i { align-self: center; color: color-mix(in srgb, var(--audition-accent) 45%, var(--oshi-ink)); font-size: 1.2rem; font-style: normal; font-weight: 900; }
.audition-numbers span { display: block; color: #6f6578; font-size: .54rem; font-weight: 900; letter-spacing: .12em; }
.audition-numbers strong { display: inline-block; margin-top: 7px; font-family: "Arial Black", sans-serif; font-size: clamp(2.2rem, 5vw, 4.2rem); line-height: .8; letter-spacing: -.07em; }
.audition-numbers small { margin-left: 8px; color: #6f6578; font-size: .55rem; }
.audition-numbers .is-bloom { background: var(--audition-accent-2); }
.audition-numbers .is-bloom span,
.audition-numbers .is-bloom small { color: #514a2d; }
.audition-note { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 28px; padding: 25px clamp(24px, 6vw, 90px); border-bottom: 1px solid var(--oshi-line); background: color-mix(in srgb, var(--audition-accent) 20%, white); }
.audition-note small { color: #8c4f61; font-size: .57rem; font-weight: 900; letter-spacing: .14em; }
.audition-note p { max-width: 920px; margin: 0; font-family: "Yu Mincho", Georgia, serif; font-size: .82rem; font-weight: 700; line-height: 1.75; }
.audition-steps,
.audition-people { padding: 94px clamp(24px, 6vw, 90px) 112px; }
.audition-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .68fr); align-items: end; gap: 50px; }
.audition-section-head h2,
.audition-sources h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.6rem, 5vw, 4.9rem); line-height: .96; letter-spacing: -.07em; }
.audition-section-head > p { margin: 0; color: #665d70; font-size: .78rem; line-height: 1.85; }
.audition-steps > ol { position: relative; margin: 68px 0 0; padding: 0; list-style: none; }
.audition-steps > ol::before { content: ""; position: absolute; top: 55px; bottom: 55px; left: 54px; width: 3px; background: linear-gradient(var(--audition-accent), var(--audition-accent-2)); }
.audition-steps li { position: relative; display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 38px; padding-bottom: 25px; }
.audition-stage-marker { position: relative; z-index: 1; display: grid; width: 110px; height: 110px; place-items: center; border: 10px solid var(--oshi-paper); border-radius: 50%; background: var(--audition-accent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--audition-accent) 55%, var(--oshi-line)); }
.audition-steps li:nth-child(even) .audition-stage-marker { background: var(--audition-accent-2); }
.audition-stage-marker span { align-self: end; color: var(--oshi-ink); font-family: Georgia, serif; font-size: .55rem; }
.audition-stage-marker strong { align-self: start; font-family: "Arial Black", sans-serif; font-size: 1.55rem; line-height: .8; letter-spacing: -.05em; }
.audition-steps article { max-width: 920px; padding: 28px 30px; border: 1px solid var(--oshi-line); border-radius: 22px; background: rgba(255,255,255,.78); box-shadow: 0 17px 44px rgba(23,19,31,.06); }
.audition-stage-meta { display: flex; align-items: center; gap: 10px; }
.audition-stage-meta time { color: #6f6578; font-family: Georgia, serif; font-size: .62rem; }
.audition-stage-meta em { padding: 5px 8px; border-radius: 999px; background: color-mix(in srgb, var(--audition-accent-2) 72%, white); font-size: .53rem; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.audition-steps h3 { margin: 17px 0 0; font-family: "Yu Mincho", Georgia, serif; font-size: clamp(1.25rem, 2.5vw, 1.8rem); line-height: 1.4; }
.audition-steps article > p { margin: 10px 0 0; color: #665d70; font-size: .76rem; line-height: 1.8; }
.audition-stage-sources { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--oshi-line); }
.audition-stage-sources a { color: #7247dd; font-size: .58rem; font-weight: 800; }
.audition-people { background: var(--oshi-ink); color: #fff; }
.audition-people .idols-kicker { color: var(--audition-accent-2); }
.audition-people .audition-section-head > p { color: rgba(255,255,255,.58); }
.audition-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.audition-filters button { display: inline-flex; align-items: center; gap: 9px; min-height: 39px; padding: 0 13px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(255,255,255,.06); color: #fff; font: inherit; font-size: .63rem; font-weight: 900; cursor: pointer; }
.audition-filters button span { display: grid; min-width: 22px; height: 22px; padding: 0 5px; place-items: center; border-radius: 999px; background: rgba(255,255,255,.12); font-size: .56rem; }
.audition-filters button[aria-pressed="true"] { border-color: var(--audition-accent-2); background: var(--audition-accent-2); color: var(--oshi-ink); }
.audition-filters button[aria-pressed="true"] span { background: var(--oshi-ink); color: #fff; }
.audition-result { margin: 28px 0 13px; color: rgba(255,255,255,.65); font-size: .6rem; font-weight: 900; letter-spacing: .13em; }
.audition-result strong { color: var(--audition-accent); font-family: "Arial Black", sans-serif; font-size: 1.5rem; }
.audition-candidate-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); list-style: none; }
.audition-candidate-grid li { position: relative; display: flex; min-width: 0; min-height: 150px; padding: 17px; flex-direction: column; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.035); }
.audition-candidate-grid li::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 5px; background: rgba(255,255,255,.14); }
.audition-candidate-grid li.is-debut::before { background: var(--audition-accent-2); }
.audition-candidate-grid li.is-finalist::before { background: var(--audition-accent); }
.audition-candidate-grid li[hidden] { display: none; }
.audition-candidate-grid span { color: rgba(255,255,255,.65); font-family: Georgia, serif; font-size: .55rem; }
.audition-candidate-grid strong { margin-top: 22px; font-family: "Arial Black", sans-serif; font-size: clamp(1rem, 2vw, 1.45rem); line-height: .95; letter-spacing: -.04em; overflow-wrap: anywhere; }
.audition-candidate-grid small { margin-top: auto; padding-top: 17px; color: rgba(255,255,255,.65); font-size: .5rem; font-weight: 900; letter-spacing: .07em; }
.audition-candidate-grid .is-debut small { color: var(--audition-accent-2); }
.audition-candidate-grid .is-finalist small { color: var(--audition-accent); }
.audition-bloom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr); gap: 55px; padding: 88px clamp(24px, 6vw, 90px); background: linear-gradient(135deg, color-mix(in srgb, var(--audition-accent-2) 38%, white), var(--oshi-paper)); }
.audition-bloom h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: .96; letter-spacing: -.07em; }
.audition-bloom > div > p:last-child { max-width: 650px; margin: 22px 0 0; color: #665d70; font-size: .78rem; line-height: 1.85; }
.audition-bloom > a,
.audition-bloom > .audition-bloom-card { display: flex; min-height: 270px; padding: 28px; flex-direction: column; border: 2px solid var(--oshi-ink); border-radius: 24px; background: var(--audition-accent); color: var(--oshi-ink); text-decoration: none; box-shadow: 8px 8px 0 var(--oshi-ink); }
.audition-bloom > .audition-bloom-card { background: var(--audition-accent-2); }
.audition-bloom > a span,
.audition-bloom > .audition-bloom-card span { font-size: .57rem; font-weight: 900; letter-spacing: .14em; }
.audition-bloom > a strong,
.audition-bloom > .audition-bloom-card strong { margin-top: 32px; font-family: "Arial Black", sans-serif; font-size: clamp(4rem, 9vw, 7rem); line-height: .7; letter-spacing: -.09em; }
.audition-bloom > a em,
.audition-bloom > .audition-bloom-card em { margin-top: auto; font-size: .67rem; font-style: normal; font-weight: 900; }
.audition-sources { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 60px; padding: 88px clamp(24px, 6vw, 90px) 104px; background: var(--oshi-surface); }
.audition-sources > div:last-child { border-top: 1px solid var(--oshi-line); }
.audition-sources > div:last-child > a { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 18px 0; border-bottom: 1px solid var(--oshi-line); color: var(--oshi-ink); text-decoration: none; }
.audition-sources a > span { color: #71687a; font-family: Georgia, serif; font-size: .56rem; }
.audition-sources a > strong { font-size: .72rem; }
.audition-sources a > small { grid-column: 2; color: #6f6578; font-size: .54rem; }
.audition-sources a > em { grid-row: 1 / 3; grid-column: 3; color: color-mix(in srgb, var(--audition-accent) 48%, var(--oshi-ink)); font-size: 1rem; font-style: normal; }

/* OSHiSTORY — member colors */
.colors-hero { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); min-height: 610px; overflow: hidden; border-bottom: 1px solid var(--oshi-line); background: var(--oshi-ink); color: #fff; }
.colors-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 70px clamp(28px, 7vw, 105px); }
.colors-hero-copy .idols-kicker { color: var(--oshi-cyan); }
.colors-hero h1 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(4rem, 9vw, 8rem); font-weight: 900; line-height: .82; letter-spacing: -.085em; }
.colors-hero h1 em { color: var(--oshi-lime); font-style: normal; }
.colors-hero-copy > p:not(.idols-kicker) { max-width: 650px; margin: 28px 0 34px; color: rgba(255,255,255,.65); font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; line-height: 1.9; }
.colors-hero dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 640px; margin: 0; border-top: 1px solid rgba(255,255,255,.14); border-left: 1px solid rgba(255,255,255,.14); }
.colors-hero dl div { padding: 16px; border-right: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.colors-hero dt { color: rgba(255,255,255,.45); font-size: .5rem; font-weight: 900; letter-spacing: .12em; }
.colors-hero dd { margin: 8px 0 0; font-family: "Arial Black", sans-serif; font-size: 2.2rem; line-height: 1; }
.colors-spectrum { position: relative; display: grid; grid-template-columns: repeat(9, 1fr); min-height: 500px; overflow: hidden; }
.colors-spectrum::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, rgba(255,255,255,.23), transparent 38%, rgba(23,19,31,.3)); mix-blend-mode: overlay; }
.colors-spectrum > i { background: var(--palette-color); transform: skewX(-4deg) scaleX(1.14); transform-origin: center; }
.colors-spectrum > span { position: absolute; z-index: 1; right: 34px; bottom: 25px; color: rgba(255,255,255,.82); font-family: "Arial Black", sans-serif; font-size: clamp(2.1rem, 5vw, 5rem); line-height: .8; letter-spacing: -.06em; writing-mode: vertical-rl; }
.colors-directory { padding: 88px clamp(24px, 6vw, 90px) 108px; background: var(--oshi-paper); }
.colors-directory-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .6fr); align-items: end; gap: 54px; }
.colors-directory-head h2,
.colors-note h2 { margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.7rem, 6vw, 5.4rem); line-height: .92; letter-spacing: -.07em; }
.colors-directory-head > p { margin: 0; color: #665d70; font-size: .78rem; line-height: 1.85; }
.color-filters { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 50px; }
.color-filters button { display: inline-flex; align-items: center; gap: 8px; min-height: 39px; padding: 0 13px; border: 1px solid var(--oshi-line); border-radius: 999px; background: var(--oshi-surface); color: #5e5568; font: inherit; font-size: .65rem; font-weight: 800; cursor: pointer; }
.color-filters button:hover,
.color-filters button[aria-pressed="true"] { border-color: var(--oshi-ink); background: var(--oshi-ink); color: #fff; }
.color-filters button i { width: 13px; height: 13px; border: 1px solid rgba(23,19,31,.2); border-radius: 50%; background: var(--filter-color); box-shadow: inset 0 0 0 2px rgba(255,255,255,.35); }
.color-filters button i.is-all { border: 0; background: conic-gradient(#e83f4f, #f28b2a, #f0d64e, #3aaa6c, #56c8e7, #8b5bb5, #f39ac1, #e83f4f); }
.color-filters button span { color: #71687a; font-family: Georgia, serif; }
.color-filters button[aria-pressed="true"] span { color: var(--oshi-lime); }
.color-result { margin: 28px 0 14px; color: #6f6578; font-size: .58rem; font-weight: 900; letter-spacing: .15em; }
.color-result strong { color: var(--oshi-ink); font-family: "Arial Black", sans-serif; font-size: 1.45rem; letter-spacing: -.04em; }
.color-member-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); }
.color-member-card[hidden] { display: none; }
.color-member-card { min-width: 0; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: var(--oshi-surface); }
.color-member-card > a { position: relative; display: flex; min-height: 320px; padding: 20px; overflow: hidden; flex-direction: column; color: var(--oshi-ink); text-decoration: none; transition: background .18s ease; }
.color-member-card > a::after { content: ""; position: absolute; width: 150px; height: 150px; right: -76px; top: -76px; border: 26px solid color-mix(in srgb, var(--member-color) 38%, transparent); border-radius: 50%; }
.color-member-card > a:hover { background: color-mix(in srgb, var(--member-color) 9%, var(--oshi-surface)); }
.color-card-index { color: #71687a; font-family: Georgia, serif; font-size: .55rem; letter-spacing: .1em; }
.color-card-swatch { position: relative; display: grid; width: 104px; height: 104px; margin: 28px 0 22px; place-items: center; border: 1px solid color-mix(in srgb, var(--member-color) 55%, #aaa); border-radius: 50%; background: color-mix(in srgb, var(--member-color) 14%, white); }
.color-card-swatch i { width: 64px; height: 64px; border: 1px solid rgba(23,19,31,.13); border-radius: 50%; background: var(--member-color); box-shadow: 0 12px 24px color-mix(in srgb, var(--member-color) 34%, transparent); }
.color-card-swatch em { position: absolute; right: -7px; bottom: 2px; padding: 4px 8px; border-radius: 999px; background: var(--oshi-ink); color: #fff; font-size: .52rem; font-style: normal; font-weight: 900; }
.color-member-card > a > strong { font-family: "Arial Black", "Yu Mincho", sans-serif; font-size: clamp(1.5rem, 2.8vw, 2.3rem); line-height: .98; letter-spacing: -.05em; }
.color-member-card > a > small { margin-top: 8px; color: #655c6e; font-size: .62rem; font-weight: 800; }
.color-member-card > a > p { margin: auto 0 0; padding-top: 18px; color: #6f6578; font-size: .58rem; font-weight: 900; letter-spacing: .1em; }
.color-member-card > a > b { position: absolute; right: 18px; bottom: 15px; color: color-mix(in srgb, var(--member-color) 42%, var(--oshi-ink)); font-size: 1.35rem; }
.colors-note { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 70px; padding: 94px clamp(24px, 7vw, 110px); background: var(--oshi-surface); }
.colors-note h2 { font-size: clamp(2.5rem, 5vw, 4.7rem); }
.colors-note > div:last-child > p { margin: 0; color: #665d70; font-size: .8rem; line-height: 1.9; }
.colors-sources { margin-top: 30px; border-top: 1px solid var(--oshi-line); }
.colors-sources a { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 17px 0; border-bottom: 1px solid var(--oshi-line); color: var(--oshi-ink); font-size: .68rem; text-decoration: none; }
.colors-sources a span { color: #71687a; font-family: Georgia, serif; font-size: .55rem; }
.colors-sources a em { color: #6944ec; font-style: normal; }

@media (max-width: 980px) {
  .idols-hero,
  .idol-hero,
  .idol-person-hero,
  .journeys-hero,
  .history-hero,
  .journey-case-hero,
  .audition-hero { grid-template-columns: 1fr; }
  .idols-stage { min-height: 470px; }
  .idols-group-grid { grid-template-columns: 1fr; }
  .idol-hero-poster { min-height: 360px; }
  .idol-member-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .idol-person-poster { min-height: 360px; }
  .idol-person-journey { grid-template-columns: 1fr; gap: 0; margin-top: 54px; padding-left: 42px; }
  .idol-person-journey::before { content: ""; position: absolute; top: 6px; bottom: 44px; left: 35px; width: 2px; background: linear-gradient(var(--person-accent-2), var(--person-accent), transparent); }
  .idol-person-journey-item { padding: 0 0 34px 24px; }
  .idol-person-journey-item:not(:last-child)::after { content: "↓"; top: auto; right: auto; bottom: 7px; left: -33px; font-size: 1rem; }
  .idol-person-journey-node { position: absolute; top: 18px; left: -66px; width: 54px; height: 54px; margin: 0; border-width: 7px; }
  .idol-person-journey-item article { min-height: 0; padding: 28px 24px 24px; }
  .idol-person-journey-item article > p { min-height: 0; }
  .idol-person-overlap { top: auto; right: auto; bottom: 7px; left: 28px; }
  .journeys-hero dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .journeys-hero dl div { display: grid; align-content: center; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 0; }
  .journeys-hero dl div:last-child { border-right: 0; }
  .journey-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journey-case-path { grid-template-columns: 1fr; gap: 30px; padding-left: 30px; }
  .journey-case-path li:not(:last-child)::after { content: "↓"; top: auto; right: auto; bottom: -27px; left: 24px; transform: none; }
  .history-hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .history-hero-stats div { display: grid; align-content: center; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 0; }
  .history-hero-stats div:last-child { border-right: 0; }
  .history-era-intro { grid-template-columns: 100px minmax(0, 1fr); }
  .history-era-intro aside { grid-column: 1 / -1; border-top: 1px solid var(--oshi-line); border-left: 0; }
  .history-hub-grid { grid-template-columns: 1fr; }
  .history-hub-card { min-height: 310px; }
  .hub-hero { grid-template-columns: 1fr; }
  .hub-poster { min-height: 330px; }
  .hub-people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hub-branch-map { grid-template-columns: 1fr; }
  .hub-branch-map > i { padding: 3px 0; transform: rotate(90deg); }
  .hub-branch-center { min-height: 210px; }
  .audition-poster { min-height: 340px; }
  .audition-candidate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .colors-hero { grid-template-columns: 1fr; }
  .colors-spectrum { min-height: 320px; }
  .color-member-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .idols-bar { grid-template-columns: minmax(0, 1fr) auto; gap: 0 14px; min-height: auto; padding: 11px 18px 0; }
  .idols-primary-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 22px; width: calc(100% + 36px); margin: 8px -18px 0; padding: 0 18px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; }
  .idols-primary-nav::-webkit-scrollbar { display: none; }
  .idols-primary-nav a { flex: 0 0 auto; min-height: 47px; }
  .idols-breadcrumb { min-height: 37px; padding: 0 18px; }
  .idols-hero-copy,
  .idol-hero-copy { padding: 52px 21px 46px; }
  .idols-hero h1 { font-size: 3.6rem; }
  .idols-stage { min-height: 390px; }
  .idols-stage-card { padding: 20px; }
  .idols-stories,
  .idol-members,
  .idol-former { padding: 62px 18px 70px; }
  .idols-section-head,
  .idol-section-heading,
  .idol-history-head,
  .idol-person-story-head { grid-template-columns: 1fr; align-items: start; }
  .idols-section-head { flex-direction: column; align-items: start; }
  .idols-group-card { grid-template-columns: 1fr 24px; min-height: 280px; padding: 26px 22px; }
  .idols-card-index { grid-column: 1 / -1; padding: 0; }
  .idols-card-latest { display: none; }
  .idols-group-card strong { font-size: 3.35rem; }
  .idols-manifesto { padding: 74px 18px; }
  .idols-footer { flex-direction: column; padding: 20px 18px; }
  .idol-hero h1 { font-size: 4.5rem; }
  .idol-hero-poster { min-height: 300px; padding: 34px; }
  .idol-facts { grid-template-columns: repeat(2, 1fr); }
  .idol-facts > div:nth-child(2) { border-right: 0; }
  .idol-facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--oshi-line); }
  .idol-member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .idol-member-card,
  .idol-member-card-body { min-height: 145px; }
  .idol-member-card-body { padding: 16px; }
  .idol-former li > a,
  .idol-former li > div { grid-template-columns: minmax(0, 1fr) auto; gap: 7px 14px; }
  .idol-former li em { grid-column: 1 / -1; }
  .idol-journey-feature { grid-template-columns: 1fr; gap: 28px; padding: 54px 18px; }
  .idol-journey-feature-list > a { padding: 21px 18px; }
  .idol-audition-feature { grid-template-columns: 1fr; gap: 30px; padding: 58px 18px 68px; }
  .idol-person-hero-copy { padding: 58px 21px 50px; }
  .idol-person-hero h1 { font-size: 5rem; }
  .idol-person-poster { min-height: 300px; padding: 34px; }
  .idol-person-facts { grid-template-columns: 1fr 1fr; }
  .idol-person-facts > div:nth-child(2) { border-right: 0; }
  .idol-person-facts > div:last-child { grid-column: 1 / -1; border-top: 1px solid var(--oshi-line); }
  .idol-person-story { padding: 68px 18px 78px; }
  .idol-person-story-head { gap: 24px; }
  .idol-person-journey { margin-top: 44px; padding-left: 30px; }
  .idol-person-journey::before { left: 23px; }
  .idol-person-journey-node { left: -54px; }
  .idol-person-group-link,
  .idol-person-group-name { font-size: 2rem; }
  .idols-journey-entry { grid-template-columns: 1fr; gap: 28px; padding: 54px 18px; }
  .idols-history-entry-card,
  .idols-journey-entry-card,
  .idols-color-entry-card { grid-template-columns: 1fr; padding: 25px 22px; }
  .colors-hero-copy { padding: 54px 21px; }
  .colors-hero h1 { font-size: 4.4rem; }
  .colors-hero dl { grid-template-columns: 1fr; }
  .colors-hero dl div { display: flex; align-items: center; justify-content: space-between; }
  .colors-spectrum { min-height: 250px; }
  .colors-spectrum > span { right: 18px; bottom: 16px; writing-mode: horizontal-tb; }
  .colors-directory { padding: 64px 18px 78px; }
  .colors-directory-head,
  .colors-note { grid-template-columns: 1fr; gap: 28px; }
  .color-filters { flex-wrap: nowrap; margin-right: -18px; padding: 3px 18px 8px 0; overflow-x: auto; }
  .color-filters button { flex: 0 0 auto; }
  .color-member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .colors-note { padding: 68px 18px 78px; }
  .journeys-hero > div,
  .journey-case-hero-copy { padding: 54px 21px; }
  .journeys-hero h1 { font-size: 4rem; }
  .journeys-hero dl { grid-template-columns: 1fr; }
  .journeys-hero dl div { display: flex; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); }
  .journeys-hero dl div:last-child { border-bottom: 0; }
  .journey-index { padding: 62px 18px 76px; }
  .journey-index-head,
  .journey-case-section-head,
  .journey-case-sources { grid-template-columns: 1fr; }
  .journey-index-head,
  .journey-case-section-head { gap: 24px; }
  .journey-index-grid { grid-template-columns: 1fr; }
  .journey-index-card > a { min-height: 320px; }
  .journey-case-number { min-height: 280px; padding: 32px; }
  .journey-case-facts { grid-template-columns: repeat(2, 1fr); }
  .journey-case-facts div:nth-child(2) { border-right: 0; }
  .journey-case-facts div:nth-child(-n+2) { border-bottom: 1px solid var(--oshi-line); }
  .journey-case-path-section { padding: 68px 18px 78px; }
  .journey-case-sources { gap: 36px; padding: 64px 18px; }
  .history-hero-copy { padding: 56px 21px; }
  .history-hero h1 { font-size: 3.8rem; }
  .history-hero-stats { grid-template-columns: 1fr; }
  .history-hero-stats div { display: flex; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); }
  .history-hero-stats div:last-child { border-bottom: 0; }
  .history-reader { padding: 66px 18px 78px; }
  .history-reader-head { grid-template-columns: 1fr; gap: 24px; }
  .history-era-tabs { grid-template-columns: repeat(4, minmax(165px, 1fr)); margin-right: -18px; overflow-x: auto; box-shadow: none; }
  .history-era-tabs button { min-height: 96px; }
  .history-era-intro { grid-template-columns: 1fr; }
  .history-era-index { min-height: 130px; }
  .history-era-intro > div:nth-child(2) { padding: 34px 22px; }
  .history-era-intro aside { grid-column: auto; padding: 28px 22px; }
  .history-group-hubs { grid-template-columns: 1fr; padding: 22px; }
  .history-milestone-list { padding: 20px 18px 42px 30px; }
  .history-milestone-list::before { left: 17px; }
  .history-milestone { grid-template-columns: 1fr; gap: 10px; padding: 23px 0 23px 16px; }
  .history-milestone::before { top: 33px; left: -19px; }
  .history-milestone-year { text-align: left; }
  .history-milestone-year time,
  .history-milestone-year span { display: inline; margin: 0 9px 0 0; }
  .history-milestone > article { padding: 22px 18px; }
  .history-people-grid { grid-template-columns: 1fr; }
  .history-next { grid-template-columns: 1fr; gap: 34px; padding: 68px 18px; }
  .history-hubs { padding: 66px 18px 78px; }
  .hub-hero-copy { padding: 56px 21px; }
  .hub-hero h1 { font-size: 4.4rem; }
  .hub-poster { min-height: 280px; padding: 32px; }
  .hub-facts { grid-template-columns: repeat(2, 1fr); }
  .hub-facts div:nth-child(2) { border-right: 0; }
  .hub-facts div:nth-child(-n+2) { border-bottom: 1px solid var(--oshi-line); }
  .hub-lens { grid-template-columns: 1fr; gap: 10px; padding: 24px 18px; }
  .hub-journeys { padding: 68px 18px 78px; }
  .hub-section-head,
  .hub-sources { grid-template-columns: 1fr; gap: 24px; }
  .hub-filters { flex-wrap: nowrap; margin-right: -18px; padding: 3px 18px 8px 0; overflow-x: auto; }
  .hub-filters button { flex: 0 0 auto; }
  .hub-people-grid { grid-template-columns: 1fr; }
  .hub-person-card > a { min-height: 250px; }
  .hub-timeline { padding: 68px 18px 78px; }
  .hub-timeline ol { margin-top: 42px; padding-left: 26px; }
  .hub-timeline ol::before { left: 5px; }
  .hub-timeline li { grid-template-columns: 1fr; gap: 8px; }
  .hub-timeline li::before { top: 5px; left: -26px; }
  .hub-timeline-year { padding: 0; text-align: left; }
  .hub-timeline-year time,
  .hub-timeline-year span { display: inline; margin-right: 8px; }
  .hub-timeline li article { padding: 21px 18px; }
  .hub-sources { padding: 66px 18px 78px; }
  .hub-next { align-items: flex-start; flex-direction: column; padding: 24px 18px; }
  .hub-branch { padding: 68px 18px 78px; }
  .hub-branch-map { margin-top: 42px; }
  .hub-role-shift { padding: 68px 18px 78px; }
  .hub-role-shift-grid { grid-template-columns: 1fr; margin-top: 42px; }
  .hub-role-shift-grid > a { min-height: 430px; }
  .audition-hero-copy { padding: 56px 21px; }
  .audition-hero h1 { font-size: 4.2rem; }
  .audition-poster { min-height: 290px; padding: 32px; }
  .audition-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audition-numbers > i { display: none; }
  .audition-numbers div { border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); }
  .audition-note { grid-template-columns: 1fr; gap: 10px; padding: 24px 18px; }
  .audition-steps,
  .audition-people { padding: 68px 18px 78px; }
  .audition-section-head,
  .audition-bloom,
  .audition-sources { grid-template-columns: 1fr; gap: 28px; }
  .audition-steps > ol { margin-top: 46px; padding-left: 30px; }
  .audition-steps > ol::before { left: 5px; }
  .audition-steps li { grid-template-columns: 1fr; gap: 10px; padding-bottom: 30px; }
  .audition-stage-marker { position: absolute; top: 3px; left: -52px; width: 46px; height: 46px; border-width: 6px; }
  .audition-stage-marker span { display: none; }
  .audition-stage-marker strong { align-self: center; font-size: .8rem; }
  .audition-steps article { padding: 22px 19px; }
  .audition-filters { flex-wrap: nowrap; margin-right: -18px; padding: 3px 18px 8px 0; overflow-x: auto; }
  .audition-filters button { flex: 0 0 auto; }
  .audition-candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audition-bloom { padding: 68px 18px 78px; }
  .audition-sources { padding: 66px 18px 78px; }
  .idol-history { padding: 68px 18px 78px; }
  .idol-timeline { margin-top: 40px; }
  .idol-timeline::before { left: 5px; }
  .idol-timeline-item { grid-template-columns: 1fr; gap: 8px; padding: 0 0 26px 28px; }
  .idol-timeline-item::before { top: 4px; left: 0; }
  .idol-timeline-date { padding: 0; text-align: left; }
  .idol-timeline-date span,
  .idol-timeline-date time { display: inline; margin: 0 8px 0 0; }
  .idol-timeline-item article { padding: 19px 18px; }
}

@media (max-width: 430px) {
  .idols-primary-nav { display: flex; gap: 18px; }
  .idols-primary-nav a { font-size: .67rem; }
  .idols-culture-link { font-size: .54rem; }
  .idols-stage-card { width: 74%; }
  .idols-stage-card.is-back { left: 8%; }
  .idols-stage-card.is-front { right: 7%; }
  .idol-member-grid { grid-template-columns: 1fr; }
  .color-member-grid { grid-template-columns: 1fr; }
  .audition-candidate-grid { grid-template-columns: 1fr; }
  .journey-filters { flex-wrap: nowrap; margin-right: -18px; padding: 3px 18px 8px 0; overflow-x: auto; }
  .journey-filters button { flex: 0 0 auto; }
  .journey-case-sources li { grid-template-columns: 24px minmax(0, 1fr); }
  .journey-case-sources li > a { grid-column: 2; }
}

/* Audition people and culture-wide discovery */
.audition-candidate-grid li { padding: 0; }
.audition-candidate-grid li > a { display: flex; min-height: 150px; padding: 17px; flex-direction: column; color: inherit; text-decoration: none; }
.audition-candidate-grid li > a:hover { background: rgba(255,255,255,.07); }
.audition-candidate-grid li em { margin-top: 8px; color: rgba(255,255,255,.7); font-size: .52rem; font-style: normal; font-weight: 800; opacity: 0; transform: translateY(3px); transition: .18s ease; }
.audition-candidate-grid li > a:hover em,
.audition-candidate-grid li > a:focus-visible em { opacity: 1; transform: none; }
.audition-discover-banner { display: grid; grid-template-columns: .8fr 1.6fr auto; gap: 30px; align-items: center; padding: 29px clamp(24px, 6vw, 90px); border-top: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: linear-gradient(100deg, #e8e1ff, #d9f7f6); color: var(--oshi-ink); text-decoration: none; }
.audition-discover-banner span { font-size: .62rem; font-weight: 900; letter-spacing: .08em; }
.audition-discover-banner strong { font-family: "Arial Black", sans-serif; font-size: clamp(1.15rem, 2.2vw, 1.8rem); letter-spacing: -.045em; }
.audition-discover-banner em { font-size: .68rem; font-style: normal; font-weight: 900; }
.idols-discover-entry-card { background: linear-gradient(125deg, #211a36, #5b4c8c 62%, #2f8e97); color: #fff; }
.idols-discover-entry-card > span { color: #c9ff71; }

.audition-person-page { background: #f6f3ec; color: var(--oshi-ink); }
.audition-person-hero { display: grid; min-height: 680px; grid-template-columns: minmax(0, 1.6fr) minmax(320px, .75fr); background: radial-gradient(circle at 70% 15%, color-mix(in srgb, var(--person-accent-2) 36%, transparent), transparent 35%), linear-gradient(135deg, #f9f6ef 54%, color-mix(in srgb, var(--person-accent) 22%, #fff)); }
.audition-person-hero > div { display: flex; padding: clamp(70px, 10vw, 145px) clamp(24px, 7vw, 108px); flex-direction: column; justify-content: center; }
.audition-person-hero h1 { max-width: 1000px; margin: 12px 0 0; font-family: "Arial Black", sans-serif; font-size: clamp(4.2rem, 11vw, 10rem); line-height: .82; letter-spacing: -.085em; overflow-wrap: anywhere; }
.audition-person-aliases { margin: 26px 0 0; color: rgba(20,18,29,.52); font-size: .72rem; font-weight: 800; }
.audition-person-hero h2 { max-width: 760px; margin: auto 0 18px; font-family: "Arial Black", sans-serif; font-size: clamp(1.8rem, 4vw, 4rem); line-height: 1; letter-spacing: -.06em; }
.audition-person-hero h2 + p { max-width: 700px; margin: 0; color: rgba(20,18,29,.68); line-height: 1.9; }
.audition-person-hero .idol-research-status { margin-top: 24px; }
.audition-person-hero dl { display: grid; margin: 0; border-left: 1px solid rgba(20,18,29,.13); background: rgba(255,255,255,.45); }
.audition-person-hero dl div { display: flex; min-height: 180px; padding: 28px; flex-direction: column; justify-content: space-between; border-bottom: 1px solid rgba(20,18,29,.13); }
.audition-person-hero dt { font-size: .58rem; font-weight: 900; letter-spacing: .12em; }
.audition-person-hero dd { margin: 0; font-family: "Arial Black", sans-serif; font-size: clamp(1.5rem, 4vw, 3.5rem); line-height: .95; letter-spacing: -.06em; overflow-wrap: anywhere; }
.audition-person-route { padding: 110px clamp(24px, 7vw, 108px) 130px; background: #16131f; color: #fff; }
.audition-person-route .audition-section-head > p { color: rgba(255,255,255,.58); }
.audition-person-route > ol { position: relative; max-width: 1120px; margin: 80px auto 0; padding: 0; list-style: none; }
.audition-person-route > ol::before { content: ""; position: absolute; top: 22px; bottom: 40px; left: 97px; width: 1px; background: linear-gradient(var(--person-accent-2), rgba(255,255,255,.14)); }
.audition-person-route li { position: relative; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 30px; padding-bottom: 45px; }
.audition-person-marker { display: flex; padding-top: 24px; flex-direction: column; align-items: flex-end; }
.audition-person-marker span { color: var(--route-accent); font-family: Georgia, serif; font-size: 2.3rem; font-style: italic; }
.audition-person-marker time { margin-top: 7px; color: rgba(255,255,255,.65); font-size: .62rem; font-weight: 900; }
.audition-person-route li::before { content: ""; position: absolute; top: 34px; left: 90px; width: 15px; height: 15px; border: 4px solid #16131f; border-radius: 50%; background: var(--route-accent); box-shadow: 0 0 0 1px rgba(255,255,255,.22); }
.audition-person-route article { padding: 31px 34px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.045); }
.audition-person-meta { display: flex; gap: 16px; justify-content: space-between; }
.audition-person-meta em { color: var(--route-accent); font-size: .63rem; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.audition-person-meta small { color: rgba(255,255,255,.65); font-size: .54rem; font-weight: 800; }
.audition-person-route h3 { margin: 24px 0 0; font-family: "Arial Black", sans-serif; font-size: clamp(2rem, 5vw, 4.8rem); line-height: .9; letter-spacing: -.065em; }
.audition-person-record-name { margin: 25px 0 0 !important; color: rgba(255,255,255,.65) !important; font-size: .68rem; }
.audition-person-record-name strong { margin-left: 10px; color: #fff; }
.audition-person-route article > p { max-width: 760px; color: rgba(255,255,255,.64); line-height: 1.8; }
.audition-person-actions { display: flex; gap: 10px; margin-top: 27px; flex-wrap: wrap; }
.audition-person-actions a { display: inline-flex; min-height: 39px; padding: 0 14px; align-items: center; border: 1px solid rgba(255,255,255,.22); color: #fff; font-size: .6rem; font-weight: 900; text-decoration: none; }
.audition-person-actions a:first-child { border-color: var(--route-accent); background: var(--route-accent); color: #14121d; }
.audition-person-next { display: grid; grid-template-columns: 1.5fr minmax(260px, .7fr); gap: 40px; align-items: center; padding: 85px clamp(24px, 7vw, 108px); background: linear-gradient(110deg, color-mix(in srgb, var(--person-accent-2) 55%, #fff), #fff); }
.audition-person-next h2 { margin: 10px 0 0; font-family: "Arial Black", sans-serif; font-size: clamp(2.2rem, 5vw, 4.8rem); line-height: .95; letter-spacing: -.065em; }
.audition-person-next > a { display: flex; min-height: 100px; padding: 24px; align-items: center; justify-content: space-between; border: 1px solid rgba(20,18,29,.24); color: var(--oshi-ink); font-weight: 900; text-decoration: none; }

/* Editorial discoveries */
.idols-discoveries { padding: 94px clamp(24px, 6vw, 90px) 110px; overflow: hidden; background: var(--oshi-ink); color: #fff; }
.idols-discoveries-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr); align-items: end; gap: 60px; }
.idols-discoveries-head .idols-kicker { color: var(--oshi-lime); }
.idols-discoveries-head h2 { max-width: 900px; margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.8rem, 6vw, 5.9rem); font-weight: 900; line-height: .91; letter-spacing: -.075em; }
.idols-discoveries-head > p { margin: 0 0 6px; color: #c8c0d2; font-size: .82rem; line-height: 1.9; }
.idols-discovery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 68px; }
.idols-discovery-card { position: relative; min-width: 0; min-height: 420px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 26px; background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.025)); }
.idols-discovery-card::before { content: ""; position: absolute; width: 220px; height: 220px; right: -105px; top: -105px; border: 38px solid color-mix(in srgb, var(--discovery-accent) 52%, transparent); border-radius: 50%; opacity: .62; transition: transform .35s ease; }
.idols-discovery-card.is-featured { grid-column: span 2; background: linear-gradient(135deg, color-mix(in srgb, var(--discovery-accent) 18%, var(--oshi-ink)), color-mix(in srgb, var(--discovery-accent-2) 15%, var(--oshi-ink))); }
.idols-discovery-card > a { position: relative; z-index: 1; display: flex; min-height: 100%; padding: 28px; flex-direction: column; color: inherit; text-decoration: none; }
.idols-discovery-card-meta { display: flex; min-height: 32px; align-items: flex-start; justify-content: space-between; gap: 18px; color: #bdb4c8; font-size: .53rem; font-weight: 900; letter-spacing: .12em; }
.idols-discovery-card-meta em { max-width: 64%; color: var(--discovery-accent); font-style: normal; text-align: right; }
.idols-discovery-card h3 { max-width: 650px; margin: 44px 0 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2rem, 3.3vw, 3.55rem); font-weight: 900; line-height: .94; letter-spacing: -.06em; }
.idols-discovery-card:not(.is-featured) h3 { font-size: clamp(1.8rem, 2.4vw, 2.65rem); }
.idols-discovery-card > a > p { max-width: 680px; margin: 20px 0 0; color: #cfc8d6; font-size: .74rem; line-height: 1.8; }
.idols-discovery-route { display: flex; gap: 7px; align-items: center; margin: auto 0 0; padding-top: 30px; overflow-x: auto; scrollbar-width: none; }
.idols-discovery-route::-webkit-scrollbar { display: none; }
.idols-discovery-route span { flex: 0 0 auto; padding: 8px 10px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(255,255,255,.06); font-size: .59rem; font-weight: 800; white-space: nowrap; }
.idols-discovery-route i { flex: 0 0 auto; color: var(--discovery-accent-2); font-size: .72rem; font-style: normal; font-weight: 900; }
.idols-discovery-card-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.16); }
.idols-discovery-card-foot strong { color: var(--discovery-accent); font-size: .7rem; }
.idols-discovery-card-foot small { color: #978da3; font-size: .54rem; }
.idols-discovery-card:hover { border-color: color-mix(in srgb, var(--discovery-accent) 75%, #fff); }
.idols-discovery-card:hover::before { transform: translate(-12px, 12px) scale(1.08); }

/* Complete culture journey */
.idol-culture-feature { padding: 98px clamp(24px, 6vw, 90px) 110px; overflow: hidden; background: var(--oshi-ink); color: #fff; }
.idol-culture-feature-intro { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .55fr); gap: 70px; align-items: end; }
.idol-culture-feature-intro .idols-kicker { color: var(--person-accent); }
.idol-culture-feature-intro h2 { max-width: 850px; margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3rem, 6.5vw, 6.4rem); font-weight: 900; line-height: .88; letter-spacing: -.075em; }
.idol-culture-feature-intro > div > p:last-child { max-width: 780px; margin: 28px 0 0; color: #cec6d6; font-size: .83rem; line-height: 1.9; }
.idol-culture-feature-intro aside { padding: 26px; border: 1px solid rgba(255,255,255,.19); border-radius: 22px; background: rgba(255,255,255,.055); }
.idol-culture-feature-intro aside > span { color: var(--person-accent-2); font-size: .56rem; font-weight: 900; letter-spacing: .14em; }
.idol-culture-feature-intro aside > p { margin: 15px 0 0; color: #eee9f2; font-size: .75rem; line-height: 1.85; }
.idol-culture-confidence { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.15); }
.idol-culture-confidence i { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: var(--person-accent); color: var(--oshi-ink); font-size: .62rem; font-style: normal; font-weight: 900; }
.idol-culture-confidence strong { font-size: .59rem; }
.idol-culture-confidence small { color: #9f94aa; font-size: .5rem; font-weight: 800; letter-spacing: .08em; }
.idol-culture-route { display: grid; grid-template-columns: repeat(var(--culture-step-count), minmax(235px, 1fr)); gap: 13px; margin: 72px 0 0; padding: 0 0 14px; overflow-x: auto; list-style: none; scrollbar-color: var(--person-accent) rgba(255,255,255,.08); }
.idol-culture-step { position: relative; min-height: 400px; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 22px; background: rgba(255,255,255,.045); }
.idol-culture-step::after { content: "→"; position: absolute; right: -8px; bottom: -28px; color: color-mix(in srgb, var(--person-accent-2) 22%, transparent); font-family: "Arial Black", sans-serif; font-size: 8rem; line-height: 1; pointer-events: none; }
.idol-culture-step > :is(a, article) { position: relative; z-index: 1; display: flex; min-height: 100%; margin: 0; padding: 24px; flex-direction: column; color: #fff; text-decoration: none; }
.idol-culture-step-head { display: flex; align-items: center; justify-content: space-between; color: #a79caf; font-family: Georgia, serif; font-size: .66rem; }
.idol-culture-step > :is(a, article) > em { align-self: flex-start; margin-top: 44px; padding: 6px 9px; border-radius: 999px; background: var(--person-accent-2); color: var(--oshi-ink); font-size: .5rem; font-style: normal; font-weight: 900; letter-spacing: .1em; }
.idol-culture-step h3 { margin: 18px 0 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(1.9rem, 2.8vw, 3rem); line-height: .9; letter-spacing: -.06em; overflow-wrap: anywhere; }
.idol-culture-step > :is(a, article) > strong { margin-top: 15px; color: var(--person-accent); font-size: .67rem; line-height: 1.5; }
.idol-culture-step p { margin: 18px 0 0; color: #c9c1d0; font-size: .7rem; line-height: 1.75; }
.idol-culture-step > :is(a, article) > small { margin: auto 0 0; padding-top: 26px; color: #9f94aa; font-size: .53rem; font-weight: 800; letter-spacing: .08em; }
.idol-culture-step:hover { border-color: var(--person-accent); background: color-mix(in srgb, var(--person-accent) 10%, var(--oshi-ink)); }
.idol-culture-feature-footer { display: grid; grid-template-columns: minmax(250px, .55fr) minmax(0, 1.45fr); gap: 15px; margin-top: 42px; }
.idol-culture-feature-footer.is-sources-only { grid-template-columns: 1fr; }
.idol-culture-audition-bridge { display: grid; grid-template-columns: 1fr auto; gap: 10px 20px; align-items: center; padding: 24px; border-radius: 20px; background: var(--person-accent); color: var(--oshi-ink); text-decoration: none; }
.idol-culture-audition-bridge span { grid-column: 1 / -1; font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.idol-culture-audition-bridge strong { font-size: .76rem; }
.idol-culture-audition-bridge em { font-size: 1.2rem; font-style: normal; }
.idol-culture-feature details { padding: 0 24px; border: 1px solid rgba(255,255,255,.16); border-radius: 20px; }
.idol-culture-feature summary { display: flex; min-height: 86px; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; font-size: .72rem; font-weight: 900; list-style: none; }
.idol-culture-feature summary::-webkit-details-marker { display: none; }
.idol-culture-feature summary span { color: #958a9f; font-size: .52rem; letter-spacing: .1em; }
.idol-culture-feature details > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 0 0 24px; }
.idol-culture-feature details a { display: grid; grid-template-columns: auto 1fr auto; gap: 8px 12px; padding: 14px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; color: #fff; text-decoration: none; }
.idol-culture-feature details a > span { grid-row: 1 / 3; color: var(--person-accent); font-family: Georgia, serif; font-size: .58rem; }
.idol-culture-feature details a strong { font-size: .62rem; line-height: 1.45; }
.idol-culture-feature details a small { color: #988da2; font-size: .5rem; }
.idol-culture-feature details a em { grid-column: 3; grid-row: 1 / 3; align-self: center; font-style: normal; }

/* Fan-facing creative ledger */
.idol-fan-dossier { padding: 112px clamp(24px, 6vw, 90px) 124px; background: #f2eef8; color: var(--oshi-ink); }
.idol-fan-dossier-head { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .55fr); gap: 64px; align-items: end; }
.idol-fan-dossier-head .idols-kicker { color: color-mix(in srgb, var(--fan-accent) 72%, var(--oshi-ink)); }
.idol-fan-dossier-head h2 { max-width: 920px; margin: 14px 0 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3rem, 6.1vw, 6rem); font-weight: 900; line-height: .9; letter-spacing: -.072em; }
.idol-fan-dossier-head > div > p:last-child { max-width: 800px; margin: 28px 0 0; color: #5f5768; font-size: .82rem; line-height: 1.9; }
.idol-fan-dossier-head aside { padding: 28px; border: 1px solid color-mix(in srgb, var(--fan-accent) 32%, #d4cddb); border-radius: 24px; background: color-mix(in srgb, var(--fan-accent-2) 13%, #fff); }
.idol-fan-dossier-head aside span { color: color-mix(in srgb, var(--fan-accent) 76%, var(--oshi-ink)); font-size: .55rem; font-weight: 900; letter-spacing: .14em; }
.idol-fan-dossier-head aside p { margin: 15px 0 0; color: #4e4657; font-size: .72rem; line-height: 1.85; }
.idol-fan-chapter { margin-top: 92px; padding-top: 32px; border-top: 1px solid #cfc7d7; }
.idol-fan-chapter-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .45fr); gap: 50px; align-items: end; }
.idol-fan-chapter-head span { color: color-mix(in srgb, var(--fan-accent) 78%, var(--oshi-ink)); font-size: .54rem; font-weight: 900; letter-spacing: .13em; }
.idol-fan-chapter-head h3 { max-width: 830px; margin: 15px 0 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.2rem, 4.2vw, 4.5rem); line-height: .94; letter-spacing: -.06em; }
.idol-fan-chapter-head > p { margin: 0; color: #655c6e; font-size: .7rem; line-height: 1.85; }
.idol-fan-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 12px; margin: 42px 0 0; padding: 0; list-style: none; }
.idol-fan-card { min-width: 0; min-height: 330px; border: 1px solid #d2cad9; border-radius: 20px; background: rgba(255,255,255,.72); }
.idol-fan-card > :is(a, article) { position: relative; display: flex; min-height: 100%; padding: 24px; flex-direction: column; color: inherit; text-decoration: none; }
.idol-fan-card-index { position: absolute; top: 22px; right: 22px; color: #746b7b; font-family: Georgia, serif; font-size: .62rem; }
.idol-fan-card em { align-self: flex-start; max-width: calc(100% - 38px); padding: 6px 9px; border-radius: 999px; background: color-mix(in srgb, var(--fan-card-accent, var(--fan-accent-2)) 72%, #fff); font-size: .49rem; font-style: normal; font-weight: 900; letter-spacing: .09em; }
.idol-fan-card h4 { margin: 44px 0 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(1.55rem, 2.5vw, 2.6rem); line-height: .93; letter-spacing: -.055em; overflow-wrap: anywhere; }
.idol-fan-card strong { margin-top: 15px; color: color-mix(in srgb, var(--fan-card-accent, var(--fan-accent)) 75%, #201a26); font-size: .65rem; line-height: 1.55; }
.idol-fan-card p { margin: 19px 0 0; color: #5e5666; font-size: .68rem; line-height: 1.8; }
.idol-fan-card small { margin-top: auto; padding-top: 24px; color: #71687a; font-size: .51rem; font-weight: 900; letter-spacing: .08em; }
.idol-fan-card:hover { border-color: var(--fan-card-accent, var(--fan-accent)); background: #fff; transform: translateY(-2px); }
.idol-fan-sources { margin-top: 72px; padding: 0 26px; border: 1px solid #cfc7d7; border-radius: 22px; background: rgba(255,255,255,.48); }
.idol-fan-sources summary { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; font-size: .7rem; font-weight: 900; list-style: none; }
.idol-fan-sources summary::-webkit-details-marker { display: none; }
.idol-fan-sources summary span { color: #71687a; font-size: .5rem; letter-spacing: .1em; }
.idol-fan-sources > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-bottom: 26px; }
.idol-fan-sources a { display: grid; grid-template-columns: auto 1fr auto; gap: 8px 12px; padding: 15px; border: 1px solid #d8d0df; border-radius: 13px; background: rgba(255,255,255,.66); color: inherit; text-decoration: none; }
.idol-fan-sources a > span { grid-row: 1 / 3; color: color-mix(in srgb, var(--fan-accent) 45%, var(--oshi-ink)); font-family: Georgia, serif; font-size: .57rem; }
.idol-fan-sources a strong { font-size: .61rem; line-height: 1.45; }
.idol-fan-sources a small { color: #71687a; font-size: .49rem; }
.idol-fan-sources a em { grid-column: 3; grid-row: 1 / 3; align-self: center; font-style: normal; }

/* Interactive group branch map */
.idol-group-branch { padding: 112px clamp(24px, 6vw, 90px) 124px; overflow: hidden; background: #191520; color: #fff; }
.idol-branch-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(310px, .55fr); gap: 64px; align-items: end; }
.idol-branch-head .idols-kicker { color: var(--branch-accent-2); }
.idol-branch-head h2 { max-width: 900px; margin: 16px 0 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3rem, 6vw, 6.2rem); line-height: .88; letter-spacing: -.075em; }
.idol-branch-head > div:last-child > p { margin: 0; color: #c8c0d0; font-size: .78rem; line-height: 1.9; }
.idol-branch-head > div:last-child > small { display: block; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.16); color: var(--branch-accent); font-size: .53rem; font-weight: 900; line-height: 1.7; letter-spacing: .06em; }
.idol-branch-stats { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 18px; align-items: center; margin-top: 78px; }
.idol-branch-stats > div { display: grid; min-height: 156px; padding: 22px; align-content: space-between; border: 1px solid rgba(255,255,255,.17); border-radius: 20px; background: rgba(255,255,255,.045); }
.idol-branch-stats span { color: #958b9e; font-size: .49rem; font-weight: 900; letter-spacing: .13em; }
.idol-branch-stats strong { color: var(--branch-accent-2); font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3.2rem, 6vw, 5.8rem); line-height: .65; letter-spacing: -.08em; }
.idol-branch-stats small { color: #c6bdca; font-size: .52rem; font-weight: 900; letter-spacing: .08em; }
.idol-branch-stats > i { color: var(--branch-accent); font-size: 1.25rem; font-style: normal; }
.idol-branch-controls { display: flex; gap: 7px; margin-top: 54px; flex-wrap: wrap; }
.idol-branch-controls button { display: grid; min-height: 54px; grid-template-columns: auto 1fr; gap: 9px; align-items: center; padding: 0 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: transparent; color: #fff; font: inherit; cursor: pointer; transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease; }
.idol-branch-controls button span { color: var(--branch-person-accent, var(--branch-accent-2)); font-family: Georgia, serif; font-size: .52rem; }
.idol-branch-controls button strong { font-size: .57rem; letter-spacing: .04em; }
.idol-branch-controls button:hover { border-color: var(--branch-person-accent, var(--branch-accent)); transform: translateY(-1px); }
.idol-branch-controls button[aria-pressed="true"] { border-color: var(--branch-person-accent, var(--branch-accent-2)); background: var(--branch-person-accent, var(--branch-accent-2)); color: #17131d; }
.idol-branch-controls button[aria-pressed="true"] span { color: #17131d; }
.idol-branch-controls .is-overview { --branch-person-accent: var(--branch-accent-2); }
.idol-branch-live { margin: 16px 0 0; color: #968c9e; font-size: .51rem; font-weight: 800; letter-spacing: .08em; }
.idol-branch-canvas { min-height: 540px; margin-top: 24px; padding: clamp(22px, 3vw, 42px); border: 1px solid rgba(255,255,255,.16); border-radius: 28px; background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--branch-accent) 12%, transparent), transparent 36%), repeating-linear-gradient(90deg, transparent 0 calc(20% - 1px), rgba(255,255,255,.035) calc(20% - 1px) 20%), #231e2a; }
.idol-branch-overview,
.idol-branch-person-route { display: grid; min-height: 454px; grid-template-columns: minmax(170px, .72fr) 62px minmax(190px, .8fr) 62px minmax(0, 1.46fr); gap: 16px; align-items: center; }
.idol-branch-overview[hidden],
.idol-branch-person-route[hidden] { display: none; }
.idol-branch-overview > i,
.idol-branch-person-route > i { color: var(--branch-accent-2); font-size: .55rem; font-style: normal; font-weight: 900; letter-spacing: .05em; text-align: center; }
.idol-branch-node { display: flex; min-width: 0; min-height: 250px; padding: 23px; flex-direction: column; justify-content: center; border: 1px solid rgba(255,255,255,.19); border-radius: 22px; background: rgba(20,17,25,.8); color: #fff; text-decoration: none; }
.idol-branch-node small { color: var(--branch-accent-2); font-size: .5rem; font-weight: 900; letter-spacing: .13em; }
.idol-branch-node strong { margin-top: 28px; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(1.65rem, 3vw, 3rem); line-height: .9; letter-spacing: -.06em; overflow-wrap: anywhere; }
.idol-branch-node span { margin-top: 14px; color: #a99faf; font-size: .56rem; font-weight: 800; line-height: 1.5; letter-spacing: .04em; }
.idol-branch-node em { margin-top: 30px; color: var(--branch-person-accent, var(--branch-accent)); font-size: .57rem; font-style: normal; font-weight: 900; }
.idol-branch-node.is-center { border-color: color-mix(in srgb, var(--branch-accent) 75%, #fff); background: linear-gradient(145deg, color-mix(in srgb, var(--branch-accent) 25%, #201a27), #201a27 65%); }
.idol-branch-node.is-person { border-color: var(--branch-person-accent); background: linear-gradient(145deg, color-mix(in srgb, var(--branch-person-accent) 28%, #201a27), #201a27 65%); }
.idol-branch-node.is-destination { border-color: color-mix(in srgb, var(--branch-person-accent) 68%, #fff); }
.idol-branch-node:hover { border-color: var(--branch-person-accent, var(--branch-accent-2)); background-color: #2e2737; }
.idol-branch-destinations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.idol-branch-destination { display: flex; min-width: 0; min-height: 142px; padding: 15px; flex-direction: column; border: 1px solid rgba(255,255,255,.13); border-top: 3px solid var(--branch-destination-accent); border-radius: 13px; background: rgba(16,13,20,.72); }
.idol-branch-destination small { color: var(--branch-destination-accent); font-size: .42rem; font-weight: 900; line-height: 1.35; letter-spacing: .09em; }
.idol-branch-destination strong { margin-top: auto; padding-top: 20px; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(.85rem, 1.35vw, 1.25rem); line-height: .95; letter-spacing: -.04em; overflow-wrap: anywhere; }
.idol-branch-destination span { margin-top: 7px; color: #9c92a4; font-size: .46rem; line-height: 1.45; }
.idol-branch-sources { margin-top: 46px; padding: 0 26px; border: 1px solid rgba(255,255,255,.16); border-radius: 22px; }
.idol-branch-sources summary { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; font-size: .7rem; font-weight: 900; list-style: none; }
.idol-branch-sources summary::-webkit-details-marker { display: none; }
.idol-branch-sources summary span { color: #968c9e; font-size: .5rem; letter-spacing: .1em; }
.idol-branch-sources > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-bottom: 26px; }
.idol-branch-sources a { display: grid; min-width: 0; grid-template-columns: auto 1fr auto; gap: 8px 12px; padding: 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 13px; color: #fff; text-decoration: none; }
.idol-branch-sources a > span { grid-row: 1 / 3; color: var(--branch-accent-2); font-family: Georgia, serif; font-size: .57rem; }
.idol-branch-sources a strong { min-width: 0; font-size: .61rem; line-height: 1.45; overflow-wrap: anywhere; }
.idol-branch-sources a small { color: #968c9e; font-size: .49rem; }
.idol-branch-sources a em { grid-column: 3; grid-row: 1 / 3; align-self: center; color: var(--branch-accent); font-style: normal; }

.audition-person-deep-link { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 48px; align-items: center; padding: 84px clamp(24px, 7vw, 108px); background: var(--oshi-ink); color: #fff; }
.audition-person-deep-link h2 { margin: 10px 0 0; font-family: "Arial Black", sans-serif; font-size: clamp(2.5rem, 5vw, 5.2rem); line-height: .91; letter-spacing: -.07em; }
.audition-person-deep-link > div > p:last-child { max-width: 680px; color: #c8c0d2; font-size: .77rem; line-height: 1.85; }
.audition-person-deep-link > a { display: grid; grid-template-columns: 1fr auto; gap: 12px 20px; min-height: 150px; align-content: center; padding: 28px; border-radius: 22px; background: linear-gradient(135deg, var(--person-accent), var(--person-accent-2)); color: var(--oshi-ink); text-decoration: none; }
.audition-person-deep-link > a span { grid-column: 1 / -1; font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.audition-person-deep-link > a strong { font-size: 1rem; }
.audition-person-deep-link > a em { font-size: 1.4rem; font-style: normal; }

/* Crossover journeys */
.idol-crossovers { background: #f4f0e7; }
.crossover-hero { display: grid; min-height: 690px; grid-template-columns: minmax(0, 1.32fr) minmax(390px, .68fr); }
.crossover-hero-copy { display: flex; padding: clamp(78px, 9vw, 135px) clamp(28px, 7vw, 108px); flex-direction: column; justify-content: center; overflow: hidden; background: radial-gradient(circle at 86% 20%, rgba(185,255,79,.2) 0 13%, transparent 13.2%), radial-gradient(circle at 76% 80%, rgba(255,95,159,.2) 0 18%, transparent 18.2%), var(--oshi-ink); color: #fff; }
.crossover-hero-copy .idols-kicker { color: var(--oshi-lime); }
.crossover-hero-copy h1 { max-width: 980px; margin: 18px 0 28px; font-family: "Arial Black", sans-serif; font-size: clamp(4rem, 8vw, 8rem); line-height: .83; letter-spacing: -.085em; }
.crossover-hero-copy > p:not(.idols-kicker) { max-width: 720px; margin: 0; color: #c8c0d2; font-size: .84rem; line-height: 1.95; }
.crossover-hero-copy > a { display: inline-flex; min-height: 52px; margin-top: 34px; padding: 0 20px; align-self: flex-start; align-items: center; gap: 30px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: var(--oshi-lime); color: var(--oshi-ink); font-size: .67rem; font-weight: 900; text-decoration: none; }
.crossover-hero-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; background: var(--oshi-lime); }
.crossover-hero-stats > div { display: flex; min-height: 300px; padding: 30px; flex-direction: column; justify-content: space-between; border-bottom: 1px solid rgba(23,19,31,.2); border-left: 1px solid rgba(23,19,31,.2); }
.crossover-hero-stats dt { font-size: .56rem; font-weight: 900; letter-spacing: .13em; }
.crossover-hero-stats dd { margin: auto 0 8px; font-family: "Arial Black", sans-serif; font-size: clamp(4.8rem, 8vw, 8rem); line-height: .72; letter-spacing: -.09em; }
.crossover-hero-stats small { font-size: .56rem; font-weight: 800; }
.crossover-section-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr); gap: 60px; align-items: end; }
.crossover-section-head h2 { max-width: 940px; margin: 0; font-family: "Arial Black", sans-serif; font-size: clamp(3rem, 6vw, 6rem); line-height: .9; letter-spacing: -.075em; }
.crossover-section-head > p { margin: 0 0 5px; color: #675e70; font-size: .79rem; line-height: 1.9; }
.crossover-spotlights { padding: 100px clamp(24px, 6vw, 90px) 112px; }
.crossover-spotlight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 68px; }
.crossover-spotlight-card { position: relative; display: flex; min-width: 0; min-height: 500px; padding: 30px; flex-direction: column; overflow: hidden; border-radius: 28px; background: linear-gradient(145deg, color-mix(in srgb, var(--spotlight-accent) 24%, var(--oshi-ink)), var(--oshi-ink) 65%); color: #fff; text-decoration: none; }
.crossover-spotlight-card::after { content: attr(data-attempts); position: absolute; right: -28px; bottom: -75px; color: color-mix(in srgb, var(--spotlight-accent-2) 18%, transparent); font-family: "Arial Black", sans-serif; font-size: 18rem; line-height: 1; pointer-events: none; }
.crossover-spotlight-card header { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 20px; color: #bcb2c6; font-size: .55rem; font-weight: 900; letter-spacing: .12em; }
.crossover-spotlight-card header em { color: var(--spotlight-accent-2); font-style: normal; }
.crossover-spotlight-card h3 { position: relative; z-index: 1; margin: 60px 0 0; font-family: "Arial Black", sans-serif; font-size: clamp(3.2rem, 6vw, 6rem); line-height: .84; letter-spacing: -.08em; overflow-wrap: anywhere; }
.crossover-spotlight-route { position: relative; z-index: 1; display: flex; gap: 8px; align-items: center; margin: 30px 0 0; flex-wrap: wrap; }
.crossover-spotlight-route span { padding: 8px 10px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; font-size: .57rem; font-weight: 800; }
.crossover-spotlight-route i { color: var(--spotlight-accent-2); font-size: .7rem; font-style: normal; }
.crossover-spotlight-card > p { position: relative; z-index: 1; max-width: 600px; margin: 26px 0 0; color: #cec6d4; font-size: .75rem; line-height: 1.8; }
.crossover-spotlight-card > strong { position: relative; z-index: 1; margin-top: auto; padding-top: 35px; color: var(--spotlight-accent-2); font-size: .68rem; }
.crossover-patterns { padding: 100px clamp(24px, 6vw, 90px) 112px; background: #fff; }
.crossover-pattern-list { margin: 68px 0 0; padding: 0; border-top: 1px solid var(--oshi-line); list-style: none; }
.crossover-pattern-list li { border-bottom: 1px solid var(--oshi-line); }
.crossover-pattern-list li > a { display: grid; grid-template-columns: 44px minmax(0, 1fr) minmax(120px, .38fr) 70px; gap: 20px; align-items: center; padding: 22px 0; color: inherit; text-decoration: none; }
.crossover-pattern-list li > a > span:first-child { color: #958a9f; font-family: Georgia, serif; font-size: .65rem; }
.crossover-pattern-route { display: flex; min-width: 0; gap: 10px; align-items: center; font-family: "Arial Black", sans-serif; font-size: clamp(.95rem, 1.7vw, 1.45rem); line-height: 1.05; }
.crossover-pattern-route i { color: var(--oshi-pink); font-style: normal; }
.crossover-pattern-bar { height: 8px; overflow: hidden; border-radius: 99px; background: #eee7f3; }
.crossover-pattern-bar i { display: block; width: var(--pattern-width); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--oshi-violet), var(--oshi-pink)); }
.crossover-pattern-route strong { text-align: left; }
.crossover-pattern-list li > a > strong { font-family: "Arial Black", sans-serif; font-size: 1.5rem; text-align: right; }
.crossover-pattern-list li > a > strong small { display: block; color: #8e8498; font-size: .45rem; letter-spacing: .09em; }
.crossover-lineage-cta { display: grid; grid-template-columns: .35fr minmax(0, 1fr) auto; gap: 25px; align-items: center; margin-top: 48px; padding: 32px; overflow: hidden; border-radius: 24px; background: radial-gradient(circle at 82% 40%, rgba(234,255,98,.22) 0 15%, transparent 15.3%), var(--oshi-ink); color: #fff; text-decoration: none; }
.crossover-lineage-cta > span { color: var(--oshi-lime); font-size: .57rem; font-weight: 900; letter-spacing: .13em; }
.crossover-lineage-cta > strong { font-family: "Arial Black", sans-serif; font-size: clamp(1.6rem, 3vw, 3rem); line-height: .92; letter-spacing: -.055em; }
.crossover-lineage-cta > em { color: var(--oshi-lime); font-size: 2rem; font-style: normal; }
.crossover-directory { padding: 104px clamp(24px, 6vw, 90px) 125px; background: #f4f0e7; }
.crossover-route-filter { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; align-items: center; margin-top: 62px; padding: 22px 24px; border-left: 5px solid var(--oshi-pink); background: var(--oshi-ink); color: #fff; }
.crossover-route-filter[hidden] { display: none; }
.crossover-route-filter > span { color: var(--oshi-lime); font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.crossover-route-filter > strong { font-family: "Arial Black", sans-serif; font-size: clamp(1rem, 2.2vw, 1.8rem); line-height: 1.05; }
.crossover-route-filter > a { color: #fff; font-size: .58rem; font-weight: 900; white-space: nowrap; }
.crossover-filters { display: flex; gap: 8px; margin-top: 62px; flex-wrap: wrap; }
.crossover-filters button { min-height: 44px; padding: 0 15px; border: 1px solid var(--oshi-line); border-radius: 999px; background: #fff; color: var(--oshi-ink); font: inherit; font-size: .6rem; font-weight: 900; cursor: pointer; }
.crossover-filters button span { margin-left: 8px; color: #8d8297; }
.crossover-filters button[aria-pressed="true"] { border-color: var(--oshi-ink); background: var(--oshi-ink); color: #fff; }
.crossover-filters button[aria-pressed="true"] span { color: var(--oshi-lime); }
.crossover-result { margin: 34px 0 18px; color: #8d8297; font-size: .58rem; font-weight: 900; letter-spacing: .12em; }
.crossover-result strong { color: var(--oshi-ink); font-family: "Arial Black", sans-serif; font-size: 1.6rem; letter-spacing: -.04em; }
.crossover-person-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.crossover-person-card { min-width: 0; min-height: 360px; border: 1px solid var(--oshi-line); border-radius: 22px; background: #fff; }
.crossover-person-card[hidden] { display: none; }
.crossover-person-card > a { display: flex; min-height: 100%; padding: 22px; flex-direction: column; color: inherit; text-decoration: none; }
.crossover-person-card header { display: flex; justify-content: space-between; gap: 15px; color: #92879d; font-size: .52rem; font-weight: 900; letter-spacing: .1em; }
.crossover-person-card header em { color: var(--card-accent); font-style: normal; }
.crossover-person-card h3 { margin: 34px 0 0; font-family: "Arial Black", sans-serif; font-size: clamp(1.8rem, 3vw, 3rem); line-height: .9; letter-spacing: -.06em; overflow-wrap: anywhere; }
.crossover-person-route { display: flex; gap: 6px; margin: 26px 0 0; flex-wrap: wrap; align-items: center; }
.crossover-person-route span { padding: 6px 8px; border-radius: 999px; background: color-mix(in srgb, var(--card-accent) 13%, white); font-size: .53rem; font-weight: 800; }
.crossover-person-route i { color: var(--card-accent); font-size: .58rem; font-style: normal; }
.crossover-person-card > a > p { margin: auto 0 0; padding-top: 30px; color: #756b7e; font-size: .6rem; font-weight: 800; }
.crossover-person-card > a > strong { display: flex; justify-content: space-between; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--oshi-line); color: color-mix(in srgb, var(--card-accent) 78%, var(--oshi-ink)); font-size: .62rem; }
.crossover-method { display: grid; grid-template-columns: .3fr 1.3fr auto; gap: 34px; align-items: center; padding: 42px clamp(24px, 6vw, 90px); background: var(--oshi-ink); color: #fff; }
.crossover-method > span { color: var(--oshi-lime); font-size: .55rem; font-weight: 900; letter-spacing: .12em; }
.crossover-method p { margin: 0; color: #bdb4c7; font-size: .69rem; line-height: 1.8; }
.crossover-method a { color: #fff; font-size: .62rem; font-weight: 900; white-space: nowrap; }

/* Audition lineage */
.idol-lineage { background: #f2eee5; }
.lineage-hero { position: relative; min-height: 720px; padding: clamp(105px, 13vw, 185px) clamp(24px, 7vw, 108px) 90px; overflow: hidden; background: radial-gradient(circle at 85% 26%, rgba(99,228,239,.22) 0 10%, transparent 10.2%), radial-gradient(circle at 76% 78%, rgba(255,91,167,.22) 0 16%, transparent 16.2%), var(--oshi-ink); color: #fff; }
.lineage-hero .idols-kicker { color: var(--oshi-lime); }
.lineage-hero h1 { max-width: 1120px; margin: 18px 0 30px; font-family: "Arial Black", sans-serif; font-size: clamp(4rem, 8vw, 8.2rem); line-height: .84; letter-spacing: -.085em; }
.lineage-hero > p:not(.idols-kicker) { max-width: 710px; margin: 0; color: #c7becf; font-size: .82rem; line-height: 1.95; }
.lineage-hero dl { position: absolute; right: clamp(24px, 7vw, 108px); bottom: 68px; display: flex; margin: 0; }
.lineage-hero dl > div { min-width: 132px; padding: 16px 22px; border-left: 1px solid rgba(255,255,255,.2); }
.lineage-hero dt { color: #aea5b8; font-size: .5rem; font-weight: 900; letter-spacing: .13em; }
.lineage-hero dd { margin: 8px 0 0; color: var(--oshi-lime); font-family: "Arial Black", sans-serif; font-size: 2.7rem; line-height: .85; letter-spacing: -.06em; }
.lineage-map-section { padding: 105px 0 0; background: #f7f3eb; }
.lineage-section-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr); gap: 60px; align-items: end; padding: 0 clamp(24px, 6vw, 90px); }
.lineage-section-head h2 { max-width: 970px; margin: 0; font-family: "Arial Black", sans-serif; font-size: clamp(3rem, 6vw, 6rem); line-height: .9; letter-spacing: -.075em; }
.lineage-section-head > p { margin: 0 0 5px; color: #675e70; font-size: .79rem; line-height: 1.9; }
.lineage-map-scroll { margin-top: 70px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: var(--oshi-pink) #312b3a; }
.lineage-map-board { position: relative; width: max(100%, 1580px); min-height: 650px; overflow: hidden; background: repeating-linear-gradient(90deg, transparent 0 calc(16.666% - 1px), rgba(255,255,255,.055) calc(16.666% - 1px) 16.666%), radial-gradient(circle at 48% 50%, rgba(123,92,255,.16), transparent 35%), var(--oshi-ink); }
.lineage-map-lines { position: absolute; z-index: 0; inset: 0; overflow: visible; pointer-events: none; }
.lineage-map-lines path { fill: none; stroke: #7e6d98; opacity: .42; transition: opacity .18s ease, stroke .18s ease; }
.lineage-map-lines path.is-active { stroke: var(--oshi-lime); opacity: .95; }
.lineage-map-lines path.is-muted { opacity: .09; }
.lineage-years { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(var(--lineage-columns), minmax(0, 1fr)); gap: 46px; min-height: 650px; padding: 35px 42px 50px; pointer-events: none; }
.lineage-year { min-width: 0; }
.lineage-year > time { display: block; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.2); color: var(--oshi-lime); font-family: "Arial Black", sans-serif; font-size: 1.3rem; letter-spacing: -.04em; }
.lineage-year > div { display: grid; gap: 13px; margin-top: 24px; }
.lineage-node { position: relative; display: flex; min-height: 92px; padding: 16px 16px 14px 18px; flex-direction: column; align-items: flex-start; border: 1px solid rgba(255,255,255,.18); border-left: 4px solid var(--node-accent); border-radius: 12px; background: rgba(39,34,47,.94); color: #fff; font: inherit; text-align: left; cursor: pointer; pointer-events: auto; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.lineage-node:hover { transform: translateY(-2px); border-color: var(--node-accent); }
.lineage-node[aria-pressed="true"],
.lineage-node.is-related { border-color: var(--oshi-lime); background: #332d3c; box-shadow: 0 0 0 3px rgba(234,255,98,.12); }
.lineage-node > span { color: var(--node-accent); font-size: .48rem; font-weight: 900; letter-spacing: .11em; }
.lineage-node > strong { margin-top: 9px; font-family: "Arial Black", sans-serif; font-size: .82rem; line-height: 1; letter-spacing: -.03em; }
.lineage-node > em { margin-top: auto; padding-top: 10px; color: #9f95aa; font-size: .44rem; font-style: normal; font-weight: 800; letter-spacing: .08em; }
.lineage-map-hint { display: flex; gap: 12px; align-items: center; margin: 0; padding: 15px clamp(24px, 6vw, 90px); background: #2a2531; color: #c5bbc9; font-size: .55rem; font-weight: 800; letter-spacing: .05em; }
.lineage-map-hint span { color: var(--oshi-lime); }
.lineage-focus { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(240px, .65fr) minmax(260px, .8fr); gap: 1px; margin: 0; background: var(--oshi-line); border-bottom: 1px solid var(--oshi-line); }
.lineage-focus > div { min-width: 0; padding: 42px clamp(24px, 4vw, 58px); background: #fff; }
.lineage-focus-copy h3 { margin: 12px 0 18px; font-family: "Arial Black", sans-serif; font-size: clamp(2.2rem, 4vw, 4.2rem); line-height: .88; letter-spacing: -.07em; overflow-wrap: anywhere; }
.lineage-focus-copy > p:not(.idols-kicker) { max-width: 650px; margin: 0; color: #665d6e; font-size: .75rem; line-height: 1.85; }
.lineage-focus-copy > a { display: inline-flex; gap: 30px; margin-top: 26px; padding-bottom: 4px; border-bottom: 2px solid var(--oshi-pink); color: inherit; font-size: .64rem; font-weight: 900; text-decoration: none; }
.lineage-focus-routes > span,
.lineage-focus-people > span { display: block; margin-bottom: 20px; color: #8d8297; font-size: .5rem; font-weight: 900; letter-spacing: .12em; }
.lineage-focus-routes > div { display: grid; gap: 8px; }
.lineage-focus-routes a { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--oshi-line); color: inherit; font-size: .58rem; font-weight: 800; text-decoration: none; }
.lineage-focus-routes a em { color: var(--oshi-pink); font-size: .48rem; font-style: normal; white-space: nowrap; }
.lineage-focus-people > div { display: flex; gap: 7px; flex-wrap: wrap; }
.lineage-focus-people a { padding: 7px 9px; border-radius: 999px; background: #f0eaf6; color: inherit; font-size: .54rem; font-weight: 800; text-decoration: none; }
.lineage-route-section { padding: 110px clamp(24px, 6vw, 90px) 125px; background: #f2eee5; }
.lineage-route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 70px; }
.lineage-route-card { min-width: 0; min-height: 320px; border: 1px solid var(--oshi-line); border-top: 5px solid var(--route-accent); background: #fff; scroll-margin-top: 20px; }
.lineage-route-card:target { outline: 5px solid var(--oshi-lime); outline-offset: 3px; }
.lineage-route-card > a { display: flex; min-height: 100%; padding: 26px; flex-direction: column; color: inherit; text-decoration: none; }
.lineage-route-card header { display: flex; justify-content: space-between; gap: 20px; color: #8e8498; font-size: .5rem; font-weight: 900; letter-spacing: .11em; }
.lineage-route-card header em { color: var(--route-accent); font-style: normal; }
.lineage-route-card h3 { display: flex; gap: 10px; margin: 42px 0 0; align-items: center; flex-wrap: wrap; font-family: "Arial Black", sans-serif; font-size: clamp(1.6rem, 3.2vw, 3.2rem); line-height: .92; letter-spacing: -.055em; }
.lineage-route-card h3 i { color: var(--route-accent); font-style: normal; }
.lineage-route-card p { margin: 24px 0 0; color: #6d6475; font-size: .65rem; line-height: 1.75; }
.lineage-route-card > a > strong { display: flex; justify-content: space-between; margin-top: auto; padding-top: 24px; color: color-mix(in srgb, var(--route-accent) 74%, var(--oshi-ink)); font-size: .62rem; }
.lineage-method { display: grid; grid-template-columns: .35fr 1.25fr auto; gap: 34px; align-items: center; padding: 42px clamp(24px, 6vw, 90px); background: var(--oshi-ink); color: #fff; }
.lineage-method > span { color: var(--oshi-lime); font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.lineage-method p { margin: 0; color: #bdb4c7; font-size: .68rem; line-height: 1.8; }
.lineage-method a { color: #fff; font-size: .62rem; font-weight: 900; white-space: nowrap; }

/* Branch atlas */
.branch-atlas-hero { display: grid; min-height: 690px; grid-template-columns: minmax(0, 1.3fr) minmax(360px, .7fr); background: var(--oshi-ink); color: #fff; }
.branch-atlas-hero-copy { display: flex; padding: clamp(76px, 9vw, 136px) clamp(28px, 7vw, 108px); flex-direction: column; justify-content: center; overflow: hidden; background: radial-gradient(circle at 86% 16%, rgba(99,228,239,.2) 0 12%, transparent 12.2%), radial-gradient(circle at 75% 83%, rgba(234,255,98,.16) 0 18%, transparent 18.2%); }
.branch-atlas-hero-copy .idols-kicker { color: var(--oshi-cyan); }
.branch-atlas-hero-copy h1 { max-width: 980px; margin: 18px 0 28px; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(4rem, 6.5vw, 6.7rem); line-height: .83; letter-spacing: -.085em; }
.branch-atlas-hero-copy h1 em { color: var(--oshi-lime); font-style: normal; }
.branch-atlas-hero-copy > p:not(.idols-kicker) { max-width: 720px; margin: 0; color: #c8c0d2; font-size: .84rem; line-height: 1.95; }
.branch-atlas-hero-copy > a { display: inline-flex; min-height: 52px; margin-top: 34px; padding: 0 20px; align-self: flex-start; align-items: center; gap: 30px; border-radius: 999px; background: var(--oshi-lime); color: var(--oshi-ink); font-size: .67rem; font-weight: 900; text-decoration: none; }
.branch-atlas-hero-stats { display: grid; margin: 0; background: var(--oshi-cyan); color: var(--oshi-ink); }
.branch-atlas-hero-stats > div { display: flex; min-height: 230px; padding: 30px; flex-direction: column; justify-content: space-between; border-bottom: 1px solid rgba(23,19,31,.2); border-left: 1px solid rgba(23,19,31,.2); }
.branch-atlas-hero-stats dt { font-size: .56rem; font-weight: 900; letter-spacing: .13em; }
.branch-atlas-hero-stats dd { margin: auto 0 8px; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(4.8rem, 8vw, 8rem); line-height: .72; letter-spacing: -.09em; }
.branch-atlas-hero-stats small { font-size: .56rem; font-weight: 800; }
.branch-atlas-stories,
.branch-atlas-directory { padding: 104px clamp(24px, 6vw, 90px) 116px; }
.branch-atlas-stories { background: var(--oshi-paper); }
.branch-atlas-directory { background: var(--oshi-surface); }
.branch-atlas-section-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr); gap: 60px; align-items: end; }
.branch-atlas-section-head h2 { max-width: 950px; margin: 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(3rem, 6vw, 6rem); line-height: .9; letter-spacing: -.075em; }
.branch-atlas-section-head > p { margin: 0 0 5px; color: #675e70; font-size: .79rem; line-height: 1.9; }
.branch-atlas-story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 66px; }
.branch-atlas-story-card { position: relative; display: flex; min-width: 0; min-height: 520px; padding: 28px; flex-direction: column; overflow: hidden; border-radius: 27px; background: linear-gradient(145deg, color-mix(in srgb, var(--atlas-accent) 25%, var(--oshi-ink)), var(--oshi-ink) 62%); color: #fff; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.branch-atlas-story-card::before { content: ""; position: absolute; width: 290px; height: 290px; right: -150px; top: -170px; border: 52px solid color-mix(in srgb, var(--atlas-accent-2) 20%, transparent); border-radius: 50%; }
.branch-atlas-story-card:hover { transform: translateY(-4px); box-shadow: 0 22px 48px rgba(23,19,31,.17); }
.branch-atlas-story-card header { position: relative; display: flex; justify-content: space-between; gap: 18px; color: #a69dac; font-size: .5rem; font-weight: 900; letter-spacing: .12em; }
.branch-atlas-story-card header em { color: var(--atlas-accent-2); font-style: normal; }
.branch-atlas-story-card h3 { position: relative; margin: 48px 0 0; font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.8rem, 4vw, 5rem); line-height: .82; letter-spacing: -.075em; overflow-wrap: anywhere; }
.branch-atlas-story-numbers { display: flex; align-items: center; gap: 9px; margin-top: 38px; }
.branch-atlas-story-numbers strong { color: var(--atlas-accent-2); font-family: "Arial Black", Inter, sans-serif; font-size: clamp(2.6rem, 4vw, 4.5rem); line-height: .72; letter-spacing: -.08em; }
.branch-atlas-story-numbers i { color: #8f8597; font-size: .62rem; font-style: normal; }
.branch-atlas-story-card > p { margin: 26px 0 0; color: #c8c0d0; font-size: .67rem; line-height: 1.75; }
.branch-atlas-story-destinations { display: flex; gap: 6px; margin-top: 20px; flex-wrap: wrap; }
.branch-atlas-story-destinations span { padding: 6px 8px; border: 1px solid color-mix(in srgb, var(--atlas-chip-accent) 48%, rgba(255,255,255,.18)); border-radius: 999px; color: #e7e0ea; font-size: .49rem; font-weight: 800; }
.branch-atlas-story-destinations small { color: var(--atlas-chip-accent); font-size: inherit; }
.branch-atlas-story-card > b { margin-top: auto; padding-top: 28px; color: var(--atlas-accent-2); font-size: .6rem; }
.branch-atlas-filters { display: flex; gap: 7px; margin-top: 56px; flex-wrap: wrap; }
.branch-atlas-filters button { min-height: 46px; padding: 0 15px; border: 1px solid var(--oshi-line); border-radius: 999px; background: transparent; color: var(--oshi-ink); font: inherit; font-size: .59rem; font-weight: 900; cursor: pointer; }
.branch-atlas-filters button span { margin-left: 7px; color: #8d8297; font-family: Georgia, serif; }
.branch-atlas-filters button:hover { border-color: var(--oshi-violet); }
.branch-atlas-filters button[aria-pressed="true"] { border-color: var(--oshi-ink); background: var(--oshi-ink); color: #fff; }
.branch-atlas-filters button[aria-pressed="true"] span { color: var(--oshi-cyan); }
.branch-atlas-result { margin: 24px 0 14px; color: #8d8297; font-size: .52rem; font-weight: 900; letter-spacing: .11em; }
.branch-atlas-result strong { color: var(--oshi-violet); font-family: "Arial Black", Inter, sans-serif; font-size: 1.35rem; letter-spacing: -.04em; }
.branch-atlas-person-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); }
.branch-atlas-person-card { min-width: 0; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: #fff; }
.branch-atlas-person-card[hidden] { display: none; }
.branch-atlas-person-card > a { position: relative; display: flex; min-height: 360px; padding: 25px; flex-direction: column; overflow: hidden; color: var(--oshi-ink); text-decoration: none; transition: background .18s ease; }
.branch-atlas-person-card > a::after { content: ""; position: absolute; width: 130px; height: 130px; right: -76px; bottom: -76px; border: 24px solid color-mix(in srgb, var(--atlas-card-accent) 18%, transparent); border-radius: 50%; }
.branch-atlas-person-card > a:hover { background: color-mix(in srgb, var(--atlas-card-accent) 7%, white); }
.branch-atlas-person-card header { display: flex; justify-content: space-between; gap: 18px; color: #92879d; font-size: .49rem; font-weight: 900; letter-spacing: .1em; }
.branch-atlas-person-card header em { color: color-mix(in srgb, var(--atlas-card-accent) 76%, #3f3549); font-style: normal; }
.branch-atlas-person-card h3 { margin: 42px 0 0; font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(2rem, 3vw, 3.7rem); line-height: .9; letter-spacing: -.06em; overflow-wrap: anywhere; }
.branch-atlas-person-route { display: flex; gap: 6px; margin-top: 25px; align-items: center; flex-wrap: wrap; color: #544b5d; font-size: .58rem; font-weight: 900; }
.branch-atlas-person-route span:last-child { color: color-mix(in srgb, var(--atlas-card-accent) 75%, #342b3c); }
.branch-atlas-person-route i { color: #aaa0b2; font-size: .52rem; font-style: normal; }
.branch-atlas-person-card p { margin: 18px 0 0; color: #766c7e; font-size: .62rem; line-height: 1.7; }
.branch-atlas-person-card footer { display: flex; gap: 16px; margin-top: auto; padding-top: 22px; align-items: end; justify-content: space-between; }
.branch-atlas-person-card footer small { color: #91869b; font-size: .48rem; }
.branch-atlas-person-card footer strong { color: color-mix(in srgb, var(--atlas-card-accent) 72%, #32293a); font-size: .55rem; white-space: nowrap; }
.branch-atlas-method { display: grid; grid-template-columns: .35fr 1.25fr auto; gap: 34px; padding: 42px clamp(24px, 6vw, 90px); align-items: center; background: var(--oshi-ink); color: #fff; }
.branch-atlas-method > span { color: var(--oshi-cyan); font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.branch-atlas-method p { margin: 0; color: #bdb4c7; font-size: .68rem; line-height: 1.8; }
.branch-atlas-method a { color: #fff; font-size: .62rem; font-weight: 900; white-space: nowrap; }

@media (min-width: 1100px) {
  .idol-culture-route { grid-template-columns: repeat(var(--culture-step-count), minmax(0, 1fr)); overflow: visible; }
  .idol-culture-step h3 { font-size: clamp(1.65rem, 2.2vw, 2.4rem); }
}

@media (max-width: 980px) {
  .idols-discovery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .idol-culture-feature-intro { grid-template-columns: 1fr; gap: 38px; }
  .idol-culture-feature-intro aside { max-width: 720px; }
  .idol-culture-feature-footer { grid-template-columns: 1fr; }
  .idol-fan-dossier-head,
  .idol-fan-chapter-head { grid-template-columns: 1fr; gap: 32px; }
  .idol-fan-dossier-head aside { max-width: 720px; }
  .idol-branch-head { grid-template-columns: 1fr; gap: 34px; }
  .idol-branch-head > div:last-child { max-width: 720px; }
  .idol-branch-overview,
  .idol-branch-person-route { grid-template-columns: 1fr; gap: 12px; }
  .idol-branch-overview > i,
  .idol-branch-person-route > i { padding: 2px 0; }
  .idol-branch-node { min-height: 140px; }
  .idol-branch-destinations { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .crossover-hero { grid-template-columns: 1fr; }
  .crossover-hero-stats > div { min-height: 220px; }
  .crossover-section-head { grid-template-columns: 1fr; gap: 28px; }
  .crossover-person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crossover-method { grid-template-columns: 1fr; gap: 18px; }
  .crossover-method a { white-space: normal; }
  .lineage-section-head { grid-template-columns: 1fr; gap: 28px; }
  .lineage-focus { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lineage-focus-copy { grid-column: 1 / -1; }
  .lineage-method { grid-template-columns: 1fr; gap: 18px; }
  .lineage-method a { white-space: normal; }
  .branch-atlas-hero { grid-template-columns: 1fr; }
  .branch-atlas-hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .branch-atlas-hero-stats > div { min-height: 190px; }
  .branch-atlas-section-head { grid-template-columns: 1fr; gap: 28px; }
  .branch-atlas-story-grid { grid-template-columns: 1fr; }
  .branch-atlas-story-card { min-height: 440px; }
  .branch-atlas-person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .branch-atlas-method { grid-template-columns: 1fr; gap: 18px; }
  .branch-atlas-method a { white-space: normal; }
}

@media (max-width: 700px) {
  .idols-discoveries { padding: 68px 18px 76px; }
  .idols-discoveries-head { grid-template-columns: 1fr; gap: 26px; }
  .idols-discovery-grid { grid-template-columns: 1fr; margin-top: 44px; }
  .idols-discovery-card.is-featured { grid-column: auto; }
  .idols-discovery-card { min-height: 390px; }
  .idols-discovery-card > a { padding: 22px; }
  .idols-discovery-card h3,
  .idols-discovery-card:not(.is-featured) h3 { font-size: 2.15rem; }
  .idols-discovery-card-foot { align-items: flex-start; flex-direction: column; gap: 9px; }
  .idol-culture-feature { padding: 68px 18px 76px; }
  .idol-culture-feature-intro h2 { font-size: 3.4rem; }
  .idol-culture-route { grid-template-columns: 1fr; gap: 10px; margin-top: 46px; overflow: visible; }
  .idol-culture-step { min-height: 340px; }
  .idol-culture-feature details > div { grid-template-columns: 1fr; }
  .idol-fan-dossier { padding: 76px 18px 84px; }
  .idol-fan-dossier-head h2 { font-size: 3.25rem; }
  .idol-fan-chapter { margin-top: 68px; }
  .idol-fan-chapter-head h3 { font-size: 2.55rem; }
  .idol-fan-card-grid,
  .idol-fan-sources > div { grid-template-columns: 1fr; }
  .idol-fan-card { min-height: 320px; }
  .idol-fan-sources summary { align-items: flex-start; padding: 25px 0; flex-direction: column; gap: 8px; }
  .idol-group-branch { padding: 76px 18px 84px; }
  .idol-branch-head h2 { font-size: 3.25rem; }
  .idol-branch-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 52px; }
  .idol-branch-stats > i { display: none; }
  .idol-branch-stats > div { min-height: 126px; padding: 16px 13px; }
  .idol-branch-stats strong { font-size: 3.25rem; }
  .idol-branch-stats small { font-size: .44rem; overflow-wrap: anywhere; }
  .idol-branch-controls { margin-top: 40px; margin-right: -18px; padding-right: 18px; flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-inline: contain; }
  .idol-branch-controls button { flex: 0 0 auto; }
  .idol-branch-canvas { min-height: 850px; padding: 18px; border-radius: 20px; }
  .idol-branch-overview,
  .idol-branch-person-route { min-height: 812px; align-content: center; }
  .idol-branch-node { min-height: 130px; padding: 19px; }
  .idol-branch-node strong { margin-top: 18px; font-size: 1.75rem; }
  .idol-branch-destinations { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .idol-branch-destination { min-height: 130px; padding: 13px; }
  .idol-branch-destination strong { font-size: .88rem; }
  .idol-branch-sources { padding: 0 18px; }
  .idol-branch-sources summary { align-items: flex-start; padding: 24px 0; flex-direction: column; gap: 8px; }
  .idol-branch-sources > div { grid-template-columns: 1fr; }
  .audition-person-deep-link { grid-template-columns: 1fr; gap: 34px; padding: 68px 18px; }
  .crossover-hero-copy { min-height: 650px; padding: 76px 20px; }
  .crossover-hero-copy h1 { font-size: 4.2rem; }
  .crossover-hero-stats { grid-template-columns: 1fr; }
  .crossover-hero-stats > div { min-height: 180px; border-left: 0; }
  .crossover-spotlights,
  .crossover-patterns,
  .crossover-directory { padding: 70px 18px 78px; }
  .crossover-spotlight-grid,
  .crossover-person-grid { grid-template-columns: 1fr; }
  .crossover-spotlight-card { min-height: 460px; padding: 23px; }
  .crossover-spotlight-card h3 { font-size: 3.7rem; }
  .crossover-pattern-list li > a { grid-template-columns: 28px minmax(0, 1fr) 48px; gap: 10px; }
  .crossover-pattern-bar { display: none; }
  .crossover-pattern-route { gap: 6px; font-size: .88rem; }
  .crossover-lineage-cta { grid-template-columns: 1fr auto; padding: 24px; }
  .crossover-lineage-cta > span { grid-column: 1 / -1; }
  .crossover-lineage-cta > strong { font-size: 1.8rem; }
  .crossover-route-filter { grid-template-columns: 1fr; gap: 12px; padding: 20px; }
  .crossover-route-filter > a { white-space: normal; }
  .crossover-filters { flex-wrap: nowrap; margin-right: -18px; padding-right: 18px; overflow-x: auto; }
  .crossover-filters button { flex: 0 0 auto; }
  .crossover-person-card { min-height: 330px; }
  .lineage-hero { min-height: 720px; padding: 92px 20px 190px; }
  .lineage-hero h1 { font-size: 3.65rem; }
  .lineage-hero dl { right: 20px; bottom: 54px; left: 20px; }
  .lineage-hero dl > div { min-width: 0; flex: 1; padding: 14px; }
  .lineage-hero dd { font-size: 2.15rem; }
  .lineage-map-section { padding-top: 72px; }
  .lineage-section-head { padding: 0 18px; }
  .lineage-section-head h2 { font-size: 3.2rem; }
  .lineage-map-scroll { margin-top: 48px; }
  .lineage-map-board { width: 1380px; min-height: 610px; }
  .lineage-years { min-height: 610px; gap: 34px; padding: 28px 32px 42px; }
  .lineage-node { min-height: 86px; }
  .lineage-map-hint { padding: 14px 18px; overflow-x: auto; white-space: nowrap; }
  .lineage-focus { grid-template-columns: 1fr; }
  .lineage-focus-copy { grid-column: auto; }
  .lineage-focus > div { padding: 34px 20px; }
  .lineage-route-section { padding: 78px 18px 88px; }
  .lineage-route-grid { grid-template-columns: 1fr; margin-top: 48px; }
  .lineage-route-card { min-height: 300px; }
  .lineage-route-card > a { padding: 22px; }
  .lineage-route-card h3 { font-size: 2rem; }
  .branch-atlas-hero-copy { min-height: 650px; padding: 76px 20px; }
  .branch-atlas-hero-copy h1 { font-size: 2.7rem; }
  .branch-atlas-hero-stats > div { min-height: 150px; padding: 18px 14px; }
  .branch-atlas-hero-stats dd { font-size: 3.4rem; }
  .branch-atlas-hero-stats small { font-size: .46rem; }
  .branch-atlas-stories,
  .branch-atlas-directory { padding: 72px 18px 82px; }
  .branch-atlas-section-head h2 { font-size: 2.75rem; }
  .branch-atlas-story-grid { margin-top: 48px; }
  .branch-atlas-story-card { min-height: 430px; padding: 23px; }
  .branch-atlas-story-card h3 { font-size: 3.35rem; }
  .branch-atlas-story-numbers strong { font-size: 3rem; }
  .branch-atlas-filters { margin-top: 42px; margin-right: -18px; padding-right: 18px; flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-inline: contain; }
  .branch-atlas-filters button { flex: 0 0 auto; }
  .branch-atlas-person-grid { grid-template-columns: 1fr; }
  .branch-atlas-person-card > a { min-height: 320px; padding: 22px; }
  .branch-atlas-person-card h3 { font-size: 2.65rem; }
}

.idol-discover-page { background: #f4f0e7; color: var(--oshi-ink); }
.discover-hero { padding: clamp(80px, 11vw, 155px) clamp(24px, 7vw, 108px) 100px; background: radial-gradient(circle at 80% 20%, #b7f3e4 0, transparent 26%), radial-gradient(circle at 20% 75%, #c9c0ff 0, transparent 28%), #171420; color: #fff; }
.discover-hero .idols-kicker { color: #b8a7ff; }
.discover-hero h1 { max-width: 1200px; margin: 18px 0 28px; font-family: "Arial Black", sans-serif; font-size: clamp(3rem, 8vw, 7.8rem); line-height: .88; letter-spacing: -.075em; }
.discover-hero > p:last-child { max-width: 720px; margin: 0; color: rgba(255,255,255,.62); line-height: 1.9; }
.discover-workspace { padding: 80px clamp(24px, 6vw, 90px) 130px; }
.discover-search-panel { padding: clamp(25px, 4vw, 48px); border: 1px solid var(--oshi-line); background: #fff; box-shadow: 12px 12px 0 rgba(23,20,32,.07); }
.discover-search-panel h2 { margin: 0 0 30px; font-family: "Arial Black", sans-serif; font-size: clamp(1.7rem, 4vw, 3.5rem); letter-spacing: -.06em; }
.discover-search { display: block; }
.discover-search > span,
.discover-filters label > span { display: block; margin-bottom: 8px; color: rgba(20,18,29,.72); font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.discover-search input { width: 100%; min-height: 74px; padding: 0 22px; border: 0; border-bottom: 3px solid var(--oshi-ink); border-radius: 0; background: #f6f3ed; color: inherit; font: inherit; font-size: clamp(1.15rem, 2.5vw, 1.7rem); font-weight: 800; }
.discover-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
.discover-filters select { width: 100%; min-height: 48px; padding: 0 12px; border: 1px solid var(--oshi-line); border-radius: 0; background: #fff; color: inherit; font: inherit; font-size: .72rem; font-weight: 800; }
.discover-result-head { display: flex; margin: 58px 0 20px; align-items: center; justify-content: space-between; }
.discover-result-head p { margin: 0; font-size: .68rem; font-weight: 900; letter-spacing: .1em; }
.discover-result-head p strong { margin-right: 8px; font-family: Georgia, serif; font-size: 2rem; font-style: italic; }
.discover-result-head button { border: 0; border-bottom: 1px solid; background: transparent; color: inherit; font: inherit; font-size: .62rem; font-weight: 900; cursor: pointer; }
.discover-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--oshi-line); border-left: 1px solid var(--oshi-line); }
.discover-card { min-width: 0; border-right: 1px solid var(--oshi-line); border-bottom: 1px solid var(--oshi-line); background: #fff; }
.discover-card > a { position: relative; display: flex; min-height: 300px; padding: 26px; flex-direction: column; color: inherit; text-decoration: none; }
.discover-card > a::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 6px; background: var(--discover-accent); }
.discover-card > a:hover { background: color-mix(in srgb, var(--discover-accent) 8%, #fff); }
.discover-card span { color: color-mix(in srgb, var(--discover-accent) 45%, var(--oshi-ink)); font-size: .56rem; font-weight: 900; letter-spacing: .1em; }
.discover-card h2 { margin: 35px 0 0; font-family: "Arial Black", sans-serif; font-size: clamp(1.35rem, 2.6vw, 2.5rem); line-height: .95; letter-spacing: -.06em; overflow-wrap: anywhere; }
.discover-card p { margin: 20px 0 0; color: rgba(20,18,29,.62); font-size: .76rem; line-height: 1.6; }
.discover-card small { margin-top: auto; padding-top: 24px; color: rgba(20,18,29,.68); font-size: .55rem; font-weight: 900; }
.discover-card strong { margin-top: 12px; font-size: .62rem; }
.discover-more { display: flex; min-width: 250px; min-height: 54px; margin: 38px auto 0; padding: 0 20px; align-items: center; justify-content: space-between; border: 1px solid var(--oshi-ink); background: transparent; color: inherit; font: inherit; font-size: .65rem; font-weight: 900; cursor: pointer; }
.discover-empty { padding: 65px 20px; border: 1px solid var(--oshi-line); background: #fff; text-align: center; }

@media (max-width: 900px) {
  .audition-person-hero { grid-template-columns: 1fr; }
  .audition-person-hero dl { grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(20,18,29,.13); border-left: 0; }
  .audition-person-hero dl div { min-height: 140px; border-right: 1px solid rgba(20,18,29,.13); }
  .discover-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .discover-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audition-discover-banner { grid-template-columns: 1fr auto; }
  .audition-discover-banner span { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .audition-candidate-grid li em { opacity: 1; transform: none; }
  .audition-discover-banner { grid-template-columns: 1fr; gap: 12px; padding: 25px 18px; }
  .audition-person-hero > div { min-height: 580px; padding: 72px 21px 58px; }
  .audition-person-hero h1 { font-size: clamp(3.8rem, 19vw, 6.5rem); }
  .audition-person-hero dl { grid-template-columns: 1fr; }
  .audition-person-hero dl div { min-height: 108px; border-right: 0; }
  .audition-person-route { padding: 68px 18px 80px; }
  .audition-person-route > ol { margin-top: 46px; padding-left: 27px; }
  .audition-person-route > ol::before { left: 5px; }
  .audition-person-route li { grid-template-columns: 1fr; gap: 8px; }
  .audition-person-route li::before { top: 6px; left: -28px; }
  .audition-person-marker { padding: 0; align-items: flex-start; flex-direction: row; gap: 10px; }
  .audition-person-marker span { font-size: 1.1rem; }
  .audition-person-marker time { margin: 2px 0 0; }
  .audition-person-route article { padding: 23px 18px; }
  .audition-person-meta { flex-direction: column; }
  .audition-person-next { grid-template-columns: 1fr; padding: 68px 18px; }
  .discover-hero { padding: 86px 20px 72px; }
  .discover-workspace { padding: 55px 18px 80px; }
  .discover-search-panel { padding: 24px 18px; box-shadow: 7px 7px 0 rgba(23,20,32,.07); }
  .discover-filters { grid-template-columns: 1fr; }
  .discover-grid { grid-template-columns: 1fr; }
  .discover-card > a { min-height: 255px; }
}

/* CREDISC: song-first discovery */
.music-bar nav a,
.provider-bar nav a { text-decoration: none; }
.music-hero-actions { display: flex; flex-wrap: wrap; gap: 11px; }
.music-secondary { display: inline-flex; min-height: 48px; padding: 0 18px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); text-decoration: none; font-size: .78rem; font-weight: 700; }
.music-song-entry { padding: 92px clamp(24px, 6vw, 90px) 104px; background: radial-gradient(circle at 4% 92%, light-dark(rgba(255,98,59,.15), rgba(255,98,59,.1)), transparent 27%), var(--paper); }
.music-song-entry .music-section-head h2 { font-size: clamp(2.3rem, 5vw, 4.5rem); line-height: 1.04; }
.music-song-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.music-song-feature { display: flex; min-height: 330px; padding: 24px; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); color: inherit; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.music-song-feature:hover { z-index: 1; background: light-dark(#fff1e8, #221a22); transform: translateY(-3px); }
.music-song-feature > span { color: light-dark(#963d2b, #ff9c84); font-family: Georgia, serif; font-size: .62rem; letter-spacing: .08em; }
.music-song-feature > div { margin-top: 46px; }
.music-song-feature > div small { display: block; color: var(--muted); font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.music-song-feature > div strong { display: block; margin-top: 10px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.7rem, 3.2vw, 3.15rem); font-weight: 400; line-height: 1.05; letter-spacing: -.045em; overflow-wrap: anywhere; }
.music-song-feature > div p { margin: 18px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.7; }
.music-song-feature footer { display: grid; grid-template-columns: 1fr auto; margin-top: auto; padding-top: 25px; align-items: end; border-top: 1px solid var(--line); }
.music-song-feature footer small,
.music-song-feature footer b { display: block; }
.music-song-feature footer small { color: var(--muted); font-size: .52rem; letter-spacing: .1em; }
.music-song-feature footer b { margin-top: 5px; font-size: .72rem; }
.music-song-feature footer i { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 1.3rem; font-style: normal; }
.music-song-all { display: flex; max-width: 520px; min-height: 58px; margin: 34px 0 0 auto; padding: 0 20px; align-items: center; justify-content: space-between; border-bottom: 2px solid var(--ink); text-decoration: none; font-size: .78rem; font-weight: 800; }
.provider-song-page-link { display: flex; min-height: 46px; margin: 20px -20px -22px; padding: 0 20px; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); background: var(--paper); color: light-dark(#963d2b, #ff9c84); text-decoration: none; font-size: .69rem; font-weight: 800; }
.provider-timeline-card { display: block; color: inherit; text-decoration: none; transition: border-color .2s ease, background .2s ease; }
a.provider-timeline-card:hover { border-color: rgba(255,98,59,.65); background: rgba(255,98,59,.09); }

.song-directory-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); min-height: 490px; background: radial-gradient(circle at 13% 110%, rgba(255,98,59,.22), transparent 34%), radial-gradient(circle at 87% 0, rgba(116,92,255,.25), transparent 29%), #151117; color: var(--cream); }
.song-directory-hero > div:first-child { display: flex; padding: 76px clamp(26px, 7vw, 100px); flex-direction: column; justify-content: center; }
.song-directory-hero h1 { max-width: 850px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.4rem, 7vw, 6.7rem); font-weight: 400; line-height: .95; letter-spacing: -.06em; }
.song-directory-hero > div:first-child > p:last-child { max-width: 670px; margin: 28px 0 0; color: rgba(255,248,241,.58); font-family: "Yu Mincho", Georgia, serif; font-size: .93rem; line-height: 1.95; }
.song-directory-stats { display: grid; border-left: 1px solid rgba(255,248,241,.15); }
.song-directory-stats div { display: flex; padding: 26px clamp(24px, 4vw, 52px); flex-direction: column; justify-content: center; border-bottom: 1px solid rgba(255,248,241,.15); }
.song-directory-stats div:last-child { border-bottom: 0; }
.song-directory-stats strong { font-family: Georgia, serif; font-size: clamp(2.6rem, 5vw, 5rem); font-weight: 400; line-height: 1; letter-spacing: -.05em; }
.song-directory-stats span { margin-top: 9px; color: rgba(255,248,241,.65); font-size: .57rem; font-weight: 800; letter-spacing: .16em; }
.song-directory-controls { position: relative; z-index: 2; display: grid; gap: 22px; padding: 38px clamp(24px, 6vw, 90px); border-bottom: 1px solid var(--line); background: var(--surface); box-shadow: 0 14px 35px light-dark(rgba(43,30,25,.05), rgba(0,0,0,.16)); }
.song-search { position: relative; display: block; }
.song-search > span { display: block; margin-bottom: 8px; color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .1em; }
.song-search input { width: 100%; min-height: 67px; padding: 0 100px 0 18px; border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; background: var(--paper); color: inherit; font: inherit; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1rem, 2.5vw, 1.55rem); }
.song-search i { position: absolute; right: 18px; bottom: 24px; color: var(--muted); font-size: .55rem; font-style: normal; font-weight: 900; letter-spacing: .14em; }
.song-filter-row { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 18px; align-items: start; }
.song-filter-row > span { padding-top: 10px; color: var(--muted); font-size: .56rem; font-weight: 900; letter-spacing: .13em; }
.song-filter-row > div { display: flex; flex-wrap: wrap; gap: 7px; }
.song-filter-row button { min-height: 36px; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; font-size: .66rem; font-weight: 700; }
.song-filter-row button span { margin-left: 5px; color: var(--muted); font-size: .55rem; }
.song-filter-row button[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.song-directory-results { padding: 72px clamp(24px, 6vw, 90px) 110px; }
.song-directory-results > header { display: flex; margin-bottom: 8px; align-items: end; justify-content: space-between; gap: 24px; }
.song-directory-results > header h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 400; letter-spacing: -.04em; }
.song-directory-results > header h2 span { color: #a83a22; }
.song-directory-results > header button { border: 0; border-bottom: 1px solid; background: transparent; color: var(--muted); cursor: pointer; font: inherit; font-size: .64rem; }
.song-result-live { margin: 0 0 26px; color: var(--muted); font-size: .64rem; }
.music-song-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.music-song-card { min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.music-song-card > a { display: flex; min-height: 320px; padding: 24px; flex-direction: column; color: inherit; text-decoration: none; }
.music-song-card > a:hover { background: light-dark(#fff0e6, #211921); }
.music-song-card header { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .56rem; letter-spacing: .1em; }
.music-song-card header em { font-family: Georgia, serif; font-size: .7rem; font-style: normal; }
.music-song-card h2 { margin: 44px 0 5px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.55rem, 2.8vw, 2.65rem); font-weight: 400; line-height: 1.05; letter-spacing: -.045em; overflow-wrap: anywhere; }
.music-song-card > a > small { color: var(--muted); font-size: .65rem; }
.music-song-card p { margin: 18px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.65; }
.music-song-card footer { display: flex; margin-top: auto; padding-top: 22px; align-items: end; justify-content: space-between; gap: 10px; }
.music-song-card footer div { display: flex; flex-wrap: wrap; gap: 5px; }
.music-song-card footer span { padding: 5px 7px; border-radius: 999px; background: var(--paper); font-size: .58rem; }
.music-song-card footer i { font-size: 1.25rem; font-style: normal; }
.song-directory-empty { padding: 68px 22px; border: 1px solid var(--line); background: var(--surface); text-align: center; }
.song-directory-empty strong { font-family: Georgia, "Yu Mincho", serif; font-size: 1.25rem; font-weight: 400; }
.song-directory-empty p { color: var(--muted); font-size: .75rem; }
.song-load-more { display: flex; min-width: 270px; min-height: 56px; margin: 36px auto 0; padding: 0 18px; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--ink); background: transparent; color: inherit; cursor: pointer; font: inherit; font-size: .7rem; font-weight: 800; }
.song-load-more small { color: var(--muted); font-size: .56rem; font-weight: 600; }

.song-detail-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr); min-height: 520px; overflow: hidden; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 8% 100%, light-dark(rgba(255,98,59,.17), rgba(255,98,59,.12)), transparent 34%), var(--surface); }
.song-detail-copy { display: flex; padding: 70px clamp(26px, 7vw, 100px); flex-direction: column; justify-content: center; }
.song-detail-performer { margin: 0 0 15px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.song-detail-hero h1 { max-width: 900px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.4rem, 8vw, 7.7rem); font-weight: 400; line-height: .88; letter-spacing: -.07em; overflow-wrap: anywhere; }
.song-detail-lead { margin: 28px 0 0; color: var(--muted); font-family: "Yu Mincho", Georgia, serif; font-size: .88rem; line-height: 1.9; }
.song-detail-disc { position: relative; display: flex; min-height: 480px; padding: 28%; align-items: center; justify-content: center; flex-direction: column; overflow: hidden; background: linear-gradient(145deg, light-dark(#eaddd3, #1b141e), light-dark(#d8cff1, #0b090d)); color: #fff; text-align: center; }
.song-detail-disc::before { content: ""; position: absolute; width: min(36vw, 430px); aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle, #151116 0 3px, #322c33 4px 5px, #151116 6px 9px); box-shadow: 0 35px 70px rgba(0,0,0,.38); }
.song-detail-disc::after { content: ""; position: absolute; width: 31%; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(#ff623b, #ffc13d, #745cff, #ff623b); box-shadow: inset 0 0 0 30px rgba(20,17,22,.48); }
.song-detail-disc span,
.song-detail-disc strong,
.song-detail-disc small { position: relative; z-index: 1; display: block; }
.song-detail-disc span { font-family: Georgia, serif; font-size: .58rem; letter-spacing: .12em; }
.song-detail-disc strong { max-width: 170px; margin: 10px 0 5px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(.8rem, 1.7vw, 1.2rem); font-weight: 400; line-height: 1.15; }
.song-detail-disc small { max-width: 160px; font-size: .52rem; opacity: .7; }
.song-detail-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.song-detail-facts div { padding: 19px clamp(18px, 4vw, 46px); border-right: 1px solid var(--line); }
.song-detail-facts div:last-child { border-right: 0; }
.song-detail-facts strong,
.song-detail-facts span { display: block; }
.song-detail-facts strong { font-family: Georgia, serif; font-size: 1.7rem; font-weight: 400; }
.song-detail-facts span { color: var(--muted); font-size: .65rem; }
.song-detail-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .75fr); gap: 54px; padding: 68px clamp(24px, 6vw, 90px); }
.song-detail-intro h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2.1rem, 4vw, 4rem); font-weight: 400; line-height: 1.1; }
.song-detail-intro > div > p:last-child { max-width: 680px; margin: 24px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.9; }
.song-detail-intro aside { align-self: start; }
.song-context { display: grid; gap: 7px; margin-bottom: 15px; padding: 17px 18px; border: 1px solid light-dark(rgba(150,61,43,.25), rgba(255,156,132,.2)); background: light-dark(rgba(255,98,59,.07), rgba(255,98,59,.09)); }
.song-context small { color: light-dark(#963d2b, #ff9c84); font-size: .56rem; font-weight: 900; letter-spacing: .1em; }
.song-context strong { font-family: "Yu Mincho", Georgia, serif; font-size: .78rem; line-height: 1.75; }
.song-video { margin-bottom: 0; }
.song-credits { padding: 76px clamp(24px, 6vw, 90px) 100px; background: var(--surface); }
.song-section-head { display: flex; margin-bottom: 34px; align-items: end; justify-content: space-between; gap: 34px; }
.song-section-head h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2.2rem, 5vw, 4.3rem); font-weight: 400; line-height: 1.04; letter-spacing: -.04em; }
.song-section-head > p { max-width: 480px; margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.8; }
.song-credit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.song-credit-card { display: flex; min-height: 360px; padding: 25px; flex-direction: column; border: 1px solid var(--line); background: var(--paper); }
.song-credit-card header { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .55rem; letter-spacing: .1em; }
.song-credit-card header em { color: light-dark(#963d2b, #ff9c84); font-style: normal; font-weight: 800; }
.song-credit-provider { display: flex; margin: 39px 0 22px; align-items: center; justify-content: space-between; text-decoration: none; }
.song-credit-provider strong { font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; line-height: 1; letter-spacing: -.05em; overflow-wrap: anywhere; }
.song-credit-provider i { font-size: 1.5rem; font-style: normal; }
.song-credit-card blockquote { margin: 0; padding: 14px 16px; border-left: 3px solid var(--coral); background: var(--surface); font-family: "Yu Mincho", Georgia, serif; font-size: .76rem; line-height: 1.75; }
.song-credit-roles { display: flex; margin: 15px 0 20px; flex-wrap: wrap; gap: 6px; }
.song-credit-roles span { padding: 5px 8px; border-radius: 999px; background: var(--surface); font-size: .6rem; }
.song-credit-source { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; margin-top: auto; padding-top: 17px; align-items: center; border-top: 1px solid var(--line); text-decoration: none; }
.song-credit-source span,
.song-credit-source em { color: var(--muted); font-size: .55rem; font-style: normal; }
.song-credit-source strong { min-width: 0; font-size: .65rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.song-creator-trails { padding: 82px clamp(24px, 6vw, 90px) 105px; background: #151117; color: var(--cream); }
.song-creator-trails .music-kicker { color: #ff9c84; }
.song-creator-trails .song-section-head h2 { color: var(--cream); }
.song-creator-trails .song-section-head > p { color: rgba(255,248,241,.55); }
.song-creator-trail-list { display: grid; gap: 18px; }
.song-creator-trail { padding: 25px; border: 1px solid rgba(255,248,241,.16); background: rgba(255,248,241,.045); }
.song-creator-trail > header { display: flex; margin-bottom: 22px; align-items: end; justify-content: space-between; gap: 20px; }
.song-creator-trail > header small { display: block; color: rgba(255,248,241,.65); font-size: .52rem; letter-spacing: .12em; }
.song-creator-trail > header h3 { margin: 5px 0 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.6rem, 3vw, 2.7rem); font-weight: 400; }
.song-creator-trail > header a { color: rgba(255,248,241,.7); font-size: .62rem; text-decoration: none; }
.song-creator-trail > div { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid rgba(255,248,241,.14); border-left: 1px solid rgba(255,248,241,.14); }
.song-creator-trail > div a { display: grid; grid-template-columns: 1fr auto; min-height: 130px; padding: 16px; align-content: start; border-right: 1px solid rgba(255,248,241,.14); border-bottom: 1px solid rgba(255,248,241,.14); color: inherit; text-decoration: none; }
.song-creator-trail > div a:hover { background: rgba(255,98,59,.11); }
.song-creator-trail > div span { color: rgba(255,248,241,.65); font-family: Georgia, serif; font-size: .58rem; }
.song-creator-trail > div strong { grid-column: 1 / -1; margin-top: 22px; font-family: "Yu Mincho", Georgia, serif; font-size: .78rem; font-weight: 400; line-height: 1.4; }
.song-creator-trail > div small { grid-column: 1 / -1; margin-top: 7px; color: rgba(255,248,241,.65); font-size: .55rem; }
.song-creator-trail > div i { grid-column: 2; grid-row: 1; font-style: normal; }
.song-performer-trail { padding: 82px clamp(24px, 6vw, 90px) 104px; }
.song-performer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.song-performer-grid a { display: grid; min-height: 175px; padding: 20px; grid-template-columns: 1fr auto; align-content: start; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); color: inherit; text-decoration: none; }
.song-performer-grid a:hover { background: light-dark(#fff0e6, #211921); }
.song-performer-grid span { color: var(--muted); font-family: Georgia, serif; font-size: .6rem; }
.song-performer-grid strong { grid-column: 1 / -1; margin-top: 34px; font-family: "Yu Mincho", Georgia, serif; font-size: 1rem; font-weight: 400; }
.song-performer-grid small { grid-column: 1 / -1; margin-top: 8px; color: var(--muted); font-size: .58rem; }
.song-performer-grid i { grid-column: 2; grid-row: 1; font-style: normal; }

.music-provider-all { display: flex; max-width: 540px; min-height: 58px; margin: 38px 0 0 auto; padding: 0 20px; align-items: center; justify-content: space-between; border-bottom: 2px solid var(--coral); color: var(--cream); font-size: .76rem; font-weight: 900; text-decoration: none; }
.provider-directory-hero { display: grid; grid-template-columns: minmax(0, 1.32fr) minmax(300px, .68fr); min-height: 520px; background: radial-gradient(circle at 12% 110%, rgba(255,98,59,.22), transparent 35%), radial-gradient(circle at 88% 0, rgba(116,92,255,.27), transparent 30%), #151117; color: var(--cream); }
.provider-directory-hero .music-kicker { color: #ff9c84; }
.provider-directory-hero > div { display: flex; padding: 76px clamp(26px, 7vw, 100px); flex-direction: column; justify-content: center; }
.provider-directory-hero h1 { max-width: 900px; margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.4rem, 7vw, 6.7rem); font-weight: 400; line-height: .95; letter-spacing: -.06em; }
.provider-directory-hero > div > p:last-child { max-width: 680px; margin: 28px 0 0; color: rgba(255,248,241,.58); font-family: "Yu Mincho", Georgia, serif; font-size: .93rem; line-height: 1.95; }
.provider-directory-stats { display: grid; margin: 0; border-left: 1px solid rgba(255,248,241,.15); }
.provider-directory-stats > div { display: flex; padding: 26px clamp(24px, 4vw, 52px); flex-direction: column; justify-content: center; border-bottom: 1px solid rgba(255,248,241,.15); }
.provider-directory-stats > div:last-child { border-bottom: 0; }
.provider-directory-stats dt { color: rgba(255,248,241,.65); font-size: .57rem; font-weight: 900; letter-spacing: .16em; }
.provider-directory-stats dd { margin: 9px 0 0; font-family: Georgia, serif; font-size: clamp(2.6rem, 5vw, 5rem); line-height: 1; letter-spacing: -.05em; }
.provider-directory-controls { position: relative; z-index: 2; padding: 38px clamp(24px, 6vw, 90px); border-bottom: 1px solid var(--line); background: var(--surface); box-shadow: 0 14px 35px light-dark(rgba(43,30,25,.05), rgba(0,0,0,.16)); }
.provider-search { position: relative; display: block; }
.provider-search > span { display: block; margin-bottom: 8px; color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .1em; }
.provider-search input { width: 100%; min-height: 67px; padding: 0 100px 0 18px; border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; background: var(--paper); color: inherit; font: inherit; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1rem, 2.5vw, 1.55rem); }
.provider-search i { position: absolute; right: 18px; bottom: 24px; color: var(--muted); font-size: .55rem; font-style: normal; font-weight: 900; letter-spacing: .14em; }
.provider-directory-results { padding: 72px clamp(24px, 6vw, 90px) 110px; }
.provider-directory-results > header { display: flex; margin-bottom: 8px; align-items: end; justify-content: space-between; gap: 24px; }
.provider-directory-results > header h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 400; letter-spacing: -.04em; }
.provider-directory-results > header h2 span { color: #a83a22; }
.provider-directory-results > header button { padding: 0 0 4px; border: 0; border-bottom: 1px solid; background: transparent; color: var(--muted); cursor: pointer; font-size: .64rem; font-weight: 800; }
.provider-result-live { margin: 0 0 25px; color: var(--muted); font-size: .63rem; }
.provider-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.provider-directory-card { min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.provider-directory-card[hidden] { display: none; }
.provider-directory-card > a { display: flex; min-height: 430px; padding: 24px; flex-direction: column; color: inherit; text-decoration: none; transition: background .18s ease, transform .18s ease; }
.provider-directory-card > a:hover { position: relative; z-index: 1; background: light-dark(#fff0e7, #211921); transform: translateY(-2px); }
.provider-directory-card header { display: flex; justify-content: space-between; gap: 18px; color: var(--muted); font-size: .53rem; font-weight: 800; letter-spacing: .09em; }
.provider-directory-card header em { color: light-dark(#963d2b, #ff9c84); font-style: normal; text-align: right; }
.provider-directory-card h2 { margin: 46px 0 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(2rem, 3.5vw, 3.7rem); font-weight: 400; line-height: .92; letter-spacing: -.055em; overflow-wrap: anywhere; }
.provider-directory-card > a > p { margin: 18px 0 24px; color: var(--muted); font-size: .7rem; line-height: 1.7; }
.provider-directory-card ol { display: grid; gap: 0; margin: auto 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.provider-directory-card li { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 4px 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.provider-directory-card li span { grid-row: 1 / span 2; color: var(--muted); font-family: Georgia, serif; font-size: .56rem; }
.provider-directory-card li strong { min-width: 0; overflow: hidden; font-family: "Yu Mincho", Georgia, serif; font-size: .69rem; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.provider-directory-card li small { color: var(--muted); font-size: .52rem; }
.provider-directory-card footer { display: flex; margin-top: 20px; align-items: center; justify-content: space-between; gap: 18px; color: var(--muted); font-size: .49rem; font-weight: 800; letter-spacing: .06em; }
.provider-directory-card footer i { color: #a83a22; font-size: 1.25rem; font-style: normal; }
.provider-directory-empty { padding: 64px 20px; border: 1px solid var(--line); background: var(--surface); text-align: center; }
.provider-directory-empty p { color: var(--muted); font-size: .72rem; }
.provider-load-more { display: flex; width: min(100%, 520px); min-height: 56px; margin: 34px auto 0; padding: 0 18px; align-items: center; justify-content: space-between; border: 1px solid var(--ink); background: transparent; color: inherit; cursor: pointer; font-size: .69rem; font-weight: 900; }
.provider-load-more[hidden] { display: none; }

@media (max-width: 900px) {
  .music-song-feature-grid,
  .music-song-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .song-directory-hero,
  .song-detail-hero,
  .song-detail-intro { grid-template-columns: 1fr; }
  .song-directory-stats { grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,248,241,.15); border-left: 0; }
  .song-directory-stats div { border-right: 1px solid rgba(255,248,241,.15); border-bottom: 0; }
  .song-directory-stats div:last-child { border-right: 0; }
  .song-detail-disc { min-height: 390px; padding: 130px; }
  .song-detail-disc::before { width: 360px; }
  .song-credit-grid { grid-template-columns: 1fr; }
  .song-creator-trail > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .song-performer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .provider-directory-hero { grid-template-columns: 1fr; }
  .provider-directory-stats { grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,248,241,.15); border-left: 0; }
  .provider-directory-stats > div { border-right: 1px solid rgba(255,248,241,.15); border-bottom: 0; }
  .provider-directory-stats > div:last-child { border-right: 0; }
  .provider-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .culture-footer-links,
  .culture-language-links { margin-left: 0; padding-left: 0; border-left: 0; flex-wrap: wrap; }
  .service-support-cta { grid-template-columns: 1fr; gap: 28px; padding: 48px 18px; }
  .service-support-cta > a { width: 100%; white-space: normal; text-align: center; }
  .locale-hero > div { padding: 58px 20px; }
  .locale-hero h1 { font-size: clamp(2.8rem, 14vw, 4.8rem); }
  .locale-hero aside { grid-template-columns: 1fr; }
  .locale-hero aside > div { grid-template-columns: 100px 1fr; }
  .locale-collection { padding: 62px 18px 76px; }
  .locale-card { min-height: 300px; padding: 22px; }
  .locale-group-highlights { padding: 72px 18px 80px; }
  .locale-group-highlights > header { margin-bottom: 34px; }
  .locale-group-highlights > ol { grid-template-columns: 1fr; }
  .locale-group-highlights > ol > li { min-height: 320px; }
  .locale-group-sources { gap: 34px; padding: 72px 18px; }
  .locale-group-sources li { grid-template-columns: 30px minmax(0, 1fr); }
  .locale-group-sources li a { grid-column: 2; }
  .locale-group-japanese { align-items: stretch; flex-direction: column; padding: 28px 18px; }
  .music-hero-actions { width: 100%; flex-direction: column; }
  .music-hero-actions a { width: 100%; }
  .music-song-entry { padding: 58px 18px 68px; }
  .music-song-feature-grid,
  .music-song-directory-grid { grid-template-columns: 1fr; }
  .music-song-feature { min-height: 285px; padding: 22px; }
  .music-song-all { max-width: none; margin-top: 24px; }
  .song-directory-hero > div:first-child { padding: 66px 20px 54px; }
  .song-directory-hero h1 { font-size: clamp(3rem, 15vw, 4.7rem); }
  .song-directory-stats { grid-template-columns: 1fr; }
  .song-directory-stats div { min-height: 108px; border-right: 0; border-bottom: 1px solid rgba(255,248,241,.15); }
  .song-directory-controls { padding: 28px 18px; }
  .song-filter-row { grid-template-columns: 1fr; gap: 7px; }
  .song-filter-row > div { margin-right: -18px; padding-right: 18px; flex-wrap: nowrap; overflow-x: auto; }
  .song-filter-row button { flex: 0 0 auto; }
  .song-directory-results { padding: 54px 18px 78px; }
  .song-directory-results > header { align-items: start; flex-direction: column; }
  .music-song-card > a { min-height: 285px; }
  .song-detail-copy { padding: 58px 20px 48px; }
  .song-detail-hero h1 { font-size: clamp(3.2rem, 16vw, 5.6rem); }
  .song-detail-disc { min-height: 340px; padding: 115px; }
  .song-detail-disc::before { width: 300px; }
  .song-detail-facts div { padding: 14px 11px; }
  .song-detail-facts strong { font-size: 1.35rem; }
  .song-detail-intro,
  .song-credits,
  .song-creator-trails,
  .song-performer-trail { padding: 55px 18px 66px; }
  .song-section-head { align-items: start; flex-direction: column; }
  .song-credit-card { min-height: 335px; padding: 20px; }
  .song-credit-source { grid-template-columns: auto minmax(0, 1fr); }
  .song-credit-source em { grid-column: 2; }
  .song-creator-trail { padding: 20px; }
  .song-creator-trail > header { align-items: start; flex-direction: column; }
  .song-creator-trail > div,
  .song-performer-grid { grid-template-columns: 1fr; }
  .song-creator-trail > div a { min-height: 112px; }
  .song-performer-grid a { min-height: 145px; }
  .credisc-bar { grid-template-columns: auto minmax(0, 1fr); min-height: 58px; padding: 0 12px; gap: 9px; }
  .credisc-bar .music-brand { font-size: .68rem; letter-spacing: .08em; }
  .credisc-bar .music-disc { width: 23px; height: 23px; margin-right: 7px; box-shadow: inset 0 0 0 6px rgba(8,7,10,.7); }
  .credisc-bar .music-disc::after { inset: 10px; }
  .credisc-primary-nav { height: 58px; justify-content: flex-end; gap: 0; }
  .credisc-primary-nav a { min-width: auto; padding: 0 9px; font-size: .64rem; }
  .credisc-primary-nav a[aria-current="location"]::after { right: 8px; left: 8px; height: 3px; }
  .credisc-culture-link { display: none; }
  .credisc-breadcrumb { top: 58px; min-height: 40px; padding: 0 14px; }
  .provider-directory-hero > div { padding: 66px 20px 54px; }
  .provider-directory-hero h1 { font-size: clamp(3rem, 15vw, 4.7rem); }
  .provider-directory-stats { grid-template-columns: 1fr; }
  .provider-directory-stats > div { min-height: 108px; border-right: 0; border-bottom: 1px solid rgba(255,248,241,.15); }
  .provider-directory-controls { padding: 28px 18px; }
  .provider-directory-results { padding: 54px 18px 78px; }
  .provider-directory-results > header { align-items: start; flex-direction: column; }
  .provider-directory-grid { grid-template-columns: 1fr; }
  .provider-directory-card > a { min-height: 390px; padding: 21px; }
  .music-provider-all { max-width: none; margin-top: 26px; }
}
