/* Idol Training Camp — show site. Practice Room 01 look: Obsidian ground, Cream type,
   Solar Blaze for live/action, Sky Ice only for stamina-style data. Single dark theme by design. */
:root {
  --ob: #0A0A0C; --ob-2: #121215; --ob-3: #1B1B20; --line: #2A2A30; --line-2: #3A3A42;
  --cr: #F5F5F0; --cr-2: #D9D9D2; --mu: #A9A9A2;
  --bz: #FF5F1F; --ice: #1FBFFF;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Inter", "Noto Sans KR", -apple-system, "Helvetica Neue", Arial, sans-serif;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { background: var(--ob); }
body { margin: 0; background: var(--ob); color: var(--cr); font: 17px/1.6 var(--sans); font-variant-numeric: tabular-nums;
  padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
a { color: var(--cr); text-underline-offset: 3px; text-decoration-color: var(--bz); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--bz); outline-offset: 3px; }
.wrap { max-width: 1120px; margin: 0 auto; }
h1, h2, h3 { font-family: var(--serif); font-weight: 700; margin: 0; text-wrap: balance; }
p { margin: 0; }
.micro { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--mu); }

.draft { margin: 0 calc(-1 * max(20px, env(safe-area-inset-left, 0px))); background: var(--ob-3); border-bottom: 1px solid var(--line);
  text-align: center; font-size: 13px; color: var(--cr-2); padding: 8px 16px; }
.draft strong { color: var(--cr); letter-spacing: .08em; }

/* header */
.top { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 22px; flex-wrap: wrap; }
.plate { display: flex; align-items: stretch; border: 1px solid var(--line-2); text-decoration: none; }
.plate .no { font-family: var(--serif); font-size: 30px; line-height: 1; padding: 8px 14px; border-right: 1px solid var(--line-2); display: flex; align-items: center; }
.plate .name { padding: 6px 14px; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.plate .name b { font-family: var(--serif); font-weight: 400; font-size: 17px; }
nav ul { list-style: none; display: flex; gap: 6px 22px; margin: 0; padding: 0; flex-wrap: wrap; }
nav a { text-decoration: none; font-size: 15px; font-weight: 500; color: var(--cr-2); }
nav a:hover { color: var(--cr); }

/* status pill */
.status { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--line-2); padding: 6px 12px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.dot { width: 10px; height: 10px; border-radius: 50%; background: var(--mu); }
.status.live .dot { background: var(--bz); }
.status.live { border-color: var(--bz); }

/* hero */
.hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; padding-block: 40px 72px; align-items: end; }
.hero h1 { font-size: clamp(48px, 8vw, 104px); line-height: .98; margin-top: 18px; }
.lede { font-size: clamp(18px, 2.2vw, 22px); color: var(--cr-2); max-width: 34ch; margin-top: 22px; }
.ctas { display: flex; gap: 14px; margin-top: 32px; flex-wrap: wrap; }
.btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; font-weight: 700; font-size: 16px; text-decoration: none; border: 1px solid var(--line-2); color: var(--cr); }
.btn.primary { background: var(--bz); color: var(--ob); border-color: var(--bz); }
.btn.primary:hover { filter: brightness(1.06); }
.btn:hover { border-color: var(--cr-2); }

.today { border: 1px solid var(--line-2); background: var(--ob-2); display: flex; flex-direction: column; }
.today .row { padding: 20px 24px; display: flex; flex-direction: column; gap: 6px; }
.today .row + .row { border-top: 1px solid var(--line); }
.daynum { font-size: clamp(54px, 7vw, 84px); font-weight: 700; line-height: 1; letter-spacing: .01em; }
.today .now { font-family: var(--serif); font-size: 24px; line-height: 1.25; }
.today .sub { color: var(--mu); font-size: 15px; }

/* sections */
section.block { border-top: 1px solid var(--line); padding-block: 64px; display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 40px; }
section.block h2 { font-size: clamp(30px, 4vw, 40px); line-height: 1.1; margin-top: 10px; }
.pillars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.pillars h3 { font-size: 21px; margin-bottom: 6px; }
.pillars p { color: var(--cr-2); }

/* schedule */
.tablewrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; min-width: 520px; }
th, td { text-align: left; padding: 14px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--mu); }
td.t { white-space: nowrap; font-weight: 600; width: 1%; }
td .what { font-weight: 600; }
td .how { color: var(--mu); font-size: 15px; }
tr.current td { background: var(--ob-3); }
tr.current td.t { box-shadow: inset 3px 0 0 var(--bz); }
.note { color: var(--mu); font-size: 15px; margin-top: 16px; }

/* evaluations */
.next { border: 1px solid var(--line-2); background: var(--ob-2); padding: 26px 28px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 26px; align-items: center; }
.next .big { font-family: var(--serif); font-size: 76px; font-weight: 700; line-height: .9; }
.next h3 { font-size: 26px; }
.next p { color: var(--cr-2); margin-top: 4px; }
.evals { list-style: none; padding: 0; margin: 26px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.evals li { background: var(--ob); padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.evals .n { font-family: var(--serif); font-size: 28px; }
.evals .d { font-size: 14px; color: var(--cr-2); }
.evals .tbc { font-size: 12px; color: var(--mu); }
.evals li.finale { background: var(--ob-3); }

/* debut */
.debut { padding-block: 72px; border-top: 1px solid var(--line); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.debut .count { font-size: clamp(64px, 12vw, 140px); font-weight: 700; line-height: 1; }
.debut h2 { font-size: clamp(26px, 3.4vw, 36px); }
.debut p { color: var(--cr-2); max-width: 44ch; }

footer { border-top: 1px solid var(--line); padding-block: 36px 48px; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; color: var(--mu); font-size: 14px; }
footer .mark { display: flex; align-items: center; gap: 18px; }
footer img { height: 40px; width: auto; display: block; }

/* evaluation page */
.evhead { padding-block: 40px 56px; display: flex; flex-direction: column; gap: 16px; }
.evhead .band { background: var(--bz); color: var(--ob); display: flex; align-items: center; gap: 22px; padding: 18px 26px; flex-wrap: wrap; }
.evhead .band .big { font-family: var(--serif); font-size: 84px; font-weight: 700; line-height: .9; }
.evhead .band b { font-size: 18px; letter-spacing: .1em; }
.evhead h1 { font-size: clamp(36px, 5vw, 56px); margin-top: 8px; }
.score { display: grid; grid-template-columns: minmax(0, 180px) minmax(0, 1fr) 90px; gap: 20px; align-items: center; padding-block: 16px; border-bottom: 1px solid var(--line); }
.score .bar { height: 14px; border: 2px solid var(--line-2); }
.score .bar.ice { border-color: var(--ice); }
.score .pts { text-align: right; font-weight: 600; color: var(--mu); }
.score .name { font-weight: 600; font-size: 19px; }

@media (max-width: 860px) {
  .hero { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 24px 56px; }
  section.block { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-block: 48px; }
  .pillars { grid-template-columns: minmax(0, 1fr); }
  .evals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .next { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .score { grid-template-columns: minmax(0, 1fr) 70px; }
  .score .bar { grid-column: 1 / -1; grid-row: 2; }
  .score > span:empty { display: none; }
  table { min-width: 0; }
  th, td { padding: 12px 8px; }
  td.t { white-space: normal; width: 34%; font-size: 15px; }
}
@media (prefers-reduced-motion: no-preference) { .status.live .dot { animation: none; } }

/* a pillar that is not scored this month: the note sits where the bar would */
.score .bar.note { border: 0; height: auto; color: var(--mu); font-size: 15px; }

/* Expanded site: the same Practice Room 01 system, shared across every page. */
*, *::before, *::after { box-sizing: border-box; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip { position:absolute; top:-100px; left:20px; background:var(--bz); color:var(--ob); padding:12px 20px; z-index:10; }
.skip:focus { top:8px; }
nav a[aria-current="page"] { color:var(--cr); text-decoration:underline; text-decoration-color:var(--bz); text-underline-offset:8px; }
.page-intro { padding:64px 0 72px; }
.page-intro h1 { font-size:clamp(48px,7vw,88px); line-height:1.04; max-width:15ch; margin-top:18px; }
.page-intro .lede { max-width:48ch; }
.prose { max-width:64ch; }
.prose p + p { margin-top:20px; }
.footer-links { display:flex; flex-wrap:wrap; gap:14px 24px; }
footer img { margin:20px; }
.evals li { padding:0; }
.event-card { display:flex; flex-direction:column; gap:6px; padding:22px 20px; min-height:200px; position:relative; text-decoration:none; }
.event-card:hover { background:var(--ob-3); }
.event-card .n { font-size:48px; }
.event-card .card-arrow { position:absolute; right:20px; top:24px; color:var(--bz); }
.event-card .d { max-width:16ch; }
.event-nav { display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px; padding:32px 0 48px; border-top:1px solid var(--line); }
.watch-panel { border:1px solid var(--line-2); background:var(--ob-2); padding:clamp(24px,5vw,56px); margin-bottom:64px; }
.watch-panel h2 { font-size:clamp(32px,4vw,48px); max-width:22ch; line-height:1.1; margin:28px 0 18px; }
.channel-pending { color:var(--cr-2); max-width:45ch; }
.schedule-top { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-bottom:64px; }
.notice { padding:24px; border-left:2px solid var(--bz); }
.notice h2 { margin:12px 0; font-size:30px; }
.facts { margin:0; display:grid; grid-template-columns:1fr 2fr; gap:0 24px; }
.facts dt,.facts dd { margin:0; padding:16px 0; border-bottom:1px solid var(--line); }
.facts dt { color:var(--mu); }
.spaced { margin-top:24px; }
blockquote { margin:0; border-left:2px solid var(--bz); padding-left:24px; font-family:var(--serif); font-size:24px; }
.score .bar { position:relative; }
.score .fill { display:block; height:100%; background:var(--bz); }
.score .ice .fill { background:var(--ice); }
.score .bar.note { margin:0; }
main { min-width:0; }
section { scroll-margin-top:24px; }
@media(max-width:860px) {
 .page-intro { padding:32px 0 48px; }
 .schedule-top { grid-template-columns:1fr; }
 .footer-links { width:100%; }
 .event-card { min-height:190px; padding:18px 16px; }
 .event-card .card-arrow { right:14px; }
 .facts { grid-template-columns:1fr 1.6fr; gap:0 16px; }
 .score .pts { grid-column:2; grid-row:1; }
}

/* Visual edition: original room illustration, rehearsal marks and editorial posters. */
.wrap { max-width:1280px; }
.top { padding-block:26px; border-bottom:1px solid var(--line); }
.plate { border:0; }
.plate .no { background:var(--cr); color:var(--ob); border:0; font-weight:bold; padding:12px 16px; }
.plate .name { padding-left:16px; }
.hero { grid-template-columns:1.05fr 1fr; align-items:center; gap:44px; padding:32px 0 44px; }
.hero-kicker { display:block; margin-top:27px; }
.hero h1 { font-size:clamp(68px,8.5vw,122px); letter-spacing:-.06em; line-height:.88; margin:18px 0 26px; }
.hero h1 em { font-weight:400; }
.title-period { color:var(--bz); }
.hero .lede { font-size:18px; max-width:34ch; line-height:1.65; }
.hero .status { padding:6px 0; border:0; font-size:11px; letter-spacing:.1em; }
.hero .dot { background:var(--bz); width:7px; height:7px; }
.hero .ctas { margin-top:25px; gap:10px; }
.hero .btn { font-size:14px; padding:13px 19px; }
.room-art { position:relative; margin:0; overflow:hidden; background:#17171B; isolation:isolate; }
.room-art > img { display:block; width:100%; height:auto; }
.room-top { position:absolute; top:25px; left:28px; right:28px; display:flex; justify-content:space-between; align-items:start; gap:15px; }
.room-top .micro { color:var(--cr-2); font-size:10px; }
.room-tag { max-width:110px; font-size:10px; text-transform:uppercase; font-weight:600; line-height:1.5; letter-spacing:.08em; text-align:right; }
.room-art figcaption { position:absolute; bottom:30px; left:28px; right:28px; display:flex; align-items:center; justify-content:space-between; }
.room-art figcaption > span { font-family:var(--serif); font-style:italic; font-size:36px; }
.room-art figcaption a { display:grid; place-items:center; width:52px; height:52px; border:1px solid var(--cr); text-decoration:none; font-size:28px; }
.room-art figcaption a:hover { color:var(--ob); background:var(--cr); }
.season-strip { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 0; border-block:1px solid var(--line-2); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.season-strip b { display:inline-block; margin-right:15px; color:var(--bz); }
.season-strip a { text-decoration:none; }
.home-today { display:grid; grid-template-columns:1.45fr 1fr; margin:32px 0 70px; border-bottom:1px solid var(--line); }
.home-today .today { display:grid; grid-template-columns:.9fr 1.1fr; border:0; background:none; }
.home-today .today .row { padding:22px 25px 30px 0; }
.home-today .today .row + .row { border-top:0; padding-left:24px; border-left:1px solid var(--line); }
.home-today .daynum { font-size:38px; letter-spacing:-.04em; margin:6px 0; }
.home-today .today .now { font-size:23px; }
.home-today .today .sub { font-size:12px; }
.room-invite { padding:22px 0 30px 35px; border-left:1px solid var(--line); text-decoration:none; display:flex; flex-direction:column; gap:12px; }
.room-invite strong { font-size:25px; font-family:var(--serif); line-height:1.2; }
.room-invite > span:last-child { font-size:12px; color:var(--cr-2); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:28px; }
.section-heading h2 { font-size:clamp(32px,4vw,49px); margin-top:12px; line-height:1.06; letter-spacing:-.03em; }
.section-heading p { font-size:14px; color:var(--mu); }
.inside-room { padding-bottom:72px; }
.chapter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.chapter { text-decoration:none; min-width:0; }
.chapter-art { height:290px; overflow:hidden; position:relative; }
.chapter-caption { padding:23px 0; border-bottom:1px solid var(--line-2); }
.chapter-caption .micro { font-size:10px; }
.chapter-caption h3 { font-size:25px; margin:9px 0; letter-spacing:-.025em; display:flex; justify-content:space-between; gap:10px; }
.chapter-caption h3 span { font-family:var(--sans); font-size:23px; color:var(--mu); }
.chapter-caption p { font-size:14px; color:var(--mu); max-width:32ch; }
.movement .chapter-art { background:var(--bz); color:var(--ob); }
.movement .chapter-art::after { content:''; position:absolute; inset:20px; border:1px solid #0a0a0c50; }
.count-eight { position:absolute; top:4px; left:28px; font-family:var(--serif); font-size:128px; font-weight:700; line-height:1; letter-spacing:-.07em; transform:rotate(-7deg); }
.floor-cross { position:absolute; right:22px; bottom:5px; font-size:100px; line-height:1; font-weight:300; }
.music .chapter-art { background:#141418; display:flex; flex-direction:column; justify-content:space-between; padding:24px; }
.music .chapter-art > .micro { font-size:9px; }
.music .chapter-art img { width:calc(100% + 48px); height:150px; object-fit:cover; margin-left:-24px; }
.track-label { font-family:var(--serif); font-size:28px; line-height:1.1; font-style:italic; }
.writing .chapter-art { background:#242428; padding:26px 38px 0; }
.book-sheet { background:var(--cr); color:var(--ob); padding:22px 24px; height:310px; transform:rotate(6deg); box-shadow:8px 8px 0 #0a0a0c66; display:flex; flex-direction:column; }
.book-sheet .micro { color:#55554D; font-size:8px; }
.book-title { font-family:var(--serif); font-size:70px; font-weight:bold; line-height:.93; letter-spacing:-.055em; margin:25px 0; }
.book-title em { font-weight:400; }
.book-line { border-top:2px solid var(--bz); padding-top:13px; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
section.block { padding-block:78px; }
section.block h2 { letter-spacing:-.035em; }
.pillars { counter-reset:pillar; }
.pillars > div { border-top:1px solid var(--line-2); padding-top:18px; }
.pillars > div::before { counter-increment:pillar; content:'0' counter(pillar); display:block; color:var(--bz); font-size:11px; letter-spacing:.12em; margin-bottom:20px; }
.next { background:var(--bz); color:var(--ob); border:0; padding:32px; position:relative; }
.next .micro,.next p { color:var(--ob); }
.next .big { font-size:105px; letter-spacing:-.07em; }
.next .btn { color:var(--ob); border-color:#0A0A0C80; }
.evals { gap:12px; background:transparent; border:0; }
.evals li { background:transparent; }
.event-card { border:1px solid var(--line-2); min-height:235px; overflow:hidden; background:linear-gradient(135deg,transparent 73%,#f5f5f009 73%,#f5f5f009 74%,transparent 74%,transparent 79%,#f5f5f009 79%,#f5f5f009 80%,transparent 80%); }
.event-card .n { font-size:80px; line-height:1.15; letter-spacing:-.07em; }
.event-card .micro { font-size:9px; }
.event-card .tbc { margin-top:auto; }
.event-card:hover { border-color:var(--bz); background-color:var(--ob-2); }
.debut { margin:30px 0 60px; padding:70px 24px; background:var(--cr); color:var(--ob); border:0; position:relative; overflow:hidden; }
.debut::before { content:'THE ROAD TO DEBUT'; position:absolute; left:-20px; right:-20px; top:40%; transform:rotate(-8deg); font-size:clamp(60px,10vw,150px); font-weight:700; letter-spacing:-.06em; white-space:nowrap; color:#0a0a0c08; pointer-events:none; }
.debut .count { font-family:var(--serif); font-weight:400; font-size:clamp(110px,15vw,190px); letter-spacing:-.08em; position:relative; }
.debut .micro,.debut p { color:#51514B; position:relative; }
.debut h2 { position:relative; }
.page-intro { position:relative; border-bottom:1px solid var(--line); margin-bottom:35px; }
.page-intro::after { content:'+'; position:absolute; right:10px; top:50px; font-size:80px; line-height:1; font-weight:300; color:var(--bz); }
.page-intro h1 { letter-spacing:-.055em; }
.evhead .band { min-height:210px; background:repeating-linear-gradient(135deg,transparent,transparent 50px,#0a0a0c0b 50px,#0a0a0c0b 51px),var(--bz); }
.evhead .band .big { font-size:160px; letter-spacing:-.07em; }
.watch-panel { position:relative; overflow:hidden; min-height:450px; padding-right:45%; }
.watch-panel > :not(.watch-room) { position:relative; }
.watch-room { position:absolute; right:0; top:0; width:40%; height:100%; object-fit:cover; opacity:.8; }
@media (prefers-reduced-motion:no-preference) {
 .chapter-art > *, .event-card, .btn { transition:transform .25s ease,background-color .25s ease,border-color .25s ease; }
 .chapter:hover .book-sheet { transform:rotate(2deg) translateY(-7px); }
 .chapter:hover .count-eight { transform:rotate(-3deg) scale(1.04); }
 .chapter:hover .track-label { transform:translateX(5px); }
}
@media(max-width:1000px) and (min-width:701px) {
 .hero { gap:28px; }
 .hero h1 { font-size:86px; }
 .hero .lede { font-size:16px; }
 .hero .btn { padding:11px; font-size:12px; }
 .chapter-art { height:240px; }
 .count-eight { font-size:110px; }
 .book-title { font-size:55px; }
 .writing .chapter-art { padding:25px 20px 0; }
 .home-today { grid-template-columns:1.6fr 1fr; }
}
@media(max-width:700px) {
 .top { padding-block:18px; gap:20px; }
 .top nav { width:100%; }
 .top nav ul { justify-content:space-between; gap:12px; }
 .top nav a { font-size:12px; }
 .hero { grid-template-columns:1fr; gap:30px; padding-top:25px; }
 .hero h1 { font-size:clamp(78px,18vw,118px); }
 .hero-kicker { margin-top:17px; font-size:10px; }
 .hero .lede { max-width:35ch; font-size:17px; }
 .room-art { max-height:520px; }
 .room-art > img { margin-top:-8%; }
 .room-top { top:20px; left:20px; right:20px; }
 .room-art figcaption { bottom:23px; left:20px; right:20px; }
 .season-strip { flex-wrap:wrap; gap:12px; font-size:10px; }
 .season-strip > span:nth-child(2) { display:none; }
 .home-today { grid-template-columns:1fr; margin:16px 0 45px; }
 .home-today .today { grid-template-columns:1fr 1fr; }
 .home-today .today .row { padding-right:14px; }
 .home-today .today .row + .row { padding-left:16px; }
 .home-today .daynum { font-size:30px; }
 .home-today .today .now { font-size:19px; }
 .room-invite { border-left:0; border-top:1px solid var(--line); padding:23px 0; }
 .room-invite strong { font-size:27px; }
 .section-heading { display:block; }
 .section-heading p { margin-top:20px; }
 .chapter-grid { grid-template-columns:1fr; gap:28px; }
 .chapter-art { height:290px; }
 .chapter-caption { padding-top:18px; }
 .writing .chapter-art { padding-inline:55px; }
 .inside-room { padding-bottom:40px; }
 section.block { padding-block:48px; }
 .next { padding:24px; }
 .next .big { font-size:88px; }
 .event-card { min-height:220px; padding:18px; }
 .event-card .n { font-size:66px; }
 .page-intro::after { font-size:40px; top:28px; right:0; }
 .page-intro h1 { max-width:90%; }
 .evhead .band { min-height:175px; gap:18px; }
 .evhead .band .big { font-size:110px; }
 .evhead .band b { font-size:13px; max-width:120px; }
 .watch-panel { padding:25px; padding-bottom:330px; }
 .watch-room { top:auto; bottom:0; width:100%; height:290px; object-position:center 48%; }
 .debut { margin-bottom:30px; }
}
/* Keep the main action in the opening desktop view. */
@media(min-width:701px) {
 .hero h1 { font-size:clamp(68px,7.5vw,108px); }
 .room-art { aspect-ratio:1.08; }
 .room-art > img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
}
@media(max-width:700px) {
 .hero { grid-template-columns:minmax(0,1fr); }
 .hero h1 { font-size:clamp(42px,18vw,118px); }
 .chapter-grid,.home-today { grid-template-columns:minmax(0,1fr); }
 .home-today .today { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .book-sheet { padding-inline:18px; }
 .book-title { font-size:clamp(44px,16vw,70px); }
 .room-tag { font-size:8px; }
}
/* Training log */
.log-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin:0 0 48px; }
.log-stats div { background:var(--ob-2); padding:20px 24px; }
.log-stats dd { margin:6px 0 0; font-size:clamp(36px,5vw,56px); font-weight:700; line-height:1; }
.log-list { display:flex; flex-direction:column; gap:20px; padding-bottom:64px; }
.log-entry { border:1px solid var(--line-2); background:var(--ob-2); display:grid; grid-template-columns:minmax(180px,220px) minmax(0,1fr); scroll-margin-top:24px; }
.log-entry > header { padding:22px 24px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:8px; }
.log-day { font-size:clamp(30px,3.6vw,44px); font-weight:700; line-height:1; letter-spacing:.01em; white-space:nowrap; }
.log-entry:target .log-day, .log-entry:first-child .log-day { color:var(--bz); }
.log-body { padding:22px 26px; display:flex; flex-direction:column; gap:16px; }
.log-tags { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.log-tags li { border:1px solid var(--line-2); padding:3px 10px; font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--cr-2); }
.log-line { font-family:var(--serif); font-size:clamp(21px,2.4vw,26px); line-height:1.35; margin:0; }
.log-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 28px; margin:0; }
.log-pair dd { margin:4px 0 0; color:var(--cr-2); }
.log-facts { display:flex; flex-wrap:wrap; gap:8px 24px; color:var(--mu); }
.log-facts b { color:var(--cr); }
.log-extra { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; }
.log-extra .btn { padding:10px 16px; font-size:15px; }
.log-song { color:var(--cr-2); }
.log-song .micro { margin-right:8px; }
.log-empty { border:1px dashed var(--line-2); padding:28px; display:flex; flex-direction:column; gap:12px; }
.log-empty p { color:var(--cr-2); max-width:52ch; margin:0; }
#log .ctas { margin-top:20px; }
@media(max-width:700px) {
 .log-stats { grid-template-columns:minmax(0,1fr); }
 .log-stats div { display:flex; justify-content:space-between; align-items:baseline; padding:14px 18px; }
 .log-stats dd { margin:0; font-size:32px; }
 .log-entry { grid-template-columns:minmax(0,1fr); }
 .log-entry > header { border-right:0; border-bottom:1px solid var(--line); flex-direction:row; align-items:baseline; justify-content:space-between; padding:16px 18px; }
 .log-body { padding:18px; }
 .log-pair { grid-template-columns:minmax(0,1fr); }
}

/* October 29 visual pass: clear routes, comfortable controls, compact event dates. */
.top nav a { display:inline-flex; align-items:center; min-height:44px; }
.top nav li:last-child a { background:var(--bz); color:var(--ob); padding:8px 16px; font-weight:700; }
.top nav ul { align-items:center; gap:8px 22px; }
.btn { min-height:44px; justify-content:center; }
.ctas .btn { text-align:center; }
footer img { margin:0; }
.footer-links a, .event-nav a { display:inline-flex; align-items:center; min-height:44px; }
.event-date { font:clamp(22px,3vw,32px)/1.3 var(--serif); color:var(--cr-2); }
.evhead h1 { line-height:1.06; }
.evhead .lede { margin-top:0; max-width:48ch; }
.evhead .ctas { margin-top:10px; }
.debut .count { font-size:clamp(64px,12vw,160px); letter-spacing:-.055em; max-width:100%; }
.page-intro .lede { line-height:1.55; }
.log-entry > header { flex-wrap:wrap; }
.log-body, .prose, .facts dd { overflow-wrap:anywhere; }
section.block .evals { grid-template-columns:repeat(3,minmax(0,1fr)); }
.next .btn { justify-self:start; }
@media(min-width:861px) {
 section.block .next { grid-template-columns:auto minmax(0,1fr); gap:16px 24px; }
 section.block .next .btn { grid-column:2; }
}
@media(max-width:700px) {
 .top { gap:16px; padding-block:18px; }
 .top nav ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
 .top nav a { justify-content:center; width:100%; font-size:12px; white-space:nowrap; }
 .top nav li:last-child a { padding:8px; }
 .top .plate .name { padding-right:0; }
 .evhead { padding-block:28px 36px; gap:14px; }
 .evhead .band { min-height:140px; }
 .evhead h1 { font-size:clamp(38px,10vw,56px); }
 .page-intro h1 { font-size:clamp(40px,11vw,64px); }
 .page-intro::after { display:none; }
 .page-intro h1 { max-width:100%; }
 .debut { padding:42px 18px; }
 .debut .count { font-size:clamp(52px,16vw,108px); }
 section.block .evals { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .event-card .n { line-height:1.1; }
 .event-card { min-height:200px; }
 .log-entry > header { gap:12px; }
 .log-entry > header .micro { max-width:18ch; }
 footer { gap:24px; }
 .footer-links { gap:4px 24px; }
}
@media(max-width:360px) {
 .top nav ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .top nav a { justify-content:flex-start; font-size:14px; }
 .top nav li:last-child a { justify-content:center; }
 .hero .ctas .btn { flex:1 1 auto; }
 .home-today .today { grid-template-columns:minmax(0,1fr); }
 .home-today .today .row + .row { padding-left:0; border-left:0; border-top:1px solid var(--line); }
}

.page-intro + section.block { border-top:0; padding-top:32px; }
/* Korean beside English (korean.json). Hangul reads best without the wide uppercase tracking. */
.ko { font-family: "Noto Sans KR", "Apple SD Gothic Neo", sans-serif; letter-spacing: .02em; text-transform: none; word-break: keep-all; }
.micro .ko { color: var(--cr-2); font-weight: 500; }
nav .ko { display: block; font-size: 11px; color: var(--mu); margin-top: 1px; }
.ko-title { font-family: "Noto Sans KR", sans-serif; font-size: clamp(20px, 2.6vw, 28px); color: var(--bz); margin: 10px 0 0; font-weight: 500; }
.what .ko, .score .name .ko { display: block; font-size: 14px; font-weight: 400; color: var(--mu); }
.log-tags .ko { color: var(--mu); margin-left: 4px; }
.daynum-ko { font-size: 20px; color: var(--bz); font-weight: 700; }
.top nav a { flex-direction:column; justify-content:center; line-height:1.2; }
.top nav li:last-child a .ko { color:var(--ob); opacity:.8; }
.top nav a[aria-current="page"] { text-decoration:none; }
.top nav a[aria-current="page"]::after { content:""; display:block; width:100%; height:2px; background:var(--bz); margin-top:5px; }
.evhead .band .ko { display:block; font-size:15px; letter-spacing:.04em; margin-top:4px; }

/* Angels list sign-up */
.nl { display:flex; flex-direction:column; gap:16px; max-width:560px; }
.nl p { color:var(--cr-2); }
.nl-age { display:flex; flex-direction:column; gap:10px; }
.nl-row { display:flex; gap:10px; flex-wrap:wrap; }
.nl-row select, .nl-row input { background:var(--ob-2); color:var(--cr); border:1px solid var(--line-2); padding:13px 12px; font:inherit; min-width:0; }
.nl-row input { width:110px; }
.nl-form { width:100%; border:0; background:transparent; }
