:root { --ink:#08111f; --navy:#0c1830; --blue:#4e72ff; --cyan:#78edda; --coral:#ff6f7d; --cream:#f6f3ec; --line:rgba(10,23,43,.14); }

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }

.site-header { position:absolute; inset:0 0 auto; z-index:30; height:88px; display:flex; align-items:center; padding:0 clamp(24px,5vw,80px); color:#fff; border-bottom:1px solid rgba(255,255,255,.18); }
.brand { display:flex; align-items:center; gap:12px; letter-spacing:.08em; }
.brand > span:last-child { display:grid; line-height:1; }
.brand strong { font:800 17px/1 Arial,sans-serif; letter-spacing:.03em; }
.brand small { margin-top:5px; font:700 9px/1 Arial,sans-serif; letter-spacing:.52em; color:var(--cyan); }
.pin-mark { width:31px; height:31px; border:2px solid currentColor; border-radius:50% 50% 50% 5px; transform:rotate(-45deg); display:inline-grid; place-items:center; color:#fff; flex:none; }
.pin-mark span { width:8px; height:8px; border:2px solid currentColor; border-radius:50%; }
.pin-mark--small { width:13px; height:13px; border-width:1px; color:currentColor; }
.pin-mark--small span { width:3px; height:3px; border-width:1px; }
.site-header nav { margin:auto; display:flex; gap:40px; font:700 11px/1 Arial,sans-serif; letter-spacing:.18em; }
.site-header nav a { opacity:.76; transition:.2s; }
.site-header nav a:hover { opacity:1; color:var(--cyan); }
.header-cta { font-size:12px; font-weight:700; display:flex; gap:20px; align-items:center; }
.header-cta span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.5); }

.hero { position:relative; min-height:800px; height:100svh; max-height:1080px; overflow:hidden; display:grid; grid-template-columns:48% 52%; color:#fff; background:radial-gradient(circle at 18% 20%,#213e70 0,transparent 30%),linear-gradient(135deg,#07101e 0%,#0c1830 55%,#132347 100%); }
.hero-grid { position:absolute; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(90deg,#000,transparent 68%); }
.hero::before { content:"47"; position:absolute; left:-2vw; bottom:-15vh; font:900 min(47vw,650px)/.8 Arial,sans-serif; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.07); }
.hero-copy { position:relative; z-index:2; align-self:center; padding:88px 3vw 40px clamp(24px,7vw,116px); }
.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 24px; font:700 10px/1 Arial,sans-serif; letter-spacing:.25em; color:var(--cyan); }
.eyebrow > span { width:26px; height:1px; background:currentColor; }
.hero h1 { margin:0; font-weight:800; letter-spacing:-.055em; line-height:1.1; }
.hero h1 span,.hero h1 em { display:block; }
.hero h1 span { font-size:clamp(38px,4.8vw,76px); }
.hero h1 em { font-style:normal; font-size:clamp(52px,6.4vw,102px); color:transparent; background:linear-gradient(90deg,#fff 4%,var(--cyan) 45%,#9bacff 93%); -webkit-background-clip:text; background-clip:text; white-space:nowrap; }
.hero-lead { margin:28px 0 0; max-width:630px; color:rgba(255,255,255,.7); font-size:clamp(13px,1.05vw,16px); line-height:2; }
.hero-actions { display:flex; gap:12px; margin-top:34px; }
.button { min-height:52px; padding:0 26px; display:inline-flex; align-items:center; justify-content:center; gap:40px; border-radius:2px; font-size:12px; font-weight:800; }
.button--primary { color:#07101e; background:linear-gradient(90deg,var(--cyan),#b2f8ed); box-shadow:0 12px 40px rgba(120,237,218,.2); }
.button--ghost { border:1px solid rgba(255,255,255,.3); color:#fff; }
.hero-numbers { display:flex; gap:clamp(22px,3vw,50px); margin-top:46px; }
.hero-numbers div { display:flex; align-items:flex-end; gap:8px; }
.hero-numbers strong { font:300 clamp(30px,3vw,46px)/.9 Arial,sans-serif; }
.hero-numbers span { padding-bottom:3px; font:700 8px/1 Arial,sans-serif; letter-spacing:.12em; color:rgba(255,255,255,.46); writing-mode:vertical-rl; }
.hero-visual { position:relative; z-index:2; min-width:0; display:grid; place-items:center; }
.hero-visual::before { content:""; position:absolute; width:65%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,var(--blue),transparent 68%); filter:blur(20px); opacity:.34; }
.hero-card { position:relative; width:min(45vw,730px); aspect-ratio:1.42; overflow:hidden; transform:translate(2%,2%) rotate(-2deg); box-shadow:0 45px 100px rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.25); }
.hero-card::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,transparent 52%,rgba(5,11,24,.85)); }
.hero-card img { width:100%; height:100%; object-fit:cover; }
.hero-card-caption { position:absolute; z-index:2; inset:auto 26px 22px; display:grid; grid-template-columns:1fr auto; align-items:end; }
.hero-card-caption > span { grid-column:1; font:700 9px/1 Arial,sans-serif; letter-spacing:.18em; color:var(--cyan); }
.hero-card-caption strong { grid-column:1; margin-top:7px; font-size:clamp(18px,2.2vw,34px); }
.hero-card-caption button,.hero-card-caption > a { grid-column:2; grid-row:1/3; align-self:center; display:grid; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; width:42px; height:42px; color:#fff; background:rgba(255,255,255,.1); cursor:pointer; }
.hero-orbit { position:absolute; border:1px solid rgba(120,237,218,.33); border-radius:50%; }
.hero-orbit--one { width:82%; aspect-ratio:1; transform:rotate(-20deg) scaleY(.5); }
.hero-orbit--two { width:65%; aspect-ratio:1; transform:rotate(32deg) scaleY(.7); border-color:rgba(132,152,255,.25); }
.coordinates { position:absolute; right:6%; top:17%; font:700 9px/1.7 monospace; letter-spacing:.1em; color:rgba(255,255,255,.45); }
.hero-side-note { position:absolute; right:3%; bottom:12%; margin:0; transform:rotate(90deg) translateX(100%); transform-origin:right bottom; font:700 8px/1 Arial; letter-spacing:.18em; opacity:.35; }
.scroll-hint { position:absolute; z-index:3; bottom:32px; left:clamp(24px,7vw,116px); display:flex; align-items:center; gap:14px; font:700 8px/1 Arial; letter-spacing:.19em; color:rgba(255,255,255,.42); }
.scroll-hint span { display:block; width:34px; height:1px; background:var(--cyan); }

.units-section { padding:clamp(80px,10vw,150px) clamp(20px,6vw,96px); background:var(--cream); }
.section-heading { max-width:1500px; margin:0 auto 54px; display:flex; justify-content:space-between; align-items:end; gap:40px; }
.eyebrow--dark { color:#53627c; }
.section-heading h2 { margin:0; font-size:clamp(36px,5vw,76px); line-height:1.18; letter-spacing:-.06em; }
.section-heading h2 em { color:var(--blue); font-style:normal; }
.section-heading > p { max-width:460px; margin:0 0 6px; font-size:13px; line-height:2; color:#687387; }
.explorer { max-width:1500px; margin:auto; padding:16px; background:#fff; border:1px solid var(--line); display:flex; align-items:center; gap:18px; box-shadow:0 18px 55px rgba(23,38,67,.07); }
.region-tabs { display:flex; gap:5px; flex:1; overflow:auto; scrollbar-width:none; }
.region-tabs button { flex:none; border:0; background:transparent; color:#657086; font-size:11px; font-weight:700; padding:11px 13px; border-radius:2px; cursor:pointer; white-space:nowrap; }
.region-tabs button.active { background:var(--ink); color:#fff; }
.search-box { width:min(360px,30vw); height:42px; display:flex; align-items:center; gap:10px; border-left:1px solid var(--line); padding-left:20px; color:#6b7586; }
.search-box > span { font:24px/1 Georgia; transform:rotate(-15deg); }
.search-box input { min-width:0; flex:1; border:0; outline:0; background:transparent; font-size:12px; color:var(--ink); }
.search-box button { border:0; background:transparent; cursor:pointer; color:#798397; font-size:18px; }
.results-meta { max-width:1500px; margin:34px auto 16px; padding-bottom:12px; border-bottom:1px solid var(--line); display:flex; align-items:end; justify-content:space-between; font:700 9px/1 Arial; letter-spacing:.16em; color:#8790a0; }
.results-meta p { margin:0; }
.results-meta strong { margin-right:8px; font:500 24px/1 Arial; color:var(--ink); letter-spacing:0; }
.unit-grid { max-width:1500px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:34px 22px; }
.unit-card { min-width:0; background:#fff; border-bottom:2px solid var(--ink); box-shadow:0 12px 32px rgba(24,36,60,.05); transition:transform .25s,box-shadow .25s; }
.unit-card:hover { transform:translateY(-5px); box-shadow:0 22px 44px rgba(24,36,60,.12); }
.unit-card > button,.unit-card > a { display:block; width:100%; border:0; padding:0; background:none; color:inherit; text-align:left; cursor:pointer; }
.unit-image { position:relative; aspect-ratio:16/9; overflow:hidden; background:#dfe5ef; }
.unit-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,15,30,.05),transparent 55%,rgba(6,15,30,.22)); }
.unit-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.unit-card:hover .unit-image img { transform:scale(1.035); }
.unit-code,.unit-open { position:absolute; z-index:2; top:12px; color:#fff; background:rgba(7,16,30,.72); backdrop-filter:blur(8px); }
.unit-code { left:12px; padding:7px 9px; font:700 8px/1 Arial; letter-spacing:.14em; }
.unit-open { right:12px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; font-size:12px; }
.unit-body { position:relative; padding:20px 22px 21px; }
.unit-place { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700; color:#53627a; }
.unit-place span:last-child { margin-left:auto; font:700 8px/1 Arial; letter-spacing:.12em; color:#a0a7b3; }
.unit-body h3 { margin:12px 0 5px; font-size:clamp(20px,2vw,29px); letter-spacing:-.04em; }
.unit-body > p { margin:0; min-height:24px; color:#6c7484; font-size:11px; }
.palette { position:absolute; right:20px; bottom:22px; display:flex; gap:4px; }
.palette i { width:8px; height:8px; border-radius:50%; border:1px solid rgba(0,0,0,.08); }
.show-all { display:flex; align-items:center; justify-content:center; gap:22px; margin:54px auto 0; width:min(320px,100%); height:58px; border:1px solid var(--ink); background:transparent; color:var(--ink); font-size:12px; font-weight:800; cursor:pointer; }
.show-all span { color:var(--blue); }
.empty-state { max-width:1500px; margin:auto; padding:80px 20px; text-align:center; background:#fff; border:1px solid var(--line); }
.empty-state strong { display:block; margin-bottom:18px; }
.empty-state button { border:0; border-bottom:1px solid; background:none; cursor:pointer; }

.project-section { min-height:830px; padding:clamp(90px,10vw,150px) clamp(24px,7vw,110px); display:grid; grid-template-columns:.85fr 1.15fr; gap:7vw; align-items:center; overflow:hidden; color:#fff; background:linear-gradient(125deg,#0b172d,#101e3a 65%,#17274b); }
.project-copy { max-width:570px; }
.project-copy h2 { margin:0 0 30px; font-size:clamp(40px,5vw,76px); line-height:1.22; letter-spacing:-.06em; }
.project-copy > p:not(.eyebrow) { margin:0; color:rgba(255,255,255,.63); font-size:13px; line-height:2.2; }
.project-copy dl { margin:44px 0 0; border-top:1px solid rgba(255,255,255,.17); }
.project-copy dl div { display:flex; gap:22px; padding:19px 0; border-bottom:1px solid rgba(255,255,255,.17); }
.project-copy dt { color:var(--cyan); font:700 10px/1 Arial; }
.project-copy dd { margin:0; display:grid; gap:6px; }
.project-copy dd strong { font:700 10px/1 Arial; letter-spacing:.13em; }
.project-copy dd span { font-size:11px; color:rgba(255,255,255,.48); }
.project-collage { position:relative; height:min(55vw,650px); }
.collage-card { position:absolute; overflow:hidden; border:1px solid rgba(255,255,255,.35); box-shadow:0 35px 80px rgba(0,0,0,.4); }
.collage-card img { width:100%; height:100%; object-fit:cover; }
.collage-card--1 { width:72%; aspect-ratio:16/9; top:4%; left:8%; transform:rotate(-5deg); }
.collage-card--2 { width:66%; aspect-ratio:16/9; right:0; top:34%; transform:rotate(4deg); }
.collage-card--3 { width:52%; aspect-ratio:16/9; left:0; bottom:0; transform:rotate(-2deg); }
.collage-stamp { position:absolute; z-index:2; right:7%; bottom:0; width:118px; aspect-ratio:1; border-radius:50%; display:grid; place-content:center; justify-items:center; background:var(--cyan); color:var(--ink); transform:rotate(8deg); box-shadow:0 15px 35px rgba(0,0,0,.25); }
.collage-stamp .pin-mark { width:19px; height:19px; color:var(--ink); border-width:1px; }
.collage-stamp strong { margin-top:5px; font:900 31px/.9 Arial; }
.collage-stamp span { font:800 8px/1 Arial; letter-spacing:.14em; }
.soul-home-section { padding:120px clamp(22px,7vw,110px); display:grid; grid-template-columns:1.05fr .95fr; gap:8vw; align-items:center; color:#091323; background:#f5f2eb; }
.soul-home-copy .eyebrow { color:#5364df; }
.soul-home-copy h2 { margin:0; font-size:clamp(42px,5.6vw,82px); line-height:1.2; letter-spacing:-.06em; }
.soul-home-copy h2 em { color:#5364df; font-style:normal; }
.soul-home-copy > p:not(.eyebrow) { max-width:640px; margin:28px 0 0; color:#667184; font-size:12px; line-height:2.1; }
.soul-home-copy > div { display:flex; gap:10px; margin-top:32px; }
.soul-home-copy a { min-height:50px; padding:0 22px; display:flex; align-items:center; gap:40px; border:1px solid #091323; font-size:10px; font-weight:800; }
.soul-home-copy a:first-child { background:#091323; color:#fff; }
.soul-home-copy a:first-child span { color:#78edda; }
.soul-levels { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.soul-levels article { min-height:210px; padding:24px; display:flex; flex-direction:column; background:#fff; border-top:3px solid #5364df; box-shadow:0 14px 40px rgba(20,34,56,.07); }
.soul-levels span { font:300 26px/1 Arial; color:#5364df; }
.soul-levels strong { margin-top:auto; font:800 13px/1 Arial; letter-spacing:.1em; }
.soul-levels p { margin:9px 0 0; color:#7b8492; font-size:9px; }

.fes-section { position:relative; min-height:780px; padding:120px 24px; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; background:#070d19; }
.fes-section::before { content:"FES"; position:absolute; font:900 min(34vw,500px)/1 Arial; letter-spacing:-.09em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.065); }
.fes-glow { position:absolute; width:700px; height:700px; border-radius:50%; background:radial-gradient(circle,rgba(76,103,255,.32),transparent 68%); }
.fes-title { position:relative; }
.fes-title > span { position:absolute; right:-30px; top:-14px; padding:7px 12px; transform:rotate(7deg); background:var(--coral); color:#fff; font:800 9px/1 Arial; letter-spacing:.14em; }
.fes-title h2 { margin:0; font:900 clamp(58px,10vw,150px)/.83 Arial,sans-serif; letter-spacing:-.07em; }
.fes-title em { color:var(--cyan); font-style:normal; }
.fes-lead { position:relative; margin:30px 0 36px; font-size:clamp(16px,2vw,23px); font-weight:700; letter-spacing:.08em; }
.fes-stats { position:relative; display:flex; border:1px solid rgba(255,255,255,.18); }
.fes-stats div { min-width:140px; padding:18px 30px; display:grid; gap:5px; border-right:1px solid rgba(255,255,255,.18); }
.fes-stats div:last-child { border:0; }
.fes-stats strong { font:300 30px/1 Arial; }
.fes-stats span { font:700 8px/1 Arial; letter-spacing:.16em; color:rgba(255,255,255,.4); }
.fes-note { position:relative; margin:26px 0 0; color:rgba(255,255,255,.38); font-size:10px; }
footer { padding:45px clamp(24px,6vw,90px); display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:20px; color:#fff; background:#03070d; border-top:1px solid rgba(255,255,255,.1); }
.brand--footer .pin-mark { width:23px; height:23px; }
footer > p { margin:0; text-align:center; font-size:12px; color:rgba(255,255,255,.5); }
footer > div { display:flex; gap:22px; font:700 9px/1 Arial; letter-spacing:.13em; }
footer > small { grid-column:1/-1; margin-top:20px; color:rgba(255,255,255,.25); font:700 7px/1 Arial; letter-spacing:.12em; }

.modal-backdrop { position:fixed; z-index:100; inset:0; padding:30px; overflow:auto; background:rgba(3,8,17,.88); backdrop-filter:blur(12px); }
.group-modal { position:relative; max-width:1180px; margin:auto; overflow:hidden; background:#f7f5ef; box-shadow:0 40px 100px rgba(0,0,0,.55); }
.modal-close { position:absolute; z-index:5; right:18px; top:18px; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.55); background:rgba(4,10,21,.42); color:#fff; font-size:26px; cursor:pointer; }
.modal-hero { position:relative; aspect-ratio:2.18; min-height:360px; overflow:hidden; background:#17233b; }
.modal-hero > img { width:100%; height:100%; object-fit:cover; }
.modal-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,12,26,.88),rgba(5,12,26,.15) 70%),linear-gradient(0deg,rgba(5,12,26,.52),transparent 60%); }
.modal-title { position:absolute; left:clamp(24px,6vw,75px); bottom:48px; color:#fff; }
.modal-title > p { display:flex; align-items:center; gap:9px; margin:0 0 10px; font-size:11px; font-weight:700; }
.modal-title > p span:last-child { font:700 8px/1 Arial; letter-spacing:.15em; color:var(--cyan); }
.modal-title h2 { margin:0; font-size:clamp(38px,6vw,76px); letter-spacing:-.05em; }
.modal-title > small { display:block; margin-top:6px; color:rgba(255,255,255,.57); font-size:10px; }
.modal-title blockquote { margin:20px 0 0; font-size:15px; }
.modal-content { padding:clamp(30px,5vw,70px); }
.modal-overview { display:grid; grid-template-columns:1fr 1.45fr 1.3fr; gap:36px; padding-bottom:48px; border-bottom:1px solid var(--line); }
.modal-overview > div > span { display:block; margin-bottom:13px; font:800 9px/1 Arial; letter-spacing:.18em; color:var(--blue); }
.modal-overview p,.modal-overview li { font-size:11px; line-height:1.9; color:#566175; }
.modal-overview p { margin:0; }
.modal-overview ul { margin:0; padding:0; list-style:none; }
.modal-overview li { padding-left:12px; position:relative; }
.modal-overview li::before { content:""; position:absolute; left:0; top:.8em; width:4px; height:4px; border-radius:50%; background:var(--blue); }
.member-section { padding-top:42px; }
.member-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:18px; }
.member-heading p { margin:0; font:900 25px/1 Arial; letter-spacing:-.03em; }
.member-heading span { font:700 8px/1 Arial; letter-spacing:.14em; color:#8790a1; }
.member-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.member-card { position:relative; min-height:245px; padding:20px 17px; overflow:hidden; background:#fff; border-top:3px solid var(--member-color); }
.member-card::after { content:""; position:absolute; right:-25px; bottom:-25px; width:90px; height:90px; border-radius:50%; background:var(--member-color); opacity:.12; }
.member-number { font:300 26px/1 Arial; color:#a3a9b4; }
.member-card > i { display:block; width:22px; height:3px; margin:20px 0 13px; background:var(--member-color); }
.member-card h3 { margin:0; font-size:17px; }
.member-card small { display:block; margin:4px 0 17px; color:#98a0ad; font-size:8px; }
.member-card strong { display:block; min-height:34px; color:var(--member-color); font-size:9px; line-height:1.6; }
.member-card p { position:relative; z-index:1; margin:9px 0 0; color:#697284; font-size:9px; line-height:1.75; }

@media (max-width:1000px) {
  .hero { grid-template-columns:1fr; height:auto; max-height:none; padding-top:88px; }
  .hero-copy { padding:70px 6vw 20px; }
  .hero-visual { min-height:56vw; padding:20px 4vw 85px; }
  .hero-card { width:82vw; }
  .site-header nav { display:none; }
  .header-cta { margin-left:auto; }
  .section-heading { align-items:start; flex-direction:column; }
  .unit-grid { grid-template-columns:repeat(2,1fr); }
  .project-section { grid-template-columns:1fr; }
  .project-collage { height:min(80vw,650px); }
  .soul-home-section { grid-template-columns:1fr; }
  .modal-overview { grid-template-columns:1fr 1fr; }
  .modal-overview > div:last-child { grid-column:1/-1; }
  .member-grid { grid-template-columns:repeat(3,1fr); }
}

@media (max-width:680px) {
  .site-header { position:absolute; height:70px; padding:0 18px; }
  .brand strong { font-size:14px; }
  .pin-mark { width:25px; height:25px; }
  .header-cta { font-size:10px; }
  .header-cta > span { display:none; }
  .hero { padding-top:70px; }
  .hero-copy { padding:60px 20px 18px; }
  .hero h1 em { white-space:normal; }
  .hero-lead br { display:none; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .button { width:100%; }
  .hero-numbers { justify-content:space-between; gap:12px; }
  .hero-visual { min-height:360px; padding:14px 13px 70px; }
  .hero-card { width:91vw; transform:rotate(-2deg); }
  .coordinates { display:none; }
  .scroll-hint { display:none; }
  .units-section { padding:75px 14px; }
  .section-heading { margin-bottom:34px; }
  .section-heading > p { font-size:12px; }
  .explorer { flex-direction:column; align-items:stretch; padding:10px; }
  .search-box { width:100%; border:0; border-top:1px solid var(--line); padding:10px 6px 0; }
  .unit-grid { grid-template-columns:1fr; gap:22px; }
  .unit-body h3 { font-size:25px; }
  .project-section { padding:85px 20px; }
  .project-collage { height:95vw; }
  .collage-card--1 { width:88%; left:3%; }
  .collage-card--2 { width:78%; }
  .collage-card--3 { width:65%; }
  .collage-stamp { width:90px; }
  .soul-home-section { padding:80px 17px; }
  .soul-home-copy > div { flex-direction:column; }
  .soul-home-copy a { justify-content:center; }
  .soul-levels { grid-template-columns:1fr; }
  .soul-levels article { min-height:155px; }
  .fes-section { min-height:680px; padding:90px 18px; }
  .fes-title > span { right:0; top:-28px; }
  .fes-stats { width:100%; }
  .fes-stats div { min-width:0; flex:1; padding:15px 4px; }
  footer { grid-template-columns:1fr; text-align:center; justify-items:center; }
  footer > p,footer > div { grid-column:1; }
  .modal-backdrop { padding:0; }
  .group-modal { min-height:100%; }
  .modal-hero { aspect-ratio:auto; height:390px; }
  .modal-hero > img { object-position:center; }
  .modal-shade { background:linear-gradient(0deg,rgba(5,12,26,.94),rgba(5,12,26,.05) 75%); }
  .modal-title { left:20px; right:20px; bottom:24px; }
  .modal-title blockquote { margin-top:12px; }
  .modal-content { padding:30px 18px 60px; }
  .modal-overview { grid-template-columns:1fr; gap:26px; }
  .modal-overview > div:last-child { grid-column:auto; }
  .member-heading { align-items:start; flex-direction:column; gap:8px; }
  .member-grid { grid-template-columns:1fr; }
  .member-card { min-height:0; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }

/* KIRAMEKI47 refresh */
.atlas-47-mark { position:relative; width:38px; height:38px; flex:none; display:grid; place-items:center; border-radius:50%; color:#fff; background:#e9475b; box-shadow:0 0 0 3px rgba(255,255,255,.13); }
.atlas-47-mark b { font:900 15px/1 Arial; letter-spacing:-.08em; }
.atlas-47-mark i { position:absolute; right:-2px; bottom:1px; width:9px; height:9px; border-radius:50% 50% 50% 2px; transform:rotate(-45deg); background:#78edda; }
.site-header .brand strong,.atlas-brand strong,.brand--footer strong,.site-header .brand small,.atlas-brand small,.brand--footer small { white-space:nowrap; }
.site-header .brand small,.atlas-brand small,.brand--footer small { letter-spacing:.18em; }
.japan-project-label { width:max-content; margin-bottom:22px; padding:7px 13px 7px 7px; display:flex; align-items:center; gap:10px; border:1px solid rgba(255,255,255,.22); border-radius:40px; background:rgba(255,255,255,.06); backdrop-filter:blur(8px); }
.japan-project-label b { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:#e9475b; font:900 18px/1 Arial; }
.japan-project-label span { font-size:9px; font-weight:800; line-height:1.45; letter-spacing:.12em; }
.hero { background-color:#07101e; }
.hero::after { content:"日本全国、すべてが主役。"; position:absolute; z-index:1; right:3vw; top:105px; writing-mode:vertical-rl; font-size:10px; font-weight:700; letter-spacing:.35em; color:rgba(255,255,255,.3); }
.hero-grid { background-image:radial-gradient(circle at center,rgba(255,255,255,.18) 0 1px,transparent 2px),linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px); background-size:36px 36px,72px 72px,72px 72px; animation:grid-drift 18s linear infinite; }
.hero-card { animation:hero-float 5.5s ease-in-out infinite; }
.hero-orbit--one { animation:orbit-one 16s linear infinite; }
.hero-orbit--two { animation:orbit-two 20s linear infinite reverse; }
.button,.header-cta,.profile-vote,.show-all { transition:transform .2s,box-shadow .2s,background .2s; }
.button:hover,.header-cta:hover,.profile-vote:hover,.show-all:hover { transform:translateY(-2px); }
.idol-fastlane { position:relative; padding:70px clamp(20px,6vw,96px); display:grid; grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr); gap:4vw; align-items:center; overflow:hidden; background:#fff8f5; color:#08111f; border-bottom:1px solid rgba(10,23,43,.1); }
.idol-fastlane::before { content:"47"; position:absolute; left:-25px; bottom:-45px; font:900 230px/.8 Arial; color:transparent; -webkit-text-stroke:1px rgba(233,71,91,.12); }
.fastlane-copy { position:relative; z-index:1; }
.fastlane-copy > p { margin:0 0 13px; color:#e9475b; font:800 9px/1 Arial; letter-spacing:.18em; }
.fastlane-copy h2 { margin:0; font-size:clamp(34px,4vw,62px); line-height:1.15; letter-spacing:-.06em; }
.fastlane-copy h2 em { color:#e9475b; font-style:normal; }
.fastlane-copy > span { display:block; max-width:430px; margin-top:18px; color:#687387; font-size:11px; line-height:1.9; }
.fastlane-copy > a { width:max-content; margin-top:25px; padding:13px 18px; display:flex; align-items:center; gap:34px; color:#fff; background:#08111f; font-size:10px; font-weight:800; }
.fastlane-copy > a b { color:#78edda; }
.fastlane-idols { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.fastlane-idols a { position:relative; min-width:0; overflow:hidden; padding-bottom:15px; background:#fff; border-bottom:3px solid var(--oshi); box-shadow:0 10px 30px rgba(25,39,65,.08); transition:transform .25s,box-shadow .25s; }
.fastlane-idols a:hover { transform:translateY(-7px) rotate(-.5deg); box-shadow:0 20px 38px rgba(25,39,65,.15); }
.fastlane-idols img { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center top; }
.fastlane-idols span { display:inline-block; margin:11px 12px 0; color:var(--oshi); font-size:8px; font-weight:800; }
.fastlane-idols strong,.fastlane-idols small { display:block; margin:4px 12px 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fastlane-idols strong { font-size:14px; }
.fastlane-idols small { color:#8790a0; font-size:7px; }
.unit-card:nth-child(3n+1) { border-bottom-color:#e9475b; }
.unit-card:nth-child(3n+2) { border-bottom-color:#5364df; }
.unit-card:nth-child(3n) { border-bottom-color:#39bfae; }
.unit-card { border-radius:0 0 10px 10px; overflow:hidden; }
.unit-body h3,.idol-directory-body h2,.profile-member-card h3 { overflow-wrap:anywhere; }
.mobile-dock { display:none!important; }
@keyframes hero-float { 0%,100% { transform:translate(2%,2%) rotate(-2deg) } 50% { transform:translate(2%,-1%) rotate(-1deg) } }
@keyframes orbit-one { to { transform:rotate(340deg) scaleY(.5) } }
@keyframes orbit-two { to { transform:rotate(392deg) scaleY(.7) } }
@keyframes grid-drift { to { background-position:36px 36px,72px 72px,72px 72px } }
@keyframes section-reveal { from { opacity:.25; transform:translateY(28px) } to { opacity:1; transform:none } }
@supports (animation-timeline:view()) {
  .unit-card,.idol-directory-card,.profile-member-card,.soul-levels article,.local-scene-grid article { animation:section-reveal both; animation-timeline:view(); animation-range:entry 5% cover 28%; }
}
.units-section,.idol-directory-section,.unit-members-section,.idol-profile-sheet { background-color:#f8f4ee; background-image:radial-gradient(circle at 16px 16px,rgba(233,71,91,.035) 0 2px,transparent 2.5px); background-size:32px 32px; }
.section-heading::before,.unit-members-heading::before,.idol-profile-heading::before { content:"KIRAMEKI47"; display:block; margin-bottom:10px; color:#e9475b; font:900 8px/1 Arial; letter-spacing:.2em; }

@media (max-width:1000px) {
  .idol-fastlane { grid-template-columns:1fr; gap:32px; }
  .fastlane-idols { overflow-x:auto; grid-template-columns:repeat(5,minmax(155px,1fr)); scroll-snap-type:x mandatory; padding-bottom:12px; }
  .fastlane-idols a { scroll-snap-align:start; }
}

@media (max-width:680px) {
  body { padding-bottom:66px; }
  .site-header,.atlas-header { position:absolute; height:66px; padding:0 13px; }
  .atlas-47-mark { width:34px; height:34px; }
  .brand,.atlas-brand { gap:8px; }
  .brand strong,.atlas-brand strong { font-size:12px; }
  .brand small,.atlas-brand small { margin-top:4px; font-size:6px; letter-spacing:.12em; }
  .header-cta,.atlas-header-vote { padding:8px 11px; border:1px solid rgba(255,255,255,.35); border-radius:20px; }
  .hero { min-height:auto; padding-top:66px; }
  .hero-copy { padding:42px 17px 15px; }
  .japan-project-label { margin-bottom:17px; }
  .japan-project-label b { width:34px; height:34px; font-size:15px; }
  .hero h1 { line-height:1.07; }
  .hero h1 span { font-size:34px; white-space:nowrap; }
  .hero h1 em { font-size:49px; white-space:nowrap; }
  .hero-lead { margin-top:20px; font-size:12px; line-height:1.8; }
  .hero-actions { margin-top:24px; gap:8px; }
  .button { min-height:48px; padding:0 18px; font-size:11px; }
  .hero-numbers { margin-top:27px; }
  .hero-numbers strong { font-size:28px; }
  .hero-visual { min-height:310px; padding:8px 13px 58px; }
  .hero-card { width:92vw; }
  .hero::after,.hero-side-note { display:none; }
  .idol-fastlane { padding:54px 15px; }
  .fastlane-copy h2 { font-size:37px; white-space:nowrap; }
  .fastlane-copy > span { font-size:10px; }
  .fastlane-copy > a { width:100%; justify-content:space-between; }
  .fastlane-idols { margin-right:-15px; grid-template-columns:repeat(5,145px); }
  .units-section { padding-top:65px; }
  .section-heading h2 { font-size:39px; }
  .section-heading h2 br { display:none; }
  .section-heading > p { line-height:1.8; }
  .region-tabs { padding-bottom:3px; }
  .region-tabs button { min-height:40px; }
  .unit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .unit-open { display:none; }
  .unit-body { padding:13px 12px 15px; }
  .unit-body h3 { margin-top:9px; font-size:17px; line-height:1.25; }
  .unit-body > p { min-height:40px; font-size:9px; line-height:1.6; }
  .unit-place { font-size:9px; }
  .palette { position:static; margin-top:12px; }
  .project-copy h2,.soul-home-copy h2 { font-size:39px; }
  .project-copy h2 br,.soul-home-copy h2 br { display:none; }
  .fes-title h2 { font-size:53px; }
  .mobile-dock { position:fixed; z-index:200; left:8px; right:8px; bottom:8px; height:58px; padding:4px; display:grid!important; grid-template-columns:repeat(4,1fr); border:1px solid rgba(255,255,255,.17); border-radius:16px; background:rgba(7,16,30,.93); color:#fff; box-shadow:0 15px 40px rgba(0,0,0,.3); backdrop-filter:blur(14px); }
  .mobile-dock a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; border-radius:11px; }
  .mobile-dock a:nth-child(2) { color:#ff8794; background:rgba(255,255,255,.08); }
  .mobile-dock b { font:900 15px/1 Arial; }
  .mobile-dock span { font:700 7px/1 Arial; letter-spacing:.04em; }
  .idol-directory-hero h1 { font-size:48px; }
  .idol-directory-card { border-radius:8px; }
  .idol-directory-body h2 { font-size:16px; line-height:1.25; }
  .idol-directory-body em { font-size:7px; }
  .profile-hero-inner,.idol-hero-inner { gap:28px; }
  .profile-copy h1,.idol-copy h1 { font-size:45px; line-height:1.08; overflow-wrap:anywhere; }
  .profile-meaning,.idol-personality { line-height:1.8; }
  .portrait-card { min-height:0; }
  .portrait-card > img { height:auto; aspect-ratio:3/4; }
}

/* Multi-page atlas profiles */
.profile-page { min-height:100vh; color:#fff; background:#07101e; }
.atlas-header { position:absolute; z-index:40; inset:0 0 auto; height:78px; padding:0 clamp(20px,5vw,76px); display:flex; align-items:center; color:#fff; border-bottom:1px solid rgba(255,255,255,.17); }
.atlas-brand { display:flex; align-items:center; gap:11px; }
.atlas-brand > span:last-child { display:grid; line-height:1; }
.atlas-brand strong { font:800 15px/1 Arial,sans-serif; letter-spacing:.03em; }
.atlas-brand small { margin-top:5px; font:700 8px/1 Arial,sans-serif; letter-spacing:.5em; color:var(--profile-primary,var(--cyan)); }
.detail-mark { width:27px; height:27px; border:2px solid currentColor; border-radius:50% 50% 50% 5px; transform:rotate(-45deg); display:grid; place-items:center; }
.detail-mark i { width:7px; height:7px; border:2px solid currentColor; border-radius:50%; }
.atlas-header nav { margin:auto; display:flex; gap:35px; font:700 9px/1 Arial,sans-serif; letter-spacing:.16em; }
.atlas-header nav a { color:rgba(255,255,255,.66); }
.atlas-header nav a:hover { color:var(--profile-primary,var(--cyan)); }
.atlas-header-vote { display:flex; align-items:center; gap:17px; font-size:11px; font-weight:800; }
.atlas-header-vote span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--profile-primary,var(--cyan)); color:#07101e; }
.land-backdrop { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,10,22,.97) 0%,rgba(4,10,22,.8) 45%,rgba(4,10,22,.25) 100%),var(--profile-image) center/cover; filter:saturate(.72); }
.land-backdrop::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 65%,color-mix(in srgb,var(--profile-primary) 36%,transparent),transparent 34%),linear-gradient(180deg,transparent 70%,#07101e); }
.unit-profile-hero { position:relative; min-height:850px; padding:130px clamp(22px,6vw,95px) 80px; overflow:hidden; }
.profile-hero-inner { position:relative; z-index:2; max-width:1500px; min-height:620px; margin:auto; display:grid; grid-template-columns:.82fr 1.18fr; gap:6vw; align-items:center; }
.breadcrumbs { display:flex; gap:10px; align-items:center; margin-bottom:52px; font:700 8px/1 Arial,sans-serif; letter-spacing:.14em; color:rgba(255,255,255,.36); }
.breadcrumbs a:hover { color:#fff; }
.breadcrumbs b { color:var(--profile-primary); font-weight:700; }
.profile-kicker { margin:0 0 15px; font:800 10px/1 Arial,sans-serif; letter-spacing:.18em; color:var(--profile-primary); }
.profile-copy h1 { margin:0; font-size:clamp(53px,7vw,108px); line-height:1; letter-spacing:-.07em; text-shadow:0 18px 40px rgba(0,0,0,.28); }
.profile-reading { margin:12px 0 0; font-size:10px; letter-spacing:.13em; color:rgba(255,255,255,.48); }
.profile-copy blockquote { margin:35px 0 0; font-size:clamp(18px,1.7vw,25px); font-weight:700; }
.profile-meaning { max-width:600px; margin:22px 0 0; font-size:11px; line-height:2; color:rgba(255,255,255,.57); }
.group-concept { max-width:620px; margin-top:24px; padding:18px 20px; border-left:3px solid var(--profile-primary); background:rgba(4,10,22,.56); backdrop-filter:blur(8px); }
.group-concept span { display:block; margin-bottom:8px; font:800 8px/1 Arial; letter-spacing:.18em; color:var(--profile-primary); }
.group-concept strong { display:block; font-size:13px; }
.group-concept p { margin:8px 0 0; color:rgba(255,255,255,.64); font-size:10px; line-height:1.9; }
.profile-actions { display:flex; align-items:center; gap:22px; margin-top:34px; }
.profile-vote { min-height:50px; padding:0 21px; display:inline-flex; align-items:center; gap:34px; background:var(--profile-primary); color:#07101e; font-size:11px; font-weight:800; box-shadow:0 14px 40px color-mix(in srgb,var(--profile-primary) 25%,transparent); }
.profile-vote span { font-size:17px; }
.profile-members-link { padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.5); font-size:10px; font-weight:800; color:#fff; }
.profile-status { display:flex; align-items:center; gap:8px; font:700 8px/1 Arial,sans-serif; letter-spacing:.12em; color:rgba(255,255,255,.42); }
.profile-status i { width:6px; height:6px; border-radius:50%; background:var(--profile-primary); box-shadow:0 0 12px var(--profile-primary); }
.profile-keyvisual { position:relative; margin:0; padding:12px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); box-shadow:0 40px 100px rgba(0,0,0,.42); transform:rotate(1.5deg); backdrop-filter:blur(10px); }
.profile-keyvisual img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.profile-keyvisual figcaption { padding:13px 3px 1px; display:flex; justify-content:space-between; font:700 8px/1 Arial,sans-serif; letter-spacing:.12em; color:rgba(255,255,255,.45); }
.profile-keyvisual figcaption span { color:var(--profile-primary); }
.land-label { position:absolute; z-index:2; right:clamp(22px,6vw,95px); bottom:20px; display:flex; align-items:end; gap:12px; color:rgba(255,255,255,.24); }
.land-label span { writing-mode:vertical-rl; font:700 7px/1 Arial; letter-spacing:.16em; }
.land-label strong { font-size:clamp(50px,8vw,120px); line-height:.8; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.14); }
.unit-story { padding:120px clamp(22px,7vw,110px); display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; background:#f5f2eb; color:#091323; }
.unit-story-title > p,.local-scene-heading > p,.unit-members-heading > div > p,.idol-profile-heading > p,.idol-land-section > div > p,.sibling-heading p { margin:0 0 16px; font:800 9px/1 Arial; letter-spacing:.18em; color:var(--profile-primary); }
.unit-story-title h2 { margin:0; font-size:clamp(58px,9vw,140px); line-height:.8; letter-spacing:-.08em; color:transparent; -webkit-text-stroke:1px color-mix(in srgb,var(--profile-deep) 42%,transparent); }
.unit-story-title > span { display:block; max-width:430px; margin-top:34px; font-size:13px; font-weight:700; line-height:1.8; }
.unit-story-body { border-top:1px solid rgba(9,19,35,.16); }
.unit-story-body article { padding:30px 0 36px; border-bottom:1px solid rgba(9,19,35,.16); }
.unit-story-body span { font:800 8px/1 Arial; letter-spacing:.14em; color:var(--profile-secondary); }
.unit-story-body h3 { margin:12px 0 13px; font-size:24px; }
.unit-story-body p { margin:0; font-size:11px; line-height:2; color:#5d6879; }
.local-scene-section { padding:115px clamp(22px,7vw,110px); background:linear-gradient(135deg,var(--profile-deep),#07101e 70%); }
.local-scene-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:55px; }
.local-scene-heading h2 { margin:0; font-size:clamp(38px,5vw,72px); line-height:1.25; letter-spacing:-.05em; }
.local-scene-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,255,255,.16); }
.local-scene-grid article { min-height:230px; padding:30px; border-right:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.025); }
.local-scene-grid article:last-child { border:0; }
.local-scene-grid span { font:300 28px/1 Arial; color:var(--profile-primary); }
.local-scene-grid p { margin:65px 0 0; font-size:12px; line-height:2; color:rgba(255,255,255,.65); }
.local-palette { display:grid; grid-template-columns:repeat(5,1fr); margin-top:28px; }
.local-palette div { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:5px 10px; }
.local-palette i { grid-row:1/3; width:27px; height:27px; border-radius:50%; border:2px solid rgba(255,255,255,.25); }
.local-palette span { font-size:9px; }
.local-palette small { font:700 7px/1 Arial; color:rgba(255,255,255,.32); }
.unit-members-section { padding:120px clamp(22px,6vw,95px); background:#f5f2eb; color:#091323; }
.unit-members-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:50px; }
.unit-members-heading h2 { margin:0; font-size:clamp(38px,5vw,70px); line-height:1.22; letter-spacing:-.055em; }
.unit-members-heading > span { font-size:10px; line-height:1.8; color:#6f7887; text-align:right; }
.profile-member-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.profile-member-card { position:relative; min-height:350px; padding:26px 21px; overflow:hidden; display:flex; flex-direction:column; background:#fff; border-top:4px solid var(--member); box-shadow:0 16px 45px rgba(18,31,52,.07); transition:.25s; }
.profile-member-card:hover { transform:translateY(-7px); box-shadow:0 25px 55px rgba(18,31,52,.13); }
.profile-member-card::after { content:""; position:absolute; right:-55px; bottom:-55px; width:160px; height:160px; border-radius:50%; background:var(--member); opacity:.1; }
.profile-member-top { display:flex; justify-content:space-between; }
.profile-member-top span { font:300 33px/1 Arial; color:#aab0ba; }
.profile-member-top i { width:12px; height:12px; border-radius:50%; background:var(--member); box-shadow:0 0 15px var(--member); }
.profile-member-card > p { margin:75px 0 8px; font-size:9px; color:var(--member); font-weight:800; }
.profile-member-card h3 { margin:0; font-size:21px; }
.profile-member-card small { margin-top:5px; color:#9aa1ac; font-size:8px; }
.profile-member-card strong { margin-top:22px; font-size:10px; line-height:1.7; color:#566174; }
.profile-member-card em { position:relative; z-index:1; margin-top:auto; display:flex; justify-content:space-between; font:800 8px/1 Arial; letter-spacing:.14em; font-style:normal; }
.profile-member-card em span { color:var(--member); }
.unit-members-priority { padding-top:95px; }
.portrait-card { min-height:520px; padding:0 18px 22px; }
.portrait-card > img { width:calc(100% + 36px); height:270px; margin:0 -18px 18px; object-fit:cover; object-position:center top; }
.portrait-card .profile-member-top { position:absolute; top:16px; left:16px; right:16px; }
.portrait-card .profile-member-top span { padding:5px 8px; color:#fff; background:rgba(7,16,30,.58); backdrop-filter:blur(6px); }
.portrait-card > p { margin:0 0 8px; }
.unit-next-step { min-height:620px; padding:100px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--profile-primary) 23%,transparent),transparent 35%),#070d19; }
.unit-next-step > p:first-child { margin:0 0 18px; font:800 9px/1 Arial; letter-spacing:.2em; color:var(--profile-primary); }
.unit-next-step h2 { margin:0; font-size:clamp(45px,7vw,96px); line-height:1.1; letter-spacing:-.06em; }
.unit-next-step h2 em { color:var(--profile-primary); font-style:normal; }
.unit-next-step > p:not(:first-child) { max-width:590px; margin:26px 0 30px; font-size:12px; line-height:2; color:rgba(255,255,255,.52); }
.unit-next-step > a { min-height:52px; padding:0 25px; display:flex; align-items:center; gap:40px; background:var(--profile-primary); color:#07101e; font-size:11px; font-weight:800; }
.atlas-footer { padding:42px clamp(22px,6vw,90px); display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:20px; background:#03070d; border-top:1px solid rgba(255,255,255,.1); }
.atlas-footer > p { margin:0; text-align:center; font-size:11px; color:rgba(255,255,255,.42); }
.atlas-footer nav { display:flex; gap:22px; font:700 8px/1 Arial; letter-spacing:.13em; }
.atlas-footer > small { grid-column:1/-1; margin-top:18px; font:700 7px/1 Arial; letter-spacing:.1em; color:rgba(255,255,255,.22); }

/* Individual profiles */
.idol-profile-hero { position:relative; min-height:880px; padding:125px clamp(22px,6vw,95px) 80px; overflow:hidden; }
.idol-hero-inner { position:relative; z-index:2; max-width:1600px; min-height:700px; margin:auto; display:grid; grid-template-columns:.08fr .62fr 1.3fr; gap:2.5vw; align-items:center; }
.idol-number { align-self:start; padding-top:140px; writing-mode:vertical-rl; font:300 clamp(70px,9vw,135px)/1 Arial; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.17); }
.idol-copy .breadcrumbs { margin-bottom:70px; }
.idol-color { display:flex; align-items:center; gap:9px; margin-bottom:13px; font-size:9px; font-weight:800; color:var(--profile-primary); }
.idol-color i { width:20px; height:3px; background:var(--profile-primary); }
.idol-copy h1 { margin:0; font-size:clamp(50px,6.3vw,94px); line-height:1; letter-spacing:-.065em; }
.idol-copy h2 { max-width:520px; margin:40px 0 13px; font-size:clamp(18px,1.8vw,26px); line-height:1.45; color:var(--profile-primary); }
.idol-personality { max-width:500px; margin:0; font-size:12px; line-height:2; color:rgba(255,255,255,.62); }
.idol-group-visual { position:relative; overflow:hidden; margin:0; padding:11px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); box-shadow:0 40px 100px rgba(0,0,0,.44); backdrop-filter:blur(9px); transform:rotate(1.2deg); }
.idol-group-visual img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.idol-group-visual figcaption { padding:13px 3px 1px; display:flex; justify-content:space-between; font:700 8px/1 Arial; letter-spacing:.12em; color:rgba(255,255,255,.4); }
.idol-group-visual figcaption a { color:var(--profile-primary); }
.idol-solo-visual { width:min(690px,100%); max-width:none; justify-self:end; animation:solo-breathe 6s ease-in-out infinite; }
.idol-solo-visual img { aspect-ratio:3/4; object-position:center top; }
.idol-solo-visual figcaption strong { color:var(--profile-primary); }

/* 235 idol directory */
.idols-directory-page { min-height:100vh; background:#f5f2eb; color:#091323; }
.idol-directory-hero { min-height:560px; padding:155px clamp(22px,7vw,110px) 80px; color:#fff; background:radial-gradient(circle at 80% 30%,rgba(120,237,218,.2),transparent 30%),radial-gradient(circle at 20% 70%,rgba(83,100,223,.35),transparent 35%),#07101e; }
.idol-directory-hero > p:first-child { margin:0 0 18px; font:800 9px/1 Arial; letter-spacing:.2em; color:#78edda; }
.idol-directory-hero h1 { margin:0; font-size:clamp(52px,8vw,112px); line-height:1.04; letter-spacing:-.07em; }
.idol-directory-hero h1 em { color:#78edda; font-style:normal; }
.idol-directory-hero > p:last-child { margin:28px 0 0; color:rgba(255,255,255,.6); font-size:12px; }
.idol-directory-section { width:100%; max-width:1480px; margin:0 auto; padding:75px clamp(16px,5vw,75px) 120px; }
.idol-directory-controls label { max-width:650px; height:58px; padding:0 20px; display:flex; align-items:center; gap:14px; background:#fff; box-shadow:0 12px 35px rgba(18,31,52,.08); }
.idol-directory-controls input { width:100%; border:0; outline:0; font:600 12px/1.5 inherit; background:transparent; }
.idol-directory-controls > div { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; }
.idol-directory-controls button { padding:9px 13px; border:1px solid rgba(9,19,35,.18); background:transparent; font-size:9px; }
.idol-directory-controls button.active { color:#fff; background:#5364df; border-color:#5364df; }
.idol-directory-toolbar { display:grid; grid-template-columns:minmax(320px,650px) 210px; gap:10px; align-items:stretch; }
.idol-directory-search { height:54px; padding:0 19px; display:flex; align-items:center; gap:13px; background:#fff; border:1px solid rgba(9,19,35,.12); box-shadow:0 10px 28px rgba(18,31,52,.06); }
.idol-directory-search > span { font-size:22px; }
.idol-directory-search input { width:100%; border:0; outline:0; background:transparent; font-size:11px; }
.idol-sort { height:54px; padding:8px 13px; display:grid; gap:3px; background:#fff; border:1px solid rgba(9,19,35,.12); }
.idol-sort span { color:#8b94a1; font:700 7px/1 Arial; letter-spacing:.12em; }
.idol-sort select { border:0; outline:0; background:transparent; font-size:11px; font-weight:700; }
.idol-filter-switch { display:flex; gap:5px; margin-top:27px; padding-bottom:10px; border-bottom:1px solid rgba(9,19,35,.13); }
.idol-filter-switch button { min-width:100px; padding:11px 17px; border:0; background:transparent; font-size:10px; font-weight:800; cursor:pointer; }
.idol-filter-switch button.active { color:#fff; background:#091323; }
.idol-filter-options { display:flex; flex-wrap:wrap; gap:7px; padding:17px 0 8px; }
.idol-filter-options button { min-width:44px; height:36px; padding:0 13px; border:1px solid rgba(9,19,35,.14); background:transparent; color:#556176; font-size:9px; cursor:pointer; }
.idol-filter-options button.active { color:#fff; background:#5364df; border-color:#5364df; }
.idol-filter-options.prefecture-list { max-height:124px; overflow:auto; align-content:flex-start; }
.idol-directory-count { margin:26px 0 15px; display:flex; align-items:baseline; }
.idol-directory-count strong { font:300 38px/1 Arial; color:#5364df; }
.idol-directory-count span { font:800 9px/1 Arial; letter-spacing:.13em; color:#7c8694; }
.idol-directory-count small { margin-left:auto; color:#7c8694; font-size:9px; }
.idol-directory-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.idol-directory-card { overflow:hidden; display:flex; flex-direction:column; content-visibility:auto; contain-intrinsic-size:360px; background:#fff; border-bottom:3px solid var(--idol-color); box-shadow:0 13px 35px rgba(18,31,52,.07); transition:.22s; }
.idol-directory-card:hover { transform:translateY(-5px); box-shadow:0 22px 46px rgba(18,31,52,.13); }
.idol-directory-image { position:relative; }
.idol-directory-image img { width:100%; aspect-ratio:1/1; object-fit:cover; object-position:center 18%; }
.idol-directory-image span { position:absolute; left:10px; bottom:10px; padding:5px 8px; color:#fff; background:rgba(7,16,30,.68); font-size:8px; }
.idol-directory-body { min-height:126px; padding:12px; display:flex; flex-direction:column; }
.idol-directory-body i { width:20px; height:3px; background:var(--idol-color); }
.idol-directory-body small { margin-top:10px; color:#7e8794; font-size:7px; }
.idol-directory-body h2 { margin:4px 0 0; font-size:17px; }
.idol-directory-body p { margin:4px 0 15px; color:#9aa1ac; font-size:8px; }
.idol-directory-body strong { font-size:8px; line-height:1.5; }
.idol-directory-body em { margin-top:auto; display:flex; justify-content:space-between; font:800 8px/1 Arial; color:#5364df; font-style:normal; }
.empty-state { padding:80px 20px; text-align:center; }
.empty-state button { display:block; margin:20px auto; padding:10px 15px; }
.idol-profile-sheet { padding:120px clamp(22px,7vw,110px); display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; background:#f5f2eb; color:#091323; }
.idol-profile-heading h2 { margin:0; font-size:clamp(42px,5.5vw,78px); line-height:1.2; letter-spacing:-.06em; }
.idol-profile-sheet dl { margin:0; border-top:1px solid rgba(9,19,35,.17); }
.idol-profile-sheet dl > div { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid rgba(9,19,35,.17); }
.idol-profile-sheet dt { font:800 8px/1.5 Arial; letter-spacing:.15em; color:var(--profile-secondary); }
.idol-profile-sheet dd { margin:0; font-size:14px; line-height:1.7; }
.idol-profile-sheet dd small { display:block; margin-top:3px; font-size:9px; color:#8e96a3; }
.idol-land-section { padding:110px clamp(22px,7vw,110px); display:grid; grid-template-columns:.75fr 1.25fr; gap:7vw; align-items:center; background:linear-gradient(135deg,var(--profile-deep),#07101e 70%); }
.idol-land-section > div:first-child h2 { margin:0; font-size:clamp(40px,5vw,72px); line-height:1.25; letter-spacing:-.06em; }
.idol-land-section > div:first-child > p:last-child { max-width:550px; margin:27px 0 0; font-size:12px; line-height:2; color:rgba(255,255,255,.57); }
.idol-land-image { position:relative; overflow:hidden; box-shadow:0 35px 80px rgba(0,0,0,.4); }
.idol-land-image::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(4,10,22,.64),transparent 65%); }
.idol-land-image img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.idol-land-image span { position:absolute; z-index:1; right:18px; bottom:-5px; font-size:clamp(43px,7vw,100px); font-weight:900; line-height:1; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.42); }
.idol-roots-card { position:relative; overflow:hidden; padding:42px; border:1px solid rgba(255,255,255,.17); background:rgba(255,255,255,.05); box-shadow:0 35px 80px rgba(0,0,0,.25); }
.idol-roots-card::before { content:"47"; position:absolute; right:-20px; top:-25px; font:900 150px/.8 Arial; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.08); animation:stamp-turn 18s linear infinite; }
.idol-roots-card > span { color:var(--profile-primary); font:800 8px/1 Arial; letter-spacing:.2em; }
.idol-roots-card > strong { display:block; margin-top:16px; font-size:clamp(44px,6vw,84px); line-height:1; }
.idol-roots-card blockquote { margin:19px 0 28px; color:rgba(255,255,255,.7); font-size:15px; font-weight:700; }
.idol-roots-card > div { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.14); }
.idol-roots-card > div p { margin:0; padding:20px 14px; border-right:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.55); font-size:10px; line-height:1.8; }
.idol-roots-card > div p:last-child { border:0; }
.idol-roots-card p b { display:block; margin-bottom:9px; color:var(--profile-primary); font:300 20px/1 Arial; }
.idol-roots-card > a { width:max-content; margin-top:27px; display:flex; padding-bottom:7px; border-bottom:1px solid var(--profile-primary); color:var(--profile-primary); font-size:10px; font-weight:800; }
.sibling-members { padding:100px clamp(22px,6vw,95px); background:#f5f2eb; color:#091323; }
.sibling-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:28px; }
.sibling-heading h2 { margin:0; font-size:clamp(38px,5vw,68px); letter-spacing:-.05em; }
.sibling-members > div:last-child { display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }
.sibling-members > div:last-child a { min-height:150px; padding:20px; display:flex; flex-direction:column; border-top:3px solid var(--member); background:#fff; opacity:.7; transition:.2s; }
.sibling-members > div:last-child a:hover,.sibling-members > div:last-child a.active { opacity:1; transform:translateY(-4px); }
.sibling-members a > span { font:300 24px/1 Arial; color:var(--member); }
.sibling-members a > strong { margin-top:25px; font-size:15px; }
.sibling-members a > small { margin-top:7px; font-size:8px; line-height:1.6; color:#828b9a; }
.sibling-members a > img { width:calc(100% + 40px); aspect-ratio:3/4; margin:-20px -20px 16px; object-fit:cover; object-position:center top; }
.sibling-members > div:last-child a { min-height:380px; overflow:hidden; }

/* Varied, lightweight motion language */
@keyframes solo-breathe { 0%,100% { transform:rotate(.7deg) translateY(0) } 50% { transform:rotate(-.4deg) translateY(-10px) } }
@keyframes stamp-turn { to { transform:rotate(360deg) } }
@keyframes reveal-rise { from { opacity:0; transform:translateY(45px) scale(.97) } to { opacity:1; transform:none } }
@keyframes reveal-side { from { opacity:0; transform:translateX(-55px) } to { opacity:1; transform:none } }
@keyframes reveal-clip { from { opacity:.2; clip-path:inset(0 100% 0 0) } to { opacity:1; clip-path:inset(0) } }
@keyframes reveal-pop { 0% { opacity:0; transform:scale(.78) rotate(-3deg) } 70% { transform:scale(1.025) rotate(.5deg) } 100% { opacity:1; transform:none } }
@keyframes light-sweep { from { transform:translateX(-140%) skewX(-18deg) } to { transform:translateX(340%) skewX(-18deg) } }
@keyframes color-pulse { 0%,100% { box-shadow:0 0 0 0 color-mix(in srgb,var(--profile-primary) 0%,transparent) } 50% { box-shadow:0 0 45px color-mix(in srgb,var(--profile-primary) 20%,transparent) } }
@keyframes collage-drift-a { 0%,100% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3.5deg) translateY(-9px) } }
@keyframes collage-drift-b { 0%,100% { transform:rotate(4deg) translateY(0) } 50% { transform:rotate(2.5deg) translateY(11px) } }
@keyframes collage-drift-c { 0%,100% { transform:rotate(-2deg) translateX(0) } 50% { transform:rotate(-.6deg) translateX(10px) } }
@keyframes glow-breathe { 0%,100% { opacity:.55; transform:scale(.9) } 50% { opacity:1; transform:scale(1.08) } }
.collage-card--1 { animation:collage-drift-a 7.5s ease-in-out infinite; }
.collage-card--2 { animation:collage-drift-b 8.5s ease-in-out infinite; }
.collage-card--3 { animation:collage-drift-c 6.8s ease-in-out infinite; }
.collage-stamp { animation:solo-breathe 5.8s ease-in-out infinite reverse; }
.fes-glow { animation:glow-breathe 6.5s ease-in-out infinite; }
.idol-solo-visual::after,.profile-keyvisual::after { content:""; position:absolute; z-index:3; inset:0 auto 0 -35%; width:22%; pointer-events:none; background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent); animation:light-sweep 7s ease-in-out infinite; }
.profile-vote { animation:color-pulse 3.8s ease-in-out infinite; }
.idol-color i,.profile-status i { animation:color-pulse 2.4s ease-in-out infinite; }
@supports (animation-timeline:view()) {
  .idol-profile-sheet { animation:reveal-rise both; animation-timeline:view(); animation-range:entry 5% cover 30%; }
  .idol-profile-sheet dl > div { animation:reveal-side both; animation-timeline:view(); animation-range:entry 8% cover 24%; }
  .idol-roots-card { animation:reveal-clip both; animation-timeline:view(); animation-range:entry 5% cover 38%; }
  .sibling-members > div:last-child a { animation:reveal-pop both; animation-timeline:view(); animation-range:entry 4% cover 24%; }
  .sibling-members > div:last-child a:nth-child(2),.profile-member-card:nth-child(2) { animation-range:entry 10% cover 30%; }
  .sibling-members > div:last-child a:nth-child(3),.profile-member-card:nth-child(3) { animation-range:entry 16% cover 36%; }
  .sibling-members > div:last-child a:nth-child(4),.profile-member-card:nth-child(4) { animation-range:entry 22% cover 42%; }
  .sibling-members > div:last-child a:nth-child(5),.profile-member-card:nth-child(5) { animation-range:entry 28% cover 48%; }
  .fastlane-copy,.project-copy,.soul-home-copy { animation:reveal-side both; animation-timeline:view(); animation-range:entry 6% cover 30%; }
  .fastlane-idols a,.soul-levels article,.fes-stats div { animation:reveal-pop both; animation-timeline:view(); animation-range:entry 8% cover 26%; }
  .project-collage { animation:reveal-clip both; animation-timeline:view(); animation-range:entry 8% cover 38%; }
  .fes-title { animation:reveal-pop both; animation-timeline:view(); animation-range:entry 8% cover 34%; }
}

@media (max-width:1000px) {
  .atlas-header nav { display:none; }
  .atlas-header-vote { margin-left:auto; }
  .profile-hero-inner { grid-template-columns:1fr; }
  .unit-profile-hero { padding-top:120px; }
  .profile-keyvisual { width:min(800px,100%); }
  .unit-story,.idol-profile-sheet,.idol-land-section { grid-template-columns:1fr; }
  .profile-member-grid { grid-template-columns:repeat(3,1fr); }
  .idol-hero-inner { grid-template-columns:.1fr .9fr; }
  .idol-group-visual { grid-column:1/-1; width:min(800px,100%); margin:auto; }
  .idol-directory-grid { grid-template-columns:repeat(4,1fr); }
}

@media (max-width:680px) {
  .atlas-header { height:68px; padding:0 16px; }
  .atlas-header-vote { font-size:9px; }
  .atlas-header-vote span { display:none; }
  .unit-profile-hero { min-height:auto; padding:105px 16px 68px; }
  .breadcrumbs { margin-bottom:35px; overflow:auto; white-space:nowrap; }
  .profile-copy h1 { font-size:49px; }
  .profile-copy blockquote { margin-top:25px; }
  .profile-actions { align-items:flex-start; flex-direction:column; }
  .profile-keyvisual { padding:7px; }
  .land-label { display:none; }
  .unit-story,.local-scene-section,.unit-members-section,.idol-profile-sheet,.idol-land-section,.sibling-members { padding:75px 17px; }
  .unit-story-title h2 { font-size:75px; }
  .local-scene-heading,.unit-members-heading { align-items:start; flex-direction:column; gap:18px; }
  .unit-members-heading > span { text-align:left; }
  .local-scene-grid { grid-template-columns:1fr; }
  .local-scene-grid article { min-height:0; border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .local-scene-grid p { margin-top:28px; }
  .local-palette { grid-template-columns:1fr; gap:12px; }
  .profile-member-grid { grid-template-columns:1fr; }
  .profile-member-card { min-height:260px; }
  .profile-member-card > p { margin-top:42px; }
  .portrait-card { min-height:500px; }
  .portrait-card > p { margin-top:0; }
  .atlas-footer { grid-template-columns:1fr; text-align:center; justify-items:center; }
  .atlas-footer > p,.atlas-footer nav { grid-column:1; }
  .idol-profile-hero { min-height:auto; padding:100px 16px 65px; }
  .idol-hero-inner { grid-template-columns:1fr; }
  .idol-number { display:none; }
  .idol-copy .breadcrumbs { margin-bottom:40px; }
  .idol-copy h1 { font-size:51px; }
  .idol-group-visual { grid-column:auto; padding:7px; margin-top:30px; }
  .idol-solo-visual { width:100%; animation:none; }
  .idol-solo-visual img { max-height:none; }
  .idol-roots-card { padding:27px 20px; }
  .idol-roots-card > div { grid-template-columns:1fr; }
  .idol-roots-card > div p { border-right:0; border-bottom:1px solid rgba(255,255,255,.14); }
  .sibling-members > div:last-child { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sibling-members > div:last-child a { min-height:0; padding:12px; }
  .sibling-members a > img { width:calc(100% + 24px); margin:-12px -12px 12px; }
  .idol-profile-sheet dl > div { grid-template-columns:95px 1fr; }
  .sibling-members > div:last-child { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sibling-members > div:last-child a { min-height:115px; }
  .idol-directory-hero { min-height:510px; padding:130px 18px 70px; }
  .idol-directory-section { padding:55px 12px 80px; }
  .idol-directory-toolbar { grid-template-columns:1fr; }
  .idol-sort { height:48px; }
  .idol-filter-switch { overflow:auto; }
  .idol-filter-switch button { min-width:88px; }
  .idol-filter-options { flex-wrap:nowrap; overflow-x:auto; padding-bottom:13px; }
  .idol-filter-options.prefecture-list { max-height:none; }
  .idol-filter-options button { flex:none; }
  .idol-directory-grid { grid-template-columns:repeat(2,1fr); }
  .idol-directory-body { min-height:142px; padding:11px; }
}

/* Ranking and support */
.ranking-page,.support-page { --profile-primary:#78edda; min-height:100vh; color:#fff; background:#07101e; }
.ranking-intro,.support-hero { min-height:760px; padding:150px clamp(22px,8vw,130px) 90px; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; background:radial-gradient(circle at 75% 35%,rgba(78,114,255,.42),transparent 32%),linear-gradient(130deg,#07101e,#0e1d39); }
.ranking-intro::before { content:"RANK"; position:absolute; right:-2%; bottom:-6%; font:900 clamp(120px,25vw,380px)/.8 Arial; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.07); }
.ranking-intro > p:first-child,.support-hero > p:first-child,.soul-heading > p,.support-model > div:first-child > p,.support-partner > p { position:relative; margin:0 0 22px; font:800 9px/1 Arial; letter-spacing:.2em; color:#78edda; }
.ranking-intro h1,.support-hero h1 { position:relative; margin:0; font-size:clamp(50px,8vw,120px); line-height:1.05; letter-spacing:-.07em; }
.ranking-intro h1 em,.support-hero h1 em { color:#78edda; font-style:normal; }
.ranking-intro > p:nth-of-type(2),.support-hero > p:nth-of-type(2) { position:relative; max-width:650px; margin:32px 0 0; color:rgba(255,255,255,.6); font-size:13px; line-height:2.1; }
.ranking-intro > div { position:relative; display:flex; gap:12px; margin-top:42px; }
.ranking-intro > div span { min-width:185px; padding:16px; border:1px solid rgba(255,255,255,.2); font:700 8px/1 Arial; letter-spacing:.14em; color:rgba(255,255,255,.45); }
.ranking-intro > div strong { float:right; color:#78edda; }
.ranking-preseason { padding:110px clamp(22px,7vw,110px); display:grid; grid-template-columns:1.15fr repeat(3,1fr); gap:12px; background:#f5f2eb; color:#091323; }
.ranking-preseason > div:first-child { padding-right:30px; }
.ranking-preseason > div:first-child > p { margin:0 0 18px; font:800 9px/1 Arial; letter-spacing:.18em; color:#5364df; }
.ranking-preseason h2 { margin:0; font-size:clamp(36px,4.3vw,64px); line-height:1.25; letter-spacing:-.055em; }
.preseason-rule { min-height:290px; padding:27px 23px; display:flex; flex-direction:column; background:#fff; border-top:3px solid #5364df; }
.preseason-rule span { font:300 28px/1 Arial; color:#5364df; }
.preseason-rule h3 { margin:auto 0 10px; font:800 13px/1 Arial; letter-spacing:.08em; }
.preseason-rule p { margin:0; color:#687284; font-size:10px; line-height:1.9; }
.ranking-coming { min-height:570px; padding:90px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:radial-gradient(circle,rgba(120,237,218,.15),transparent 35%),#070d19; }
.ranking-coming > p { margin:0 0 18px; font:800 8px/1 Arial; letter-spacing:.2em; color:#78edda; }
.ranking-coming h2 { margin:0 0 32px; font-size:clamp(40px,6vw,82px); line-height:1.15; letter-spacing:-.06em; }
.ranking-coming a { min-height:50px; padding:0 24px; display:flex; align-items:center; gap:50px; background:#78edda; color:#07101e; font-size:11px; font-weight:800; }
.live-ranking { padding:0 clamp(16px,5vw,80px) 110px; background:#f5f2eb; color:#091323; }
.ranking-tabs { position:relative; transform:translateY(-38px); max-width:980px; margin:0 auto 15px; display:grid; grid-template-columns:1fr 1fr; background:#fff; border:1px solid rgba(9,19,35,.13); box-shadow:0 18px 50px rgba(17,31,53,.12); }
.ranking-tabs button { height:76px; display:flex; align-items:center; justify-content:center; gap:15px; border:0; border-right:1px solid rgba(9,19,35,.1); background:#fff; color:#738094; font:800 11px/1 Arial; letter-spacing:.12em; cursor:pointer; }
.ranking-tabs button:last-child { border:0; }
.ranking-tabs button span { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; background:#edf0f4; font-size:8px; }
.ranking-tabs button.active { background:#091323; color:#fff; }
.ranking-tabs button.active span { background:#78edda; color:#091323; }
.ranking-layout { max-width:1480px; margin:auto; display:grid; grid-template-columns:1.22fr .78fr; gap:24px; align-items:start; }
.ranking-list-panel,.vote-panel { background:#fff; box-shadow:0 16px 50px rgba(18,31,52,.08); }
.ranking-list-panel { padding:34px; }
.ranking-panel-heading { display:flex; align-items:end; justify-content:space-between; padding-bottom:24px; border-bottom:1px solid rgba(9,19,35,.13); }
.ranking-panel-heading p,.vote-panel > p { margin:0 0 8px; font:800 8px/1 Arial; letter-spacing:.16em; color:#5364df; }
.ranking-panel-heading h2 { margin:0; font-size:30px; letter-spacing:-.04em; }
.ranking-panel-heading > span { padding:7px 9px; background:#eef0f4; color:#758094; font-size:8px; }
.ranking-list { list-style:none; margin:0; padding:0; }
.ranking-list li { min-height:82px; display:grid; grid-template-columns:50px 78px 1fr auto 36px; align-items:center; gap:14px; padding:10px 8px; border-bottom:1px solid rgba(9,19,35,.1); cursor:pointer; transition:.18s; }
.ranking-list li:hover,.ranking-list li.selected { background:#f2f5f5; }
.rank-no { font:300 28px/1 Arial; color:#9da5b1; }
.ranking-list li:nth-child(-n+3) .rank-no { color:#5364df; }
.ranking-list img { width:78px; aspect-ratio:16/9; object-fit:cover; }
.ranking-list li > div { min-width:0; display:grid; gap:5px; }
.ranking-list li > div strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.ranking-list li > div small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#8992a0; font-size:8px; }
.ranking-list li > p { margin:0; color:#8b94a2; font:700 8px/1 Arial; letter-spacing:.08em; text-align:right; }
.ranking-list li > p b { display:block; margin-bottom:4px; font-size:16px; color:#091323; }
.ranking-list li > button { width:32px; height:32px; border-radius:50%; border:1px solid rgba(9,19,35,.16); background:#fff; color:#5364df; cursor:pointer; }
.vote-panel { position:sticky; top:18px; padding:34px; }
.vote-panel > h2 { margin:0 0 24px; font-size:clamp(26px,3vw,39px); line-height:1.25; letter-spacing:-.05em; }
.vote-search { height:45px; padding:0 13px; display:flex; align-items:center; gap:8px; border:1px solid rgba(9,19,35,.14); }
.vote-search > span { font:23px/1 Georgia; color:#7a8595; }
.vote-search input { flex:1; min-width:0; border:0; outline:0; font-size:11px; }
.vote-candidates { max-height:285px; margin-top:10px; overflow:auto; border:1px solid rgba(9,19,35,.12); }
.vote-candidates > button { width:100%; min-height:54px; padding:7px 10px; display:grid; grid-template-columns:9px 1fr auto; align-items:center; gap:10px; border:0; border-bottom:1px solid rgba(9,19,35,.09); background:#fff; color:#091323; text-align:left; cursor:pointer; }
.vote-candidates > button:hover,.vote-candidates > button.active { background:#eef4f3; }
.vote-candidates i { width:8px; height:8px; border-radius:50%; }
.vote-candidates span { min-width:0; display:grid; gap:3px; }
.vote-candidates strong,.vote-candidates small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vote-candidates strong { font-size:10px; }
.vote-candidates small { color:#8a93a0; font-size:7px; }
.vote-candidates b { color:#5364df; }
.vote-selection { min-height:74px; margin:12px 0; padding:9px; display:flex; align-items:center; gap:11px; background:#f1f3f2; }
.vote-selection img { width:80px; aspect-ratio:16/9; object-fit:cover; }
.vote-selection > div { display:grid; gap:3px; }
.vote-selection small { font:800 7px/1 Arial; letter-spacing:.14em; color:#5364df; }
.vote-selection strong { font-size:13px; }
.vote-selection span { font-size:8px; color:#7a8493; }
.vote-selection > p { margin:auto; color:#8b94a1; font-size:10px; }
.cast-vote { width:100%; min-height:54px; padding:0 18px; display:flex; align-items:center; justify-content:space-between; border:0; background:#091323; color:#fff; font-size:11px; font-weight:800; cursor:pointer; }
.cast-vote span { color:#78edda; font-size:18px; }
.cast-vote:disabled { opacity:.35; cursor:not-allowed; }
.vote-message { margin:12px 0 0; padding:12px; background:#eaf4f0; color:#315f54; font-size:10px; line-height:1.6; }
.vote-fairness { display:block; margin-top:17px; color:#8a93a1; font-size:8px; line-height:1.8; text-align:center; }
.voted-state { min-height:190px; margin:20px 0; padding:25px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:#edf5f2; }
.voted-state > span { display:grid; place-items:center; width:42px; height:42px; margin-bottom:12px; border-radius:50%; background:#78edda; }
.voted-state strong { font-size:13px; }
.voted-state p { margin:8px 0 0; color:#5364df; font-size:12px; }
.senbatsu-system { padding:120px clamp(22px,7vw,110px); display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; background:linear-gradient(135deg,#101f3c,#07101e); }
.senbatsu-system > div:first-child > p { margin:0 0 18px; font:800 9px/1 Arial; letter-spacing:.18em; color:#78edda; }
.senbatsu-system h2 { margin:0; font-size:clamp(42px,5vw,74px); line-height:1.22; letter-spacing:-.06em; }
.senbatsu-system > div:first-child > p:nth-of-type(2) { margin:25px 0; max-width:570px; color:rgba(255,255,255,.55); font-size:12px; line-height:2; }
.senbatsu-system a { display:inline-flex; gap:40px; padding-bottom:8px; border-bottom:1px solid #78edda; color:#78edda; font-size:10px; font-weight:800; }
.senbatsu-map { display:grid; grid-template-columns:90px 1fr; gap:13px 22px; align-items:center; padding:42px; border:1px solid rgba(255,255,255,.17); background:rgba(255,255,255,.035); }
.senbatsu-map > span { font:300 60px/1 Arial; color:#78edda; }
.senbatsu-map > strong { font:800 12px/1.5 Arial; letter-spacing:.13em; }
.senbatsu-map > i { grid-column:1/-1; height:1px; background:rgba(255,255,255,.15); color:transparent; }
.senbatsu-map > b { grid-column:1/-1; margin-top:10px; text-align:right; font:900 35px/1 Arial; color:#ff6f7d; }
.ranking-rules { padding:110px clamp(22px,7vw,110px); display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; background:#f5f2eb; color:#091323; }
.ranking-rules > div > p { margin:0 0 18px; font:800 9px/1 Arial; letter-spacing:.18em; color:#5364df; }
.ranking-rules h2 { margin:0; font-size:clamp(38px,5vw,70px); line-height:1.24; letter-spacing:-.06em; }
.ranking-rules ol { margin:0; padding:0; list-style:none; border-top:1px solid rgba(9,19,35,.15); }
.ranking-rules li { padding:20px 0; display:grid; grid-template-columns:55px 1fr; gap:18px; border-bottom:1px solid rgba(9,19,35,.15); }
.ranking-rules li span { font:300 22px/1 Arial; color:#5364df; }
.ranking-rules li p { margin:0; color:#657083; font-size:11px; line-height:1.8; }
.support-hero { background:radial-gradient(circle at 70% 35%,rgba(255,111,125,.25),transparent 27%),radial-gradient(circle at 80% 55%,rgba(78,114,255,.32),transparent 34%),linear-gradient(130deg,#07101e,#111c36); }
.support-hero::before { content:"SOUL"; position:absolute; right:-3%; bottom:-8%; font:900 clamp(140px,28vw,420px)/.8 Arial; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.07); }
.soul-roadmap { padding:120px clamp(22px,7vw,110px); display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; background:#f5f2eb; color:#091323; }
.soul-heading h2 { margin:0; font-size:clamp(42px,5.5vw,78px); line-height:1.22; letter-spacing:-.06em; }
.soul-grid { border-top:1px solid rgba(9,19,35,.16); }
.soul-grid article { display:grid; grid-template-columns:70px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid rgba(9,19,35,.16); }
.soul-grid article > span { font:300 25px/1 Arial; color:#5364df; }
.soul-grid h3 { margin:0 0 7px; font:800 13px/1 Arial; letter-spacing:.09em; }
.soul-grid p { margin:0; color:#707988; font-size:10px; }
.support-model { padding:120px clamp(22px,7vw,110px); display:grid; grid-template-columns:1.2fr .8fr; gap:9vw; align-items:center; background:linear-gradient(135deg,#101f3c,#07101e); }
.support-model h2 { margin:0; font-size:clamp(40px,5vw,72px); line-height:1.23; letter-spacing:-.06em; }
.support-model > div:first-child > p:last-child { max-width:650px; margin:28px 0 0; font-size:12px; line-height:2.1; color:rgba(255,255,255,.55); }
.support-principle { padding:35px; border:1px solid rgba(255,255,255,.17); background:rgba(255,255,255,.04); }
.support-principle strong { font-size:18px; color:#78edda; }
.support-principle p { font-size:11px; line-height:1.9; color:rgba(255,255,255,.55); }
.support-principle span { display:block; padding:13px 0; border-top:1px solid rgba(255,255,255,.14); font:700 9px/1 Arial; letter-spacing:.14em; }
.fc-section { padding:120px clamp(18px,6vw,95px); background:#f5f2eb; color:#091323; }
.fc-heading { display:grid; grid-template-columns:1fr auto; align-items:end; margin-bottom:45px; }
.fc-heading > p,.vtuber-copy > p,.partner-heading > p { grid-column:1/-1; margin:0 0 16px; font:800 9px/1 Arial; letter-spacing:.18em; color:#5364df; }
.fc-heading h2 { margin:0; font-size:clamp(38px,5vw,70px); line-height:1.23; letter-spacing:-.06em; }
.fc-heading > span { color:#7e8794; font-size:9px; }
.fc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.fc-grid article { min-height:380px; padding:27px 22px; display:flex; flex-direction:column; background:#fff; border-top:3px solid #5364df; box-shadow:0 15px 45px rgba(18,31,52,.07); }
.fc-grid article.featured { color:#fff; background:#101f3c; border-color:#78edda; transform:translateY(-10px); }
.fc-grid article > p { margin:0; font:800 8px/1 Arial; letter-spacing:.16em; color:#5364df; }
.fc-grid article.featured > p { color:#78edda; }
.fc-grid h3 { margin:55px 0 8px; font:900 20px/1 Arial; letter-spacing:.02em; }
.fc-grid article > strong { font-size:13px; color:#5364df; }
.fc-grid article.featured > strong { color:#78edda; }
.fc-grid ul { margin:25px 0; padding:0; list-style:none; }
.fc-grid li { padding:8px 0; border-top:1px solid rgba(9,19,35,.12); font-size:9px; color:#626d7e; }
.fc-grid article.featured li { color:rgba(255,255,255,.58); border-color:rgba(255,255,255,.13); }
.fc-grid button { margin-top:auto; min-height:38px; border:1px solid rgba(9,19,35,.18); background:transparent; font:800 8px/1 Arial; letter-spacing:.14em; color:#7e8794; }
.fc-grid article.featured button { border-color:rgba(255,255,255,.24); color:#78edda; }
.fc-note { margin:25px 0 0; text-align:center; color:#7b8594; font-size:9px; line-height:1.8; }
.vtuber-stage { padding:120px clamp(22px,7vw,110px); display:grid; grid-template-columns:.85fr 1.15fr; gap:9vw; background:radial-gradient(circle at 20% 45%,rgba(255,111,125,.2),transparent 27%),#07101e; }
.vtuber-copy h2 { margin:0; font-size:clamp(42px,5.4vw,78px); line-height:1.2; letter-spacing:-.06em; }
.vtuber-copy > p:last-child { max-width:590px; margin:28px 0 0; color:rgba(255,255,255,.57); font-size:12px; line-height:2.1; }
.vtuber-stage ol { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.16); }
.vtuber-stage li { display:grid; grid-template-columns:50px 180px 1fr; gap:20px; align-items:center; padding:23px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.vtuber-stage li > span { font:300 22px/1 Arial; color:#78edda; }
.vtuber-stage li > strong { font:800 10px/1 Arial; letter-spacing:.12em; }
.vtuber-stage li > p { margin:0; color:rgba(255,255,255,.5); font-size:10px; line-height:1.8; }
.partner-plans { padding:120px clamp(20px,7vw,110px); background:#f5f2eb; color:#091323; }
.partner-heading { max-width:800px; }
.partner-heading h2 { margin:0; font-size:clamp(42px,5.5vw,80px); line-height:1.18; letter-spacing:-.06em; }
.partner-heading > p:last-child { margin:27px 0 0; color:#657083; font-size:12px; line-height:2; }
.partner-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:50px; }
.partner-grid article { min-height:210px; padding:27px; display:flex; flex-direction:column; background:#fff; border-bottom:3px solid #5364df; }
.partner-grid span { font:800 9px/1 Arial; letter-spacing:.14em; color:#5364df; }
.partner-grid strong { margin-top:auto; font-size:20px; }
.partner-grid p { margin:10px 0 0; color:#737d8b; font-size:9px; line-height:1.8; }
.partner-actions { display:flex; justify-content:center; gap:10px; margin-top:35px; }
.partner-actions button,.partner-actions a { min-height:50px; padding:0 23px; display:flex; align-items:center; gap:35px; border:1px solid #091323; background:transparent; color:#091323; font-size:10px; font-weight:800; }
.partner-actions button { background:#091323; color:#fff; }
.project-roadmap { display:flex; align-items:center; gap:18px; margin:35px 0 10px; font:800 10px/1 Arial; letter-spacing:.12em; }
.project-roadmap i { color:#5364df; font-style:normal; }
.support-partner { min-height:620px; padding:110px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#091323; background:#f5f2eb; }
.support-partner h2 { margin:0; font-size:clamp(42px,6vw,86px); line-height:1.15; letter-spacing:-.065em; }
.support-partner > p:nth-of-type(2) { max-width:700px; margin:28px 0; color:#657083; font-size:12px; line-height:2; }
.support-partner > div { display:flex; gap:10px; }
.support-partner button,.support-partner a { min-height:50px; padding:0 22px; display:flex; align-items:center; border:1px solid #091323; background:transparent; color:#091323; font-size:10px; font-weight:800; }
.support-partner button { background:#091323; color:#fff; }

@media (max-width:1000px) {
  .ranking-preseason { grid-template-columns:repeat(3,1fr); }
  .ranking-preseason > div:first-child { grid-column:1/-1; margin-bottom:25px; }
  .soul-roadmap,.support-model,.vtuber-stage { grid-template-columns:1fr; }
  .fc-grid { grid-template-columns:repeat(2,1fr); }
  .ranking-layout,.senbatsu-system,.ranking-rules { grid-template-columns:1fr; }
  .vote-panel { position:static; }
}
@media (max-width:680px) {
  .ranking-intro,.support-hero { min-height:680px; padding:120px 18px 70px; }
  .ranking-intro > div { flex-direction:column; }
  .ranking-preseason { padding:75px 16px; grid-template-columns:1fr; }
  .preseason-rule { min-height:220px; }
  .soul-roadmap,.support-model { padding:75px 17px; }
  .support-partner { padding:80px 17px; }
  .support-partner > div { width:100%; flex-direction:column; }
  .support-partner button,.support-partner a { justify-content:center; }
  .fc-section,.vtuber-stage,.partner-plans { padding:75px 15px; }
  .fc-heading { grid-template-columns:1fr; gap:12px; }
  .fc-grid,.partner-grid { grid-template-columns:1fr; }
  .fc-grid article.featured { transform:none; }
  .vtuber-stage li { grid-template-columns:35px 1fr; }
  .vtuber-stage li > p { grid-column:2; }
  .partner-actions { flex-direction:column; }
  .partner-actions button,.partner-actions a { justify-content:center; }
  .project-roadmap { flex-wrap:wrap; justify-content:center; }
  .live-ranking { padding:0 10px 75px; }
  .ranking-tabs { transform:translateY(-28px); }
  .ranking-tabs button { height:58px; font-size:8px; }
  .ranking-list-panel,.vote-panel { padding:17px 12px; }
  .ranking-list li { grid-template-columns:33px 56px 1fr 27px; gap:8px; }
  .ranking-list img { width:56px; }
  .ranking-list li > p { display:none; }
  .ranking-list li > button { width:27px; height:27px; }
  .senbatsu-system,.ranking-rules { padding:75px 17px; }
  .senbatsu-map { padding:25px 20px; }
}
:root { --ink:#08111f; --navy:#0c1830; --blue:#4e72ff; --cyan:#78edda; --coral:#ff6f7d; --cream:#f6f3ec; --line:rgba(10,23,43,.14); }

/* Official brand and Japan 47 hero v1 */
.brand--official,.atlas-brand--official { flex:none; line-height:0; }
.official-brand-logo { width:auto; height:58px; object-fit:contain; filter:drop-shadow(0 6px 13px rgba(0,0,0,.22)); }
.atlas-header .official-brand-logo { height:52px; }
footer .official-brand-logo,.atlas-footer .official-brand-logo { height:56px; }

.hero-visual { display:block; }
.hero-ensemble-stage { position:absolute; z-index:2; inset:112px clamp(24px,3vw,54px) 38px 0; }
.hero-ensemble { position:relative; width:100%; height:100%; margin:0; padding:17px 18px 13px; display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; border:1px solid rgba(255,255,255,.2); border-radius:18px; background:linear-gradient(145deg,rgba(9,22,43,.9),rgba(13,28,55,.72)); box-shadow:0 35px 90px rgba(0,0,0,.36); backdrop-filter:blur(13px); }
.hero-ensemble::before { content:"235 IDOLS"; position:absolute; right:-11px; top:50%; transform:rotate(90deg) translateY(-50%); transform-origin:right top; color:rgba(255,255,255,.12); font:900 9px/1 Arial; letter-spacing:.23em; }
.hero-ensemble__summary { position:relative; z-index:3; display:flex; align-items:center; gap:10px; min-height:34px; color:#fff; }
.hero-ensemble__kicker { margin-right:auto; color:#78edda; font:800 8px/1 Arial; letter-spacing:.17em; }
.hero-ensemble__equation { display:flex; align-items:baseline; gap:6px; white-space:nowrap; }
.hero-ensemble__equation strong { font:500 25px/.9 Arial; }
.hero-ensemble__equation strong:last-of-type { color:#78edda; font-weight:900; }
.hero-ensemble__equation small { color:rgba(255,255,255,.58); font-size:7px; font-weight:800; }
.hero-ensemble__equation i { color:rgba(255,255,255,.36); font:400 12px/1 Arial; font-style:normal; }
.hero-ensemble__visual { position:relative; min-height:0; margin:10px 2px 8px; overflow:hidden; display:grid; place-items:center; border:1px solid rgba(255,255,255,.1); border-radius:13px; background:radial-gradient(circle at 50% 40%,rgba(84,112,255,.24),transparent 58%),#07101e; }
.hero-ensemble__visual::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(120,237,218,.08),inset 0 -50px 60px rgba(5,12,25,.22); }
.hero-ensemble__visual img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; animation:ensemble-breathe 8s ease-in-out infinite; }
.hero-ensemble__caption { position:relative; z-index:3; margin:0; display:flex; align-items:center; justify-content:center; gap:12px; color:rgba(255,255,255,.5); font-size:7px; }
.hero-ensemble__caption b { color:#78edda; font:800 7px/1 Arial; letter-spacing:.14em; }
@keyframes ensemble-breathe { 0%,100% { transform:scale(1); filter:saturate(1); } 50% { transform:scale(1.012); filter:saturate(1.08); } }
.hero-equation { margin-top:32px; display:flex; align-items:center; gap:clamp(10px,1.4vw,22px); }
.hero-equation > div { display:flex; align-items:baseline; gap:6px; }
.hero-equation strong { font:300 clamp(28px,3vw,44px)/.9 Arial; }
.hero-equation span { color:rgba(255,255,255,.48); font-size:8px; font-weight:800; }
.hero-equation > div:last-child strong { color:#78edda; font-weight:800; }
.hero-equation > b { color:rgba(255,255,255,.28); font:400 13px/1 Arial; }

@media (max-width:1000px) {
  .hero-ensemble-stage { inset:50px 5vw 35px; }
}
@media (max-width:680px) {
  .official-brand-logo { height:43px; }
  .atlas-header .official-brand-logo { height:42px; }
  footer .official-brand-logo,.atlas-footer .official-brand-logo { height:50px; }
  .hero .hero-visual { min-height:455px; padding:0; }
  .hero-ensemble-stage { inset:12px 10px 20px; }
  .hero-ensemble { padding:12px 10px 10px; border-radius:13px; }
  .hero-ensemble__summary { min-height:36px; gap:6px; }
  .hero-ensemble__kicker { max-width:92px; font-size:7px; line-height:1.4; }
  .hero-ensemble__equation { gap:4px; }
  .hero-ensemble__equation strong { font-size:20px; }
  .hero-ensemble__equation small { font-size:6px; }
  .hero-ensemble__equation i { font-size:9px; }
  .hero-ensemble__visual { margin:8px 0 7px; }
  .hero-ensemble__caption { gap:7px; font-size:6px; }
  .hero-ensemble__caption b { font-size:6px; }
  .hero-equation { margin-top:26px; justify-content:space-between; gap:6px; }
  .hero-equation strong { font-size:26px; }
  .hero-equation span { font-size:7px; }
}
/* End official brand and Japan 47 hero v1 */

/* Compact unit overview v2 */
.unit-overview-screen { position:relative; min-height:100svh; padding:94px clamp(18px,4vw,64px) 20px; overflow:hidden; }
.unit-overview-shell { position:relative; z-index:2; max-width:1500px; margin:auto; }
.unit-overview-breadcrumbs { margin:0 0 11px; }
.unit-overview-titlebar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:end; }
.unit-overview-titlebar h1 { margin:0; font-size:clamp(42px,5.3vw,76px); line-height:.93; letter-spacing:-.065em; text-shadow:0 18px 40px rgba(0,0,0,.28); }
.unit-overview-titlebar blockquote { margin:12px 0 0; font-size:clamp(14px,1.35vw,20px); font-weight:800; }
.unit-overview-titlebar .profile-reading { margin-top:8px; }
.unit-overview-titlebar .profile-actions { margin:0; justify-content:flex-end; }
.unit-overview-core { margin-top:14px; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr); gap:13px; align-items:stretch; }
.unit-overview-visual { position:relative; min-width:0; overflow:hidden; margin:0; padding:7px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.2); box-shadow:0 24px 68px rgba(0,0,0,.32); backdrop-filter:blur(10px); }
.unit-overview-visual img { width:100%; height:clamp(220px,28vh,315px); object-fit:cover; }
.unit-overview-visual figcaption { padding:8px 3px 1px; display:flex; justify-content:space-between; color:rgba(255,255,255,.45); font:700 7px/1 Arial; letter-spacing:.12em; }
.unit-overview-visual figcaption span { color:var(--profile-primary); }
.unit-overview-dna { min-width:0; padding:14px 16px 12px; border:1px solid rgba(255,255,255,.18); background:rgba(4,10,22,.76); box-shadow:0 24px 68px rgba(0,0,0,.25); backdrop-filter:blur(12px); }
.unit-dna-heading { display:flex; align-items:baseline; gap:10px; }
.unit-dna-heading span { color:var(--profile-primary); font:800 7px/1 Arial; letter-spacing:.18em; }
.unit-dna-heading strong { overflow:hidden; color:#fff; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.unit-overview-meaning { margin:8px 0; overflow:hidden; display:-webkit-box; color:rgba(255,255,255,.56); font-size:8px; line-height:1.6; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.unit-signal-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.unit-signal-grid > div { min-width:0; padding:8px 9px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); }
.unit-signal-grid span { display:block; margin-bottom:5px; color:var(--profile-primary); font:800 6px/1 Arial; letter-spacing:.13em; }
.unit-signal-grid strong { overflow:hidden; display:-webkit-box; font-size:8px; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.unit-feature-list { margin:6px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; list-style:none; }
.unit-feature-list li { min-width:0; padding:7px 8px; display:grid; grid-template-columns:auto 1fr; align-items:start; gap:5px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.025); }
.unit-feature-list b { color:var(--profile-primary); font:300 12px/1 Arial; }
.unit-feature-list span { overflow:hidden; display:-webkit-box; color:rgba(255,255,255,.57); font-size:7px; line-height:1.45; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.unit-palette-strip { margin-top:6px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; }
.unit-palette-strip span { min-width:0; display:flex; align-items:center; gap:4px; overflow:hidden; color:rgba(255,255,255,.36); font-size:6px; text-overflow:ellipsis; white-space:nowrap; }
.unit-palette-strip i { width:8px; height:8px; flex:none; border-radius:50%; border:1px solid rgba(255,255,255,.3); }
.unit-concept-detail { margin-top:7px; border-top:1px solid rgba(255,255,255,.1); }
.unit-concept-detail summary { min-height:27px; display:flex; align-items:end; cursor:pointer; color:var(--profile-primary); font-size:7px; font-weight:800; }
.unit-concept-detail p { margin:8px 0 1px; color:rgba(255,255,255,.58); font-size:8px; line-height:1.7; }
.unit-member-rail { margin-top:12px; padding:10px 12px 12px; border:1px solid rgba(255,255,255,.17); background:rgba(3,8,16,.8); box-shadow:0 22px 60px rgba(0,0,0,.24); backdrop-filter:blur(12px); }
.unit-member-rail-heading { margin-bottom:7px; display:flex; align-items:end; justify-content:space-between; }
.unit-member-rail-heading p { margin:0 0 4px; color:var(--profile-primary); font:800 6px/1 Arial; letter-spacing:.18em; }
.unit-member-rail-heading h2 { margin:0; font-size:17px; }
.unit-member-rail-heading > span { color:rgba(255,255,255,.4); font-size:7px; }
.unit-member-mini-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; }
.unit-member-mini { min-width:0; overflow:hidden; color:#091323; background:#fff; border-bottom:3px solid var(--member); transition:transform .2s,box-shadow .2s; }
.unit-member-mini:hover { transform:translateY(-4px); box-shadow:0 14px 25px rgba(0,0,0,.28); }
.unit-member-mini:focus-visible { outline:3px solid var(--member); outline-offset:3px; }
.unit-member-mini-visual { position:relative; overflow:hidden; }
.unit-member-mini-visual img { width:100%; height:clamp(78px,11vh,112px); object-fit:cover; object-position:center 16%; transition:transform .25s; }
.unit-member-mini:hover img { transform:scale(1.035); }
.unit-member-mini-visual span { position:absolute; left:6px; top:6px; padding:4px 5px; color:#fff; background:rgba(7,16,30,.65); font:700 6px/1 Arial; }
.unit-member-mini-body { min-height:57px; padding:6px 8px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:2px 5px; }
.unit-member-mini-body i { width:7px; height:7px; grid-row:1/3; border-radius:50%; background:var(--member); }
.unit-member-mini-body h3 { min-width:0; margin:0; overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.unit-member-mini-body p { min-width:0; margin:0; overflow:hidden; color:#8d95a1; font-size:6px; text-overflow:ellipsis; white-space:nowrap; }
.unit-member-mini-body strong { grid-column:1/-1; overflow:hidden; font-size:6px; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.unit-member-mini-body em { grid-column:3; grid-row:1/3; color:var(--member); font:800 5px/1 Arial; font-style:normal; }
.unit-compact-action { min-height:250px; padding:48px clamp(22px,7vw,110px); display:flex; align-items:center; justify-content:space-between; gap:32px; background:radial-gradient(circle at 75% 45%,color-mix(in srgb,var(--profile-primary) 18%,transparent),transparent 30%),#070d19; }
.unit-compact-action p { margin:0 0 13px; color:var(--profile-primary); font:800 7px/1 Arial; letter-spacing:.18em; }
.unit-compact-action h2 { margin:0; font-size:clamp(32px,4vw,58px); line-height:1.1; letter-spacing:-.055em; }
.unit-compact-action div > span { display:block; margin-top:14px; color:rgba(255,255,255,.48); font-size:9px; }
.unit-compact-action > a { min-height:50px; padding:0 21px; flex:none; display:flex; align-items:center; gap:36px; color:#07101e; background:var(--profile-primary); font-size:10px; font-weight:800; }
.unit-overview-visual::after { content:""; position:absolute; z-index:3; inset:0 auto 0 -35%; width:22%; pointer-events:none; background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); animation:light-sweep 7s ease-in-out infinite; }

@media (max-width:1000px) {
  .unit-overview-screen { min-height:auto; }
  .unit-overview-core { grid-template-columns:1fr; }
  .unit-overview-visual img { height:auto; aspect-ratio:16/9; }
}
@media (min-width:1001px) and (max-height:820px) {
  .unit-overview-screen { padding-top:84px; padding-bottom:13px; }
  .unit-overview-breadcrumbs { margin-bottom:7px; }
  .unit-overview-titlebar h1 { font-size:clamp(38px,4.6vw,62px); }
  .unit-overview-titlebar blockquote { margin-top:7px; font-size:13px; }
  .unit-overview-core { margin-top:10px; }
  .unit-overview-visual img { height:215px; }
  .unit-overview-dna { padding-top:11px; padding-bottom:9px; }
  .unit-overview-meaning { margin:5px 0; }
  .unit-member-rail { margin-top:8px; padding-top:8px; }
  .unit-member-mini-visual img { height:77px; }
  .unit-member-mini-body { min-height:48px; }
}
@media (max-width:680px) {
  .unit-overview-screen { min-height:auto; padding:84px 11px 16px; }
  .unit-overview-breadcrumbs { margin-bottom:12px; }
  .unit-overview-titlebar { grid-template-columns:1fr; gap:10px; }
  .unit-overview-titlebar h1 { font-size:38px; line-height:1; overflow-wrap:anywhere; }
  .unit-overview-titlebar blockquote { margin-top:8px; font-size:12px; }
  .unit-overview-titlebar .profile-actions { width:100%; flex-direction:row; align-items:center; }
  .unit-overview-titlebar .profile-vote { width:100%; min-height:43px; justify-content:space-between; }
  .unit-overview-titlebar .profile-status { display:none; }
  .unit-overview-core { margin-top:10px; gap:8px; }
  .unit-overview-visual { padding:5px; }
  .unit-overview-dna { padding:11px 10px 9px; }
  .unit-dna-heading strong { font-size:9px; }
  .unit-overview-meaning { margin:6px 0; font-size:7px; }
  .unit-signal-grid { gap:4px; }
  .unit-signal-grid > div { padding:7px 6px; }
  .unit-signal-grid strong { font-size:7px; }
  .unit-feature-list { gap:3px; }
  .unit-feature-list li { padding:5px 4px; display:block; }
  .unit-feature-list b { display:block; margin-bottom:3px; font-size:9px; }
  .unit-feature-list span { font-size:6px; -webkit-line-clamp:2; }
  .unit-palette-strip span { justify-content:center; font-size:0; }
  .unit-palette-strip i { width:11px; height:11px; }
  .unit-concept-detail summary { min-height:24px; font-size:6px; }
  .unit-member-rail { margin-top:8px; padding:8px 8px 9px; }
  .unit-member-rail-heading { margin-bottom:6px; }
  .unit-member-rail-heading h2 { font-size:14px; }
  .unit-member-rail-heading > span { display:none; }
  .unit-member-mini-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; }
  .unit-member-mini-visual img { height:auto; aspect-ratio:1/1; }
  .unit-member-mini-visual span { left:3px; top:3px; padding:2px 3px; font-size:5px; }
  .unit-member-mini-body { min-height:43px; padding:5px 2px; display:block; text-align:center; }
  .unit-member-mini-body i,.unit-member-mini-body p,.unit-member-mini-body strong,.unit-member-mini-body em { display:none; }
  .unit-member-mini-body h3 { font-size:8px; line-height:1.3; white-space:normal; overflow-wrap:anywhere; }
  .unit-compact-action { min-height:0; padding:40px 17px; align-items:flex-start; flex-direction:column; gap:22px; }
  .unit-compact-action h2 { font-size:34px; }
  .unit-compact-action > a { width:100%; justify-content:space-between; }
}
/* End compact unit overview v2 */

/* Readable full-art unit and headline v3 */
.hero-title-art { width:min(100%,690px); margin:0; line-height:0; }
.hero-title-art img { width:100%; height:auto; max-height:310px; object-fit:contain; object-position:left center; filter:drop-shadow(0 18px 42px rgba(0,0,0,.28)); }
.hero-visual { display:grid; place-items:center; }
.hero-card { aspect-ratio:16/9; }
.hero-card img { object-fit:contain; object-position:center; background:#07101e; }

.unit-overview-core { grid-template-columns:minmax(0,1.08fr) minmax(470px,.92fr); gap:16px; }
.unit-overview-visual { display:grid; grid-template-rows:minmax(0,1fr) auto; background:rgba(3,10,22,.9); }
.unit-overview-visual img { width:100%; height:clamp(285px,34vh,360px); object-fit:contain; object-position:center; background:#06101f; }
.unit-overview-visual figcaption { padding:10px 5px 3px; font-size:9px; }
.unit-overview-dna { padding:18px 19px 15px; }
.unit-dna-heading { gap:12px; }
.unit-dna-heading span { font-size:9px; }
.unit-dna-heading strong { font-size:14px; }
.unit-overview-meaning { margin:11px 0; font-size:11px; line-height:1.72; -webkit-line-clamp:3; }
.unit-signal-grid { gap:8px; }
.unit-signal-grid > div { padding:10px 11px; }
.unit-signal-grid span { margin-bottom:7px; font-size:8px; }
.unit-signal-grid strong { font-size:10px; line-height:1.55; }
.unit-feature-list { margin-top:8px; gap:7px; }
.unit-feature-list li { padding:9px 10px; gap:7px; }
.unit-feature-list b { font-size:15px; }
.unit-feature-list span { font-size:9px; line-height:1.55; }
.unit-palette-strip { margin-top:9px; gap:7px; }
.unit-palette-strip span { gap:6px; font-size:8px; }
.unit-palette-strip i { width:10px; height:10px; }
.unit-concept-detail { margin-top:9px; }
.unit-concept-detail summary { min-height:31px; font-size:9px; }
.unit-concept-detail p { font-size:10px; line-height:1.8; }
.unit-member-rail { margin-top:15px; padding:13px 14px 15px; }
.unit-member-rail-heading { margin-bottom:10px; }
.unit-member-rail-heading p { margin-bottom:5px; font-size:8px; }
.unit-member-rail-heading h2 { font-size:clamp(19px,1.6vw,24px); }
.unit-member-rail-heading > span { font-size:9px; }
.unit-member-mini-grid { gap:9px; }
.unit-member-mini-visual { height:clamp(135px,16vh,165px); display:grid; place-items:center; background:color-mix(in srgb,var(--member) 8%,#edf2f7); }
.unit-member-mini-visual img { width:100%; height:100%; aspect-ratio:auto; object-fit:contain; object-position:center; transform:none; }
.unit-member-mini:hover img { transform:none; filter:saturate(1.06) brightness(1.03); }
.unit-member-mini-visual span { left:8px; top:8px; padding:5px 6px; font-size:7px; }
.unit-member-mini-body { min-height:82px; padding:10px 11px; gap:4px 7px; }
.unit-member-mini-body i { width:9px; height:9px; }
.unit-member-mini-body h3 { font-size:15px; }
.unit-member-mini-body p { font-size:8px; }
.unit-member-mini-body strong { font-size:8px; line-height:1.45; }
.unit-member-mini-body em { font-size:6px; }
.idol-solo-visual img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; object-position:center top; background:rgba(5,12,24,.72); }

@media (max-width:1000px) {
  .hero-visual { min-height:56vw; padding:20px 4vw 85px; }
  .unit-overview-core { grid-template-columns:1fr; }
  .unit-overview-visual img { height:auto; aspect-ratio:16/9; object-fit:contain; }
}

@media (min-width:1001px) and (max-height:820px) {
  .unit-overview-visual img { height:260px; }
  .unit-member-mini-visual { height:130px; }
  .unit-member-mini-body { min-height:76px; }
}

@media (max-width:680px) {
  .hero-title-art { width:100%; }
  .hero-title-art img { max-height:220px; object-position:left center; }
  .hero-visual { min-height:310px; padding:8px 13px 58px; }
  .unit-overview-screen { padding:86px 13px 20px; }
  .unit-overview-titlebar h1 { font-size:42px; line-height:1.03; }
  .unit-overview-titlebar blockquote { font-size:15px; line-height:1.65; }
  .unit-overview-visual { padding:6px; }
  .unit-overview-visual img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
  .unit-overview-dna { padding:15px 13px 13px; }
  .unit-dna-heading { display:grid; gap:6px; }
  .unit-dna-heading span { font-size:8px; }
  .unit-dna-heading strong { font-size:13px; white-space:normal; }
  .unit-overview-meaning { margin:9px 0 11px; font-size:11px; -webkit-line-clamp:4; }
  .unit-signal-grid { grid-template-columns:1fr; gap:7px; }
  .unit-signal-grid > div { padding:10px; }
  .unit-signal-grid span { font-size:8px; }
  .unit-signal-grid strong { font-size:10px; }
  .unit-feature-list { grid-template-columns:1fr; gap:6px; }
  .unit-feature-list li { padding:9px 10px; display:grid; }
  .unit-feature-list b { display:block; margin:0; font-size:15px; }
  .unit-feature-list span { font-size:10px; line-height:1.6; -webkit-line-clamp:3; }
  .unit-palette-strip { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .unit-palette-strip span { justify-content:center; font-size:0; }
  .unit-palette-strip i { width:14px; height:14px; }
  .unit-concept-detail summary { min-height:35px; font-size:9px; }
  .unit-concept-detail p { font-size:10px; }
  .unit-member-rail { margin-top:11px; padding:12px 10px 13px; }
  .unit-member-rail-heading { align-items:start; }
  .unit-member-rail-heading h2 { font-size:20px; }
  .unit-member-mini-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .unit-member-mini:last-child:nth-child(odd) { grid-column:1/-1; width:calc(50% - 4px); justify-self:center; }
  .unit-member-mini-visual { height:210px; }
  .unit-member-mini-visual img { width:100%; height:100%; aspect-ratio:auto; object-fit:contain; object-position:center; }
  .unit-member-mini-visual span { left:7px; top:7px; padding:4px 5px; font-size:7px; }
  .unit-member-mini-body { min-height:92px; padding:10px; display:grid; text-align:left; }
  .unit-member-mini-body i,.unit-member-mini-body p,.unit-member-mini-body strong,.unit-member-mini-body em { display:initial; }
  .unit-member-mini-body i { display:block; }
  .unit-member-mini-body h3 { font-size:14px; line-height:1.3; white-space:normal; }
  .unit-member-mini-body p { font-size:8px; }
  .unit-member-mini-body strong { display:block; font-size:8px; }
  .unit-member-mini-body em { font-size:6px; }
}
/* End readable full-art unit and headline v3 */

/* Unit identity marks and one-line names v4 */
.unit-logo-mark { width:var(--unit-logo-size,48px); height:var(--unit-logo-size,48px); flex:none; object-fit:contain; filter:drop-shadow(0 8px 18px rgba(0,0,0,.2)); }
.unit-logo-mark--detail { --unit-logo-size:92px; }
.unit-logo-mark--card { --unit-logo-size:48px; }
.unit-logo-mark--hero-card { --unit-logo-size:48px; }
.unit-logo-mark--modal { --unit-logo-size:78px; }
.unit-logo-mark--affiliation { --unit-logo-size:48px; }
.unit-logo-mark--section { --unit-logo-size:64px; }
.unit-logo-mark--tiny { --unit-logo-size:22px; }

.unit-title-identity { min-width:0; display:flex; align-items:center; gap:18px; }
.unit-title-copy { min-width:0; }
.unit-title-copy .profile-kicker { margin-bottom:7px; }
.unit-title-copy h1 { max-width:100%; font-size:clamp(34px,4.6vw,68px); white-space:nowrap; word-break:keep-all; overflow-wrap:normal; }
.unit-title-copy .profile-reading { margin-top:7px; }
.unit-overview-titlebar > div:first-child { min-width:0; }

.unit-card-identity { min-width:0; margin:10px 0 6px; display:flex; align-items:center; gap:10px; }
.unit-card-identity h3 { min-width:0; margin:0; font-size:clamp(18px,1.65vw,25px); line-height:1.15; white-space:nowrap; word-break:keep-all; overflow-wrap:normal; }
.hero-card-caption { grid-template-columns:48px minmax(0,1fr) auto; column-gap:11px; }
.hero-card-caption .unit-logo-mark { grid-column:1; grid-row:1/3; width:48px; height:48px; align-self:center; background:transparent; }
.hero-card-caption > span { grid-column:2; }
.hero-card-caption strong { grid-column:2; min-width:0; white-space:nowrap; }
.hero-card-caption > a { grid-column:3; }
.fastlane-unit { min-width:0; display:flex !important; align-items:center; gap:6px; }
.fastlane-unit .unit-logo-mark { width:22px; height:22px; aspect-ratio:1; margin:0; background:transparent; }
.fastlane-unit b { min-width:0; overflow:hidden; font-size:7px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.modal-unit-identity { display:flex; align-items:center; gap:16px; }
.modal-unit-identity > div { min-width:0; }
.modal-unit-identity p { display:flex; align-items:center; gap:9px; margin:0 0 8px; font-size:11px; font-weight:700; }
.modal-unit-identity p span:last-child { color:var(--cyan); font:700 8px/1 Arial; letter-spacing:.15em; }
.modal-unit-identity h2 { white-space:nowrap; }
.modal-unit-identity small { display:block; margin-top:5px; color:rgba(255,255,255,.57); font-size:10px; }

@media (min-width:1001px) {
  .idol-hero-inner { grid-template-columns:64px minmax(360px,.76fr) minmax(0,1.24fr); gap:clamp(24px,2.5vw,42px); }
}
.idol-copy { min-width:0; }
.idol-copy .breadcrumbs { margin-bottom:32px; }
.idol-unit-affiliation { width:max-content; max-width:100%; margin:0 0 15px; display:flex; align-items:center; gap:11px; }
.idol-unit-affiliation > span { min-width:0; display:grid; gap:4px; }
.idol-unit-affiliation small { color:rgba(255,255,255,.48); font-size:8px; font-weight:700; }
.idol-unit-affiliation strong { color:#fff; font-size:15px; line-height:1.15; white-space:nowrap; }
.idol-copy h1,.idol-copy h1.idol-name-line { font-size:clamp(36px,5vw,var(--idol-name-max,82px)); line-height:1.04; white-space:nowrap; word-break:keep-all; overflow-wrap:normal; }
.profile-vote { white-space:nowrap; }
.sibling-heading { justify-content:flex-start; }
.sibling-unit-identity { display:flex; align-items:center; gap:15px; }
.sibling-unit-identity > div { min-width:0; }
.sibling-unit-identity p { margin:0 0 6px; color:#5364df; font:800 8px/1 Arial; letter-spacing:.18em; }
.sibling-unit-identity h2 { font-size:clamp(34px,4.5vw,62px); white-space:nowrap; word-break:keep-all; }

.idol-directory-unit { min-width:0; margin-top:8px; display:flex; align-items:center; gap:6px; }
.idol-directory-unit img { width:22px; height:22px; flex:none; object-fit:contain; }
.idol-directory-unit small { min-width:0; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.idol-directory-body h2,
.unit-member-mini-body h3,
.member-card h3,
.profile-member-card h3,
.sibling-members a > strong,
.fastlane-idols > a > strong,
.idol-solo-visual figcaption strong,
.idol-profile-sheet dl > div:first-child dd,
.ranking-list li > div strong,
.vote-candidates strong,
.vote-selection strong { white-space:nowrap; word-break:keep-all; overflow-wrap:normal; }
.unit-member-mini-body h3 { overflow:visible; text-overflow:clip; }

.ranking-entry-name,.vote-candidate-name,.vote-selection-name { min-width:0; display:flex; align-items:center; gap:7px; }
.ranking-entry-name img { width:28px; height:28px; aspect-ratio:1; flex:none; object-fit:contain; }
.ranking-entry-name strong { min-width:0; white-space:nowrap; word-break:keep-all; overflow-wrap:normal; }
.vote-candidate-name { display:flex !important; grid-template-columns:none !important; }
.vote-candidate-name img { width:22px; height:22px; flex:none; object-fit:contain; }
.vote-selection-name img { width:28px; height:28px; aspect-ratio:1; flex:none; object-fit:contain; }
.vote-selection-name strong { min-width:0; }

@media (max-width:680px) {
  .unit-logo-mark--detail { --unit-logo-size:66px; }
  .unit-logo-mark--card { --unit-logo-size:30px; }
  .unit-logo-mark--section { --unit-logo-size:52px; }
  .unit-title-identity { gap:11px; }
  .unit-title-copy h1 { font-size:clamp(25px,7.2vw,36px); }
  .unit-overview-titlebar blockquote { margin-top:12px; }
  .unit-card-identity { gap:6px; }
  .unit-card-identity h3 { font-size:clamp(10px,3.1vw,14px); letter-spacing:-.06em; }
  .hero-card-caption { grid-template-columns:38px minmax(0,1fr) auto; }
  .hero-card-caption .unit-logo-mark { width:38px; height:38px; }
  .idol-copy .breadcrumbs { margin-bottom:24px; }
  .idol-unit-affiliation { margin-bottom:13px; }
  .idol-unit-affiliation strong { font-size:14px; }
  .idol-copy h1,.idol-copy h1.idol-name-line { font-size:clamp(34px,10.5vw,var(--idol-name-max,44px)); letter-spacing:-.075em; }
  .unit-member-mini-body h3 { font-size:clamp(11px,3.7vw,14px); white-space:nowrap; }
  .idol-directory-body h2 { font-size:clamp(14px,4.3vw,17px); }
  .sibling-unit-identity { gap:11px; }
  .sibling-unit-identity h2 { font-size:clamp(27px,8vw,38px); }
  .modal-unit-identity { gap:10px; }
  .unit-logo-mark--modal { --unit-logo-size:56px; }
  .modal-unit-identity h2 { font-size:clamp(25px,8vw,36px); letter-spacing:-.07em; }
}
/* End unit identity marks and one-line names v4 */

/* Idol festival logo system v6 */
@keyframes fes-logo-float {
  0%,100% { transform:translateY(0) scale(1); }
  50% { transform:translateY(-8px) scale(1.008); }
}
@keyframes fes-emblem-glow {
  0%,100% { opacity:.12; filter:saturate(.9) drop-shadow(0 0 18px rgba(83,222,255,.2)); }
  50% { opacity:.2; filter:saturate(1.08) drop-shadow(0 0 35px rgba(255,83,172,.32)); }
}
.fes-section {
  min-height:880px;
  padding:110px 24px 100px;
  background:
    radial-gradient(circle at 50% 39%,rgba(101,75,255,.24),transparent 39%),
    radial-gradient(circle at 18% 46%,rgba(255,73,158,.11),transparent 25%),
    radial-gradient(circle at 82% 46%,rgba(71,224,235,.11),transparent 25%),
    #070d19;
}
.fes-section::before {
  content:"";
  inset:0;
  width:auto;
  height:auto;
  pointer-events:none;
  background-image:
    radial-gradient(circle,rgba(255,255,255,.16) 0 1px,transparent 1.5px),
    linear-gradient(115deg,transparent 0 46%,rgba(255,255,255,.025) 46% 46.3%,transparent 46.3% 100%);
  background-size:62px 62px,100% 100%;
  font:inherit;
  letter-spacing:normal;
  -webkit-text-stroke:0;
}
.fes-title {
  position:relative;
  isolation:isolate;
  width:min(95vw,1140px);
  padding:22px 0 4px;
}
.fes-emblem-art {
  position:absolute;
  z-index:0;
  left:50%;
  top:49%;
  width:124%;
  max-width:none;
  height:auto;
  pointer-events:none;
  transform:translate(-50%,-50%);
  animation:fes-emblem-glow 6.4s ease-in-out infinite;
}
.fes-logo-art {
  position:relative;
  z-index:1;
  width:100%;
  margin:0;
  font-size:0;
  line-height:0;
  animation:fes-logo-float 6.8s ease-in-out infinite;
}
.fes-logo-art img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 24px 35px rgba(0,0,0,.38));
}
.fes-title > span {
  z-index:3;
  right:8%;
  top:9%;
  padding:9px 15px;
  border:2px solid rgba(255,255,255,.92);
  border-radius:999px;
  background:linear-gradient(100deg,#ff4f9f,#ff6676 58%,#ffbe4a);
  box-shadow:0 8px 24px rgba(255,68,147,.34);
  font-size:9px;
}
.fes-lead { z-index:1; margin-top:6px; }

@media (max-width:680px) {
  .fes-section { min-height:700px; padding:82px 12px 76px; }
  .fes-title { width:min(100vw,620px); padding-top:18px; }
  .fes-emblem-art { top:48%; width:135%; }
  .fes-title > span { right:6%; top:6%; padding:7px 10px; font-size:7px; }
  .fes-lead { margin-top:4px; font-size:15px; }
}
/* End idol festival logo system v6 */

/* Frameless nationwide festival hero v7 */
.hero { isolation:isolate; }
.hero-copy { z-index:5; }
.hero-visual { overflow:visible; isolation:isolate; }
.hero-visual::before {
  z-index:0;
  width:min(72vw,1120px);
  right:-12vw;
  background:
    radial-gradient(circle at 55% 48%,rgba(119,239,220,.2),transparent 35%),
    radial-gradient(circle at 60% 50%,rgba(86,104,255,.48),transparent 68%);
  filter:blur(34px);
  opacity:.82;
}
.hero-ensemble-stage {
  z-index:1;
  inset:88px 0 0 -24vw;
  overflow:visible;
  pointer-events:none;
}
.hero-ensemble-stage::before {
  content:"";
  position:absolute;
  z-index:0;
  width:min(70vw,1180px);
  aspect-ratio:1;
  right:-10vw;
  top:50%;
  border-radius:50%;
  transform:translateY(-50%);
  background:
    radial-gradient(circle at 48% 46%,rgba(255,196,119,.22),transparent 22%),
    radial-gradient(circle at 50% 52%,rgba(87,112,255,.3),transparent 58%);
  filter:blur(28px);
}
.hero-ensemble-stage::after {
  content:"";
  position:absolute;
  z-index:3;
  inset:-8% -4% -10% -8%;
  pointer-events:none;
  background:
    linear-gradient(90deg,#07101e 0%,rgba(7,16,30,.96) 9%,rgba(7,16,30,.66) 23%,rgba(7,16,30,.16) 42%,transparent 60%),
    linear-gradient(0deg,#07101e 0%,rgba(7,16,30,.74) 8%,transparent 30%,transparent 77%,rgba(7,16,30,.72) 100%);
}
.hero-ensemble {
  position:absolute;
  inset:0;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  display:block;
  overflow:visible;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  backdrop-filter:none;
}
.hero-ensemble::before { display:none; }
.hero-ensemble__visual {
  position:absolute;
  z-index:1;
  width:min(78vw,1320px);
  height:auto;
  aspect-ratio:1672/941;
  right:-2vw;
  top:50%;
  margin:0;
  display:block;
  overflow:visible;
  transform:translateY(-47%);
  border:0;
  border-radius:0;
  background:none;
}
.hero-ensemble__visual::after {
  inset:5% 4%;
  border-radius:50%;
  background:radial-gradient(circle at 56% 48%,rgba(255,255,255,.11),transparent 58%);
  box-shadow:none;
  mix-blend-mode:screen;
}
.hero-ensemble__visual img {
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  opacity:.99;
  filter:saturate(1.08) contrast(1.03) drop-shadow(0 34px 62px rgba(0,0,0,.42));
  -webkit-mask-image:radial-gradient(ellipse 83% 82% at 56% 52%,#000 58%,rgba(0,0,0,.96) 73%,transparent 100%);
  mask-image:radial-gradient(ellipse 83% 82% at 56% 52%,#000 58%,rgba(0,0,0,.96) 73%,transparent 100%);
  animation:ensemble-drift-v7 10s ease-in-out infinite;
}
.hero-ensemble__summary {
  position:absolute;
  z-index:5;
  left:24vw;
  right:clamp(28px,4vw,76px);
  top:clamp(30px,4.5vh,58px);
  min-height:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:24px;
  text-shadow:0 2px 18px rgba(0,0,0,.85);
}
.hero-ensemble__kicker {
  position:relative;
  padding-left:34px;
}
.hero-ensemble__kicker::before {
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:22px;
  height:1px;
  background:#78edda;
  box-shadow:0 0 12px rgba(120,237,218,.78);
}
.hero-ensemble__equation strong { text-shadow:0 4px 22px rgba(0,0,0,.7); }
.hero-ensemble__caption {
  position:absolute;
  z-index:5;
  right:clamp(28px,4vw,76px);
  bottom:clamp(34px,5vh,70px);
  margin:0;
  padding:0;
  justify-content:flex-end;
  text-shadow:0 2px 15px rgba(0,0,0,.9);
}
@keyframes ensemble-drift-v7 {
  0%,100% { transform:translate3d(0,0,0) scale(1); }
  50% { transform:translate3d(0,-7px,0) scale(1.012); }
}

@media (max-width:1000px) {
  .hero .hero-visual { min-height:clamp(440px,65vw,650px); padding:0; }
  .hero-ensemble-stage { inset:0; }
  .hero-ensemble-stage::after {
    inset:-4%;
    background:
      linear-gradient(90deg,rgba(7,16,30,.7) 0%,transparent 22%,transparent 78%,rgba(7,16,30,.32) 100%),
      linear-gradient(0deg,#07101e 0%,rgba(7,16,30,.48) 9%,transparent 27%,transparent 78%,rgba(7,16,30,.66) 100%);
  }
  .hero-ensemble__visual {
    width:104vw;
    right:-2vw;
    top:52%;
    transform:translateY(-50%);
  }
  .hero-ensemble__summary { left:5vw; right:5vw; top:4vw; }
  .hero-ensemble__caption { right:5vw; bottom:4vw; }
}

@media (max-width:680px) {
  .hero .hero-visual { min-height:340px; padding:0; }
  .hero-visual::before { width:110vw; right:-22vw; opacity:.72; }
  .hero-ensemble-stage { inset:0; }
  .hero-ensemble-stage::before { width:112vw; right:-16vw; filter:blur(18px); }
  .hero-ensemble-stage::after {
    inset:-5%;
    background:
      linear-gradient(90deg,rgba(7,16,30,.28),transparent 18%,transparent 82%,rgba(7,16,30,.18)),
      linear-gradient(0deg,#07101e 0%,rgba(7,16,30,.5) 8%,transparent 25%,transparent 78%,rgba(7,16,30,.62) 100%);
  }
  .hero-ensemble__visual {
    width:118vw;
    right:-9vw;
    top:52%;
    transform:translateY(-50%);
  }
  .hero-ensemble__visual img {
    -webkit-mask-image:radial-gradient(ellipse 91% 82% at 50% 52%,#000 62%,rgba(0,0,0,.96) 78%,transparent 100%);
    mask-image:radial-gradient(ellipse 91% 82% at 50% 52%,#000 62%,rgba(0,0,0,.96) 78%,transparent 100%);
  }
  .hero-ensemble__summary { left:15px; right:15px; top:8px; gap:8px; }
  .hero-ensemble__kicker { max-width:none; padding-left:23px; white-space:nowrap; font-size:6px; }
  .hero-ensemble__kicker::before { width:15px; }
  .hero-ensemble__equation strong { font-size:18px; }
  .hero-ensemble__caption { right:15px; bottom:11px; }
  .hero-ensemble__caption span { display:none; }
}
/* End frameless nationwide festival hero v7 */

/* Full-bleed hero composition v8 */
.hero {
  min-height:clamp(780px,62vw,940px);
  height:min(100svh,980px);
  max-height:980px;
  isolation:isolate;
}
.hero::after { display:none; }
.hero-copy {
  z-index:6;
  max-width:760px;
  text-shadow:0 2px 24px rgba(2,8,18,.28);
}
.hero-visual {
  z-index:1;
  overflow:visible;
  isolation:auto;
}
.hero-visual::before { display:none; }
.hero-ensemble-stage {
  position:absolute;
  z-index:1;
  inset:0 0 0 -48vw;
  overflow:hidden;
  pointer-events:none;
}
.hero-ensemble-stage::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  width:auto;
  aspect-ratio:auto;
  right:0;
  top:0;
  border-radius:0;
  transform:none;
  filter:none;
  background:
    radial-gradient(circle at 71% 43%,rgba(255,199,118,.15),transparent 24%),
    radial-gradient(circle at 74% 52%,rgba(82,105,255,.24),transparent 48%),
    #07101e;
}
.hero-ensemble-stage::after {
  content:"";
  position:absolute;
  z-index:3;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      #07101e 0%,
      rgba(7,16,30,.995) 18%,
      rgba(7,16,30,.95) 30%,
      rgba(7,16,30,.76) 42%,
      rgba(7,16,30,.39) 54%,
      rgba(7,16,30,.12) 66%,
      transparent 78%),
    linear-gradient(0deg,
      rgba(7,16,30,.8) 0%,
      rgba(7,16,30,.16) 10%,
      transparent 24%,
      transparent 82%,
      rgba(7,16,30,.36) 100%);
}
.hero-ensemble {
  position:absolute;
  inset:0;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  display:block;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  backdrop-filter:none;
}
.hero-ensemble::before,
.hero-ensemble__summary,
.hero-ensemble__caption { display:none!important; }
.hero-ensemble__visual {
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  margin:0;
  overflow:visible;
  transform:none;
  border:0;
  border-radius:0;
  background:none;
}
.hero-ensemble__visual::after { display:none; }
.hero-ensemble__visual img {
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  opacity:1;
  filter:saturate(1.07) contrast(1.025) brightness(.98);
  -webkit-mask-image:none;
  mask-image:none;
  animation:none;
}
.hero-side-note { display:none; }

@media (max-width:1000px) {
  .hero {
    min-height:0;
    height:auto;
    max-height:none;
  }
  .hero-copy {
    max-width:none;
    padding-bottom:28px;
  }
  .hero .hero-visual {
    min-height:clamp(430px,61vw,620px);
    padding:0;
    overflow:hidden;
  }
  .hero-ensemble-stage { inset:0; }
  .hero-ensemble-stage::before {
    background:
      radial-gradient(circle at 58% 47%,rgba(255,196,116,.15),transparent 25%),
      radial-gradient(circle at 50% 50%,rgba(80,103,255,.23),transparent 62%),
      #07101e;
  }
  .hero-ensemble-stage::after {
    background:
      linear-gradient(90deg,rgba(7,16,30,.2),transparent 16%,transparent 84%,rgba(7,16,30,.2)),
      linear-gradient(0deg,#07101e 0%,rgba(7,16,30,.42) 8%,transparent 25%,transparent 78%,rgba(7,16,30,.72) 100%);
  }
  .hero-ensemble__visual {
    inset:0;
    width:100%;
    height:100%;
    transform:none;
  }
}

@media (max-width:680px) {
  .hero-copy { padding:48px 18px 18px; }
  .japan-project-label { margin-bottom:15px; }
  .hero-copy .eyebrow { margin-bottom:18px; font-size:8px; }
  .hero-title-art img { max-height:none; }
  .hero-lead { margin-top:18px; }
  .hero-actions { margin-top:22px; }
  .hero-numbers { margin-top:25px; }
  .hero .hero-visual {
    min-height:0;
    aspect-ratio:1672/941;
    padding:0;
  }
  .hero-ensemble-stage::before {
    width:auto;
    right:0;
    filter:none;
  }
  .hero-ensemble-stage::after {
    background:linear-gradient(90deg,rgba(7,16,30,.1),transparent 10%,transparent 90%,rgba(7,16,30,.1));
  }
  .hero-ensemble__visual {
    inset:0;
    width:100%;
    height:100%;
    transform:none;
  }
  .hero-ensemble__visual img { filter:saturate(1.06) contrast(1.02); }
}
/* End full-bleed hero composition v8 */

/* Chapter logo system and site-wide motion v9 */
.sr-only {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.section-logo-block {
  --chapter-ink:#08111f;
  --chapter-muted:#667184;
  --chapter-line:rgba(9,19,35,.14);
  position:relative;
  z-index:2;
  width:min(100%,1120px);
}
.section-logo-block--dark {
  --chapter-ink:#fff;
  --chapter-muted:rgba(255,255,255,.68);
  --chapter-line:rgba(255,255,255,.16);
}
.section-logo-block__eyebrow {
  position:relative!important;
  display:flex!important;
  align-items:center;
  gap:12px;
  margin:0 0 18px!important;
  color:#5364df!important;
  font:800 9px/1 Arial,sans-serif!important;
  letter-spacing:.22em!important;
}
.section-logo-block--dark .section-logo-block__eyebrow { color:#78edda!important; }
.section-logo-block__eyebrow span {
  width:30px;
  height:1px;
  background:currentColor;
  box-shadow:0 0 14px currentColor;
  animation:chapter-line-pulse 2.8s ease-in-out infinite;
}
.section-logo-block .section-logo-block__heading {
  position:relative;
  z-index:1;
  width:100%;
  margin:0!important;
  padding:0;
  font-size:0!important;
  line-height:0!important;
  letter-spacing:0!important;
}
.section-logo-block__art {
  position:relative;
  display:block;
  width:100%;
  overflow:hidden;
  isolation:isolate;
}
.section-logo-block__art::after {
  content:"";
  position:absolute;
  z-index:3;
  inset:-20% auto -20% -28%;
  width:13%;
  pointer-events:none;
  transform:skewX(-16deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  mix-blend-mode:screen;
  animation:chapter-logo-sheen 7.5s ease-in-out infinite;
}
.section-logo-block__art img {
  position:relative;
  z-index:1;
  width:100%;
  height:auto;
  filter:drop-shadow(0 14px 24px rgba(15,30,64,.12));
  animation:chapter-logo-float 6.8s ease-in-out infinite;
}
.section-logo-block--dark .section-logo-block__art img { filter:drop-shadow(0 18px 32px rgba(0,0,0,.34)); }
.section-logo-block__art > i {
  position:absolute;
  z-index:2;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#78edda;
  box-shadow:0 0 18px #78edda;
  animation:chapter-spark 3s ease-in-out infinite;
}
.section-logo-block__art > i:nth-of-type(1) { left:18%; top:18%; }
.section-logo-block__art > i:nth-of-type(2) { right:16%; top:31%; animation-delay:-1s; background:#ff6f7d; box-shadow:0 0 18px #ff6f7d; }
.section-logo-block__art > i:nth-of-type(3) { right:29%; bottom:13%; animation-delay:-2s; width:4px; height:4px; }
.section-logo-block__description {
  position:relative;
  max-width:780px;
  margin:24px 0 0;
  padding:15px 18px 15px 54px;
  border:1px solid var(--chapter-line);
  border-left:3px solid #5364df;
  background:rgba(255,255,255,.58);
  color:var(--chapter-muted);
  box-shadow:0 16px 38px rgba(18,31,52,.06);
  backdrop-filter:blur(12px);
}
.section-logo-block--dark .section-logo-block__description {
  border-left-color:#78edda;
  background:rgba(255,255,255,.055);
  box-shadow:0 18px 45px rgba(0,0,0,.18);
}
.section-logo-block__description b {
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  color:#5364df;
  font-size:16px;
  animation:chapter-symbol-spin 8s linear infinite;
}
.section-logo-block--dark .section-logo-block__description b { color:#78edda; }
.section-logo-block__description p {
  margin:0!important;
  color:inherit!important;
  font-size:11px!important;
  line-height:1.95!important;
}
.section-logo-block__tags {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:13px;
}
.section-logo-block__tags span {
  padding:8px 11px;
  border:1px solid var(--chapter-line);
  color:var(--chapter-muted);
  background:rgba(255,255,255,.38);
  font:800 7px/1 Arial,sans-serif;
  letter-spacing:.14em;
  animation:chapter-tag-breathe 4.5s ease-in-out infinite;
}
.section-logo-block__tags span:nth-child(2) { animation-delay:-1.1s; }
.section-logo-block__tags span:nth-child(3) { animation-delay:-2.2s; }
.section-logo-block__tags span:nth-child(4) { animation-delay:-3.3s; }
.section-logo-block--dark .section-logo-block__tags span { background:rgba(255,255,255,.045); }

.section-heading--branded { display:block; }
.section-heading--branded::before { display:none; }
.section-heading--branded .section-logo-block { max-width:1080px; }
.soul-home-copy .section-logo-block { width:min(100%,760px); }
.soul-home-copy .soul-home-actions { display:flex; gap:10px; margin-top:32px; }
.soul-heading .section-logo-block { width:min(100%,670px); }
.support-model > div:first-child .section-logo-block { width:min(100%,850px); }
.fc-heading { display:block; }
.fc-heading .section-logo-block { width:min(100%,1080px); }
.partner-heading { max-width:1080px; }
.partner-heading .section-logo-block { width:100%; }
.ranking-intro .section-logo-block,.support-hero .section-logo-block,.idol-directory-hero .section-logo-block { width:min(100%,1220px); }
.ranking-intro > div { z-index:2; }

.motion-enhanced .motion-reveal {
  opacity:0;
  transform:translateY(38px) scale(.985);
  filter:blur(5px);
  transition:opacity .85s ease var(--motion-delay,0ms),transform .85s cubic-bezier(.18,.72,.2,1) var(--motion-delay,0ms),filter .85s ease var(--motion-delay,0ms);
}
.motion-enhanced .motion-reveal.motion-visible { opacity:1; transform:none; filter:none; }

.hero::before,.ranking-intro::before,.support-hero::before {
  transform:translate(calc(var(--pointer-x,0) * 13px),calc(var(--pointer-y,0) * 9px));
  transition:transform .35s ease-out;
}
.idol-directory-hero { position:relative; overflow:hidden; }
.idol-directory-hero::before {
  content:"235";
  position:absolute;
  right:-2%;
  bottom:-8%;
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.07);
  font:900 clamp(160px,28vw,430px)/.8 Arial,sans-serif;
  transform:translate(calc(var(--pointer-x,0) * 13px),calc(var(--pointer-y,0) * 9px));
  transition:transform .35s ease-out;
}

.unit-image,.idol-directory-image,.fc-grid article,.partner-grid article,.soul-grid article { position:relative; overflow:hidden; }
.unit-image::before,.idol-directory-image::before,.fc-grid article::before,.partner-grid article::before,.soul-grid article::before {
  content:"";
  position:absolute;
  z-index:1;
  inset:-35% auto -35% -42%;
  width:18%;
  pointer-events:none;
  transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);
  animation:card-light-pass 9s ease-in-out infinite;
}
.fc-grid article > *,.partner-grid article > *,.soul-grid article > * { position:relative; z-index:2; }
.fc-grid article:nth-child(2)::before,.partner-grid article:nth-child(2)::before,.soul-grid article:nth-child(2)::before { animation-delay:-2.2s; }
.fc-grid article:nth-child(3)::before,.partner-grid article:nth-child(3)::before,.soul-grid article:nth-child(3)::before { animation-delay:-4.4s; }
.fc-grid article:nth-child(4)::before,.soul-grid article:nth-child(4)::before { animation-delay:-6.6s; }
.unit-card,.idol-directory-card,.fc-grid article,.partner-grid article,.ranking-list li {
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,background-color .25s ease;
}
.unit-card:hover,.idol-directory-card:hover,.fc-grid article:hover,.partner-grid article:hover { transform:translateY(-8px) scale(1.012); box-shadow:0 26px 56px rgba(18,31,52,.16); }
.fc-grid article.featured:hover { transform:translateY(-18px) scale(1.012); }
.ranking-list li:hover { transform:translateX(7px); }
.official-brand-logo { animation:official-logo-breathe 6s ease-in-out infinite; }
.button span,.profile-vote span,.atlas-header-vote span,.header-cta span,.partner-actions a span { animation:arrow-nudge 1.8s ease-in-out infinite; }
.hero-grid { will-change:background-position,transform; transform:translate(calc(var(--pointer-x,0) * -8px),calc(var(--pointer-y,0) * -6px)) scale(1.02); }

@keyframes chapter-logo-float { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-5px) } }
@keyframes chapter-logo-sheen { 0%,62% { left:-28%; opacity:0 } 70% { opacity:1 } 84%,100% { left:118%; opacity:0 } }
@keyframes chapter-line-pulse { 0%,100% { transform:scaleX(.72); opacity:.55 } 50% { transform:scaleX(1); opacity:1 } }
@keyframes chapter-spark { 0%,100% { opacity:.12; transform:scale(.6) } 50% { opacity:1; transform:scale(1.35) } }
@keyframes chapter-symbol-spin { to { transform:translateY(-50%) rotate(360deg) } }
@keyframes chapter-tag-breathe { 0%,100% { transform:translateY(0); opacity:.72 } 50% { transform:translateY(-2px); opacity:1 } }
@keyframes card-light-pass { 0%,66% { left:-42%; opacity:0 } 73% { opacity:.75 } 88%,100% { left:126%; opacity:0 } }
@keyframes official-logo-breathe { 0%,100% { filter:drop-shadow(0 0 0 rgba(120,237,218,0)) } 50% { filter:drop-shadow(0 0 12px rgba(120,237,218,.34)) } }
@keyframes arrow-nudge { 0%,100% { transform:translateX(0) } 50% { transform:translateX(4px) } }

@media (max-width:1000px) {
  .section-logo-block__description { max-width:720px; }
  .fc-grid article.featured:hover { transform:translateY(-8px) scale(1.01); }
}

@media (max-width:680px) {
  .section-logo-block { width:100%; }
  .section-logo-block__eyebrow { margin-bottom:12px!important; font-size:7px!important; letter-spacing:.17em!important; }
  .section-logo-block__art { width:calc(100% + 8px); margin-left:-4px; }
  .section-logo-block__art > i { width:5px; height:5px; }
  .section-logo-block__description { margin-top:15px; padding:13px 13px 13px 42px; backdrop-filter:none; }
  .section-logo-block__description b { left:14px; }
  .section-logo-block__description p { font-size:10px!important; line-height:1.85!important; }
  .section-logo-block__tags { gap:5px; margin-top:9px; }
  .section-logo-block__tags span { padding:7px 8px; font-size:6px; }
  .ranking-intro,.support-hero { min-height:590px; }
  .idol-directory-hero { min-height:470px; }
  .soul-home-copy .soul-home-actions { flex-direction:column; }
  .motion-enhanced .motion-reveal { transform:translateY(24px); filter:none; transition-duration:.65s; }
  .unit-card:hover,.idol-directory-card:hover,.fc-grid article:hover,.partner-grid article:hover,.fc-grid article.featured:hover { transform:none; }
}
/* End chapter logo system and site-wide motion v9 */

/* Emblematic chapter title system v10 */
.section-logo-block__art {
  padding:4px 0 8px;
  border-radius:4px;
  container-type:inline-size;
}
.section-logo-block__art::before {
  content:"";
  position:absolute;
  z-index:0;
  left:1%;
  top:8%;
  width:28%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(83,100,223,.16),transparent 68%);
  filter:blur(14px);
  animation:chapter-crest-halo 4.6s ease-in-out infinite;
}
.section-logo-block--dark .section-logo-block__art::before {
  background:radial-gradient(circle,rgba(120,237,218,.2),transparent 68%);
}
.section-logo-block__art img {
  filter:drop-shadow(0 18px 30px rgba(15,30,64,.17));
  transform-origin:48% 58%;
  animation:chapter-logo-float-v10 6.8s ease-in-out infinite;
}
.section-logo-block--dark .section-logo-block__art img {
  filter:drop-shadow(0 22px 38px rgba(0,0,0,.42));
}
.section-logo-block__description {
  width:min(100%,820px);
  max-width:none;
  min-height:88px;
  margin-top:19px;
  padding:10px 20px 10px 10px;
  display:grid;
  grid-template-columns:68px 1fr;
  align-items:center;
  gap:17px;
  overflow:hidden;
  border:1px solid rgba(83,100,223,.24);
  border-left:0;
  border-radius:5px;
  background:
    linear-gradient(105deg,rgba(83,100,223,.1),rgba(255,255,255,.82) 34%,rgba(255,255,255,.52)),
    repeating-linear-gradient(135deg,transparent 0 12px,rgba(83,100,223,.025) 12px 13px);
  box-shadow:0 18px 44px rgba(18,31,52,.09);
}
.section-logo-block__description::after {
  content:"";
  position:absolute;
  right:-26px;
  top:-34px;
  width:102px;
  height:102px;
  border:1px solid rgba(83,100,223,.15);
  transform:rotate(45deg);
}
.section-logo-block--dark .section-logo-block__description {
  border-color:rgba(120,237,218,.25);
  border-left:0;
  background:
    linear-gradient(105deg,rgba(120,237,218,.14),rgba(255,255,255,.075) 36%,rgba(255,255,255,.035)),
    repeating-linear-gradient(135deg,transparent 0 12px,rgba(120,237,218,.025) 12px 13px);
}
.section-logo-block__description-mark {
  position:relative;
  z-index:1;
  width:68px;
  height:68px;
  display:grid;
  place-content:center;
  justify-items:center;
  color:#fff;
  background:linear-gradient(145deg,#5364df,#8396ff);
  clip-path:polygon(50% 0,92% 24%,92% 76%,50% 100%,8% 76%,8% 24%);
  filter:drop-shadow(0 9px 14px rgba(83,100,223,.24));
}
.section-logo-block--dark .section-logo-block__description-mark {
  color:#07101e;
  background:linear-gradient(145deg,#78edda,#8fa8ff);
  filter:drop-shadow(0 9px 16px rgba(120,237,218,.2));
}
.section-logo-block__description-mark b {
  position:static;
  left:auto;
  top:auto;
  transform:none;
  color:inherit;
  font:900 22px/.9 Arial,sans-serif;
  animation:none;
}
.section-logo-block__description-mark small {
  margin-top:5px;
  color:inherit;
  font:900 6px/1 Arial,sans-serif;
  letter-spacing:.18em;
}
.section-logo-block__description-copy {
  position:relative;
  z-index:1;
  display:block;
}
.section-logo-block__description-copy strong {
  display:block;
  margin-bottom:7px;
  color:var(--chapter-ink);
  font-size:11px;
  font-weight:900;
  letter-spacing:.05em;
}
.section-logo-block__description-copy p {
  margin:0!important;
  font-size:11px!important;
  line-height:1.85!important;
}
.section-logo-block__tags span {
  position:relative;
  padding-left:22px;
  border-radius:999px;
  background:rgba(255,255,255,.68);
  box-shadow:0 7px 18px rgba(18,31,52,.05);
}
.section-logo-block__tags span::before {
  content:"";
  position:absolute;
  left:9px;
  top:50%;
  width:6px;
  height:6px;
  transform:translateY(-50%) rotate(45deg);
  background:linear-gradient(135deg,#5364df,#ff6f7d);
}
.section-logo-block--dark .section-logo-block__tags span {
  background:rgba(255,255,255,.055);
  box-shadow:none;
}
.section-logo-block--dark .section-logo-block__tags span::before {
  background:linear-gradient(135deg,#78edda,#ff7f96);
}
.section-logo-block--compact .section-logo-block__art {
  width:112%;
  margin-left:-6%;
}
.section-logo-block--title-only {
  margin:0 0 22px;
}
.section-logo-block--title-only .section-logo-block__art {
  overflow:visible;
}
.section-logo-block--title-only .section-logo-block__art img {
  animation-duration:7.6s;
}
.section-logo-block--center {
  margin-inline:auto;
  text-align:center;
}
.section-logo-block--center .section-logo-block__eyebrow,
.section-logo-block--center .section-logo-block__tags {
  justify-content:center;
}
.section-logo-block--center .section-logo-block__description {
  margin-inline:auto;
  text-align:left;
}
.fastlane-copy .section-logo-block,
.project-copy .section-logo-block,
.senbatsu-system > div:first-child .section-logo-block,
.ranking-rules > div:first-child .section-logo-block,
.vtuber-copy .section-logo-block { width:100%; }
.fastlane-copy > a,
.project-copy > dl,
.senbatsu-system > div:first-child > a { position:relative; z-index:3; }
.support-partner > .section-logo-block { width:min(100%,1080px); }
.support-partner > .section-logo-block--title-only { margin-bottom:24px; }

@keyframes chapter-logo-float-v10 {
  0%,100% { transform:translate3d(0,0,0) rotate(-.12deg); }
  50% { transform:translate3d(0,-6px,0) rotate(.12deg); }
}
@keyframes chapter-crest-halo {
  0%,100% { opacity:.48; transform:scale(.92); }
  50% { opacity:1; transform:scale(1.08); }
}
@media (max-width:680px) {
  .hero .hero-visual {
    border-bottom:10px solid var(--navy);
    background:var(--navy);
  }
  .section-logo-block__art {
    width:calc(100% + 22px);
    margin-left:-11px;
    padding-bottom:3px;
  }
  .section-logo-block--compact .section-logo-block__art {
    width:calc(100% + 34px);
    margin-left:-17px;
  }
  .section-logo-block--title-only.section-logo-block--compact .section-logo-block__art {
    width:calc(100% + 18px);
    margin-left:-9px;
  }
  .section-logo-block--title-only { margin-bottom:14px; }
  .section-logo-block__description {
    min-height:72px;
    margin-top:11px;
    padding:8px 11px 8px 8px;
    grid-template-columns:50px 1fr;
    gap:10px;
  }
  .section-logo-block__description-mark {
    width:50px;
    height:50px;
  }
  .section-logo-block__description-mark b { font-size:17px; }
  .section-logo-block__description-mark small { font-size:5px; }
  .section-logo-block__description-copy strong {
    margin-bottom:4px;
    font-size:9px;
  }
  .section-logo-block__description-copy p {
    font-size:9px!important;
    line-height:1.72!important;
  }
  .section-logo-block__tags span {
    padding:7px 9px 7px 19px;
  }
  .section-logo-block__tags span::before { left:8px; width:5px; height:5px; }
}
/* End emblematic chapter title system v10 */

/* Readability and navigation refresh v11 */
html { scroll-padding-top:82px; }
body {
  overflow-x:hidden;
  line-height:1.65;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
button,input,select,summary { font:inherit; }
a,button,input,select,summary { outline-offset:4px; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #78edda;
}

.site-header,.atlas-header {
  position:fixed;
  height:78px;
  padding-inline:clamp(20px,4vw,70px);
  background:linear-gradient(180deg,rgba(5,12,25,.94),rgba(5,12,25,.76));
  border-color:rgba(255,255,255,.13);
  box-shadow:0 10px 34px rgba(0,0,0,.14);
  backdrop-filter:blur(18px) saturate(1.15);
}
.site-header .official-brand-logo,.atlas-header .official-brand-logo { height:50px; }
.site-header nav,.atlas-header nav { gap:clamp(18px,2.2vw,34px); font-size:10px; }
.site-header nav a,.atlas-header nav a { min-height:44px; display:flex; align-items:center; }
.header-cta,.atlas-header-vote { min-height:44px; }

.hero { grid-template-columns:minmax(390px,42%) minmax(0,58%); }
.hero::before,.japan-project-label,.hero-numbers { display:none!important; }
.hero-copy { max-width:760px; padding-top:122px; padding-left:clamp(28px,6vw,102px); }
.hero-title-art { width:min(100%,630px); }
.hero-lead { max-width:590px; color:rgba(255,255,255,.78); font-size:clamp(14px,1.05vw,16px); line-height:1.95; }
.hero-actions .button { min-height:54px; }
.scroll-hint { bottom:24px; }

.idol-fastlane,.units-section,.project-section,.soul-home-section,.ranking-rules,.support-model,.fc-section,.partner-plans {
  padding-top:clamp(82px,8vw,124px);
  padding-bottom:clamp(82px,8vw,124px);
}
.fastlane-copy > span,.section-heading > p,.project-copy > p:not(.eyebrow),.soul-home-copy > p:not(.eyebrow) {
  font-size:13px;
  line-height:1.95;
}
.fastlane-copy > a,.soul-home-copy a,.support-partner button,.support-partner a,.partner-actions button,.partner-actions a {
  min-height:48px;
  font-size:11px;
}
.fastlane-idols { gap:12px; }
.fastlane-idols a { border-radius:10px; }
.fastlane-idols span { font-size:10px; }
.fastlane-idols strong { font-size:16px; }
.fastlane-unit { min-height:42px; margin-top:2px!important; }
.fastlane-unit .unit-logo-mark { width:42px; height:42px; }

.explorer { padding:12px 14px; border-radius:10px; }
.region-tabs button { min-height:44px; padding-inline:15px; font-size:12px; }
.search-box { min-height:46px; }
.search-box input { font-size:13px; }
.results-meta { margin-top:30px; font-size:10px; }
.unit-grid { gap:28px 20px; }
.unit-card { border-radius:12px; border-bottom-width:3px; }
.unit-image::after { background:linear-gradient(180deg,transparent 68%,rgba(6,15,30,.12)); }
.unit-body { min-height:164px; padding:18px 20px 20px; }
.unit-place { font-size:12px; }
.unit-place span:last-child { font-size:9px; }
.unit-card-identity { min-height:66px; margin:5px 0 2px; justify-content:flex-start; }
.unit-logo-mark--card { --unit-logo-size:86px; }
.unit-body > p { min-height:40px; padding-right:64px; font-size:12px; line-height:1.7; }
.palette { bottom:22px; }
.palette i { width:10px; height:10px; }

.section-logo-block__description-copy strong { font-size:12px; }
.section-logo-block__description-copy p { font-size:13px!important; line-height:1.85!important; }
.section-logo-block__tags span { min-height:30px; display:flex; align-items:center; font-size:8px; }
.project-copy dd span,.soul-levels p { font-size:11px; line-height:1.7; }
.project-copy > p:not(.eyebrow),.support-model > div:first-child > p:last-child,.support-principle p,.support-partner > p:nth-of-type(2) { font-size:13px; }
.soul-levels strong { font-size:14px; }

.idol-directory-toolbar { gap:12px; }
.idol-directory-search,.idol-sort { min-height:50px; }
.idol-directory-search input,.idol-sort select { font-size:13px; }
.idol-filter-switch button,.idol-filter-options button { min-height:44px; font-size:11px; }
.idol-directory-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.idol-directory-card { border-radius:12px; contain-intrinsic-size:470px; }
.idol-directory-image { background:#edf1f5; }
.idol-directory-image img { aspect-ratio:3/4; object-position:center top; }
.idol-directory-image span { left:12px; bottom:12px; padding:6px 9px; border-radius:999px; font-size:9px; }
.idol-directory-body { min-height:188px; padding:15px; }
.idol-directory-body > i { width:28px; }
.idol-directory-unit { min-height:48px; margin-top:4px; }
.idol-directory-unit img { width:48px; height:48px; }
.idol-directory-body h2 { margin-top:2px; font-size:20px; }
.idol-directory-body p { margin:4px 0 13px; font-size:10px; }
.idol-directory-body > strong { font-size:10px; line-height:1.55; }
.idol-directory-body em { min-height:34px; margin-top:13px; align-items:end; font-size:10px; }

.unit-logo-mark--detail { --unit-logo-size:140px; }
.unit-title-identity { gap:24px; }
.unit-title-copy .profile-kicker { font-size:10px; letter-spacing:.14em; }
.unit-title-copy .profile-reading { margin-top:2px; font-size:11px; }
.unit-overview-titlebar blockquote { margin-top:8px; font-size:clamp(15px,1.35vw,20px); line-height:1.6; }
.unit-overview-visual { border-radius:10px; }
.unit-overview-visual figcaption { justify-content:flex-end; font-size:9px; }
.unit-overview-dna { border-radius:10px; }
.unit-overview-meaning { font-size:12px; }
.unit-dna-heading strong { font-size:15px; }
.unit-signal-grid strong { font-size:11px; }
.unit-feature-list span,.unit-concept-detail p { font-size:10px; }
.unit-member-rail { border-radius:10px; }
.unit-member-mini { border-radius:8px; }
.unit-member-mini-body h3 { font-size:15px; }
.unit-member-mini-body p,.unit-member-mini-body strong { font-size:9px; }
.unit-member-mini-body em { font-size:9px; font-weight:800; line-height:1.3; font-family:inherit; }

.idol-hero-inner { grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr); gap:clamp(28px,4vw,70px); }
.idol-copy { grid-column:1; }
.idol-group-visual { grid-column:2; transform:none; border-radius:12px; }
.idol-unit-affiliation { min-height:74px; margin-bottom:8px; }
.unit-logo-mark--affiliation { --unit-logo-size:74px; }
.idol-unit-affiliation small { font-size:9px; }
.idol-copy .profile-kicker { font-size:10px; }
.idol-copy h2 { margin-top:28px; }
.idol-personality { font-size:13px; line-height:1.9; }
.idol-profile-sheet dt { font-size:9px; }
.idol-profile-sheet dd { font-size:15px; }
.idol-profile-sheet dd small { font-size:10px; }
.idol-profile-sheet dl > div { padding:22px 0; }
.sibling-heading { margin-bottom:28px; }
.unit-logo-mark--section { --unit-logo-size:110px; }
.sibling-members > div:last-child { gap:14px; }
.sibling-members > div:last-child a { border-radius:9px; }
.sibling-members a > strong { margin-top:6px; font-size:16px; }
.sibling-members a > small { font-size:10px; }

.ranking-panel-heading p,.vote-panel > p { font-size:9px; }
.ranking-list li { min-height:94px; grid-template-columns:52px 92px minmax(0,1fr) auto 42px; gap:16px; }
.ranking-list li > img { width:92px; }
.ranking-entry-name img { width:50px; height:50px; }
.ranking-list li > div small { font-size:10px; }
.ranking-list li > p { font-size:9px; }
.ranking-list li > button { width:40px; height:40px; }
.vote-search { min-height:48px; }
.vote-search input { font-size:12px; }
.vote-candidates > button { min-height:64px; }
.vote-candidate-name img { width:40px; height:40px; }
.vote-candidates strong { font-size:12px; }
.vote-candidates small { font-size:9px; }
.vote-selection { min-height:90px; }
.vote-selection-name img { width:44px; height:44px; }
.vote-selection span,.vote-fairness { font-size:9px; }
.ranking-rules li p { font-size:13px; }

.motion-enhanced .motion-reveal {
  transform:translateY(24px);
  filter:none;
  transition-duration:.65s;
}

@media (max-width:1100px) {
  .site-header nav,.atlas-header nav { gap:15px; font-size:9px; }
  .unit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .idol-directory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .idol-hero-inner { grid-template-columns:1fr; }
  .idol-copy,.idol-group-visual { grid-column:1; }
}

@media (max-width:680px) {
  html { scroll-padding-top:66px; }
  body { padding-bottom:74px; }
  .site-header,.atlas-header {
    position:fixed;
    height:64px;
    padding-inline:12px;
    background:rgba(5,12,25,.94);
    backdrop-filter:blur(15px);
  }
  .site-header .official-brand-logo,.atlas-header .official-brand-logo { height:42px; }
  .header-cta,.atlas-header-vote { min-height:38px; padding:7px 10px; font-size:9px; }
  .mobile-dock {
    left:7px;
    right:7px;
    bottom:7px;
    height:62px;
    grid-template-columns:repeat(5,1fr);
    border-radius:18px;
  }
  .mobile-dock a { min-width:0; }
  .mobile-dock a:nth-child(2) { background:transparent; }
  .mobile-dock a:nth-child(3) { color:#78edda; background:rgba(255,255,255,.08); }
  .mobile-dock b { font-size:14px; }
  .mobile-dock span { font-size:7px; }

  .hero { padding-top:64px; grid-template-columns:1fr; }
  .hero-copy { padding:40px 17px 24px; }
  .hero-copy .eyebrow { font-size:8px; }
  .hero-title-art { width:100%; }
  .hero-lead { font-size:13px; line-height:1.85; }
  .hero-actions { display:grid; grid-template-columns:1fr 1fr; }
  .button { min-height:50px; padding:0 12px; gap:10px; font-size:10px; text-align:center; }
  .hero .hero-visual {
    width:100%;
    min-height:0;
    aspect-ratio:1672/941;
    border-bottom:12px solid var(--navy);
    background:var(--navy);
  }
  .hero-ensemble-stage::after { background:none; }
  .hero-ensemble__visual img { object-fit:contain; }
  .scroll-hint { display:none; }

  .idol-fastlane,.units-section,.project-section,.soul-home-section,.ranking-rules,.support-model,.fc-section,.partner-plans {
    padding-top:64px;
    padding-bottom:64px;
  }
  .fastlane-copy > span,.project-copy > p:not(.eyebrow),.soul-home-copy > p:not(.eyebrow) { font-size:12px; }
  .fastlane-idols { grid-template-columns:repeat(5,158px); }
  .fastlane-idols strong { font-size:15px; }
  .fastlane-unit .unit-logo-mark { width:40px; height:40px; }
  .section-logo-block__description { grid-template-columns:52px 1fr; }
  .section-logo-block__description-copy strong { font-size:10px; }
  .section-logo-block__description-copy p { font-size:11px!important; line-height:1.75!important; }
  .section-logo-block__tags span { min-height:28px; font-size:7px; }

  .explorer { padding:9px; gap:8px; border-radius:8px; }
  .region-tabs button { min-height:42px; font-size:11px; }
  .search-box { min-height:44px; }
  .search-box input { font-size:12px; }
  .results-meta > span { display:none; }
  .unit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
  .unit-card { border-radius:9px; }
  .unit-body { min-height:154px; padding:12px; }
  .unit-card-identity { min-height:56px; margin:3px 0 2px; }
  .unit-logo-mark--card { --unit-logo-size:68px; }
  .unit-place { font-size:10px; }
  .unit-place span:last-child { font-size:7px; }
  .unit-body > p { min-height:52px; padding-right:0; font-size:10px; line-height:1.65; }
  .palette { position:static; margin-top:10px; }

  .idol-directory-section { padding-inline:12px; }
  .idol-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .idol-directory-card { border-radius:9px; }
  .idol-directory-image span { left:8px; bottom:8px; font-size:8px; }
  .idol-directory-body { min-height:174px; padding:11px; }
  .idol-directory-unit { min-height:42px; }
  .idol-directory-unit img { width:42px; height:42px; }
  .idol-directory-body h2 { font-size:17px; }
  .idol-directory-body p { font-size:9px; }
  .idol-directory-body > strong { font-size:9px; }
  .idol-directory-body em { font-size:9px; }
  .idol-filter-switch button,.idol-filter-options button { min-height:42px; font-size:10px; }

  .unit-overview-screen { padding-top:82px; }
  .unit-logo-mark--detail { --unit-logo-size:94px; }
  .unit-title-identity { align-items:center; gap:13px; }
  .unit-title-copy .profile-kicker { font-size:8px; }
  .unit-title-copy .profile-reading { font-size:9px; }
  .unit-overview-titlebar blockquote { font-size:14px; }
  .unit-member-mini-visual { height:auto; aspect-ratio:3/4; }
  .unit-member-mini-body { min-height:108px; padding:11px; }
  .unit-member-mini-body h3 { font-size:15px; }
  .unit-member-mini-body p,.unit-member-mini-body strong,.unit-member-mini-body em { font-size:9px; }
  .unit-member-mini-body em { justify-self:end; }

  .idol-profile-hero { padding-top:88px; }
  .idol-hero-inner { grid-template-columns:1fr; }
  .idol-copy,.idol-group-visual { grid-column:1; }
  .idol-copy .breadcrumbs { margin-bottom:22px; }
  .idol-unit-affiliation { min-height:62px; }
  .unit-logo-mark--affiliation { --unit-logo-size:62px; }
  .idol-copy h1,.idol-copy h1.idol-name-line { font-size:clamp(36px,11vw,var(--idol-name-max,50px)); }
  .idol-personality { font-size:12px; }
  .idol-group-visual { margin-top:18px; border-radius:9px; }
  .idol-profile-sheet dl > div { grid-template-columns:88px 1fr; gap:14px; }
  .idol-profile-sheet dt { font-size:8px; }
  .idol-profile-sheet dd { font-size:13px; }
  .unit-logo-mark--section { --unit-logo-size:90px; }
  .sibling-members > div:last-child { gap:10px; }
  .sibling-members a > strong { font-size:14px; }
  .sibling-members a > small { font-size:9px; }

  .ranking-tabs button { min-height:62px; font-size:9px; }
  .ranking-panel-heading h2 { font-size:25px; }
  .ranking-list li { min-height:82px; grid-template-columns:30px 58px minmax(0,1fr) 36px; gap:9px; }
  .ranking-list li > img { width:58px; }
  .ranking-entry-name img { width:42px; height:42px; }
  .ranking-list li > div small { font-size:9px; white-space:normal; }
  .ranking-list li > button { width:36px; height:36px; }
  .vote-candidate-name img { width:38px; height:38px; }
  .ranking-rules li p { font-size:12px; }

  footer,.atlas-footer { padding-bottom:98px; }
}
/* End readability and navigation refresh v11 */

.static-note{padding:12px 18px;background:#fff3c9;color:#423b21;font-size:10px;line-height:1.7;text-align:center}.static-filter-hidden{display:none!important}.static-toast{position:fixed;z-index:999;left:50%;bottom:24px;transform:translateX(-50%);max-width:90%;padding:14px 20px;background:#091323;color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.3);font-size:11px}.static-card-link{display:block}.static-ranking-list{list-style:none;margin:0;padding:0}.static-ranking-list li{min-height:82px;display:grid;grid-template-columns:50px 78px 1fr auto 36px;align-items:center;gap:14px;padding:10px 8px;border-bottom:1px solid rgba(9,19,35,.1);cursor:pointer}.static-ranking-list img{width:78px;aspect-ratio:16/9;object-fit:cover}.static-ranking-list li>div{display:grid;gap:5px}.static-ranking-list small{font-size:8px;color:#8992a0}.static-ranking-list li>p{margin:0;font:700 8px/1 Arial;color:#8b94a2;text-align:right}.static-ranking-list li>p b{display:block;margin-bottom:4px;font-size:16px;color:#091323}.static-ranking-list button{width:32px;height:32px;border-radius:50%;border:1px solid #ccd1d8;background:#fff;color:#5364df}.static-vote-picker{margin-top:16px}.static-vote-picker select{width:100%;height:48px;padding:0 12px;border:1px solid #ccd1d8;background:#fff}.static-vote-picker button{width:100%;height:54px;margin-top:10px;border:0;background:#091323;color:#fff;font-weight:800}.static-tab-hidden{display:none}.static-page-title{min-height:520px;padding:145px 8vw 80px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 75% 35%,rgba(78,114,255,.42),transparent 32%),linear-gradient(130deg,#07101e,#0e1d39)}.static-page-title>p{font:800 9px/1 Arial;letter-spacing:.2em;color:#78edda}.static-page-title h1{margin:15px 0 24px;font-size:clamp(48px,8vw,110px);line-height:1.05;letter-spacing:-.07em}.static-page-title>span{max-width:650px;color:rgba(255,255,255,.6);font-size:12px;line-height:2}.static-profile-note{margin-top:12px;color:rgba(255,255,255,.48);font-size:9px;line-height:1.7}@media(max-width:680px){.static-ranking-list li{grid-template-columns:33px 56px 1fr 28px;gap:8px}.static-ranking-list img{width:56px}.static-ranking-list li>p{display:none}}


/* Static rental-server readability helpers v11 */
.static-ranking-list li{min-height:94px;grid-template-columns:52px 92px minmax(0,1fr) auto 42px;gap:16px}.static-ranking-list img{width:92px}.static-ranking-list small{font-size:10px}.static-ranking-list li>p{font-size:9px}.static-ranking-list button{width:40px;height:40px}.static-vote-picker select{min-height:50px;font-size:12px}.static-vote-picker button{min-height:54px;font-size:12px}@media(max-width:680px){.static-ranking-list li{min-height:82px;grid-template-columns:30px 58px minmax(0,1fr) 36px;gap:9px}.static-ranking-list img{width:58px}.static-ranking-list button{width:36px;height:36px}}


/* KIRAMEKI47 — official unit name logo layout v2 */
.unit-name-logo {
  display:block;
  max-width:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
}

.unit-card-identity {
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  align-items:center;
  column-gap:14px;
  min-height:96px;
}
.unit-name-logo--card {
  width:100%;
  height:92px;
  object-position:left center;
  filter:drop-shadow(0 3px 5px rgba(10,23,42,.12));
}
.unit-body { min-height:194px; }

.unit-title-copy {
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.unit-name-logo--detail {
  width:min(42vw,520px);
  height:128px;
  margin:-10px 0 -5px;
  object-position:left center;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.28));
}
.unit-title-copy .unit-name-logo--detail ~ .profile-reading { display:none; }

@media (max-width:680px) {
  .unit-card-identity {
    grid-template-columns:68px minmax(0,1fr);
    column-gap:8px;
    min-height:72px;
  }
  .unit-name-logo--card { height:68px; }
  .unit-body { min-height:174px; }
  .unit-name-logo--detail {
    width:min(58vw,350px);
    height:94px;
    margin:-8px 0 -4px;
  }
}

@media (max-width:430px) {
  .unit-grid { grid-template-columns:1fr; }
  .unit-card-identity {
    grid-template-columns:76px minmax(0,1fr);
    column-gap:12px;
    min-height:82px;
  }
  .unit-logo-mark--card { --unit-logo-size:76px; }
  .unit-name-logo--card { height:80px; }
  .unit-body { min-height:178px; }
  .unit-title-identity { gap:10px; }
  .unit-logo-mark--detail { --unit-logo-size:82px; }
  .unit-name-logo--detail {
    width:min(60vw,250px);
    height:82px;
  }
}
/* End official unit name logo layout v2 */


/* KIRAMEKI47 — individual profile unit logos v3 */
.idol-unit-affiliation {
  width:min(100%,500px);
  min-height:92px;
  gap:16px;
}
.idol-unit-affiliation > span {
  width:min(30vw,280px);
  display:grid;
  align-content:center;
  gap:1px;
}
.unit-name-logo--affiliation {
  width:min(30vw,280px);
  height:78px;
  object-position:left center;
  filter:drop-shadow(0 6px 13px rgba(0,0,0,.25));
}
.sibling-unit-identity > div {
  display:grid;
  align-content:center;
  gap:1px;
}
.unit-name-logo--same-unit {
  width:min(30vw,320px);
  height:94px;
  object-position:left center;
  filter:drop-shadow(0 6px 13px rgba(0,0,0,.18));
}

@media (max-width:680px) {
  .idol-unit-affiliation {
    width:100%;
    min-height:78px;
    gap:10px;
  }
  .idol-unit-affiliation > span { width:min(60vw,260px); }
  .unit-name-logo--affiliation {
    width:min(60vw,260px);
    height:68px;
  }
  .unit-name-logo--same-unit {
    width:min(62vw,280px);
    height:78px;
  }
}

@media (max-width:430px) {
  .idol-unit-affiliation { min-height:70px; }
  .unit-logo-mark--affiliation { --unit-logo-size:58px; }
  .unit-name-logo--affiliation {
    width:min(62vw,230px);
    height:62px;
  }
  .unit-name-logo--same-unit {
    width:min(60vw,240px);
    height:70px;
  }
}
/* End individual profile unit logos v3 */


/* KIRAMEKI47 — paired logo balance v4 */
/* The decorated group name is primary; the hex badge is a compact identifier. */
.unit-card-identity {
  grid-template-columns:64px minmax(0,1fr);
  column-gap:8px;
  min-height:100px;
}
.unit-logo-mark--card { --unit-logo-size:64px; }
.unit-name-logo--card {
  width:calc(100% + 6px);
  max-width:none;
  height:100px;
  margin-left:-6px;
}

.unit-title-identity { gap:14px; }
.unit-logo-mark--detail { --unit-logo-size:104px; }
.unit-name-logo--detail {
  width:min(46vw,550px);
  height:136px;
}

.idol-unit-affiliation { gap:12px; }
.unit-logo-mark--affiliation { --unit-logo-size:60px; }
.unit-name-logo--affiliation {
  width:min(32vw,300px);
  height:82px;
}
.sibling-unit-identity { gap:12px; }
.unit-logo-mark--section { --unit-logo-size:74px; }
.unit-name-logo--same-unit {
  width:min(34vw,340px);
  height:100px;
}

@media (max-width:680px) {
  .unit-card-identity {
    grid-template-columns:48px minmax(0,1fr);
    column-gap:5px;
    min-height:76px;
  }
  .unit-logo-mark--card { --unit-logo-size:48px; }
  .unit-name-logo--card {
    width:calc(100% + 4px);
    height:74px;
    margin-left:-4px;
  }
  .unit-logo-mark--detail { --unit-logo-size:78px; }
  .unit-name-logo--detail {
    width:min(64vw,370px);
    height:100px;
  }
  .unit-logo-mark--affiliation { --unit-logo-size:50px; }
  .unit-name-logo--affiliation {
    width:min(64vw,280px);
    height:72px;
  }
  .unit-logo-mark--section { --unit-logo-size:64px; }
  .unit-name-logo--same-unit {
    width:min(64vw,300px);
    height:84px;
  }
}

@media (max-width:430px) {
  .unit-card-identity {
    grid-template-columns:56px minmax(0,1fr);
    column-gap:6px;
    min-height:88px;
  }
  .unit-logo-mark--card { --unit-logo-size:56px; }
  .unit-name-logo--card { height:86px; }
  .unit-logo-mark--detail { --unit-logo-size:72px; }
  .unit-name-logo--detail {
    width:min(66vw,260px);
    height:88px;
  }
  .unit-logo-mark--affiliation { --unit-logo-size:48px; }
}
/* End paired logo balance v4 */


/* KIRAMEKI47 — unit name logos on individual cards v6 */
.idol-directory-unit {
  width:100%;
  min-height:62px;
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  align-items:center;
  gap:8px;
}
.idol-directory-unit > img:first-child {
  width:36px;
  height:36px;
}
.idol-directory-unit .unit-name-logo--directory {
  width:min(100%,210px);
  height:62px;
  max-width:none;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 3px 7px rgba(20,31,49,.12));
}
.idol-directory-body { min-height:202px; }

.fastlane-unit {
  min-height:58px;
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
  gap:6px;
}
.fastlane-unit .unit-logo-mark {
  width:30px;
  height:30px;
}
.fastlane-unit .unit-name-logo--fastlane {
  width:100%;
  height:56px;
  max-width:none;
  margin:0;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 3px 7px rgba(20,31,49,.1));
}

@media (max-width:680px) {
  .idol-directory-unit {
    min-height:52px;
    grid-template-columns:30px minmax(0,1fr);
    gap:6px;
  }
  .idol-directory-unit > img:first-child {
    width:30px;
    height:30px;
  }
  .idol-directory-unit .unit-name-logo--directory { height:50px; }
  .idol-directory-body { min-height:184px; }

  .fastlane-unit {
    min-height:48px;
    grid-template-columns:26px minmax(0,1fr);
    gap:5px;
  }
  .fastlane-unit .unit-logo-mark {
    width:26px;
    height:26px;
  }
  .fastlane-unit .unit-name-logo--fastlane { height:46px; }
}
/* End individual card unit logos v6 */


/* KIRAMEKI47 — shared header alignment and active state v8 */
.site-header,
.atlas-header {
  height:88px;
  padding:0 clamp(24px,5vw,80px);
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr);
  align-items:center;
  gap:0;
}

.site-header .brand--official,
.atlas-header .atlas-brand--official {
  width:190px;
  justify-self:start;
}

.site-header .official-brand-logo,
.atlas-header .official-brand-logo {
  width:auto;
  height:58px;
}

.site-header nav.shared-site-nav,
.atlas-header nav.shared-site-nav {
  height:100%;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(18px,2.1vw,38px);
  font:800 10px/1 Arial,sans-serif;
  letter-spacing:.16em;
}

.site-header nav.shared-site-nav a,
.atlas-header nav.shared-site-nav a {
  position:relative;
  height:100%;
  display:flex;
  align-items:center;
  color:rgba(255,255,255,.68);
  opacity:1;
  white-space:nowrap;
  transition:color .2s ease,text-shadow .2s ease;
}

.site-header nav.shared-site-nav a::after,
.atlas-header nav.shared-site-nav a::after {
  content:"";
  position:absolute;
  right:0;
  bottom:-1px;
  left:0;
  height:2px;
  background:linear-gradient(90deg,#78edda,#e94786);
  box-shadow:0 0 10px rgba(120,237,218,.5);
  opacity:0;
  transform:scaleX(.45);
  transition:opacity .2s ease,transform .2s ease;
}

.site-header nav.shared-site-nav a:hover,
.atlas-header nav.shared-site-nav a:hover,
.site-header nav.shared-site-nav a.is-active,
.atlas-header nav.shared-site-nav a.is-active {
  color:#fff;
  text-shadow:0 0 13px rgba(120,237,218,.3);
}

.site-header nav.shared-site-nav a:hover::after,
.atlas-header nav.shared-site-nav a:hover::after,
.site-header nav.shared-site-nav a.is-active::after,
.atlas-header nav.shared-site-nav a.is-active::after {
  opacity:1;
  transform:scaleX(1);
}

.site-header .header-cta,
.atlas-header .atlas-header-vote {
  width:max-content;
  min-width:112px;
  min-height:38px;
  justify-self:end;
  justify-content:flex-end;
  gap:12px;
  font-size:11px;
  font-weight:800;
}

.site-header .header-cta span,
.atlas-header .atlas-header-vote span {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  background:transparent;
  color:#fff;
}

@media (max-width:1240px) {
  .site-header,
  .atlas-header {
    grid-template-columns:minmax(205px,1fr) auto minmax(205px,1fr);
  }

  .site-header nav.shared-site-nav,
  .atlas-header nav.shared-site-nav {
    gap:17px;
    font-size:9px;
    letter-spacing:.12em;
  }
}

@media (max-width:1000px) {
  .site-header,
  .atlas-header {
    height:111px;
    padding:0 16px;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:66px 45px;
  }

  .site-header .brand--official,
  .atlas-header .atlas-brand--official {
    grid-column:1;
    grid-row:1;
    width:160px;
  }

  .site-header .official-brand-logo,
  .atlas-header .official-brand-logo {
    height:46px;
  }

  .site-header nav.shared-site-nav,
  .atlas-header nav.shared-site-nav {
    grid-column:1 / -1;
    grid-row:2;
    width:calc(100% + 32px);
    height:45px;
    margin:0 -16px;
    padding:0 16px;
    display:flex;
    justify-content:flex-start;
    gap:25px;
    overflow-x:auto;
    overflow-y:hidden;
    border-top:1px solid rgba(255,255,255,.09);
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
  }

  .site-header nav.shared-site-nav::-webkit-scrollbar,
  .atlas-header nav.shared-site-nav::-webkit-scrollbar {
    display:none;
  }

  .site-header nav.shared-site-nav a,
  .atlas-header nav.shared-site-nav a {
    flex:0 0 auto;
    height:45px;
  }

  .site-header .header-cta,
  .atlas-header .atlas-header-vote {
    grid-column:2;
    grid-row:1;
    min-width:104px;
    margin:0;
  }

  .hero { padding-top:111px; }
  .unit-overview-screen { padding-top:129px; }
}

@media (max-width:680px) {
  .site-header,
  .atlas-header {
    height:111px;
    padding:0 13px;
  }

  .site-header .brand--official,
  .atlas-header .atlas-brand--official { width:145px; }

  .site-header .official-brand-logo,
  .atlas-header .official-brand-logo { height:43px; }

  .site-header nav.shared-site-nav,
  .atlas-header nav.shared-site-nav {
    width:calc(100% + 26px);
    margin:0 -13px;
    padding:0 13px;
    gap:22px;
  }

  .site-header .header-cta,
  .atlas-header .atlas-header-vote {
    min-width:auto;
    min-height:34px;
    padding:8px 11px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:20px;
    font-size:9px;
  }

  .site-header .header-cta span,
  .atlas-header .atlas-header-vote span { display:none; }

  .unit-overview-screen { padding-top:129px; }
  .idol-profile-hero { padding-top:129px; }
  .idol-directory-hero { padding-top:145px; }
  .ranking-intro,
  .support-hero { padding-top:142px; }
}
/* End shared header alignment and active state v8 */


/* KIRAMEKI47 — whole-site clarity polish v12 */
html {
  scroll-behavior:smooth;
  text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
}

body {
  font-kerning:normal;
  font-feature-settings:"palt" 1;
}

.site-header,
.atlas-header {
  background:linear-gradient(180deg,rgba(4,10,23,.97),rgba(5,12,27,.9));
  border-bottom-color:rgba(184,214,255,.18);
  box-shadow:0 12px 34px rgba(0,0,0,.2);
  backdrop-filter:blur(20px) saturate(1.2);
}

.site-header nav.shared-site-nav,
.atlas-header nav.shared-site-nav {
  gap:clamp(20px,2.2vw,40px);
  font-size:11px;
  letter-spacing:.13em;
}

.site-header nav.shared-site-nav a::after,
.atlas-header nav.shared-site-nav a::after {
  height:3px;
}

.site-header .header-cta,
.atlas-header .atlas-header-vote {
  min-height:44px;
  font-size:12px;
}

.hero-lead,
.ranking-intro > p:nth-of-type(2),
.support-hero > p:nth-of-type(2) {
  color:rgba(255,255,255,.82);
  font-size:clamp(15px,1.08vw,17px);
}

.breadcrumbs,
.unit-overview-breadcrumbs {
  color:rgba(255,255,255,.62);
  font-size:10px;
  line-height:1.6;
}

.eyebrow,
.profile-kicker,
.ranking-intro > p:first-child,
.support-hero > p:first-child {
  letter-spacing:.17em;
}

.button,
.fastlane-copy > a,
.soul-home-copy a,
.partner-actions button,
.partner-actions a,
.support-partner button,
.support-partner a,
.profile-vote,
.atlas-header-vote,
.header-cta {
  min-height:48px;
  font-size:12px;
}

.unit-card,
.idol-directory-card,
.profile-member-card,
.sibling-members > div:last-child a,
.ranking-list-panel,
.vote-panel,
.fc-grid article,
.partner-grid article {
  box-shadow:0 16px 42px rgba(18,31,52,.1);
}

.unit-card:focus-within,
.idol-directory-card:focus-within,
.profile-member-card:focus-within,
.sibling-members > div:last-child a:focus-visible {
  outline:3px solid #5364df;
  outline-offset:4px;
}

.unit-body > p {
  color:#596577;
  font-size:13px;
  line-height:1.75;
}

.unit-place { color:#42516a; }
.results-meta { color:#667286; font-size:11px; }
.section-logo-block__description-copy strong { font-size:13px; }
.section-logo-block__description-copy p { color:#596577; font-size:14px!important; }
.project-copy dd span,
.soul-levels p { color:#616d80; font-size:12px; }

.idol-directory-body p {
  color:#687386;
  font-size:11px;
  line-height:1.65;
}

.idol-directory-body > strong,
.idol-directory-body em { font-size:11px; }
.idol-directory-body em { color:#465bcf; }

.unit-overview-meaning {
  color:rgba(255,255,255,.72);
  font-size:13px;
  line-height:1.75;
}

.unit-signal-grid span { font-size:9px; }
.unit-signal-grid strong { font-size:12px; }
.unit-feature-list span,
.unit-concept-detail p { color:rgba(255,255,255,.7); font-size:11px; }
.unit-member-mini-body p,
.unit-member-mini-body strong,
.unit-member-mini-body em { font-size:10px; }

.idol-personality {
  color:rgba(255,255,255,.76);
  font-size:14px;
}

.idol-profile-sheet dt { font-size:10px; }
.idol-profile-sheet dd { font-size:16px; }
.idol-profile-sheet dd small { color:#747f91; font-size:11px; }
.sibling-members a > small { color:#697486; font-size:11px; }

.preseason-rule p,
.soul-grid p,
.support-principle p,
.fc-grid li,
.partner-grid p,
.ranking-rules li p {
  color:#596577;
  font-size:12px;
  line-height:1.8;
}

.support-model > div:first-child > p:last-child,
.partner-heading > p:last-child,
.support-partner > p:nth-of-type(2) {
  color:rgba(255,255,255,.74);
  font-size:14px;
}

.partner-heading > p:last-child,
.support-partner > p:nth-of-type(2) { color:#596577; }
.ranking-list li > div small { color:#657286; font-size:11px; }
.ranking-list li > p { color:#687386; font-size:10px; }
.vote-candidates small,
.vote-selection span,
.vote-fairness { font-size:10px; }

.idol-directory-search,
.idol-sort,
.search-box,
.vote-search,
.static-vote-picker select {
  border-color:rgba(60,77,106,.22);
  box-shadow:0 7px 22px rgba(18,31,52,.06);
}

.idol-directory-search input,
.idol-sort select,
.search-box input,
.vote-search input,
.static-vote-picker select {
  color:#243149;
  font-size:14px;
}

.region-tabs button,
.idol-filter-switch button,
.idol-filter-options button,
.ranking-tabs button {
  min-height:46px;
  font-size:12px;
}

.atlas-footer p,
.atlas-footer nav,
.atlas-footer small,
footer p,
footer nav,
footer small {
  color:rgba(255,255,255,.7);
  font-size:11px;
}

@media (hover:hover) {
  .unit-card:hover,
  .idol-directory-card:hover,
  .profile-member-card:hover,
  .partner-grid article:hover {
    transform:translateY(-5px);
    box-shadow:0 24px 54px rgba(18,31,52,.15);
  }
}

@media (max-width:1240px) {
  .site-header nav.shared-site-nav,
  .atlas-header nav.shared-site-nav {
    gap:19px;
    font-size:10px;
    letter-spacing:.1em;
  }
}

@media (max-width:1000px) {
  .site-header nav.shared-site-nav,
  .atlas-header nav.shared-site-nav {
    gap:27px;
    font-size:10px;
    letter-spacing:.11em;
  }
}

@media (max-width:680px) {
  .site-header nav.shared-site-nav,
  .atlas-header nav.shared-site-nav {
    gap:24px;
    font-size:10px;
    letter-spacing:.1em;
  }

  .hero-lead { font-size:14px; }
  .section-logo-block__description-copy p { font-size:12px!important; }
  .unit-body > p { font-size:11px; }
  .idol-directory-body p,
  .idol-directory-body > strong,
  .idol-directory-body em { font-size:10px; }
  .unit-overview-meaning { font-size:12px; }
  .unit-signal-grid strong { font-size:11px; }
  .unit-feature-list span,
  .unit-concept-detail p { font-size:10px; }
  .idol-personality { font-size:13px; }
  .idol-profile-sheet dd { font-size:14px; }
  .ranking-list li > div small { font-size:10px; }
  .preseason-rule p,
  .soul-grid p,
  .fc-grid li,
  .partner-grid p,
  .ranking-rules li p { font-size:11px; }
}

@media (max-width:520px) {
  .unit-grid { grid-template-columns:1fr; }
  .unit-body { min-height:172px; padding:16px; }
  .unit-card-identity { min-height:78px; }
  .unit-body > p { min-height:auto; }
}

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


/* Exact shared navigation centering v11 */
@media (min-width:1001px) {
  .site-header,
  .atlas-header {
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  }

  .site-header .brand--official,
  .atlas-header .atlas-brand--official {
    min-width:0;
    justify-self:start;
  }

  .site-header nav.shared-site-nav,
  .atlas-header nav.shared-site-nav {
    justify-self:center;
  }

  .site-header .header-cta,
  .atlas-header .atlas-header-vote {
    min-width:0;
    justify-self:end;
  }
}
/* End exact shared navigation centering v11 */


/* Pixel-locked shared header geometry v12 */
@media (min-width:1001px) {
  .site-header .brand--official,
  .atlas-header .atlas-brand--official {
    width:190px;
    min-width:190px;
  }

  .site-header .official-brand-logo,
  .atlas-header .official-brand-logo {
    width:177px;
    height:58px;
  }

  .site-header .header-cta,
  .atlas-header .atlas-header-vote {
    width:112px;
    min-width:112px;
    max-width:112px;
    box-sizing:border-box;
  }
}
/* End pixel-locked shared header geometry v12 */


/* KIRAMEKI47 — wide official wordmark geometry v13 */
@media (min-width:1001px) {
  .site-header .brand--official,
  .atlas-header .atlas-brand--official {
    width:240px;
    min-width:240px;
  }

  .site-header .official-brand-logo,
  .atlas-header .official-brand-logo {
    width:225px;
    height:auto;
    max-height:58px;
  }
}

@media (min-width:1001px) and (max-width:1240px) {
  .site-header .brand--official,
  .atlas-header .atlas-brand--official {
    width:215px;
    min-width:215px;
  }

  .site-header .official-brand-logo,
  .atlas-header .official-brand-logo {
    width:205px;
  }
}

@media (max-width:1000px) {
  .site-header .brand--official,
  .atlas-header .atlas-brand--official {
    width:180px;
  }

  .site-header .official-brand-logo,
  .atlas-header .official-brand-logo {
    width:170px;
    height:auto;
    max-height:46px;
  }
}

@media (max-width:680px) {
  .site-header .brand--official,
  .atlas-header .atlas-brand--official {
    width:155px;
  }

  .site-header .official-brand-logo,
  .atlas-header .official-brand-logo {
    width:150px;
    height:auto;
    max-height:43px;
  }
}
/* End KIRAMEKI47 wordmark geometry v13 */


/* Keep the desktop header on one horizontal coordinate system across pages. */
@media (min-width:1001px) {
  html {
    overflow-y:scroll;
    scrollbar-gutter:stable;
  }
}
/* End stable shared header gutter */


/* KIRAMEKI47 — discovery and action polish v17 */
.hero-choice-actions {
  width:min(100%,760px);
  margin-top:28px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.hero-choice-actions .hero-choice {
  min-width:0;
  min-height:96px;
  padding:14px 15px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  border:1px solid transparent;
  border-radius:13px;
  text-align:left;
  box-shadow:0 18px 38px rgba(0,0,0,.2);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.hero-choice-actions .hero-choice:hover {
  transform:translateY(-3px);
  box-shadow:0 24px 48px rgba(0,0,0,.3);
}

.hero-choice--local {
  color:#06111d;
  background:linear-gradient(135deg,#89f2df,#b9fbef);
}

.hero-choice--idols {
  color:#fff;
  background:linear-gradient(135deg,#ef477e,#bf4fd1);
}

.hero-choice__icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid currentColor;
  border-radius:50%;
  font:800 19px/1 Arial,sans-serif;
}

.hero-choice__copy {
  min-width:0;
  display:grid;
  gap:5px;
}

.hero-choice__copy small {
  font:800 7px/1 Arial,sans-serif;
  letter-spacing:.16em;
  opacity:.62;
}

.hero-choice__copy strong {
  font-size:clamp(13px,1.02vw,16px);
  line-height:1.35;
  letter-spacing:-.035em;
}

.hero-choice__copy em {
  overflow:hidden;
  color:inherit;
  font-size:9px;
  font-style:normal;
  line-height:1.45;
  opacity:.7;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.hero-choice > b {
  font:700 17px/1 Arial,sans-serif;
}

.fastlane-pickup-label {
  width:max-content;
  max-width:100%;
  margin:0 0 18px!important;
  padding:9px 13px;
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid rgba(233,71,91,.25);
  border-radius:999px;
  background:#fff;
  color:#7d3342!important;
  font-size:10px!important;
  font-weight:800;
  letter-spacing:.04em!important;
  box-shadow:0 9px 24px rgba(25,39,65,.07);
}

.fastlane-pickup-label span {
  color:#e9475b;
  font:900 8px/1 Arial,sans-serif;
  letter-spacing:.16em;
}

.prefecture-map-panel {
  max-width:1500px;
  margin:0 auto 26px;
  padding:clamp(24px,3vw,42px);
  display:grid;
  grid-template-columns:minmax(310px,340px) minmax(0,1fr);
  align-items:center;
  gap:clamp(24px,3.5vw,58px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:24px;
  color:#fff;
  background:radial-gradient(circle at 82% 16%,rgba(78,114,255,.28),transparent 34%),linear-gradient(135deg,#081426,#0d1c37 68%,#11264a);
  box-shadow:0 24px 62px rgba(24,36,60,.16);
  scroll-margin-top:24px;
}

.prefecture-map-copy > p {
  margin:0 0 17px;
  display:flex;
  align-items:center;
  gap:9px;
  color:#78edda;
  font:800 8px/1 Arial,sans-serif;
  letter-spacing:.2em;
}

.prefecture-map-copy > p span {
  width:24px;
  height:1px;
  background:currentColor;
}

.prefecture-map-copy h3 {
  margin:0;
  font-size:clamp(27px,2.2vw,36px);
  line-height:1.3;
  letter-spacing:-.055em;
  white-space:nowrap;
}

.prefecture-map-copy > span {
  display:block;
  margin-top:15px;
  color:rgba(255,255,255,.68);
  font-size:11px;
  line-height:1.85;
}

.prefecture-map-copy > a {
  width:max-content;
  min-height:42px;
  margin-top:19px;
  padding:0 14px;
  display:flex;
  align-items:center;
  gap:24px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  color:#fff;
  font-size:10px;
  font-weight:800;
}

.prefecture-map-copy > a b { color:#78edda; }

.japan-map {
  min-width:0;
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  grid-template-rows:repeat(4,auto);
  align-items:start;
  gap:9px;
}

.japan-map-region {
  min-width:0;
  padding:11px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

.japan-map-region--hokkaido { grid-column:7 / 9; grid-row:1; }
.japan-map-region--tohoku { grid-column:7 / 9; grid-row:2; }
.japan-map-region--kanto { grid-column:7 / 9; grid-row:3; }
.japan-map-region--chubu { grid-column:5 / 7; grid-row:2 / 4; }
.japan-map-region--kinki { grid-column:3 / 5; grid-row:3; }
.japan-map-region--chugoku { grid-column:1 / 3; grid-row:3; }
.japan-map-region--shikoku { grid-column:3 / 5; grid-row:4; }
.japan-map-region--kyushu { grid-column:1 / 3; grid-row:4; }

.japan-map-region header {
  min-height:25px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
}

.japan-map-region header b {
  color:#78edda;
  font:800 7px/1 Arial,sans-serif;
}

.japan-map-region header strong {
  font-size:11px;
  line-height:1.2;
}

.japan-map-region header span {
  color:rgba(255,255,255,.42);
  font:700 6px/1 Arial,sans-serif;
  letter-spacing:.08em;
}

.japan-map-prefectures {
  margin-top:6px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
}

.japan-map-region--hokkaido .japan-map-prefectures { grid-template-columns:1fr; }

.japan-map-prefectures a {
  min-width:0;
  min-height:38px;
  padding:5px 4px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.1);
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.8);
  font-size:9px;
  font-weight:700;
  text-align:center;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}

.japan-map-prefectures a:hover,
.japan-map-prefectures a:focus-visible {
  background:#78edda;
  color:#07111e;
  transform:translateY(-1px);
  outline:0;
}

.explorer {
  position:relative;
  z-index:24;
  top:auto;
  scroll-margin-top:66px;
}

.region-tabs button {
  border:1px solid transparent;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}

.region-tabs button:focus-visible {
  border-color:#5364df;
  outline:2px solid rgba(83,100,223,.24);
  outline-offset:2px;
}

.unit-card {
  scroll-margin-top:12px;
}

.unit-card.is-map-target {
  outline:4px solid rgba(83,100,223,.34);
  outline-offset:5px;
  box-shadow:0 24px 56px rgba(83,100,223,.22);
}

.unit-place {
  color:#35445f;
  font-size:14px;
  font-weight:850;
}

.unit-card-display-name {
  margin:0 0 8px;
  font-size:clamp(17px,1.3vw,21px);
  line-height:1.3;
  letter-spacing:-.04em;
}

.unit-body {
  min-height:220px;
}

.unit-body > p {
  min-height:42px;
  color:#687386;
  font-size:12px;
  line-height:1.75;
}

.unit-card-actions {
  padding:0 12px 13px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  background:#fff;
}

.unit-card-action {
  min-width:0;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid #d9dee7;
  border-radius:9px;
  font-size:10px;
  font-weight:850;
  white-space:nowrap;
  transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
}

.unit-card-action--listen {
  border-color:#0d1b32;
  background:#0d1b32;
  color:#fff;
}

.unit-card-action--listen span { color:#78edda; }
.unit-card-action--vote { color:#bb3158; }

.unit-card-action:hover,
.unit-card-action:focus-visible {
  transform:translateY(-2px);
  outline:0;
}

.unit-card-action--vote:hover,
.unit-card-action--vote:focus-visible {
  border-color:#ef477e;
  background:#fff1f5;
}

.unit-empty-state {
  max-width:1500px;
  min-height:180px;
  margin:0 auto;
  padding:38px 20px;
  display:grid;
  place-content:center;
  gap:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  text-align:center;
}

.unit-empty-state[hidden] { display:none; }
.unit-empty-state strong { font-size:18px; }
.unit-empty-state span { color:#687386; font-size:11px; }

.mobile-dock a {
  color:rgba(255,255,255,.65)!important;
  background:transparent!important;
}

.mobile-dock a[aria-current="page"] {
  color:#78edda!important;
  background:rgba(255,255,255,.09)!important;
}

@media (min-width:1001px) and (max-width:1240px) {
  .hero-choice-actions {
    max-width:440px;
    grid-template-columns:1fr;
  }
  .hero-choice-actions .hero-choice { min-height:78px; }
}

@media (max-width:1100px) {
  .prefecture-map-panel { grid-template-columns:1fr; }
  .prefecture-map-copy { max-width:620px; }
}

@media (max-width:1000px) {
  html { scroll-padding-top:125px; }
  .prefecture-map-panel { scroll-margin-top:8px; }
  .unit-card { scroll-margin-top:14px; }
  .explorer { position:relative; top:auto; z-index:10; scroll-margin-top:44px; }
}

@media (max-width:680px) {
  body { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }

  .hero-choice-actions {
    width:100%;
    grid-template-columns:1fr;
    gap:9px;
  }

  .hero-choice-actions .hero-choice {
    min-height:78px;
    padding:10px 12px;
    grid-template-columns:38px minmax(0,1fr) auto;
  }

  .hero-choice__icon { width:38px; height:38px; font-size:17px; }
  .hero-choice__copy strong { font-size:14px; }
  .hero-choice__copy em { font-size:8px; }

  .fastlane-pickup-label {
    margin-bottom:14px!important;
    padding:8px 11px;
    font-size:9px!important;
  }

  .prefecture-map-panel {
    margin-bottom:18px;
    padding:20px 15px 17px;
    gap:22px;
    border-radius:16px;
  }

  .prefecture-map-copy h3 { font-size:29px; }
  .prefecture-map-copy > span { font-size:10px; }

  .japan-map {
    width:calc(100% + 15px);
    display:flex;
    align-items:stretch;
    gap:10px;
    overflow-x:auto;
    padding:0 15px 8px 0;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }

  .japan-map::-webkit-scrollbar { display:none; }

  .japan-map-region {
    flex:0 0 min(78vw,300px);
    scroll-snap-align:start;
  }

  .japan-map-prefectures a {
    min-height:44px;
    font-size:10px;
  }

  .explorer {
    display:grid;
    grid-template-columns:1fr;
  }

  .search-box {
    width:100%;
    border-top:1px solid var(--line);
    border-left:0;
    padding:8px 6px 0;
  }

  .unit-place { font-size:11px; }
  .unit-card-display-name { margin-bottom:6px; font-size:15px; }
  .unit-body { min-height:192px; }
  .unit-body > p { min-height:50px; font-size:10px; }
  .unit-card-actions { padding:0 8px 9px; gap:5px; }
  .unit-card-action { min-height:40px; gap:4px; border-radius:7px; font-size:9px; }

  .mobile-dock {
    z-index:60;
    bottom:max(7px,env(safe-area-inset-bottom));
  }

  .static-toast { bottom:calc(86px + env(safe-area-inset-bottom)); }
}

@media (max-width:430px) {
  .unit-card-actions { padding-inline:11px; gap:8px; }
  .unit-card-action { min-height:44px; font-size:10px; }
}
/* End discovery and action polish v17 */

/* Smartphone renderer stability — v20 mobilefix */
@media (max-width:680px) {
  html { scroll-behavior:auto; }

  html.motion-enhanced .motion-reveal,
  html.motion-enhanced .motion-reveal.motion-visible,
  .units-section.motion-reveal,
  .units-section.motion-reveal.motion-visible {
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    transition:none!important;
  }

  .unit-card {
    content-visibility:auto;
    contain:layout style paint;
    contain-intrinsic-size:430px;
    contain-intrinsic-size:auto 430px;
  }

  .unit-image::before,
  .section-logo-block__art::after {
    display:none!important;
    animation:none!important;
  }

  .section-logo-block__eyebrow span,
  .section-logo-block__art::before,
  .section-logo-block__art img,
  .section-logo-block__art > i,
  .official-brand-logo,
  .button span,
  .profile-vote span,
  .atlas-header-vote span,
  .header-cta span,
  .partner-actions a span {
    animation:none!important;
  }

  .hero-grid {
    transform:none;
    will-change:auto;
  }
}
/* End smartphone renderer stability — v20 mobilefix */

/* KIRAMEKI47 operator, contact and privacy pages — v25 */
.atlas-footer__legal {
  grid-column:1 / -1;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 22px;
  width:100%;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.7);
  font:700 10px/1.5 Arial,"Noto Sans JP",sans-serif;
  letter-spacing:.08em;
}

.atlas-footer__legal span {
  color:rgba(255,255,255,.86);
}

.atlas-footer__legal a {
  position:relative;
  padding-block:5px;
  color:rgba(255,255,255,.62);
  transition:color .2s ease;
}

.atlas-footer__legal a::after {
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:1px;
  transform:scaleX(0);
  transform-origin:left;
  background:linear-gradient(90deg,#7ceada,#ed57b7);
  transition:transform .2s ease;
}

.atlas-footer__legal a:hover,
.atlas-footer__legal a:focus-visible { color:#fff; }
.atlas-footer__legal a:hover::after,
.atlas-footer__legal a:focus-visible::after { transform:scaleX(1); }
.atlas-footer > small { text-align:center; }

.legal-page {
  min-height:100vh;
  color:#0a1426;
  background:
    radial-gradient(circle at 12% 20%,rgba(93,220,210,.11),transparent 30rem),
    radial-gradient(circle at 90% 54%,rgba(231,74,164,.08),transparent 34rem),
    #f5f2eb;
}

.legal-hero {
  position:relative;
  min-height:430px;
  padding:clamp(110px,14vw,190px) clamp(22px,8vw,130px) clamp(80px,10vw,130px);
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  color:#fff;
  background:
    radial-gradient(circle at 75% 25%,rgba(97,231,220,.2),transparent 25rem),
    radial-gradient(circle at 88% 80%,rgba(233,78,170,.18),transparent 30rem),
    linear-gradient(135deg,#061020 0%,#0a1730 58%,#101837 100%);
}

.legal-hero::before {
  content:"K47";
  position:absolute;
  right:-.04em;
  bottom:-.22em;
  color:transparent;
  font:900 clamp(180px,32vw,520px)/.8 Arial,sans-serif;
  letter-spacing:-.12em;
  -webkit-text-stroke:1px rgba(255,255,255,.07);
}

.legal-hero::after {
  content:"";
  position:absolute;
  inset:0;
  opacity:.16;
  background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(90deg,#000,transparent 78%);
}

.legal-hero__inner {
  position:relative;
  z-index:1;
  width:min(100%,1120px);
  margin:0 auto;
}

.legal-kicker {
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 22px;
  color:#7ceada;
  font:800 10px/1 Arial,sans-serif;
  letter-spacing:.22em;
}

.legal-kicker span { width:34px; height:1px; background:#7ceada; }
.legal-hero h1 { margin:0; font-size:clamp(42px,7vw,92px); line-height:1; letter-spacing:-.055em; }
.legal-hero__inner > p:last-child { max-width:680px; margin:22px 0 0; color:rgba(255,255,255,.68); font-size:clamp(13px,1.3vw,17px); line-height:1.9; }

.legal-content {
  position:relative;
  z-index:2;
  width:min(calc(100% - 40px),1120px);
  margin:-44px auto 100px;
  padding:clamp(30px,5vw,70px);
  background:rgba(255,255,255,.96);
  border:1px solid rgba(37,58,88,.1);
  box-shadow:0 30px 80px rgba(17,31,54,.12);
}

.legal-content__heading { margin-bottom:38px; }
.legal-content__heading > p:first-child { margin:0 0 12px; color:#4665cf; font:800 10px/1 Arial,sans-serif; letter-spacing:.2em; }
.legal-content__heading h2 { margin:0; font-size:clamp(28px,4vw,52px); letter-spacing:-.045em; }
.legal-content__heading > p:last-child { max-width:750px; margin:18px 0 0; color:#5d6879; font-size:14px; line-height:1.9; }

.company-profile { margin:0; border-top:1px solid rgba(24,42,70,.14); }
.company-profile > div { display:grid; grid-template-columns:180px minmax(0,1fr); gap:28px; padding:24px 4px; border-bottom:1px solid rgba(24,42,70,.12); }
.company-profile dt { color:#6b7688; font-size:12px; font-weight:800; }
.company-profile dd { margin:0; color:#111d31; font-size:15px; font-weight:700; line-height:1.8; }
.company-profile a,
.privacy-content a,
.contact-operator a { color:#365ec9; text-decoration:underline; text-decoration-color:rgba(54,94,201,.3); text-underline-offset:4px; }

.legal-notice {
  margin-top:38px;
  padding:28px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px 28px;
  align-items:center;
  background:linear-gradient(135deg,rgba(89,224,211,.14),rgba(231,76,167,.08));
  border-left:4px solid #65dbd1;
}
.legal-notice strong { font-size:18px; }
.legal-notice p { margin:0; color:#5b6677; font-size:12px; line-height:1.8; }
.legal-primary-action {
  grid-column:2;
  grid-row:1 / 3;
  min-height:50px;
  padding:0 20px;
  display:flex;
  align-items:center;
  gap:22px;
  color:#fff;
  background:#091426;
  font-size:11px;
  font-weight:800;
}

.contact-mail-card {
  min-height:160px;
  padding:30px clamp(24px,4vw,44px);
  display:grid;
  grid-template-columns:1fr auto;
  align-content:center;
  gap:10px 24px;
  color:#fff;
  background:
    radial-gradient(circle at 90% 10%,rgba(237,83,183,.25),transparent 19rem),
    linear-gradient(135deg,#08152a,#14224a);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 22px 50px rgba(17,31,54,.18);
}
.contact-mail-card > span { color:#79e8d9; font:800 10px/1 Arial,sans-serif; letter-spacing:.2em; }
.contact-mail-card strong { grid-column:1; font:700 clamp(22px,4vw,42px)/1.2 Arial,sans-serif; letter-spacing:-.025em; }
.contact-mail-card em { grid-column:2; grid-row:1 / 3; align-self:center; font-size:12px; font-style:normal; font-weight:800; }
.contact-mail-card em b { margin-left:12px; color:#7ceada; }

.contact-guidance { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:30px; }
.contact-guidance article { min-height:210px; padding:26px; background:#f6f7fa; border-top:3px solid #4d68d3; }
.contact-guidance article:nth-child(2) { border-top-color:#61d9cf; }
.contact-guidance article:nth-child(3) { border-top-color:#e55aaf; }
.contact-guidance span { color:#4d68d3; font:300 28px/1 Arial,sans-serif; }
.contact-guidance h3 { margin:28px 0 10px; font-size:17px; }
.contact-guidance p { margin:0; color:#616c7d; font-size:12px; line-height:1.9; }
.contact-smallprint { margin:28px 0 0; padding:20px 22px; color:#697486; background:#f7f4ed; font-size:11px; line-height:1.9; }
.contact-operator { margin:22px 0 0; text-align:right; color:#697486; font-size:12px; }

.privacy-content { color:#263349; }
.privacy-lead { margin:0 0 44px; padding-bottom:34px; border-bottom:1px solid rgba(24,42,70,.13); font-size:15px; line-height:2; }
.privacy-content > section { padding:32px 0; border-bottom:1px solid rgba(24,42,70,.11); }
.privacy-content h2 { display:flex; align-items:center; gap:16px; margin:0 0 18px; color:#111d31; font-size:21px; }
.privacy-content h2 span { color:#4d68d3; font:300 22px/1 Arial,sans-serif; }
.privacy-content p,
.privacy-content li { color:#556175; font-size:13px; line-height:2; }
.privacy-content ul { margin:12px 0 0; padding-left:1.4em; }
.privacy-status { margin-top:20px; padding:20px 22px; background:#eef9f7; border-left:4px solid #5dd8cc; }
.privacy-status strong { color:#183e44; font-size:13px; }
.privacy-status p { margin:7px 0 0; }
.privacy-contact { background:linear-gradient(135deg,rgba(82,106,210,.07),rgba(94,219,207,.08)); padding-inline:24px!important; }
.privacy-date { margin:30px 0 0; text-align:right; color:#707a8b; font-size:11px; }

.partner-contact-link {
  margin-top:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:42px;
  padding:0 14px;
  color:#fff;
  background:#101c31;
  font-size:10px;
  font-weight:800;
}
.partner-contact-link b { color:#79e8d9; }

@media (max-width:760px) {
  .atlas-footer__legal { flex-direction:column; gap:6px; padding-top:18px; letter-spacing:.04em; }
  .legal-hero { min-height:350px; padding:100px 20px 76px; }
  .legal-hero::before { right:-.15em; font-size:220px; }
  .legal-content { width:calc(100% - 24px); margin-top:-30px; margin-bottom:70px; padding:28px 20px; }
  .company-profile > div { grid-template-columns:1fr; gap:8px; padding:20px 0; }
  .company-profile dd { font-size:14px; }
  .legal-notice { grid-template-columns:1fr; padding:22px; }
  .legal-primary-action { grid-column:1; grid-row:auto; justify-content:space-between; margin-top:8px; }
  .contact-mail-card { min-height:150px; grid-template-columns:1fr; }
  .contact-mail-card strong { overflow-wrap:anywhere; }
  .contact-mail-card em { grid-column:1; grid-row:auto; margin-top:10px; }
  .contact-guidance { grid-template-columns:1fr; }
  .contact-guidance article { min-height:0; }
  .contact-operator { text-align:left; }
  .privacy-content h2 { align-items:flex-start; font-size:18px; }
  .privacy-content p,
  .privacy-content li { font-size:12px; }
}
/* End KIRAMEKI47 operator, contact and privacy pages — v25 */

/* KIRAMEKI47 legal pages — brand refresh and header-safe layout v26 */
.legal-body {
  min-height:100%;
  background:#061020;
}

.legal-page {
  min-height:100vh;
  padding-top:88px;
  overflow:clip;
  color:#eaf1fb;
  background:
    radial-gradient(circle at 7% 24%,rgba(120,237,218,.12),transparent 27rem),
    radial-gradient(circle at 94% 46%,rgba(237,87,183,.12),transparent 31rem),
    linear-gradient(150deg,#061020 0%,#08162d 52%,#0c1230 100%);
}

.legal-page .atlas-header {
  top:0;
}

.legal-hero {
  min-height:360px;
  padding:64px clamp(22px,8vw,130px) 108px;
  align-items:center;
  background:
    radial-gradient(circle at 72% 20%,rgba(120,237,218,.2),transparent 23rem),
    radial-gradient(circle at 90% 86%,rgba(237,87,183,.2),transparent 29rem),
    linear-gradient(135deg,#061020 0%,#0b1b39 62%,#19153b 100%);
  border-bottom:1px solid rgba(150,202,255,.12);
}

.legal-hero::after {
  opacity:.13;
  background-size:48px 48px;
}

.legal-hero__inner {
  width:min(100%,1040px);
}

.legal-kicker {
  color:#78edda;
}

.legal-kicker span {
  background:linear-gradient(90deg,#78edda,#ed57b7);
}

.legal-hero h1 {
  color:#f8fbff;
  text-shadow:0 14px 50px rgba(0,0,0,.3);
}

.legal-hero__inner > p:last-child {
  color:rgba(225,235,249,.72);
}

.legal-content {
  width:min(calc(100% - 32px),1040px);
  margin:-48px auto 96px;
  padding:clamp(34px,5vw,64px);
  color:#cbd6e6;
  background:
    radial-gradient(circle at 100% 0%,rgba(90,127,222,.13),transparent 26rem),
    linear-gradient(180deg,rgba(13,27,52,.98),rgba(7,16,31,.99));
  border:1px solid rgba(120,237,218,.18);
  border-radius:2px 24px 2px 24px;
  box-shadow:0 34px 90px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.035);
}

.legal-content::before {
  content:"";
  position:absolute;
  top:-1px;
  left:34px;
  width:min(240px,42%);
  height:3px;
  background:linear-gradient(90deg,#78edda,#72a7ff 58%,#ed57b7);
  box-shadow:0 0 20px rgba(120,237,218,.34);
}

.legal-content__heading,
.privacy-content > section {
  scroll-margin-top:132px;
}

.legal-content__heading > p:first-child {
  color:#78edda;
}

.legal-content__heading h2 {
  color:#f7fbff;
}

.legal-content__heading > p:last-child {
  color:#b9c6d8;
  font-size:15px;
}

.company-profile {
  border-top:1px solid rgba(150,190,230,.14);
}

.company-profile > div {
  margin-top:8px;
  padding:22px 18px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(150,190,230,.1);
}

.company-profile dt {
  color:#78edda;
  letter-spacing:.06em;
}

.company-profile dd {
  color:#f4f7fc;
  overflow-wrap:anywhere;
}

.company-profile a,
.privacy-content a,
.contact-operator a {
  color:#82eadd;
  text-decoration-color:rgba(130,234,221,.36);
}

.legal-notice {
  background:linear-gradient(135deg,rgba(120,237,218,.1),rgba(237,87,183,.1));
  border:1px solid rgba(120,237,218,.18);
  border-left:4px solid #78edda;
}

.legal-notice strong { color:#f7fbff; }
.legal-notice p { color:#bdc9da; }
.legal-primary-action {
  color:#061020;
  background:linear-gradient(90deg,#78edda,#81b5ff);
  box-shadow:0 12px 28px rgba(72,193,202,.17);
}

.contact-mail-card {
  overflow:hidden;
  background:
    radial-gradient(circle at 90% 12%,rgba(237,83,183,.3),transparent 20rem),
    radial-gradient(circle at 12% 110%,rgba(120,237,218,.2),transparent 18rem),
    linear-gradient(135deg,#07142c,#14234f);
  border:1px solid rgba(120,237,218,.28);
  box-shadow:0 24px 60px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.05);
}

.contact-mail-card > span { color:#78edda; }
.contact-mail-card strong { color:#fff; overflow-wrap:anywhere; }
.contact-mail-card em { color:#eaf2ff; }

.contact-guidance article {
  color:#dce6f5;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(150,190,230,.12);
  border-top:3px solid #6d8ff0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}

.contact-guidance article:nth-child(2) { border-top-color:#78edda; }
.contact-guidance article:nth-child(3) { border-top-color:#ed57b7; }
.contact-guidance span { color:#8fa8ff; }
.contact-guidance h3 { color:#f6f9ff; }
.contact-guidance p { color:#becadb; }
.contact-smallprint {
  color:#b8c4d5;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(150,190,230,.1);
}
.contact-operator { color:#aebbd0; }

.privacy-content {
  max-width:1040px;
  color:#cbd6e6;
}

.privacy-lead {
  color:#d6e0ee;
  border-bottom-color:rgba(150,190,230,.14);
  font-size:15px;
}

.privacy-content > section {
  margin-top:14px;
  padding:28px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(150,190,230,.1);
  border-left:3px solid rgba(120,237,218,.34);
}

.privacy-content h2 {
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  gap:14px;
  align-items:center;
  color:#f7fbff;
  font-size:22px;
}

.privacy-content h2 span {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  color:#78edda;
  background:rgba(120,237,218,.08);
  border:1px solid rgba(120,237,218,.35);
  border-radius:50%;
  font-size:15px;
}

.privacy-content p,
.privacy-content li {
  max-width:78ch;
  color:#c5d0df;
  font-size:15px;
  line-height:2;
}

.privacy-content li::marker { color:#78edda; }
.privacy-status {
  background:rgba(120,237,218,.08);
  border:1px solid rgba(120,237,218,.16);
  border-left:4px solid #78edda;
}
.privacy-status strong { color:#cffff7; }
.privacy-contact {
  background:linear-gradient(135deg,rgba(120,237,218,.08),rgba(237,87,183,.07));
}
.privacy-date { color:#9eacc1; }

.partner-contact-link {
  background:linear-gradient(90deg,#0b1a31,#172554);
  border:1px solid rgba(120,237,218,.22);
}

@media (hover:hover) {
  .legal-primary-action:hover,
  .contact-mail-card:hover,
  .partner-contact-link:hover {
    filter:brightness(1.08);
    transform:translateY(-2px);
  }
}

@media (max-width:1000px) {
  .legal-page { padding-top:111px; }
}

@media (max-width:760px) {
  .legal-page { padding-top:111px; }
  .legal-hero {
    min-height:280px;
    padding:44px 18px 64px;
  }
  .legal-hero::before { right:-.18em; bottom:-.08em; font-size:190px; }
  .legal-hero h1 {
    font-size:clamp(34px,10vw,46px);
    line-height:1.12;
    overflow-wrap:anywhere;
  }
  .legal-hero__inner > p:last-child { margin-top:17px; font-size:13px; }
  .legal-content {
    width:calc(100% - 20px);
    margin:-26px auto 64px;
    padding:30px 18px 38px;
    border-radius:2px 18px 2px 18px;
  }
  .legal-content::before { left:18px; }
  .legal-content__heading { margin-bottom:28px; }
  .legal-content__heading h2 { font-size:clamp(25px,8vw,38px); overflow-wrap:anywhere; }
  .legal-content__heading > p:last-child { font-size:14px; line-height:1.9; }
  .company-profile > div {
    grid-template-columns:1fr;
    gap:7px;
    margin-top:7px;
    padding:18px 12px;
  }
  .company-profile dt { font-size:11px; }
  .company-profile dd { font-size:14px; }
  .legal-notice { padding:20px 18px; }
  .contact-mail-card { min-height:0; padding:24px 18px; }
  .contact-mail-card strong { font-size:clamp(18px,5.8vw,26px); }
  .contact-guidance { grid-template-columns:1fr; }
  .contact-guidance article { padding:24px 20px; }
  .privacy-lead { margin-bottom:26px; padding-bottom:24px; font-size:14px; }
  .privacy-content > section { margin-top:10px; padding:22px 18px; }
  .privacy-content h2 {
    grid-template-columns:38px minmax(0,1fr);
    gap:11px;
    font-size:19px;
    line-height:1.45;
  }
  .privacy-content h2 span { width:36px; height:36px; font-size:13px; }
  .privacy-content p,
  .privacy-content li { font-size:14px; line-height:1.95; }
  .privacy-content ul { padding-left:1.25em; }
}
/* End KIRAMEKI47 legal pages — brand refresh and header-safe layout v26 */
