/* UG Exam Atlas — Camp Verbal
   Layout: a directory site. Navy hero with one big search, then browse sections on alternating
   white / tinted bands; listings are cards with a filter rail; every exam and college has a profile
   page with key numbers on top, a sticky section menu and a sidebar.
   Brand: Camp Verbal navy + gold + maroon. Light-first, dark mirror. */
:root{
  --bg:#ffffff; --tint:#f5f7fc; --tint2:#edf0f8; --card:#ffffff; --line:#e1e5ef; --line2:#cdd4e5;
  --ink:#0f1a40; --ink2:#36406a; --muted:#5d6788; --faint:#8b93ad;
  --navy:#13205a; --navy2:#1c2c73; --on-navy:#ffffff; --on-navy-2:#c3cbea; --on-navy-line:rgba(255,255,255,.16);
  --gold:#e2b23e; --gold-hi:#efc65e; --gold-ink:#1b1505; --gold-text:#8f6406; --gold-soft:#fbf3dc;
  --maroon:#9b2440; --maroon-soft:#fbe8ed;
  --ok:#17784a; --ok-soft:#e1f3e9; --warn:#8f6100; --warn-soft:#fbf0d5; --info:#2b42a6; --info-soft:#e8ecfb;
  --c1:#2b3f9e; --c1s:#e6eafa; --c2:#0d736e; --c2s:#dcf2ef; --c3:#9b2440; --c3s:#fbe8ed; --c4:#8a5a00; --c4s:#fbf0d6; --c5:#6a3c9e; --c5s:#efe6f9;
  --shadow-sm:0 1px 2px rgba(16,26,64,.06);
  --shadow:0 1px 2px rgba(16,26,64,.05),0 8px 24px -12px rgba(16,26,64,.18);
  --shadow-lg:0 2px 4px rgba(16,26,64,.06),0 24px 48px -20px rgba(16,26,64,.30);
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:14px; --r-sm:10px; --max:1200px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0b1230; --tint:#0e1737; --tint2:#121c42; --card:#111b42; --line:#222e64; --line2:#2f3d80;
  --ink:#eef1fb; --ink2:#cbd2ec; --muted:#9ca6c9; --faint:#6f79a1;
  --navy:#0f1946; --navy2:#16235c; --on-navy:#ffffff; --on-navy-2:#b6c0e6; --on-navy-line:rgba(255,255,255,.12);
  --gold:#e4b84f; --gold-hi:#f0c968; --gold-ink:#1b1505; --gold-text:#ebc35f; --gold-soft:rgba(228,184,79,.13);
  --maroon:#f28aa0; --maroon-soft:rgba(242,138,160,.14);
  --ok:#5fd39b; --ok-soft:rgba(95,211,155,.13); --warn:#f2c25a; --warn-soft:rgba(242,194,90,.13); --info:#9db0ff; --info-soft:rgba(157,176,255,.13);
  --c1:#9db0ff; --c1s:rgba(157,176,255,.14); --c2:#5fd0c6; --c2s:rgba(95,208,198,.13); --c3:#f28aa0; --c3s:rgba(242,138,160,.14); --c4:#f2c25a; --c4s:rgba(242,194,90,.13); --c5:#c6a3f5; --c5s:rgba(198,163,245,.14);
  --shadow-sm:none; --shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 28px -16px rgba(0,0,0,.7); --shadow-lg:0 24px 48px -20px rgba(0,0,0,.8);
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0b1230; --tint:#0e1737; --tint2:#121c42; --card:#111b42; --line:#222e64; --line2:#2f3d80;
  --ink:#eef1fb; --ink2:#cbd2ec; --muted:#9ca6c9; --faint:#6f79a1;
  --navy:#0f1946; --navy2:#16235c; --on-navy:#ffffff; --on-navy-2:#b6c0e6; --on-navy-line:rgba(255,255,255,.12);
  --gold:#e4b84f; --gold-hi:#f0c968; --gold-ink:#1b1505; --gold-text:#ebc35f; --gold-soft:rgba(228,184,79,.13);
  --maroon:#f28aa0; --maroon-soft:rgba(242,138,160,.14);
  --ok:#5fd39b; --ok-soft:rgba(95,211,155,.13); --warn:#f2c25a; --warn-soft:rgba(242,194,90,.13); --info:#9db0ff; --info-soft:rgba(157,176,255,.13);
  --c1:#9db0ff; --c1s:rgba(157,176,255,.14); --c2:#5fd0c6; --c2s:rgba(95,208,198,.13); --c3:#f28aa0; --c3s:rgba(242,138,160,.14); --c4:#f2c25a; --c4s:rgba(242,194,90,.13); --c5:#c6a3f5; --c5s:rgba(198,163,245,.14);
  --shadow-sm:none; --shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 28px -16px rgba(0,0,0,.7); --shadow-lg:0 24px 48px -20px rgba(0,0,0,.8);
  color-scheme:dark}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:140px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15.5px/1.6 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit}
p a,.prose a,.link{color:var(--gold-text);text-underline-offset:3px}
img{max-width:100%}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:var(--max);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3,h4{text-wrap:balance}
.eyebrow{font:600 12px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);margin:0 0 10px}

/* ---------- buttons, pills, chips ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border-radius:999px;border:1px solid var(--line2);background:var(--card);color:var(--ink);font:600 14px var(--body);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,transform .1s}
.btn:hover{border-color:var(--ink2)}
.btn:active{transform:translateY(1px)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.btn.gold:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.btn.navy{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.btn.ghost{background:transparent}
.btn.sm{min-height:36px;padding:0 14px;font-size:13.5px}
.btn svg{width:16px;height:16px;flex:none}
.pill{display:inline-flex;align-items:center;gap:6px;font:600 11.5px var(--body);letter-spacing:.04em;padding:4px 10px;border-radius:999px;white-space:nowrap;line-height:1.2}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.pill.open{color:var(--ok);background:var(--ok-soft)}
.pill.soon{color:var(--warn);background:var(--warn-soft)}
.pill.exam{color:var(--info);background:var(--info-soft)}
.pill.closed,.pill.na{color:var(--muted);background:var(--tint2)}
.pill.na::before{background:transparent;border:1.5px solid currentColor;width:6px;height:6px}
.pill.urgent{color:var(--maroon);background:var(--maroon-soft)}
.cut{display:inline-block;font:700 10.5px var(--body);letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;border-radius:5px;white-space:nowrap}
.cut.official{color:var(--ok);background:var(--ok-soft)}
.cut.unofficial{color:var(--warn);background:var(--warn-soft)}
.cut.not_published{color:var(--muted);background:var(--tint2)}
.tag{display:inline-flex;align-items:center;font:500 12.5px var(--body);padding:4px 11px;border-radius:999px;background:var(--tint2);color:var(--ink2);max-width:100%;line-height:1.35}
.tag.gold{background:var(--gold-soft);color:var(--gold-text)}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line2);background:var(--card);font:500 13.5px var(--body);text-decoration:none;color:var(--ink);cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--gold);color:var(--ink)}
.chip b{font:600 12px var(--mono);color:var(--muted)}
.star{width:40px;height:40px;border-radius:50%;border:1px solid var(--line2);background:var(--card);display:inline-grid;place-items:center;cursor:pointer;color:var(--faint);flex:none;transition:transform .12s,color .15s,background .15s}
.star:hover{color:var(--gold-text);border-color:var(--gold)}
.star[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.star svg{width:17px;height:17px}
.star:active{transform:scale(.9)}
.star.sm{width:34px;height:34px}.star.sm svg{width:15px;height:15px}

/* monograms */
.mono{flex:none;width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font:700 13px/1 var(--mono);letter-spacing:.02em;text-align:center;padding:4px;overflow:hidden;white-space:nowrap}
.mono.long{font-size:10.5px;letter-spacing:-.03em}.mono.sm.long{font-size:8.5px}.mono.lg.long{font-size:13px}
.mono.sm{width:42px;height:42px;border-radius:11px;font-size:11px}
.mono.lg{width:76px;height:76px;border-radius:18px;font-size:16px}
.mono.c1{background:var(--c1s);color:var(--c1)} .mono.c2{background:var(--c2s);color:var(--c2)} .mono.c3{background:var(--c3s);color:var(--c3)} .mono.c4{background:var(--c4s);color:var(--c4)} .mono.c5{background:var(--c5s);color:var(--c5)}

/* ---------- header ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--card);z-index:60}
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:18px;min-height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.logo svg{width:30px;height:33px}
.logo-t{display:flex;flex-direction:column;line-height:1.1}
.logo-t b{font:600 18px var(--display);letter-spacing:-.01em}
.logo-t small{font:600 10.5px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.hsearch+.nav{margin-left:0}
.nav>a,.dd-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border-radius:10px;text-decoration:none;font:500 14.5px var(--body);color:var(--ink2);background:none;border:0;cursor:pointer;white-space:nowrap}
.nav>a:hover,.dd-btn:hover{background:var(--tint);color:var(--ink)}
.nav>a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--gold);border-radius:0}
.dd{position:relative}
.dd-btn svg{width:12px;height:12px;transition:transform .2s}
.dd-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.dd-menu{position:absolute;top:calc(100% + 8px);left:-12px;width:340px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:8px;display:grid;gap:2px;z-index:5}
.dd-menu a{display:grid;grid-template-columns:36px 1fr;gap:2px 12px;align-items:center;padding:10px;border-radius:10px;text-decoration:none}
.dd-menu a:hover{background:var(--tint)}
.dd-menu .ic{grid-row:span 2;width:36px;height:36px;border-radius:10px;background:var(--gold-soft);color:var(--gold-text);display:grid;place-items:center}
.dd-menu .ic svg{width:18px;height:18px}
.dd-menu b{font:600 14px var(--body)}
.dd-menu span:last-child{font-size:12.5px;color:var(--muted)}
.badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--gold);color:var(--gold-ink);font:700 11px var(--body)}
.hsearch{position:relative;flex:1;max-width:380px;margin-left:auto;margin-right:8px}
.hsearch input{width:100%;height:42px;border-radius:999px;border:1px solid var(--line2);background:var(--tint);padding:0 16px 0 40px;font:inherit;color:var(--ink)}
.hsearch input:focus{background:var(--card);border-color:var(--gold);outline:none;box-shadow:0 0 0 3px var(--gold-soft)}
.hsearch>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}
.hdr-cta{flex:none}
.hdr-in>.hdr-cta:first-of-type{margin-left:auto}
.hsearch+.hdr-cta{margin-left:0}
.nav .nav-elig{display:none}
.burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line2);background:var(--card);cursor:pointer;place-items:center;flex:none}
.burger svg{width:20px;height:20px}
@media (max-width:1060px){.hdr-cta{display:none}.nav .nav-elig{display:inline-flex;margin-left:8px;min-height:38px;padding:0 14px;font-size:13.5px}}
@media (max-width:900px){
  .hdr-in{flex-wrap:wrap;gap:10px 12px;padding-block:10px}
  .burger{display:grid;margin-left:auto}
  .hsearch{order:3;flex-basis:100%;max-width:none;margin:0}
  .nav{order:4;flex-basis:100%;flex-direction:column;align-items:stretch;gap:2px;padding:6px 0 10px;border-top:1px solid var(--line)}
  .nav:not(.open){display:none}
  .nav .nav-elig{display:flex;margin-top:8px;color:var(--gold-ink)}
  .nav>a,.dd-btn{padding:12px 6px;border-radius:8px;font-size:15.5px}
  .nav>a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--gold);padding-left:12px}
  .dd-menu{position:static;width:auto;box-shadow:none;border:0;padding:0 0 6px 6px}
}

/* ---------- suggestions ---------- */
.sugg{position:absolute;left:0;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:6px;z-index:70;max-height:min(70vh,480px);overflow:auto;text-align:left}
.sugg .grp{font:600 10.5px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:10px 10px 4px}
.sugg a{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--ink)}
.sugg a:hover,.sugg a[aria-selected="true"]{background:var(--tint)}
.sugg a .t{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.sugg a .t b{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sugg a .t small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sugg .none{padding:14px 12px;color:var(--muted);font-size:14px}
.sugg mark{background:var(--gold-soft);color:inherit;border-radius:3px;padding:0 1px}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--navy);color:var(--on-navy);overflow:hidden;isolation:isolate}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--on-navy-line)}
.hero-art{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.9}
.hero-art svg{position:absolute;right:-120px;top:-40px;width:900px;height:auto;max-width:none}
@media (max-width:720px){.hero-art svg{right:-600px;top:40px;width:820px}.hero-art{opacity:.6}}
.hero-in{padding-block:clamp(48px,8vw,96px) clamp(80px,10vw,120px);max-width:var(--max)}
.hero .eyebrow{color:var(--gold)}
.hero h1{font:600 clamp(38px,6.6vw,72px)/1.0 var(--display);letter-spacing:-.025em;margin:0 0 18px;max-width:15ch;font-variation-settings:"opsz" 144}
.hero h1 em{font-style:italic;font-weight:500;color:var(--gold)}
.hero .lede{font-size:clamp(16px,1.6vw,18.5px);color:var(--on-navy-2);max-width:58ch;margin:0 0 28px}
.bigsearch{position:relative;display:flex;align-items:center;gap:8px;max-width:720px;background:#fff;border-radius:999px;padding:7px 7px 7px 22px;box-shadow:0 18px 40px -18px rgba(0,0,0,.55)}
.bigsearch>svg{width:20px;height:20px;color:#5d6788;flex:none}
.bigsearch input{flex:1;min-width:0;border:0;background:transparent;font:500 17px var(--body);color:#0f1a40;height:48px;outline:none}
.bigsearch input::placeholder{color:#8b93ad}
.bigsearch .btn{min-height:50px;padding:0 26px;font-size:15px}
.bigsearch:focus-within{box-shadow:0 0 0 4px rgba(226,178,62,.45),0 18px 40px -18px rgba(0,0,0,.55)}
.bigsearch .sugg{top:calc(100% + 10px);color:var(--ink)}
@media (max-width:560px){.bigsearch{padding-left:16px}.bigsearch .btn{padding:0 16px}.bigsearch .btn span{display:none}.bigsearch input{font-size:16px}}
.popular{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:16px;font-size:14px;color:var(--on-navy-2)}
.popular a{color:var(--on-navy);text-decoration:none;border-bottom:1px solid var(--on-navy-line)}
.popular a:hover{border-color:var(--gold);color:var(--gold)}
.statband{position:relative;z-index:2;margin-top:-52px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden}
.stats>div{padding:20px 24px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.stats>div:first-child{border-left:0}
.stats b{font:600 clamp(26px,3.4vw,38px)/1 var(--display);font-variant-numeric:tabular-nums}
.stats span{font-size:13.5px;color:var(--muted)}
.stats .live b{color:var(--ok)}
@media (max-width:720px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div:nth-child(3){border-left:0}.stats>div:nth-child(n+3){border-top:1px solid var(--line)}.stats>div{padding:16px 18px}}

/* ---------- sections ---------- */
.sec{padding-block:clamp(44px,6vw,76px)}
.sec.tint{background:var(--tint)}
.sec.first{padding-top:56px}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:28px}
.sec-head h2{font:600 clamp(26px,3.4vw,38px)/1.1 var(--display);letter-spacing:-.015em;margin:0}
.sec-head p{margin:8px 0 0;color:var(--muted);max-width:60ch}
.more{display:inline-flex;align-items:center;gap:6px;font:600 14.5px var(--body);color:var(--ink);text-decoration:none;white-space:nowrap}
.more:hover{color:var(--gold-text)}
.more svg{width:16px;height:16px;transition:transform .15s}
.more:hover svg{transform:translateX(3px)}

/* deadline carousel */
.rail-wrap{position:relative}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(268px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 18px;scrollbar-width:thin}
@media (min-width:1100px){.rail{grid-auto-columns:calc((100% - 48px)/4)}}
.rail-nav{display:flex;gap:8px}
.rail-nav button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line2);background:var(--card);cursor:pointer;display:grid;place-items:center}
.rail-nav button:hover{border-color:var(--ink2)}
.rail-nav svg{width:18px;height:18px}
.dcard{scroll-snap-align:start;display:flex;flex-direction:column;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm);position:relative;min-width:0;transition:box-shadow .2s,transform .2s,border-color .2s}
.dcard:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--line2)}
.dcard .top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.dcard h3{font:600 19px/1.2 var(--display);margin:0}
.dcard h3 a{text-decoration:none}
.dcard h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.dcard .star{position:relative;z-index:2}
.dcard .sub{margin:-6px 0 0;font-size:13px;color:var(--muted)}
.cd{display:flex;align-items:baseline;gap:8px}
.cd b{font:600 40px/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.cd span{font-size:13px;color:var(--muted);line-height:1.3}
.dcard.urgent .cd b{color:var(--maroon)}
.meter{height:5px;border-radius:3px;background:var(--tint2);overflow:hidden}
.meter i{display:block;height:100%;border-radius:3px;background:var(--gold)}
.dcard.urgent .meter i{background:var(--maroon)}
.dcard .foot{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:auto}

/* browse tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.tiles.t4{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.tiles.t5{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.tiles.t4f{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s;min-width:0}
.tile:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-2px)}
.tile .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:8px;background:var(--gold-soft);color:var(--gold-text)}
.tile .ic svg{width:22px;height:22px}
.tile h3{font:600 19px/1.2 var(--display);margin:0}
.tile p{margin:0;font-size:13.5px;color:var(--muted)}
.tile .count{margin-top:auto;padding-top:10px;font:600 12.5px var(--mono);color:var(--ink2)}
.tile .arr{position:absolute;right:18px;top:20px;width:18px;height:18px;color:var(--faint);transition:transform .2s,color .2s}
.tile:hover .arr{transform:translateX(3px);color:var(--gold-text)}

/* exam card (grid on home, list on directory) */
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.ecard{position:relative;display:flex;flex-direction:column;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;transition:box-shadow .2s,transform .2s,border-color .2s;min-width:0}
.ecard:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--line2)}
.ecard .hd{display:flex;gap:14px;align-items:flex-start}
.ecard .hd>div{min-width:0;flex:1}
.ecard h3{font:600 20px/1.2 var(--display);margin:0 0 4px}
.ecard h3 a{text-decoration:none}
.ecard h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.ecard .by{margin:0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ecard .star,.ecard .btn,.ecard .cmpbox{position:relative;z-index:2}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0}
.kv div{min-width:0}
.kv dt{font:600 10.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.kv dd{margin:2px 0 0;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ecard .row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;margin-top:auto}

/* list layout (directory) */
.dir{display:grid;grid-template-columns:270px minmax(0,1fr);gap:32px;align-items:start}
@media (max-width:960px){.dir{grid-template-columns:minmax(0,1fr)}}
.results-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.results-head .count{font-size:15px;color:var(--muted)}
.results-head .count b{color:var(--ink);font-variant-numeric:tabular-nums}
.results-head select{height:40px;border-radius:999px;border:1px solid var(--line2);background:var(--card);color:var(--ink);padding:0 14px;font:500 14px var(--body)}
.results-tools{display:flex;gap:10px;align-items:center}
.flt-btn{display:none}
@media (max-width:960px){.flt-btn{display:inline-flex}}
.list{display:flex;flex-direction:column;gap:14px}
.lcard{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:18px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;transition:box-shadow .2s,border-color .2s}
.lcard:hover{box-shadow:var(--shadow);border-color:var(--line2)}
.lcard h3{font:600 20px/1.2 var(--display);margin:0}
.lcard h3 a{text-decoration:none}
.lcard h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.lcard .t1{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:4px}
.lcard .by{margin:0 0 12px;font-size:13.5px;color:var(--muted)}
.lcard .kv{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}
.lcard .acts{display:flex;flex-direction:column;align-items:flex-end;gap:10px;position:relative;z-index:2}
.lcard .acts .btn{position:relative}
@media (max-width:720px){
  .lcard{grid-template-columns:42px minmax(0,1fr);gap:12px 14px;padding:16px}
  .lcard .mono{width:42px;height:42px;border-radius:11px;font-size:11px}
  .lcard .kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lcard .acts{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px}
}
.cmpbox{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer;user-select:none}
.cmpbox input{width:16px;height:16px;accent-color:var(--gold)}
.empty{padding:40px 20px;text-align:center;color:var(--muted);border:1.5px dashed var(--line2);border-radius:var(--r)}

/* filter rail */
.filters{position:sticky;top:calc(env(safe-area-inset-top,0px) + 88px);display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 110px);overflow:auto;padding-right:4px;scrollbar-width:thin}
.filters>*{flex:none}
.filters .fhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.filters .fhead h2{font:600 18px var(--display);margin:0}
.filters .clear{background:none;border:0;color:var(--gold-text);font:600 13.5px var(--body);cursor:pointer;padding:6px}
.fgroup{border:0;border-top:1px solid var(--line);margin:0;padding:14px 0 10px}
.fgroup legend{float:left;width:100%;font:600 11px var(--body);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:8px}
.fgroup legend+*{clear:both}
.fgroup label{display:flex;align-items:center;gap:10px;padding:6px 4px;border-radius:8px;cursor:pointer;font-size:14.5px}
.fgroup label:hover{background:var(--tint)}
.fgroup input[type=checkbox],.fgroup input[type=radio]{width:17px;height:17px;accent-color:var(--gold);flex:none;margin:0}
.fgroup label .n{margin-left:auto;font:500 12px var(--mono);color:var(--faint)}
.fgroup select,.fsearch{width:100%;height:42px;border-radius:10px;border:1px solid var(--line2);background:var(--card);color:var(--ink);padding:0 12px;font:inherit}
.fsearch{margin-bottom:6px}
.filters .apply{display:none}
@media (max-width:960px){
  .filters{position:fixed;inset:auto 0 0 0;top:auto;z-index:80;max-height:86vh;background:var(--card);border-radius:20px 20px 0 0;box-shadow:0 -20px 60px -10px rgba(0,0,0,.4);padding:18px max(18px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);visibility:hidden}
  .filters.open{transform:none;visibility:visible}
  .filters .apply{display:flex;position:sticky;bottom:0;margin-top:8px;width:100%}
  .scrim{position:fixed;inset:0;background:rgba(5,10,30,.45);z-index:79}
}

/* ---------- profile pages (exam / college) ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:13.5px;color:var(--muted);padding-top:20px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.phero{background:linear-gradient(180deg,var(--tint) 0%,var(--bg) 100%);border-bottom:1px solid var(--line)}
.phero-in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px 24px;align-items:start;padding-block:22px 28px}
.phero h1{font:600 clamp(30px,4.6vw,48px)/1.05 var(--display);letter-spacing:-.02em;margin:0 0 6px}
.phero .sub{margin:0 0 12px;color:var(--muted);font-size:15px}
.phero .acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
@media (max-width:820px){.phero-in{grid-template-columns:auto minmax(0,1fr)}.phero .acts{grid-column:1/-1;justify-content:flex-start}.phero .mono.lg{width:60px;height:60px;font-size:13px}}
.statgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:0 0 4px;box-shadow:var(--shadow-sm)}
.statgrid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.statgrid>div{background:var(--card);padding:16px 18px;min-width:0}
.statgrid dt{font:600 10.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.statgrid dd{margin:0;font:600 20px/1.2 var(--display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.statgrid dd small{display:block;font:500 12.5px var(--body);color:var(--muted);margin-top:4px}
.statgrid .hl{background:var(--gold-soft)}
.statgrid .hl dd{font-size:26px}
.statgrid .cd b{font-size:30px}.statgrid .cd span{font-size:12.5px}
.kv.wide{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important}.kv.wide dd,.kv dd[style]{white-space:normal}
.statgrid .hl.urgent dd{color:var(--maroon)}
@media (max-width:1000px){.statgrid,.statgrid.c4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.statgrid,.statgrid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.statgrid dd{font-size:17px}.statgrid .hl dd{font-size:22px}}
.secnav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 68px);z-index:30;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
@media (max-width:900px){.secnav{top:calc(env(safe-area-inset-top,0px) + 120px)}}
.secnav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
.secnav ul::-webkit-scrollbar{display:none}
.secnav a{display:block;padding:14px 12px 12px;text-decoration:none;font:500 14px var(--body);color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.secnav a:hover{color:var(--ink)}
.secnav a.on{color:var(--ink);border-bottom-color:var(--gold)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start;padding-block:32px 72px}
@media (max-width:1000px){.layout{grid-template-columns:minmax(0,1fr)}}
.main{display:flex;flex-direction:column;gap:48px;min-width:0}
.main>section{min-width:0;max-width:100%}
.prose,.note,.faq p,.ccard dd,.route dd{overflow-wrap:anywhere}
.main>section{scroll-margin-top:140px}
.main h2{font:600 clamp(24px,2.8vw,30px)/1.15 var(--display);letter-spacing:-.01em;margin:0 0 16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.main h2 small{font:500 14px var(--body);color:var(--muted)}
.main h3{font:600 18px var(--display);margin:24px 0 10px}
.prose{max-width:72ch;margin:0;color:var(--ink2)}
.prose+.prose{margin-top:12px}
.note{font-size:14px;color:var(--muted);background:var(--tint);border-radius:var(--r-sm);padding:12px 16px;margin:16px 0 0;max-width:76ch}
.side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 132px);display:flex;flex-direction:column;gap:16px}
@media (max-width:1000px){.side{position:static}}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow-sm)}
.box h3{font:600 17px var(--display);margin:0 0 12px}
.box p{margin:0 0 14px;font-size:14px;color:var(--muted)}
.box .btn{width:100%}
.box .btn+.btn{margin-top:8px}
.box.gold{background:var(--gold-soft);border-color:transparent}
.crit{display:flex;flex-direction:column;gap:8px;margin:0 0 14px;padding:0;list-style:none}
.crit li{display:flex;justify-content:space-between;gap:10px;font-size:14px;border-bottom:1px dashed var(--line2);padding-bottom:7px}
.crit li span{color:var(--muted)}
.crit li b{font-weight:600;text-align:right}
.mini{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}
.mini a{display:flex;align-items:center;gap:12px;padding:8px;border-radius:10px;text-decoration:none}
.mini a:hover{background:var(--tint)}
.mini .t{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.mini .t b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini .t small{font-size:12px;color:var(--muted)}

/* timeline */
.tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tl li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:14px;align-items:start;padding-bottom:20px;position:relative}
.tl li::before{content:"";position:absolute;left:11px;top:22px;bottom:-2px;width:2px;background:var(--line2)}
.tl li:last-child{padding-bottom:0}
.tl li:last-child::before{display:none}
.tl .dot{width:24px;height:24px;border-radius:50%;background:var(--card);border:2px solid var(--line2);display:grid;place-items:center;margin-top:1px}
.tl .dot::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--line2)}
.tl li.done .dot{border-color:var(--ok);background:var(--ok-soft)}
.tl li.done .dot::after{background:var(--ok)}
.tl li.next .dot{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 4px var(--gold-soft)}
.tl li.next .dot::after{background:var(--gold)}
.tl b{display:block;font-weight:600}
.tl small{color:var(--muted);font-size:13px}
.tl .when{font:600 14px var(--body);text-align:right;white-space:nowrap}
.tl .when.est{color:var(--muted);font-weight:500;font-style:italic}
.estnote{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--warn);background:var(--warn-soft);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:18px}
.estnote.rep{color:var(--info);background:var(--info-soft)}
.panel2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:760px){.panel2{grid-template-columns:minmax(0,1fr)}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.card h3{margin-top:0}

/* facts */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:0 0 16px}
.facts>div{background:var(--tint);border-radius:var(--r-sm);padding:14px 16px}
.facts dt{font:600 10.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:4px 0 0;font-weight:600;font-size:15px}
.facts .no dd{color:var(--muted);font-weight:500}

/* pattern */
.pbar{display:flex;gap:3px;height:44px;border-radius:10px;overflow:hidden;margin-bottom:10px}
.pbar span{display:flex;align-items:center;justify-content:center;background:var(--c1s);color:var(--c1);font:600 13px var(--mono);min-width:30px;padding:0 6px;white-space:nowrap;overflow:hidden}
.pbar span.v{background:var(--gold);color:var(--gold-ink)}
.plegend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--muted);margin-bottom:16px}
.plegend i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c1s);border:1px solid var(--c1);margin-right:7px;vertical-align:-1px}
.plegend i.v{background:var(--gold);border-color:var(--gold)}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{font:600 11px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--tint);white-space:nowrap}
tr:last-child td{border-bottom:0}
td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
.eng{display:flex;gap:16px;align-items:center;background:var(--gold-soft);border-radius:var(--r);padding:16px 18px;margin-top:16px}
.eng p{margin:0;font-size:14.5px}
.eng svg{flex:none}

/* college cards (inside exam page) */
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.ccard{position:relative;display:flex;flex-direction:column;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0;transition:box-shadow .2s,border-color .2s}
.ccard:hover{box-shadow:var(--shadow);border-color:var(--line2)}
.ccard .hd{display:flex;gap:12px;align-items:flex-start}
.ccard .hd>div{min-width:0}
.ccard h3,.ccard h4{font:600 16px/1.3 var(--body);margin:0}
.ccard h3 a,.ccard h4 a{text-decoration:none}
.ccard a.stretch::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.ccard .loc{margin:2px 0 0;font-size:13px;color:var(--muted)}
.ccard dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0}
.ccard dl .w{grid-column:1/-1}
.ccard dt{font:600 10px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.ccard dd{margin:2px 0 0;font-size:13.5px;overflow-wrap:anywhere}
.ccard .cutline{border-top:1px solid var(--line);padding-top:10px;font-size:13.5px;margin-top:auto}
.ccard .cutline small{display:block;color:var(--faint);font-size:12px;margin-top:3px}
.subtools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.subtools input{flex:1 1 220px;max-width:340px;height:40px;border-radius:999px;border:1px solid var(--line2);background:var(--card);color:var(--ink);padding:0 16px;font:inherit}
.showall{margin-top:14px}

/* routes (college page) */
.routes{display:flex;flex-direction:column;gap:14px}
.route{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:14px}
.route .hd{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.route .hd>div{flex:1;min-width:160px}
.route h3{font:600 20px/1.2 var(--display);margin:0}
.route h3 a{text-decoration:none}
.route h3 a:hover{text-decoration:underline}
.route .by{font-size:13px;color:var(--muted);margin:2px 0 0}
.route dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 18px;margin:0}
.route dt{font:600 10.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.route dd{margin:3px 0 0;font-size:14px}
.route .ft{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:12px;font-size:14px}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:10px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:0 18px}
.faq summary{cursor:pointer;font-weight:600;padding:16px 28px 16px 0;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font:400 22px var(--body);color:var(--muted)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 16px;color:var(--ink2)}
.links{display:flex;flex-direction:column;gap:8px;font-size:14px}
.links a{color:var(--gold-text);overflow-wrap:anywhere}
.paper{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);text-decoration:none;font-weight:600;color:var(--ink)!important}
.paper:hover{border-color:var(--gold)}
.paper svg{width:18px;height:18px;color:var(--gold-text)}
details.src summary{cursor:pointer;color:var(--muted);font-size:14px;padding:4px 0}
.related{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- tools ---------- */
.tool-hero{background:var(--tint);border-bottom:1px solid var(--line);padding-block:20px 32px}
.tool-hero h1{font:600 clamp(30px,4.6vw,48px)/1.05 var(--display);letter-spacing:-.02em;margin:10px 0 8px}
.tool-hero p{margin:0;color:var(--muted);max-width:64ch;font-size:16px}
.tool{padding-block:32px 72px}
.elig{display:grid;grid-template-columns:340px minmax(0,1fr);gap:32px;align-items:start}
@media (max-width:900px){.elig{grid-template-columns:minmax(0,1fr)}}
.form{display:flex;flex-direction:column;gap:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--shadow-sm);position:sticky;top:calc(env(safe-area-inset-top,0px) + 88px)}
@media (max-width:900px){.form{position:static}}
.field{display:flex;flex-direction:column;gap:8px}
.field>label,.field>.lab{font:600 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.field .hint{font-size:12.5px;color:var(--faint)}
.field input[type=date],.field input[type=text],.field input[type=email],.field input[type=tel],.field select{height:44px;border-radius:10px;border:1px solid var(--line2);background:var(--card);color:var(--ink);padding:0 12px;font:inherit;width:100%}
.seg{display:flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
.seg button{flex:1;min-height:42px;background:var(--card);border:0;border-left:1px solid var(--line2);cursor:pointer;font:500 14px var(--body);color:var(--ink2)}
.seg button:first-child{border-left:0}
.seg button[aria-pressed="true"]{background:var(--navy);color:var(--on-navy);font-weight:600}
.rng{display:flex;align-items:center;gap:12px}
.rng input{flex:1;accent-color:var(--gold)}
.rng output{font:600 16px var(--mono);min-width:54px;text-align:right}
.exnote{font-size:13px;color:var(--warn);background:var(--warn-soft);padding:8px 12px;border-radius:8px;margin:0}
.vtop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.vbox{border-radius:var(--r);padding:16px 18px;background:var(--card);border:1px solid var(--line)}
.vbox b{display:block;font:600 36px/1 var(--display);font-variant-numeric:tabular-nums}
.vbox span{font-size:13.5px;color:var(--muted)}
.vbox.ok b{color:var(--ok)} .vbox.chk b{color:var(--warn)} .vbox.no b{color:var(--maroon)}
.rlist{display:flex;flex-direction:column;gap:10px}
.rrow{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px}
.rrow .t a{font-weight:600;text-decoration:none}
.rrow .t a:hover{text-decoration:underline}
.rrow .t p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.rrow .flag{font-size:12.5px;font-weight:600}
.rrow.ok .flag{color:var(--ok)} .rrow.chk .flag{color:var(--warn)} .rrow.no .flag{color:var(--maroon)}
details.more2>summary{cursor:pointer;font-weight:600;padding:12px 0;color:var(--ink2)}
/* calendar */
.cal{min-width:820px;display:flex;flex-direction:column}
.calrow{display:grid;grid-template-columns:210px repeat(12,minmax(0,1fr));align-items:center;min-height:40px;border-bottom:1px solid var(--line)}
.calrow:last-child{border-bottom:0}
.calrow.head{position:sticky;top:0;background:var(--tint);min-height:36px;z-index:1}
.calrow.head span{font:600 11.5px var(--mono);text-align:center;color:var(--muted)}
.calrow.head span.now{color:var(--gold-text)}
.calrow .lab{padding:6px 14px;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
.calrow .lab:hover{color:var(--gold-text)}
.cell{height:40px;border-left:1px solid var(--line);position:relative}
.cell.now{background:var(--gold-soft)}
.mk{position:absolute;left:3px;right:3px;top:11px;bottom:11px;border-radius:5px}
.mk.app{background:var(--c1s);border:1px solid var(--c1)}
.mk.ex{top:8px;bottom:8px;background:var(--gold);display:grid;place-items:center;font:700 10.5px var(--mono);color:var(--gold-ink)}
.mk.est{opacity:.55;border-style:dashed}
.mk.ex.est{background:transparent;border:1.5px dashed var(--gold-text);color:var(--gold-text)}
.legend{display:flex;flex-wrap:wrap;gap:18px;font-size:13.5px;color:var(--muted);margin-bottom:14px}
.legend i{display:inline-block;width:18px;height:11px;border-radius:3px;margin-right:7px;vertical-align:-1px}
/* compare */
.cmp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:900px){.cmp{grid-template-columns:minmax(0,1fr)}}
.cmpcol{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.cmpcol .hd{display:flex;gap:12px;align-items:center}
.cmpcol h3{font:600 20px/1.2 var(--display);margin:0;flex:1;min-width:0}
.cmpcol h3 a{text-decoration:none}
.cmpcol dl{margin:0;display:flex;flex-direction:column;gap:12px}
.cmpcol dt{font:600 10.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.cmpcol dd{margin:3px 0 0;font-size:14px}
.cmpslot{border:2px dashed var(--line2);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;justify-content:center;gap:12px;min-height:240px}
.cmpslot b{font:600 18px var(--display)}
/* english */
.callout{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;background:var(--navy);color:var(--on-navy);border-radius:var(--r);padding:22px 26px;margin-bottom:24px}
.callout b{font:600 54px/1 var(--display);color:var(--gold)}
.callout p{margin:0;color:var(--on-navy-2);max-width:60ch}
.bars{display:flex;flex-direction:column;gap:10px}
.bar{display:grid;grid-template-columns:220px minmax(0,1fr) 56px;gap:16px;align-items:center;font-size:14px}
.bar a{font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar a:hover{color:var(--gold-text)}
.track{position:relative;height:16px;background:var(--tint2);border-radius:8px;overflow:hidden}
.track::after{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1.5px dashed var(--line2)}
.fill{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--gold),var(--gold-hi))}
.bar .v{font:600 13px var(--mono);text-align:right}
@media (max-width:560px){.bar{grid-template-columns:120px minmax(0,1fr) 44px;gap:10px}}
/* my list */
.mrow{display:grid;grid-template-columns:42px minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.mrow h3{font:600 17px var(--display);margin:0}
.mrow h3 a{text-decoration:none}
.mrow .k{font:600 10.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.mrow .v{font-size:14px}
@media (max-width:760px){.mrow{grid-template-columns:42px minmax(0,1fr) auto}.mrow .hs{display:none}}
.signup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;background:var(--navy);color:var(--on-navy);border-radius:20px;padding:clamp(22px,4vw,36px);margin-top:32px}
@media (max-width:860px){.signup{grid-template-columns:minmax(0,1fr)}}
.signup h2{font:600 clamp(24px,3vw,32px)/1.15 var(--display);margin:0 0 10px}
.signup p{color:var(--on-navy-2);margin:0}
.signup form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.signup .full{grid-column:1/-1}
.signup .field>label{color:var(--on-navy-2)}
.signup input,.signup select{background:#fff!important;color:#0f1a40!important;border-color:transparent!important}
@media (max-width:480px){.signup form{grid-template-columns:minmax(0,1fr)}}
.fmsg{font-size:14px;margin:0;color:var(--on-navy-2)}
.fmsg.ok{color:#7be0ad}.fmsg.err{color:#ffb3c1}

/* how-it-works */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:820px){.steps{grid-template-columns:minmax(0,1fr)}}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:8px}
.step .n{font:600 13px var(--mono);color:var(--gold-text)}
.step h3{font:600 20px var(--display);margin:0}
.step p{margin:0;color:var(--muted);font-size:14.5px}
.step a{margin-top:auto;padding-top:8px}
.states{display:flex;flex-wrap:wrap;gap:8px}
.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:820px){.trust{grid-template-columns:minmax(0,1fr)}}
.trust h3{font:600 18px var(--display);margin:0 0 6px;display:flex;align-items:center;gap:10px}
.trust h3 svg{width:24px;height:24px;color:var(--gold-text);flex:none}
.phero .sub svg{width:15px;height:15px;vertical-align:-2px;margin-right:4px;color:var(--muted)}
.estnote svg{width:20px;height:20px;flex:none;margin-top:1px}
.trust p{margin:0;color:var(--muted);font-size:14.5px}

/* ---------- footer ---------- */
.ftr{background:var(--navy);color:var(--on-navy-2);padding-block:56px 32px;margin-top:0}
.ftr-in{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px}
@media (max-width:820px){.ftr-in{grid-template-columns:1fr 1fr}.ftr-in>div:first-child{grid-column:1/-1}}
.ftr .logo-t b{color:var(--on-navy)}
.ftr .logo-t small{color:var(--on-navy-2)}
.ftr p{font-size:14px;margin:14px 0 0;max-width:46ch}
.ftr h4{font:600 12px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--on-navy);margin:6px 0 12px}
.ftr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:14.5px}
.ftr a{color:var(--on-navy-2);text-decoration:none}
.ftr a:hover{color:var(--gold)}
.ftr .base{grid-column:1/-1;border-top:1px solid var(--on-navy-line);padding-top:20px;margin-top:8px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px}
.ftr .cut{margin:0 2px}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);font:600 14px var(--body);padding:12px 18px;border-radius:999px;z-index:100;box-shadow:var(--shadow-lg)}
.cmpbar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:14px;background:var(--navy);color:var(--on-navy);border-radius:999px;padding:8px 8px 8px 20px;box-shadow:var(--shadow-lg);font-size:14px;max-width:calc(100% - 32px)}
.cmpbar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* Camp Verbal promo */
.box.prep{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.box.prep .eyebrow{color:var(--gold);margin-bottom:6px}
.box.prep h3{color:var(--on-navy)}
.box.prep p{color:var(--on-navy-2)}
.cvband{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:center;background:var(--navy);color:var(--on-navy);border-radius:20px;padding:clamp(24px,4vw,44px)}
.cvband .eyebrow{color:var(--gold)}
.cvband h2{font:600 clamp(24px,3.2vw,34px)/1.15 var(--display);margin:0 0 10px;max-width:24ch}
.cvband p{margin:0;color:var(--on-navy-2);max-width:62ch}
@media (max-width:760px){.cvband{grid-template-columns:minmax(0,1fr)}.cvband .btn{justify-self:start}}
