/* 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:11px!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(3,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:11px!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: 10.5px; line-height: 1.55; }
.v21-card-meta span { font-size: 8.5px; }
.v21-card-body blockquote { font-size: 16px; line-height: 1.55; }
.v21-card-traces span { font-size: 8.5px; }

.v21-profile-card-copy > em { font-size: 12px; }
.v21-profile-card-copy > p { font-size: 10.5px; line-height: 1.55; }
.v21-profile-card-copy dt { font-size: 9px; }
.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: 9px; }
.v21-profile-facts strong { font-size: clamp(17px,1.3vw,22px); }

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

.v21-profile-preferences span { font-size: 9px; }
.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: 9px!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: 9px!important; }

.v21-private-note summary span { font-size: 9px; }
.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:11px!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:8px!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:9px; }
.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:10px; }
.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: 10px;
  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:10px; }
.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:10px; }
.v18-ig-tabs { height:52px; }
.v18-ig-tabs strong,.v18-ig-tabs span { font-size:10px; }
.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:11px; }
.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:9px; }
.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:9px; }
.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:10px; }
.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:11px; }
.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:10px; }

  /* 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:11px; }
  .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:9px; }
.v26-trace-dock button small { font-size:8px; }

/* 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:'REC';
  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:10px !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:11px; }
.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:8px;
  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:11px;
  letter-spacing:.08em;
}
.v21-trace-dock small {
  font-size:10px;
  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:10px; }
  .v21-trace-dock small { font-size:9px; }
}


/* 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:11px;
  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:11px; }
  .v21-trace-dock small { font-size:10px; }
}


/* 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;
  }
}
