/* Colleges in Korea — 2026 design layer.
   Palette follows the Taegeukgi standard colours (red 6.0R 4.5/14 ≈ #CD2E3A, blue 5.0PB 3.0/12 ≈ #0047A0),
   the trigram black and an academic gold. Loaded after the legacy sheets and overrides their tokens. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .32s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:vt-in .5s cubic-bezier(.16,1,.3,1) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-12px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(18px)}}

:root{
  --paper:#fbf8f1;--paper-2:#f3eee2;--ink:#14162a;--muted:#545a6e;
  --navy:#0047A0;--navy-ink:#002a63;--red:#CD2E3A;--red-ink:#a5202b;--gold:#E9B12E;--gold-soft:#f6e3b0;
  --tg-blue:#0047A0;--tg-red:#CD2E3A;--cap:#111111;--tassel:#E9B12E;
  --blue:var(--navy);--lime:var(--gold);--lilac:#dce6f6;--coral:#f6d0cb;--line:#e1dccf;
  --ease:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);
  --radius:22px;--shadow:0 1px 0 #0000000a,0 18px 40px -22px #14162a40;
}
body{background:var(--paper);color:var(--ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
::selection{background:var(--gold);color:var(--ink)}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--red);outline-offset:4px}
h1,.page-head h1{color:var(--ink)}
h1 em,h2 em,.page-head h1 em{color:var(--navy);font-style:italic}
.eyebrow{color:var(--red)}
.page-head .eyebrow,.section-head .eyebrow,.hero .eyebrow{color:var(--red)}

/* Buttons */
.btn{background:var(--navy);color:#fff;gap:14px;transition:transform .35s var(--ease),background .25s,box-shadow .35s var(--ease);box-shadow:0 10px 24px -14px #0047a0aa}
.btn:hover{background:var(--navy-ink);transform:translateY(-2px)}
.btn.lime,.btn.gold{background:var(--gold);color:var(--ink);box-shadow:0 10px 24px -14px #b9860faa}
.btn.lime:hover,.btn.gold:hover{background:#f2c24f}
.btn.ghost:hover{background:var(--lilac)}
.btn.glass{background:#ffffff1f;color:#fff;border-color:#ffffff59;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:none}
.btn.glass:hover{background:#ffffff33}
.btn .arrow{transition:transform .35s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}
.textlink{gap:12px;border-bottom:1px solid currentColor;background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .45s var(--ease),color .2s}
.textlink:hover{color:var(--navy);background-size:100% 2px}

h1 em:after,.page-head h1 em:after{height:.09em!important;bottom:.02em!important;transform:none!important;background:var(--gold)!important;opacity:.9}

/* Scroll progress */
.scroll-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:80;pointer-events:none}
.scroll-progress span{display:block;height:100%;background:var(--red);transform-origin:0 50%;transform:scaleX(var(--p,0))}

/* Header */
.site-header{position:sticky;top:0;z-index:60;height:84px;background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:height .4s var(--ease),background .4s,border-color .4s,color .4s,transform .45s var(--ease)}
.site-header.is-scrolled{height:68px;border-bottom-color:#14162a14}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header.over-hero{position:fixed;inset:0 0 auto 0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff}
.site-header.over-hero.is-scrolled{background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);color:var(--ink)}
.site-header .nav{height:100%}
.brand{gap:12px;color:inherit}
.brandmark{width:46px;height:46px;transition:transform .6s var(--ease)}
.brand:hover .brandmark{transform:rotate(-8deg) scale(1.04)}
.brandname{display:flex;align-items:baseline;gap:.28em;font-family:var(--heading);font-size:25px;font-weight:600;letter-spacing:-.04em;line-height:1;white-space:nowrap}
.brandname em{display:inline;font-family:var(--accent);font-weight:400;font-style:italic;font-size:1em;letter-spacing:-.02em;margin:0;color:var(--navy);text-decoration:none}
.over-hero:not(.is-scrolled) .brandname em{color:#fff}
.navlinks{gap:30px;font-size:14px}
.navlinks a{position:relative;color:inherit;padding:10px 0}
.navlinks a:first-child{color:inherit;font-weight:inherit}
.navlinks a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--ease)}
.navlinks a:hover{text-decoration:none}
.navlinks a:hover::after,.navlinks a[aria-current=page]::after{transform:scaleX(1);transform-origin:0 50%}
.menubtn{display:none;place-items:center;border-color:currentColor;color:inherit}
.menubtn svg{width:22px;height:22px}
.mobile-nav{position:fixed;inset:68px 0 auto 0;z-index:59;background:var(--paper);box-shadow:0 20px 40px -20px #14162a55;padding:14px 20px 24px;gap:6px}
.mobile-nav a{background:#fff;border:1px solid var(--line);border-radius:12px}
.mobile-nav a[aria-current=page]{border-color:var(--navy);color:var(--navy)}

/* Page heads with photographic or map visual */
.page-head{position:relative;padding:56px 0 40px}
.page-head h1{font-size:clamp(44px,5.6vw,84px);letter-spacing:-.045em;line-height:1.02}
.page-head.has-visual{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.85fr);gap:56px;align-items:center}
.ph-copy{min-width:0}
.page-visual{position:relative;margin:0;justify-self:end;width:100%;max-width:440px}
.pv-frame{position:relative;aspect-ratio:4/4.6;border-radius:240px 240px 26px 26px;overflow:hidden;background:var(--paper-2);box-shadow:var(--shadow);isolation:isolate}
.pv-frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.6s var(--ease)}
.page-visual.is-in .pv-frame img{transform:scale(1)}
.page-visual figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:12px;color:var(--muted)}
.page-visual figcaption a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.pv-tg{position:absolute;width:84px;height:84px;left:-26px;bottom:44px;border-radius:50%;box-shadow:0 0 0 8px var(--paper);animation:spin 28s linear infinite}
.locator .pv-frame{background:linear-gradient(160deg,#eef3fb,#dfe7f5);display:grid;place-items:center;padding:30px}
.locator-map{width:100%;height:100%;overflow:visible}
.locator-map use{fill:#fff;stroke:#c7d3e8;stroke-width:1}
.locator-map use.lit{fill:var(--navy);stroke:#fff}
.locator-pin{fill:var(--red);stroke:#fff;stroke-width:2.5;transform-box:fill-box;transform-origin:center;animation:pin 2.4s var(--ease) infinite}
@keyframes pin{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
@keyframes spin{to{transform:rotate(360deg)}}

/* Section heads, cards, pills */
.section-head h2{font-size:clamp(38px,4.4vw,68px);letter-spacing:-.04em;line-height:1.04}
.card{border:1px solid #ddd8ca;border-radius:var(--radius);background:#fff;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}
a.card:hover,.scholar-card:hover,.path:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#cfc8b6}
.path{border:1px solid #ddd8ca!important}
.pill{background:#e8eef8;color:#16305e}
.pill.language{background:#dce6f6;color:#102a55}
.pill.bachelor{background:var(--gold-soft);color:#4a3606}
.pill.graduate{background:#f8d9d5;color:#6b1d23}
.pill.status{background:#f1ede2;color:#2b2e3f;font-size:12px}
.save-btn{border-color:#d6d0c1}
.save-btn[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
.cost-cta{position:relative;overflow:hidden;background:var(--navy);color:#fff;border-radius:var(--radius);padding:40px 44px}
.cost-cta h2{color:#fff}.cost-cta p{color:#dfe7f5}
.cost-cta::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:conic-gradient(from 214deg,var(--red) 0 50%,#2a63b8 0 100%);opacity:.22;animation:spin 40s linear infinite}
.cost-cta>*{position:relative;z-index:1}
.funding{background:#eef2f9}
.funding-bottom{font-size:13px;color:var(--muted)}
.funding-bottom a{color:var(--navy)}
.notice{border-radius:16px}

/* Table filter (tuition directory) */
.table-filter{position:sticky;top:76px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:30px 0 8px;padding:14px 18px;background:color-mix(in srgb,#fff 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.table-filter label{font-weight:600;font-size:14px}
.table-filter input{flex:1 1 260px;min-height:46px;border:1px solid #cfc8b6;border-radius:12px;padding:10px 14px;font-size:16px;background:#fff}
.filter-count{font-size:13px;color:var(--muted)}
.rows-more{margin:14px 0 0}

/* Footer */
.site-footer{position:relative;overflow:hidden;background:var(--ink);color:#e9ebf3;padding:90px 0 34px;margin-top:80px}
.site-footer a{color:#fff}
.footer-sky{position:absolute;right:-180px;top:-140px;width:560px;height:560px;opacity:.14;pointer-events:none}
.footer-tg{width:100%;height:100%;animation:spin 60s linear infinite}
.footer-hero{position:relative;margin-bottom:56px}
.footer-kicker{font-size:15px;color:var(--gold);margin:0 0 18px}
.footer-big{font-family:var(--heading);font-size:clamp(40px,6vw,92px);line-height:.98;letter-spacing:-.045em;margin:0;color:#fff}
.footer-big em{font-family:var(--accent);color:var(--gold);font-weight:400}
.site-footer .footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;padding-top:34px;border-top:1px solid #ffffff22}
.footer-brand .brandname em{color:#fff}
.site-footer .footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,auto));gap:12px 40px;font-size:14px}
.site-footer .footer-links a{color:#c9cede}
.site-footer .footer-links a:hover{color:#fff}
.site-footer .foot-network{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 24px;margin-top:34px;padding-top:22px;border-top:1px solid #ffffff1f;font-size:14px}
.site-footer .foot-network p{flex-basis:100%;margin:0 0 2px;color:#9aa0b6;font-size:12px}
.site-footer .foot-network a{color:#c9cede}
.site-footer .foot-network a:hover{color:#fff}
.site-footer .foot-disclosure{color:#9aa0b6;font-size:12px;margin:36px 0 18px;max-width:880px}
.site-footer .footer-bottom{display:flex;justify-content:space-between;gap:16px;color:#9aa0b6;font-size:12px;border-top:1px solid #ffffff1a;padding-top:18px}

/* Motion: content is visible without JS; motion.mjs adds .motion-ready to <html>. */
.motion-ready [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.motion-ready [data-reveal=fade]{transform:none}
.motion-ready [data-reveal=mask]{opacity:1;transform:none;clip-path:inset(18% 10% 18% 10% round 240px 240px 26px 26px);transition:clip-path 1.4s var(--ease) var(--d,0s)}
.motion-ready [data-reveal].is-in{opacity:1;transform:none;clip-path:inset(0 0 0 0 round 0)}
.motion-ready [data-stagger]>*{opacity:0;transform:translateY(40px);transition:opacity .9s var(--ease) calc(var(--i,0)*90ms),transform 1.1s var(--ease) calc(var(--i,0)*90ms)}
.motion-ready [data-stagger].is-in>*{opacity:1;transform:none}
.split-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split-i{display:inline-block}
.motion-ready [data-split] .split-i{transform:translateY(108%);transition:transform 1.15s var(--ease) calc(var(--d,0s) + var(--i,0)*70ms)}
.motion-ready [data-split].is-in .split-i{transform:none}
.magnetic{will-change:transform}

/* Language switch (EN/ES) */
.lang-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid color-mix(in srgb,currentColor 28%,transparent);border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.06em;line-height:1}
.lang-switch a{color:inherit;padding:7px 10px;border-radius:999px;text-decoration:none;opacity:.72;transition:background .3s var(--ease),opacity .3s var(--ease)}
.lang-switch a:hover{opacity:1;text-decoration:none}
.lang-switch a[aria-current]{opacity:1;background:var(--ink);color:var(--paper)}
.over-hero:not(.is-scrolled) .lang-switch a[aria-current]{background:#fff;color:var(--ink)}
.lang-mobile{display:none}
@media(max-width:900px){.navright>.lang-switch{display:none}.mobile-nav .lang-mobile{display:inline-flex;justify-self:start;align-self:flex-start;width:max-content;margin-top:8px;color:var(--ink)}.mobile-nav .lang-mobile a{background:none;border:0;border-radius:999px;padding:9px 16px}.mobile-nav .lang-mobile a[aria-current]{background:var(--ink);color:var(--paper)}}

@media(max-width:1100px){.site-footer .footer-links{grid-template-columns:repeat(2,minmax(0,auto))}}
@media(max-width:900px){
  .navlinks{display:none}.menubtn{display:grid}
  .page-head.has-visual{grid-template-columns:1fr;gap:28px}
  .page-visual{justify-self:start;max-width:none}
  .pv-frame{aspect-ratio:16/10;border-radius:160px 160px 20px 20px}
  .locator .pv-frame{aspect-ratio:16/11}
  .pv-tg{width:60px;height:60px;left:auto;right:16px;bottom:-22px}
  .site-footer .footer-top{flex-direction:column}
}
@media(max-width:600px){
  .site-header,.site-header.is-scrolled{height:66px}
  .brandmark{width:38px;height:38px}.brandname{font-size:20px}
  .page-head{padding:34px 0 26px}
  .page-head h1{font-size:clamp(38px,11vw,54px)}
  .cost-cta{padding:30px 24px}
  .table-filter{top:70px}
  .site-footer{padding-top:64px}
  .site-footer .footer-links{grid-template-columns:1fr 1fr;gap:12px 20px;font-size:13px}
  .site-footer .foot-network{font-size:13px;gap:8px 20px}
  .site-footer .footer-bottom{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  .pv-tg,.footer-tg,.cost-cta::after,.locator-pin{animation:none}
}
@media print{.scroll-progress,.site-footer .footer-sky{display:none}}
@media(max-width:900px){.pv-tg{bottom:auto;top:-18px;right:18px}}
/* Korean text uses Hanamdaum from Adobe Fonts project qbp8niz. */
[lang=ko],.marquee-track span[lang=ko]{font-family:"hanamdaum",var(--body)}
/* Real-font review (Quador is wider than fallbacks): avoid one-word orphans in headings. */
h1,h2,h3,.film-title,.footer-big{text-wrap:balance}

/* Spanish edition */
.es-stage{margin-top:56px}
.es-stage-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:24px}
.es-stage-head h2{margin:0}
.es-count,.es-result{font-size:14px;color:var(--muted,#5b5e72)}
.es-item[hidden],.es-stage[hidden]{display:none}
.es-filter{margin-top:8px}
.es-earlier{margin-top:56px;border-top:1px solid var(--line);padding-top:20px}
.es-earlier summary{cursor:pointer;font-weight:600}
.es-earlier .grid-3{margin-top:20px}
.footer-links small,.card-actions small{font-size:.78em;opacity:.7}
.more-row{display:flex;justify-content:center;margin:34px 0 10px}
.more-row .more-count{opacity:.6;font-weight:400}
.toolbar .sort-field select{min-width:200px}
.deadline-line{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:12px 0 4px;padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--red) 8%,#fff);color:var(--red)}
.deadline-line .mini-label{color:inherit}
.deadline-line strong{font-weight:600}
.award-badge{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--gold) 22%,#fff);color:var(--ink);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
.award-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red)}
.award-badge:hover{text-decoration:none;background:color-mix(in srgb,var(--gold) 40%,#fff)}
.university-card>.award-badge{float:right}
.pv-frame picture,.reel-image picture{display:block;width:100%;height:100%}
/* Deadlines */
.deadline-strip{margin-top:56px}
.dl-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.dl-head h2{margin:0}
.dl-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dl-row a{display:flex;gap:16px;align-items:flex-start;height:100%;padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);text-decoration:none;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.dl-row a:hover{transform:translateY(-3px);box-shadow:var(--shadow);text-decoration:none}
.dl-date{flex:none;display:grid;place-items:center;width:62px;height:66px;border-radius:14px;background:var(--navy);color:#fff;text-align:center;line-height:1}
.dl-date strong{font-family:var(--heading);font-size:28px;font-weight:600}
.dl-date span{font-size:11px;letter-spacing:.04em;opacity:.85;margin-top:-10px}
.dl-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.dl-inst{font-weight:600;line-height:1.25}
.dl-meta{font-size:13px;color:var(--muted,#5b5e72)}
.dl-count{font-size:12px;font-weight:600;color:var(--navy)}
.dl-count.soon{color:var(--red)}
.dl-month{margin-top:44px}
.dl-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.dl-item{display:flex;gap:22px;align-items:flex-start}
.dl-item h3{margin:0 0 4px}
.dl-label{font-size:14px;margin:6px 0}
.dl-awards{list-style:none;margin:10px 0 14px;padding:0;display:grid;gap:8px}
.dl-awards .pill{font-size:11px}
@media(max-width:1000px){.dl-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dl-row{grid-template-columns:1fr}.dl-head{flex-direction:column;align-items:flex-start}.dl-item{flex-direction:column;gap:12px}}
.dl-body .textlink{align-self:flex-start}
/* Life in Korea guides */
.life-wrap{margin-top:40px}
.life-steps{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:26px}
.life-steps::before{content:"";position:absolute;left:31px;top:20px;bottom:20px;width:2px;background:linear-gradient(var(--red),var(--navy))}
.life-step{display:grid;grid-template-columns:64px 1fr;gap:24px;align-items:start;scroll-margin-top:110px}
.life-num{position:relative;z-index:1;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--heading);font-size:24px;font-weight:600;box-shadow:0 0 0 6px var(--paper)}
.life-step:nth-child(odd) .life-num{background:var(--navy)}
.life-step:nth-child(3n) .life-num{background:var(--red)}
.life-card h2{margin:4px 0 12px}
.life-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}
.life-grid>div{padding:16px;border-radius:16px;background:var(--paper-2,#f3efe6)}
.life-grid h3{margin:0 0 6px;font-size:18px}
.life-grid p{margin:0;font-size:14px}
.life-fact{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:14px 0;padding:16px 18px;border-radius:16px;background:color-mix(in srgb,var(--gold) 18%,#fff)}
.life-fact strong{font-family:var(--heading);font-size:30px}
.life-src{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 0;font-size:14px}
.life-stats .data-count{font-family:var(--heading);font-size:44px;color:var(--navy);display:block}
@media(max-width:800px){.life-grid{grid-template-columns:1fr}.life-step{grid-template-columns:44px 1fr;gap:14px}.life-num{width:44px;height:44px;font-size:17px}.life-steps::before{left:21px}}
.rank-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--navy);color:#fff;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
.rank-badge::before{content:"";width:10px;height:10px;background:conic-gradient(from 214deg,var(--red) 0 50%,#5d8fe0 0 100%);border-radius:50%}
.rank-badge:hover{text-decoration:none;background:var(--ink)}
.university-card .card-top{flex-wrap:wrap;gap:8px}
.navlinks a{white-space:nowrap}
@media(max-width:1280px){.navlinks{gap:20px;font-size:13.5px}}
@media(max-width:1180px){.navlinks{gap:16px}.navright .btn.desktop-only{display:none}}
/* Russian edition: the main kit has no Cyrillic, so headings use Arsenal and accents baldufa-cyrillic (kit hed4ifm). The wordmark keeps its Latin faces. */
html[lang=ru]{--heading:"arsenal",Arial,sans-serif;--accent:"baldufa-cyrillic","arsenal",Georgia,serif;--label:"arsenal",Arial,sans-serif}
html[lang=ru] .brandname{font-family:"quador",Georgia,serif}
html[lang=ru] .brandname em{font-family:"ogg",Georgia,serif}
html[lang=ru] h1,html[lang=ru] h2,html[lang=ru] h3{letter-spacing:-.02em;font-weight:700}
html[lang=ru] .film-title{font-size:clamp(46px,7.4vw,124px);line-height:1;letter-spacing:-.035em;max-width:12ch}
@media (max-width:640px){html[lang=ru] .film-title{font-size:clamp(40px,11.5vw,62px)}}
