:root {
  --bg: #11110f;
  --bg-soft: #171714;
  --paper: #e8e3d8;
  --paper-dim: #bdb6a8;
  --ink: #181816;
  --gold: #b39a68;
  --burgundy: #651c2b;
  --line: rgba(232, 227, 216, .17);
  --line-dark: rgba(24, 24, 22, .15);
  --max: 1380px;
  --serif: 'Cormorant Garamond', 'Noto Serif KR', Georgia, serif;
  --sans: 'Manrope', 'Noto Sans KR', 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  --mono: 'IBM Plex Mono', 'Noto Sans KR', monospace;
  --ko-sans: 'Noto Sans KR', 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  --ko-serif: 'Noto Serif KR', 'Batang', serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--bg); color: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.65; word-break: keep-all; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input { font: inherit; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.intro { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 35%, #26241d 0, #121210 38%, #080808 100%); }
.intro::before { content: ''; position: absolute; inset: -20%; background: repeating-radial-gradient(ellipse at center, transparent 0 3px, rgba(255,255,255,.012) 4px 5px); animation: drift 18s linear infinite; }
.intro-noise { position: absolute; inset: 0; opacity: .025; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); mix-blend-mode: screen; }
.intro-inner { position: relative; z-index: 1; width: min(90vw, 760px); text-align: center; padding: 48px 24px; display: flex; flex-direction: column; align-items: center; }
.intro-crest { width: 168px; margin: 0 auto 28px; opacity: .98; filter: drop-shadow(0 14px 28px rgba(0,0,0,.42)); }
.intro-crest-large { width: clamp(240px, 34vw, 360px); margin-bottom: 28px; }
.eyebrow { margin: 0 0 18px; font: 13px/1.35 var(--mono); letter-spacing: .25em; color: var(--gold); }
.intro h1 { margin: 0; font: 400 clamp(38px, 7vw, 82px)/.92 var(--serif); letter-spacing: -.045em; }
.intro-subtitle { position: relative; display: inline-block; margin: 24px 0 42px; font: 14px/1 var(--mono); letter-spacing: .65em; color: #c9b07b; }
.intro-subtitle::before, .intro-subtitle::after { content: attr(data-glitch); position: absolute; inset: 0; opacity: 0; }
.intro-subtitle::before { color: #8baec7; transform: translateX(-2px); }
.intro-subtitle::after { color: #9b1d33; transform: translateX(2px); }
.intro-subtitle.glitch::before, .intro-subtitle.glitch::after { animation: flash .45s steps(2); }
.enter-button { display: block; margin: 0 auto; min-width: 210px; padding: 15px 22px; border: 1px solid rgba(232,227,216,.42); background: rgba(255,255,255,.03); letter-spacing: .17em; font-size: 13px; cursor: pointer; transition: .25s ease; }
.enter-button:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.sound-toggle { display: inline-flex; align-items: center; gap: 8px; font: 12px/1.35 var(--ko-sans); letter-spacing: .08em; color: #a49d91; cursor: pointer; }
.sound-toggle input { accent-color: var(--gold); }
.intro-sound { margin-top: 16px; }
.legal-copy { margin: 36px 0 0; font: 11px/1.6 var(--mono); letter-spacing: .08em; color: #777268; }

.site { min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 50; height: 128px; display: grid; grid-template-columns: 470px 1fr auto; align-items: center; padding: 0 34px; border-bottom: 1px solid var(--line); background: rgba(17,17,15,.94); backdrop-filter: blur(18px); }
.brand { display: flex; align-items: center; gap: 16px; min-width: 0; }
.brand-crest { width: 92px; height: auto; flex: 0 0 auto; }
.brand span { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.brand strong { font: 600 34px/1 var(--serif); letter-spacing: .02em; }
.brand small { font: 14px/1.25 var(--serif); letter-spacing: .015em; color: var(--paper-dim); }
.footer-brand { display: flex; align-items: center; gap: 14px; }
.footer-brand img { width: 54px; height: auto; opacity: .92; }
.footer-brand div { display: flex; flex-direction: column; gap: 3px; }
.main-nav { justify-self: center; display: flex; align-items: center; gap: clamp(18px, 2.8vw, 42px); }
.main-nav a { position: relative; font: 500 12px/1 var(--mono); letter-spacing: .12em; color: #bbb4a7; padding: 12px 0; }
.main-nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 5px; height: 1px; background: var(--gold); transition: right .25s; }
.main-nav a:hover, .main-nav a.active { color: var(--paper); }
.main-nav a:hover::after, .main-nav a.active::after { right: 0; }
.header-actions { justify-self: end; }
.icon-button { border: 0; background: transparent; font: 500 11px/1 var(--mono); letter-spacing: .12em; color: #aaa397; cursor: pointer; }
.menu-button { display: none; border: 0; background: transparent; width: 36px; height: 36px; padding: 8px; }
.menu-button span:not(.sr-only) { display: block; height: 1px; margin: 6px 0; background: var(--paper); }

#app { min-height: calc(100vh - 128px); outline: none; }
.page { animation: pageIn .42s ease both; }
.container { width: min(calc(100% - 52px), var(--max)); margin-inline: auto; }
.section { padding: 110px 0; }
.section-tight { padding: 70px 0; }
.section-label { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; font: 500 12px/1.3 var(--mono); letter-spacing: .18em; color: var(--gold); }
.section-label::before { content: ''; width: 34px; height: 1px; background: currentColor; }
.display { margin: 0; font: 400 clamp(52px, 8vw, 122px)/.88 var(--serif); letter-spacing: -.055em; }
.lead { max-width: 760px; margin: 24px 0 0; color: #bdb6aa; font: 19px/1.85 var(--ko-serif); }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 22px; border: 1px solid rgba(232,227,216,.32); background: transparent; font: 500 12px/1 var(--mono); letter-spacing: .12em; cursor: pointer; transition: .22s; }
.button:hover { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.button.primary { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.button.primary:hover { background: var(--gold); border-color: var(--gold); }

.hero { position: relative; min-height: calc(100vh - 128px); display: grid; align-items: end; overflow: hidden; }
.hero-media { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.72) saturate(.78); }
.hero-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,12,10,.86), rgba(12,12,10,.24) 58%, rgba(12,12,10,.08)), linear-gradient(0deg, rgba(12,12,10,.9), transparent 50%); }
.hero-content { position: relative; z-index: 2; width: min(calc(100% - 52px), var(--max)); margin: 0 auto; padding: 120px 0 80px; }
.hero-seal-wrap { margin: 0 0 30px; }
.hero-seal { width: clamp(200px, 19vw, 290px); filter: drop-shadow(0 14px 32px rgba(0,0,0,.34)); }
.hero h1 { max-width: 930px; margin: 0; font: 400 clamp(56px, 9.5vw, 154px)/.78 var(--serif); letter-spacing: -.07em; }
.hero h1 span { display: block; color: #c4a873; }
.hero-copy { max-width: 650px; margin: 34px 0 0; font: 16px/1.85 var(--ko-sans); color: #c4beb2; }
.hero-meta { display: flex; gap: 28px; margin-top: 45px; padding-top: 20px; border-top: 1px solid var(--line); font: 11px/1.4 var(--mono); letter-spacing: .15em; color: #9d9689; }
.hero-secret { position: absolute; right: 34px; bottom: 34px; font: 10px/1 var(--mono); color: rgba(255,255,255,.22); letter-spacing: .16em; writing-mode: vertical-rl; }

.split-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 7vw, 110px); align-items: center; }
.image-frame { position: relative; border: 1px solid var(--line); padding: 12px; }
.image-frame::before { content: '보관 사본'; position: absolute; right: 12px; top: -18px; font: 10px/1 var(--mono); letter-spacing: .12em; color: #827b70; }
.image-frame img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.stat-strip { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); }
.stat { padding: 32px; border-right: 1px solid var(--line); }
.stat:last-child { border-right: 0; }
.stat strong { display: block; margin-bottom: 8px; font: 34px/1 var(--serif); }
.stat span { font: 11px/1.45 var(--mono); letter-spacing: .12em; color: #978f82; }

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.feature-card { min-height: 290px; padding: 34px; background: var(--bg); display: flex; flex-direction: column; }
.feature-card .number { font: 11px/1 var(--mono); color: var(--gold); }
.feature-card h3 { margin: auto 0 18px; font: 35px/1 var(--serif); }
.feature-card p { margin: 0; color: #a9a296; line-height: 1.75; font-size: 15px; font-family: var(--ko-sans); }
.feature-card a { margin-top: 24px; font: 11px/1 var(--mono); letter-spacing: .12em; color: var(--paper); }

.paper-page { background: var(--paper); color: var(--ink); }
.paper-page .top-spacer { height: 1px; }
.paper-page .section-label { color: #785d2c; }
.paper-page .lead { color: #4a4640; }
.academy-hero { position: relative; min-height: 72vh; display: grid; align-items: end; overflow: hidden; }
.academy-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.15) contrast(.95); }
.academy-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(18,18,15,.78), transparent 65%); }
.academy-hero .container { position: relative; z-index: 1; padding-bottom: 58px; color: var(--paper); }
.academy-hero-copy { max-width: 1380px; }
.academy-hero-copy h1 { max-width: 780px; }
.academy-official-name { max-width: 760px; }
.academy-hero h1 { max-width: 900px; margin: 0; font: 400 clamp(52px, 8vw, 120px)/.84 var(--serif); letter-spacing: -.06em; }
.legacy-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 90px; }
.legacy-copy h2 { margin: 0; font: 400 clamp(48px, 6vw, 86px)/.95 var(--serif); letter-spacing: -.045em; }
.legacy-copy p { max-width: 720px; margin-top: 30px; font: 19px/1.9 var(--ko-serif); color: #4d4942; }
.facts { border-top: 1px solid var(--line-dark); }
.fact { display: flex; justify-content: space-between; gap: 30px; padding: 21px 0; border-bottom: 1px solid var(--line-dark); }
.fact span { font: 11px/1.45 var(--mono); letter-spacing: .12em; color: #706b62; }
.fact strong { font: 500 20px/1.3 var(--ko-serif); }
.campus-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 18px; }
.campus-grid img { width: 100%; height: 100%; object-fit: cover; }
.campus-grid .main-campus { min-height: 550px; }
.campus-stack { display: grid; gap: 18px; }
.campus-stack img { min-height: 266px; }
.partner-grid { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--line-dark); }
.partner { position: relative; min-height: 220px; padding: 38px; border-right: 1px solid var(--line-dark); overflow: hidden; }
.partner:last-child { border-right: 0; }
.partner h3 { margin: 35px 0 10px; font: 38px/1 var(--serif); }
.partner p { max-width: 460px; color: #58534c; line-height: 1.75; font-family: var(--ko-sans); font-size: 15px; }
.partner .secret { position: absolute; inset: auto 38px 25px; opacity: 0; transform: translateY(8px); transition: .25s; font: 11px/1.3 var(--ko-sans); letter-spacing: .08em; color: var(--burgundy); }
.partner:hover .secret { opacity: 1; transform: none; }

.students-header { padding: 100px 0 52px; border-bottom: 1px solid var(--line); }
.filters { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 34px; }
.filter { padding: 11px 15px; border: 1px solid var(--line); background: transparent; color: #aba397; font: 500 11px/1 var(--mono); letter-spacing: .1em; cursor: pointer; }
.filter.active, .filter:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.student-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border-inline: 1px solid var(--line); }
.student-card { position: relative; min-height: 620px; background: var(--bg); overflow: hidden; cursor: pointer; }
.student-card img { width: 100%; height: 440px; object-fit: cover; filter: grayscale(.15) saturate(.75); transition: .6s ease; }
.student-card:hover img { transform: scale(1.025); filter: grayscale(0) saturate(.9); }
.student-card-content { padding: 25px 26px 30px; }
.student-card .meta { display: flex; justify-content: space-between; gap: 20px; font: 10px/1.4 var(--mono); letter-spacing: .09em; color: #877f73; }
.student-card h2 { margin: 18px 0 7px; font: 40px/1 var(--serif); }
.student-card p { margin: 0; color: #a59e92; font-size: 15px; line-height: 1.6; font-family: var(--ko-sans); }
.student-card::after { content: '기록 보기'; position: absolute; right: 20px; bottom: 23px; font: 10px/1 var(--mono); letter-spacing: .12em; color: var(--gold); }

.profile-hero { position: relative; min-height: 690px; display: grid; grid-template-columns: 1.05fr .95fr; border-bottom: 1px solid var(--line); }
.profile-image { min-height: 690px; overflow: hidden; background: #1a1a18; }
.profile-image img { width: 100%; height: 100%; object-fit: cover; }
.profile-copy { padding: clamp(54px, 7vw, 110px); display: flex; flex-direction: column; justify-content: flex-end; }
.back-link { align-self: flex-start; margin-bottom: auto; font: 11px/1 var(--mono); letter-spacing: .12em; color: #aaa295; cursor: pointer; }
.profile-copy h1 { margin: 0; font: 400 clamp(62px, 8vw, 118px)/.82 var(--serif); letter-spacing: -.065em; }
.profile-copy .handle { margin-top: 16px; font: 12px/1 var(--mono); letter-spacing: .12em; color: var(--gold); }
.profile-copy blockquote { max-width: 600px; margin: 42px 0 0; font: 20px/1.75 var(--ko-serif); color: #cac4b9; }
.profile-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--line); overflow-x: auto; }
.profile-tabs button { flex: 1; min-width: 155px; padding: 22px 20px; border: 0; border-right: 1px solid var(--line); background: transparent; font: 500 11px/1 var(--mono); letter-spacing: .12em; cursor: pointer; }
.profile-tabs button.active { background: var(--paper); color: var(--ink); }
.profile-panel { padding: 90px 0; }
.record-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.record-card { border-top: 1px solid var(--line); padding-top: 24px; }
.record-card h3 { margin: 0 0 24px; font: 500 12px/1 var(--mono); letter-spacing: .16em; color: var(--gold); }
.record-card p { margin: 0; font: 23px/1.7 var(--ko-serif); color: #c7c1b6; }
.connections { border-top: 1px solid var(--line); }
.connection { display: grid; grid-template-columns: 260px 1fr; gap: 50px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.connection strong { font: 24px/1 var(--serif); }
.connection span { color: #aaa397; line-height: 1.7; font-family: var(--ko-sans); font-size: 15px; }

.social-shell { background: #e9e6df; color: #141414; min-height: calc(100vh - 92px); }
.social-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; padding: 70px 0 35px; border-bottom: 1px solid rgba(0,0,0,.14); }
.social-header h1 { margin: 0; font: 400 clamp(54px, 7vw, 96px)/.9 var(--serif); }
.profile-switcher { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.profile-switcher button { width: 42px; height: 42px; padding: 2px; border-radius: 50%; border: 1px solid rgba(0,0,0,.18); background: transparent; overflow: hidden; cursor: pointer; }
.profile-switcher img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.instagram { width: min(calc(100% - 40px), 980px); margin: 0 auto; padding-bottom: 80px; }
.ig-profile { display: grid; grid-template-columns: 160px 1fr; gap: 50px; padding: 54px 0 38px; align-items: center; }
.ig-avatar { width: 142px; height: 142px; border-radius: 50%; padding: 4px; border: 1px solid rgba(0,0,0,.18); }
.ig-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.ig-headline { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.ig-headline h2 { margin: 0; font: 600 28px/1.2 var(--sans); }
.ig-verified { width: 15px; height: 15px; display: inline-grid; place-items: center; border-radius: 50%; background: #3777b7; color: white; font-size:11px; }
.ig-follow { padding: 10px 17px; border: 0; border-radius: 4px; background: #111; color: white; font-weight: 700; cursor: pointer; }
.ig-stats { display: flex; gap: 34px; margin: 24px 0 18px; font-size: 15px; }
.ig-stats strong { margin-right: 5px; }
.ig-bio { font-size: 15px; line-height: 1.7; font-family: var(--ko-sans); }
.ig-tabs { display: flex; justify-content: center; gap: 55px; border-top: 1px solid rgba(0,0,0,.15); }
.ig-tabs span { padding: 18px 0; border-top: 1px solid #111; margin-top: -1px; font: 500 12px/1 var(--mono); letter-spacing: .12em; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.post { position: relative; aspect-ratio: 1; overflow: hidden; cursor: pointer; background: #c9c4ba; }
.post img { width: 100%; height: 100%; object-fit: cover; transition: .35s; }
.post:hover img { transform: scale(1.025); filter: brightness(.72); }
.post-overlay { position: absolute; inset: 0; display: grid; place-items: center; opacity: 0; transition: .25s; color: white; font-weight: 700; }
.post:hover .post-overlay { opacity: 1; }
.post.empty { display: grid; place-items: center; font: 12px/1.55 var(--mono); text-align: center; color: #716c64; }

.modal { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 24px; background: rgba(0,0,0,.82); }
.modal[hidden] { display: none; }
.modal-card { position: relative; width: min(1040px, 96vw); max-height: 90vh; display: grid; grid-template-columns: 1fr 430px; overflow: auto; background: #f0ede7; color: #111; box-shadow: 0 35px 100px rgba(0,0,0,.55); }
.modal-image { min-height: 620px; background: #222; }
.modal-image img { width: 100%; height: 100%; object-fit: cover; }
.modal-copy { padding: 28px; }
.modal-owner { display: flex; align-items: center; gap: 12px; padding-bottom: 17px; border-bottom: 1px solid rgba(0,0,0,.12); }
.modal-owner img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.modal-owner strong { font-size: 15px; }
.modal-caption { margin: 23px 0; font-size: 15px; line-height: 1.75; font-family: var(--ko-sans); }
.comments { border-top: 1px solid rgba(0,0,0,.12); }
.comment { padding: 14px 0; border-bottom: 1px solid rgba(0,0,0,.08); font-size: 14px; line-height: 1.6; font-family: var(--ko-sans); }
.comment strong { margin-right: 8px; }
.modal-footer { margin-top: 25px; font-size: 14px; }
.modal-footer small { display: block; margin-top: 8px; color: #74706a; font: 11px/1.3 var(--mono); }
.modal-close { position: fixed; top: 20px; right: 24px; z-index: 2; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(0,0,0,.45); color: white; cursor: pointer; }

.archive-page { background: #0b0d0f; min-height: calc(100vh - 92px); font-family: var(--mono); }
.archive-header { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; padding: 74px 0 38px; border-bottom: 1px solid rgba(130,154,166,.18); }
.archive-header h1 { margin: 0; font: 400 clamp(52px, 7vw, 96px)/.9 var(--serif); }
.archive-header p { max-width: 620px; margin: 20px 0 0; color: #89969c; font-size: 14px; line-height: 1.8; font-family: var(--ko-sans); }
.terminal-status { text-align: right; color: #6f8d75; font-size:11.5px; letter-spacing: .08em; }
.call-list { border-top: 1px solid rgba(130,154,166,.15); }
.call-row { display: grid; grid-template-columns: 110px 1fr 150px 190px 34px; gap: 20px; align-items: center; padding: 25px 0; border-bottom: 1px solid rgba(130,154,166,.15); cursor: pointer; transition: .2s; }
.call-row:hover { padding-inline: 14px; background: rgba(117,148,163,.06); }
.call-row .id { color: #b0c1c8; font-size: 12px; }
.call-row strong { font: 400 19px/1.2 var(--serif); }
.call-row span { color: #728087; font-size:11.5px; }
.call-row .status { color: #809f89; }
.call-row .arrow { font-size: 20px; color: #8297a1; }
.player-shell { display: grid; grid-template-columns: 420px 1fr; gap: 55px; padding: 58px 0 100px; }
.player-meta { border: 1px solid rgba(130,154,166,.2); padding: 28px; align-self: start; }
.player-meta .back { display: inline-block; margin-bottom: 35px; color: #91a2aa; font-size:11.5px; cursor: pointer; }
.player-meta h2 { margin: 0; font: 400 38px/1.08 var(--serif); }
.player-meta dl { margin: 36px 0 0; }
.player-meta dl div { display: flex; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid rgba(130,154,166,.15); font-size:11.5px; }
.player-meta dt { color: #68767c; }
.player-meta dd { margin: 0; color: #b3c1c7; }
.waveform { height: 160px; display: flex; align-items: center; gap: 3px; padding: 0 10px; border-block: 1px solid rgba(130,154,166,.16); overflow: hidden; }
.waveform i { display: block; flex: 1; min-width: 2px; height: var(--h); background: #6c8792; opacity: .65; transition: .2s; }
.waveform.playing i { animation: wave 1.1s ease-in-out infinite alternate; animation-delay: calc(var(--n) * -35ms); }
.audio-controls { display: flex; align-items: center; gap: 16px; padding: 24px 0; border-bottom: 1px solid rgba(130,154,166,.16); }
.audio-controls button { border: 1px solid rgba(130,154,166,.28); background: transparent; padding: 11px 14px; color: #b8c5cb; cursor: pointer; font-size:11.5px; }
.audio-controls .play { width: 48px; height: 48px; border-radius: 50%; }
.audio-controls input[type='range'] { flex: 1; accent-color: #839da8; }
.audio-time { min-width: 104px; text-align: right; color: #7a8990; font-size:11.5px; }
.transcript { margin-top: 38px; }
.transcript h3 { margin: 0 0 20px; font-size: 12px; letter-spacing: .12em; color: #71848d; }
.transcript-row { display: grid; grid-template-columns: 78px 126px 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid rgba(130,154,166,.12); font-size: 13px; line-height: 1.75; }
.transcript-row time { color: #56656c; }
.transcript-row strong { color: #8fa7b1; }
.transcript-row p { margin: 0; color: #b7c1c5; }
.redacted { display: inline-block; padding: 0 5px; background: #070808; color: #070808; transition: .3s; cursor: help; }
.redacted:hover { color: #c0c7ca; }
.file-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 60px; background: rgba(130,154,166,.15); border: 1px solid rgba(130,154,166,.15); }
.file-card { min-height: 210px; padding: 26px; background: #0b0d0f; display: flex; flex-direction: column; }
.file-card small { color: #64747b; font-size:11.5px; }
.file-card strong { margin: auto 0 15px; font: 400 22px/1.1 var(--serif); }
.file-card span { color: #7e9098; font-size:11.5px; }

.ever-page { background: #11100f; }
.poster-hero { position: relative; min-height: calc(100vh - 92px); display: grid; align-items: center; overflow: hidden; }
.poster-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .58; filter: saturate(.7); }
.poster-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,10,9,.9), rgba(10,10,9,.18)), linear-gradient(0deg, rgba(10,10,9,.85), transparent 60%); }
.poster-copy { position: relative; z-index: 1; width: min(calc(100% - 52px), var(--max)); margin: 0 auto; padding: 100px 0; }
.poster-copy .title { margin: 0; font: italic 400 clamp(78px, 14vw, 210px)/.72 var(--serif); letter-spacing: -.08em; }
.poster-copy .title span { display: block; margin-left: clamp(30px, 10vw, 160px); color: #c9ac75; }
.poster-copy p { max-width: 560px; margin: 42px 0 0; color: #c2bbb0; font: 17px/1.75 var(--serif); }
.media-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 20px; }
.video-placeholder { position: relative; min-height: 520px; display: grid; place-items: center; border: 1px solid var(--line); background: linear-gradient(135deg, #1d1b18, #0e0e0d); overflow: hidden; }
.video-placeholder::before { content: ''; position: absolute; inset: 0; background: url('../assets/images/post-limbo.svg') center/cover; opacity: .24; }
.play-large { position: relative; width: 95px; height: 95px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(0,0,0,.25); color: white; cursor: pointer; }
.play-large::after { content: ''; position: absolute; left: 40px; top: 33px; border-left: 19px solid currentColor; border-top: 14px solid transparent; border-bottom: 14px solid transparent; }
.album-card { border: 1px solid var(--line); padding: 24px; }
.album-card img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.album-card h3 { margin: 24px 0 8px; font: 38px/1 var(--serif); }
.album-card p { margin: 0; color: #9e978b; font: 12px/1.6 var(--mono); }
.track-controls { display: flex; gap: 12px; margin-top: 22px; }
.track-controls button { border: 1px solid var(--line); background: transparent; padding: 10px 14px; cursor: pointer; }
.credit-row { display: grid; grid-template-columns: 180px 1fr; gap: 30px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.credit-row span { font: 11px/1.3 var(--mono); color: #8f887c; }
.credit-row strong { font: 400 19px/1.2 var(--serif); }

.footer { min-height: 116px; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 30px 34px; border-top: 1px solid var(--line); background: #0d0d0c; }
.footer div:first-child { display: flex; flex-direction: column; gap: 7px; }
.footer strong { font: 14px/1 var(--serif); }
.footer span { font: 10px/1.35 var(--mono); letter-spacing: .1em; color: #756f65; }
.footer-status { font: 10px/1 var(--mono); letter-spacing: .1em; color: #778a79; }
.footer-status i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 8px; background: #6e956f; box-shadow: 0 0 12px #6e956f; }
.toast { position: fixed; left: 50%; bottom: 30px; z-index: 120; transform: translate(-50%, 20px); padding: 12px 16px; background: #e9e5dc; color: #151515; opacity: 0; pointer-events: none; transition: .25s; font: 11px/1.3 var(--ko-sans); letter-spacing: .04em; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@keyframes pageIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes drift { to { transform: translate3d(4%, -3%, 0) rotate(.5deg); } }
@keyframes flash { 0%,100% { opacity: 0; clip-path: inset(0); } 30% { opacity: .8; clip-path: inset(10% 0 58%); } 55% { opacity: .55; clip-path: inset(65% 0 5%); } }
@keyframes wave { to { transform: scaleY(.45); opacity: .35; } }

@media (max-width: 1080px) {
  .topbar { grid-template-columns: 1fr auto auto; padding: 0 22px; }
  .menu-button { display: block; justify-self: end; }
  .main-nav { position: fixed; inset: 104px 0 auto; display: none; padding: 26px; background: rgba(13,13,12,.98); border-bottom: 1px solid var(--line); flex-direction: column; align-items: flex-start; }
  .main-nav.open { display: flex; }
  .header-actions { margin-left: 10px; }
  .split-grid, .legacy-grid { grid-template-columns: 1fr; gap: 55px; }
  .student-grid { grid-template-columns: repeat(2, 1fr); }
  .profile-hero { grid-template-columns: 1fr; }
  .profile-image { min-height: 70vh; }
  .profile-copy { min-height: 530px; }
  .player-shell { grid-template-columns: 1fr; }
  .player-meta { width: 100%; }
  .media-grid { grid-template-columns: 1fr; }
  .file-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .container, .hero-content, .poster-copy { width: min(calc(100% - 30px), var(--max)); }
  .topbar { height: 68px; padding: 0 14px; }
  .brand-crest { width: 72px; }
  .brand strong { font-size: 26px; }
  .brand small { font-size: 12px; }
  
  
  .main-nav { inset: 96px 0 auto; }
  .icon-button { font-size:11px; }
  .section { padding: 76px 0; }
  .hero { min-height: calc(100vh - 72px); }
  .hero h1 { font-size: clamp(55px, 18vw, 90px); }
  .hero-meta { flex-direction: column; gap: 10px; }
  .stat-strip { grid-template-columns: 1fr; }
  .stat { border-right: 0; border-bottom: 1px solid var(--line); }
  .feature-grid { grid-template-columns: 1fr; }
  .campus-grid { grid-template-columns: 1fr; }
  .campus-grid .main-campus { min-height: 390px; }
  .campus-stack { grid-template-columns: 1fr 1fr; }
  .campus-stack img { min-height: 180px; }
  .partner-grid { grid-template-columns: 1fr; }
  .partner { border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .student-grid { grid-template-columns: 1fr; }
  .student-card { min-height: 570px; }
  .profile-image { min-height: 58vh; }
  .profile-copy { padding: 42px 24px; }
  .record-grid { grid-template-columns: 1fr; gap: 46px; }
  .connection { grid-template-columns: 1fr; gap: 10px; }
  .social-header { align-items: flex-start; flex-direction: column; }
  .profile-switcher { justify-content: flex-start; }
  .ig-profile { grid-template-columns: 92px 1fr; gap: 20px; }
  .ig-avatar { width: 88px; height: 88px; }
  .ig-stats { gap: 14px; font-size: 13px; }
  .post-grid { gap: 2px; }
  .modal-card { grid-template-columns: 1fr; }
  .modal-image { min-height: 52vh; }
  .call-row { grid-template-columns: 82px 1fr 30px; }
  .call-row > span:nth-of-type(1), .call-row .status { display: none; }
  .archive-header { grid-template-columns: 1fr; }
  .terminal-status { text-align: left; }
  .transcript-row { grid-template-columns: 58px 84px 1fr; gap: 10px; font-size: 12px; }
  .file-grid { grid-template-columns: 1fr; }
  .footer { align-items: flex-start; flex-direction: column; padding: 28px 16px; }
}

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

/* Korean typography and readability tuning */
html[lang="ko"] h1, html[lang="ko"] h2, html[lang="ko"] h3, html[lang="ko"] blockquote { word-break: keep-all; }
.main-nav a, .brand, .section-label, .button, .filter, .profile-tabs button { white-space: nowrap; }

@media (max-width: 1080px) {
  .main-nav a { font-size: 14px; padding: 10px 0; }
}

@media (max-width: 760px) {
  .topbar { height: 72px; }
  .main-nav { inset: 96px 0 auto; }
  .brand-crest { width: 76px; }
  .brand strong { font-size: 28px; }
  .brand small { font-size: 12px; }
  .hero-copy { font-size: 15px; }
  .legal-copy { font-size:11.5px; }
  .feature-card p, .student-card p, .ig-bio { font-size: 14px; }
}

/* v3 — 2024 timeline, expanded directory, and public character dossiers */
.main-nav a { font-size: 14px; letter-spacing: .13em; }
.icon-button { font-size:11.5px; }
.section-label { font-size: 12px; }

.display.compact { max-width: 900px; font-size: clamp(46px, 6vw, 82px); }
.section-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 44px; }
.record-code { flex: 0 0 auto; padding: 11px 14px; border: 1px solid var(--line); color: var(--gold); font: 11px/1 var(--mono); letter-spacing: .12em; }
.current-record-section { background: #0e0e0d; }
.timeline-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.timeline-grid article { position: relative; min-height: 310px; padding: 30px; background: #121210; overflow: hidden; }
.timeline-grid article > span { position: absolute; top: 18px; right: 22px; font: 400 72px/1 var(--serif); color: rgba(232,227,216,.07); }
.timeline-grid small { display: inline-block; color: var(--gold); font: 11px/1 var(--mono); letter-spacing: .14em; }
.timeline-grid h3 { margin: 72px 0 16px; font: 36px/.95 var(--serif); }
.timeline-grid p { margin: 0; color: #a9a295; font: 15px/1.8 var(--ko-sans); }
.timeline-grid .sealed::after { content: '기록 봉인됨'; position: absolute; left: 27px; bottom: 24px; color: #8f2b3c; font: 10px/1 var(--mono); letter-spacing: .16em; }

.power-grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line-dark); background: var(--line-dark); gap: 1px; }
.power-grid article { min-height: 290px; padding: 36px; background: var(--paper); }
.power-grid span { color: #80776a; font: 11px/1 var(--mono); letter-spacing: .13em; }
.power-grid h3 { margin: 70px 0 16px; font: 43px/1 var(--serif); }
.power-grid p { margin: 0; color: #555047; font: 15px/1.85 var(--ko-sans); }

.student-grid { grid-template-columns: repeat(4, 1fr); }
.student-card { min-height: 600px; }
.student-card img { height: 405px; }
.student-card .meta { font-size:11.5px; }
.student-card h2 { margin-bottom: 3px; font-size: 39px; }
.student-ko-name { display: block; margin-bottom: 13px; color: #81796d; font: 13px/1.4 var(--ko-sans); }
.student-mini-facts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; padding-right: 74px; }
.student-mini-facts span { padding: 6px 8px; border: 1px solid var(--line); color: #8e867a; font: 9px/1 var(--mono); letter-spacing: .08em; }
.student-card.filtered-out { display: none; }

.profile-ko-name { margin-top: 13px; color: #aaa397; font: 18px/1.4 var(--ko-sans); }
.profile-facts { display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid var(--line); background: var(--line); gap: 1px; }
.profile-facts > div { min-height: 124px; padding: 22px; background: var(--bg); display: flex; flex-direction: column; justify-content: space-between; }
.profile-facts span { color: #877f73; font: 10px/1 var(--mono); letter-spacing: .14em; }
.profile-facts strong { color: #ded8cc; font: 19px/1.3 var(--serif); font-weight: 500; }
.profile-overview { display: grid; grid-template-columns: 1.25fr .75fr; gap: 70px; margin-top: 88px; }
.profile-story h2 { margin: 0 0 28px; max-width: 760px; font: 400 clamp(46px, 6vw, 78px)/.92 var(--serif); letter-spacing: -.045em; }
.profile-story > p:last-child { margin: 0; max-width: 830px; color: #c9c2b7; font: 20px/1.95 var(--ko-serif); }
.profile-position { align-self: start; padding: 30px; border: 1px solid var(--line); border-top: 3px solid var(--profile-accent); }
.profile-position > span { display: block; margin-bottom: 26px; color: var(--gold); font: 10px/1 var(--mono); letter-spacing: .14em; }
.profile-position strong { display: block; margin-bottom: 22px; font: 32px/1.05 var(--serif); }
.profile-position p { margin: 0; color: #aaa397; font: 15px/1.9 var(--ko-sans); }
.profile-detail-grid { display: grid; grid-template-columns: 1.1fr .95fr .95fr; gap: 1px; margin-top: 70px; border: 1px solid var(--line); background: var(--line); }
.detail-card { min-height: 285px; padding: 30px; background: var(--bg); }
.detail-card h3 { margin: 0 0 32px; color: var(--gold); font: 11px/1 var(--mono); letter-spacing: .15em; }
.detail-card ul { margin: 0; padding: 0; list-style: none; }
.detail-card li { padding: 11px 0; border-bottom: 1px solid var(--line); color: #c4bdb1; font: 15px/1.55 var(--ko-sans); }
.tag-list { display: flex; flex-wrap: wrap; gap: 9px; }
.tag-list span { padding: 10px 12px; border: 1px solid var(--line); color: #c7c0b4; font: 11px/1 var(--mono); letter-spacing: .08em; }
.archive-note { margin-top: 52px; padding: 30px 34px; border-left: 3px solid var(--profile-accent); background: rgba(255,255,255,.025); }
.archive-note span { color: #91897c; font: 10px/1 var(--mono); letter-spacing: .14em; }
.archive-note p { margin: 16px 0 0; color: #c6bfb3; font: 17px/1.85 var(--ko-serif); }

.profile-switcher button { width: 48px; height: 48px; }
.transcript-row { transition: .25s ease; }
.transcript-row.active { padding-inline: 12px; background: rgba(124,154,167,.08); }
.transcript-row.active strong, .transcript-row.active p { color: #e0e8eb; }

@media (max-width: 1280px) {
  .student-grid { grid-template-columns: repeat(3, 1fr); }
  .profile-facts { grid-template-columns: repeat(3, 1fr); }
  .timeline-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1080px) {
  .student-grid { grid-template-columns: repeat(2, 1fr); }
  .power-grid { grid-template-columns: 1fr; }
  .profile-overview { grid-template-columns: 1fr; gap: 44px; }
  .profile-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .section-heading-row { align-items: flex-start; flex-direction: column; }
  .timeline-grid { grid-template-columns: 1fr; }
  .timeline-grid article { min-height: 260px; }
  .student-grid { grid-template-columns: 1fr; }
  .student-card img { height: 430px; }
  .profile-facts { grid-template-columns: repeat(2, 1fr); }
  .profile-facts > div { min-height: 110px; }
  .profile-story > p:last-child { font-size: 18px; }
  .profile-position { padding: 24px; }
}

/* v4 — final canon, academy maps, annual calendar, Korean signature lines */
.intro-school-sub { display: inline-block; margin-top: 10px; font: 500 clamp(12px, 1.6vw, 17px)/1 var(--mono); letter-spacing: .38em; color: var(--gold); }
.academy-official-name { max-width: 720px; margin: 26px 0 0; font: 500 13px/1.5 var(--mono); letter-spacing: .16em; color: #d6c8aa; }
.timeline-grid .timeline-link { cursor: pointer; transition: background .25s ease, transform .25s ease; }
.timeline-grid .timeline-link:hover { background: #181713; }
.timeline-grid .timeline-link i { position: absolute; left: 30px; bottom: 26px; color: var(--gold); font: 10px/1 var(--mono); letter-spacing: .13em; font-style: normal; }

.academy-page { --academy-ink: #171714; --academy-muted: #625d54; }
.academy-subnav { position: sticky; top: 92px; z-index: 20; display: flex; justify-content: center; overflow-x: auto; border-bottom: 1px solid var(--line-dark); background: rgba(232,227,216,.94); backdrop-filter: blur(14px); }
.academy-subnav button { flex: 0 0 auto; padding: 19px 25px; border: 0; border-right: 1px solid var(--line-dark); background: transparent; color: #514b43; font: 600 11px/1 var(--mono); letter-spacing: .12em; cursor: pointer; }
.academy-subnav button:first-child { border-left: 1px solid var(--line-dark); }
.academy-subnav button:hover { background: #d9d1c2; color: #171714; }
.academy-program-section { border-block: 1px solid var(--line-dark); background: #ddd6ca; }
.program-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.program-grid article { min-height: 150px; display: flex; flex-direction: column; justify-content: space-between; padding: 23px; background: var(--paper); }
.program-grid span { color: #9b8d73; font: 11px/1 var(--mono); }
.program-grid strong { font: 500 20px/1.45 var(--ko-serif); color: #24211d; }

.location-section { background: #d8d1c5; }
.location-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(44px, 7vw, 110px); align-items: center; }
.location-copy h2 { margin: 0; max-width: 680px; font: 400 clamp(48px, 6vw, 82px)/.92 var(--serif); letter-spacing: -.04em; }
.location-copy > p:not(.section-label) { max-width: 650px; margin: 28px 0 0; color: #4e4941; font: 17px/1.9 var(--ko-serif); }
.location-facts { margin: 40px 0 0; border-top: 1px solid var(--line-dark); }
.location-facts div { display: grid; grid-template-columns: 105px 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--line-dark); }
.location-facts dt { color: #81786a; font: 10px/1.4 var(--mono); letter-spacing: .12em; }
.location-facts dd { margin: 0; color: #25221e; font: 14px/1.6 var(--ko-sans); }
.region-map { position: relative; padding: 20px; border: 1px solid rgba(24,24,22,.22); background: #11110f; color: #e8e3d8; overflow: hidden; }
.region-map::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(120deg, rgba(255,255,255,.025), transparent 40%); }
.map-visual { position: relative; border: 1px solid rgba(232,227,216,.12); background: #0f0f0e; aspect-ratio: 16 / 9; overflow: hidden; }
.map-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.03) brightness(.95); }
.map-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.map-route { fill: none; stroke: rgba(239,225,188,.45); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 12 9; }
.map-route.major { stroke: #d4b06d; stroke-width: 4.5; stroke-dasharray: none; }
.map-route.muted { stroke: rgba(239,225,188,.24); stroke-width: 2.5; }
.map-node { fill: #e8d2a0; stroke: rgba(20,20,18,.75); stroke-width: 5; }
.map-node.campus { fill: #f4e2ba; filter: drop-shadow(0 0 18px rgba(212,176,109,.35)); }
.map-label-card { position: absolute; min-width: 160px; padding: 10px 12px; border: 1px solid rgba(239,225,188,.22); background: rgba(12,12,11,.74); backdrop-filter: blur(10px); box-shadow: 0 18px 30px rgba(0,0,0,.18); }
.map-label-card strong { display: block; color: #f4ead7; font: 600 11px/1.25 var(--mono); letter-spacing: .12em; }
.map-label-card span { display: block; margin-top: 6px; color: #a59880; font: 12px/1.45 var(--ko-sans); }
.map-label-card.campus { left: 34%; top: 14%; min-width: 210px; }
.map-label-card.beverly { left: 17%; top: 44%; }
.map-label-card.west-hollywood { left: 43%; top: 34%; }
.map-label-card.hollywood { left: 62%; top: 22%; }
.map-label-card.downtown { left: 72%; top: 58%; }
.map-route-legend { display: flex; flex-wrap: wrap; gap: 18px 30px; margin-top: 14px; color: #b5a991; font: 11px/1.4 var(--ko-sans); }
.map-route-legend span { display: inline-flex; align-items: center; gap: 10px; }
.map-route-legend .line { width: 34px; height: 0; border-top: 2px dashed rgba(239,225,188,.45); }
.map-route-legend .line.major { border-top-style: solid; border-top-color: #d4b06d; border-top-width: 3px; }
.map-disclaimer { margin-top: 10px; color: #817a70; font: 9px/1 var(--mono); letter-spacing: .13em; text-align: right; }

.campus-directory-section { background: var(--paper); }
.campus-directory { display: grid; grid-template-columns: 1.35fr .65fr; gap: 22px; }
.campus-blueprint { position: relative; min-height: 650px; border: 1px solid var(--line-dark); background: #10100f; overflow: hidden; }
.campus-blueprint::before { content: '세인트 쥬드 캠퍼스 · 항공 안내도'; position: absolute; left: 22px; top: 18px; z-index: 3; color: rgba(244,234,215,.78); font: 10px/1 var(--mono); letter-spacing: .13em; }
.campus-base { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.campus-blueprint::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,8,8,.08), rgba(8,8,8,.16)); pointer-events: none; }
.campus-overlay { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
.campus-road { fill: none; stroke: rgba(242,225,180,.42); stroke-width: 10; stroke-linecap: round; stroke-dasharray: 18 14; }
.campus-road.minor { stroke: rgba(242,225,180,.24); stroke-width: 7; }
.campus-ring { fill: rgba(255,255,255,.04); stroke: rgba(242,225,180,.56); stroke-width: 5; }
.campus-node { position: absolute; z-index: 2; display: flex; align-items: flex-start; gap: 9px; min-width: 160px; padding: 12px 14px; border: 1px solid rgba(242,225,180,.22); border-radius: 14px; background: rgba(12,12,11,.73); backdrop-filter: blur(10px); color: #f0e9dc; text-align: left; cursor: pointer; transition: .22s ease; box-shadow: 0 12px 30px rgba(0,0,0,.18); }
.campus-node b { width: 28px; min-width: 28px; height: 28px; display: grid; place-items: center; border-radius: 999px; background: rgba(212,176,109,.18); color: #f2d9a7; font: 600 11px/1 var(--mono); }
.campus-node span { display: block; padding-top: 2px; font: 600 11px/1.35 var(--mono); letter-spacing: .06em; }
.campus-node:hover, .campus-node.active { background: rgba(29,28,25,.94); border-color: rgba(242,225,180,.42); transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0,0,0,.28); }
.campus-node.active b, .campus-node:hover b { background: #d4b06d; color: #161512; }
.campus-node.glass-hall { left: 37%; top: 17%; }
.campus-node.studio-wing { left: 58%; top: 18%; }
.campus-node.red-room { left: 54%; top: 42%; }
.campus-node.west-field { left: 7%; top: 28%; }
.campus-node.locker-room { left: 17%; top: 48%; }
.campus-node.chapel-theater { left: 61%; top: 67%; }
.campus-node.rooftop-garden { left: 59%; top: 54%; }
.north-mark { position: absolute; z-index: 3; right: 24px; top: 20px; color: rgba(244,234,215,.8); font: 12px/1.25 var(--mono); text-align: center; }
.campus-detail { min-height: 650px; display: flex; flex-direction: column; justify-content: center; padding: 48px; border: 1px solid var(--line-dark); background: #191916; color: var(--paper); }
.campus-detail > span { color: var(--gold); font: 10px/1 var(--mono); letter-spacing: .14em; }
.campus-detail h3 { margin: 34px 0 24px; font: 400 clamp(42px, 5vw, 72px)/.9 var(--serif); }
.campus-detail p { margin: 0; color: #bcb4a7; font: 17px/1.9 var(--ko-serif); }
.campus-detail small { margin-top: 45px; color: #746e64; font: 9px/1.5 var(--mono); letter-spacing: .12em; }

.calendar-section { background: #171714; color: var(--paper); }
.calendar-section .section-label { color: var(--gold); }
.calendar-intro { max-width: 760px; margin: 24px 0 0; color: #9e978b; font: 15px/1.8 var(--ko-sans); }
.calendar-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.calendar-card { position: relative; min-height: 315px; padding: 28px; border: 0; background: #11110f; color: var(--paper); text-align: left; cursor: pointer; overflow: hidden; transition: .22s ease; }
.calendar-card:hover { background: #1c1b17; transform: translateY(-3px); z-index: 1; }
.calendar-number { position: absolute; right: 18px; top: 12px; color: rgba(232,227,216,.07); font: 400 74px/1 var(--serif); }
.calendar-card small { color: var(--gold); font: 500 11px/1 var(--mono); letter-spacing: .14em; }
.calendar-card h3 { max-width: 270px; margin: 72px 0 18px; font: 400 34px/.96 var(--serif); }
.calendar-card p { margin: 0; color: #aaa397; font: 14px/1.8 var(--ko-sans); }
.calendar-card i { position: absolute; left: 28px; right: 28px; bottom: 24px; padding-top: 15px; border-top: 1px solid var(--line); color: #847c70; font: 9px/1 var(--mono); font-style: normal; letter-spacing: .1em; }
.schedule-modal { color: #171714; }
.schedule-dialog { width: min(820px, 95vw); max-height: 90vh; overflow: auto; background: #eee9df; box-shadow: 0 40px 120px rgba(0,0,0,.55); }
.schedule-dialog header { padding: 48px 52px 42px; border-bottom: 1px solid var(--line-dark); background: #1b1b18; color: var(--paper); }
.schedule-dialog header > div { display: flex; justify-content: space-between; gap: 20px; color: var(--gold); font: 500 11px/1 var(--mono); letter-spacing: .13em; }
.schedule-dialog h2 { margin: 34px 0 18px; font: 400 clamp(48px, 7vw, 78px)/.9 var(--serif); }
.schedule-dialog header p { max-width: 640px; margin: 0; color: #b7b0a4; font: 16px/1.8 var(--ko-serif); }
.schedule-dialog-body { padding: 46px 52px 54px; }
.schedule-dialog-body > p { margin: 0; color: #3f3a34; font: 17px/1.9 var(--ko-serif); }
.schedule-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 38px 0; border: 1px solid var(--line-dark); background: var(--line-dark); }
.schedule-meta div { padding: 22px; background: #eee9df; }
.schedule-meta span, .schedule-program > span { display: block; margin-bottom: 11px; color: #83796a; font: 10px/1 var(--mono); letter-spacing: .12em; }
.schedule-meta strong { font: 500 15px/1.45 var(--sans); }
.schedule-program { padding-top: 32px; border-top: 1px solid var(--line-dark); }
.schedule-program ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 0; padding: 0; border: 1px solid var(--line-dark); background: var(--line-dark); list-style: none; }
.schedule-program li { padding: 16px 18px; background: #eee9df; color: #2d2924; font: 14px/1.5 var(--ko-sans); }

.signature-label { margin-top: 40px; color: var(--gold); font: 10px/1 var(--mono); letter-spacing: .14em; }
.profile-copy blockquote { margin-top: 17px; font-size: clamp(20px, 2vw, 27px); line-height: 1.65; }
.connection-section { padding-bottom: 0; }
.connection-direction-note { max-width: 900px; margin: 0 0 28px; padding: 18px 20px; border-left: 3px solid var(--profile-accent); background: rgba(255,255,255,.025); color: #aaa397; font: 14px/1.8 var(--ko-sans); }
.connection-direction-note strong { color: #ded8cd; }
.connections { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.connection { min-width: 0; min-height: 280px; display: flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 28px; border: 0; background: var(--bg); color: var(--paper); text-align: left; cursor: pointer; transition: .22s ease; }
.connection:hover { background: #1a1916; transform: translateY(-3px); }
.connection.static { cursor: default; }
.connection.static:hover { transform: none; }
.connection-direction { margin-bottom: 35px; color: var(--profile-accent); font: 600 11px/1.5 var(--ko-sans); }
.connection strong { font: 400 32px/1 var(--serif); }
.connection small { margin-top: 8px; color: #827a6e; font: 11px/1.4 var(--ko-sans); }
.connection p { margin: 25px 0 0; color: #aaa397; font: 15px/1.8 var(--ko-sans); }
.connection i { margin-top: auto; padding-top: 28px; color: #776f64; font: 9px/1 var(--mono); font-style: normal; letter-spacing: .1em; }

@media (max-width: 1240px) {
  .program-grid { grid-template-columns: repeat(3, 1fr); }
  .calendar-grid { grid-template-columns: repeat(3, 1fr); }
  .connections { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1080px) {
  .academy-subnav { top: 92px; justify-content: flex-start; }
  .location-grid, .campus-directory { grid-template-columns: 1fr; }
  .campus-detail { min-height: 390px; }
  .region-map { padding: 14px; }
  .calendar-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .intro-school-sub { letter-spacing: .22em; }
  .academy-subnav { top: 72px; }
  .academy-subnav button { padding: 16px 18px; font-size:11.5px; }
  .program-grid { grid-template-columns: repeat(2, 1fr); }
  .program-grid article { min-height: 125px; }
  .location-copy h2 { font-size: 50px; }
  .region-map { padding: 10px; }
  .map-label-card { min-width: 126px; padding: 8px 10px; }
  .map-label-card strong { font-size:11px; }
  .map-label-card span { font-size:11.5px; }
  .campus-blueprint { min-height: 570px; }
  .campus-node { min-width: 122px; padding: 8px 10px; }
  .campus-node b { width: 22px; min-width: 22px; height: 22px; font-size:11.5px; }
  .campus-node span { font-size:10.5px; }
  .campus-node.glass-hall { left: 31%; top: 16%; }
  .campus-node.studio-wing { left: 54%; top: 18%; }
  .campus-node.red-room { left: 50%; top: 42%; }
  .campus-node.west-field { left: 3%; top: 28%; }
  .campus-node.locker-room { left: 12%; top: 47%; }
  .campus-node.chapel-theater { left: 59%; top: 68%; }
  .campus-node.rooftop-garden { left: 54%; top: 54%; }
  .campus-detail { min-height: 340px; padding: 34px 26px; }
  .calendar-grid { grid-template-columns: 1fr; }
  .calendar-card { min-height: 280px; }
  .schedule-dialog header, .schedule-dialog-body { padding-left: 26px; padding-right: 26px; }
  .schedule-meta, .schedule-program ul { grid-template-columns: 1fr; }
  .connections { grid-template-columns: 1fr; }
  .connection { min-height: 250px; }
}
.connection span.connection-direction { margin-bottom: 35px; color: var(--profile-accent); font: 600 11px/1.5 var(--ko-sans); letter-spacing: 0; }


/* v5 — social network, HaloWire, global modal and copy cleanup */
body.modal-open { overflow: hidden; }
.modal { z-index: 1000; opacity: 0; transition: opacity .18s ease; }
.modal.visible { opacity: 1; }
.modal > *:not(.modal-close) { position: relative; z-index: 1; }
.modal-close { z-index: 1002; }
.schedule-dialog { position: relative; z-index: 1001; }

.social-titlebar { padding: 68px 0 32px; border-bottom: 1px solid rgba(0,0,0,.13); background: #e4e0d8; }
.social-titlebar-inner { display: flex; align-items: end; justify-content: space-between; gap: 36px; }
.social-titlebar h1 { margin: 0; font: 400 clamp(58px, 8vw, 110px)/.82 var(--serif); letter-spacing: -.055em; }
.social-view-tabs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.social-view-tabs button { padding: 13px 17px; border: 1px solid rgba(0,0,0,.18); background: transparent; color: #49443e; font: 600 10px/1 var(--mono); letter-spacing: .1em; cursor: pointer; }
.social-view-tabs button:hover, .social-view-tabs button.active { background: #161613; color: #eee8dd; border-color: #161613; }
.social-panel { animation: socialPanelIn .28s ease both; }
.social-panel[hidden] { display: none !important; }
@keyframes socialPanelIn { from { opacity: 0; transform: translateY(8px); } }
.social-header { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-top: 42px; padding-bottom: 26px; }
.social-header h2 { display: inline; margin: 0 12px 0 0; font: 400 35px/1 var(--serif); }
.social-header > div:first-child > span { color: #766f67; font: 13px/1 var(--ko-sans); }
.social-kicker { margin: 0 0 11px; color: #8b7755; font: 10px/1 var(--mono); letter-spacing: .13em; }
.profile-switcher button.active { border-color: #181816; box-shadow: 0 0 0 2px #181816; }
.story-row { display: flex; gap: 28px; padding: 26px 0 30px; border-top: 1px solid rgba(0,0,0,.12); }
.story-item { display: grid; justify-items: center; gap: 9px; }
.story-item > span { width: 70px; height: 70px; padding: 3px; border: 1px solid #9f8d6e; border-radius: 50%; }
.story-item img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; filter: grayscale(.6); }
.story-item small { font: 9px/1 var(--mono); letter-spacing: .08em; color: #635e57; }
.ig-tabs .active { color: #111; }

.halowire-shell { width: min(calc(100% - 38px), 1180px); margin: 54px auto 90px; border: 1px solid #292d31; background: #101215; color: #d8dee3; box-shadow: 0 35px 80px rgba(0,0,0,.2); }
.halowire-header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 27px 32px; border-bottom: 1px solid #292d31; background: #15181c; }
.halowire-header > div { display: flex; align-items: center; gap: 18px; }
.halo-symbol { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #748899; border-radius: 50%; color: #a8c3d7; font-size: 22px; }
.halowire-header p { margin: 0 0 5px; color: #70808c; font: 9px/1 var(--mono); letter-spacing: .14em; }
.halowire-header h2 { margin: 0; font: 500 28px/1 var(--sans); letter-spacing: -.03em; }
.halowire-header small { color: #65737e; font: 9px/1 var(--mono); letter-spacing: .12em; }
.halo-trends { display: flex; align-items: center; gap: 10px; padding: 15px 26px; overflow-x: auto; border-bottom: 1px solid #292d31; }
.halo-trends > span { margin-right: 8px; color: #91a2af; font: 9px/1 var(--mono); letter-spacing: .14em; }
.halo-trends button { flex: 0 0 auto; padding: 8px 11px; border: 1px solid #303842; border-radius: 999px; background: #181c21; color: #9fadb8; font: 11px/1 var(--sans); cursor: pointer; }
.halo-layout { display: grid; grid-template-columns: 1fr 260px; }
.halo-feed { border-right: 1px solid #292d31; }
.halo-card { padding: 28px 31px 22px; border-bottom: 1px solid #292d31; }
.halo-card:last-child { border-bottom: 0; }
.halo-meta { display: flex; align-items: center; gap: 12px; color: #697986; font: 10px/1 var(--mono); }
.halo-meta span { color: #b2c1cc; }
.halo-meta i { margin-left: auto; padding: 6px 8px; border: 1px solid #34404a; font-style: normal; }
.halo-card > p { margin: 22px 0; color: #d5dce1; font: 16px/1.8 var(--ko-sans); }
.halo-media { display: grid; place-items: center; min-height: 130px; margin: 20px 0; border: 1px solid #29313a; background: linear-gradient(135deg, #171b20, #111317); color: #52616c; font: 10px/1 var(--mono); letter-spacing: .12em; }
.halo-card footer { display: flex; gap: 22px; color: #687783; font: 10px/1 var(--mono); }
.halo-card footer button { padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.halo-card footer button.reacted { color: #a9c6d9; }
.halo-poll { display: grid; gap: 9px; margin: 21px 0; }
.halo-poll button { position: relative; display: flex; justify-content: space-between; padding: 15px 16px; overflow: hidden; border: 1px solid #34404a; background: #15191e; color: #b8c3cc; cursor: pointer; }
.halo-poll button i { position: absolute; inset: 0 auto 0 0; width: var(--poll); background: rgba(103,135,158,.12); pointer-events: none; }
.halo-poll button span, .halo-poll button strong { position: relative; z-index: 1; }
.halo-poll button.selected { border-color: #819aae; color: #dce9f2; }
.halo-sidebar { padding: 31px 26px; background: #121519; }
.halo-sidebar > span { color: #657580; font: 9px/1 var(--mono); letter-spacing: .13em; }
.halo-sidebar > strong { display: block; margin-top: 24px; font: 400 48px/1 var(--serif); color: #b5c5d0; }
.halo-sidebar > p { margin: 7px 0 35px; color: #62717c; font: 11px/1 var(--mono); }
.halo-sidebar > div { border-top: 1px solid #29313a; }
.halo-sidebar > div p { display: grid; grid-template-columns: 28px 1fr; gap: 10px; margin: 0; padding: 18px 0; border-bottom: 1px solid #29313a; color: #8c9aa5; font: 12px/1.6 var(--ko-sans); }
.halo-sidebar b { color: #53616b; font: 10px/1.7 var(--mono); }

.deleted-shell { padding-top: 72px; padding-bottom: 100px; }
.deleted-shell header { max-width: 780px; margin-bottom: 48px; }
.deleted-shell h2 { margin: 0; font: 400 clamp(50px, 7vw, 88px)/.9 var(--serif); }
.deleted-shell header > p:last-child { margin-top: 22px; color: #686159; font: 16px/1.8 var(--ko-sans); }
.deleted-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; border: 1px solid rgba(0,0,0,.16); background: rgba(0,0,0,.16); }
.deleted-card { min-height: 330px; display: flex; flex-direction: column; padding: 32px; background: #ded9cf; }
.deleted-status { display: flex; justify-content: space-between; gap: 16px; color: #8b7e6c; font: 9px/1 var(--mono); letter-spacing: .11em; }
.deleted-status strong { color: #771e2c; }
.deleted-card h3 { margin: 75px 0 20px; font: 400 37px/1 var(--serif); }
.deleted-card p { margin: 0; color: #504a43; font: 15px/1.8 var(--ko-sans); }
.deleted-card footer { display: flex; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 26px; border-top: 1px solid rgba(0,0,0,.12); color: #81796f; font: 9px/1 var(--mono); letter-spacing: .08em; }
.deleted-card footer i { color: #6d2934; font-style: normal; }

.connection-direction-note { background: transparent; padding: 0 0 18px; border-left: 0; border-bottom: 1px solid var(--line); }
.connection-direction { min-height: 38px; }

@media (max-width: 900px) {
  .social-titlebar-inner, .social-header { align-items: flex-start; flex-direction: column; }
  .social-view-tabs { justify-content: flex-start; }
  .halo-layout { grid-template-columns: 1fr; }
  .halo-feed { border-right: 0; }
  .halo-sidebar { border-top: 1px solid #292d31; }
}
@media (max-width: 680px) {
  .social-titlebar { padding-top: 48px; }
  .social-view-tabs { display: grid; grid-template-columns: 1fr; width: 100%; }
  .social-view-tabs button { width: 100%; }
  .story-row { gap: 14px; overflow-x: auto; }
  .story-item > span { width: 58px; height: 58px; }
  .halowire-header { align-items: flex-start; flex-direction: column; }
  .halo-card { padding-inline: 21px; }
  .halo-meta { flex-wrap: wrap; }
  .halo-meta i { margin-left: 0; }
  .deleted-grid { grid-template-columns: 1fr; }
  .deleted-card { min-height: 290px; }
}
.file-card.interactive { cursor: pointer; transition: .2s ease; }
.file-card.interactive:hover { border-color: rgba(136,170,188,.38); background: rgba(136,170,188,.045); transform: translateY(-2px); }

/* v6 — motion system, refined navigation and five-record audio archive */
.main-nav { counter-reset: navitem; }
.main-nav a { display: inline-flex; align-items: center; gap: 7px; }
.main-nav a::before { counter-increment: navitem; content: '0' counter(navitem); color: #6f695f; font-size:10.5px; letter-spacing: .04em; transform: translateY(-1px); transition: color .22s ease; }
.main-nav a:hover::before, .main-nav a.active::before { color: var(--gold); }
.topbar { transition: background .28s ease, border-color .28s ease; }
.button { position: relative; overflow: hidden; }
.button::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.14), transparent 80%); transform: translateX(-120%); transition: transform .52s ease; }
.button:hover::after { transform: translateX(120%); }
.hero-media img { transform: translate3d(var(--pointer-x, 0), var(--pointer-y, 0), 0) scale(1.025); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.hero-content { transform: translate3d(calc(var(--pointer-x, 0) * -.22), calc(var(--pointer-y, 0) * -.18), 0); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.hero-secret { animation: secretPulse 4.8s ease-in-out infinite; }
@keyframes secretPulse { 50% { color: rgba(255,255,255,.38); } }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease var(--reveal-delay, 0ms), transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.feature-card, .student-card, .calendar-card, .connection, .file-card { transition: transform .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.feature-card:hover, .student-card:hover { transform: translateY(-5px); box-shadow: 0 24px 55px rgba(0,0,0,.18); }

.archive-page { position: relative; isolation: isolate; }
.archive-page::before { content: ''; position: fixed; inset: 92px 0 0; z-index: -1; pointer-events: none; opacity: .035; background: repeating-linear-gradient(0deg, transparent 0 3px, #9ec1cf 4px); }
.archive-index-summary { display: grid; grid-template-columns: repeat(4, 1fr); margin: 30px 0 0; border: 1px solid rgba(130,154,166,.15); background: rgba(130,154,166,.15); gap: 1px; }
.archive-index-summary > div { min-height: 112px; padding: 22px 24px; background: #0b0d0f; display: flex; flex-direction: column; justify-content: space-between; }
.archive-index-summary span { color: #697980; font: 9px/1 var(--mono); letter-spacing: .14em; }
.archive-index-summary strong { color: #bccad0; font: 400 35px/1 var(--serif); }
.archive-toolbar { display: flex; flex-wrap: wrap; gap: 8px; padding: 28px 0 18px; }
.archive-toolbar button { padding: 10px 13px; border: 1px solid rgba(130,154,166,.23); background: transparent; color: #74828a; font: 500 9px/1 var(--mono); letter-spacing: .12em; cursor: pointer; }
.archive-toolbar button:hover, .archive-toolbar button.active { border-color: #8fa8b4; background: rgba(126,159,174,.1); color: #d5e0e5; }
.call-list { border-top: 1px solid rgba(130,154,166,.15); }
.call-row { grid-template-columns: 92px minmax(280px, 1fr) 74px 74px 170px 28px; min-height: 124px; padding: 20px 0; }
.call-row.filtered-out { display: none; }
.call-row:focus-visible { outline: 1px solid #8fa8b4; outline-offset: 4px; }
.call-title { min-width: 0; }
.call-title small { display: block; margin-bottom: 9px; color: #65747b; font: 9px/1 var(--mono); letter-spacing: .12em; }
.call-title strong { display: block; color: #d8e0e3; font: 400 24px/1.1 var(--ko-serif); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.call-title p { max-width: 680px; margin: 10px 0 0; color: #76848a; font: 12px/1.65 var(--ko-sans); }
.call-duration, .call-date { color: #84939a !important; font-size:11.5px !important; }
.call-row .status { font-size:11px; letter-spacing: .08em; }
.call-row .arrow { align-self: center; }

.player-summary { margin: 20px 0 0; color: #829098; font: 14px/1.8 var(--ko-sans); }
.waveform-header { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 12px; color: #64747b; font: 9px/1 var(--mono); letter-spacing: .1em; }
.waveform-header strong { color: #a8bbc4; font-weight: 500; }
.call-pagination { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 30px; border: 1px solid rgba(130,154,166,.15); background: rgba(130,154,166,.15); }
.call-pagination button { min-height: 112px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 12px; padding: 22px 24px; border: 0; background: #0b0d0f; color: #d5dde1; text-align: left; cursor: pointer; }
.call-pagination button:last-child { align-items: flex-end; text-align: right; }
.call-pagination button:hover { background: rgba(121,153,167,.08); }
.call-pagination span { color: #607078; font: 9px/1 var(--mono); letter-spacing: .12em; }
.call-pagination strong { font: 500 14px/1.55 var(--ko-sans); }
.transcript h3 { font-family: var(--ko-sans); letter-spacing: .08em; }
.transcript-row p { font-family: var(--ko-sans); }

@media (max-width: 1180px) {
  .call-row { grid-template-columns: 82px minmax(240px, 1fr) 70px 150px 28px; }
  .call-date { display: none; }
}
@media (max-width: 840px) {
  .archive-index-summary { grid-template-columns: repeat(2, 1fr); }
  .call-row { grid-template-columns: 72px 1fr 25px; min-height: 112px; }
  .call-duration, .call-date, .call-row .status { display: none; }
  .call-title strong { white-space: normal; font-size: 20px; }
  .call-title p { font-size:11.5px; }
  .call-pagination { grid-template-columns: 1fr; }
  .call-pagination button:last-child { align-items: flex-start; text-align: left; }
}
@media (max-width: 680px) {
  .main-nav a::before { font-size:11px; }
  .archive-index-summary > div { min-height: 96px; padding: 18px; }
  .call-row { grid-template-columns: 62px 1fr 20px; gap: 12px; }
  .call-row .id { font-size:11px; }
  .call-title small { font-size:10.5px; }
  .call-title p { display: none; }
  .waveform-header span:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 900px) {
  .hero-seal { width: 180px; }
  .footer-brand img { width: 44px; }
}
@media (max-width: 640px) {
  .intro-crest { width: 148px; margin-bottom: 24px; }
  .brand-crest { width: 62px; }
  .brand strong { font-size: 22px; }
  .brand small { font-size:11.5px; }
  .hero-seal { width: 150px; }
  }

@media (max-width: 1100px) {
  .topbar { height: 114px; grid-template-columns: 400px 1fr auto; }
  #app { min-height: calc(100vh - 114px); }
  .hero { min-height: calc(100vh - 114px); }
}
@media (max-width: 640px) {
  .topbar { height: 96px; grid-template-columns: 1fr auto auto; padding: 0 16px; }
  #app { min-height: calc(100vh - 96px); }
  .hero { min-height: calc(100vh - 96px); }
  .brand { gap: 10px; }
  .brand small { display: block; font-size:11.5px; }
}

/* v15 — recovered dialogue transcript presentation */
.transcript { margin-top: 34px; border-top: 1px solid rgba(130,154,166,.18); }
.transcript-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 26px 18px 18px; border-bottom: 1px solid rgba(130,154,166,.18); }
.transcript-heading h3 { margin: 0; color: #dbe3e6; font: 400 30px/1 var(--ko-serif); }
.transcript-heading span { color: #607078; font: 9px/1 var(--mono); letter-spacing: .16em; }
.transcript-row { position: relative; grid-template-columns: 54px 116px 1fr; gap: 22px; padding: 20px 18px; border-bottom: 1px solid rgba(130,154,166,.11); background: linear-gradient(90deg, rgba(124,154,167,.018), transparent 52%); }
.transcript-row::before { content: ''; position: absolute; left: 0; top: 18px; bottom: 18px; width: 2px; background: transparent; transition: .22s ease; }
.transcript-row time { color: #56666d; font: 500 10px/1.7 var(--mono); letter-spacing: .12em; }
.transcript-row strong { color: #9fb5be; font: 600 14px/1.7 var(--ko-sans); }
.transcript-row p { max-width: 780px; color: #c2cbd0; font: 15px/1.85 var(--ko-sans); }
.transcript-row.active { padding-inline: 22px 18px; background: linear-gradient(90deg, rgba(179,154,104,.12), rgba(124,154,167,.055) 42%, transparent); }
.transcript-row.active::before { background: #b39a68; }
.transcript-row.active time { color: #b39a68; }
.transcript-row.active strong, .transcript-row.active p { color: #edf2f3; }

@media (max-width: 760px) {
  .transcript-heading { align-items: flex-start; flex-direction: column; gap: 10px; padding-inline: 12px; }
  .transcript-heading h3 { font-size: 25px; }
  .transcript-row { grid-template-columns: 34px 72px 1fr; gap: 10px; padding: 16px 10px; }
  .transcript-row strong { font-size: 12px; }
  .transcript-row p { font-size: 13px; line-height: 1.75; }
}

/* v17 — transcript timing is synced to detected speech starts */
.transcript-row { cursor: pointer; }
.transcript-row:hover { background: linear-gradient(90deg, rgba(179,154,104,.07), rgba(124,154,167,.03) 46%, transparent); }
.transcript-row time { font-variant-numeric: tabular-nums; }
/* EVER YOURS / SAINT JUDE — V18 structural redesign
   Existing content data is preserved. This layer replaces the visual hierarchy and interaction shell. */
:root {
  --v18-ink:#10100f;
  --v18-soft:#191816;
  --v18-paper:#f0ede6;
  --v18-paper-2:#e6e0d5;
  --v18-gold:#a88d58;
  --v18-gold-pale:#c9b88f;
  --v18-line:rgba(168,141,88,.27);
  --v18-white:#f7f4ed;
  --v18-muted:#9b958b;
  --v18-serif:"Cormorant Garamond","Noto Serif KR",serif;
  --v18-sans:"Manrope","Noto Sans KR",sans-serif;
  --v18-mono:"IBM Plex Mono",monospace;
}
html { scroll-behavior:smooth; }
body { background:var(--v18-ink); color:var(--v18-white); }
body.modal-open { overflow:hidden; }
.site { background:var(--v18-ink); }
.page { overflow:clip; }
button, a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; }

/* intro */
.intro { background:#0c0c0b; }
.intro::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 38%,rgba(168,141,88,.09),transparent 32%),linear-gradient(180deg,transparent 55%,rgba(0,0,0,.42)); pointer-events:none; }
.intro-noise { opacity:.035; }
.intro-inner { gap:0; }
.intro-crest-large { width:clamp(250px,30vw,390px)!important; margin-bottom:18px!important; }
.intro .eyebrow { font:500 10px/1 var(--v18-mono); letter-spacing:.28em; color:var(--v18-gold-pale); margin:0 0 24px; }
.intro-subtitle { font:400 clamp(58px,8vw,112px)/.78 var(--v18-serif)!important; letter-spacing:-.055em!important; color:var(--v18-white); margin:0 0 38px!important; }
.enter-button { border:1px solid rgba(201,184,143,.45)!important; background:rgba(12,12,11,.48)!important; color:var(--v18-white)!important; padding:16px 24px!important; font:600 10px/1 var(--v18-sans)!important; letter-spacing:.22em!important; min-width:210px; transition:background .25s,border-color .25s,transform .25s!important; }
.enter-button:hover { background:var(--v18-gold)!important; border-color:var(--v18-gold)!important; color:#111!important; transform:translateY(-2px); }
.intro-sound { margin-top:22px; }
.legal-copy { margin-top:30px!important; font:9px/1.5 var(--v18-mono)!important; letter-spacing:.13em!important; color:#666159!important; }

/* persistent shell */
.topbar { height:92px!important; grid-template-columns:minmax(270px,390px) 1fr auto!important; padding:0 clamp(20px,3vw,46px)!important; background:rgba(14,14,13,.89)!important; border-color:rgba(255,255,255,.08)!important; backdrop-filter:blur(22px) saturate(125%)!important; }
.brand { gap:12px!important; width:max-content; color:var(--v18-white)!important; }
.brand-crest { width:58px!important; }
.brand strong { font:600 25px/.95 var(--v18-serif)!important; letter-spacing:-.015em!important; color:var(--v18-white)!important; }
.brand small { margin-top:5px; font:500 9px/1.1 var(--v18-sans)!important; letter-spacing:.08em!important; color:#777167!important; text-transform:uppercase; }
.main-nav { justify-content:center; gap:clamp(18px,2.5vw,40px)!important; }
.main-nav a { position:relative; padding:35px 0 32px!important; font:600 10px/1 var(--v18-sans)!important; letter-spacing:.16em!important; color:#969087!important; }
.main-nav a::after { content:""; position:absolute; left:50%; bottom:20px; width:0; height:1px; background:var(--v18-gold); transition:.25s; }
.main-nav a:hover,.main-nav a.active { color:var(--v18-white)!important; }
.main-nav a:hover::after,.main-nav a.active::after { width:100%; left:0; }
.icon-button { border:0!important; background:transparent!important; font:500 9px/1 var(--v18-mono)!important; letter-spacing:.12em; color:#767068!important; padding:10px 0!important; }
.scroll-progress { position:fixed; left:0; top:91px; width:100%; height:1px; z-index:60; pointer-events:none; background:transparent; }
.scroll-progress i { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left center; background:var(--v18-gold); }
#app { min-height:calc(100vh - 92px)!important; }
.footer { min-height:96px!important; padding:25px clamp(20px,3vw,46px)!important; background:#0b0b0a!important; border-color:rgba(255,255,255,.07)!important; }
.footer-brand img { width:40px!important; }
.footer strong { font:600 12px/1.15 var(--v18-serif)!important; letter-spacing:.02em; }
.footer span,.footer-status { font:8px/1.35 var(--v18-mono)!important; letter-spacing:.12em!important; }

/* generic v18 type */
.v18-kicker { margin:0; font:600 9px/1 var(--v18-sans); letter-spacing:.2em; text-transform:uppercase; color:var(--v18-gold-pale); }
.v18-kicker.dark { color:#766c5a; }
.v18-inline-link,.v18-text-link { border:0; background:none; padding:0; cursor:pointer; font:600 10px/1.4 var(--v18-sans); letter-spacing:.12em; text-transform:uppercase; }
.v18-inline-link span,.v18-text-link i { display:inline-block; margin-left:10px; font-style:normal; transition:transform .25s; }
.v18-inline-link:hover span,.v18-text-link:hover i { transform:translateX(5px); }
.v18-inline-link.light { color:var(--v18-white); }
.v18-section-head { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:44px; }
.v18-section-head h2 { margin:8px 0 0; font:500 clamp(42px,5.2vw,76px)/.92 var(--v18-serif); letter-spacing:-.045em; }
.v18-section-head > p { width:min(310px,35vw); margin:0; color:#7a746b; font:13px/1.7 var(--v18-sans); }

/* home: immersive entry */
.v18-home { background:var(--v18-paper); color:var(--v18-ink); }
.v18-hero { position:relative; height:calc(100svh - 92px); min-height:700px; background:#0c0c0b; color:var(--v18-white); }
.v18-hero-media { position:absolute; inset:0; overflow:hidden; }
.v18-hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 54%; transform:scale(1.02) translate3d(var(--pointer-x,0),var(--pointer-y,0),0); transition:transform .35s ease-out; }
.v18-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,7,6,.83) 0%,rgba(7,7,6,.38) 48%,rgba(7,7,6,.05) 75%),linear-gradient(0deg,rgba(6,6,5,.72),transparent 42%); }
.v18-hero-copy { position:absolute; z-index:2; left:clamp(24px,7vw,118px); bottom:clamp(74px,12vh,150px); width:min(830px,72vw); }
.v18-hero-copy h1 { margin:16px 0 12px; display:flex; flex-direction:column; font-family:var(--v18-serif); font-weight:500; letter-spacing:-.06em; }
.v18-hero-copy h1 span { font-size:clamp(78px,11.5vw,180px); line-height:.72; }
.v18-hero-copy h1 em { margin-left:5px; margin-top:22px; font-size:clamp(30px,3vw,52px); line-height:1; font-weight:400; font-style:italic; letter-spacing:-.025em; color:#ddd5c3; }
.v18-hero-copy > p:not(.v18-kicker) { margin:24px 0 0; font:500 10px/1.5 var(--v18-sans); letter-spacing:.11em; color:#c2bbb0; text-transform:uppercase; }
.v18-hero-actions { display:flex; gap:30px; margin-top:42px; }
.v18-text-link { color:#f4f0e8; }
.v18-text-link.muted { color:#aaa399; }
.v18-scroll-cue { position:absolute; z-index:2; right:clamp(24px,4vw,66px); bottom:42px; display:flex; flex-direction:column; align-items:center; gap:12px; border:0; background:none; cursor:pointer; color:#d1cabd; }
.v18-scroll-cue span { font:500 8px/1 var(--v18-mono); letter-spacing:.2em; writing-mode:vertical-rl; }
.v18-scroll-cue i { width:1px; height:46px; background:linear-gradient(var(--v18-gold),transparent); animation:v18Cue 1.8s ease-in-out infinite; }
@keyframes v18Cue { 0%,100%{transform:scaleY(.55);transform-origin:top;opacity:.4} 50%{transform:scaleY(1);opacity:1} }
.v18-manifesto { min-height:720px; display:grid; grid-template-columns:150px minmax(0,1.3fr) minmax(270px,.55fr); gap:clamp(32px,6vw,110px); align-items:center; padding:110px clamp(24px,7vw,118px); border-bottom:1px solid #d2ccc1; }
.v18-manifesto-index { align-self:start; padding-top:7px; font:500 9px/1 var(--v18-mono); letter-spacing:.12em; color:#8d867b; }
.v18-manifesto-copy h2 { max-width:920px; margin:18px 0 32px; font:500 clamp(56px,6.7vw,104px)/.9 var(--v18-serif); letter-spacing:-.055em; }
.v18-manifesto-copy > p:not(.v18-kicker) { max-width:660px; margin:0 0 34px; font:14px/1.9 var(--v18-sans); color:#5e5a53; word-break:keep-all; }
.v18-manifesto-facts { border-top:1px solid #bdb5a8; }
.v18-manifesto-facts div { padding:25px 0; border-bottom:1px solid #d0c9bd; }
.v18-manifesto-facts span { display:block; margin-bottom:7px; font:500 8px/1 var(--v18-mono); letter-spacing:.14em; color:#8c8374; }
.v18-manifesto-facts strong { font:500 24px/1 var(--v18-serif); }
.v18-featured { padding:120px clamp(24px,5vw,80px) 140px; background:#11110f; color:var(--v18-white); }
.v18-featured .v18-kicker.dark { color:#93876d; }
.v18-featured .v18-inline-link { color:#a9a297; }
.v18-feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.1); }
.v18-feature-person { position:relative; aspect-ratio:.72; overflow:hidden; border:0; padding:0; background:#171715; text-align:left; cursor:pointer; }
.v18-feature-person::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.05) 58%); }
.v18-feature-person img { width:100%; height:100%; object-fit:cover; filter:saturate(.82) contrast(1.02); transition:transform .55s cubic-bezier(.2,.65,.25,1),filter .35s; }
.v18-feature-person:hover img { transform:scale(1.035); filter:saturate(1); }
.v18-person-number { position:absolute; z-index:2; top:20px; left:20px; font:500 9px/1 var(--v18-mono); color:#bcb4a4; }
.v18-person-copy { position:absolute; z-index:2; left:22px; right:20px; bottom:24px; display:flex; flex-direction:column; }
.v18-person-copy small { font:600 8px/1 var(--v18-sans); letter-spacing:.18em; color:#b6a983; }
.v18-person-copy strong { margin-top:8px; font:500 clamp(28px,2.7vw,46px)/.9 var(--v18-serif); letter-spacing:-.04em; }
.v18-person-copy em { margin-top:8px; font:500 11px/1 var(--v18-sans); color:#9f9a92; font-style:normal; }
.v18-card-arrow { position:absolute; z-index:3; top:18px; right:20px; font:400 18px/1 var(--v18-serif); opacity:.5; transition:.25s; }
.v18-feature-person:hover .v18-card-arrow,.v18-student-card:hover .v18-card-arrow { opacity:1; transform:translate(3px,-3px); }
.v18-season { min-height:720px; display:grid; grid-template-columns:1.08fr .92fr; background:#171714; color:var(--v18-white); }
.v18-season-image { min-height:720px; overflow:hidden; }
.v18-season-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.04); }
.v18-season-copy { position:relative; display:flex; flex-direction:column; justify-content:center; padding:80px clamp(38px,7vw,110px); overflow:hidden; }
.v18-season-number { position:absolute; right:-15px; top:-22px; font:500 clamp(160px,20vw,320px)/1 var(--v18-serif); letter-spacing:-.08em; color:rgba(255,255,255,.035); }
.v18-season-copy h2 { margin:15px 0 28px; font:500 clamp(48px,5vw,78px)/.9 var(--v18-serif); letter-spacing:-.045em; }
.v18-season-copy > p:not(.v18-kicker) { max-width:540px; margin:0 0 34px; font:13px/1.8 var(--v18-sans); color:#aaa49b; }

/* student directory */
.v18-students { min-height:100vh; background:var(--v18-paper); color:var(--v18-ink); padding-bottom:110px; }
.v18-directory-head { display:grid; grid-template-columns:1fr minmax(280px,420px); gap:60px; align-items:end; padding:100px clamp(24px,6vw,98px) 58px; }
.v18-directory-head h1 { margin:14px 0 0; font:500 clamp(78px,10vw,160px)/.75 var(--v18-serif); letter-spacing:-.065em; }
.v18-directory-head > p { margin:0 0 8px; font:13px/1.8 var(--v18-sans); color:#625d55; word-break:keep-all; }
.v18-filter-bar { position:sticky; top:92px; z-index:20; display:flex; align-items:center; gap:0; padding:0 clamp(24px,6vw,98px); border-top:1px solid #cbc4b9; border-bottom:1px solid #cbc4b9; background:rgba(240,237,230,.9); backdrop-filter:blur(18px); }
.v18-filter { height:54px; border:0; border-right:1px solid #d1cac0; padding:0 20px; background:none; cursor:pointer; font:600 8px/1 var(--v18-sans); letter-spacing:.14em; color:#847d72; }
.v18-filter:first-child { border-left:1px solid #d1cac0; }
.v18-filter.active,.v18-filter:hover { color:#171613; background:#e5dfd4; }
.v18-directory-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:0 clamp(24px,4vw,65px); padding-top:60px; background:#c6beb1; }
.v18-student-card { position:relative; min-width:0; aspect-ratio:.69; background:#171715; color:var(--v18-white); cursor:pointer; overflow:hidden; transition:opacity .25s,transform .35s; }
.v18-student-card.filtered-out { display:none; }
.v18-student-photo { position:absolute; inset:0; }
.v18-student-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.94),rgba(0,0,0,.12) 58%,rgba(0,0,0,.25)); }
.v18-student-photo img { width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.65,.25,1); }
.v18-student-card:hover .v18-student-photo img { transform:scale(1.04); }
.v18-student-index { position:absolute; z-index:2; top:20px; left:20px; font:500 8px/1 var(--v18-mono); color:#bbb3a6; }
.v18-student-info { position:absolute; z-index:2; left:22px; right:22px; bottom:28px; }
.v18-student-info > span { font:600 8px/1 var(--v18-sans); letter-spacing:.16em; color:#c0ae81; }
.v18-student-info h2 { margin:8px 0 0; font:500 clamp(28px,2.5vw,44px)/.9 var(--v18-serif); letter-spacing:-.045em; }
.v18-student-info em { display:block; margin-top:7px; font:500 10px/1 var(--v18-sans); font-style:normal; color:#aaa49c; }
.v18-student-info p { margin:16px 0 0; max-width:260px; font:500 9px/1.5 var(--v18-sans); color:#8f8b84; }
.v18-student-peek { position:absolute; z-index:2; left:20px; right:20px; top:50px; display:flex; gap:9px; opacity:0; transform:translateY(-5px); transition:.3s; }
.v18-student-peek span { padding:6px 8px; border:1px solid rgba(255,255,255,.18); background:rgba(0,0,0,.24); backdrop-filter:blur(8px); font:500 7px/1 var(--v18-mono); }
.v18-student-card:hover .v18-student-peek { opacity:1; transform:none; }

/* profile becomes the private-life hub */
.v18-profile { background:var(--v18-paper); color:var(--v18-ink); }
.v18-profile-hero { min-height:calc(100svh - 92px); display:grid; grid-template-columns:minmax(0,1.08fr) minmax(480px,.92fr); }
.v18-profile-photo { position:relative; min-height:680px; background:#161513; overflow:hidden; }
.v18-profile-photo::after { content:""; position:absolute; inset:0; box-shadow:inset -80px 0 100px rgba(0,0,0,.15); pointer-events:none; }
.v18-profile-photo img { width:100%; height:100%; object-fit:cover; }
.v18-profile-photo-index { position:absolute; left:28px; bottom:24px; padding:9px 11px; background:rgba(12,12,11,.72); color:#d4cdbf; backdrop-filter:blur(8px); font:500 8px/1 var(--v18-mono); letter-spacing:.12em; }
.v18-profile-identity { position:relative; display:flex; flex-direction:column; justify-content:center; padding:80px clamp(38px,6vw,100px); border-bottom:1px solid #cdc6ba; }
.v18-back { position:absolute; top:34px; left:clamp(38px,6vw,100px); border:0; background:none; padding:0; color:#827a6e; cursor:pointer; font:600 8px/1 var(--v18-sans); letter-spacing:.15em; }
.v18-profile-identity h1 { margin:17px 0 0; font:500 clamp(72px,8vw,132px)/.72 var(--v18-serif); letter-spacing:-.07em; }
.v18-profile-ko { margin-top:22px; font:600 13px/1 var(--v18-sans); letter-spacing:.08em; color:#716b62; }
.v18-profile-identity blockquote { max-width:660px; margin:42px 0 0; padding:28px 0 0; border-top:1px solid #c4bcaf; font:400 clamp(24px,2.3vw,38px)/1.38 var(--v18-serif); color:#292722; }
.v18-trace-dock { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:54px; border:1px solid #c9c1b5; background:#c9c1b5; }
.v18-trace-dock button { min-width:0; display:grid; grid-template-columns:25px 1fr; grid-template-rows:auto auto; gap:4px 11px; align-items:center; padding:17px 15px; border:0; background:#ece8e0; cursor:pointer; text-align:left; transition:background .25s,color .25s; }
.v18-trace-dock button:hover { background:#151513; color:var(--v18-white); }
.v18-trace-dock svg { grid-row:1/3; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; }
.v18-trace-dock span { font:700 8px/1 var(--v18-sans); letter-spacing:.11em; }
.v18-trace-dock small { font:500 7px/1 var(--v18-mono); color:#8e877d; }
.v18-profile-facts { display:grid; grid-template-columns:repeat(6,1fr); border-bottom:1px solid #ccc5ba; background:#e8e3da; }
.v18-profile-facts div { min-width:0; padding:25px clamp(16px,2.3vw,36px); border-right:1px solid #ccc5ba; }
.v18-profile-facts span { display:block; margin-bottom:8px; font:600 7px/1 var(--v18-sans); letter-spacing:.15em; color:#8d8579; }
.v18-profile-facts strong { display:block; overflow:hidden; text-overflow:ellipsis; font:500 clamp(17px,1.7vw,26px)/1 var(--v18-serif); white-space:nowrap; }
.v18-profile-body { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.6fr); gap:clamp(60px,9vw,160px); padding:120px clamp(24px,8vw,135px); }
.v18-profile-story h2 { max-width:850px; margin:14px 0 36px; font:500 clamp(48px,5vw,78px)/.94 var(--v18-serif); letter-spacing:-.045em; }
.v18-profile-story > p:last-child { max-width:800px; margin:0; font:14px/2 var(--v18-sans); color:#5f5a52; word-break:keep-all; }
.v18-profile-side { align-self:end; padding-top:25px; border-top:1px solid #bfb7aa; }
.v18-profile-side > span { font:600 7px/1 var(--v18-sans); letter-spacing:.15em; color:#8a8174; }
.v18-profile-side strong { display:block; margin:14px 0 20px; font:500 29px/1.05 var(--v18-serif); }
.v18-profile-side p { margin:0; font:12px/1.85 var(--v18-sans); color:#69635a; }
.v18-profile-preferences { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #cbc3b6; border-bottom:1px solid #cbc3b6; }
.v18-profile-preferences div { padding:34px clamp(24px,4vw,64px); border-right:1px solid #cbc3b6; }
.v18-profile-preferences div:last-child { border-right:0; }
.v18-profile-preferences span { font:600 7px/1 var(--v18-sans); letter-spacing:.16em; color:#8f8576; }
.v18-profile-preferences p { margin:12px 0 0; font:500 13px/1.8 var(--v18-sans); color:#4c4842; }
.v18-connections { padding:120px clamp(24px,7vw,118px); }
.v18-connection-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#c8c0b4; border:1px solid #c8c0b4; }
.v18-connection-grid .connection { min-height:280px; display:flex!important; flex-direction:column!important; align-items:flex-start!important; justify-content:flex-end!important; gap:0!important; padding:30px!important; border:0!important; background:#ece8df!important; color:#171613!important; text-align:left!important; cursor:pointer; }
.v18-connection-grid .connection:hover { background:#171613!important; color:#f1ede5!important; }
.v18-connection-grid .connection-direction { order:0; font:600 7px/1.4 var(--v18-sans)!important; letter-spacing:.1em; color:#958b7b!important; }
.v18-connection-grid .connection strong { order:1; margin-top:18px; font:500 31px/1 var(--v18-serif)!important; }
.v18-connection-grid .connection small { order:2; margin-top:5px; font:500 10px/1 var(--v18-sans)!important; color:#817a71; }
.v18-connection-grid .connection p { order:3; margin:24px 0 0!important; font:12px/1.8 var(--v18-sans)!important; color:#5e5952!important; }
.v18-connection-grid .connection:hover p { color:#a9a39a!important; }
.v18-connection-grid .connection i { order:4; margin-top:25px; font:600 7px/1 var(--v18-sans)!important; letter-spacing:.12em; color:#86795f!important; }
.v18-private-note { padding:0 clamp(24px,7vw,118px) 130px; }
.v18-private-note details { border-top:1px solid #bfb7aa; border-bottom:1px solid #bfb7aa; }
.v18-private-note summary { list-style:none; display:grid; grid-template-columns:150px 1fr auto; align-items:center; gap:20px; padding:28px 0; cursor:pointer; }
.v18-private-note summary::-webkit-details-marker { display:none; }
.v18-private-note summary span { font:600 8px/1 var(--v18-sans); letter-spacing:.15em; color:#8d8373; }
.v18-private-note summary strong { font:500 18px/1 var(--v18-serif); }
.v18-private-note summary i { font:400 23px/1 var(--v18-serif); font-style:normal; transition:transform .25s; }
.v18-private-note details[open] summary i { transform:rotate(45deg); }
.v18-private-note details > p { max-width:780px; margin:0 0 34px 170px; font:13px/1.9 var(--v18-sans); color:#5f5a52; }

/* Instagram modal: an app inside the character record */
.modal.v18-social-modal,.modal.v18-post-overlay,.modal.v18-halo-overlay,.modal.v18-audio-overlay { background:rgba(8,8,7,.82)!important; backdrop-filter:blur(14px); padding:clamp(18px,4vw,60px)!important; }
.modal.v18-social-modal .modal-close,.modal.v18-post-overlay .modal-close,.modal.v18-halo-overlay .modal-close,.modal.v18-audio-overlay .modal-close { position:fixed!important; top:22px!important; right:28px!important; z-index:210; width:38px!important; height:38px!important; border:1px solid rgba(255,255,255,.17)!important; border-radius:50%!important; background:rgba(10,10,9,.58)!important; color:white!important; font-size:22px!important; }
.v18-instagram { width:min(940px,94vw); max-height:88vh; overflow:auto; background:#fff; color:#111; box-shadow:0 45px 120px rgba(0,0,0,.5); border-radius:3px; }
.v18-ig-top { height:58px; display:flex; justify-content:space-between; align-items:center; padding:0 24px; border-bottom:1px solid #e5e5e5; }
.v18-ig-top strong { font:600 28px/1 var(--v18-serif); font-style:italic; }
.v18-ig-top span { font:600 8px/1 var(--v18-mono); letter-spacing:.12em; color:#929292; }
.v18-ig-profile { display:grid; grid-template-columns:110px 1fr auto; gap:26px; align-items:center; padding:34px 46px 26px; }
.v18-ig-profile > img { width:100px; height:100px; object-fit:cover; border-radius:50%; border:1px solid #d7d7d7; padding:3px; }
.v18-ig-handle { display:flex; align-items:center; gap:8px; }
.v18-ig-handle strong { font:500 20px/1 var(--v18-sans); }
.v18-ig-handle i { display:grid; place-items:center; width:15px; height:15px; border-radius:50%; background:#2397ef; color:white; font:700 9px/1 var(--v18-sans); font-style:normal; }
.v18-ig-profile p { margin:13px 0 0; font:12px/1.55 var(--v18-sans); color:#333; }
.v18-ig-stats { display:flex; gap:24px; }
.v18-ig-stats span { display:flex; flex-direction:column; gap:4px; font:10px/1 var(--v18-sans); color:#777; }
.v18-ig-stats strong { font:600 14px/1 var(--v18-sans); color:#111; }
.v18-ig-stories { display:flex; gap:20px; padding:8px 46px 28px; overflow:auto; }
.v18-ig-stories > span { display:flex; flex-direction:column; align-items:center; gap:7px; }
.v18-ig-stories i { display:block; width:54px; height:54px; padding:2px; border:1px solid #d8d8d8; border-radius:50%; }
.v18-ig-stories img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.v18-ig-stories small { font:600 7px/1 var(--v18-sans); letter-spacing:.07em; }
.v18-ig-tabs { height:46px; display:flex; justify-content:center; gap:55px; align-items:center; border-top:1px solid #e4e4e4; }
.v18-ig-tabs strong,.v18-ig-tabs span { font:600 8px/1 var(--v18-sans); letter-spacing:.14em; }
.v18-ig-tabs span { color:#aaa; }
.v18-ig-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.v18-ig-grid button { position:relative; aspect-ratio:1; border:0; padding:0; overflow:hidden; background:#ddd; cursor:pointer; }
.v18-ig-grid img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.v18-ig-grid .v18-grid-meta { position:absolute; inset:0; display:grid; place-items:center; opacity:0; background:rgba(0,0,0,.45); color:white; font:600 12px/1 var(--v18-sans); transition:.25s; }
.v18-ig-grid button:hover .v18-grid-meta { opacity:1; }
.v18-ig-grid button:hover img { transform:scale(1.025); }
.v18-post-view { width:min(1120px,94vw); height:min(760px,88vh); display:grid; grid-template-columns:minmax(0,1.16fr) minmax(330px,.68fr); overflow:hidden; background:#fff; color:#111; }
.v18-post-image { display:grid; place-items:center; min-width:0; background:#090909; }
.v18-post-image img { width:100%; height:100%; object-fit:contain; }
.v18-post-side { min-width:0; display:grid; grid-template-rows:62px auto 1fr auto; }
.v18-post-side > header { display:flex; align-items:center; gap:11px; padding:0 18px; border-bottom:1px solid #e6e6e6; }
.v18-post-side > header img { width:34px; height:34px; object-fit:cover; border-radius:50%; }
.v18-post-side > header strong { font:600 11px/1 var(--v18-sans); }
.v18-post-side > header span { margin-left:auto; }
.v18-ig-back { border:0; background:none; cursor:pointer; font-size:18px; padding:0 2px; }
.v18-post-caption { display:grid; grid-template-columns:95px 1fr; gap:8px; padding:20px; border-bottom:1px solid #ededed; }
.v18-post-caption strong { font:600 10px/1.6 var(--v18-sans); }
.v18-post-caption p { margin:0; font:11px/1.6 var(--v18-sans); }
.v18-comments { overflow:auto; padding:5px 20px 20px; }
.v18-comment { display:grid; grid-template-columns:100px 1fr; gap:8px; padding:13px 0; }
.v18-comment strong,.v18-comment button { align-self:start; border:0; background:none; padding:0; text-align:left; cursor:pointer; font:600 10px/1.5 var(--v18-sans); color:#111; }
.v18-comment button:hover { text-decoration:underline; }
.v18-comment p { margin:0; font:11px/1.5 var(--v18-sans); color:#333; }
.v18-post-side > footer { padding:15px 20px 18px; border-top:1px solid #e5e5e5; }
.v18-post-side > footer div { display:flex; gap:14px; font-size:22px; }
.v18-post-side > footer div i { margin-left:auto; font-style:normal; }
.v18-post-side > footer > strong { display:block; margin-top:12px; font:600 10px/1 var(--v18-sans); }
.v18-post-side > footer > small { display:block; margin-top:9px; font:500 7px/1 var(--v18-sans); color:#999; }

/* HaloWire modal */
.v18-halo-modal { width:min(860px,94vw); max-height:88vh; overflow:auto; background:#101419; color:#dce4e8; border:1px solid #27323a; box-shadow:0 45px 120px rgba(0,0,0,.6); }
.v18-halo-modal > header { display:flex; justify-content:space-between; align-items:center; padding:24px 28px; border-bottom:1px solid #29343b; background:#121920; }
.v18-halo-modal > header > div { display:flex; align-items:center; gap:14px; }
.v18-halo-modal svg { width:34px; height:34px; fill:none; stroke:#91d4dd; stroke-width:1.2; }
.v18-halo-modal header span { display:flex; flex-direction:column; gap:4px; }
.v18-halo-modal header small { font:500 7px/1 var(--v18-mono); letter-spacing:.12em; color:#6f8d96; }
.v18-halo-modal header strong { font:600 25px/1 var(--v18-sans); letter-spacing:-.03em; }
.v18-halo-modal header > i { font:500 7px/1 var(--v18-mono); letter-spacing:.12em; color:#70838b; font-style:normal; }
.v18-halo-subject { display:flex; justify-content:space-between; padding:18px 28px; border-bottom:1px solid #253038; }
.v18-halo-subject span { font:500 7px/1 var(--v18-mono); letter-spacing:.12em; color:#6c8088; }
.v18-halo-subject strong { font:600 10px/1 var(--v18-sans); }
.v18-halo-list article { padding:28px; border-bottom:1px solid #263139; }
.v18-halo-meta { display:flex; align-items:center; gap:12px; }
.v18-halo-meta span { font:600 10px/1 var(--v18-sans); color:#9bd5dc; }
.v18-halo-meta time,.v18-halo-meta i { font:500 7px/1 var(--v18-mono); color:#64777f; font-style:normal; }
.v18-halo-meta i { margin-left:auto; }
.v18-halo-list article > p { margin:16px 0 18px; font:13px/1.7 var(--v18-sans); color:#d7e0e3; }
.v18-halo-list footer { font:500 8px/1 var(--v18-mono); color:#61747c; }
.v18-mini-poll { display:grid; gap:6px; margin:0 0 18px; }
.v18-mini-poll > span { position:relative; display:grid; grid-template-columns:1fr auto; padding:10px 12px; overflow:hidden; border:1px solid #2d3b43; }
.v18-mini-poll > span > i { position:absolute; inset:0 auto 0 0; width:var(--w); background:rgba(106,190,201,.09); }
.v18-mini-poll b,.v18-mini-poll em { position:relative; z-index:1; font:500 9px/1 var(--v18-sans); font-style:normal; }

/* character audio discovery */
.v18-audio-modal { width:min(720px,94vw); max-height:88vh; overflow:auto; background:#10100f; color:#f0ede6; border:1px solid #35312b; }
.v18-audio-modal > header { padding:38px 36px 30px; border-bottom:1px solid #302d28; }
.v18-audio-modal header span { font:500 8px/1 var(--v18-mono); letter-spacing:.15em; color:#84765b; }
.v18-audio-modal h2 { margin:12px 0 10px; font:500 52px/.9 var(--v18-serif); }
.v18-audio-modal header p { margin:0; font:11px/1.6 var(--v18-sans); color:#827d75; }
.v18-audio-modal > div { display:grid; }
.v18-audio-modal > div button { display:grid; grid-template-columns:86px 1fr auto 24px; gap:14px; align-items:center; padding:24px 34px; border:0; border-bottom:1px solid #2d2a26; background:none; cursor:pointer; text-align:left; }
.v18-audio-modal > div button:hover { background:#191815; }
.v18-audio-modal button > span { font:500 8px/1 var(--v18-mono); color:#84765b; }
.v18-audio-modal button > strong { font:500 19px/1.1 var(--v18-serif); }
.v18-audio-modal button > small { font:500 7px/1.3 var(--v18-mono); color:#716c64; }
.v18-audio-modal button > i { font-style:normal; color:#b8a477; }

/* academy: maintain official face but make it contemporary */
body[data-theme="paper"] { background:var(--v18-paper); color:var(--v18-ink); }
.academy-page { background:var(--v18-paper)!important; color:var(--v18-ink)!important; }
.academy-hero { min-height:calc(100svh - 92px)!important; }
.academy-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(9,9,8,.72),transparent 55%); }
.academy-hero-copy { z-index:2; padding-bottom:70px!important; }
.academy-hero-copy h1 { max-width:970px; margin:12px 0 18px!important; font:500 clamp(68px,8vw,126px)/.8 var(--v18-serif)!important; letter-spacing:-.06em!important; color:white!important; }
.academy-official-name { font:500 9px/1.5 var(--v18-sans)!important; letter-spacing:.1em!important; color:#cbc4b7!important; text-transform:uppercase; }
.academy-subnav { position:sticky!important; top:92px!important; z-index:20!important; height:54px!important; padding:0 clamp(24px,6vw,98px)!important; background:rgba(240,237,230,.92)!important; backdrop-filter:blur(16px); border-color:#cbc4b9!important; }
.academy-subnav button { padding:0 20px!important; font:600 8px/1 var(--v18-sans)!important; letter-spacing:.13em!important; color:#756e64!important; }
.paper-page .section-label { color:#8d816a!important; }
.paper-page .display,.legacy-copy h2,.location-copy h2 { font-family:var(--v18-serif)!important; letter-spacing:-.045em!important; }
.paper-page .section { padding:110px 0!important; }
.paper-page p { word-break:keep-all; }
.map-disclaimer,.secret { display:none!important; }
.calendar-intro { color:#6d675f!important; }

/* archive: one dedicated doorway instead of a menu sprawl */
.archive-page { min-height:100vh; background:#0e0f0f!important; color:#e6e8e5!important; }
.archive-header { padding-top:86px!important; border-bottom-color:#303331!important; }
.archive-header h1 { font:500 clamp(72px,8vw,126px)/.78 var(--v18-serif)!important; letter-spacing:-.055em!important; }
.archive-header p { color:#818782!important; }
.archive-index-summary,.archive-toolbar,.call-row { border-color:#2e322f!important; }
.call-row { transition:background .2s,transform .2s!important; }
.call-row:hover { background:#151815!important; transform:translateX(4px); }
.v18-archive-foot { margin:70px 0 30px; padding:28px 0; border-top:1px solid #303330; border-bottom:1px solid #303330; }
.v18-archive-foot > span { font:500 8px/1 var(--v18-mono); letter-spacing:.14em; color:#6e756f; }
.v18-archive-foot p { margin:11px 0 20px; font:12px/1.6 var(--v18-sans); color:#8b918c; }
.v18-archive-foot .v18-inline-link { color:#c7c9c5; }
.player-shell { padding-top:70px!important; }
.transcript-row { cursor:pointer; }

/* motion */
.reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease var(--reveal-delay,0ms),transform .75s cubic-bezier(.2,.65,.25,1) var(--reveal-delay,0ms); }
.reveal.is-visible { opacity:1; transform:none; }

/* modal base rescue from legacy CSS */
.modal[hidden] { display:none!important; }
.modal.visible { display:grid!important; place-items:center; }
.modal { position:fixed!important; inset:0!important; z-index:200!important; }
.modal > .modal-close { cursor:pointer; }

@media (max-width:1180px) {
  .topbar { grid-template-columns:300px 1fr auto!important; }
  .brand strong { font-size:22px!important; }
  .brand small { display:none; }
  .main-nav { gap:20px!important; }
  .v18-feature-grid,.v18-directory-grid { grid-template-columns:repeat(2,1fr); }
  .v18-profile-hero { grid-template-columns:1fr 1fr; }
  .v18-profile-facts { grid-template-columns:repeat(3,1fr); }
  .v18-profile-facts div:nth-child(3) { border-right:0; }
  .v18-profile-facts div:nth-child(-n+3) { border-bottom:1px solid #ccc5ba; }
}

@media (max-width:900px) {
  .topbar { height:78px!important; grid-template-columns:1fr auto auto!important; }
  .brand-crest { width:46px!important; }
  .brand strong { font-size:20px!important; }
  .scroll-progress { top:77px; }
  #app { min-height:calc(100vh - 78px)!important; }
  .main-nav { inset:78px 0 auto!important; padding:24px!important; background:rgba(12,12,11,.98)!important; }
  .main-nav a { padding:11px 0!important; font-size:11.5px!important; }
  .v18-hero { height:calc(100svh - 78px); min-height:620px; }
  .v18-hero-copy { width:calc(100% - 48px); left:24px; bottom:90px; }
  .v18-hero-copy h1 span { font-size:clamp(70px,17vw,130px); }
  .v18-manifesto { grid-template-columns:1fr; min-height:auto; gap:35px; padding:90px 28px; }
  .v18-manifesto-index { display:none; }
  .v18-manifesto-facts { display:grid; grid-template-columns:repeat(3,1fr); }
  .v18-manifesto-facts div { padding:18px 12px; border-right:1px solid #d0c9bd; }
  .v18-manifesto-facts strong { font-size:18px; }
  .v18-season { grid-template-columns:1fr; }
  .v18-season-image { min-height:440px; }
  .v18-season-copy { min-height:520px; }
  .v18-directory-head { grid-template-columns:1fr; padding-top:75px; }
  .v18-filter-bar { top:78px; overflow:auto; padding:0 20px; }
  .v18-directory-grid { margin:0 20px; }
  .v18-profile-hero { grid-template-columns:1fr; }
  .v18-profile-photo { min-height:68svh; }
  .v18-profile-identity { min-height:620px; }
  .v18-profile-body { grid-template-columns:1fr; gap:60px; padding:90px 28px; }
  .v18-profile-preferences { grid-template-columns:1fr; }
  .v18-profile-preferences div { border-right:0; border-bottom:1px solid #cbc3b6; }
  .v18-profile-preferences div:last-child { border-bottom:0; }
  .v18-connection-grid { grid-template-columns:1fr; }
  .v18-post-view { height:90vh; grid-template-columns:1fr; grid-template-rows:minmax(280px,55%) 1fr; overflow:auto; }
  .v18-post-side { min-height:430px; }
  .academy-subnav { top:78px!important; overflow:auto; }
}

@media (max-width:640px) {
  .topbar { height:72px!important; padding:0 14px!important; }
  .brand { gap:8px!important; }
  .brand-crest { width:42px!important; }
  .brand strong { font-size:17px!important; }
  .header-actions { display:none; }
  .main-nav { inset:72px 0 auto!important; }
  .scroll-progress { top:71px; }
  .v18-hero { height:calc(100svh - 72px); min-height:580px; }
  .v18-hero-shade { background:linear-gradient(0deg,rgba(7,7,6,.88) 0%,rgba(7,7,6,.2) 80%); }
  .v18-hero-copy { bottom:76px; }
  .v18-hero-copy h1 span { font-size:clamp(64px,20vw,100px); }
  .v18-hero-copy h1 em { margin-top:14px; font-size:27px; }
  .v18-hero-actions { flex-direction:column; align-items:flex-start; gap:18px; margin-top:30px; }
  .v18-scroll-cue { right:15px; bottom:24px; }
  .v18-manifesto-copy h2 { font-size:clamp(48px,14vw,72px); }
  .v18-manifesto-facts { grid-template-columns:1fr; }
  .v18-manifesto-facts div { border-right:0; }
  .v18-featured { padding:82px 14px 90px; }
  .v18-section-head { align-items:flex-start; flex-direction:column; gap:18px; }
  .v18-section-head > p { width:auto; }
  .v18-feature-grid,.v18-directory-grid { grid-template-columns:1fr; }
  .v18-feature-person,.v18-student-card { aspect-ratio:.78; }
  .v18-directory-head { padding:70px 18px 40px; gap:30px; }
  .v18-directory-head h1 { font-size:clamp(68px,20vw,100px); }
  .v18-directory-grid { margin:0 14px; padding-top:35px; }
  .v18-filter { padding:0 14px; flex:0 0 auto; }
  .v18-profile-photo { min-height:60svh; }
  .v18-profile-identity { min-height:590px; padding:82px 24px 50px; }
  .v18-back { left:24px; top:27px; }
  .v18-profile-identity h1 { font-size:clamp(64px,19vw,100px); }
  .v18-trace-dock { grid-template-columns:1fr; }
  .v18-trace-dock button { grid-template-columns:25px 1fr auto; grid-template-rows:1fr; }
  .v18-trace-dock svg { grid-row:auto; }
  .v18-profile-facts { grid-template-columns:repeat(2,1fr); }
  .v18-profile-facts div { border-bottom:1px solid #ccc5ba!important; }
  .v18-profile-facts div:nth-child(even) { border-right:0; }
  .v18-profile-facts div:nth-last-child(-n+2) { border-bottom:0!important; }
  .v18-connections { padding:85px 18px; }
  .v18-private-note { padding:0 18px 90px; }
  .v18-private-note summary { grid-template-columns:1fr auto; }
  .v18-private-note summary span { grid-column:1/-1; }
  .v18-private-note details > p { margin-left:0; }
  .v18-instagram { width:100%; max-height:92vh; }
  .v18-ig-profile { grid-template-columns:76px 1fr; padding:25px 18px 20px; gap:16px; }
  .v18-ig-profile > img { width:70px; height:70px; }
  .v18-ig-stats { grid-column:1/-1; justify-content:space-around; padding-top:14px; border-top:1px solid #eee; }
  .v18-ig-stories { padding:6px 18px 22px; }
  .v18-post-view { width:100%; height:92vh; }
  .v18-halo-modal,.v18-audio-modal { width:100%; max-height:92vh; }
  .v18-halo-modal > header { align-items:flex-start; }
  .v18-halo-modal header > i { display:none; }
  .v18-audio-modal > div button { grid-template-columns:70px 1fr 18px; padding:20px; }
  .v18-audio-modal button > small { display:none; }
  .academy-subnav { top:72px!important; padding:0 12px!important; }
}


/* v19 visual grounding */
.v18-manifesto { grid-template-columns: 110px minmax(0,1.15fr) minmax(230px,.42fr) minmax(280px,.62fr); }
.v18-manifesto-visual { min-height: 420px; border-radius: 24px; overflow: hidden; border:1px solid #d8d1c4; box-shadow: 0 26px 60px rgba(18,16,13,.08); }
.v18-manifesto-visual img { width:100%; height:100%; object-fit:cover; }
.v18-atmosphere { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:0 clamp(24px,5vw,80px) 120px; }
.v18-atmosphere-card { background:#f5f1e9; border:1px solid #ddd4c6; border-radius:24px; overflow:hidden; box-shadow:0 24px 60px rgba(17,16,13,.08); }
.v18-atmosphere-image { aspect-ratio: 4 / 3; overflow:hidden; }
.v18-atmosphere-image img { width:100%; height:100%; object-fit:cover; }
.v18-atmosphere-copy { padding:24px 24px 28px; }
.v18-atmosphere-copy span { display:block; margin-bottom:10px; font:500 9px/1 var(--v18-mono); letter-spacing:.14em; color:#887d6d; }
.v18-atmosphere-copy h3 { margin:0 0 10px; font:500 32px/.95 var(--v18-serif); letter-spacing:-.04em; }
.v18-atmosphere-copy p { margin:0; font:13px/1.8 var(--v18-sans); color:#605a51; }

.v18-directory-hero { position:relative; overflow:hidden; min-height:420px; border-bottom:1px solid #d9d2c6; }
.v18-directory-hero-backdrop { position:absolute; inset:0; background: linear-gradient(90deg,rgba(243,238,230,.94) 0%, rgba(243,238,230,.76) 45%, rgba(13,12,10,.18) 100%), var(--student-hero) center / cover no-repeat; }
.v18-directory-head > * { position:relative; z-index:1; }

.academy-life-section { background:#151513; color:#f3ede1; }
.academy-life-section .section-label, .academy-life-section .record-code { color:#b79d6f; }
.academy-life-section .display { color:#fff; }
.academy-life-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:24px; margin-top:36px; }
.academy-life-card { background:#1d1c18; border:1px solid rgba(242,225,180,.16); border-radius:26px; overflow:hidden; }
.academy-life-image { aspect-ratio: 4 / 3; overflow:hidden; }
.academy-life-image img { width:100%; height:100%; object-fit:cover; }
.academy-life-copy { padding:22px 24px 26px; }
.academy-life-copy span { display:block; margin-bottom:10px; color:#d4b06d; font:500 9px/1 var(--mono); letter-spacing:.14em; }
.academy-life-copy h3 { margin:0 0 10px; font:400 34px/.95 var(--serif); color:#fff; }
.academy-life-copy p { margin:0; color:#b9b1a4; font:14px/1.8 var(--ko-serif); }

.campus-detail { padding:28px; gap:24px; }
.campus-detail-image { width:100%; border-radius:18px; overflow:hidden; border:1px solid rgba(242,225,180,.16); min-height:280px; }
.campus-detail-image img { width:100%; height:100%; object-fit:cover; display:block; }
.campus-detail-copy { display:flex; flex-direction:column; flex:1; }
.campus-detail-copy > span { color: var(--gold); font: 10px/1 var(--mono); letter-spacing: .14em; }
.campus-detail-copy h3 { margin: 26px 0 18px; font: 400 clamp(34px, 4.6vw, 62px)/.92 var(--serif); }
.campus-detail-copy p { margin:0; color:#bcb4a7; font:17px/1.9 var(--ko-serif); }
.campus-detail-copy small { margin-top:36px; color:#746e64; font:9px/1.5 var(--mono); letter-spacing:.12em; }

@media (max-width: 1100px) {
  .v18-manifesto { grid-template-columns:1fr; }
  .v18-atmosphere, .academy-life-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 780px) {
  .v18-atmosphere, .academy-life-grid { grid-template-columns:1fr; }
  .v18-directory-hero { min-height:auto; }
  .campus-detail { padding:20px; }
  .campus-detail-image { min-height:220px; }
}

/* =========================================================
   V21 — COMPACT STUDENT DIRECTORY + DENSE PROFILE
   Keeps v19 site structure everywhere else.
   ========================================================= */
:root { --v21-display:"Bodoni Moda","Cormorant Garamond","Noto Serif KR",serif; }

/* STUDENTS — compact, information-dense */
.v21-students { min-height:100vh; padding:0 0 88px; background:#111210; color:#f3efe6; }
.v21-directory-head { width:min(1540px,calc(100% - 56px)); margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(510px,.8fr); gap:70px; align-items:end; padding:74px 0 42px; border-bottom:1px solid rgba(201,184,143,.18); }
.v21-directory-copy .v18-kicker { color:#9f895c; }
.v21-directory-copy h1 { margin:9px 0 13px; font:500 clamp(62px,6vw,104px)/.86 var(--v21-display); letter-spacing:-.055em; }
.v21-directory-copy > p:last-child { max-width:650px; margin:0; color:#9d9890; font:13px/1.75 var(--v18-sans); word-break:keep-all; }
.v21-directory-stats { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid rgba(255,255,255,.10); border-bottom:1px solid rgba(255,255,255,.10); }
.v21-directory-stats div { min-width:0; padding:17px 16px 16px; border-right:1px solid rgba(255,255,255,.10); }
.v21-directory-stats div:last-child { border-right:0; }
.v21-directory-stats span { display:block; min-height:20px; color:#7f7b74; font:600 7px/1.35 var(--v18-sans); letter-spacing:.14em; }
.v21-directory-stats strong { display:block; margin-top:7px; color:#d8d2c8; font:400 27px/1 var(--v21-display); }

.v21-filter-wrap { position:sticky; top:92px; z-index:20; background:rgba(17,18,16,.92); backdrop-filter:blur(18px); border-bottom:1px solid rgba(255,255,255,.10); }
.v21-filter-bar { width:min(1540px,calc(100% - 56px)); margin:0 auto; display:flex; }
.v21-filter { height:48px; padding:0 23px; border:0; border-right:1px solid rgba(255,255,255,.09); background:transparent; color:#77746d; cursor:pointer; font:600 8px/1 var(--v18-sans); letter-spacing:.13em; transition:.2s; }
.v21-filter:first-child { border-left:1px solid rgba(255,255,255,.09); }
.v21-filter:hover,.v21-filter.active { color:#e7dcc2; background:rgba(168,141,88,.08); }

.v21-directory-grid { width:min(1540px,calc(100% - 56px)); margin:0 auto; padding-top:28px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.v21-student-card { position:relative; min-width:0; height:456px; display:grid; grid-template-rows:176px 1fr; overflow:hidden; border:1px solid rgba(255,255,255,.11); border-radius:14px; background:linear-gradient(145deg,color-mix(in srgb,var(--card-accent) 18%,#161714) 0%,#151614 40%,#10110f 100%); cursor:pointer; color:#f3efe6; box-shadow:0 10px 28px rgba(0,0,0,.13); transition:transform .24s,border-color .24s,box-shadow .24s; }
.v21-student-card.filtered-out { display:none; }
.v21-student-card:hover { transform:translateY(-4px); border-color:rgba(201,184,143,.32); box-shadow:0 22px 46px rgba(0,0,0,.28); }
.v21-card-media { position:relative; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.08); background:#121310; }
.v21-card-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,color-mix(in srgb,var(--card-accent) 46%,transparent),transparent 62%),linear-gradient(0deg,rgba(12,12,10,.70),transparent 55%); pointer-events:none; }
.v21-card-media img { width:100%; height:100%; object-fit:cover; object-position:center 25%; filter:saturate(.78) contrast(1.04); transition:transform .35s,filter .35s; }
.v21-student-card:hover .v21-card-media img { transform:scale(1.025); filter:saturate(.92) contrast(1.05); }
.v21-card-index,.v21-card-status { position:absolute; z-index:2; top:14px; font:600 7px/1 var(--v18-mono); letter-spacing:.13em; }
.v21-card-index { left:15px; color:#d3ccbf; }
.v21-card-status { right:38px; color:#c6aa70; }
.v21-card-arrow { position:absolute; z-index:3; top:11px; right:14px; font:400 17px/1 var(--v21-display); font-style:normal; color:#a7a198; transition:.22s; }
.v21-student-card:hover .v21-card-arrow { transform:translate(2px,-2px); color:#ead8ad; }
.v21-card-body { min-height:0; display:flex; flex-direction:column; padding:18px 18px 0; }
.v21-card-name { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.v21-card-name h2 { min-width:0; margin:0; font:500 clamp(25px,1.7vw,33px)/.95 var(--v21-display); letter-spacing:-.04em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v21-card-name em { flex:0 0 auto; color:#8e8981; font:500 9px/1 var(--v18-sans); font-style:normal; }
.v21-card-role { margin:9px 0 0; min-height:29px; color:#89857e; font:600 8px/1.55 var(--v18-sans); letter-spacing:.055em; text-transform:uppercase; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.v21-card-meta { display:flex; gap:6px; margin-top:11px; }
.v21-card-meta span { padding:6px 8px; border:1px solid rgba(255,255,255,.10); border-radius:999px; color:#9b968e; font:500 7px/1 var(--v18-mono); letter-spacing:.05em; }
.v21-card-meta b { color:#d8d1c4; font-weight:500; }
.v21-card-body blockquote { margin:13px 0 12px; min-height:38px; color:#d3cdc3; font:400 14px/1.45 "Noto Serif KR",var(--v18-serif); word-break:keep-all; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.v21-card-traces { margin:auto -18px 0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.09); }
.v21-card-traces button { height:49px; display:flex; align-items:center; justify-content:center; gap:7px; border:0; border-right:1px solid rgba(255,255,255,.09); background:rgba(0,0,0,.08); color:#817d76; cursor:pointer; transition:.2s; }
.v21-card-traces button:last-child { border-right:0; }
.v21-card-traces button:hover { color:#ead9b4; background:rgba(168,141,88,.08); }
.v21-card-traces svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.45; }
.v21-card-traces span { font:500 7px/1 var(--v18-mono); }

/* PROFILE — no viewport-sized portrait, information visible above the fold */
.v21-profile { min-height:100vh; background:#111210; color:#f2eee6; padding:0 0 84px; }
.v21-profile-wrap { width:min(1540px,calc(100% - 56px)); margin:0 auto; padding-top:32px; }
.v21-profile-back { height:34px; margin:0 0 18px; padding:0; border:0; background:none; color:#858077; cursor:pointer; font:600 8px/1 var(--v18-sans); letter-spacing:.13em; }
.v21-profile-back:hover { color:#d5c49f; }
.v21-profile-top { display:grid; grid-template-columns:330px minmax(0,1fr); gap:38px; align-items:start; }
.v21-profile-card { overflow:hidden; border:1px solid rgba(255,255,255,.11); border-radius:15px; background:linear-gradient(160deg,color-mix(in srgb,var(--profile-accent) 25%,#171816),#111210 55%); }
.v21-profile-media { position:relative; height:292px; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.10); background:#151614; }
.v21-profile-media::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,8,7,.68),transparent 50%),linear-gradient(90deg,color-mix(in srgb,var(--profile-accent) 42%,transparent),transparent 62%); pointer-events:none; }
.v21-profile-media img { width:100%; height:100%; object-fit:cover; object-position:center 22%; filter:saturate(.82) contrast(1.03); }
.v21-profile-media > span { position:absolute; z-index:2; left:15px; bottom:13px; color:#d2c9bb; font:500 7px/1 var(--v18-mono); letter-spacing:.13em; }
.v21-profile-card-copy { padding:20px 20px 22px; }
.v21-profile-card-copy > strong { display:block; font:500 31px/.95 var(--v21-display); letter-spacing:-.035em; }
.v21-profile-card-copy > em { display:block; margin-top:6px; color:#928d85; font:500 10px/1 var(--v18-sans); font-style:normal; }
.v21-profile-card-copy > p { margin:11px 0 17px; padding-bottom:15px; border-bottom:1px solid rgba(255,255,255,.09); color:#b99e68; font:600 8px/1.45 var(--v18-sans); letter-spacing:.08em; text-transform:uppercase; }
.v21-profile-card-copy dl { margin:0; display:grid; gap:10px; }
.v21-profile-card-copy dl div { display:grid; grid-template-columns:80px 1fr; gap:12px; }
.v21-profile-card-copy dt { color:#6f6b65; font:600 7px/1.45 var(--v18-mono); letter-spacing:.1em; }
.v21-profile-card-copy dd { min-width:0; margin:0; color:#b9b4ab; font:500 9px/1.45 var(--v18-sans); overflow:hidden; text-overflow:ellipsis; }

.v21-profile-main { min-width:0; padding:6px 0 0; }
.v21-profile-heading { padding:0 0 22px; border-bottom:1px solid rgba(255,255,255,.11); }
.v21-profile-heading .v18-kicker { color:#a48b59; }
.v21-profile-heading h1 { margin:8px 0 0; font:500 clamp(58px,5.7vw,96px)/.82 var(--v21-display); letter-spacing:-.055em; }
.v21-profile-heading > span { display:block; margin-top:10px; color:#8a857d; font:500 11px/1 var(--v18-sans); }
.v21-profile-heading blockquote { margin:17px 0 0; color:#ded7ca; font:400 clamp(20px,1.75vw,29px)/1.45 "Noto Serif KR",var(--v18-serif); word-break:keep-all; }
.v21-profile-facts { display:grid; grid-template-columns:.6fr .95fr .8fr .7fr 1fr 1.45fr; border-bottom:1px solid rgba(255,255,255,.11); }
.v21-profile-facts div { min-width:0; padding:15px 15px 14px 0; margin-right:15px; border-right:1px solid rgba(255,255,255,.09); }
.v21-profile-facts div:last-child { margin-right:0; border-right:0; }
.v21-profile-facts span { display:block; margin-bottom:6px; color:#6f6b65; font:600 7px/1 var(--v18-mono); letter-spacing:.12em; }
.v21-profile-facts strong { display:block; color:#d9d3c9; font:400 clamp(15px,1.15vw,20px)/1.15 var(--v21-display); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v21-profile-summary-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:22px 0 20px; }
.v21-profile-summary-grid article { min-width:0; padding:0 20px 0 0; }
.v21-profile-summary-grid article + article { padding:0 0 0 20px; border-left:1px solid rgba(255,255,255,.10); }
.v21-profile-summary-grid span { color:#9b8352; font:600 7px/1 var(--v18-sans); letter-spacing:.14em; }
.v21-profile-summary-grid h2 { margin:8px 0 9px; color:#e6dfd3; font:500 clamp(21px,1.6vw,28px)/1.05 var(--v21-display); letter-spacing:-.025em; }
.v21-profile-summary-grid p { margin:0; color:#97928a; font:12px/1.75 var(--v18-sans); word-break:keep-all; }
.v21-trace-dock { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.v21-trace-dock button { min-width:0; height:64px; display:grid; grid-template-columns:22px 1fr 14px; gap:11px; align-items:center; padding:0 14px; border:1px solid rgba(255,255,255,.11); border-radius:9px; background:#171816; color:#aaa59c; cursor:pointer; text-align:left; transition:.2s; }
.v21-trace-dock button:hover { color:#eadbb9; border-color:rgba(201,184,143,.32); background:#1a1a17; }
.v21-trace-dock svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.45; }
.v21-trace-dock button > span { display:flex; flex-direction:column; gap:4px; }
.v21-trace-dock strong { font:600 8px/1 var(--v18-sans); letter-spacing:.1em; }
.v21-trace-dock small { color:#706c66; font:500 7px/1 var(--v18-mono); }
.v21-trace-dock i { font-style:normal; }

.v21-profile-lower { margin-top:28px; border-top:1px solid rgba(255,255,255,.10); }
.v21-profile-preferences { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid rgba(255,255,255,.10); }
.v21-profile-preferences div { padding:18px 22px; border-right:1px solid rgba(255,255,255,.10); }
.v21-profile-preferences div:last-child { border-right:0; }
.v21-profile-preferences span { color:#777168; font:600 7px/1 var(--v18-sans); letter-spacing:.14em; }
.v21-profile-preferences p { margin:7px 0 0; color:#aaa49b; font:11px/1.65 var(--v18-sans); }
.v21-connections { padding:50px 0 0; }
.v21-connections > header { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:20px; }
.v21-connections > header .v18-kicker { color:#9e8658; }
.v21-connections > header h2 { margin:6px 0 0; font:500 clamp(38px,3.8vw,58px)/.9 var(--v21-display); letter-spacing:-.04em; }
.v21-connections > header > p { width:min(330px,35vw); margin:0; color:#77736c; font:11px/1.65 var(--v18-sans); }
.v21-profile .v18-connection-grid { gap:12px; border:0; background:none; }
.v21-profile .v18-connection-grid .connection { min-height:200px!important; padding:22px!important; border:1px solid rgba(255,255,255,.10)!important; border-radius:10px!important; background:#171816!important; color:#e5ded3!important; }
.v21-profile .v18-connection-grid .connection:hover { background:#1c1c18!important; border-color:rgba(201,184,143,.28)!important; }
.v21-profile .v18-connection-grid .connection-direction { color:#827c72!important; }
.v21-profile .v18-connection-grid .connection strong { margin-top:12px!important; font:500 26px/1 var(--v21-display)!important; }
.v21-profile .v18-connection-grid .connection small { color:#77736c!important; }
.v21-profile .v18-connection-grid .connection p { margin-top:15px!important; color:#99948b!important; font-size:11.5px!important; }
.v21-profile .v18-connection-grid .connection i { margin-top:16px!important; color:#a68b56!important; }
.v21-private-note { padding:32px 0 0; }
.v21-private-note details { border-top:1px solid rgba(255,255,255,.10); border-bottom:1px solid rgba(255,255,255,.10); }
.v21-private-note summary { list-style:none; display:grid; grid-template-columns:130px 1fr auto; gap:15px; align-items:center; padding:20px 0; cursor:pointer; }
.v21-private-note summary::-webkit-details-marker { display:none; }
.v21-private-note summary span { color:#777168; font:600 7px/1 var(--v18-sans); letter-spacing:.14em; }
.v21-private-note summary strong { font:500 17px/1 var(--v21-display); }
.v21-private-note summary i { font:400 20px/1 var(--v21-display); font-style:normal; transition:.2s; }
.v21-private-note details[open] summary i { transform:rotate(45deg); }
.v21-private-note details > p { max-width:850px; margin:0 0 25px 145px; color:#99948b; font:12px/1.8 var(--v18-sans); }

@media (max-width:1250px) {
  .v21-directory-head { grid-template-columns:1fr; gap:30px; }
  .v21-directory-stats { max-width:850px; }
  .v21-directory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .v21-profile-top { grid-template-columns:290px minmax(0,1fr); gap:28px; }
  .v21-profile-media { height:255px; }
  .v21-profile-facts { grid-template-columns:repeat(3,1fr); }
  .v21-profile-facts div { border-bottom:1px solid rgba(255,255,255,.08); }
}
@media (max-width:900px) {
  .v21-directory-head,.v21-filter-bar,.v21-directory-grid,.v21-profile-wrap { width:min(100% - 32px,760px); }
  .v21-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v21-filter-wrap { top:78px; overflow-x:auto; }
  .v21-filter-bar { width:max-content; min-width:100%; }
  .v21-profile-top { grid-template-columns:1fr; }
  .v21-profile-card { display:grid; grid-template-columns:220px 1fr; }
  .v21-profile-media { height:245px; border-bottom:0; border-right:1px solid rgba(255,255,255,.10); }
  .v21-profile-summary-grid { grid-template-columns:1fr; }
  .v21-profile-summary-grid article + article { padding:18px 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.09); }
  .v21-connections > header { align-items:start; flex-direction:column; }
  .v21-connections > header > p { width:auto; }
}
@media (max-width:620px) {
  .v21-directory-head { padding-top:48px; }
  .v21-directory-stats { grid-template-columns:repeat(5,minmax(86px,1fr)); overflow-x:auto; }
  .v21-directory-grid { grid-template-columns:1fr; }
  .v21-student-card { height:430px; }
  .v21-profile-card { grid-template-columns:1fr; }
  .v21-profile-media { height:280px; border-right:0; border-bottom:1px solid rgba(255,255,255,.10); }
  .v21-profile-heading h1 { font-size:clamp(52px,17vw,76px); }
  .v21-profile-facts { grid-template-columns:repeat(2,1fr); }
  .v21-trace-dock { grid-template-columns:1fr; }
  .v21-profile-preferences { grid-template-columns:1fr; }
  .v21-profile-preferences div { border-right:0; border-bottom:1px solid rgba(255,255,255,.08); }
  .v21-profile .v18-connection-grid { grid-template-columns:1fr; }
  .v21-private-note details > p { margin-left:0; }
}

/* v22 readability pass — keep compact layout, increase descriptive text */
.v21-card-role { font-size:11.5px; line-height: 1.55; }
.v21-card-meta span { font-size:10.5px; }
.v21-card-body blockquote { font-size: 16px; line-height: 1.55; }
.v21-card-traces span { font-size:10.5px; }

.v21-profile-card-copy > em { font-size: 12px; }
.v21-profile-card-copy > p { font-size:11.5px; line-height: 1.55; }
.v21-profile-card-copy dt { font-size:11px; }
.v21-profile-card-copy dd { font-size: 12px; line-height: 1.55; }
.v21-profile-heading > span { font-size: 13px; }
.v21-profile-facts span { font-size:11px; }
.v21-profile-facts strong { font-size: clamp(17px,1.3vw,22px); }

.v21-profile-summary-grid span { font-size:11px; }
.v21-profile-summary-grid p { font-size: 15px; line-height: 1.85; color:#aaa49b; }
.v21-trace-dock strong { font-size:11.5px; }
.v21-trace-dock small { font-size:11px; }

.v21-profile-preferences span { font-size:11px; }
.v21-profile-preferences p { font-size: 14px; line-height: 1.75; color:#b8b2a8; }

.v21-connections > header > p { font-size: 14px; line-height: 1.75; color:#8f8a82; }
.v21-profile .v18-connection-grid .connection-direction { font-size:11px!important; line-height:1.55!important; }
.v21-profile .v18-connection-grid .connection small { font-size: 12px!important; }
.v21-profile .v18-connection-grid .connection p { font-size: 14px!important; line-height:1.8!important; color:#aaa59c!important; }
.v21-profile .v18-connection-grid .connection i { font-size:11px!important; }

.v21-private-note summary span { font-size:11px; }
.v21-private-note summary strong { font-size: 19px; }
.v21-private-note details > p { font-size: 14px; line-height: 1.85; color:#aaa59c; }

@media (max-width: 760px) {
  .v21-profile-summary-grid p { font-size: 14px; }
  .v21-profile-preferences p { font-size: 13.5px; }
  .v21-profile .v18-connection-grid .connection p { font-size: 13.5px!important; }
}

/* v24 — clearer home hierarchy and concise academy copy */
.v18-hero-copy > p:not(.v18-kicker) { font-size:12px!important; line-height:1.65!important; }
.v18-hero-actions { gap:36px!important; }
.v18-text-link { font-size:13px!important; line-height:1.4!important; letter-spacing:.08em!important; }

.home-overview-clean {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  gap:clamp(42px,6vw,92px);
  padding:110px clamp(28px,7vw,118px) 90px;
  background:var(--v18-paper);
  border-bottom:1px solid #d2ccc1;
}
.home-overview-copy { align-self:center; max-width:680px; }
.home-overview-copy h2 {
  margin:16px 0 28px;
  font:500 clamp(54px,6vw,88px)/.92 var(--v18-serif);
  letter-spacing:-.05em;
}
.home-overview-copy > p:not(.v18-kicker) {
  margin:0 0 34px;
  font:16px/1.95 var(--v18-sans);
  color:#565149;
  word-break:keep-all;
}
.home-overview-image {
  min-height:430px;
  overflow:hidden;
  border-radius:22px;
  border:1px solid #d4cdc1;
  background:#d9d2c8;
}
.home-overview-image img { width:100%; height:100%; object-fit:cover; display:block; }
.home-overview-facts {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:4px;
  border-top:1px solid #bbb3a7;
  border-bottom:1px solid #cfc8bd;
}
.home-overview-facts > div { padding:25px 28px 26px 0; border-right:1px solid #d4cdc2; }
.home-overview-facts > div:not(:first-child) { padding-left:28px; }
.home-overview-facts > div:last-child { border-right:0; }
.home-overview-facts span { display:block; margin-bottom:9px; font:600 9px/1 var(--v18-mono); letter-spacing:.15em; color:#857b6c; }
.home-overview-facts strong { display:block; font:500 25px/1.15 "Noto Serif KR",var(--v18-serif); color:#181714; }
.home-overview-facts small { display:block; margin-top:9px; font:13px/1.55 var(--v18-sans); color:#716b62; }

.home-primary-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:46px;
  padding:0 18px;
  border:1px solid #aaa294;
  background:transparent;
  cursor:pointer;
  font:700 14px/1 var(--v18-sans);
  letter-spacing:-.015em;
  color:#1d1b18;
  transition:.25s;
}
.home-primary-link:hover { background:#1b1a17; border-color:#1b1a17; color:#f5f0e7; transform:translateY(-1px); }
.home-primary-link span { font-size:17px; transition:transform .25s; }
.home-primary-link:hover span { transform:translateX(4px); }
.home-primary-link.light { border-color:rgba(255,255,255,.32); color:#f4f0e8; }
.home-primary-link.light:hover { background:#f2ede3; border-color:#f2ede3; color:#151411; }

.home-students-clean { padding-top:96px!important; padding-bottom:110px!important; }
.home-section-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:50px;
  margin:0 0 42px;
}
.home-section-head > div { max-width:760px; }
.home-section-head h2 {
  margin:14px 0 18px;
  font:500 clamp(52px,5.5vw,82px)/.92 var(--v18-serif);
  letter-spacing:-.05em;
}
.home-section-head p:not(.v18-kicker) {
  margin:0;
  max-width:680px;
  font:16px/1.85 var(--v18-sans);
  color:#b1aaa0;
  word-break:keep-all;
}

.home-calendar-clean {
  display:grid;
  grid-template-columns:minmax(420px,.9fr) minmax(0,1.1fr);
  min-height:690px;
  background:#171714;
  color:var(--v18-white);
}
.home-calendar-image { min-height:690px; overflow:hidden; }
.home-calendar-image img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.72) contrast(1.03) brightness(.78); }
.home-calendar-copy { padding:76px clamp(42px,6vw,92px); display:flex; flex-direction:column; justify-content:center; }
.home-calendar-copy h2 {
  margin:14px 0 18px;
  font:500 clamp(52px,5.4vw,82px)/.92 var(--v18-serif);
  letter-spacing:-.05em;
}
.home-calendar-lead { margin:0 0 30px; max-width:690px; font:16px/1.85 var(--v18-sans); color:#bbb4aa; word-break:keep-all; }
.home-calendar-list { margin:0 0 32px; border-top:1px solid rgba(255,255,255,.16); }
.home-calendar-row {
  display:grid;
  grid-template-columns:64px minmax(150px,.65fr) 1.35fr;
  gap:18px;
  align-items:center;
  padding:17px 0;
  border-bottom:1px solid rgba(255,255,255,.13);
}
.home-calendar-row > span { font:600 12px/1 var(--v18-mono); color:#c1aa78; }
.home-calendar-row > strong { font:500 18px/1.2 var(--v18-serif); color:#f2eee5; }
.home-calendar-row > p { margin:0; font:14px/1.65 var(--v18-sans); color:#9f9990; word-break:keep-all; }
.home-calendar-copy .home-primary-link { align-self:flex-start; }

/* Academy hero aligns with the home hero instead of a centered container */
.academy-hero-copy {
  position:relative;
  z-index:2;
  width:100%;
  max-width:none!important;
  padding:0 clamp(28px,7vw,118px) 66px!important;
  box-sizing:border-box;
  color:var(--paper);
}
.academy-hero-copy h1 { max-width:760px!important; font-size:clamp(64px,7vw,104px)!important; line-height:.86!important; }
.academy-official-name { font-size:11.5px!important; line-height:1.55!important; }
.legacy-copy h2 { font-size:clamp(48px,5vw,72px)!important; }
.legacy-copy p { font-size:18px!important; line-height:1.9!important; }
.fact strong { font-size:19px!important; }
.calendar-intro { font-size:16px!important; line-height:1.75!important; }
.academy-program-section .display,
.location-copy h2,
.calendar-section .display,
.academy-life-section .display { font-size:clamp(48px,5vw,72px)!important; line-height:.94!important; }
.location-copy > p { font-size:18px!important; line-height:1.9!important; }

@media (max-width: 1050px) {
  .home-overview-clean { grid-template-columns:1fr; }
  .home-overview-image { min-height:390px; }
  .home-calendar-clean { grid-template-columns:1fr; }
  .home-calendar-image { min-height:430px; }
  .home-calendar-copy { padding:64px 38px 72px; }
}
@media (max-width: 720px) {
  .home-overview-clean { padding:76px 20px 66px; gap:32px; }
  .home-overview-copy > p:not(.v18-kicker), .home-section-head p:not(.v18-kicker), .home-calendar-lead { font-size:15px; }
  .home-overview-facts { grid-template-columns:1fr; }
  .home-overview-facts > div, .home-overview-facts > div:not(:first-child) { padding:20px 0; border-right:0; border-bottom:1px solid #d4cdc2; }
  .home-overview-facts > div:last-child { border-bottom:0; }
  .home-section-head { flex-direction:column; align-items:flex-start; gap:24px; }
  .home-calendar-copy { padding:58px 20px 66px; }
  .home-calendar-row { grid-template-columns:54px 1fr; }
  .home-calendar-row > p { grid-column:2; }
  .home-primary-link { font-size:13px; }
  .academy-hero-copy { padding:0 20px 46px!important; }
}


/* v25 — preserve content, rebalance hierarchy */
.global-soundtrack { display:flex; align-items:center; gap:11px; min-width:max-content; }
.global-soundtrack > span { display:flex; flex-direction:column; gap:2px; text-align:right; }
.global-soundtrack small { color:#6f6a62; font:600 7px/1 var(--v18-mono); letter-spacing:.13em; }
.global-soundtrack strong { color:#d6cec0; font:500 11px/1.1 var(--v18-serif); letter-spacing:.02em; }
.soundtrack-toggle { min-width:92px; font-size:10.5px!important; letter-spacing:.08em!important; }

.home-v25 .v18-hero-copy h1 span { font-size:clamp(72px,8.6vw,124px)!important; line-height:.78!important; }
.home-v25 .v18-hero-copy h1 em { margin-top:17px!important; font-size:clamp(28px,2.7vw,42px)!important; }
.home-v25 .v18-hero-copy > p:not(.v18-kicker) { font-size:13px!important; }
.home-hero-v25 { min-height:min(790px,calc(100svh - 118px)); }

.home-directory-teaser { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr); min-height:560px; background:#151613; color:#f0ebe2; }
.home-directory-visual { overflow:hidden; }
.home-directory-visual img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.72) brightness(.72) contrast(1.04); }
.home-directory-copy { display:flex; flex-direction:column; justify-content:center; padding:64px clamp(42px,5.5vw,82px); }
.home-directory-copy h2 { margin:14px 0 20px; font:500 clamp(50px,5vw,76px)/.92 var(--v18-serif); letter-spacing:-.05em; }
.home-directory-copy > p:not(.v18-kicker) { margin:0 0 30px; color:#bbb4a9; font:16px/1.85 var(--v18-sans); word-break:keep-all; }
.home-directory-copy .home-primary-link { align-self:flex-start; }

.academy-hero-copy h1 { font-size:clamp(68px,7.3vw,108px)!important; line-height:.88!important; }
.academy-hero-copy { padding-bottom:58px!important; }

/* Profile: larger visual, descriptive blocks below the hero */
.v25-profile .v21-profile-wrap { width:min(1540px,calc(100% - 64px)); }
.v25-profile-hero { display:grid; grid-template-columns:410px minmax(0,1fr); gap:46px; align-items:start; }
.v25-profile-card { width:100%; }
.v25-profile-media { height:410px; }
.v25-profile-card-copy { padding:22px 23px 24px; }
.v25-profile-card-copy > strong { font-size:34px; }
.v25-profile-card-copy > p { font-size:12px; }
.v25-profile-card-copy dd { font-size:13px; white-space:normal; overflow:visible; }
.v25-profile-primary { min-width:0; padding-top:10px; }
.v25-profile-heading { padding-bottom:25px; }
.v25-profile-heading h1 { font-size:clamp(64px,6.1vw,98px); }
.v25-profile-facts { margin-top:0; grid-template-columns:.55fr .95fr .72fr .65fr 1fr 1.45fr; }
.v25-profile-facts span { font-size:11px; }
.v25-profile-facts strong { font-size:clamp(17px,1.3vw,22px); }
.v25-trace-dock { margin-top:26px; }
.v25-profile-details { margin-top:34px; border-top:1px solid rgba(255,255,255,.11); }
.v25-profile-summary-grid { padding:34px 0 32px; gap:28px; }
.v25-profile-summary-grid h2 { font-size:clamp(24px,2vw,33px); }
.v25-profile-summary-grid p { font-size:15.5px; line-height:1.9; color:#b7b0a5; }
.v25-profile-preferences { border-top:1px solid rgba(255,255,255,.10); }
.v25-profile-preferences p { font-size:14.5px; }

/* Audio transcript: character color + clearer active state */
.transcript-row strong { color:var(--speaker-color,#9fb5be)!important; transition:color .18s ease,text-shadow .18s ease; }
.transcript-row::before { background:color-mix(in srgb,var(--speaker-color,#9fb5be) 18%,transparent); }
.transcript-row.active { background:linear-gradient(90deg,color-mix(in srgb,var(--speaker-color,#b39a68) 16%,transparent),rgba(124,154,167,.04) 45%,transparent)!important; }
.transcript-row.active::before { background:var(--speaker-color,#b39a68)!important; width:3px; }
.transcript-row.active strong { color:var(--speaker-color,#edf2f3)!important; text-shadow:0 0 18px color-mix(in srgb,var(--speaker-color) 35%,transparent); }
.transcript-row.active p { color:#f2f4f4!important; }

/* LIMBO stays in the world, but not in the official Academy brochure */
.v25-limbo-record { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr); margin:58px 0 26px; border:1px solid rgba(130,154,166,.16); background:#0d1011; overflow:hidden; }
.v25-limbo-image { min-height:310px; overflow:hidden; }
.v25-limbo-image img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.76) brightness(.72); }
.v25-limbo-copy { display:flex; flex-direction:column; justify-content:center; padding:38px 42px; }
.v25-limbo-copy > span { color:#8c6d67; font:600 9px/1 var(--v18-mono); letter-spacing:.15em; }
.v25-limbo-copy h2 { margin:13px 0 17px; color:#e8e3dc; font:500 clamp(48px,5vw,72px)/.9 var(--v18-serif); }
.v25-limbo-copy p { max-width:720px; margin:0 0 24px; color:#a9afb0; font:15px/1.85 var(--v18-sans); word-break:keep-all; }
.v25-limbo-copy .v18-inline-link { align-self:flex-start; }
.v25-limbo-modal { width:min(980px,90vw); background:#111; color:#ece6dc; }
.v25-limbo-modal img { width:100%; max-height:560px; object-fit:cover; display:block; }
.v25-limbo-modal > div { padding:28px 32px 34px; }
.v25-limbo-modal span { color:#a9857c; font:600 9px/1 var(--v18-mono); letter-spacing:.15em; }
.v25-limbo-modal h2 { margin:10px 0 12px; font:500 56px/.9 var(--v18-serif); }
.v25-limbo-modal p { margin:0; color:#b7b0a8; font:15px/1.8 var(--v18-sans); }

@media (max-width:1100px) {
  .home-directory-teaser { grid-template-columns:1fr; }
  .home-directory-visual { min-height:390px; }
  .v25-profile-hero { grid-template-columns:350px minmax(0,1fr); gap:32px; }
  .v25-profile-media { height:360px; }
  .v25-profile-facts { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:800px) {
  .global-soundtrack > span { display:none; }
  .soundtrack-toggle { min-width:auto; }
  .v25-profile .v21-profile-wrap { width:min(100% - 30px,760px); }
  .v25-profile-hero { grid-template-columns:1fr; }
  .v25-profile-card { display:grid; grid-template-columns:240px 1fr; }
  .v25-profile-media { height:300px; border-right:1px solid rgba(255,255,255,.1); }
  .v25-profile-summary-grid { grid-template-columns:1fr; }
  .v25-profile-summary-grid article + article { padding:24px 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.1); }
  .v25-limbo-record { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .home-v25 .v18-hero-copy h1 span { font-size:clamp(58px,18vw,86px)!important; }
  .home-directory-copy { padding:54px 20px 62px; }
  .v25-profile-card { grid-template-columns:1fr; }
  .v25-profile-media { height:360px; border-right:0; }
  .v25-profile-facts { grid-template-columns:repeat(2,1fr); }
}

/* v26 — unified scale, visible soundtrack player, tighter rhythm */
:root { --v26-gutter: clamp(30px, 5vw, 78px); }

.topbar { grid-template-columns:minmax(270px,360px) 1fr minmax(190px,220px)!important; }
.header-actions { justify-self:end; }
.music-shell { position:relative; }
.music-launcher { width:210px; height:54px; display:grid; grid-template-columns:28px 1fr 22px; align-items:center; gap:10px; padding:0 13px; border:1px solid rgba(255,255,255,.14); border-radius:8px; background:#151613; color:#ddd6ca; cursor:pointer; text-align:left; transition:border-color .2s,background .2s; }
.music-launcher:hover,.music-launcher[aria-expanded="true"] { border-color:rgba(195,166,103,.5); background:#191a17; }
.music-note { display:grid; place-items:center; width:26px; height:26px; border:1px solid rgba(198,170,109,.34); border-radius:50%; color:#c7a96d; font:18px/1 var(--v18-serif); }
.music-launcher-copy { min-width:0; display:flex; flex-direction:column; gap:4px; }
.music-launcher-copy small { color:#817b72; font:600 8px/1 var(--v18-mono); letter-spacing:.15em; }
.music-launcher-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#e7e0d5; font:500 13px/1.1 var(--v18-serif); }
.music-launcher > i { justify-self:end; color:#c3a56a; font:500 12px/1 var(--v18-mono); font-style:normal; }
.music-panel { position:absolute; z-index:120; top:calc(100% + 12px); right:0; width:370px; padding:18px; border:1px solid rgba(255,255,255,.14); border-radius:12px; background:rgba(15,16,14,.985); color:#e9e3d8; box-shadow:0 24px 70px rgba(0,0,0,.45); backdrop-filter:blur(20px); }
.music-panel[hidden] { display:none!important; }
.music-panel header { display:flex; justify-content:space-between; align-items:center; padding-bottom:15px; border-bottom:1px solid rgba(255,255,255,.09); }
.music-panel header div { display:flex; flex-direction:column; gap:4px; }
.music-panel header small,.music-now small { color:#827d74; font:600 8px/1 var(--v18-mono); letter-spacing:.14em; }
.music-panel header strong { font:600 10px/1 var(--v18-sans); letter-spacing:.09em; }
.music-panel header button { width:30px; height:30px; border:0; background:transparent; color:#aaa49a; font-size:22px; cursor:pointer; }
.music-now { display:grid; grid-template-columns:1fr auto; gap:7px 14px; padding:18px 2px 12px; }
.music-now small { grid-column:1/-1; }
.music-now strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:500 25px/1 var(--v18-serif); }
.music-now time { align-self:end; color:#8d887f; font:500 9px/1 var(--v18-mono); }
.music-seek { width:100%; accent-color:#b99b63; cursor:pointer; }
.music-controls { display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:8px; margin:12px 0 16px; }
.music-controls button { height:40px; border:1px solid rgba(255,255,255,.12); border-radius:7px; background:#181916; color:#dad4ca; cursor:pointer; font:600 13px/1 var(--v18-mono); }
.music-controls #audioToggle { border-color:rgba(195,166,103,.35); color:#d4b477; }
.music-track-list { border-top:1px solid rgba(255,255,255,.08); }
.music-track-list button { width:100%; min-height:46px; display:grid; grid-template-columns:28px 1fr 42px; gap:10px; align-items:center; padding:0 4px; border:0; border-bottom:1px solid rgba(255,255,255,.07); background:transparent; color:#aaa59c; cursor:pointer; text-align:left; }
.music-track-list button:hover,.music-track-list button.active { color:#f0eadf; background:rgba(255,255,255,.025); }
.music-track-list button.active span { color:#c5a668; }
.music-track-list span,.music-track-list time { font:500 8px/1 var(--v18-mono); color:#777269; }
.music-track-list strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:500 13px/1.2 var(--v18-sans); }
.music-track-list time { text-align:right; }

/* HOME / ACADEMY share one hero baseline and one title scale */
.home-v26 .v18-hero,.academy-hero { height:clamp(560px,68svh,680px)!important; min-height:560px!important; }
.home-v26 .v18-hero-copy.shared-hero-copy { left:var(--v26-gutter)!important; bottom:58px!important; width:min(790px,76vw)!important; }
.home-v26 .v18-hero-copy h1 span,.academy-hero-copy.shared-hero-copy h1 { font-size:clamp(70px,7.2vw,112px)!important; line-height:.8!important; letter-spacing:-.06em!important; }
.home-v26 .v18-hero-copy h1 em { margin-top:16px!important; font-size:clamp(28px,2.65vw,41px)!important; }
.home-v26 .v18-hero-copy > p:not(.v18-kicker),.academy-official-name { font-size:12.5px!important; line-height:1.6!important; }
.home-v26 .v18-hero-actions { margin-top:30px!important; }
.academy-hero-copy.shared-hero-copy { position:absolute!important; left:var(--v26-gutter)!important; bottom:58px!important; width:min(790px,76vw)!important; padding:0!important; max-width:none!important; }
.academy-hero-copy.shared-hero-copy h1 { margin:12px 0 16px!important; max-width:none!important; }

/* HOME: concise sections, no character cards */
.home-overview-v26 { display:grid; grid-template-columns:minmax(0,.9fr) minmax(400px,1.1fr); gap:clamp(36px,5vw,72px); padding:72px var(--v26-gutter) 58px; background:var(--v18-paper); border-bottom:1px solid #d2ccc1; }
.home-overview-v26 .home-overview-copy h2 { font-size:clamp(48px,4.7vw,68px); margin:12px 0 22px; }
.home-overview-v26 .home-overview-copy > p:not(.v18-kicker) { font-size:16px; line-height:1.85; margin-bottom:26px; }
.home-overview-v26 .home-overview-image { min-height:340px; max-height:380px; }
.home-overview-v26 .home-overview-facts { margin-top:-6px; }
.home-overview-v26 .home-overview-facts > div { padding-top:20px; padding-bottom:21px; }
.home-overview-v26 .home-overview-facts strong { font-size:22px; }
.home-student-entry { min-height:230px; display:grid; grid-template-columns:minmax(260px,.7fr) minmax(340px,1.2fr) auto; gap:42px; align-items:center; padding:48px var(--v26-gutter); background:#151613; color:#f1ece3; border-bottom:1px solid rgba(255,255,255,.09); }
.home-student-entry h2 { margin:10px 0 0; font:500 clamp(44px,4.4vw,64px)/.92 var(--v18-serif); letter-spacing:-.05em; }
.home-student-entry > p { max-width:660px; margin:0; color:#b6b0a6; font:16px/1.8 var(--v18-sans); word-break:keep-all; }
.home-student-entry .home-primary-link { justify-self:end; }
.home-calendar-v26 { display:grid; grid-template-columns:minmax(390px,.86fr) minmax(0,1.14fr); min-height:520px; background:#171714; color:var(--v18-white); }
.home-calendar-v26 .home-calendar-image { min-height:520px; max-height:560px; }
.home-calendar-v26 .home-calendar-copy { padding:52px var(--v26-gutter); }
.home-calendar-v26 .home-calendar-copy h2 { margin:10px 0 14px; font-size:clamp(48px,4.7vw,68px); }
.home-calendar-v26 .home-calendar-lead { margin-bottom:20px; font-size:15.5px; }
.home-calendar-v26 .home-calendar-list { margin-bottom:22px; }
.home-calendar-v26 .home-calendar-row { padding:12px 0; grid-template-columns:56px minmax(150px,.65fr) 1.35fr; }
.home-calendar-v26 .home-calendar-row > strong { font-size:17px; }
.home-calendar-v26 .home-calendar-row > p { font-size:13px; }
.home-after-hours { display:grid; grid-template-columns:minmax(0,.82fr) minmax(430px,1.18fr); min-height:420px; background:#0f1010; color:#eee7dc; border-top:1px solid rgba(255,255,255,.08); }
.home-after-hours-copy { display:flex; flex-direction:column; justify-content:center; padding:54px var(--v26-gutter); }
.home-after-hours-copy h2 { margin:10px 0 16px; font:500 clamp(52px,5vw,74px)/.9 var(--v18-serif); letter-spacing:-.05em; }
.home-after-hours-copy > p:not(.v18-kicker) { max-width:580px; margin:0 0 26px; color:#afa9a0; font:15.5px/1.85 var(--v18-sans); word-break:keep-all; }
.home-after-hours-copy .home-primary-link { align-self:flex-start; }
.home-after-hours-image { min-height:420px; overflow:hidden; }
.home-after-hours-image img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.8) brightness(.72); }

/* Profile: stronger image, information beside it, long descriptions below */
.v25-profile .v21-profile-wrap { width:min(1500px,calc(100% - 72px)); padding-top:28px; }
.v26-profile-hero { display:grid; grid-template-columns:minmax(430px,470px) minmax(0,1fr); gap:50px; align-items:start; }
.v26-profile-visual { overflow:hidden; border:1px solid rgba(255,255,255,.11); border-radius:16px; background:#131411; }
.v26-profile-media { position:relative; height:500px; overflow:hidden; background:#151614; }
.v26-profile-media::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,8,7,.7),transparent 46%),linear-gradient(90deg,color-mix(in srgb,var(--profile-accent) 36%,transparent),transparent 65%); pointer-events:none; }
.v26-profile-media img { width:100%; height:100%; object-fit:cover; object-position:center 22%; filter:saturate(.86) contrast(1.03); }
.v26-profile-media > span { position:absolute; z-index:2; left:18px; bottom:16px; color:#ded5c7; font:600 8px/1 var(--v18-mono); letter-spacing:.13em; }
.v26-profile-visual-caption { padding:20px 22px 22px; }
.v26-profile-visual-caption strong { display:block; font:500 34px/.95 var(--v21-display); }
.v26-profile-visual-caption em { display:block; margin-top:6px; color:#979188; font:500 12px/1 var(--v18-sans); font-style:normal; }
.v26-profile-visual-caption small { display:block; margin-top:13px; color:#bd9f66; font:600 10px/1.4 var(--v18-sans); letter-spacing:.07em; }
.v26-profile-primary { min-width:0; padding-top:12px; }
.v26-profile-heading { padding-bottom:24px; }
.v26-profile-heading h1 { font-size:clamp(68px,6.2vw,100px); }
.v26-profile-heading blockquote { max-width:880px; font-size:clamp(23px,2vw,31px); }
.v26-profile-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.11); border-bottom:1px solid rgba(255,255,255,.11); }
.v26-profile-facts > div { min-width:0; min-height:82px; padding:17px 18px 15px 0; border-right:1px solid rgba(255,255,255,.09); border-bottom:1px solid rgba(255,255,255,.08); }
.v26-profile-facts > div:nth-child(3n) { border-right:0; padding-left:18px; }
.v26-profile-facts > div:nth-child(3n+2) { padding-left:18px; }
.v26-profile-facts > div:nth-child(n+4) { border-bottom:0; }
.v26-profile-facts span { display:block; margin-bottom:7px; color:#777168; font:600 9px/1 var(--v18-mono); letter-spacing:.12em; }
.v26-profile-facts strong { display:block; color:#ddd7cd; font:500 clamp(18px,1.45vw,24px)/1.18 var(--v21-display); white-space:normal; word-break:keep-all; }
.v26-trace-dock { margin-top:24px; }
.v26-trace-dock button { height:68px; }
.v25-profile-details { margin-top:30px; }
.v25-profile-summary-grid { padding-top:32px; }
.v21-profile { padding-bottom:56px; }

/* Audio transcript: stronger speaker identity */
.transcript-row strong { justify-self:start; align-self:start; display:inline-flex; align-items:center; min-height:27px; padding:3px 8px; border:1px solid color-mix(in srgb,var(--speaker-color,#9fb5be) 38%,transparent); border-radius:999px; background:color-mix(in srgb,var(--speaker-color,#9fb5be) 9%,transparent); line-height:1.25!important; }
.transcript-row.active strong { background:color-mix(in srgb,var(--speaker-color,#9fb5be) 16%,transparent); }

@media (max-width:1250px) {
  .topbar { grid-template-columns:minmax(230px,300px) 1fr 170px!important; }
  .music-launcher { width:165px; }
  .music-launcher-copy strong { font-size:12px; }
  .brand small { display:none!important; }
  .main-nav { gap:17px!important; }
  .home-student-entry { grid-template-columns:1fr 1.2fr; }
  .home-student-entry .home-primary-link { grid-column:2; justify-self:start; }
  .v26-profile-hero { grid-template-columns:390px minmax(0,1fr); gap:36px; }
  .v26-profile-media { height:450px; }
}
@media (max-width:980px) {
  .music-launcher { width:56px; grid-template-columns:1fr; padding:0; place-items:center; }
  .music-launcher-copy,.music-launcher > i { display:none; }
  .music-panel { position:fixed; top:90px; right:16px; width:min(370px,calc(100vw - 32px)); }
  .home-overview-v26,.home-calendar-v26,.home-after-hours { grid-template-columns:1fr; }
  .home-overview-v26 .home-overview-image,.home-calendar-v26 .home-calendar-image,.home-after-hours-image { min-height:350px; max-height:390px; }
  .home-student-entry { grid-template-columns:1fr; gap:20px; }
  .home-student-entry .home-primary-link { grid-column:auto; justify-self:start; }
  .v26-profile-hero { grid-template-columns:1fr; }
  .v26-profile-visual { display:grid; grid-template-columns:330px 1fr; }
  .v26-profile-media { height:360px; }
}
@media (max-width:640px) {
  :root { --v26-gutter:20px; }
  .home-v26 .v18-hero,.academy-hero { height:540px!important; min-height:540px!important; }
  .home-v26 .v18-hero-copy h1 span,.academy-hero-copy.shared-hero-copy h1 { font-size:clamp(58px,17vw,78px)!important; }
  .home-v26 .v18-hero-copy h1 em { font-size:28px!important; }
  .home-overview-v26 { padding-top:56px; }
  .home-overview-v26 .home-overview-facts { grid-template-columns:1fr; }
  .home-calendar-v26 .home-calendar-copy,.home-after-hours-copy { padding:48px 20px; }
  .home-calendar-v26 .home-calendar-row { grid-template-columns:50px 1fr; }
  .home-calendar-v26 .home-calendar-row > p { grid-column:2; }
  .v25-profile .v21-profile-wrap { width:calc(100% - 30px); }
  .v26-profile-visual { display:block; }
  .v26-profile-media { height:420px; }
  .v26-profile-facts { grid-template-columns:repeat(2,1fr); }
  .v26-profile-facts > div,.v26-profile-facts > div:nth-child(3n),.v26-profile-facts > div:nth-child(3n+2) { padding:15px 12px; border-right:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); }
  .v26-profile-facts > div:nth-child(2n) { border-right:0; }
  .v26-profile-facts > div:nth-last-child(-n+2) { border-bottom:0; }
}


/* =========================================================
   V27 — ONE-SCREEN HOME + REAL CHARACTER PORTRAITS
   ========================================================= */
body.home-route { overflow:hidden; }
body.home-route .scroll-progress,
body.home-route .footer { display:none!important; }
body.home-route #app { height:calc(100svh - 92px); overflow:hidden; }
.home-v27 { height:100%; min-height:0; overflow:hidden; background:#0d0e0c; }
.home-cover-v27 { position:relative; width:100%; height:100%; min-height:0; overflow:hidden; color:#f5f1e8; }
.home-cover-media,.home-cover-media img,.home-cover-shade { position:absolute; inset:0; width:100%; height:100%; }
.home-cover-media img { object-fit:cover; object-position:center 47%; display:block; }
.home-cover-shade { background:linear-gradient(90deg,rgba(7,7,6,.82) 0%,rgba(7,7,6,.48) 44%,rgba(7,7,6,.15) 75%,rgba(7,7,6,.08) 100%),linear-gradient(0deg,rgba(7,7,6,.48),transparent 46%); }
.home-cover-copy { position:absolute; left:clamp(34px,5vw,82px); bottom:clamp(42px,7vh,76px); width:min(720px,66vw); }
.home-cover-copy .v18-kicker { color:#c4a96e; font-size:11.5px; }
.home-cover-copy h1 { margin:14px 0 0; }
.home-cover-copy h1 span { display:block; font:500 clamp(68px,7.2vw,108px)/.8 var(--v21-display); letter-spacing:-.06em; }
.home-cover-copy h1 em { display:block; margin-top:14px; font:400 italic clamp(27px,2.7vw,40px)/1 var(--v18-serif); color:#e7dfd1; }
.home-cover-official { margin:22px 0 0!important; color:#c4bdb2!important; font:500 13px/1.5 var(--v18-sans)!important; letter-spacing:.055em; }
.home-cover-actions { display:flex; gap:34px; margin-top:30px; }
.home-cover-link { display:inline-flex; align-items:center; gap:11px; min-height:44px; padding:0; border:0; border-bottom:1px solid rgba(255,255,255,.25); background:none; color:#c8c2b8; cursor:pointer; font:600 13px/1 var(--v18-sans); letter-spacing:.035em; transition:.2s; }
.home-cover-link.primary { color:#f3eee5; border-color:#b89a5d; }
.home-cover-link:hover { color:#fff; border-color:#e0c587; transform:translateY(-1px); }
.home-cover-link i { font-style:normal; }

/* Real portraits: keep the cards compact, but let faces breathe. */
.v21-student-card { height:486px; grid-template-rows:218px 1fr; }
.v21-card-media img { object-position:center 18%; filter:saturate(.9) contrast(1.02); }
.v21-student-card:hover .v21-card-media img { filter:saturate(1) contrast(1.03); }
.v26-profile-media { height:530px; }
.v26-profile-media img { object-position:center 14%; filter:saturate(.95) contrast(1.02); }
.v26-profile-media::after { background:linear-gradient(0deg,rgba(8,8,7,.62),transparent 42%),linear-gradient(90deg,color-mix(in srgb,var(--profile-accent) 20%,transparent),transparent 66%); }
.v18-ig-profile > img,.v18-post-side header img,.ig-avatar img,.profile-switcher img,.story-item img,.v18-ig-stories img { object-fit:cover; object-position:center 14%; }

@media (max-width:980px) {
  body.home-route #app { height:calc(100svh - 78px); }
  .home-cover-copy { width:min(760px,82vw); }
  .v26-profile-media { height:470px; }
}
@media (max-width:640px) {
  body.home-route #app { height:calc(100svh - 72px); }
  .home-cover-media img { object-position:58% center; }
  .home-cover-copy { left:22px; right:22px; bottom:34px; width:auto; }
  .home-cover-copy h1 span { font-size:clamp(54px,16vw,76px); }
  .home-cover-copy h1 em { font-size:26px; }
  .home-cover-official { font-size:11.5px!important; }
  .home-cover-actions { gap:22px; flex-wrap:wrap; margin-top:24px; }
  .home-cover-link { font-size:12px; }
  .v21-student-card { height:478px; grid-template-rows:225px 1fr; }
  .v26-profile-media { height:460px; }
}

/* v28 HaloWire conversation texture */
.v28-halo-replies {
  margin: 16px 0 2px;
  padding: 12px 14px;
  border-left: 1px solid rgba(128, 204, 211, .34);
  background: rgba(117, 187, 194, .035);
}
.v28-halo-replies p {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 10px;
  margin: 0;
  padding: 5px 0;
  font-size: 12px;
  line-height: 1.55;
  color: #a6abad;
}
.v28-halo-replies strong {
  color: #74c0c7;
  font-family: var(--mono);
  font-size:11.5px;
  font-weight: 600;
}
.v28-halo-replies span { color: #c3c6c5; }
@media (max-width: 720px) {
  .v28-halo-replies p { grid-template-columns: 1fr; gap: 2px; font-size: 12px; }
}


/* v29 — bigger social typography, reel support, floating lyrics */
.v18-ig-top { height:64px; }
.v18-ig-top strong { font-size:32px; }
.v18-ig-top span { font-size:11.5px; }
.v18-ig-profile { grid-template-columns:120px 1fr auto; gap:30px; padding:38px 46px 28px; }
.v18-ig-profile > img { width:108px; height:108px; }
.v18-ig-handle strong { font-size:24px; }
.v18-ig-profile p { margin-top:14px; font-size:15px; line-height:1.7; }
.v18-ig-stats { gap:28px; }
.v18-ig-stats span { font-size:12px; }
.v18-ig-stats strong { font-size:18px; }
.v18-ig-stories { gap:22px; padding:10px 46px 30px; }
.v18-ig-stories i { width:60px; height:60px; }
.v18-ig-stories small { font-size:11.5px; }
.v18-ig-tabs { height:52px; }
.v18-ig-tabs strong,.v18-ig-tabs span { font-size:11.5px; }
.v18-ig-grid button { background:#d8d5cf; }
.v18-ig-grid .v18-grid-meta { font-size:14px; font-weight:700; }
.media-frame { position:relative; width:100%; height:100%; }
.media-frame img,.media-frame video { width:100%; height:100%; object-fit:cover; display:block; }
.v18-reel-badge { position:absolute; top:10px; right:10px; padding:6px 9px; border-radius:999px; background:rgba(0,0,0,.62); color:#fff; font:700 10px/1 var(--v18-mono); letter-spacing:.08em; }
.v18-post-view { width:min(1120px,96vw); }
.v18-post-image { background:#111; display:grid; place-items:center; }
.v18-post-image img,.v18-post-image video { width:100%; height:100%; object-fit:cover; display:block; }
.v18-post-side { width:420px; }
.v18-post-side header strong { font-size:16px; }
.v18-post-caption { font-size:17px; line-height:1.8; }
.v18-comment { gap:12px; }
.v18-comment strong,.v18-comment button { font-size:14px; }
.v18-comment p { font-size:15px; line-height:1.7; }
.v18-comments { max-height:430px; }
.v18-post-side footer strong { font-size:15px; }
.v18-post-side footer small { font-size:11.5px; }
.v18-halo-modal { width:min(960px,95vw); }
.v18-halo-modal > header { padding:28px 32px; }
.v18-halo-modal header strong { font-size:29px; }
.v18-halo-modal header small,.v18-halo-modal header > i,.v18-halo-subject span { font-size:11px; }
.v18-halo-subject { padding:20px 32px; }
.v18-halo-subject strong { font-size:14px; }
.v18-halo-list article { padding:30px 32px; }
.v18-halo-meta span { font-size:13px; }
.v18-halo-meta time,.v18-halo-meta i { font-size:11px; }
.v18-halo-list article > p { margin:18px 0 20px; font-size:17px; line-height:1.85; }
.v18-mini-poll span b,.v18-mini-poll span em { font-size:13px; }
.v18-mini-poll span { padding:11px 12px; }
.v28-halo-replies p { gap:10px; padding:10px 0; }
.v28-halo-replies strong { font-size:13px; }
.v28-halo-replies span { font-size:15px; line-height:1.7; }
.v18-halo-list footer { font-size:11.5px; }
.music-panel { width:420px; overflow:hidden; }
.music-now strong { font-size:19px; }
.music-now time { font-size:12px; }
.music-track-list button { grid-template-columns:34px 1fr auto; align-items:start; gap:12px; }
.music-track-list button div { display:flex; flex-direction:column; gap:5px; min-width:0; }
.music-track-list button strong { font-size:16px; }
.music-track-list button small { color:#7f786e; font:500 11px/1.45 var(--v18-sans); }
.music-track-list button time { font-size:11.5px; }
.music-lyrics { position:absolute; inset:18px 18px 18px 18px; z-index:4; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.12); border-radius:12px; background:rgba(11,12,11,.98); box-shadow:0 24px 80px rgba(0,0,0,.52); }
.music-lyrics[hidden] { display:none!important; }
.music-lyrics-header { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:16px 18px; border-bottom:1px solid rgba(255,255,255,.08); }
.music-lyrics-header small { color:#827d74; font:600 8px/1 var(--v18-mono); letter-spacing:.16em; }
.music-lyrics-header strong { display:block; margin-top:7px; color:#f0eadf; font:600 20px/1.2 var(--v18-serif); }
.music-lyrics-header button { width:32px; height:32px; border:0; border-radius:50%; background:rgba(255,255,255,.05); color:#c8c1b4; font-size:22px; cursor:pointer; }
.music-lyrics-body { flex:1; overflow:auto; padding:16px 18px 18px; }
.music-lyrics-section + .music-lyrics-section { margin-top:18px; padding-top:18px; border-top:1px solid rgba(255,255,255,.06); }
.music-lyrics-section h4 { margin:0 0 12px; color:#baaa85; font:600 11px/1 var(--v18-mono); letter-spacing:.12em; text-transform:uppercase; }
.music-line-pair { display:grid; gap:5px; margin-bottom:12px; }
.music-line-en { color:#f2ede4; font:500 15px/1.65 var(--v18-sans); }
.music-line-ko { color:#a89f93; font:500 14px/1.7 var(--ko-sans); }
.music-lyrics-empty { color:#9f978b; font:14px/1.7 var(--v18-sans); }
@media (max-width: 760px) {
  .v18-ig-profile { grid-template-columns:82px 1fr; padding:24px 18px 18px; gap:16px; }
  .v18-ig-profile > img { width:74px; height:74px; }
  .v18-ig-handle strong { font-size:20px; }
  .v18-ig-profile p { font-size:14px; }
  .v18-ig-stats { grid-column:1/-1; justify-content:space-around; padding-top:14px; border-top:1px solid #eee; }
  .v18-ig-stats strong { font-size:16px; }
  .v18-post-view { grid-template-columns:1fr; }
  .v18-post-side { width:auto; }
  .v18-halo-modal { width:100%; }
  .music-panel { width:min(420px,calc(100vw - 32px)); }
  .music-lyrics { inset:12px; }
}


/* v30 — Instagram desktop layout & muted reel presentation */
.modal.v30-social-modal,.modal.v30-post-overlay { background:rgba(18,18,18,.78)!important; backdrop-filter:blur(14px); }
.v30-instagram { width:min(980px,94vw); max-height:90vh; overflow:auto; background:#fff; color:#111; border:1px solid #d8d8d8; box-shadow:0 32px 90px rgba(0,0,0,.42); }
.v30-ig-appbar { height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 28px; border-bottom:1px solid #e7e7e7; }
.v30-ig-appbar strong { font:600 24px/1 var(--v18-serif); font-style:italic; }
.v30-ig-appbar span { font:700 18px/1 var(--v18-sans); }
.v30-ig-profile { display:grid; grid-template-columns:150px 1fr; gap:38px; align-items:center; padding:42px 74px 28px; }
.v30-ig-avatar { display:grid; place-items:center; }
.v30-ig-avatar img { width:118px; height:118px; object-fit:cover; object-position:center 14%; border-radius:50%; border:1px solid #d0d0d0; padding:3px; background:#fff; }
.v30-ig-main { min-width:0; }
.v30-ig-handle { display:flex; align-items:center; gap:8px; margin-bottom:18px; }
.v30-ig-handle strong { font:500 24px/1.1 var(--v18-sans); }
.v30-ig-handle i { width:17px; height:17px; display:grid; place-items:center; border-radius:50%; background:#2498ed; color:white; font:800 10px/1 var(--v18-sans); font-style:normal; }
.v30-ig-stats { display:flex; gap:34px; margin-bottom:18px; color:#222; }
.v30-ig-stats span { font:14px/1.2 var(--v18-sans); }
.v30-ig-stats strong { font-weight:700; }
.v30-ig-bio strong { display:block; margin-bottom:6px; font:600 15px/1.2 var(--v18-sans); }
.v30-ig-bio p { margin:0; font:14px/1.65 var(--v18-sans); color:#343434; }
.v30-ig-highlights { display:flex; gap:28px; padding:12px 74px 32px; overflow:auto; }
.v30-ig-highlights > span { min-width:72px; display:flex; flex-direction:column; align-items:center; gap:8px; }
.v30-ig-highlights i { width:66px; height:66px; padding:3px; border:1px solid #d1d1d1; border-radius:50%; background:#fff; overflow:hidden; }
.v30-ig-highlights img { width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }
.v30-ig-highlights small { max-width:76px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:600 10px/1 var(--v18-sans); letter-spacing:.04em; }
.v30-ig-tabs { height:52px; display:flex; align-items:center; justify-content:center; gap:58px; border-top:1px solid #e5e5e5; }
.v30-ig-tabs strong,.v30-ig-tabs span { font:600 10px/1 var(--v18-sans); letter-spacing:.12em; }
.v30-ig-tabs span { color:#aaa; }
.v30-ig-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; background:#fff; }
.v30-ig-grid button { position:relative; aspect-ratio:1; overflow:hidden; border:0; padding:0; background:#eee; cursor:pointer; }
.v30-ig-grid .media-frame,.v30-ig-grid img,.v30-ig-grid video { width:100%; height:100%; display:block; object-fit:cover; }
.v30-ig-grid button:hover .v18-grid-meta { opacity:1; }

.v30-post-view { width:min(1180px,96vw); height:min(790px,92vh); display:grid; grid-template-columns:minmax(0,1.08fr) 510px; overflow:hidden; background:#fff; color:#111; }
.v30-post-media { min-width:0; display:grid; place-items:center; background:#050505; }
.v30-post-media img,.v30-post-media video { width:100%; height:100%; object-fit:contain; display:block; background:#050505; }
.v30-post-side { min-width:0; display:grid; grid-template-rows:62px 1fr auto; background:#fff; }
.v30-post-side > header { display:flex; align-items:center; gap:12px; padding:0 18px; border-bottom:1px solid #e5e5e5; }
.v30-post-side > header img { width:34px; height:34px; object-fit:cover; object-position:center 14%; border-radius:50%; }
.v30-post-side > header strong { font:700 14px/1 var(--v18-sans); }
.v30-post-side > header span { margin-left:auto; font:700 18px/1 var(--v18-sans); }
.v30-post-scroll { min-height:0; overflow:auto; }
.v30-caption-row { display:grid; grid-template-columns:38px 1fr; gap:12px; padding:20px 18px 14px; }
.v30-caption-row img { width:34px; height:34px; object-fit:cover; object-position:center 14%; border-radius:50%; }
.v30-caption-row strong { font:700 14px/1.2 var(--v18-sans); }
.v30-caption-row p { display:inline; margin:0 0 0 8px; font:14px/1.65 var(--v18-sans); color:#181818; }
.v30-caption-row small { display:block; margin-top:8px; color:#9a9a9a; font:11px/1 var(--v18-sans); }
.v30-comments { padding:0 18px 14px; }
.v30-comment-row { display:grid; grid-template-columns:38px 1fr 24px; gap:12px; align-items:start; padding:12px 0; }
.v30-comment-avatar { width:34px; height:34px; display:block; border-radius:50%; background:#eef0f2; overflow:hidden; }
.v30-comment-avatar:empty::before { content:''; width:14px; height:14px; display:block; margin:10px auto 0; border-radius:50%; background:#c6cbd0; box-shadow:0 12px 0 5px #c6cbd0; }
.v30-comment-avatar img { width:100%; height:100%; object-fit:cover; object-position:center 14%; }
.v30-comment-row button,.v30-comment-row strong { display:inline; border:0; padding:0; background:none; color:#111; font:700 14px/1.4 var(--v18-sans); cursor:pointer; }
.v30-comment-row p { display:inline; margin:0 0 0 7px; font:14px/1.55 var(--v18-sans); color:#1e1e1e; }
.v30-comment-row small { display:block; margin-top:7px; color:#999; font:600 11px/1 var(--v18-sans); }
.v30-comment-row > i { padding-top:3px; color:#111; font:600 18px/1 var(--v18-sans); font-style:normal; }
.v30-post-side > footer { border-top:1px solid #e5e5e5; }
.v30-actions { display:flex; gap:15px; align-items:center; padding:13px 16px 5px; font-size:26px; }
.v30-actions i { margin-left:auto; font-style:normal; }
.v30-post-side > footer > strong { display:block; padding:3px 16px 0; font:700 14px/1.3 var(--v18-sans); }
.v30-post-side > footer > small { display:block; padding:7px 16px 12px; color:#999; font:11px/1 var(--v18-sans); }
.v30-reply-box { min-height:52px; display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:8px; padding:0 15px; border-top:1px solid #ededed; }
.v30-reply-box span { font-size:20px; }
.v30-reply-box em { color:#aaa; font:13px/1 var(--v18-sans); font-style:normal; }
.v30-reply-box button { border:0; background:none; color:#67a7ff; font:700 13px/1 var(--v18-sans); }
@media(max-width:800px){
  .v30-instagram { width:100%; max-height:92vh; }
  .v30-ig-profile { grid-template-columns:92px 1fr; gap:18px; padding:28px 20px 20px; }
  .v30-ig-avatar img { width:82px; height:82px; }
  .v30-ig-handle strong { font-size:20px; }
  .v30-ig-stats { gap:14px; flex-wrap:wrap; }
  .v30-ig-stats span { font-size:12px; }
  .v30-ig-highlights { padding:8px 20px 24px; gap:18px; }
  .v30-post-view { width:100%; height:92vh; grid-template-columns:1fr; grid-template-rows:minmax(0,55%) minmax(0,45%); }
  .v30-post-side { grid-template-rows:56px 1fr auto; }
}


/* v31 — Campus Circles / social hierarchy */
.v31-circles { width:min(1540px,calc(100% - 56px)); margin:0 auto; padding:50px 0 54px; border-bottom:1px solid rgba(255,255,255,.10); }
.v31-circles-head { display:grid; grid-template-columns:minmax(0,.9fr) minmax(430px,.7fr); gap:70px; align-items:end; margin-bottom:28px; }
.v31-circles-head .v18-kicker { color:#a78d59; }
.v31-circles-head h2 { margin:8px 0 0; color:#f1ece3; font:500 clamp(42px,4vw,68px)/.95 var(--v21-display); letter-spacing:-.045em; }
.v31-circles-head > p { margin:0; max-width:650px; color:#a29d95; font:500 15px/1.85 var(--v18-sans); word-break:keep-all; }
.v31-power-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.v31-power-card { position:relative; min-height:370px; display:flex; flex-direction:column; padding:28px; overflow:hidden; border:1px solid rgba(255,255,255,.11); border-radius:16px; background:#151613; }
.v31-power-card::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.78; }
.v31-power-card.kings::before { background:radial-gradient(circle at 10% 0%,rgba(115,34,48,.32),transparent 38%),linear-gradient(135deg,rgba(95,67,32,.13),transparent 55%); }
.v31-power-card.pearl::before { background:radial-gradient(circle at 90% 0%,rgba(184,163,119,.18),transparent 37%),linear-gradient(135deg,rgba(87,78,58,.13),transparent 60%); }
.v31-power-card > * { position:relative; z-index:1; }
.v31-power-top { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.09); }
.v31-power-top span { color:#7f7b74; font:600 8px/1 var(--v18-mono); letter-spacing:.15em; }
.v31-power-top strong { color:#e7dcc5; font:500 clamp(28px,2.6vw,44px)/.9 var(--v21-display); letter-spacing:-.035em; }
.v31-public-copy { margin:22px 0 0; max-width:760px; color:#aaa49a; font:500 15px/1.82 var(--v18-sans); word-break:keep-all; }
.v31-campus-note { margin:20px 0 24px; padding:15px 16px; border-left:2px solid #a88d56; background:rgba(255,255,255,.025); }
.v31-campus-note span { display:block; margin-bottom:7px; color:#aa915f; font:700 8px/1 var(--v18-mono); letter-spacing:.15em; }
.v31-campus-note p { margin:0; color:#ddd5c7; font:500 15px/1.65 "Noto Serif KR",var(--v18-serif); word-break:keep-all; }
.v31-member-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:auto; }
.v31-member-row button { min-width:0; flex:1 1 150px; display:grid; grid-template-columns:46px minmax(0,1fr); gap:11px; align-items:center; padding:8px; border:1px solid rgba(255,255,255,.09); border-radius:10px; background:rgba(0,0,0,.12); color:#d7d0c5; cursor:pointer; text-align:left; transition:.2s; }
.v31-member-row button:hover { transform:translateY(-2px); border-color:rgba(196,169,111,.42); background:rgba(168,141,88,.08); }
.v31-member-row img { width:46px; height:46px; border-radius:50%; object-fit:cover; object-position:center 24%; }
.v31-member-row span { min-width:0; display:block; }
.v31-member-row b { display:block; overflow:hidden; text-overflow:ellipsis; color:#e9e2d7; font:600 12px/1.2 var(--v18-sans); white-space:nowrap; }
.v31-member-row small { display:block; margin-top:5px; overflow:hidden; text-overflow:ellipsis; color:#807b73; font:600 7px/1 var(--v18-mono); letter-spacing:.08em; white-space:nowrap; }
.v31-unofficial-head { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin:42px 0 14px; }
.v31-unofficial-head span { color:#ac915c; font:700 9px/1 var(--v18-mono); letter-spacing:.16em; }
.v31-unofficial-head p { margin:0; color:#79766f; font:500 12px/1.5 var(--v18-sans); }
.v31-caste-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border:1px solid rgba(255,255,255,.09); border-radius:14px; overflow:hidden; }
.v31-caste-grid article { min-width:0; min-height:158px; padding:20px; border-right:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.015); }
.v31-caste-grid article:last-child { border-right:0; }
.v31-caste-grid span { display:block; color:#9c8353; font:700 8px/1.25 var(--v18-mono); letter-spacing:.12em; }
.v31-caste-grid strong { display:block; margin:13px 0 10px; color:#ddd6ca; font:500 16px/1.35 var(--v21-display); }
.v31-caste-grid p { margin:0; color:#8f8a82; font:500 12px/1.65 var(--v18-sans); word-break:keep-all; }
@media (max-width:1100px) {
  .v31-circles-head { grid-template-columns:1fr; gap:18px; }
  .v31-power-grid { grid-template-columns:1fr; }
  .v31-caste-grid { grid-template-columns:repeat(2,1fr); }
  .v31-caste-grid article { border-bottom:1px solid rgba(255,255,255,.09); }
  .v31-caste-grid article:nth-child(2n) { border-right:0; }
}
@media (max-width:650px) {
  .v31-circles { width:calc(100% - 28px); padding:34px 0 40px; }
  .v31-circles-head > p { font-size:14px; }
  .v31-power-card { padding:20px; }
  .v31-power-top { display:block; }
  .v31-power-top strong { display:block; margin-top:12px; }
  .v31-public-copy,.v31-campus-note p { font-size:14px; }
  .v31-caste-grid { grid-template-columns:1fr; }
  .v31-caste-grid article { border-right:0; }
  .v31-unofficial-head { display:block; }
  .v31-unofficial-head p { margin-top:8px; }
}


/* v32 — responsive rescue, split soundtrack actions, glass lyrics & intro particles */
html, body { max-width:100%; overflow-x:clip; }
.site, #app, .topbar, .footer { min-width:0; max-width:100%; }
#app > * { max-width:100%; }
img, video { max-width:100%; }

.intro-particles { position:absolute; inset:0; z-index:0; width:100%; height:100%; pointer-events:none; opacity:.9; }
.intro-noise { z-index:1; }
.intro-inner { z-index:2; }
.intro::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:radial-gradient(circle at 50% 42%,rgba(194,165,104,.07),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.018),transparent 28%,rgba(0,0,0,.12)); }

/* Track title = lyrics only. Playback has its own dedicated control. */
.music-track-list { max-height:min(330px,42vh); overflow:auto; overscroll-behavior:contain; }
.music-track-row { min-height:58px; display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:10px; align-items:center; padding:6px 4px; border-bottom:1px solid rgba(255,255,255,.07); color:#aaa59c; transition:background .18s,color .18s; }
.music-track-row:hover,.music-track-row.active { color:#f0eadf; background:rgba(255,255,255,.026); }
.music-track-play { width:32px; height:32px; display:grid; place-items:center; border:1px solid rgba(195,166,103,.24); border-radius:50%; background:rgba(195,166,103,.035); color:#c8a96a; cursor:pointer; font:600 10px/1 var(--v18-mono); }
.music-track-play:hover { border-color:rgba(195,166,103,.6); background:rgba(195,166,103,.1); }
.music-track-info { min-width:0; display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; align-items:start; padding:4px 0; border:0; background:transparent; color:inherit; cursor:pointer; text-align:left; }
.music-track-info > span { padding-top:4px; color:#777269; font:500 8px/1 var(--v18-mono); }
.music-track-row.active .music-track-info > span { color:#c5a668; }
.music-track-info > div { min-width:0; display:flex; flex-direction:column; gap:5px; }
.music-track-info strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:inherit; font:500 15px/1.2 var(--v18-sans); }
.music-track-info small { color:#7f786e; font:500 10.5px/1.4 var(--v18-sans); }
.music-track-row > time { color:#777269; font:500 10px/1 var(--v18-mono); }

/* Lyrics live beside the player on desktop rather than covering it. */
.music-lyrics { position:absolute; z-index:119; top:calc(100% + 12px); right:434px; width:430px; height:min(560px,calc(100vh - 126px)); max-height:72vh; display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:rgba(15,16,14,.76); box-shadow:0 26px 85px rgba(0,0,0,.42); backdrop-filter:blur(24px) saturate(122%); -webkit-backdrop-filter:blur(24px) saturate(122%); }
.music-lyrics[hidden] { display:none!important; }
.music-lyrics-header { background:linear-gradient(180deg,rgba(255,255,255,.025),transparent); }
.music-lyrics-body { scrollbar-width:thin; scrollbar-color:rgba(195,166,103,.35) transparent; }
.music-line-en { text-shadow:0 1px 12px rgba(0,0,0,.18); }

@media (max-width: 980px) {
  .topbar { width:100%!important; grid-template-columns:minmax(0,1fr) auto auto!important; }
  .header-actions { min-width:0; }
  .music-panel { position:fixed; top:90px; right:16px; width:min(420px,calc(100vw - 32px)); max-height:calc(100dvh - 112px); overflow:auto; }
  .music-lyrics { position:fixed; top:90px; left:16px; right:auto; width:min(420px,calc(100vw - 470px)); height:min(560px,calc(100dvh - 112px)); max-height:calc(100dvh - 112px); }
}

@media (max-width: 760px) {
  html, body { overflow-x:hidden; }
  .topbar { height:72px!important; padding:0 12px!important; grid-template-columns:minmax(0,1fr) auto!important; }
  .brand { min-width:0; }
  .brand span { min-width:0; }
  .brand strong { display:block; max-width:58vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .menu-button { grid-column:2; }

  /* Keep soundtrack reachable on phones without squeezing the header. */
  .header-actions { display:block!important; position:fixed; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:145; }
  .music-shell { position:static; }
  .music-launcher { width:54px!important; height:54px; grid-template-columns:1fr!important; padding:0!important; place-items:center; border-radius:50%; box-shadow:0 12px 34px rgba(0,0,0,.38); background:rgba(20,21,18,.94); backdrop-filter:blur(18px); }
  .music-launcher-copy,.music-launcher > i { display:none!important; }
  .music-note { width:30px; height:30px; }
  .music-panel { position:fixed!important; top:auto!important; left:12px!important; right:12px!important; bottom:calc(78px + env(safe-area-inset-bottom))!important; width:auto!important; max-height:calc(100dvh - 104px)!important; padding:15px; overflow:auto; border-radius:16px; }
  .music-now strong { font-size:19px; }
  .music-controls button { height:42px; }
  .music-track-list { max-height:min(290px,36dvh); }
  .music-track-row { grid-template-columns:34px minmax(0,1fr) 38px; min-height:62px; }
  .music-track-info { grid-template-columns:24px minmax(0,1fr); gap:7px; }
  .music-track-info strong { font-size:14px; }
  .music-track-info small { font-size:11.5px; }

  /* On phones, lyrics become a readable glass sheet instead of going off-screen. */
  .music-lyrics { position:fixed!important; top:84px!important; left:12px!important; right:12px!important; bottom:calc(78px + env(safe-area-inset-bottom))!important; width:auto!important; height:auto!important; max-height:none!important; border-radius:16px; background:rgba(14,15,13,.86); }
  .music-lyrics-header { padding:14px 16px; }
  .music-lyrics-header strong { font-size:19px; }
  .music-lyrics-body { padding:14px 16px 18px; }
  .music-line-en { font-size:14px; line-height:1.58; }
  .music-line-ko { font-size:13px; line-height:1.62; }

  .intro-inner { width:min(calc(100% - 24px),760px); padding:30px 12px; }
  .intro-crest-large { width:clamp(190px,58vw,280px)!important; margin-bottom:20px; }
  .intro-subtitle { margin:19px 0 32px; letter-spacing:.42em; font-size:11.5px; }
  .enter-button { max-width:100%; }

  .footer { overflow:hidden; }
  .footer-brand { min-width:0; }
  .footer-brand div { min-width:0; }
}

@media (max-width: 420px) {
  .brand strong { max-width:48vw; font-size:15px!important; }
  .brand-crest { width:38px!important; }
  .music-panel { left:8px!important; right:8px!important; }
  .music-lyrics { left:8px!important; right:8px!important; }
  .intro-subtitle { letter-spacing:.3em; }
  .music-track-info small { display:none; }
  .music-track-row { min-height:54px; }
}

@media (prefers-reduced-motion: reduce) {
  .intro-particles { opacity:.52; }
}

/* v33 — dynamic lyric docking + visible entrance particles */
.intro-particles {
  z-index: 1!important;
  opacity: 1!important;
  mix-blend-mode: screen;
  filter: saturate(1.08);
}
.intro-noise { z-index: 2!important; }
.intro-inner { z-index: 3!important; }
.intro::after { z-index: 0!important; }

@media (min-width:981px) {
  .music-shell { --v33-panel-w: 420px; --v33-gap: 14px; }
  .music-lyrics {
    top: calc(100% + 12px)!important;
    left: auto!important;
    right: 0!important;
    width: 430px!important;
    height: min(560px,calc(100vh - 126px))!important;
    max-height: 72vh!important;
    transition: right .28s cubic-bezier(.2,.75,.2,1), opacity .2s ease, transform .28s cubic-bezier(.2,.75,.2,1);
  }
  /* Playlist open: lyrics sit directly to its left. */
  .music-shell.panel-open .music-lyrics {
    right: calc(var(--v33-panel-w) + var(--v33-gap))!important;
    transform: translateX(0);
  }
  /* Playlist closed: lyrics slide back into the right-hand player position. */
  .music-shell:not(.panel-open) .music-lyrics {
    right: 0!important;
    transform: translateX(0);
  }
}

/* Tablet/phone use one safe overlay; docking animation is desktop-only. */
@media (max-width:980px) {
  .music-lyrics { transition: opacity .2s ease, transform .2s ease; }
}

@media (prefers-reduced-motion: reduce) {
  .intro-particles { opacity:.72!important; mix-blend-mode:normal; }
  .music-lyrics { transition:none!important; }
}

/* v33 mobile lyrics layer */
@media (max-width:760px) {
  .music-lyrics { z-index:151!important; }
}


/* v34 — profile balance, consistent trace dock, compact archive refresh */
.v26-profile-hero { align-items:stretch; }
.v26-profile-primary {
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:40px 0 10px;
}
.v26-profile-heading { padding-bottom:28px; }
.v26-profile-heading .v18-kicker { margin-bottom:10px; }
.v26-profile-heading > span { margin-top:12px; }
.v26-profile-heading blockquote { margin-top:20px; }
.v26-trace-dock { margin-top:auto; }
.v26-trace-dock button { min-height:72px; }
.v26-trace-dock button strong { font-size:11px; }
.v26-trace-dock button small { font-size:10.5px; }

/* keep the trace buttons visible and uniform on every character profile */
.v21-trace-dock { align-items:stretch; }
.v21-trace-dock button { align-self:stretch; }

/* instagram post view: reduce awkward dead space in the side panel */
.v30-post-view { height:min(760px,90vh); }
.v30-post-side { align-content:start; }
.v30-post-scroll { display:flex; flex-direction:column; justify-content:flex-start; }
.v30-comments { padding-bottom:6px; }

/* archive index redesign for 10+ records */
.archive-header {
  gap:26px;
  padding:54px 0 28px;
  align-items:start;
}
.archive-header h1 { font-size:clamp(44px,5.8vw,78px); }
.archive-header p { margin-top:14px; max-width:780px; }
.terminal-status {
  min-width:170px;
  align-self:start;
  padding:14px 16px;
  border:1px solid rgba(130,154,166,.16);
  background:rgba(118,145,157,.05);
  line-height:1.7;
}
.archive-index-summary {
  margin-top:22px;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.archive-index-summary > div { min-height:92px; padding:18px 20px; }
.archive-index-summary strong { font-size:30px; }
.archive-toolbar { padding:22px 0 18px; }
.call-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  border-top:0;
  margin-top:4px;
}
.call-row {
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:
    "id status"
    "title title"
    "duration date"
    "arrow arrow";
  gap:14px 18px;
  min-height:220px;
  padding:22px 22px 18px;
  border:1px solid rgba(130,154,166,.15);
  border-radius:18px;
  background:rgba(11,13,15,.92);
}
.call-row:hover {
  padding:22px 22px 18px;
  border-color:rgba(162,191,205,.28);
  background:rgba(19,23,26,.96);
  transform:translateY(-3px);
}
.call-row .id {
  grid-area:id;
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#9aabb3;
  font:500 10px/1 var(--mono);
  letter-spacing:.14em;
}
.call-row .id::before {
  content:'녹음';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:18px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid rgba(130,154,166,.22);
  color:#6f828a;
  font:500 8px/1 var(--mono);
  letter-spacing:.1em;
}
.call-title { grid-area:title; }
.call-title small { margin-bottom:10px; }
.call-title strong {
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  font-size:28px;
  line-height:1.08;
}
.call-title p {
  margin-top:11px;
  color:#79868c;
  font-size:12.5px;
  line-height:1.7;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.call-duration,
.call-date {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11.5px !important;
  letter-spacing:.08em;
}
.call-duration { grid-area:duration; justify-self:start; }
.call-date { grid-area:date; justify-self:end; }
.call-duration::before { content:'⏱'; opacity:.6; font-size:11.5px; }
.call-date::before { content:'◦'; opacity:.6; font-size:16px; line-height:0; }
.call-row .status {
  grid-area:status;
  justify-self:end;
  align-self:start;
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(127,159,138,.24);
  background:rgba(110,145,121,.08);
  color:#93af99;
  font-size:10.5px;
  letter-spacing:.12em;
}
.call-row .arrow {
  grid-area:arrow;
  justify-self:end;
  align-self:end;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(130,154,166,.18);
  color:#8ba0aa;
  font-size:17px;
}
.v25-limbo-record { margin-top:34px; }
.v18-archive-foot { margin-top:28px; }

@media (max-width: 1160px) {
  .call-list { grid-template-columns:1fr; }
}
@media (max-width: 980px) {
  .v26-profile-primary {
    padding:18px 0 6px;
  }
  .v26-trace-dock { margin-top:24px; }
}
@media (max-width: 840px) {
  .archive-header { grid-template-columns:1fr; }
  .terminal-status { min-width:0; width:100%; }
  .call-row {
    min-height:0;
    padding:18px 18px 16px;
  }
  .call-row:hover { padding:18px 18px 16px; }
  .call-title strong { font-size:24px; }
}
@media (max-width: 680px) {
  .archive-index-summary { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .call-row {
    grid-template-columns:1fr auto;
    grid-template-areas:
      "id status"
      "title title"
      "duration arrow";
    gap:12px 14px;
  }
  .call-date { display:none !important; }
  .call-row .arrow { width:32px; height:32px; }
}


/* v35 — full modal fit fixes, profile hero reposition, readable trace buttons */
.modal.v18-post-overlay {
  overflow:auto !important;
  place-items:center !important;
  padding:clamp(12px,3vw,28px) !important;
}
.v30-post-view {
  width:min(1120px, calc(100vw - 28px));
  max-height:calc(100vh - 32px);
  height:min(720px, calc(100vh - 32px));
  border-radius:14px;
}
.v30-post-side {
  grid-template-rows:56px minmax(0,1fr) auto;
}
.v30-post-side > header {
  min-height:56px;
}
.v30-post-scroll {
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
}
.v30-post-side > footer {
  background:#fff;
  position:relative;
  z-index:2;
}
.v30-actions { padding:12px 16px 4px; }
.v30-post-side > footer > strong { padding-top:2px; }
.v30-post-side > footer > small { padding:6px 16px 10px; }
.v30-reply-box { min-height:48px; }

.v26-profile-primary {
  display:block;
  padding:72px 0 18px;
}
.v26-profile-heading { padding-bottom:28px; }
.v26-profile-facts { margin-top:0; }
.v26-trace-dock {
  margin-top:28px;
}
.v21-trace-dock {
  gap:12px;
}
.v21-trace-dock button {
  min-height:76px;
  grid-template-columns:24px 1fr 16px;
  gap:13px;
  padding:0 18px;
}
.v21-trace-dock svg {
  width:20px;
  height:20px;
}
.v21-trace-dock button > span {
  gap:5px;
}
.v21-trace-dock strong {
  font-size:11.5px;
  letter-spacing:.08em;
}
.v21-trace-dock small {
  font-size:11.5px;
  line-height:1.2;
  white-space:normal;
}
.v21-trace-dock i {
  font-size:18px;
}

@media (max-width: 1180px) {
  .v26-profile-primary { padding-top:56px; }
}
@media (max-width: 980px) {
  .v26-profile-primary { padding:24px 0 8px; }
  .v26-trace-dock { margin-top:24px; }
}
@media (max-width: 800px) {
  .modal.v18-post-overlay {
    padding:8px !important;
  }
  .v30-post-view {
    width:min(100vw - 12px, 100%);
    max-height:calc(100vh - 16px);
    height:min(92vh, calc(100vh - 16px));
    border-radius:10px;
  }
}
@media (max-width: 640px) {
  .v21-trace-dock button {
    min-height:70px;
    padding:0 16px;
  }
  .v21-trace-dock strong { font-size:11.5px; }
  .v21-trace-dock small { font-size:11px; }
}


/* v36 — larger profile action text + denser Instagram post view */
.v26-profile-primary {
  padding:88px 0 22px;
}
.v21-trace-dock {
  gap:14px;
}
.v21-trace-dock button {
  min-height:84px;
  grid-template-columns:24px 1fr 16px;
  gap:14px;
  padding:0 20px;
  border-radius:11px;
}
.v21-trace-dock strong {
  font-size:12px;
  letter-spacing:.08em;
}
.v21-trace-dock small {
  font-size:11.5px;
  line-height:1.25;
  color:#8a857e;
}
.v21-trace-dock i { font-size:19px; }

.v30-post-view {
  width:min(1080px, calc(100vw - 24px));
  height:min(680px, calc(100vh - 24px));
  max-height:calc(100vh - 24px);
  grid-template-columns:minmax(0,1fr) 450px;
}
.v30-post-media { background:#0a0a0a; }
.v30-post-media img,
.v30-post-media video {
  object-fit:cover;
}
.v30-post-scroll {
  background:#fff;
}
.v30-post-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 18px 10px;
  color:#6f6f6f;
  font:600 11px/1 var(--v18-sans);
}
.v30-comments-hint {
  padding:0 18px 6px;
  color:#969696;
  font:600 12px/1.4 var(--v18-sans);
}
.v30-comments {
  padding:0 18px 18px;
}
.v30-comment-row {
  padding:14px 0;
}
.v30-comment-row small {
  margin-top:8px;
}
@media (max-width: 1180px) {
  .v26-profile-primary { padding-top:68px; }
}
@media (max-width: 980px) {
  .v26-profile-primary { padding:28px 0 10px; }
}
@media (max-width: 800px) {
  .v30-post-view {
    width:min(100vw - 10px, 100%);
    height:min(92vh, calc(100vh - 10px));
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,52%) minmax(0,48%);
  }
  .v21-trace-dock button {
    min-height:74px;
    padding:0 18px;
  }
  .v21-trace-dock strong { font-size:11.5px; }
  .v21-trace-dock small { font-size:11.5px; }
}


/* v40 — Vivian optical spacing baseline for character profile hero */
/* Vivian stays as the visual reference. Other profiles start slightly lower as one complete block. */
.v25-profile:not(.profile-vivian) .v26-profile-primary {
  padding-top:112px;
}
.v25-profile.profile-vivian .v26-profile-primary {
  padding-top:88px;
}
@media (max-width:1180px) {
  .v25-profile:not(.profile-vivian) .v26-profile-primary { padding-top:88px; }
  .v25-profile.profile-vivian .v26-profile-primary { padding-top:68px; }
}
@media (max-width:980px) {
  .v25-profile:not(.profile-vivian) .v26-profile-primary,
  .v25-profile.profile-vivian .v26-profile-primary { padding:28px 0 10px; }
}

/* v41 — mobile header/menu rescue + disable sticky scroll progress */
@media (max-width: 760px) {
  /* backdrop-filter creates a containing block for fixed descendants on some mobile browsers.
     Disable it here so the soundtrack launcher can actually float at the viewport bottom. */
  .topbar {
    grid-template-columns:minmax(0,1fr) 44px !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    background:rgba(14,14,13,.97) !important;
  }

  .menu-button {
    display:grid !important;
    grid-column:2 !important;
    grid-row:1 !important;
    align-self:center !important;
    justify-self:end !important;
    place-content:center !important;
    position:relative !important;
    z-index:180 !important;
    width:42px !important;
    height:42px !important;
    padding:9px !important;
    border:1px solid rgba(255,255,255,.11) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.025) !important;
  }
  .menu-button span:not(.sr-only) {
    width:20px !important;
    height:1px !important;
    margin:3px auto !important;
    background:#e8e2d7 !important;
  }

  .main-nav {
    z-index:175 !important;
    top:72px !important;
    inset-inline:0 !important;
  }

  /* Music stays independent from the header/menu on phones. */
  .header-actions {
    display:block !important;
    position:fixed !important;
    top:auto !important;
    left:auto !important;
    right:12px !important;
    bottom:calc(14px + env(safe-area-inset-bottom)) !important;
    margin:0 !important;
    z-index:170 !important;
  }
  .music-shell { position:static !important; }
  .music-launcher {
    width:54px !important;
    height:54px !important;
    border-radius:50% !important;
  }

  /* Desktop scroll progress is decorative; on phones it obscures content. */
  .scroll-progress {
    display:none !important;
  }
}


/* v43 — archive quick record index + soundtrack volume */
.player-sidebar {
  min-width:0;
  align-self:start;
}
.call-jump-index {
  margin-top:18px;
  border:1px solid rgba(130,154,166,.2);
  background:rgba(7,9,10,.22);
}
.call-jump-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:14px 16px;
  border-bottom:1px solid rgba(130,154,166,.16);
  color:#66777f;
  font:500 9px/1 var(--mono);
  letter-spacing:.12em;
}
.call-jump-heading strong {
  color:#91a5ae;
  font-weight:500;
}
.call-jump-list {
  max-height:min(620px,62vh);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(130,154,166,.28) transparent;
}
.call-jump-list::-webkit-scrollbar { width:6px; }
.call-jump-list::-webkit-scrollbar-track { background:transparent; }
.call-jump-list::-webkit-scrollbar-thumb { background:rgba(130,154,166,.24); border-radius:999px; }
.call-jump-item {
  width:100%;
  min-height:58px;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 44px;
  gap:10px;
  align-items:center;
  padding:11px 14px;
  border:0;
  border-bottom:1px solid rgba(130,154,166,.11);
  background:transparent;
  color:#9caab0;
  text-align:left;
  cursor:pointer;
  transition:background .16s,color .16s,box-shadow .16s;
}
.call-jump-item:last-child { border-bottom:0; }
.call-jump-item:hover {
  background:rgba(121,153,167,.065);
  color:#dce4e7;
}
.call-jump-item.active {
  background:rgba(121,153,167,.1);
  box-shadow:inset 2px 0 #8fa8b4;
  color:#e4eaed;
}
.call-jump-item > span,
.call-jump-item > time {
  color:#61737b;
  font:500 9px/1 var(--mono);
  letter-spacing:.04em;
}
.call-jump-item.active > span,
.call-jump-item.active > time { color:#90a7b1; }
.call-jump-item > strong {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:500 12px/1.45 var(--ko-sans);
}
.call-jump-item > time { text-align:right; }

.music-volume-control {
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 38px;
  gap:10px;
  align-items:center;
  padding:10px 2px 14px;
}
.music-volume-control > span,
.music-volume-control > output {
  color:#777269;
  font:600 8px/1 var(--v18-mono);
  letter-spacing:.1em;
}
.music-volume-control > output {
  text-align:right;
  letter-spacing:0;
}
.music-volume-control input[type='range'] {
  width:100%;
  min-width:0;
  accent-color:#b99b63;
  cursor:pointer;
}

@media (max-width:1080px) {
  .player-sidebar { width:100%; }
  .call-jump-list { max-height:330px; }
}
@media (max-width:560px) {
  .call-jump-item { grid-template-columns:66px minmax(0,1fr) 40px; padding-inline:12px; }
  .call-jump-item > strong { font-size:11.5px; }
}


/* v44 — mobile call-player fit fix */
@media (max-width: 760px) {
  .player-shell {
    gap: 24px !important;
    padding-top: 34px !important;
    padding-bottom: 72px !important;
  }
  .player-meta {
    padding: 22px 18px;
  }
  .player-meta .back {
    margin-bottom: 24px;
    font-size:11.5px;
  }
  .player-meta h2 {
    font-size: clamp(30px, 8vw, 38px);
  }
  .player-meta dl {
    margin-top: 26px;
  }
  .player-meta dl div {
    gap: 12px;
    align-items: flex-start;
  }
  .player-meta dd {
    text-align: right;
    word-break: break-word;
  }
  .call-jump-index {
    margin-top: 14px;
  }
  .call-jump-list {
    max-height: 260px;
  }
  .call-jump-item {
    min-height: 66px;
    grid-template-columns: 58px minmax(0,1fr) 44px;
    gap: 8px;
    padding: 10px 12px;
  }
  .call-jump-item > strong {
    white-space: normal;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .waveform {
    height: 132px;
    padding: 0 4px;
    gap: 2px;
  }
  .audio-controls {
    flex-wrap: wrap;
    gap: 10px;
    padding: 18px 0;
  }
  .audio-controls button {
    flex: 0 0 auto;
  }
  .audio-controls input[type='range'] {
    order: 2;
    width: 100%;
    flex: 1 0 100%;
    min-width: 0;
  }
  .audio-time {
    order: 3;
    width: 100%;
    min-width: 0;
    text-align: right;
  }
  .transcript {
    margin-top: 28px;
  }
}

@media (max-width: 520px) {
  .waveform-header {
    gap: 12px;
  }
  .waveform-header strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .audio-controls {
    gap: 8px;
  }
  .audio-controls button {
    padding: 10px 12px;
  }
  .audio-controls .play {
    width: 46px;
    height: 46px;
  }
  .call-jump-item {
    grid-template-columns: 52px minmax(0,1fr) 40px;
  }
}

/* v45 — harden mobile archive layout against horizontal overflow */
@media (max-width: 760px) {
  html, body, .site, #app, .archive-page {
    max-width: 100%;
    overflow-x: hidden;
  }
  .archive-page .container {
    width: calc(100% - 30px) !important;
    max-width: calc(100% - 30px) !important;
    min-width: 0 !important;
  }
  .player-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .player-sidebar,
  .player-main,
  .player-meta,
  .call-jump-index,
  .call-jump-list,
  .transcript {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .player-meta {
    overflow: hidden;
  }
  .player-meta .back {
    max-width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    white-space: normal;
    text-align: left;
  }
  .player-meta .section-label {
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap;
    overflow-wrap: anywhere;
  }
  .player-meta h2 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: keep-all;
    line-height: 1.16;
  }
  .player-summary {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: keep-all;
  }
  .player-meta dl,
  .player-meta dl div {
    width: 100%;
    min-width: 0;
  }
  .player-meta dl div {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
  }
  .player-meta dt,
  .player-meta dd {
    min-width: 0;
  }
  .player-meta dd {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .call-jump-heading,
  .call-jump-item {
    min-width: 0;
    max-width: 100%;
  }
  .call-jump-heading {
    flex-wrap: wrap;
  }
  .call-jump-item > span,
  .call-jump-item > strong,
  .call-jump-item > time {
    min-width: 0;
  }
}

@media (max-width: 430px) {
  .player-meta {
    padding: 20px 16px;
  }
  .player-meta h2 {
    font-size: clamp(27px, 8.2vw, 34px);
  }
  .player-summary {
    font-size: 12px;
    line-height: 1.75;
  }
  .player-meta dl div {
    grid-template-columns: 66px minmax(0, 1fr);
    font-size:11.5px;
  }
  .call-jump-item {
    grid-template-columns: 50px minmax(0, 1fr) 36px;
    gap: 7px;
  }
}

/* v46 — residence canon, compact dialogue roll-up, next-story handoff */
.residence-section {
  background:#ded9cd;
  color:#171613;
  border-block:1px solid #c8c0b2;
}
.residence-feature {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);
  min-height:620px;
  padding:0!important;
  background:#eeeae1;
  border:1px solid #c6beb0;
}
.residence-image { min-height:620px; overflow:hidden; }
.residence-image img { width:100%; height:100%; object-fit:cover; }
.residence-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(34px,5vw,76px); }
.residence-copy .section-label { color:#8a7653!important; }
.residence-copy h2 { margin:18px 0 26px; font:500 clamp(52px,5vw,78px)/.88 var(--v18-serif); letter-spacing:-.055em; }
.residence-copy > p:not(.section-label) { margin:0; color:#5f5a52; font:15px/1.85 var(--v18-sans); word-break:keep-all; }
.residence-copy .residence-note { margin-top:17px!important; padding-top:17px; border-top:1px solid #cec6b8; color:#81786c!important; font-size:12px!important; }
.residence-facts { margin:30px 0 0; }
.residence-facts > div { display:grid; grid-template-columns:108px 1fr; gap:20px; padding:13px 0; border-bottom:1px solid #cec6b8; }
.residence-facts dt { color:#938673; font:600 8px/1.45 var(--v18-mono); letter-spacing:.12em; }
.residence-facts dd { margin:0; color:#37342f; font:600 11px/1.55 var(--v18-sans); }

.call-jump-heading {
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.call-jump-heading strong { display:inline-flex; align-items:center; gap:8px; }
.call-jump-heading strong i { color:#71868f; font:400 13px/1 var(--v18-sans); transition:transform .18s ease; }
.call-jump-index.is-open .call-jump-heading strong i { transform:rotate(180deg); }

.call-overview {
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr) auto;
  gap:24px;
  align-items:center;
  margin-top:28px;
  padding:22px 24px;
  border:1px solid rgba(130,154,166,.18);
  background:linear-gradient(120deg,rgba(125,154,167,.08),rgba(8,10,11,.32));
}
.call-overview div { display:flex; flex-direction:column; gap:8px; }
.call-overview span,
.call-overview small { color:#687a82; font:500 8px/1.45 var(--v18-mono); letter-spacing:.13em; }
.call-overview strong { color:#d7e0e3; font:600 13px/1.5 var(--v18-sans); }
.call-overview p { margin:0; color:#aeb9bd; font:13px/1.75 var(--v18-sans); word-break:keep-all; }
.call-overview small { white-space:nowrap; text-align:right; }

.transcript-block {
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  gap:20px;
  padding:16px 18px;
  border-bottom:1px solid rgba(130,154,166,.11);
  background:linear-gradient(90deg,color-mix(in srgb,var(--speaker-color,#9fb5be) 4%,transparent),transparent 42%);
  transition:background .18s ease,box-shadow .18s ease;
}
.transcript-block[hidden] { display:none!important; }
.transcript-block.active { background:linear-gradient(90deg,color-mix(in srgb,var(--speaker-color,#9fb5be) 12%,transparent),transparent 54%); box-shadow:inset 3px 0 var(--speaker-color,#9fb5be); }
.transcript-block > header { display:grid; grid-template-columns:48px minmax(0,1fr); gap:10px; align-content:start; align-items:center; padding-top:4px; }
.transcript-block > header time { color:#596b73; font:500 9px/1.3 var(--v18-mono); }
.transcript-block > header strong { justify-self:start; display:inline-flex; align-items:center; min-height:25px; padding:3px 8px; border:1px solid color-mix(in srgb,var(--speaker-color,#9fb5be) 38%,transparent); border-radius:999px; background:color-mix(in srgb,var(--speaker-color,#9fb5be) 9%,transparent); color:var(--speaker-color,#9fb5be); font:600 12px/1.3 var(--v18-sans); }
.transcript-block > div { min-width:0; }
.transcript-line {
  width:100%;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:5px 8px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#c2cbd0;
  text-align:left;
  cursor:pointer;
  transition:background .14s ease,color .14s ease;
}
.transcript-line:hover { background:rgba(124,154,167,.07); color:#eef2f3; }
.transcript-line.active { background:color-mix(in srgb,var(--speaker-color,#9fb5be) 14%,transparent); color:#f2f4f4; }
.transcript-line time { padding-top:3px; color:#53656d; font:500 9px/1.55 var(--v18-mono); font-variant-numeric:tabular-nums; }
.transcript-line span { font:14px/1.65 var(--v18-sans); word-break:keep-all; }
.transcript-line .redacted { color:inherit; font-style:normal; }
.transcript-toggle {
  width:100%;
  min-height:64px;
  display:grid;
  grid-template-columns:1fr auto 24px;
  gap:16px;
  align-items:center;
  padding:16px 20px;
  border:0;
  border-bottom:1px solid rgba(130,154,166,.16);
  background:rgba(121,153,167,.055);
  color:#d9e1e4;
  text-align:left;
  cursor:pointer;
}
.transcript-toggle:hover { background:rgba(121,153,167,.1); }
.transcript-toggle span { font:600 12px/1.4 var(--v18-sans); }
.transcript-toggle small { color:#687a82; font:500 8px/1.4 var(--v18-mono); letter-spacing:.1em; }
.transcript-toggle i { color:#8ea4ae; font:400 16px/1 var(--v18-sans); font-style:normal; text-align:right; }

.ever-compact-hero { min-height:calc(100svh - 92px); isolation:isolate; }
.ever-compact-hero .poster-copy { width:min(calc(100% - 52px),var(--max)); padding:72px 0; }
.ever-compact-hero .poster-copy > p:not(.section-label) { max-width:540px; margin-top:34px; }
.ever-next-teaser {
  position:absolute;
  z-index:auto;
  top:50%;
  left:50%;
  right:auto;
  width:min(33vw,480px,calc((100svh - 146px) * .6667));
  aspect-ratio:2/3;
  overflow:visible;
  transform:translateY(-50%);
  background:transparent;
}
.poster-hero .ever-next-image {
  position:absolute;
  z-index:2;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  opacity:1;
  filter:none;
  mix-blend-mode:normal;
  -webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 0 82%,rgba(0,0,0,.86) 89%,rgba(0,0,0,.42) 95%,transparent 100%);
  mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 0 82%,rgba(0,0,0,.86) 89%,rgba(0,0,0,.42) 95%,transparent 100%);
}
.ever-next-copy {
  position:absolute;
  z-index:3;
  top:32.5%;
  left:8.8%;
  width:65%;
  color:#c8a561;
  text-align:left;
  pointer-events:none;
  opacity:1;
  filter:none;
  mix-blend-mode:normal;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
.ever-next-copy h2 {
  width:72%;
  margin:0;
  display:flex;
  flex-direction:column;
  color:#c8a561;
  font:600 clamp(28px,1.9vw,38px)/1.1 var(--v18-serif);
  letter-spacing:.015em;
  opacity:1;
  filter:none;
  text-shadow:none;
}
.ever-next-copy h2 span { display:block; opacity:1; }
.ever-next-divider {
  width:55%;
  margin:clamp(15px,1.3vw,22px) 0 clamp(14px,1.15vw,20px);
  display:grid;
  grid-template-columns:1fr 12px 1fr;
  gap:7px;
  align-items:center;
}
.ever-next-divider::before,
.ever-next-divider::after {
  content:'';
  height:1px;
  background:linear-gradient(90deg,transparent,#ad8642);
}
.ever-next-divider::after { background:linear-gradient(90deg,#ad8642,transparent); }
.ever-next-divider i {
  position:relative;
  width:8px;
  height:8px;
  justify-self:center;
  border:1px solid #bc934c;
  transform:rotate(45deg);
}
.ever-next-divider i::before,
.ever-next-divider i::after {
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:16px;
  height:1px;
  background:#9f7839;
  transform:translate(-50%,-50%);
}
.ever-next-divider i::after { transform:translate(-50%,-50%) rotate(90deg); }
.ever-next-copy p {
  margin:0;
  color:#b9914d;
  font:italic 600 clamp(12px,.9vw,17px)/1.3 var(--v18-serif);
  letter-spacing:.01em;
  white-space:nowrap;
  opacity:1;
  filter:none;
  text-shadow:none;
}

@media (max-width: 960px) {
  .residence-feature { grid-template-columns:1fr; }
  .residence-image { min-height:440px; }
  .residence-copy { padding:44px 30px 50px; }
  .call-overview { grid-template-columns:1fr; gap:13px; }
  .call-overview small { text-align:left; }
  .ever-compact-hero .poster-copy { width:calc(100% - 40px); }
  .ever-compact-hero .poster-copy .title { font-size:clamp(70px,12.5vw,128px); }
  .ever-compact-hero .poster-copy > p:not(.section-label) { max-width:45%; font-size:14px; }
  .ever-next-teaser { left:50%; right:auto; width:min(43vw,390px,calc((100svh - 130px) * .6667)); }
}

@media (max-width: 760px) {
  .academy-subnav { overflow-x:auto!important; justify-content:flex-start!important; scrollbar-width:none; }
  .academy-subnav::-webkit-scrollbar { display:none; }
  .academy-subnav button { flex:0 0 auto; }
  .residence-section { padding-block:58px!important; }
  .residence-feature { width:calc(100% - 30px)!important; min-height:0; }
  .residence-image { min-height:0; aspect-ratio:16/10; }
  .residence-copy { padding:32px 22px 38px; }
  .residence-copy h2 { font-size:clamp(44px,13vw,62px); }
  .residence-facts > div { grid-template-columns:88px 1fr; gap:14px; }
  .call-jump-list { display:none; max-height:280px; }
  .call-jump-index.is-open .call-jump-list { display:block; }
  .call-overview { margin-top:22px; padding:18px; }
  .transcript-block { grid-template-columns:1fr; gap:10px; padding:14px 10px; }
  .transcript-block > header { grid-template-columns:42px minmax(0,1fr); }
  .transcript-line { grid-template-columns:42px minmax(0,1fr); gap:8px; padding:5px 4px; }
  .transcript-line span { font-size:13px; line-height:1.65; }
  .transcript-toggle { grid-template-columns:1fr 20px; }
  .transcript-toggle small { display:none; }
  .ever-compact-hero { min-height:auto; display:block; padding:0 0 34px; }
  .ever-compact-hero .poster-copy { width:calc(100% - 30px); padding:56px 0 22px; }
  .ever-compact-hero .poster-copy .title { font-size:clamp(74px,24vw,116px); }
  .ever-compact-hero .poster-copy > p:not(.section-label) { max-width:100%; margin-top:30px; font-size:14px; line-height:1.72; }
  .ever-next-teaser { position:relative; top:auto; left:auto; right:auto; width:min(calc(100% - 30px),340px); margin:14px auto 0; transform:none; }
  .ever-next-copy h2 { font-size:clamp(23px,7.5vw,30px); }
  .ever-next-copy p { font-size:clamp(10px,3.2vw,13px); }
}

@media (max-width: 430px) {
  .residence-copy > p:not(.section-label) { font-size:13px; line-height:1.75; }
  .call-overview strong { font-size:12px; }
  .call-overview p { font-size:12px; }
  .ever-next-teaser { width:min(calc(100% - 30px),300px); }
}

/* interactive story preview */
.story-preview-page {
  min-height:calc(100svh - 92px);
  padding:0 0 clamp(70px,8vw,120px);
  background:
    radial-gradient(circle at 72% 12%,rgba(92,117,124,.08),transparent 34%),
    linear-gradient(180deg,#0c0d0d,#090a0a 72%);
  color:#e7e9e7;
}
.story-preview-intro {
  width:min(calc(100% - 52px),1380px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.55fr);
  gap:70px;
  align-items:end;
  padding:clamp(72px,9vw,138px) 0 clamp(45px,5vw,74px);
}
.story-preview-intro h1 {
  margin:18px 0 0;
  color:#f3f1ec;
  font:500 clamp(72px,8.5vw,138px)/.72 var(--v18-serif);
  letter-spacing:-.065em;
}
.story-preview-intro h1 em { display:block; margin-left:clamp(36px,8vw,130px); color:#b6a06f; font-weight:400; }
.story-preview-intro > p { margin:0; color:#8d9291; font:14px/1.85 var(--v18-sans); word-break:keep-all; }
.story-character-grid {
  width:min(calc(100% - 52px),1380px);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  border:1px solid rgba(143,160,164,.16);
  background:rgba(143,160,164,.16);
}
.story-character-card {
  position:relative;
  aspect-ratio:1.02/1;
  min-width:0;
  overflow:hidden;
  border:0;
  background:#111313;
  color:#fff;
  text-align:left;
  cursor:pointer;
  isolation:isolate;
}
.story-character-card > img {
  position:absolute;
  z-index:-2;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 20%;
  filter:saturate(.68) contrast(1.03);
  opacity:.78;
  transition:transform .55s ease,filter .4s ease,opacity .4s ease;
}
.story-card-shade {
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(180deg,rgba(4,5,5,.05) 15%,rgba(4,5,5,.2) 43%,rgba(4,5,5,.96) 100%),linear-gradient(90deg,color-mix(in srgb,var(--story-accent) 28%,transparent),transparent 52%);
}
.story-card-index { position:absolute; top:20px; left:22px; color:rgba(255,255,255,.48); font:500 9px/1 var(--v18-mono); letter-spacing:.16em; }
.story-card-copy { position:absolute; left:22px; right:22px; bottom:22px; display:flex; flex-direction:column; align-items:flex-start; }
.story-card-copy small { color:#87989d; font:500 8px/1.35 var(--v18-mono); letter-spacing:.13em; }
.story-card-copy strong { margin-top:12px; color:#f2f1ed; font:500 clamp(28px,2.4vw,43px)/.86 var(--v18-serif); letter-spacing:-.035em; }
.story-card-copy em { margin-top:6px; color:#b9c1c1; font:500 12px/1.3 var(--v18-sans); font-style:normal; }
.story-card-copy b { margin-top:15px; color:#9ea5a3; font:500 11px/1.4 var(--v18-sans); word-break:keep-all; }
.story-character-card > i { position:absolute; top:20px; right:20px; color:#c7b17a; font:600 8px/1 var(--v18-sans); font-style:normal; letter-spacing:.13em; opacity:0; transform:translateX(-8px); transition:.3s; }
.story-character-card:hover > img { transform:scale(1.045); filter:saturate(.86) contrast(1.05); opacity:.94; }
.story-character-card:hover > i { opacity:1; transform:none; }
.story-character-card:focus-visible { outline:2px solid #bca873; outline-offset:-3px; }

.story-preview-detail { padding-top:0; }
.story-preview-detail-head {
  width:min(calc(100% - 52px),1380px);
  margin:0 auto;
  display:grid;
  grid-template-columns:260px 1fr;
  gap:38px;
  align-items:end;
  padding:clamp(48px,6vw,88px) 0 38px;
}
.story-preview-detail-head > button {
  align-self:start;
  justify-self:start;
  border:0;
  background:transparent;
  color:#7f8b8d;
  padding:3px 0;
  font:600 9px/1.4 var(--v18-sans);
  letter-spacing:.13em;
  cursor:pointer;
}
.story-preview-detail-head h1 { margin:11px 0 7px; color:#f0eee9; font:500 clamp(48px,5.3vw,82px)/.82 var(--v18-serif); letter-spacing:-.045em; }
.story-preview-detail-head div > span { color:#7f8989; font:11px/1.5 var(--v18-sans); }
.story-preview-layout {
  width:min(calc(100% - 52px),1380px);
  min-height:690px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(280px,370px) minmax(0,1fr);
  gap:22px;
  align-items:stretch;
}
.story-scene-card {
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(132,151,156,.2);
  background:#111313;
  color:#e9e9e5;
  text-align:left;
  cursor:pointer;
}
.story-scene-image { position:relative; display:block; aspect-ratio:4/3; overflow:hidden; }
.story-scene-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.62) brightness(.68); transition:transform .5s ease,filter .4s ease; }
.story-scene-image i { position:absolute; inset:0; background:linear-gradient(0deg,#111313,transparent 58%),linear-gradient(120deg,color-mix(in srgb,var(--story-accent) 22%,transparent),transparent 62%); }
.story-scene-copy { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:25px 26px 28px; }
.story-scene-copy small { color:#71858b; font:500 8px/1.4 var(--v18-mono); letter-spacing:.13em; }
.story-scene-copy strong { margin-top:14px; color:#edece7; font:500 clamp(30px,2.6vw,42px)/.91 var(--v18-serif); letter-spacing:-.035em; }
.story-scene-copy em { margin-top:8px; color:#adb6b7; font:500 13px/1.4 var(--v18-sans); font-style:normal; }
.story-scene-copy p { margin:21px 0 28px; color:#7f8888; font:12px/1.75 var(--v18-sans); word-break:keep-all; }
.story-scene-copy b { margin-top:auto; color:#c4aa70; font:600 9px/1.4 var(--v18-sans); letter-spacing:.13em; }
.story-scene-card:hover .story-scene-image img { transform:scale(1.035); filter:saturate(.78) brightness(.78); }
.story-scene-card:focus-visible { outline:2px solid #bca873; outline-offset:-3px; }
.story-reader {
  min-width:0;
  height:690px;
  overflow-y:auto;
  overscroll-behavior:contain;
  border:1px solid rgba(132,151,156,.2);
  background:rgba(14,16,16,.92);
  scrollbar-width:thin;
  scrollbar-color:#46565a #121414;
}
.story-reader-empty { height:100%; display:grid; place-content:center; justify-items:center; padding:40px; text-align:center; }
.story-reader-empty span { color:#607277; font:500 8px/1 var(--v18-mono); letter-spacing:.18em; }
.story-reader-empty strong { margin-top:17px; color:#d7dddc; font:500 clamp(28px,3vw,44px)/1 var(--v18-serif); }
.story-reader-empty p { max-width:430px; margin:18px 0 30px; color:#788383; font:13px/1.75 var(--v18-sans); word-break:keep-all; }
.story-reader-empty i { color:#526267; font:500 8px/1 var(--v18-mono); letter-spacing:.13em; font-style:normal; }
.story-log { padding:38px clamp(25px,4.2vw,66px) 10px; }
.story-log-marker { margin:0 0 27px; color:#71878d; font:600 9px/1.4 var(--v18-mono); letter-spacing:.13em; }
.story-log-narration { margin:0 0 24px; color:#898579; font:400 15px/1.88 var(--v18-serif); word-break:keep-all; }
.story-log-narration em { font-style:italic; }
.story-log-illustration {
  position:relative;
  margin:8px 0 30px;
  overflow:hidden;
  border:1px solid rgba(170,155,118,.16);
  border-radius:12px;
  background:#090a0a;
  box-shadow:0 18px 42px rgba(0,0,0,.28);
}
.story-log-illustration::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),inset 0 -30px 45px rgba(0,0,0,.12);
}
.story-log-illustration img {
  display:block;
  width:100%;
  aspect-ratio:19/13;
  object-fit:cover;
}
.story-log-dialogue { margin:0 0 29px; }
.story-log-dialogue header { display:grid; grid-template-columns:auto 1fr; gap:15px; align-items:center; margin-bottom:12px; }
.story-log-dialogue header strong { color:#7bcfdb; font:700 13px/1.2 var(--v18-sans); }
.story-log-dialogue header i { height:1px; background:linear-gradient(90deg,rgba(123,207,219,.48),transparent); }
.story-log-dialogue > p { margin:0; color:#f2f2ef; font:600 18px/1.72 var(--v18-serif); word-break:keep-all; }
.story-log-dialogue blockquote { margin:10px 0 0; padding:0 0 0 15px; border-left:2px solid rgba(123,207,219,.52); color:#c9d0cf; font:14px/1.72 var(--v18-sans); word-break:keep-all; }
.story-choice-section { padding:28px clamp(22px,3.4vw,52px) 48px; border-top:1px solid rgba(132,151,156,.15); }
.story-choice-section > header { display:flex; justify-content:space-between; gap:25px; align-items:end; margin-bottom:19px; }
.story-choice-section > header div { display:flex; flex-direction:column; gap:8px; }
.story-choice-section > header span,.story-choice-section > header small { color:#61747a; font:500 8px/1.4 var(--v18-mono); letter-spacing:.14em; }
.story-choice-section > header strong { color:#d8dddd; font:600 13px/1.5 var(--v18-sans); }
.story-choice-list { display:flex; flex-direction:column; gap:10px; }
.story-choice {
  width:100%;
  min-height:92px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 62px;
  gap:13px;
  align-items:center;
  padding:17px 20px;
  border:1px solid rgba(255,255,255,.035);
  border-radius:22px;
  background:#292928;
  color:#f3f3ef;
  text-align:left;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.story-choice-number { color:#59686b; font:500 9px/1 var(--v18-mono); }
.story-choice-copy { min-width:0; display:flex; flex-direction:column; gap:7px; }
.story-choice-copy em { color:#9a9486; font:italic 13px/1.55 var(--v18-serif); word-break:keep-all; }
.story-choice-copy strong { color:#f0efeb; font:600 14px/1.55 var(--v18-sans); word-break:keep-all; }
.story-choice > small { justify-self:end; color:#718386; font:500 7px/1 var(--v18-mono); letter-spacing:.09em; }
.story-choice:hover { transform:translateX(3px); border-color:rgba(123,207,219,.28); background:#313130; }
.story-choice:focus-visible { outline:2px solid #79c8d3; outline-offset:2px; }
.story-selected-choice { margin:25px clamp(22px,3.4vw,52px) 34px; padding:21px 24px; border-radius:22px; background:#292928; }
.story-selected-choice > span { color:#708287; font:500 8px/1 var(--v18-mono); letter-spacing:.14em; }
.story-selected-choice p { margin:13px 0 0; display:flex; flex-direction:column; gap:8px; }
.story-selected-choice em { color:#9a9486; font:italic 13px/1.6 var(--v18-serif); }
.story-selected-choice strong { color:#f2f1ed; font:600 15px/1.65 var(--v18-sans); }
.story-response-label { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; margin:0 clamp(22px,3.4vw,52px); }
.story-response-label span { color:#6b7e83; font:500 8px/1 var(--v18-mono); letter-spacing:.15em; }
.story-response-label i { height:1px; background:rgba(126,149,155,.17); }
.story-log-response { padding-top:30px; }
.story-reader-actions { margin-top:12px; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px clamp(22px,3.4vw,52px) 36px; border-top:1px solid rgba(132,151,156,.15); }
.story-reader-actions button { border:1px solid rgba(123,207,219,.3); background:rgba(123,207,219,.045); padding:13px 17px; color:#a9d7dd; font:600 10px/1.2 var(--v18-sans); cursor:pointer; }
.story-reader-actions small { color:#657478; font:10px/1.5 var(--v18-sans); }

@media (max-width:1100px) {
  .story-preview-layout { grid-template-columns:300px minmax(0,1fr); }
  .story-reader { height:650px; }
}

@media (max-width:900px) {
  .story-preview-page { min-height:calc(100svh - 78px); }
  .story-preview-intro { width:calc(100% - 40px); grid-template-columns:1fr; gap:28px; padding-top:72px; }
  .story-preview-intro > p { max-width:590px; }
  .story-character-grid { width:calc(100% - 40px); grid-template-columns:repeat(2,minmax(0,1fr)); }
  .story-character-card { aspect-ratio:1/1.08; }
  .story-preview-detail-head { width:calc(100% - 40px); grid-template-columns:1fr; gap:28px; padding-top:48px; }
  .story-preview-layout { width:calc(100% - 40px); grid-template-columns:1fr; }
  .story-scene-card { display:grid; grid-template-columns:minmax(230px,.82fr) 1fr; }
  .story-scene-image { height:100%; aspect-ratio:auto; }
  .story-reader { height:min(760px,76svh); scroll-margin-top:92px; }
}

@media (max-width:600px) {
  .story-preview-page { min-height:calc(100svh - 72px); }
  .story-preview-intro { width:calc(100% - 28px); padding:58px 0 34px; }
  .story-preview-intro h1 { font-size:clamp(62px,21vw,96px); }
  .story-preview-intro h1 em { margin-left:28px; }
  .story-character-grid { width:calc(100% - 28px); }
  .story-character-card { aspect-ratio:.82/1; }
  .story-card-copy { left:14px; right:14px; bottom:15px; }
  .story-card-copy small { font-size:10.5px; }
  .story-card-copy strong { font-size:clamp(24px,8vw,34px); }
  .story-card-copy b { display:none; }
  .story-card-index { top:14px; left:14px; }
  .story-character-card > i { display:none; }
  .story-preview-detail-head,.story-preview-layout { width:calc(100% - 28px); }
  .story-preview-detail-head h1 { font-size:clamp(45px,14vw,66px); }
  .story-scene-card { display:flex; }
  .story-scene-image { height:auto; aspect-ratio:16/9; }
  .story-scene-copy { padding:22px 20px 24px; }
  .story-reader { height:74svh; }
  .story-log { padding:28px 18px 8px; }
  .story-log-narration { font-size:14px; line-height:1.8; }
  .story-log-illustration { margin:4px 0 25px; border-radius:9px; }
  .story-log-dialogue > p { font-size:16px; line-height:1.65; }
  .story-log-dialogue blockquote { font-size:13px; }
  .story-choice-section { padding:24px 12px 34px; }
  .story-choice-section > header { padding:0 6px; }
  .story-choice-section > header small { display:none; }
  .story-choice { grid-template-columns:26px minmax(0,1fr); padding:16px 15px; border-radius:18px; }
  .story-choice > small { grid-column:2; justify-self:start; }
  .story-choice-copy em { font-size:12px; }
  .story-choice-copy strong { font-size:13px; }
  .story-selected-choice { margin:20px 12px 28px; padding:18px; border-radius:18px; }
  .story-response-label { margin:0 18px; }
  .story-reader-actions { align-items:flex-start; flex-direction:column; padding:22px 18px 30px; }
}

/* v56 — video first, then the original ENTER SAINT JUDE gate */
.intro.intro-shell {
  opacity:1;
  transition:opacity .65s ease;
}
.intro.intro-shell.is-leaving { opacity:0; pointer-events:none; }
.intro-video-stage,
.intro-entry-stage {
  position:absolute;
  z-index:3;
  inset:0;
  width:100%;
  height:100%;
}
.intro-video-stage {
  background:#050505;
  opacity:1;
  transition:opacity .62s ease;
}
.intro-video-stage.is-leaving { opacity:0; pointer-events:none; }
.intro-entry-stage {
  z-index:2;
  display:grid;
  place-items:center;
  overflow:hidden;
  opacity:0;
  transition:opacity .62s ease;
}
.intro-entry-stage.is-visible { opacity:1; }
.intro-entry-stage .intro-inner { z-index:2; }
.intro-entry-stage .intro-noise { z-index:1; }
.intro-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  background:#050505;
}
.intro-video-vignette {
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08),transparent 25%,transparent 72%,rgba(0,0,0,.34)),
    radial-gradient(circle at center,transparent 48%,rgba(0,0,0,.18) 100%);
}
.intro-welcome {
  position:absolute;
  z-index:2;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  background:radial-gradient(ellipse at 50% 58%,rgba(4,5,4,.29) 0,rgba(4,5,4,.13) 24%,transparent 53%);
}
.intro-welcome-card {
  position:absolute;
  top:58%;
  left:50%;
  width:min(92vw,1080px);
  padding:22px 18px;
  opacity:0;
  text-align:center;
  transform:translate(-50%,14px);
  will-change:opacity,transform;
}
.intro-welcome-card strong,
.intro-welcome-card span { display:block; }
.intro-welcome-card strong {
  color:#f3efe5;
  font:500 clamp(20px,3.2vw,48px)/1.08 var(--v18-serif,var(--serif));
  letter-spacing:.14em;
  text-indent:.14em;
  white-space:nowrap;
  text-shadow:0 3px 22px rgba(0,0,0,.82),0 1px 4px rgba(0,0,0,.72);
}
.intro-welcome-card span {
  margin-top:14px;
  color:#d7c28c;
  font:600 clamp(7px,.72vw,10px)/1.3 var(--v18-mono,var(--mono));
  letter-spacing:.28em;
  text-indent:.28em;
  text-shadow:0 2px 12px rgba(0,0,0,.95);
}
.intro-welcome-secondary strong {
  color:#eadfc7;
  font-size:clamp(18px,2.4vw,36px);
  letter-spacing:.18em;
  text-indent:.18em;
}
.intro-welcome-secondary i {
  padding:0 .3em;
  color:#cdb273;
  font-style:normal;
}
.intro-video-stage.is-playing .intro-welcome-primary {
  animation:v57WelcomePrimary 8.01s ease both;
}
.intro-video-stage.is-playing .intro-welcome-secondary {
  animation:v57WelcomeSecondary 8.01s ease both;
}
.intro-skip {
  position:absolute;
  z-index:3;
  right:clamp(18px,3.2vw,50px);
  bottom:calc(clamp(20px,3.2vw,42px) + env(safe-area-inset-bottom));
  display:inline-flex;
  align-items:center;
  gap:13px;
  min-height:42px;
  padding:0 15px;
  border:1px solid rgba(255,255,255,.44);
  background:rgba(8,9,8,.34);
  color:#f2efe8;
  font:600 9px/1 var(--v18-mono);
  letter-spacing:.14em;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(0,0,0,.18);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  transition:background .2s,border-color .2s,transform .2s;
}
.intro-skip span { color:#cdb273; font-size:14px; }
.intro-skip:hover { transform:translateY(-2px); border-color:#cdb273; background:rgba(8,9,8,.66); }
.intro-skip:focus-visible { outline:2px solid #f0d492; outline-offset:3px; }

/* v61 — prominent once-per-session interaction guide */
.interaction-guide {
  position:fixed;
  z-index:100;
  top:58%;
  left:50%;
  bottom:auto;
  width:min(calc(100vw - 44px),690px);
  margin:0;
  padding:30px 38px 25px 42px;
  overflow:hidden;
  border:1px solid rgba(219,190,120,.62);
  border-radius:4px;
  background:
    linear-gradient(118deg,rgba(34,30,23,.97),rgba(8,9,8,.96)),
    rgba(10,10,9,.96);
  color:#eee9df;
  text-align:left;
  cursor:pointer;
  box-shadow:0 28px 90px rgba(0,0,0,.68),0 0 0 1px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.055);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  opacity:0;
  transform:translate(-50%,calc(-50% + 28px)) scale(.975);
  transition:opacity .38s ease,transform .48s cubic-bezier(.2,.75,.2,1),border-color .2s ease;
}
.interaction-guide::before {
  content:'';
  position:absolute;
  top:22px;
  bottom:22px;
  left:0;
  width:3px;
  background:linear-gradient(180deg,transparent,#cdb273 25%,#cdb273 75%,transparent);
  box-shadow:0 0 18px rgba(205,178,115,.25);
}
.interaction-guide.is-visible {
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}
.interaction-guide:hover { border-color:rgba(222,195,132,.68); }
.interaction-guide:focus-visible { outline:2px solid #e8d39f; outline-offset:4px; }
.interaction-guide-kicker {
  display:flex;
  align-items:center;
  gap:11px;
  color:#cdb273;
  font:600 10px/1.2 var(--v18-mono,var(--mono));
  letter-spacing:.22em;
}
.interaction-guide-kicker i {
  font-size:14px;
  font-style:normal;
  text-shadow:0 0 12px rgba(205,178,115,.52);
}
.interaction-guide strong {
  display:block;
  margin-top:17px;
  color:#f1ede5;
  font:500 clamp(19px,1.7vw,24px)/1.5 var(--ko-serif);
  letter-spacing:-.025em;
}
.interaction-guide p {
  margin:7px 0 0;
  color:#c6beb0;
  font:400 13px/1.7 var(--ko-sans);
}
.interaction-guide small {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-top:20px;
  color:#91897b;
  font:500 10px/1 var(--ko-sans);
  letter-spacing:.08em;
}
.interaction-guide small b {
  color:#bca66f;
  font:400 15px/1 var(--sans);
}

/* v55 — phones use one document scroller, never a nested chat scroller */
@media (max-width:900px) {
  .story-preview-layout { align-items:start; }
  .story-reader {
    height:auto!important;
    min-height:0;
    overflow:visible;
    overscroll-behavior:auto;
    touch-action:auto;
    scroll-margin-top:92px;
  }
  .story-choice-section,
  .story-selected-choice { scroll-margin-top:92px; }
  .story-reader-empty {
    height:auto;
    min-height:320px;
  }
}

@media (max-width:700px) {
  .intro-video { object-fit:contain; }
  .intro-video-vignette {
    background:linear-gradient(180deg,rgba(0,0,0,.32),transparent 28%,transparent 72%,rgba(0,0,0,.45));
  }
  .intro-welcome-card { top:57%; width:96vw; padding-inline:10px; }
  .intro-welcome-card strong { letter-spacing:.09em; text-indent:.09em; }
  .intro-welcome-card span { margin-top:10px; letter-spacing:.17em; text-indent:.17em; }
  .intro-welcome-secondary strong { letter-spacing:.12em; text-indent:.12em; }
  .intro-skip { right:14px; bottom:calc(16px + env(safe-area-inset-bottom)); }
  .interaction-guide {
    top:56%;
    bottom:auto;
    width:calc(100vw - 28px);
    padding:25px 23px 21px 28px;
  }
  .interaction-guide strong { margin-top:14px; font-size:18px; line-height:1.55; }
  .interaction-guide p { margin-top:6px; font-size:12px; line-height:1.7; }
  .interaction-guide small { margin-top:16px; font-size:11px; }
}

@media (prefers-reduced-motion:reduce) {
  .intro.intro-shell,
  .intro-video-stage,
  .intro-entry-stage { transition-duration:.15s; }
  .intro-skip { transition:none; }
  .interaction-guide { transition-duration:.15s; }
}

@keyframes v57WelcomePrimary {
  0%,11% { opacity:0; transform:translate(-50%,14px); }
  16%,47% { opacity:1; transform:translate(-50%,0); }
  54%,100% { opacity:0; transform:translate(-50%,-10px); }
}

@keyframes v57WelcomeSecondary {
  0%,52% { opacity:0; transform:translate(-50%,12px); }
  59%,78% { opacity:1; transform:translate(-50%,0); }
  85%,100% { opacity:0; transform:translate(-50%,-8px); }
}
/* v66 — site-wide small-text readability pass */

/* Header, navigation, intro, and footer */
.brand small {
  font-size:11.5px!important;
  line-height:1.3!important;
  letter-spacing:.055em!important;
  color:#9b958b!important;
}
.main-nav { gap:clamp(20px,2.35vw,38px)!important; }
.main-nav a {
  font-size:13px!important;
  line-height:1.2!important;
  letter-spacing:.095em!important;
  color:#aaa49a!important;
}
.main-nav a::before { font-size:11.5px!important; }
.icon-button { font-size:11.5px!important; }
.footer span,.footer-status {
  font-size:11.5px!important;
  line-height:1.5!important;
  letter-spacing:.085em!important;
  color:#8f897f!important;
}
.intro .eyebrow { font-size:12px!important; letter-spacing:.2em!important; }
.enter-button { font-size:12px!important; letter-spacing:.16em!important; }
.legal-copy { font-size:11.5px!important; letter-spacing:.09em!important; color:#827c72!important; }
.intro-welcome-card span {
  font-size:clamp(12px,1.05vw,15px)!important;
  line-height:1.45!important;
  letter-spacing:.18em!important;
  color:#e1cc98!important;
}
.intro-skip {
  min-height:46px;
  font-size:12px!important;
  letter-spacing:.1em!important;
  background:rgba(8,9,8,.52);
}

/* Recurring page labels and action links */
.v18-kicker,
.section-label,
.record-code,
.v18-manifesto-index,
.v18-manifesto-facts span,
.home-overview-facts span,
.v18-atmosphere-copy span,
.academy-life-copy span,
.campus-detail-copy > span,
.v31-power-top span,
.v31-campus-note span,
.v31-unofficial-head span,
.v31-caste-grid span,
.v25-limbo-copy > span,
.v25-limbo-modal span {
  font-size:11.5px!important;
  line-height:1.4!important;
  letter-spacing:.1em!important;
}
.v18-inline-link,.v18-text-link,.home-primary-link {
  font-size:12.5px!important;
  letter-spacing:.075em!important;
}
.v18-hero-copy > p:not(.v18-kicker),
.home-v25 .v18-hero-copy > p:not(.v18-kicker) {
  font-size:13.5px!important;
  line-height:1.65!important;
  letter-spacing:.065em!important;
}
.v18-scroll-cue span { font-size:11.5px!important; letter-spacing:.14em!important; }

/* Page-two academy navigation */
.academy-official-name { font-size:12.5px!important; letter-spacing:.075em!important; }
.academy-subnav { height:62px!important; }
.academy-subnav button {
  padding:0 24px!important;
  font-size:12px!important;
  line-height:1.2!important;
  letter-spacing:.085em!important;
  color:#5f594f!important;
}
.program-grid span,
.map-label-card strong,
.map-label-card span,
.campus-node span,
.campus-detail-copy small,
.residence-facts dt {
  font-size:11.5px!important;
  line-height:1.45!important;
  letter-spacing:.075em!important;
}
.residence-facts dd { font-size:12.5px!important; }

/* Student cards, directory, and profiles */
.v18-person-number,
.v18-person-copy small,
.v18-student-index,
.v18-student-info > span,
.v18-student-peek span,
.v18-profile-photo-index,
.v18-profile-back,
.v18-trace-dock span,
.v18-trace-dock small,
.v18-profile-facts span,
.v18-profile-side > span,
.v18-profile-preferences span,
.v18-connection-grid .connection-direction,
.v18-connection-grid .connection i,
.v18-private-note summary span,
.v21-directory-stats span,
.v21-card-index,
.v21-card-status,
.v21-profile-back,
.v21-profile-media > span,
.v21-profile-card-copy dt,
.v21-profile-facts span,
.v21-profile-summary-grid span,
.v21-profile-preferences span,
.v21-private-note summary span,
.v25-profile-facts span,
.v26-profile-media > span,
.v26-profile-facts span {
  font-size:11.5px!important;
  line-height:1.4!important;
  letter-spacing:.085em!important;
}
.v18-person-copy em,
.v18-student-info em,
.v18-student-info p,
.v21-card-role,
.v21-profile-card-copy > em,
.v21-profile-card-copy > p,
.v21-profile-card-copy dd {
  font-size:12px!important;
  line-height:1.55!important;
}
.v21-card-meta span,.v21-card-traces span { font-size:11.5px!important; }
.v18-connection-grid .connection small,
.v21-profile .v18-connection-grid .connection small { font-size:12.5px!important; }
.v21-trace-dock strong,.v26-trace-dock button strong { font-size:12.5px!important; }
.v21-trace-dock small,.v26-trace-dock button small { font-size:11.5px!important; }

/* Social records and music player */
.v18-ig-top span,
.v18-ig-stories small,
.v18-ig-tabs strong,
.v18-ig-tabs span,
.v18-halo-modal header small,
.v18-halo-modal header > i,
.v18-halo-subject span,
.v18-halo-meta time,
.v18-halo-meta i,
.v18-halo-list footer,
.v18-audio-modal header span,
.v18-audio-modal button > span,
.v18-audio-modal button > small,
.v30-ig-highlights small,
.v30-ig-tabs strong,
.v30-ig-tabs span,
.v31-member-row small,
.music-launcher-copy small,
.music-panel header small,
.music-now small,
.music-panel header strong,
.music-now time,
.music-track-list span,
.music-track-list time,
.music-volume-control > span,
.music-volume-control > output,
.music-lyrics-header small,
.music-lyrics-section h4,
.global-soundtrack small,
.soundtrack-toggle {
  font-size:11.5px!important;
  line-height:1.35!important;
  letter-spacing:.075em!important;
}
.v18-post-caption strong,.v18-comment strong,.v18-comment button { font-size:11.5px!important; }
.v18-post-caption p,.v18-comment p,.v30-caption-row small,.v30-comment-row small,.v30-post-side > footer > small { font-size:12px!important; }

/* Archive index, audio records, and transcript */
.terminal-status { font-size:12px!important; }
.call-row .id { font-size:12px!important; }
.call-row .id::before { font-size:11.5px!important; }
.call-title small { font-size:11.5px!important; }
.call-title p { font-size:13.5px!important; }
.call-duration,.call-date { font-size:11.5px!important; }
.call-row .status { font-size:11.5px!important; }
.player-meta .back { font-size:12px!important; }
.player-meta dl div { font-size:12px!important; }
.waveform-header { font-size:11.5px!important; }
.audio-controls button,.audio-time { font-size:12px!important; }
.call-jump-heading,
.call-jump-item > span,
.call-jump-item > time,
.call-overview span,
.call-overview small,
.transcript-block > header time,
.transcript-line time,
.transcript-toggle small,
.v18-archive-foot > span {
  font-size:11.5px!important;
  line-height:1.45!important;
  letter-spacing:.075em!important;
}
.call-jump-item > strong { font-size:13px!important; }
.call-overview strong,.call-overview p { font-size:14px!important; }
.transcript-toggle span { font-size:13px!important; }

/* Interactive story preview — eliminate 6–9px labels */
.story-card-index,
.story-card-copy small,
.story-character-card > i,
.story-preview-detail-head > button,
.story-scene-copy small,
.story-scene-copy b,
.story-reader-empty span,
.story-reader-empty i,
.story-log-marker,
.story-choice-section > header span,
.story-choice-section > header small,
.story-choice-number,
.story-choice > small,
.story-selected-choice > span,
.story-response-label span {
  font-size:11.5px!important;
  line-height:1.45!important;
  letter-spacing:.075em!important;
}
.story-preview-detail-head div > span { font-size:12.5px!important; }
.story-card-copy b { font-size:12.5px!important; }
.story-scene-copy p { font-size:13.5px!important; }
.story-reader-empty p { font-size:14px!important; }
.story-choice-section > header strong { font-size:15px!important; }
.story-choice-copy em { font-size:14px!important; }
.story-choice-copy strong { font-size:15px!important; }
.story-selected-choice em { font-size:14px!important; }
.story-selected-choice strong { font-size:15.5px!important; }
.story-reader-actions button { font-size:12px!important; }
.story-reader-actions small { font-size:11.5px!important; }

/* Floating interaction notice */
.interaction-guide-kicker { font-size:11.5px!important; }
.interaction-guide p { font-size:14px!important; }
.interaction-guide small { font-size:11.5px!important; }

@media (max-width:1080px) {
  .main-nav a {
    padding:13px 0!important;
    font-size:14px!important;
    letter-spacing:.075em!important;
  }
}

@media (max-width:760px) {
  .brand small { font-size:11.5px!important; }
  .academy-subnav { height:58px!important; }
  .academy-subnav button {
    padding:0 19px!important;
    font-size:12px!important;
    letter-spacing:.065em!important;
  }
  .intro-welcome-card span { font-size:12px!important; }
  .intro-skip { min-height:46px; font-size:12px!important; }
  .story-card-copy small { font-size:11.5px!important; }
  .story-choice-section > header span,
  .story-choice-section > header small,
  .story-choice > small,
  .story-selected-choice > span,
  .story-response-label span { font-size:11.5px!important; }
  .story-choice-copy em { font-size:13.5px!important; }
  .story-choice-copy strong { font-size:14.5px!important; }
  .interaction-guide p { font-size:13.5px!important; }
  .interaction-guide small { font-size:11.5px!important; }
  .footer span,.footer-status { font-size:11.5px!important; }
}
/* EVER YOURS v68 — bilingual editorial polish + mobile typography rescue
   Principle: English for visual identity / metadata; Korean for readable story content. */

:root {
  --serif:'Cormorant Garamond','Hahmlet','Noto Serif KR',Georgia,serif;
  --sans:'Manrope','Pretendard Variable','Pretendard','Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --mono:'IBM Plex Mono','Pretendard Variable','Pretendard','Noto Sans KR',monospace;
  --ko-sans:'Pretendard Variable','Pretendard','Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --ko-serif:'Hahmlet','Noto Serif KR','Batang',serif;
  --v18-serif:'Cormorant Garamond','Hahmlet','Noto Serif KR',serif;
  --v18-sans:'Manrope','Pretendard Variable','Pretendard','Noto Sans KR',sans-serif;
  --v18-mono:'IBM Plex Mono','Pretendard Variable','Pretendard','Noto Sans KR',monospace;
}

html,body,button,input { font-synthesis:none; }
body {
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Korean prose must never inherit the cold fallback/system look on mobile. */
.legacy-copy > p,
.residence-copy > p,
.location-copy > p,
.academy-life-copy p,
.calendar-intro,
.calendar-card p,
.partner p,
.v21-directory-copy > p,
.v31-circles-head > p,
.v31-public-copy,
.v31-campus-note p,
.v31-unofficial-head p,
.v31-caste-grid p,
.v21-card-role,
.v21-student-card blockquote,
.v21-profile-heading blockquote,
.v21-profile-summary-grid p,
.v21-profile-preferences p,
.v18-connection-grid .connection p,
.v21-private-note p,
.archive-header p,
.call-title p,
.v25-limbo-copy p,
.v18-archive-foot p,
.story-preview-intro > p,
.story-scene-copy p,
.story-reader-empty p,
.story-log-prose p,
.story-log-dialogue blockquote,
.story-choice-copy,
.story-selected-choice,
.story-reader-actions small,
.poster-copy > p:not(.section-label),
.interaction-guide strong,
.interaction-guide p {
  font-family:var(--ko-sans)!important;
  word-break:keep-all;
}
.interaction-guide strong { font-family:var(--ko-serif)!important; }

/* English identity labels stay crisp and deliberately editorial. */
.main-nav a,
.brand small,
.v18-kicker,
.section-label,
.record-code,
.social-kicker,
.terminal-status,
.archive-toolbar button,
.v21-filter,
.campus-node span,
.map-label-card strong,
.ever-next-copy p[lang='it'] {
  font-family:var(--v18-sans)!important;
  text-transform:uppercase;
}

/* ---------- Header / navigation ---------- */
.brand small {
  font-size:11.5px!important;
  letter-spacing:.105em!important;
  color:#aaa398!important;
}
.main-nav a {
  font-size:12.5px!important;
  font-weight:600!important;
  letter-spacing:.145em!important;
  color:#aaa49a!important;
}
.main-nav a::after { bottom:18px!important; }
.music-launcher-copy small { letter-spacing:.12em!important; }

/* ---------- Intro video: visible over bright AND dark footage ---------- */
.intro-video-vignette {
  background:
    linear-gradient(180deg,rgba(0,0,0,.20) 0%,rgba(0,0,0,.03) 26%,rgba(0,0,0,.05) 63%,rgba(0,0,0,.62) 100%)!important,
    radial-gradient(ellipse at 50% 60%,transparent 0 31%,rgba(0,0,0,.18) 65%,rgba(0,0,0,.42) 100%)!important;
}
.intro-welcome {
  background:
    radial-gradient(ellipse 55% 21% at 50% 60%,rgba(0,0,0,.50),rgba(0,0,0,.22) 42%,transparent 74%)!important;
}
.intro-welcome-card {
  width:min(94vw,1180px)!important;
  padding:32px 28px!important;
  isolation:isolate;
}
.intro-welcome-card::before {
  content:'';
  position:absolute;
  z-index:-1;
  inset:4% 5%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.56) 0%,rgba(0,0,0,.24) 45%,transparent 74%);
  filter:blur(12px);
  pointer-events:none;
}
.intro-welcome-card::after {
  content:'';
  display:block;
  width:min(260px,30vw);
  height:1px;
  margin:18px auto 0;
  background:linear-gradient(90deg,transparent,rgba(218,193,134,.78),transparent);
  box-shadow:0 0 14px rgba(218,193,134,.18);
}
.intro-welcome-card strong {
  color:#fffaf0!important;
  font:600 clamp(30px,4.25vw,64px)/1.02 var(--v18-serif)!important;
  letter-spacing:.105em!important;
  text-indent:.105em!important;
  -webkit-text-stroke:.35px rgba(0,0,0,.72);
  text-shadow:
    0 2px 2px rgba(0,0,0,.95),
    0 5px 16px rgba(0,0,0,.92),
    0 14px 42px rgba(0,0,0,.72)!important;
}
.intro-welcome-card span {
  margin-top:16px!important;
  color:#ead39d!important;
  font:600 clamp(13px,1.15vw,17px)/1.35 var(--v18-sans)!important;
  letter-spacing:.235em!important;
  text-indent:.235em!important;
  text-shadow:0 2px 3px rgba(0,0,0,1),0 5px 18px rgba(0,0,0,.98)!important;
}
.intro-welcome-secondary strong {
  font-size:clamp(24px,3vw,43px)!important;
  letter-spacing:.16em!important;
  text-indent:.16em!important;
}
.intro-welcome-secondary::after { width:min(180px,22vw); }
.intro-skip {
  min-height:48px!important;
  padding-inline:18px!important;
  border-color:rgba(236,221,187,.58)!important;
  background:rgba(5,6,5,.62)!important;
  color:#fffaf1!important;
  font-family:var(--v18-mono)!important;
  font-size:11.5px!important;
  letter-spacing:.13em!important;
  box-shadow:0 10px 34px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.06)!important;
}

/* ---------- Small editorial labels ---------- */
.v18-kicker,.section-label,.record-code,.social-kicker {
  font-size:11.5px!important;
  line-height:1.35!important;
  letter-spacing:.135em!important;
}
.home-cover-official,.academy-official-name {
  font-family:var(--v18-sans)!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
  text-transform:uppercase;
}

/* ---------- Coming up next ---------- */
.ever-next-copy h2 {
  text-shadow:0 2px 12px rgba(0,0,0,.58),0 8px 30px rgba(0,0,0,.42)!important;
}
.ever-next-copy p[lang='it'] {
  max-width:250px;
  white-space:normal!important;
  color:#d6b56f!important;
  font-family:var(--v18-serif)!important;
  font-size:clamp(13px,1vw,18px)!important;
  font-style:italic;
  font-weight:500!important;
  line-height:1.35!important;
  letter-spacing:.025em!important;
  text-transform:none;
  text-shadow:0 2px 14px rgba(0,0,0,.62)!important;
}

/* ---------- Korean readability floor ---------- */
@media (max-width:760px) {
  body { font-size:16px; }
  .brand small { font-size:11px!important; letter-spacing:.08em!important; }
  .main-nav {
    padding:28px 22px 30px!important;
    gap:0!important;
    border-top:1px solid rgba(255,255,255,.07);
    box-shadow:0 24px 50px rgba(0,0,0,.46);
  }
  .main-nav a {
    padding:15px 2px!important;
    font-size:14.5px!important;
    letter-spacing:.14em!important;
  }
  .main-nav a::after { bottom:8px!important; }

  .intro-video-vignette {
    background:
      linear-gradient(180deg,rgba(0,0,0,.42),rgba(0,0,0,.08) 29%,rgba(0,0,0,.10) 64%,rgba(0,0,0,.70))!important,
      radial-gradient(ellipse at 50% 58%,transparent 20%,rgba(0,0,0,.38) 100%)!important;
  }
  .intro-welcome {
    background:radial-gradient(ellipse 78% 20% at 50% 58%,rgba(0,0,0,.62),rgba(0,0,0,.30) 47%,transparent 78%)!important;
  }
  .intro-welcome-card {
    top:56%!important;
    width:100vw!important;
    padding:26px 14px!important;
  }
  .intro-welcome-card strong {
    font-size:clamp(28px,8.7vw,42px)!important;
    line-height:1.06!important;
    letter-spacing:.07em!important;
    text-indent:.07em!important;
  }
  .intro-welcome-card span {
    margin-top:14px!important;
    font-size:clamp(12.5px,3.5vw,15px)!important;
    line-height:1.35!important;
    letter-spacing:.15em!important;
    text-indent:.15em!important;
  }
  .intro-welcome-secondary strong {
    font-size:clamp(22px,6.4vw,31px)!important;
    letter-spacing:.10em!important;
    text-indent:.10em!important;
  }
  .intro-welcome-card::after { margin-top:15px; width:150px; }
  .intro-skip {
    right:14px!important;
    bottom:calc(16px + env(safe-area-inset-bottom))!important;
    min-height:46px!important;
    font-size:11.5px!important;
  }

  .v18-kicker,.section-label,.record-code,.social-kicker {
    font-size:11.5px!important;
    letter-spacing:.105em!important;
  }

  .legacy-copy > p,
  .residence-copy > p,
  .location-copy > p,
  .academy-life-copy p,
  .calendar-card p,
  .partner p,
  .v21-directory-copy > p,
  .v31-circles-head > p,
  .v31-public-copy,
  .v31-campus-note p,
  .v31-unofficial-head p,
  .v31-caste-grid p,
  .v21-card-role,
  .v21-student-card blockquote,
  .v21-profile-summary-grid p,
  .v21-profile-preferences p,
  .v18-connection-grid .connection p,
  .v21-private-note p,
  .archive-header p,
  .call-title p,
  .v25-limbo-copy p,
  .v18-archive-foot p,
  .story-preview-intro > p,
  .story-scene-copy p,
  .story-reader-empty p,
  .story-log-prose p,
  .story-log-dialogue blockquote,
  .poster-copy > p:not(.section-label) {
    font-size:14.5px!important;
    line-height:1.72!important;
    letter-spacing:-.01em!important;
  }

  .interaction-guide strong { font-size:19px!important; line-height:1.55!important; }
  .interaction-guide p { font-size:14px!important; line-height:1.72!important; }

  .ever-next-copy p[lang='it'] {
    max-width:190px;
    font-size:clamp(12px,3.6vw,14px)!important;
    line-height:1.35!important;
  }
}

@media (max-width:430px) {
  .intro-welcome-card strong { font-size:clamp(26px,8.2vw,36px)!important; }
  .intro-welcome-card span { font-size:12px!important; letter-spacing:.12em!important; text-indent:.12em!important; }
  .intro-welcome-secondary strong { font-size:clamp(20px,6vw,27px)!important; }
  .main-nav a { font-size:14px!important; }
}
/* EVER YOURS v69 — bilingual lyrics + story unlock interaction + profile refresh */

/* Lyrics: preserve the original English lyric as the visual lead, with Korean translation directly beneath. */
.music-lyrics-section h4 {
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-bottom:15px!important;
}
.music-section-en {
  color:#d1b978;
  font:650 11.5px/1 var(--v18-mono);
  letter-spacing:.15em;
  text-transform:uppercase;
}
.music-section-ko {
  color:#6f746f;
  font:600 10.5px/1 var(--ko-sans);
  letter-spacing:-.01em;
}
.music-line-pair {
  position:relative;
  display:grid!important;
  gap:3px!important;
  margin-bottom:15px!important;
  padding-left:12px;
}
.music-line-pair::before {
  content:'';
  position:absolute;
  left:0;
  top:.42em;
  bottom:.34em;
  width:1px;
  background:linear-gradient(180deg,rgba(205,177,111,.52),rgba(205,177,111,.08));
}
.music-line-en {
  display:block;
  color:#f0ede6!important;
  font:550 15.5px/1.55 var(--v18-sans)!important;
  letter-spacing:-.012em;
  text-shadow:0 1px 12px rgba(0,0,0,.25);
}
.music-line-ko {
  display:block;
  color:#9b9e99!important;
  font:500 13.5px/1.62 var(--ko-sans)!important;
  letter-spacing:-.02em;
  word-break:keep-all;
}

/* Story detail: left card is informational; the reader itself is the unlock control. */
.story-scene-card.story-scene-static {
  cursor:default!important;
  user-select:none;
}
.story-scene-card.story-scene-static:hover .story-scene-image img {
  transform:none!important;
  filter:saturate(.72) brightness(.72)!important;
}
.story-scene-card.story-scene-static .story-scene-copy b {
  color:#7e8d8e;
  letter-spacing:.13em;
}
.story-reader.story-reader-locked {
  overflow:hidden!important;
  position:relative;
}
.story-unlock-panel {
  position:relative;
  width:100%;
  height:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:0;
  padding:48px clamp(24px,5vw,72px);
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%,rgba(142,170,173,.075),transparent 27%),
    linear-gradient(180deg,rgba(255,255,255,.012),transparent 35%),
    #0c1010;
  color:inherit;
  cursor:pointer;
  text-align:center;
  transition:background .35s ease;
}
.story-unlock-panel::before,
.story-unlock-panel::after {
  content:'';
  position:absolute;
  pointer-events:none;
}
.story-unlock-panel::before {
  inset:20px;
  border:1px solid rgba(128,151,153,.12);
}
.story-unlock-panel::after {
  width:min(340px,58%);
  height:1px;
  top:calc(50% + 108px);
  background:linear-gradient(90deg,transparent,rgba(190,169,111,.36),transparent);
}
.story-unlock-panel:hover {
  background:
    radial-gradient(circle at 50% 42%,rgba(142,170,173,.13),transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 38%),
    #0d1111;
}
.story-unlock-panel:focus-visible {
  outline:2px solid rgba(202,181,123,.72);
  outline-offset:-5px;
}
.story-unlock-kicker {
  color:#66797c;
  font:600 10px/1 var(--v18-mono);
  letter-spacing:.2em;
}
.story-unlock-icon {
  position:relative;
  width:42px;
  height:35px;
  margin:25px 0 20px;
  border:1px solid rgba(192,171,114,.5);
  border-radius:2px;
  box-shadow:0 0 28px rgba(192,171,114,.07);
}
.story-unlock-icon::before {
  content:'';
  position:absolute;
  left:50%;
  top:-16px;
  width:21px;
  height:18px;
  border:1px solid rgba(192,171,114,.5);
  border-bottom:0;
  border-radius:14px 14px 0 0;
  transform:translateX(-50%);
}
.story-unlock-icon i {
  position:absolute;
  left:50%;
  top:12px;
  width:3px;
  height:9px;
  border-radius:2px;
  background:#c0ab72;
  transform:translateX(-50%);
}
.story-unlock-panel > strong {
  max-width:680px;
  color:#dce1df;
  font:500 clamp(32px,3.2vw,48px)/1.08 var(--ko-serif);
  letter-spacing:-.045em;
  word-break:keep-all;
}
.story-unlock-panel > p {
  max-width:480px;
  margin:18px 0 24px;
  color:#7f8b8a;
  font:500 14px/1.75 var(--ko-sans);
  letter-spacing:-.015em;
  word-break:keep-all;
}
.story-unlock-panel > b {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  padding:0 17px;
  border:1px solid rgba(192,171,114,.36);
  background:rgba(192,171,114,.035);
  color:#c6b278;
  font-style:normal;
  transition:border-color .25s ease, background .25s ease, transform .25s ease;
}
.story-unlock-panel:hover > b {
  transform:translateY(-1px);
  border-color:rgba(211,190,130,.62);
  background:rgba(192,171,114,.07);
}
.story-unlock-panel > b em {
  font:650 10px/1 var(--v18-mono);
  font-style:normal;
  letter-spacing:.15em;
}
.story-unlock-panel > b small {
  padding-left:12px;
  border-left:1px solid rgba(192,171,114,.22);
  color:#7d817c;
  font:600 9px/1 var(--v18-mono);
  letter-spacing:.1em;
}
.story-unlock-panel > i {
  margin-top:32px;
  color:#536265;
  font:600 9px/1 var(--v18-mono);
  font-style:normal;
  letter-spacing:.16em;
}

@media (max-width:760px) {
  .music-section-en { font-size:11.5px; }
  .music-section-ko { font-size:11.5px; }
  .music-line-pair { gap:4px!important; margin-bottom:16px!important; padding-left:10px; }
  .music-line-en { font-size:15px!important; line-height:1.5!important; }
  .music-line-ko { font-size:13.5px!important; line-height:1.62!important; }
  .story-unlock-panel { min-height:460px; padding:40px 22px; }
  .story-unlock-panel::before { inset:12px; }
  .story-unlock-panel > strong { font-size:clamp(29px,8.5vw,39px); }
  .story-unlock-panel > p { font-size:14px; }
}

/* Profile/canon refresh — expanded LIMBO archive record without adding a new route. */
.v70-limbo-facts,
.v70-limbo-modal-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.v70-limbo-facts {
  width:100%;
  max-width:760px;
  margin:2px 0 25px;
}
.v70-limbo-facts > div,
.v70-limbo-modal-grid > div {
  min-width:0;
  padding:13px 14px;
  border:1px solid rgba(130,154,166,.15);
  background:rgba(255,255,255,.018);
}
.v70-limbo-facts small,
.v70-limbo-modal-grid small {
  display:block;
  margin-bottom:7px;
  color:#8c6d67;
  font:600 9px/1 var(--v18-mono);
  letter-spacing:.14em;
}
.v70-limbo-facts strong,
.v70-limbo-modal-grid strong {
  display:block;
  color:#c0c5c4;
  font:550 12.5px/1.55 var(--ko-sans);
  letter-spacing:-.015em;
  word-break:keep-all;
}
.v25-limbo-modal > div > p + p {
  margin-top:13px;
}
.v70-limbo-modal-grid {
  margin-top:21px;
}

@media (max-width:760px) {
  .v70-limbo-facts,
  .v70-limbo-modal-grid {
    grid-template-columns:1fr;
  }
  .v70-limbo-facts > div,
  .v70-limbo-modal-grid > div {
    padding:12px 13px;
  }
}
/* EVER YOURS — player guide v70 */
.guide-page{background:#10100f;color:var(--v18-white);font-family:var(--v18-sans)}
.guide-wide{width:min(calc(100% - 56px),1320px);margin-inline:auto}
.guide-hero{position:relative;min-height:clamp(640px,82svh,880px);overflow:hidden;background:#090909}
.guide-hero-media{position:absolute;inset:0;display:grid;grid-template-columns:1.06fr .94fr;gap:2px;background:#111}
.guide-hero-media figure{margin:0;overflow:hidden;position:relative}
.guide-hero-media figure:first-child::after,.guide-hero-media figure:last-child::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,3,3,.03),rgba(3,3,3,.35))}
.guide-hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.04);transform:scale(1.015)}
.guide-hero-media figure:first-child img{object-position:center 44%}
.guide-hero-media figure:last-child img{object-position:center 50%}
.guide-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,7,.93) 0%,rgba(7,7,7,.66) 36%,rgba(7,7,7,.18) 67%,rgba(7,7,7,.47) 100%),linear-gradient(0deg,rgba(7,7,7,.82),transparent 44%)}
.guide-hero-copy{position:absolute;z-index:2;left:clamp(28px,6.5vw,112px);bottom:clamp(84px,13vh,150px);width:min(720px,70vw)}
.guide-hero-copy h1{margin:16px 0 28px;font:500 clamp(76px,9vw,138px)/.75 var(--v18-serif);letter-spacing:-.065em;color:#f7f3ea}
.guide-hero-copy h1 em{font-weight:400;color:#ccb989}
.guide-hero-copy>p:last-child{max-width:620px;margin:0;color:#ccc6bb;font:500 14px/1.85 var(--v18-sans);word-break:keep-all}
.guide-hero-index{position:absolute;z-index:3;right:clamp(24px,4vw,64px);bottom:54px;display:grid;grid-template-columns:auto auto auto auto auto auto auto auto;gap:11px;align-items:center;color:#a9a297;font:600 8px/1 var(--v18-mono);letter-spacing:.13em}
.guide-hero-index span{color:#d4bc83;font-size:11px}.guide-hero-index i{width:28px;height:1px;background:rgba(212,188,131,.4)}
.guide-subnav{position:sticky;top:92px;z-index:30;display:flex;align-items:center;justify-content:center;gap:4px;min-height:54px;padding:0 24px;border-block:1px solid rgba(255,255,255,.07);background:rgba(15,15,14,.92);backdrop-filter:blur(18px)}
.guide-subnav button{height:54px;padding:0 20px;border:0;background:none;color:#8e887e;cursor:pointer;font:600 9px/1 var(--v18-sans);letter-spacing:.13em}
.guide-subnav button:hover{color:#e9e4da}
.guide-page .section{padding:118px 0}
.guide-page .section-label{font-size:11px;color:#bda46f}
.guide-intro-section{background:#ebe7df;color:#161514}
.guide-intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(58px,8vw,140px);align-items:start}
.guide-intro-grid h2{max-width:700px;margin:18px 0 0;font:500 clamp(58px,6vw,92px)/.9 var(--v18-serif);letter-spacing:-.055em}
.guide-intro-copy{padding-top:22px}.guide-intro-copy>p{margin:0 0 22px;color:#58544d;font:15px/1.95 var(--v18-sans);word-break:keep-all}.guide-intro-copy strong{color:#171614}
.guide-intro-copy aside{margin-top:38px;padding:25px 28px;border-left:2px solid #a88d58;background:#ded8cc;color:#4f4a42;font:13px/1.8 var(--v18-sans);word-break:keep-all}
.guide-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);gap:50px;align-items:end;margin-bottom:54px}
.guide-section-head h2{margin:10px 0 0;font:500 clamp(54px,5.7vw,86px)/.9 var(--v18-serif);letter-spacing:-.05em}.guide-section-head>p{margin:0;color:#8e8a81;font:13.5px/1.85 var(--v18-sans);word-break:keep-all}.guide-section-head.light h2{color:#161514}.guide-section-head.light>p{color:#676159}
.guide-start-section{background:#11110f}.guide-start-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.guide-start-card{overflow:hidden;border:1px solid rgba(212,188,131,.16);background:#171714}.guide-start-image{height:330px;overflow:hidden;position:relative}.guide-start-image::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,13,12,.72),transparent 58%)}.guide-start-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.78)}.guide-start-card.hallway .guide-start-image img{object-position:center 47%}
.guide-start-body{padding:34px 36px 38px}.guide-start-meta{display:flex;justify-content:space-between;gap:20px;color:#8a8378;font:600 8px/1.4 var(--v18-mono);letter-spacing:.12em}.guide-start-meta span{color:#c9ae72}.guide-start-body h3{margin:17px 0 14px;font:500 51px/.92 var(--v18-serif);letter-spacing:-.04em}.guide-start-lead{margin:0 0 18px!important;color:#e0dacd!important;font-size:15px!important;font-weight:600!important}.guide-start-body p{margin:0;color:#9f998f;font:13px/1.85 var(--v18-sans);word-break:keep-all}.guide-tags{display:flex;flex-wrap:wrap;gap:7px;margin:26px 0 25px}.guide-tags span{padding:8px 10px;border:1px solid rgba(201,184,143,.19);color:#bdb5a7;font:600 8px/1 var(--v18-sans);letter-spacing:.08em}.guide-start-body>small{display:block;padding-top:20px;border-top:1px solid rgba(255,255,255,.07);color:#7f796f;font:10.5px/1.65 var(--v18-sans);word-break:keep-all}
.guide-persona-section{background:#ebe7df;color:#161514}.guide-persona-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#cfc8bc;border:1px solid #cfc8bc}.guide-persona-grid article{min-height:310px;padding:32px;background:#f1eee7}.guide-persona-grid span,.guide-default-box span,.guide-persona-template span{color:#937948;font:600 8px/1 var(--v18-mono);letter-spacing:.15em}.guide-persona-grid h3{margin:20px 0 18px;font:500 39px/.95 var(--v18-serif)}.guide-persona-grid p{margin:0 0 26px;color:#625d55;font:13px/1.82 var(--v18-sans);word-break:keep-all}.guide-persona-grid code{display:block;padding:13px 14px;background:#ded8cd;color:#4f4a43;font:10px/1.65 var(--v18-mono);white-space:normal;word-break:keep-all}
.guide-default-box{display:grid;grid-template-columns:.7fr 1.3fr;gap:48px;margin-top:30px;padding:38px 42px;border:1px solid #b7aa8b;background:#171614;color:#eee8dd}.guide-default-box h3{margin:15px 0 0;font:500 34px/1 var(--v18-serif)}.guide-default-box>p{grid-column:2;margin:0;color:#aaa397;font:12.5px/1.82 var(--v18-sans);word-break:keep-all}.guide-default-box>p+ p{margin-top:-30px}.guide-default-box strong{color:#d4bd86}.guide-default-box b{color:#d9d2c6;font-weight:600}
.guide-persona-template{display:grid;grid-template-columns:.65fr 1.35fr;gap:50px;margin-top:18px;padding:34px 42px;border:1px solid #c8c0b3;background:#e2ddd3}.guide-persona-template h3{margin:14px 0 0;font:500 30px/1 var(--v18-serif)}.guide-persona-template pre{margin:0;padding:0;color:#4f4a42;font:11px/1.9 var(--v18-mono);white-space:pre-wrap}
.guide-life-section{background:#121210}.guide-day-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.08)}.guide-day-grid article{min-height:270px;padding:28px;background:#171715}.guide-day-grid time{color:#bca36c;font:600 8px/1 var(--v18-mono);letter-spacing:.11em}.guide-day-grid h3{margin:60px 0 16px;font:500 34px/.95 var(--v18-serif)}.guide-day-grid p{margin:0;color:#928c83;font:12.5px/1.8 var(--v18-sans);word-break:keep-all}
.guide-life-feature{display:grid;grid-template-columns:1.02fr .98fr;margin-top:34px;border:1px solid rgba(255,255,255,.08);background:#0c0c0b}.guide-life-feature img{width:100%;height:100%;min-height:450px;object-fit:cover;filter:saturate(.72)}.guide-life-feature>div{padding:54px 56px}.guide-life-feature span{color:#bda46f;font:600 8px/1 var(--v18-mono);letter-spacing:.14em}.guide-life-feature h3{margin:20px 0 30px;font:500 clamp(42px,4.2vw,64px)/.92 var(--v18-serif);letter-spacing:-.04em}.guide-life-feature p{margin:0 0 18px;color:#999287;font:13px/1.9 var(--v18-sans);word-break:keep-all}
.guide-input-section{background:#ebe7df;color:#161514}.guide-input-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.guide-input-grid article{min-height:170px;padding:25px;border:1px solid #cbc4b8;background:#f3f0e9}.guide-input-grid article.message{grid-column:span 2;background:#171614;color:#eee8de;border-color:#171614}.guide-input-grid span{color:#967b48;font:600 8px/1 var(--v18-mono);letter-spacing:.13em}.guide-input-grid p{margin:46px 0 0;font:500 15px/1.6 var(--v18-sans);word-break:keep-all}.guide-input-grid .message p{color:#f1e9dc;font-family:var(--v18-mono)}.guide-input-grid small{display:block;margin-top:16px;color:#8e877d;font:10px/1.55 var(--v18-sans)}
.guide-rule-strip{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:18px 25px;align-items:start;margin-top:28px;padding:28px 30px;border-top:1px solid #bdb6aa;border-bottom:1px solid #bdb6aa}.guide-rule-strip span{color:#907442;font:600 8px/1.4 var(--v18-mono);letter-spacing:.11em}.guide-rule-strip p{margin:0;color:#625d55;font:11.5px/1.65 var(--v18-sans);word-break:keep-all}
.guide-shortcut-section{background:#11110f}.guide-shortcut-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.guide-shortcut-grid article{position:relative;min-height:270px;padding:30px 25px 28px;border:1px solid rgba(255,255,255,.08);background:#171715;transition:.22s ease}.guide-shortcut-grid article:hover{transform:translateY(-3px);border-color:rgba(201,184,143,.3)}.guide-shortcut-grid b{display:block;color:#e8e1d4;font:500 26px/1 var(--v18-serif)}.guide-shortcut-grid span{display:block;margin-top:16px;color:#aa905a;font:600 7.5px/1 var(--v18-mono);letter-spacing:.12em}.guide-shortcut-grid p{position:absolute;left:25px;right:25px;bottom:28px;margin:0;color:#918b82;font:11.5px/1.72 var(--v18-sans);word-break:keep-all}
.guide-exit{position:relative;min-height:560px;display:flex;align-items:end;overflow:hidden}.guide-exit::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,7,.9),rgba(8,8,7,.3)),linear-gradient(0deg,rgba(8,8,7,.76),transparent 55%)}.guide-exit>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.65)}.guide-exit>div{position:relative;z-index:2;width:min(calc(100% - 56px),1320px);margin:0 auto 74px}.guide-exit span{color:#c6ae78;font:600 8px/1 var(--v18-mono);letter-spacing:.15em}.guide-exit h2{margin:18px 0 30px;font:500 clamp(52px,6vw,88px)/.88 var(--v18-serif);letter-spacing:-.05em}.guide-exit button{margin-right:10px;padding:13px 16px;border:1px solid rgba(255,255,255,.24);background:rgba(10,10,9,.28);color:#e9e3d8;cursor:pointer;font:600 9px/1 var(--v18-sans);letter-spacing:.08em}.guide-exit button:hover{border-color:#b69b62;background:#b69b62;color:#111}

@media(max-width:1180px){.guide-shortcut-grid{grid-template-columns:repeat(3,1fr)}.guide-day-grid{grid-template-columns:repeat(2,1fr)}.guide-hero-index{display:none}.guide-rule-strip{grid-template-columns:auto 1fr}.guide-persona-grid{grid-template-columns:1fr 1fr}.guide-persona-grid article:last-child{grid-column:1/-1}.guide-input-grid{grid-template-columns:1fr 1fr}.guide-input-grid article.message{grid-column:span 2}}
@media(max-width:900px){.guide-subnav{top:78px;justify-content:flex-start;overflow-x:auto;padding:0 14px;scrollbar-width:none}.guide-subnav::-webkit-scrollbar{display:none}.guide-subnav button{flex:0 0 auto}.guide-wide{width:calc(100% - 40px)}.guide-page .section{padding:88px 0}.guide-hero{min-height:700px}.guide-hero-media{grid-template-columns:1fr}.guide-hero-media figure:last-child{display:none}.guide-hero-copy{left:24px;width:calc(100% - 48px)}.guide-intro-grid,.guide-section-head,.guide-life-feature{grid-template-columns:1fr}.guide-section-head{gap:25px}.guide-start-grid{grid-template-columns:1fr}.guide-persona-grid{grid-template-columns:1fr}.guide-persona-grid article:last-child{grid-column:auto}.guide-default-box,.guide-persona-template{grid-template-columns:1fr;gap:24px}.guide-default-box>p{grid-column:auto}.guide-default-box>p+ p{margin-top:0}.guide-life-feature>div{padding:42px}.guide-shortcut-grid{grid-template-columns:1fr 1fr}.guide-exit>div{width:calc(100% - 40px)}}
@media(max-width:640px){.guide-subnav{top:72px}.guide-wide{width:calc(100% - 28px)}.guide-page .section{padding:72px 0}.guide-hero{min-height:620px}.guide-hero-copy{left:18px;bottom:68px;width:calc(100% - 36px)}.guide-hero-copy h1{font-size:clamp(64px,20vw,92px)}.guide-hero-copy>p:last-child{font-size:12.5px}.guide-start-image{height:240px}.guide-start-body{padding:28px 24px 30px}.guide-start-body h3{font-size:43px}.guide-persona-grid article{min-height:auto}.guide-default-box,.guide-persona-template{padding:28px 24px}.guide-day-grid{grid-template-columns:1fr}.guide-day-grid article{min-height:auto}.guide-day-grid h3{margin-top:38px}.guide-life-feature>div{padding:34px 24px}.guide-life-feature img{min-height:280px}.guide-input-grid{grid-template-columns:1fr}.guide-input-grid article.message{grid-column:auto}.guide-rule-strip{grid-template-columns:1fr;gap:9px;padding:24px 0}.guide-shortcut-grid{grid-template-columns:1fr}.guide-shortcut-grid article{min-height:200px}.guide-exit>div{width:calc(100% - 28px);margin-bottom:52px}.guide-exit button{display:block;width:100%;margin:8px 0 0}.guide-exit{min-height:520px}}

/* v71 — player guide readability pass: stop making users take an eye exam */
.guide-hero-copy>p:last-child{font-size:16px;line-height:1.9}
.guide-hero-index{font-size:11px}.guide-hero-index span{font-size:11.5px}
.guide-subnav button{font-size:11.5px}
.guide-page .section-label{font-size:11.5px}
.guide-intro-copy>p{font-size:16.5px;line-height:1.9}
.guide-intro-copy aside{font-size:14.5px;line-height:1.85}
.guide-section-head>p{font-size:15.5px;line-height:1.85}

.guide-start-meta{font-size:11.5px;line-height:1.45}
.guide-start-lead{font-size:17px!important;line-height:1.6!important}
.guide-start-body p{font-size:15.5px;line-height:1.9}
.guide-tags span{font-size:11.5px;padding:9px 12px}
.guide-start-body>small{font-size:12.5px;line-height:1.75}

.guide-persona-grid span,.guide-default-box span,.guide-persona-template span{font-size:11.5px}
.guide-persona-grid p{font-size:15px;line-height:1.85}
.guide-persona-grid code{font-size:11.5px;line-height:1.7}
.guide-default-box>p{font-size:14.5px;line-height:1.85}
.guide-persona-template pre{font-size:12.5px;line-height:1.85}

.guide-day-grid time{font-size:11.5px}
.guide-day-grid p{font-size:14.5px;line-height:1.85}
.guide-life-feature span{font-size:11.5px}
.guide-life-feature p{font-size:15.5px;line-height:1.9}

.guide-input-grid span{font-size:11.5px}
.guide-input-grid p{font-size:16px;line-height:1.65}
.guide-input-grid small{font-size:12px;line-height:1.65}
.guide-rule-strip span{font-size:11.5px}
.guide-rule-strip p{font-size:13.5px;line-height:1.75}

.guide-shortcut-grid b{font-size:28px}
.guide-shortcut-grid span{font-size:11px}
.guide-shortcut-grid p{font-size:13.5px;line-height:1.78}
.guide-exit span{font-size:11.5px}
.guide-exit button{font-size:11.5px}

@media(max-width:640px){
  .guide-hero-copy>p:last-child{font-size:14.5px}
  .guide-start-meta{font-size:11.5px}
  .guide-start-lead{font-size:16.5px!important}
  .guide-start-body p{font-size:15px}
  .guide-start-body>small{font-size:12px}
  .guide-section-head>p,.guide-intro-copy>p{font-size:15.5px}
}

/* v72 — campus language / caste glossary */
.guide-language-section{background:#141310}
.guide-language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.guide-language-grid article{position:relative;min-height:285px;padding:30px 32px 34px;border:1px solid rgba(255,255,255,.085);background:#1a1916;overflow:hidden}
.guide-language-grid article::before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:rgba(191,163,105,.42)}
.guide-language-grid article.slur-term::before{background:rgba(156,72,59,.75)}
.guide-language-grid article.class-term::before{background:rgba(190,161,98,.9)}
.guide-language-top{display:flex;align-items:baseline;justify-content:space-between;gap:22px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.075)}
.guide-language-top span{color:#a78e59;font:600 10px/1 var(--v18-mono);letter-spacing:.13em}
.guide-language-grid .slur-term .guide-language-top span{color:#bd776b}
.guide-language-top b{color:#d9d0bf;font:600 13px/1.25 var(--v18-mono);letter-spacing:.08em;text-align:right}
.guide-language-grid h3{max-width:560px;margin:30px 0 18px;color:#eee7da;font:500 29px/1.08 var(--v18-serif);letter-spacing:-.02em;word-break:keep-all}
.guide-language-grid p{margin:0;color:#a29b90;font:15px/1.88 var(--v18-sans);word-break:keep-all}
.guide-language-grid small{display:block;margin-top:20px;color:#766f65;font:12px/1.65 var(--v18-sans);word-break:keep-all}
.guide-language-note{display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:start;margin-top:24px;padding:28px 30px;border-block:1px solid rgba(255,255,255,.09)}
.guide-language-note span{color:#aa905a;font:600 10px/1.4 var(--v18-mono);letter-spacing:.12em}
.guide-language-note p{margin:0;color:#9b958a;font:14.5px/1.8 var(--v18-sans);word-break:keep-all}
.guide-language-note strong{color:#ddd5c7}
@media(max-width:900px){.guide-language-grid{grid-template-columns:1fr}.guide-language-grid article{min-height:auto}.guide-language-note{grid-template-columns:1fr;gap:12px}}
@media(max-width:640px){.guide-language-grid article{padding:26px 24px 28px}.guide-language-top{align-items:flex-start;flex-direction:column;gap:8px}.guide-language-top b{text-align:left;font-size:12px}.guide-language-grid h3{font-size:26px;margin-top:24px}.guide-language-grid p{font-size:14.5px}.guide-language-note{padding:24px 0}}

/* v77: 한글 핀 가독성 */
.campus-node span{font-size:12px;letter-spacing:.04em;font-weight:600;}
.campus-node b{font-size:11px;}

/* v77: 생활권 카드 2장일 때 여백 방지 */
.academy-life-grid .academy-life-image{aspect-ratio:16/10;}
