/* ==========================================================================
   CCS-America V4 · Design system (plan Section 7)
   01 Fonts, tokens, base, type, layout, buttons
   ========================================================================== */
@font-face{font-family:"Libre Caslon Text";src:url("../fonts/libre-caslon-text-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url("../fonts/libre-caslon-text-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Libre Caslon Text";src:url("../fonts/libre-caslon-text-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/public-sans-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  /* Brand (confirmed V2 theme color). --brand-accent maps to the seal's secondary color in Phase 0. */
  --brand-navy:#112c56;
  --brand-accent:#8fa9d4;
  /* V4 brand layer: Liberty red marks enrollment actions; honors gold marks earned recognition */
  --brand-red:#e4002b; --brand-red-deep:#b8001f; --red-ink:#d4002a;
  --navy-ink:#0a1b38;
  --gold-hi:#f1dca4; --gold:#d6b673; --gold-mid:#b99149; --gold-lo:#8a6a30;
  --ivory:#fbf7ee; --ivory-2:#f1e8d4;
  --r-lg:18px;
  --laurel-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 132'%3E%3Cg fill='%23000'%3E%3Cpath d='M80.5 116.2Q64.7 111.4 55.8 124.2Q70.6 129.4 80.5 116.2ZM66 107.3Q53.5 98.1 41.7 107Q53.2 116.2 66 107.3ZM72.9 112.4Q77.3 100.2 67.2 93.3Q62.6 104.6 72.9 112.4ZM55.1 94.2Q46.9 82.2 33.8 86.6Q41.1 98.3 55.1 94.2ZM60 101.2Q67.6 91.9 60.7 82.7Q53.1 91.3 60 101.2ZM49 78.3Q45.5 65.2 32.6 65.2Q35.5 77.8 49 78.3ZM51.4 86.5Q61 80.6 57.6 70.5Q48.2 75.7 51.4 86.5ZM48.4 61.3Q49.4 48.7 38 45Q36.6 56.9 48.4 61.3ZM48 69.8Q58.3 67.7 58.2 57.7Q48.4 59.4 48 69.8ZM53.4 45Q58.1 34.4 49.2 27.8Q44.3 37.7 53.4 45ZM50.2 52.9Q59.8 54.2 62.6 45.4Q53.5 43.8 50.2 52.9ZM63.3 31.1Q70.7 23.5 64.8 15.2Q57.4 22.3 63.3 31.1ZM57.8 37.6Q65.6 41.7 70.6 34.9Q63.2 30.7 57.8 37.6ZM77.2 21.3Q85.9 17 83 8.2Q74.6 12 77.2 21.3ZM69.9 25.6Q75.3 31.5 81.5 27Q76.5 21.1 69.9 25.6ZM80.5 19.8Q91.2 22.5 96.3 13.4Q86.3 10.4 80.5 19.8Z'/%3E%3Cpath d='M112.6 118.5A52 52 0 0 1 79.7 20.1' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3Cg transform='matrix(-1 0 0 1 200 0)'%3E%3Cpath d='M80.5 116.2Q64.7 111.4 55.8 124.2Q70.6 129.4 80.5 116.2ZM66 107.3Q53.5 98.1 41.7 107Q53.2 116.2 66 107.3ZM72.9 112.4Q77.3 100.2 67.2 93.3Q62.6 104.6 72.9 112.4ZM55.1 94.2Q46.9 82.2 33.8 86.6Q41.1 98.3 55.1 94.2ZM60 101.2Q67.6 91.9 60.7 82.7Q53.1 91.3 60 101.2ZM49 78.3Q45.5 65.2 32.6 65.2Q35.5 77.8 49 78.3ZM51.4 86.5Q61 80.6 57.6 70.5Q48.2 75.7 51.4 86.5ZM48.4 61.3Q49.4 48.7 38 45Q36.6 56.9 48.4 61.3ZM48 69.8Q58.3 67.7 58.2 57.7Q48.4 59.4 48 69.8ZM53.4 45Q58.1 34.4 49.2 27.8Q44.3 37.7 53.4 45ZM50.2 52.9Q59.8 54.2 62.6 45.4Q53.5 43.8 50.2 52.9ZM63.3 31.1Q70.7 23.5 64.8 15.2Q57.4 22.3 63.3 31.1ZM57.8 37.6Q65.6 41.7 70.6 34.9Q63.2 30.7 57.8 37.6ZM77.2 21.3Q85.9 17 83 8.2Q74.6 12 77.2 21.3ZM69.9 25.6Q75.3 31.5 81.5 27Q76.5 21.1 69.9 25.6ZM80.5 19.8Q91.2 22.5 96.3 13.4Q86.3 10.4 80.5 19.8Z'/%3E%3Cpath d='M112.6 118.5A52 52 0 0 1 79.7 20.1' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  --laurel-star-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 132'%3E%3Cg fill='%23000'%3E%3Cpath d='M80.5 116.2Q64.7 111.4 55.8 124.2Q70.6 129.4 80.5 116.2ZM66 107.3Q53.5 98.1 41.7 107Q53.2 116.2 66 107.3ZM72.9 112.4Q77.3 100.2 67.2 93.3Q62.6 104.6 72.9 112.4ZM55.1 94.2Q46.9 82.2 33.8 86.6Q41.1 98.3 55.1 94.2ZM60 101.2Q67.6 91.9 60.7 82.7Q53.1 91.3 60 101.2ZM49 78.3Q45.5 65.2 32.6 65.2Q35.5 77.8 49 78.3ZM51.4 86.5Q61 80.6 57.6 70.5Q48.2 75.7 51.4 86.5ZM48.4 61.3Q49.4 48.7 38 45Q36.6 56.9 48.4 61.3ZM48 69.8Q58.3 67.7 58.2 57.7Q48.4 59.4 48 69.8ZM53.4 45Q58.1 34.4 49.2 27.8Q44.3 37.7 53.4 45ZM50.2 52.9Q59.8 54.2 62.6 45.4Q53.5 43.8 50.2 52.9ZM63.3 31.1Q70.7 23.5 64.8 15.2Q57.4 22.3 63.3 31.1ZM57.8 37.6Q65.6 41.7 70.6 34.9Q63.2 30.7 57.8 37.6ZM77.2 21.3Q85.9 17 83 8.2Q74.6 12 77.2 21.3ZM69.9 25.6Q75.3 31.5 81.5 27Q76.5 21.1 69.9 25.6ZM80.5 19.8Q91.2 22.5 96.3 13.4Q86.3 10.4 80.5 19.8Z'/%3E%3Cpath d='M112.6 118.5A52 52 0 0 1 79.7 20.1' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3Cg transform='matrix(-1 0 0 1 200 0)'%3E%3Cpath d='M80.5 116.2Q64.7 111.4 55.8 124.2Q70.6 129.4 80.5 116.2ZM66 107.3Q53.5 98.1 41.7 107Q53.2 116.2 66 107.3ZM72.9 112.4Q77.3 100.2 67.2 93.3Q62.6 104.6 72.9 112.4ZM55.1 94.2Q46.9 82.2 33.8 86.6Q41.1 98.3 55.1 94.2ZM60 101.2Q67.6 91.9 60.7 82.7Q53.1 91.3 60 101.2ZM49 78.3Q45.5 65.2 32.6 65.2Q35.5 77.8 49 78.3ZM51.4 86.5Q61 80.6 57.6 70.5Q48.2 75.7 51.4 86.5ZM48.4 61.3Q49.4 48.7 38 45Q36.6 56.9 48.4 61.3ZM48 69.8Q58.3 67.7 58.2 57.7Q48.4 59.4 48 69.8ZM53.4 45Q58.1 34.4 49.2 27.8Q44.3 37.7 53.4 45ZM50.2 52.9Q59.8 54.2 62.6 45.4Q53.5 43.8 50.2 52.9ZM63.3 31.1Q70.7 23.5 64.8 15.2Q57.4 22.3 63.3 31.1ZM57.8 37.6Q65.6 41.7 70.6 34.9Q63.2 30.7 57.8 37.6ZM77.2 21.3Q85.9 17 83 8.2Q74.6 12 77.2 21.3ZM69.9 25.6Q75.3 31.5 81.5 27Q76.5 21.1 69.9 25.6ZM80.5 19.8Q91.2 22.5 96.3 13.4Q86.3 10.4 80.5 19.8Z'/%3E%3Cpath d='M112.6 118.5A52 52 0 0 1 79.7 20.1' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3C/g%3E%3Cpath d='M100 41L106.2 57.5L123.8 58.3L110 69.2L114.7 86.2L100 76.5L85.3 86.2L90 69.2L76.2 58.3L93.8 57.5Z'/%3E%3C/g%3E%3C/svg%3E");
  --laurel-branch:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 520'%3E%3Cpath fill='%23fff' d='M63.6 484.2Q52.7 448.4 17.4 445.7Q26.4 479.9 63.6 484.2ZM60.5 468.6Q91.2 452.3 86.4 419.7Q56.7 434 60.5 468.6ZM57.4 448.8Q49.8 413.7 16.1 408.5Q22.1 442.1 57.4 448.8ZM55.5 432.5Q86.1 419.1 83.7 387.5Q54.2 399.1 55.5 432.5ZM53.8 411.9Q49 377.7 17 370.6Q20.3 403.2 53.8 411.9ZM52.9 395Q83.3 384.3 82.9 353.8Q53.8 362.8 52.9 395ZM52.6 373.7Q50.4 340.7 20.2 332Q21.1 363.4 52.6 373.7ZM52.9 356.3Q82.6 348.1 84 318.9Q55.5 325.6 52.9 356.3ZM53.9 334.7Q53.9 302.9 25.5 293Q24.4 323.1 53.9 334.7ZM55.3 317Q84.2 311 87.1 283.1Q59.5 287.8 55.3 317ZM57.7 295Q59.6 264.8 33 253.8Q30.1 282.4 57.7 295ZM60.1 277.2Q88.1 273.3 92.2 246.8Q65.6 249.5 60.1 277.2ZM63.8 255.2Q67.5 226.5 42.7 214.7Q38.2 241.8 63.8 255.2ZM67.3 237.3Q94.2 235.3 99.4 210.3Q73.9 211.3 67.3 237.3ZM72.3 215.4Q77.6 188.4 54.6 176.1Q48.6 201.5 72.3 215.4ZM76.9 197.8Q102.5 197.5 108.7 174Q84.4 173.3 76.9 197.8ZM83.2 176.2Q89.9 151 68.7 138.1Q61.4 161.8 83.2 176.2ZM88.8 158.9Q113.1 160.3 120.2 138.3Q97.2 136.1 88.8 158.9ZM96.4 137.7Q104.4 114.4 85 101.2Q76.5 123.1 96.4 137.7ZM103 120.9Q125.8 123.9 133.7 103.4Q112.1 99.8 103 120.9ZM111.8 100.5Q121 79 103.4 65.6Q93.9 85.6 111.8 100.5ZM119.5 84.2Q140.7 88.7 149.2 69.8Q129.2 64.8 119.5 84.2ZM129.6 64.7Q139.7 45.3 124 31.7Q113.6 49.7 129.6 64.7ZM138.2 49.3Q157.8 55 166.8 37.8Q148.4 31.6 138.2 49.3ZM150 30Q166.8 22.3 166.2 4.8Q150 11.5 150 30Z'/%3E%3Cpath d='M70 510C30 370 60 170 150 30' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E");
  --column-art:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 420' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 26h112v10H14z'/%3E%3Cpath d='M26 36c-12 0-18 9-18 17 0 7 6 12 12 12s10-5 10-10-4-8-8-8'/%3E%3Cpath d='M114 36c12 0 18 9 18 17 0 7-6 12-12 12s-10-5-10-10 4-8 8-8'/%3E%3Cpath d='M30 44c20 12 60 12 80 0'/%3E%3Cpath d='M36 62h68v7H36z'/%3E%3Cpath d='M38 69l3 318M102 69l-3 318'/%3E%3Cpath d='M50 74v310M60 74v312M70 74v312M80 74v312M90 74v310'/%3E%3Cpath d='M32 387h76a6 6 0 0 1 0 12H32a6 6 0 0 1 0-12z'/%3E%3Cpath d='M24 399h92v14H24z'/%3E%3C/svg%3E");
  --doc-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-linejoin='round'%3E%3Cpath d='M4 1.5h5.5L13 5v9.5H4z' stroke-width='1.5'/%3E%3Cpath d='M9 1.5V5.5h4M6.5 8.5h4M6.5 11h4' stroke-width='1.3'/%3E%3C/svg%3E");
  /* Derived navy shades and tints: not new brand colors */
  --navy-deep:#0c2244;
  --navy-700:#1c3a6a;
  --navy-400:#5f7cab;
  --navy-200:#c9d3e3;
  --navy-100:#e3e9f3;
  --navy-50:#eef2f8;
  /* Neutrals */
  --ink:#16202f; --ink-2:#465164; --ink-3:#6a7485; --line:#dbe1ea; --line-strong:#b9c3d2; --paper:#ffffff; --mist:#f3f5f9;
  /* States */
  --ok:#1f7a4d; --ok-bg:#e8f4ee; --warn:#9a6a00; --warn-bg:#fdf4df; --err:#b3261e; --err-bg:#fcefee; --focus:#1a5fd1;
  /* Type */
  --font-display:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --font-ui:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --fs-hero:clamp(2.4rem,5.6vw,4.6rem);
  --fs-h1:clamp(2.15rem,4.6vw,3.5rem);
  --fs-h2:clamp(1.8rem,3.4vw,2.6rem);
  --fs-h3:clamp(1.25rem,2vw,1.5rem);
  --fs-body:1.0625rem; --fs-small:.875rem; --fs-stat:clamp(2.6rem,6vw,4.2rem);
  /* Space and shape */
  --s-1:.5rem; --s-2:1rem; --s-3:1.5rem; --s-4:2.5rem; --s-5:4rem; --s-6:6rem;
  --section-pad:clamp(3.5rem,7vw,6rem);
  --r-xl:20px; --r-md:12px; --r-in:10px; --r-pill:999px;
  --shadow-card:0 1px 2px rgba(17,44,86,.05),0 12px 32px -14px rgba(17,44,86,.18);
  --shadow-pop:0 12px 40px rgba(17,44,86,.18);
  --container:1200px; --gutter:20px;
  --header-h:76px;
}
@media (min-width:640px){:root{--gutter:32px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--brand-navy);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:#fff;color:var(--brand-navy);padding:.75rem 1rem;border-radius:var(--r-in);font-weight:700;box-shadow:var(--shadow-pop)}
.skip-link:focus{top:12px}
::selection{background:var(--navy-200)}

/* Type ------------------------------------------------------------------ */
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.12;letter-spacing:-.012em;color:inherit;margin:0 0 .5em;text-wrap:balance}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);line-height:1.22}
h4{font-family:var(--font-ui);font-size:1.0625rem;font-weight:650;margin:0 0 .4em;line-height:1.35}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.25em}
li+li{margin-top:.35em}
small,.small{font-size:var(--fs-small)}
.lede{font-size:clamp(1.125rem,1.6vw,1.3rem);line-height:1.55;color:var(--ink-2);max-width:62ch}
.kicker{display:block;font:600 .95rem/1.35 var(--font-ui);color:var(--ink-2);margin:0 0 .85rem}
.num{font-family:var(--font-display);font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.muted{color:var(--ink-2)}
.serif{font-family:var(--font-display)}
.caption,figcaption{font-family:var(--font-display);font-style:italic;font-size:.95rem;color:var(--ink-2);line-height:1.45;margin-top:.6rem}
.prose{max-width:70ch}
.prose h2{font-size:clamp(1.55rem,2.8vw,2.1rem);margin-top:2.4rem}
.prose h3{margin-top:1.8rem}
.prose>*:first-child{margin-top:0}
.prose ul li::marker,.prose ol li::marker{color:var(--brand-navy)}
.prose blockquote{margin:1.5rem 0;padding:0 0 0 1.25rem;border-left:3px solid var(--brand-navy);font-family:var(--font-display);font-size:1.25rem;line-height:1.45}
.updated{font-size:.875rem;color:var(--ink-3);margin-top:1rem}

/* Layout ---------------------------------------------------------------- */
.container{width:min(100% - 2 * var(--gutter),var(--container));margin-inline:auto}
.container--narrow{width:min(100% - 2 * var(--gutter),820px);margin-inline:auto}
.section{padding-block:var(--section-pad)}
.section--tight{padding-block:clamp(2.5rem,5vw,4rem)}
.section--mist{background:var(--mist)}
.section--navy{background:var(--brand-navy);color:#fff}
.section--navy a:not(.btn){color:#fff}
.section--rule{border-top:1px solid var(--line)}
.section-head{max-width:780px;margin-bottom:clamp(1.75rem,3.5vw,2.75rem)}
.section-head p{color:var(--ink-2);font-size:1.125rem;max-width:62ch}
.section--navy .section-head p{color:rgba(255,255,255,.86)}
.section-head--center{text-align:center;margin-inline:auto}
.section-head--center p{margin-inline:auto}
.section-head--row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem;max-width:none}
.section-head--row>div{max-width:720px}
.split{display:grid;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (min-width:900px){.split{grid-template-columns:1.15fr .85fr}.split--even{grid-template-columns:1fr 1fr}.split--center{align-items:center}.split--rev>:first-child{order:2}}
.grid-2,.grid-3,.grid-4{display:grid;gap:1.25rem}
@media (min-width:700px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}
.stack>*+*{margin-top:var(--s-2)}
.stack-lg>*+*{margin-top:var(--s-4)}
.center{text-align:center}
.mt-0{margin-top:0}.mt-1{margin-top:var(--s-1)}.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}.mt-4{margin-top:var(--s-4)}
.mb-0{margin-bottom:0}

/* Buttons --------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.35rem;border-radius:var(--r-pill);border:2px solid transparent;font:650 1rem/1.2 var(--font-ui);text-decoration:none;text-align:center;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;-webkit-tap-highlight-color:transparent}
.btn:hover{text-decoration:none}
.btn--primary{background:var(--brand-navy);color:#fff}
.btn--primary:hover{background:var(--navy-deep)}
.btn--outline{border-color:var(--brand-navy);color:var(--brand-navy);background:transparent}
.btn--outline:hover{background:var(--navy-50)}
.btn--light{background:#fff;color:var(--brand-navy)}
.btn--light:hover{background:var(--navy-100)}
.btn--ghost-light{border-color:rgba(255,255,255,.75);color:#fff;background:transparent}
.btn--ghost-light:hover{background:rgba(255,255,255,.12)}
.btn--sm{min-height:40px;padding:.45rem 1rem;font-size:.9375rem}
.btn--block{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.section--navy :focus-visible,.awards :focus-visible,.site-footer :focus-visible,.hero :focus-visible,.oe-bar :focus-visible,.cta-band :focus-visible,.modal__form :focus-visible{outline-color:#fff}
.link-strong{font-weight:650}
.link-quiet{color:inherit}
/* Headings and main receive focus programmatically for screen readers; no ring for that case */
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,main[tabindex="-1"]:focus,.error-summary:focus{outline:none}

/* ==========================================================================
   02 Site chrome: announcement bar (C-03), header and nav (C-10, A-02),
   breadcrumbs, footer, sticky phone CTA, modal (C-08), video dialog, preview
   ========================================================================== */

/* Announcement bar with countdown (C-03) */
.oe-bar{background:var(--brand-navy);color:#fff;font-size:.9375rem;line-height:1.4;position:relative;z-index:60}
.oe-bar__inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.25rem .9rem;min-height:44px;padding:.55rem 3.25rem .55rem 1rem;text-align:center}
.oe-bar p{margin:0}
.oe-bar a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.oe-bar__close{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;background:transparent;color:#fff;font-size:1.5rem;line-height:1;border-radius:50%}
.oe-bar__close:hover{background:rgba(255,255,255,.12)}

/* Header ----------------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);transition:box-shadow .2s ease}
/* Blur only on desktop: backdrop-filter makes the header the containing block for the fixed mobile menu */
@media (min-width:1024px){@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.site-header{background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}}}
@media (max-width:1023px){.site-header{background:#fff}}
.site-header.is-scrolled{box-shadow:0 6px 24px rgba(17,44,86,.08)}
.utility{background:var(--mist);font-size:.875rem;border-bottom:1px solid var(--line)}
.utility__inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:38px}
.utility p{margin:0;color:var(--ink-2)}
.utility p strong{color:var(--brand-navy);font-weight:700}
.utility nav ul{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0}
.utility nav li+li{margin:0}
.utility a{color:var(--ink);text-decoration:none;font-weight:550}
.utility a:hover{color:var(--brand-navy);text-decoration:underline}
@media (max-width:1023px){.utility{display:none}}
.header-main{display:flex;align-items:center;gap:1rem;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--brand-navy);flex-shrink:0;min-height:48px}
.brand img{width:46px;height:46px;object-fit:contain}
.brand__mark{width:46px;height:46px;border-radius:50%;background:var(--brand-navy);color:#fff;display:none;place-items:center;font:700 .95rem var(--font-display)}
.brand.no-seal img{display:none}
.brand.no-seal .brand__mark{display:grid}
.brand__name{font-family:var(--font-display);font-size:.98rem;line-height:1.1;color:var(--brand-navy)}
.brand__name b{display:block;font-weight:400;font-size:1.18rem}
.brand__short{display:none;font-family:var(--font-display);font-size:1.1rem}
@media (max-width:639px){.brand__name{display:none}.brand__short{display:block}}
@media (max-width:479px){.brand__short{display:none}.header-main{gap:.5rem}.menu-toggle{padding:.45rem .75rem}}
.nav{margin-left:auto}
.nav__list{display:flex;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0}
.nav__list>li+li{margin:0}
.nav__link{display:flex;align-items:center;gap:.35rem;min-height:44px;padding:.5rem .8rem;border:0;border-radius:10px;background:transparent;font:620 .98rem/1.2 var(--font-ui);color:var(--ink);text-decoration:none}
.nav__link:hover{background:var(--mist);color:var(--brand-navy);text-decoration:none}
.nav__link[aria-expanded="true"]{background:var(--navy-50);color:var(--brand-navy)}
.nav__link[aria-current="page"],.nav__link.is-current{color:var(--brand-navy);box-shadow:inset 0 -2px 0 var(--brand-navy);border-radius:10px 10px 0 0}
.nav__chev{width:10px;height:10px;transition:transform .2s ease}
.nav__link[aria-expanded="true"] .nav__chev{transform:rotate(180deg)}
.header-ctas{display:flex;align-items:center;gap:.5rem;margin-left:.5rem}
.menu-toggle{display:none;align-items:center;gap:.5rem;min-height:44px;padding:.45rem .9rem;border:1.5px solid var(--line-strong);border-radius:var(--r-pill);background:#fff;font:650 .95rem var(--font-ui);color:var(--brand-navy)}
.menu-toggle svg{width:18px;height:18px}
/* Mega menus */
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 30px 60px rgba(17,44,86,.12);padding:1.75rem 0 2rem}
.mega__inner{display:grid;grid-template-columns:260px 1fr;gap:2.5rem}
.mega__intro h2{font-size:1.6rem;margin-bottom:.4rem}
.mega__intro p{color:var(--ink-2);font-size:.95rem;margin:0}
.mega__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1.5rem;list-style:none;margin:0;padding:0}
.mega__grid li+li{margin:0}
.mega__grid a{display:block;padding:.75rem .85rem;border-radius:10px;text-decoration:none;color:var(--ink)}
.mega__grid a:hover{background:var(--mist)}
.mega__grid a strong{display:block;color:var(--brand-navy);font-weight:650;font-size:1rem}
.mega__grid a span{display:block;font-size:.9rem;color:var(--ink-2);line-height:1.4}
@media (max-width:1023px){
  .nav{position:fixed;inset:var(--nav-top,110px) 0 0 0;margin:0;background:#fff;overflow-y:auto;overscroll-behavior:contain;padding:.5rem var(--gutter) 6rem;border-top:1px solid var(--line);display:none;z-index:55}
  .nav.is-open{display:block}
  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__list>li{border-bottom:1px solid var(--line)}
  .nav__link{width:100%;justify-content:space-between;min-height:56px;font-size:1.05rem;border-radius:0}
  .nav__link[aria-current="page"],.nav__link.is-current{box-shadow:inset 3px 0 0 var(--brand-navy)}
  .mega{position:static;box-shadow:none;border:0;padding:0 0 1rem}
  .mega__inner{display:block}
  .mega__intro{display:none}
  .mega__grid{grid-template-columns:1fr}
  .mega__grid a{padding:.65rem .5rem}
  .menu-toggle{display:inline-flex;margin-left:auto}
  .header-ctas{margin-left:.25rem}
  .header-ctas .btn--visit{display:none}
  .nav__mobile-extra{display:block;padding:1.25rem 0}
  body.nav-open{overflow:hidden}
}
@media (min-width:1024px){.nav__mobile-extra{display:none}}
.header-ctas .btn{white-space:nowrap}
@media (max-width:520px){.header-ctas .btn{padding:.45rem .85rem;font-size:.9rem;min-height:42px}}
@media (max-width:340px){.header-ctas{display:none}}

/* Breadcrumbs ------------------------------------------------------------ */
.crumbs{font-size:.875rem;color:var(--ink-2);padding-top:1.25rem}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0;padding:0}
.crumbs li+li{margin:0}
.crumbs li+li::before{content:"/";margin-right:.35rem;color:var(--line-strong)}
.crumbs a{color:var(--ink-2)}
.crumbs [aria-current]{color:var(--ink)}

/* Footer ----------------------------------------------------------------- */
.site-footer{background:var(--brand-navy);color:rgba(255,255,255,.84);padding-top:clamp(3rem,6vw,4.5rem);font-size:.95rem}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.footer-top{display:grid;gap:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.16)}
@media (min-width:1000px){.footer-top{grid-template-columns:1.2fr 2fr}}
.footer-brand{display:flex;flex-direction:column;gap:1rem;max-width:360px}
.footer-brand .lockup{display:flex;align-items:center;gap:.8rem}
.footer-brand .lockup img{width:56px;height:56px;object-fit:contain;border-radius:50%;background:#fff}
.footer-brand .lockup span{font-family:var(--font-display);color:#fff;font-size:1.15rem;line-height:1.2}
.footer-brand .motto{font-family:var(--font-display);font-style:italic;color:#fff;font-size:1.05rem;margin:0}
.footer-brand address{font-style:normal;line-height:1.55}
.footer-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
@media (min-width:700px){.footer-cols{grid-template-columns:repeat(4,1fr)}}
.footer-cols h2{font:650 .95rem var(--font-ui);color:#fff;margin:0 0 .8rem;letter-spacing:.01em}
.footer-cols ul{list-style:none;margin:0;padding:0}
.footer-cols li+li{margin-top:.5rem}
.footer-interest{display:grid;gap:1rem;padding:2rem 0;border-bottom:1px solid rgba(255,255,255,.16)}
@media (min-width:900px){.footer-interest{grid-template-columns:1fr 1.1fr;align-items:center}}
.footer-interest h2{color:#fff;font-size:1.5rem;margin:0}
.footer-interest p{margin:.25rem 0 0}
.inline-form{display:flex;gap:.5rem;flex-wrap:wrap}
.inline-form input{flex:1 1 220px;min-height:48px;border-radius:var(--r-pill);border:1.5px solid rgba(255,255,255,.4);background:#fff;color:var(--ink);padding:.6rem 1.1rem;font-size:1rem}
.inline-form .form-status{flex-basis:100%;margin:0;min-height:1.4em;color:#fff;font-size:.9rem}
.social{display:flex;gap:.5rem;list-style:none;margin:0;padding:0}
.social li+li{margin:0}
.social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.35)}
.social a:hover{background:rgba(255,255,255,.12);text-decoration:none}
.social svg{width:18px;height:18px;fill:#fff}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.5rem 0 2rem;font-size:.85rem}
.footer-bottom ul{display:flex;flex-wrap:wrap;gap:1.25rem;list-style:none;margin:0;padding:0}
.footer-bottom li+li{margin:0}
.footer-bottom p{margin:0;max-width:70ch}
.footer-managed{font-size:.9rem}

/* Sticky phone CTA (C-10) ------------------------------------------------ */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.5rem .75rem calc(.5rem + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(17,44,86,.08);transition:transform .25s ease}
.sticky-cta .btn{min-height:48px;padding-inline:.5rem}
.sticky-cta.is-hidden{transform:translateY(115%)}
@media (min-width:640px){.sticky-cta{display:none}}
@media (max-width:639px){body.has-sticky{padding-bottom:76px}}

/* Dialogs: lead modal (C-08) and video ------------------------------------ */
dialog{padding:0;border:0;color:var(--ink);background:#fff}
dialog::backdrop{background:rgba(12,34,68,.62)}
.modal{width:min(900px,calc(100% - 1.5rem));max-height:calc(100dvh - 1.5rem);border-radius:var(--r-xl);overflow:auto;box-shadow:var(--shadow-pop)}
.modal__grid{display:grid}
@media (min-width:780px){.modal__grid{grid-template-columns:1.08fr .92fr}}
.modal__form{background:var(--brand-navy);color:#fff;padding:clamp(1.5rem,4vw,2.5rem)}
.modal__form h2{color:#fff;font-size:clamp(1.8rem,3.5vw,2.4rem);margin-bottom:.35rem}
.modal__form .lead-intro{color:rgba(255,255,255,.88);margin-bottom:1.25rem}
.modal__form label,.modal__form legend{color:#fff}
.modal__form .hint{color:rgba(255,255,255,.78)}
.modal__photo{position:relative;min-height:180px;background:var(--navy-700)}
.modal__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:779px){.modal__photo{order:-1;min-height:140px;max-height:160px}}
.modal__close{position:absolute;right:.75rem;top:.75rem;z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.95);color:var(--brand-navy);font-size:1.5rem;line-height:1;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.modal-wrap{position:relative}
.modal__success{padding:.5rem 0}
.modal__success h3{color:#fff;font-size:1.8rem}
.video-dialog{width:min(980px,calc(100% - 1.5rem));background:#000;border-radius:var(--r-md);overflow:hidden}
.video-dialog__frame{position:relative;aspect-ratio:16/9;background:#000}
.video-dialog__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-dialog__bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .9rem;background:#0b1422;color:#fff;font-size:.9rem}
.video-dialog__bar a{color:#fff}
.video-dialog__bar button{min-height:40px;padding:.4rem .9rem;border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff}

/* Preview tools (demo builds only) -------------------------------------- */
.preview-tools{position:fixed;left:.75rem;bottom:.75rem;z-index:70;font-size:.875rem}
@media (max-width:639px){.preview-tools{bottom:84px}}
.preview-tools>button{min-height:40px;padding:.4rem .9rem;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:#fff;color:var(--ink);box-shadow:var(--shadow-card);font-weight:650}
.preview-tools__panel{position:absolute;left:0;bottom:calc(100% + .5rem);width:min(320px,calc(100vw - 1.5rem));background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-pop);padding:1rem}
.preview-tools__panel h2{font:650 1rem var(--font-ui);margin:0 0 .25rem}
.preview-tools__panel p{color:var(--ink-2);margin:0 0 .75rem}
.preview-tools__panel label{display:flex;gap:.5rem;align-items:center;padding:.3rem 0}

/* ==========================================================================
   03 Home and proof components, V4 honors system
   Eyebrows, hero (H-02, C-07), authority line (H-02b), enrollment block and
   calendar card (H-03, C-04), awards podium, plaques and honor roll (H-04,
   C-06), numbers bento: icon heads, rank line, bar rows, price duel, minis
   (H-05, C-05, C-09), source chips (G-04), method trio (H-06), readiness
   transcript (H-07), voices (H-08), schools and events (H-09), life strip
   (H-10), news (H-11), CTA band (H-12), at a glance
   ========================================================================== */

/* Eyebrows: pinned by the design brief to the two proof sections */
.eyebrow{display:block;margin:0 0 .85rem;font:700 .78rem/1.3 var(--font-ui);letter-spacing:.24em;text-transform:uppercase;color:var(--red-ink)}
.eyebrow--rules{display:flex;align-items:center;justify-content:center;gap:1.1rem;white-space:nowrap;color:var(--gold)}
.eyebrow--rules::before,.eyebrow--rules::after{content:"";flex:0 1 5.5rem;min-width:1rem;height:1px;background:linear-gradient(90deg,rgba(214,182,115,0),var(--gold))}
.eyebrow--rules::after{background:linear-gradient(90deg,var(--gold),rgba(214,182,115,0))}

/* Hero */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--brand-navy);color:#fff;min-height:max(560px,78vh);display:grid;align-items:center}
@supports (height:1svh){@media (max-width:639px){.hero{min-height:70svh}}}
@media (max-width:639px){.hero{min-height:70vh}}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,27,56,.35) 0%,rgba(10,27,56,0) 30%,rgba(10,27,56,0) 62%,rgba(10,27,56,.6) 100%),linear-gradient(35deg,rgba(10,27,56,.93) 0%,rgba(17,44,86,.74) 48%,rgba(17,44,86,.44) 100%)}
.hero__content{padding-block:clamp(3rem,8vw,6rem);text-align:center;max-width:940px;margin-inline:auto}
.hero h1{font-size:var(--fs-hero);line-height:1.04;letter-spacing:-.02em;margin-bottom:0}
.hero__brand{display:flex;align-items:center;justify-content:center;gap:.85rem;font:650 clamp(.95rem,1.4vw,1.05rem)/1.3 var(--font-ui);letter-spacing:.01em;color:rgba(255,255,255,.92);margin-bottom:1.1rem}
.hero__brand::before,.hero__brand::after{content:"";flex:0 0 2.25rem;height:1px;background:linear-gradient(90deg,rgba(214,182,115,0),var(--gold))}
.hero__brand::after{background:linear-gradient(90deg,var(--gold),rgba(214,182,115,0))}
.hero__line{display:block}
.hero__rotor{display:inline-block;text-align:left;white-space:nowrap;min-width:7.3em}
.hero__sub{font-size:clamp(1.1rem,1.8vw,1.35rem);line-height:1.5;max-width:44ch;margin:1.35rem auto 2rem;color:rgba(255,255,255,.94)}
.hero .btn-row{justify-content:center}
@media (max-width:639px){.hero__content{text-align:left}.hero__brand{justify-content:flex-start}.hero__brand::before{display:none}.hero__rotor{display:block;min-width:0!important}.hero__sub{margin-left:0}.hero .btn-row{justify-content:flex-start}}
.hero__pause{position:absolute;right:1rem;bottom:1rem;min-height:40px;padding:.45rem .95rem;border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.55);background:rgba(12,34,68,.55);color:#fff;font:600 .875rem var(--font-ui)}
.hero__pause:hover{background:rgba(12,34,68,.8)}

/* Authority line: the one-sentence proof under the hero, crowned by a drawn laurel */
.authority{border-bottom:1px solid var(--line);background:#fff}
.authority__inner{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem 1.1rem;padding-block:1.1rem;text-align:center}
.authority p{display:inline-flex;align-items:center;gap:.75rem;margin:0;font-family:var(--font-display);font-size:clamp(1.05rem,1.8vw,1.35rem);color:var(--ink)}
.authority p::before{content:"";flex:0 0 auto;width:2.5rem;height:1.65rem;background:linear-gradient(160deg,#e3c47f,var(--gold-mid) 55%,var(--gold-lo));-webkit-mask:var(--laurel-mask) center/contain no-repeat;mask:var(--laurel-mask) center/contain no-repeat}
.authority a{font-weight:650;font-size:.975rem}

/* Enrollment block and calendar card */
.enroll{display:grid;gap:clamp(2.5rem,6vw,4rem);align-items:center}
@media (min-width:900px){.enroll{grid-template-columns:1.2fr .8fr}}
.enroll__title{display:flex;gap:1rem;align-items:center;margin-bottom:.75rem}
.enroll__title img{width:64px;height:64px;object-fit:contain}
.enroll h2{font-size:clamp(2.4rem,5vw,3.4rem);margin:0;line-height:1.02}
.enroll__cycle{font-family:var(--font-display);font-style:italic;font-size:1.35rem;color:var(--ink-2);margin:0 0 1.75rem}
.mini-timeline{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}
.mini-timeline li{margin:0;border-top:3px solid var(--navy-200);padding-top:.7rem}
.mini-timeline li:first-child{border-top-color:var(--brand-red)}
.mini-timeline b{display:block;font-weight:650;font-size:1rem;line-height:1.3}
.mini-timeline span{display:block;font-size:.9rem;color:var(--ink-2);margin-top:.15rem}
@media (max-width:520px){.mini-timeline{grid-template-columns:1fr}}
.microcopy{font-size:.975rem;color:var(--ink-2);max-width:54ch;margin:0}
.oe-cal{position:relative;width:100%;max-width:360px;margin:28px auto 0;background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:0 0 var(--s-3);text-align:center}
.oe-cal__rings{position:absolute;top:-22px;left:0;right:0;display:flex;justify-content:space-evenly}
.oe-cal__rings i{display:block;width:12px;height:40px;border-radius:8px;background:var(--brand-navy);box-shadow:0 0 0 4px #fff}
.oe-cal__tab{background:var(--brand-navy);color:#fff;border-radius:var(--r-md) var(--r-md) 0 0;padding:28px var(--s-2) 12px;font:620 .9rem/1.35 var(--font-ui)}
.oe-cal__label{font:600 .85rem var(--font-ui);color:var(--ink-2);margin:1.1rem 0 0}
.oe-cal__dates{font-family:var(--font-display);font-size:clamp(1.65rem,3vw,2.05rem);line-height:1.15;color:var(--brand-navy);margin:.35rem var(--s-2) var(--s-2)}
.oe-cal__dates span{display:block;font-size:.55em;color:var(--ink-2);margin:.2rem 0}
.oe-cal .btn{margin-inline:var(--s-2)}
@media (max-width:639px){.oe-cal .btn{width:calc(100% - 2 * var(--s-2))}.oe-cal__rings i{height:32px}}

/* Awards band: a lit podium of CCS-drawn plaques on deep navy (the page's one bold moment) */
.awards{position:relative;isolation:isolate;overflow:hidden;color:#fff;text-align:center;padding-block:clamp(3.75rem,7vw,6.5rem) clamp(3rem,6vw,5rem);background:radial-gradient(55% 60% at 50% 60%,rgba(70,112,196,.32),rgba(70,112,196,0) 72%),linear-gradient(180deg,#15326a 0%,var(--brand-navy) 45%,var(--navy-ink) 100%)}
.awards::before,.awards::after{content:"";position:absolute;z-index:-1;top:50%;width:min(28vw,24rem);aspect-ratio:11/26;background:var(--laurel-branch) center/contain no-repeat;opacity:.08;pointer-events:none}
.awards::before{left:max(-3rem,-3vw);transform:translateY(-50%)}
.awards::after{right:max(-3rem,-3vw);transform:translateY(-50%) scaleX(-1)}
@media (max-width:759px){.awards::before,.awards::after{width:44vw;top:30%;opacity:.055}}
.awards h2{color:#fff;font-size:clamp(2.2rem,4.8vw,3.7rem);font-weight:700;letter-spacing:-.02em;line-height:1.04;max-width:17ch;margin:0 auto .6rem}
.awards__sub{max-width:62ch;margin:0 auto;color:rgba(255,255,255,.86);font-size:clamp(1.02rem,1.5vw,1.15rem);line-height:1.6}
.awards__link{color:#fff;font-weight:650}
.awards__sources{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.25rem 1.25rem;margin-top:1.5rem}
.awards__sources::before,.awards__sources::after{content:"";flex:0 1 5rem;height:1px;background:rgba(255,255,255,.22)}
.nobr{white-space:nowrap}
@media (max-width:639px){.awards__sources::before,.awards__sources::after{display:none}}
.medal-note{font-size:.85rem;color:rgba(255,255,255,.72);max-width:60ch;margin:1rem auto 0}
.medals{list-style:none;margin:0;padding:0}
.medals li{margin:0}

/* Plaques: CCS-drawn honor plates (replace the V3 SVG medallions site-wide).
   Sized by --pw; inner type scales with the plaque through container units. */
.plaque{--pw:13rem;position:relative;display:block;flex:0 0 auto;width:var(--pw);max-width:100%;aspect-ratio:5/6;container-type:inline-size;border-radius:5px;overflow:hidden;background:linear-gradient(140deg,var(--gold-hi) 0%,var(--gold) 20%,var(--gold-lo) 46%,var(--gold) 68%,var(--gold-hi) 86%,var(--gold-mid) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(0,0,0,.28),0 2px 5px rgba(3,10,25,.28),0 26px 44px -22px rgba(3,10,25,.72)}
.plaque--lg{--pw:15.5rem}
.plaque--sm{--pw:9.75rem}
.plaque--xs{--pw:6.5rem}
.plaque__face{position:absolute;inset:4.5%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8% 8% 7%;text-align:center;color:var(--brand-navy);background:radial-gradient(135% 90% at 50% 0%,#fffdf8 0%,var(--ivory) 45%,var(--ivory-2) 100%);box-shadow:inset 0 0 0 1px rgba(122,92,38,.55),inset 0 0 0 5px var(--ivory),inset 0 0 0 6px rgba(185,145,73,.6),inset 0 4px 14px rgba(94,70,24,.14)}
.plaque__crest{display:block;flex:0 0 auto;width:4.6rem;height:2.9rem;width:42cqi;height:26cqi;background:linear-gradient(165deg,#ecd598 0%,#c79d52 45%,#8c672a 100%);-webkit-mask:var(--laurel-mask) center/contain no-repeat;mask:var(--laurel-mask) center/contain no-repeat}
.plaque--star .plaque__crest{-webkit-mask-image:var(--laurel-star-mask);mask-image:var(--laurel-star-mask)}
.plaque__title{position:relative;display:block;margin-top:.5rem;margin-top:4cqi;padding-top:.7rem;padding-top:5.5cqi;font:700 2.2rem/.98 var(--font-display);font-size:17cqi;letter-spacing:-.02em;color:var(--brand-navy)}
.plaque--long .plaque__title{font-size:1.6rem;font-size:12.5cqi;line-height:1.02}
.plaque__title::before{content:"";position:absolute;left:50%;top:0;width:7rem;width:56cqi;height:7px;transform:translate(-50%,-50%);background:radial-gradient(circle,#b99149 0 2.3px,rgba(185,145,73,0) 2.8px) center/7px 7px no-repeat,linear-gradient(90deg,rgba(185,145,73,0),#b99149 22%,#b99149 78%,rgba(185,145,73,0)) center/100% 1px no-repeat}
.plaque__line{display:block;margin-top:.45rem;margin-top:3.6cqi;font:400 .72rem/1.25 var(--font-display);font-size:5.7cqi;letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
.plaque__meta{display:flex;align-items:center;justify-content:center;gap:.45rem;gap:3.2cqi;margin-top:.55rem;margin-top:4.4cqi;font:400 1rem/1.2 var(--font-display);font-size:7.6cqi;color:var(--ink)}
.plaque__meta::before,.plaque__meta::after{content:"";flex:0 0 auto;width:1.1rem;width:8.5cqi;height:1px;background:#b99149}
.plaque__meta--long{font-size:.85rem;font-size:6.5cqi;line-height:1.12}
.plaque__meta--long::before,.plaque__meta--long::after{display:none}
.plaque__name{display:block;margin-top:.45rem;margin-top:3.8cqi;font:700 1rem/1.15 var(--font-display);font-size:7.8cqi;color:var(--brand-navy)}
.plaque::after{content:"";position:absolute;top:-12%;bottom:-12%;left:0;width:36%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.6) 50%,rgba(255,255,255,0));transform:translateX(-170%) skewX(-16deg);pointer-events:none;mix-blend-mode:overlay}

/* Podium: center honor raised and lit; pedestal height mirrors rank (sides equal: not a #2) */
.podium{display:flex;justify-content:center;align-items:flex-end;gap:clamp(1rem,3.4vw,3rem);list-style:none;margin:clamp(2.25rem,4.5vw,3.5rem) auto 0;padding:0}
.podium>li{--pw:clamp(10rem,19vw,13.25rem);position:relative;display:flex;flex-direction:column;align-items:center;margin:0}
.podium>li:nth-child(2){--pw:clamp(11.5rem,22vw,15.75rem)}
.podium .plaque{--pw:inherit;position:relative;z-index:1}
.podium>li::after{content:"";position:relative;z-index:1;display:block;width:calc(var(--pw) * 1.16);height:clamp(1.5rem,2.4vw,2rem);margin-top:-2px;border-radius:3px 3px 1px 1px;background:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,rgba(255,255,255,0) 2px 22px),linear-gradient(180deg,#244273 0%,#11274c 40%,#0a1a36 100%);box-shadow:inset 0 1px 0 rgba(222,190,122,.9),inset 0 2px 0 rgba(0,0,0,.35),0 12px 0 5px #0b1c3b,0 12px 0 6px rgba(222,190,122,.28),0 36px 36px -12px rgba(0,0,0,.7)}
.podium>li:nth-child(2)::after{height:clamp(2.3rem,3.8vw,3.2rem)}
.podium>li:nth-child(2)::before{content:"";position:absolute;z-index:0;left:50%;top:-18%;width:175%;aspect-ratio:1;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(255,232,178,.22),rgba(255,232,178,0));pointer-events:none}
.podium+.honor-roll,.podium+.awards__sources{margin-top:clamp(2.75rem,5vw,3.75rem)}
.js .podium.reveal .plaque{transition:opacity .7s ease,transform .95s cubic-bezier(.2,.75,.2,1)}
.js .podium.reveal.awards-motion-ready:not(.is-seen) .plaque{opacity:0;transform:translateY(26px) scale(.97)}
.js .podium.reveal>li:nth-child(1) .plaque{transition-delay:.16s}
.js .podium.reveal>li:nth-child(3) .plaque{transition-delay:.3s}
.podium.is-seen>li:nth-child(2) .plaque::after{animation:plaque-sheen 1.5s .95s cubic-bezier(.3,.1,.2,1) both}
@keyframes plaque-sheen{to{transform:translateX(360%) skewX(-16deg)}}
@media (max-width:639px){
  .podium{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;align-items:end;row-gap:1.75rem;column-gap:.5rem}
  .podium>li{--pw:min(8.75rem,37vw)}
  .podium>li:nth-child(2){grid-column:1/-1;order:-1;--pw:min(12.5rem,58vw)}
  .podium>li::after{width:calc(var(--pw) * 1.1)}
}

/* Honor roll: sourced recognition from the Results timeline, running under the podium */
.honor-roll{position:relative;display:flex;align-items:stretch;max-width:62rem;margin:clamp(2.5rem,5vw,3.5rem) auto 0;text-align:left;border:1px solid rgba(222,190,122,.6);border-radius:3px;background:linear-gradient(180deg,rgba(9,24,50,.7),rgba(9,24,50,.35));box-shadow:inset 0 0 0 4px rgba(10,27,56,.85),inset 0 0 0 5px rgba(222,190,122,.22)}
.honor-roll__badge{flex:0 0 auto;width:4.6rem;display:grid;place-items:center;border-right:1px solid rgba(222,190,122,.35)}
.honor-roll__badge::before{content:"";width:2.5rem;height:1.8rem;background:linear-gradient(160deg,#ecd598,#c49a4f 50%,#8f6a2c);-webkit-mask:var(--laurel-mask) center/contain no-repeat;mask:var(--laurel-mask) center/contain no-repeat}
.honor-roll__viewport{position:relative;flex:1 1 auto;min-width:0;overflow:hidden}
.honor-roll__list{list-style:none;margin:0;padding:.6rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}
.honor-roll__item{display:flex;align-items:baseline;gap:.8rem;margin:0;padding:.55rem 1.4rem;font:400 1rem/1.4 var(--font-display);color:#fff}
.honor-roll__year{flex:0 0 auto;font:700 .72rem/1 var(--font-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.honor-roll.is-reeling .honor-roll__viewport{-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.honor-roll.is-reeling .honor-roll__list{display:flex;flex-wrap:nowrap;width:max-content;padding:0}
.honor-roll.is-reeling .honor-roll__item{flex:0 0 auto;align-items:center;white-space:nowrap;padding:1.15rem 0 1.15rem 1.9rem}
.honor-roll.is-reeling .honor-roll__item::after{content:"";flex:0 0 auto;width:6px;height:6px;margin-left:1.1rem;transform:rotate(45deg);background:var(--gold);opacity:.75}
.honor-roll__toggle{flex:0 0 auto;width:3.5rem;min-height:44px;display:grid;place-items:center;border:0;border-left:1px solid rgba(222,190,122,.35);background:transparent;color:#fff}
.honor-roll__toggle::before{content:"";width:12px;height:14px;background:linear-gradient(90deg,currentColor 0 4px,transparent 4px 8px,currentColor 8px 12px)}
.honor-roll__toggle[aria-pressed="true"]::before{width:0;height:0;background:none;border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent currentColor}
.honor-roll__toggle:hover{background:rgba(255,255,255,.08)}
@media (max-width:639px){.honor-roll__badge{display:none}.honor-roll.is-reeling .honor-roll__item{font-size:.95rem}}

/* Numbers bento (H-05): section head, campus switcher, cards */
.numbers-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem 2rem;margin-bottom:clamp(1.5rem,3vw,2.25rem)}
.numbers-head h2{margin:0 0 .4rem;font-size:clamp(2.3rem,4.8vw,3.7rem);font-weight:700;letter-spacing:-.022em;line-height:1.02;color:var(--brand-navy)}
.numbers-head .muted{font-size:clamp(1rem,1.4vw,1.15rem);max-width:52ch}
.switcher{display:inline-flex;flex-wrap:nowrap;gap:2px;padding:5px;border-radius:var(--r-pill);background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(17,44,86,.05),0 8px 20px -10px rgba(17,44,86,.2);max-width:100%;overflow-x:auto;scrollbar-width:none}
.switcher::-webkit-scrollbar{display:none}
.switcher button{flex:0 0 auto;min-height:44px;padding:.5rem 1.15rem;border:0;border-radius:var(--r-pill);background:transparent;font:620 .95rem var(--font-ui);color:var(--ink-2);white-space:nowrap;transition:background-color .2s ease,color .2s ease}
.switcher button:hover{color:var(--brand-navy);background:var(--navy-50)}
.switcher button[aria-pressed="true"]{background:var(--brand-navy);color:#fff;box-shadow:0 6px 14px -6px rgba(17,44,86,.55)}
.bento{display:grid;gap:1rem}
@media (min-width:760px){.bento{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"left top" "left bottom" "right right" "under under"}.bento__left{grid-area:left}.bento__top{grid-area:top}.bento__bottom{grid-area:bottom}.bento__right{grid-area:right}.bento__under{grid-area:under}}
@media (min-width:1100px){.bento{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);grid-template-areas:"left top right" "left bottom right" "under under under"}}
.stat-card{position:relative;display:flex;flex-direction:column;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.25rem,2.4vw,1.75rem);box-shadow:var(--shadow-card)}
.stat-card__head{display:flex;align-items:flex-start;gap:.9rem}
.stat-card__titles{min-width:0;padding-top:.2rem}
.stat-card h3{font:700 1.075rem/1.3 var(--font-ui);color:var(--brand-navy);margin:0;letter-spacing:-.005em}
.stat-card__sub{margin:.25rem 0 0;font-size:.925rem;line-height:1.45;color:var(--ink-2)}
.stat-card__foot{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem .75rem}
.stat-card--navy{isolation:isolate;background:radial-gradient(120% 70% at 100% 0%,#1f4580 0%,rgba(31,69,128,0) 60%),var(--brand-navy);color:#fff;border-color:transparent}
.stat-card--navy h3{color:#fff}
.stat-card--navy .stat-card__sub{color:rgba(255,255,255,.78)}
.icon-badge{flex:0 0 auto;display:grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:50%;background:var(--navy-50);color:var(--brand-navy)}
.icon-badge svg{width:1.35rem;height:1.35rem}
.icon-badge--gold{background:linear-gradient(160deg,#fbf3df,#f1e3c0);color:#8a6a30;box-shadow:inset 0 0 0 1px rgba(185,145,73,.35)}
.stat-card--navy .icon-badge{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.stat-card--navy .icon-badge--gold{color:var(--gold-hi)}
.big-num{font-family:var(--font-display);font-weight:700;font-variant-numeric:lining-nums tabular-nums;font-size:var(--fs-stat);line-height:.95;color:var(--brand-navy);letter-spacing:-.025em}
.stat-card--navy .big-num{color:#fff}
.stat-caption{font-size:.95rem;color:var(--ink-2);margin:0;line-height:1.5}
.stat-card--navy .stat-caption{color:rgba(255,255,255,.82)}
.stat-card p.big-num{display:flex;align-items:center;flex-wrap:wrap;gap:.1em .3em;margin:0}
.big-num .grade-pill{display:inline-grid;place-items:center;min-width:0;width:1.08em;height:1.08em;border-radius:.16em;font:700 .56em/1 var(--font-display);letter-spacing:0}
/* Rank: big ordinal, 1st-to-117th rank line, ranked list */
.ladder-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .55rem;margin:0}
.ladder-head .big-num{display:inline;font-size:clamp(3.8rem,7vw,5.6rem)}
.ladder-head .of{font:400 clamp(1.35rem,2.4vw,1.9rem)/1 var(--font-display);color:var(--brand-navy)}
.rankline{margin-top:.35rem;padding-top:2.35rem;border-top:1px solid var(--line)}
.rankline__track{position:relative;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--navy-200),#e9eef6 70%,#f1f4f9)}
.rankline__track i{position:absolute;top:50%;left:var(--pos);width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#fff;border:2px solid var(--navy-400);transition:transform .2s ease,border-color .2s ease}
.rankline__track i.is-ccs{z-index:1;width:20px;height:20px;margin:-10px 0 0 -10px;background:var(--brand-navy);border:3px solid #fff;box-shadow:0 0 0 2px var(--brand-navy),0 6px 14px -4px rgba(17,44,86,.5)}
.rankline__track i[data-label]::after{content:attr(data-label);position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%);font:700 .8rem/1 var(--font-ui);color:var(--brand-navy);white-space:nowrap}
.rankline__track i.is-hot{transform:scale(1.35);border-color:var(--brand-navy)}
.ladder__ends{display:flex;justify-content:space-between;margin-top:.55rem;font-size:.78rem;color:var(--ink-3)}
.ladder{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;height:auto!important}
.ladder li{display:grid;grid-template-columns:4.6rem minmax(0,1fr);align-items:center;gap:.9rem;margin:0}
.ladder li .rank{display:block;text-align:center;font:700 1.12rem/1 var(--font-display);color:var(--brand-navy);background:var(--navy-50);border-radius:var(--r-pill);padding:.5rem .4rem .45rem;transition:box-shadow .2s ease}
.ladder li .who{font-size:.95rem;line-height:1.3;color:var(--ink-2)}
.ladder li.is-ccs .rank{background:var(--brand-navy);color:#fff;font-size:1.22rem;box-shadow:0 8px 18px -8px rgba(17,44,86,.6)}
.ladder li.is-ccs .who{color:var(--ink);font-weight:650}
.ladder li.is-hot .rank{box-shadow:0 0 0 2px var(--brand-navy)}
/* Bar rows: label | bar | value, values aligned in one column; CCS navy, comparisons pale */
.bars{display:grid;gap:.85rem;container-type:inline-size}
.bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value" "track track";align-items:center;gap:.35rem .75rem}
.bar-row__label{grid-area:label;font-size:.925rem;font-weight:620;line-height:1.3;color:var(--ink)}
.bar-row.is-ccs .bar-row__label{color:var(--brand-navy);font-weight:700}
.bar-row__value{grid-area:value;font:700 1rem/1 var(--font-ui);font-variant-numeric:tabular-nums;color:var(--ink-2);text-align:right;transition:opacity .5s ease .45s}
.bar-row.is-ccs .bar-row__value{color:var(--brand-navy)}
.bar-track{grid-area:track;position:relative;height:1.35rem;border-radius:var(--r-pill);background:var(--mist)}
@container (min-width:360px){.bar-row{grid-template-columns:minmax(5.5rem,34%) minmax(0,1fr) 3.4rem;grid-template-areas:"label track value";gap:.75rem}}
.bar{display:block;height:100%;width:calc(var(--v) * 1%);border-radius:var(--r-pill);background:linear-gradient(90deg,#bccade,#cdd7e7);-webkit-clip-path:inset(0 0 0 0 round 999px);clip-path:inset(0 0 0 0 round 999px);transition:-webkit-clip-path .9s cubic-bezier(.2,.7,.2,1),clip-path .9s cubic-bezier(.2,.7,.2,1)}
.bar.is-ccs{background:linear-gradient(90deg,#0c2244,#1e4a8c);box-shadow:0 6px 14px -8px rgba(17,44,86,.7)}
.bars__cap{font-size:.925rem;color:var(--ink-2);margin:.15rem 0 0;line-height:1.5}
.js .reveal:not(.is-seen) .bar{-webkit-clip-path:inset(0 100% 0 0 round 999px);clip-path:inset(0 100% 0 0 round 999px)}
.js .reveal:not(.is-seen) .bar-row__value{opacity:0}
.bar-row:nth-child(2) .bar{transition-delay:.12s}.bar-row:nth-child(3) .bar{transition-delay:.24s}.bar-row:nth-child(4) .bar{transition-delay:.36s}
/* Price duel: $0 against the tuition range, with a drawn Ionic column */
.duel{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem}
.duel--stack{grid-template-columns:1fr;gap:.35rem}
.duel__vs{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--mist);color:var(--ink-2);font:italic 400 1.05rem var(--font-display)}
.stat-card--navy .duel:not(.duel--stack) .duel__vs{background:rgba(255,255,255,.12);color:#fff}
.duel__side .big-num{display:block}
.duel__label{display:block;font-size:.95rem;color:var(--ink-2);margin-top:.5rem;line-height:1.45;max-width:34ch}
.stat-card--navy .duel__label{color:rgba(255,255,255,.86)}
.duel__side--them .big-num{font-size:clamp(2rem,3.4vw,2.75rem);line-height:1.05;color:var(--ink-2)}
.duel--stack .duel__vs{position:relative;z-index:0;width:100%;height:2.9rem;margin:.9rem 0;border-radius:0;background:none;color:inherit;font:italic 400 1.1rem/1 var(--font-display)}
.duel--stack .duel__vs::before{content:"";position:absolute;z-index:-2;left:0;right:0;top:50%;height:1px;background:currentColor;opacity:.2}
.duel--stack .duel__vs::after{content:"";position:absolute;z-index:-1;left:50%;top:0;width:2.9rem;height:2.9rem;margin-left:-1.45rem;border-radius:50%;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line)}
.stat-card--navy .duel--stack .duel__vs::after{background:#173a70;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.bento__right{container-type:inline-size}
.bento__right .duel{margin-block:auto}
.bento__right .duel--stack .duel__side:first-child .big-num{font-size:clamp(4.6rem,9vw,7rem);line-height:.9}
@supports (font-size:1cqi){.bento__right .duel__side--them .big-num{font-size:clamp(1.9rem,12cqi,2.9rem)}}
@container (min-width:620px){.bento__right .duel--stack{grid-template-columns:minmax(0,1fr) auto minmax(0,1.25fr);gap:2rem}.bento__right .duel--stack .duel__vs{width:2.9rem;margin:0}.bento__right .duel--stack .duel__vs::before{display:none}}
.bento__right::after{content:"";position:absolute;z-index:-1;top:1.25rem;right:1rem;width:4.6rem;height:13rem;background:var(--column-art) right top/contain no-repeat;opacity:.12;pointer-events:none}
.bento__right .duel__label{max-width:25ch}
@media (min-width:760px) and (max-width:1099px){.bento__right::after{display:none}.bento__right .duel__label{max-width:34ch}}
/* Minis */
.minis{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.mini{display:flex;align-items:flex-start;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.2rem 1.35rem;box-shadow:var(--shadow-card)}
.mini__body{min-width:0;display:flex;flex-direction:column;gap:.25rem}
.mini .icon-badge{width:3.1rem;height:3.1rem}
.mini .big-num{font-size:clamp(2.2rem,3.6vw,2.9rem);line-height:1}
.mini p{margin:0;font-size:.95rem;color:var(--ink-2);line-height:1.45}
.stat-empty{font-family:var(--font-display);font-style:italic;color:var(--ink-2);font-size:1.1rem;margin:0}
.stat-card--navy .stat-empty{color:rgba(255,255,255,.8)}
.campus-view[hidden]{display:none}
.numbers-more{display:flex;justify-content:center;margin-top:clamp(1.75rem,3vw,2.5rem)}

/* Source chips and popovers (G-04): every number keeps its source within reach */
.source{position:relative;display:inline-block}
.source-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;padding:.2rem .1rem;border:0;background:transparent;font:600 .8125rem var(--font-ui);color:var(--ink-2);text-decoration:underline dotted;text-decoration-color:rgba(70,81,100,.55);text-underline-offset:3px}
.source-chip::before{content:"";flex:0 0 auto;width:.95rem;height:.95rem;background:currentColor;opacity:.75;-webkit-mask:var(--doc-mask) center/contain no-repeat;mask:var(--doc-mask) center/contain no-repeat}
.source-chip:hover,.source-chip[aria-expanded="true"]{color:var(--brand-navy)}
.stat-card--navy .source-chip,.section--navy .source-chip,.awards .source-chip{color:rgba(255,255,255,.82);text-decoration-color:rgba(255,255,255,.45)}
.stat-card--navy .source-chip:hover,.section--navy .source-chip:hover,.awards .source-chip:hover{color:#fff}
.source-pop{position:absolute;z-index:30;left:0;bottom:calc(100% + 10px);width:min(340px,84vw);background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px -12px rgba(12,34,68,.35),0 2px 6px rgba(12,34,68,.08);padding:1rem 1.1rem;font-size:.875rem;line-height:1.5;text-align:left}
.source-pop--below{bottom:auto;top:calc(100% + 10px)}
.source-pop--right{left:auto;right:0}
.source-pop p{margin:0 0 .45rem}
.source-pop p:last-child{margin-bottom:0}
.source-pop a{color:var(--brand-navy);font-weight:650}
.grade{display:inline-flex;align-items:center;gap:.45rem;font-weight:650}
.grade i{font-style:normal;display:inline-grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:6px;background:var(--brand-navy);color:#fff;font-size:.8rem}
.grade--B i{background:var(--warn)}
.grade--C i{background:var(--err)}

/* Method trio (H-06) */
.trio{display:grid;gap:clamp(1.75rem,3vw,2.5rem)}
@media (min-width:860px){.trio{grid-template-columns:repeat(3,1fr)}}
.trio__item h3{margin:1.1rem 0 .5rem}
.trio__item p{color:var(--ink-2);margin-bottom:.6rem}
.trio__media{aspect-ratio:4/3;border-radius:var(--r-xl);overflow:hidden;background:var(--mist)}
.trio__media img{width:100%;height:100%;object-fit:cover}
.type-tile{aspect-ratio:4/3;border-radius:var(--r-xl);background:radial-gradient(110% 80% at 100% 0%,#1f4580 0%,rgba(31,69,128,0) 60%),var(--brand-navy);color:#fff;padding:clamp(1.25rem,2.5vw,1.75rem);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}
.type-tile::after{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.18);border-radius:14px;pointer-events:none}
.type-tile__top{font:600 .85rem var(--font-ui);color:rgba(255,255,255,.75)}
.type-tile ol,.type-tile ul{list-style:none;margin:0;padding:0;font-family:var(--font-display);font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.35}
.type-tile li+li{margin-top:.2rem}
.type-tile li span{color:rgba(255,255,255,.55);margin-right:.5rem;font-size:.85em}
.type-tile blockquote{margin:0;font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.3}
.type-tile--mist{background:var(--mist);color:var(--ink)}
.type-tile--mist::after{border-color:var(--line)}

/* Readiness transcript (H-07) */
.transcript{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:0 0 var(--r-md) var(--r-md);background:#fff;overflow:hidden;box-shadow:var(--shadow-card)}
.transcript li{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:.35rem 1rem;padding:1rem 1.25rem;margin:0;border-top:1px solid var(--line)}
.transcript li:first-child{border-top:0}
.transcript__n{font-family:var(--font-display);color:var(--ink-3);font-size:.95rem;min-width:1.5rem}
.transcript__course{font-family:var(--font-display);font-size:clamp(1.15rem,1.8vw,1.35rem);color:var(--ink)}
.transcript__credit{font:650 .85rem var(--font-ui);color:var(--brand-navy);background:var(--navy-50);border-radius:var(--r-pill);padding:.25rem .7rem;white-space:nowrap}
.transcript-head{display:flex;justify-content:space-between;gap:1rem;font:600 .85rem var(--font-ui);color:var(--ink-2);padding:.7rem 1.25rem;background:var(--mist);border:1px solid var(--line);border-bottom:0;border-radius:var(--r-md) var(--r-md) 0 0}
.transcript-note{font-size:.925rem;color:var(--ink-2);margin:.85rem 0 0}

/* Voices (H-08): whole video cards are play targets (enhance.js) */
.voices{display:grid;gap:1.25rem}
@media (min-width:760px){.voices{grid-template-columns:repeat(3,1fr)}}
.voice{position:relative;border-radius:var(--r-xl);overflow:hidden;background:var(--brand-navy);color:#fff;aspect-ratio:4/5;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate}
.voice img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.voice.is-clickable:hover img{transform:scale(1.035)}
.voice::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(12,34,68,.94) 0%,rgba(12,34,68,.55) 45%,rgba(12,34,68,.1) 100%)}
.voice__body{padding:1.5rem}
.voice__who{font:650 .9rem var(--font-ui);color:rgba(255,255,255,.85);margin:0 0 .35rem}
.voice__line{font-family:var(--font-display);font-size:1.3rem;line-height:1.3;margin:0 0 1rem}
.voice--quote{background:radial-gradient(110% 80% at 0% 0%,#1f4580 0%,rgba(31,69,128,0) 60%),var(--brand-navy);justify-content:space-between}
.voice--quote::after{display:none}
.voice--quote .voice__mark{font:400 5rem/1 var(--font-display);color:var(--gold);padding:1.25rem 1.5rem 0}
.voice-note{font-size:.875rem;color:var(--ink-3);margin-top:1rem}

/* Schools and events (H-09) */
.schools-layout{display:grid;gap:2rem}
@media (min-width:1080px){.schools-layout{grid-template-columns:2fr 1fr}}
.campus-cards{display:grid;gap:1rem}
@media (min-width:640px){.campus-cards{grid-template-columns:repeat(2,1fr)}}
.campus-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-card)}
.campus-card__media{aspect-ratio:16/10;background:var(--navy-700);overflow:hidden}
.campus-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.campus-card:hover .campus-card__media img{transform:scale(1.035)}
.campus-card__body{display:flex;flex-direction:column;gap:.6rem;padding:1.15rem 1.25rem 1.3rem;flex:1}
.campus-card h3{margin:0;font-size:1.45rem}
.campus-card__meta{font-size:.925rem;color:var(--ink-2);margin:0}
.campus-card__links{display:flex;gap:1.25rem;margin-top:auto;padding-top:.35rem}
.campus-card__links a{font-weight:650}
.event-list{display:grid;gap:1rem;align-content:start}
.event-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:1.25rem;background:#fff;box-shadow:var(--shadow-card)}
.event-card__label{font:650 .85rem var(--font-ui);color:var(--ink-2);margin:0 0 .4rem}
.event-card h3{font-size:1.25rem;margin:0 0 .35rem}
.event-card time{display:block;font-weight:650}
.event-card--empty{background:var(--mist);border-style:dashed;box-shadow:none}
.event-card--empty p{margin:.25rem 0 .75rem;color:var(--ink-2)}

/* Student life strip (H-10): scroll-snap row with buttons and mouse drag (enhance.js) */
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,78%);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 1rem;margin:0;list-style:none;scrollbar-color:var(--navy-200) transparent;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
@media (min-width:700px){.strip{grid-auto-columns:minmax(260px,40%)}}
@media (min-width:1100px){.strip{grid-auto-columns:calc((100% - 3rem) / 4)}}
.strip li{scroll-snap-align:start;margin:0;display:flex;flex-direction:column}
.strip__tile{aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;background:radial-gradient(110% 80% at 100% 0%,#1f4580 0%,rgba(31,69,128,0) 60%),var(--brand-navy);color:#fff;display:flex;align-items:flex-end;padding:1.1rem;position:relative}
.strip__tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.strip__tile .strip__word{position:relative;font-family:var(--font-display);font-size:1.6rem;line-height:1.1}
.strip__tile--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,34,68,.55),transparent 55%)}
.strip h3{font-family:var(--font-ui);font-size:1rem;font-weight:650;margin:.8rem 0 .2rem}
.strip p{font-size:.925rem;color:var(--ink-2);margin:0}
.strip:focus-visible{outline-offset:6px}
.strip.is-dragging{scroll-snap-type:none;cursor:grabbing;-webkit-user-select:none;user-select:none}
.strip.is-dragging *{pointer-events:none}
.strip-nav{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.35rem}
.strip-nav__btn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line-strong);background:#fff;color:var(--brand-navy);transition:background-color .2s ease,border-color .2s ease}
.strip-nav__btn:hover:not(:disabled){border-color:var(--brand-navy);background:var(--navy-50)}
.strip-nav__btn:disabled{opacity:.4;cursor:default}
.strip-nav__btn svg{width:18px;height:18px}

/* News cards (H-11) */
.news{display:grid;gap:1.5rem}
@media (min-width:800px){.news{grid-template-columns:repeat(3,1fr)}}
.news-card{border-top:3px solid var(--brand-navy);padding-top:1rem}
.news-card time{font-size:.875rem;color:var(--ink-2);font-weight:600}
.news-card h3{font-size:1.3rem;margin:.35rem 0 .45rem}
.news-card h3 a{text-decoration:none;color:var(--ink)}
.news-card h3 a:hover{text-decoration:underline;text-decoration-color:var(--brand-red);color:var(--brand-navy)}
.news-card p{color:var(--ink-2);font-size:.975rem;margin:0}

/* CTA band (H-12) */
.cta-band{background:radial-gradient(90% 140% at 100% 0%,#1f4580 0%,rgba(31,69,128,0) 55%),var(--brand-navy);color:#fff;border-radius:28px;padding:clamp(1.75rem,4vw,2.25rem) clamp(1.5rem,4vw,3rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem 2rem}
@media (min-width:900px){.cta-band{border-radius:var(--r-pill);padding-inline:3.25rem}}
.cta-band h2{color:#fff;font-size:clamp(1.6rem,3vw,2.3rem);margin:0}
.cta-band p{margin:.35rem 0 0;color:rgba(255,255,255,.85)}
.cta-band p a{color:#fff;font-weight:650}
@media (max-width:639px){.cta-band{text-align:center;justify-content:center}.cta-band .btn-row{justify-content:center}}

/* At a glance (Q-05 facts block) */
.glance{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#fff;margin:0;box-shadow:var(--shadow-card)}
.glance__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.9rem 1.25rem;background:var(--mist);border-bottom:1px solid var(--line)}
.glance__head h2,.glance__head h3{font-family:var(--font-ui);font-size:1rem;font-weight:700;margin:0;letter-spacing:0}
.glance__head span{font-size:.8125rem;color:var(--ink-2)}
.glance dl{margin:0}
.glance dl>div{display:grid;grid-template-columns:minmax(8.5rem,34%) 1fr;gap:.5rem 1rem;padding:.8rem 1.25rem;border-top:1px solid var(--line)}
.glance dl>div:first-child{border-top:0}
.glance dt{font-weight:650;color:var(--ink-2);font-size:.95rem}
.glance dd{margin:0}
@media (max-width:520px){.glance dl>div{grid-template-columns:1fr;gap:.1rem}}

/* ==========================================================================
   04 Interior pages: page hero, campus hero (S-01), tables, heat table (R-P3),
   performance chart (S-03), documents, records and filters, timeline (E-03),
   steps (E-04), FAQ (E-06), notices, year-round bar, people, compare
   ========================================================================== */
.page-hero{padding-block:clamp(1.75rem,4.5vw,3.25rem) clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line);background:linear-gradient(#fff,#fff) padding-box}
.page-hero h1{max-width:24ch;margin-bottom:.4em}
.page-hero .lede{margin-bottom:0}
.page-hero .btn-row{margin-top:1.5rem}
.page-hero--mist{background:var(--mist);border-bottom:0}
.page-hero__grid{display:grid;gap:2rem;align-items:center}
@media (min-width:960px){.page-hero__grid{grid-template-columns:1.15fr .85fr}}

/* Campus hero */
.campus-hero{padding-block:clamp(1.25rem,3.5vw,2.5rem) clamp(2.5rem,5vw,4rem)}
.campus-hero__grid{display:grid;gap:clamp(1.75rem,4vw,3rem);align-items:center}
@media (min-width:980px){.campus-hero__grid{grid-template-columns:1fr 1fr}}
.campus-hero h1{font-size:clamp(2.3rem,5vw,3.9rem);margin-bottom:.35em}
.campus-hero__place{font:650 1rem var(--font-ui);color:var(--ink-2);margin:0 0 .75rem}
.campus-hero__leader{font-size:.975rem;color:var(--ink-2);margin:1rem 0 0}
.campus-hero__leader b{color:var(--ink)}
.campus-hero__media{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3;background:var(--navy-700)}
.campus-hero__media img{width:100%;height:100%;object-fit:cover}
.campus-hero figure{margin:0}
.campus-hero .proof{margin-top:1.1rem}

/* Media figure fallback when a CCS photo is missing: honest, coded placeholder (G-02) */
.media-fallback{position:relative;background:linear-gradient(145deg,var(--brand-navy),var(--navy-700))}
.media-fallback img{opacity:0}
.media-fallback::before{content:attr(data-fallback-label);position:absolute;inset:auto 1rem 1rem 1rem;color:rgba(255,255,255,.85);font:italic 400 1rem/1.35 var(--font-display)}

/* Tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
caption{caption-side:top;text-align:left;padding:.9rem 1rem;font-weight:700;border-bottom:1px solid var(--line)}
th,td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--mist);font-size:.875rem;font-weight:700;color:var(--ink-2);white-space:nowrap}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
tbody th{font-weight:650}
td.num,th.num{text-align:right;font-family:var(--font-ui)}
.table-note{font-size:.875rem;color:var(--ink-2);margin:.75rem 0 0;max-width:80ch}
.grade-pill{display:inline-grid;place-items:center;min-width:1.9rem;height:1.9rem;border-radius:6px;font:700 .95rem var(--font-ui);background:var(--navy-100);color:var(--brand-navy)}
.grade-pill--A,.grade-pill--B{background:var(--brand-navy);color:#fff}
.grade-pill--na{background:var(--mist);color:var(--ink-3);font-weight:500;min-width:auto;padding:0 .5rem}
/* Heat table */
.heat td.is-above{background:var(--brand-navy);color:#fff;font-weight:650}
.heat td.is-below{background:#fff}
.heat td.is-na{color:var(--ink-3)}
.heat tr.is-ref th,.heat tr.is-ref td{background:var(--mist)}
.heat-legend{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.875rem;color:var(--ink-2);margin:.75rem 0 0}
.heat-legend span{display:inline-flex;align-items:center;gap:.45rem}
.heat-legend i{display:inline-block;width:14px;height:14px;border-radius:3px;background:var(--brand-navy)}
.heat-legend i.below{background:#fff;border:1px solid var(--line-strong)}

/* Performance chart (SVG) */
.chart{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:1rem 1rem .75rem}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .axis text,.chart .lbl{font:500 12px var(--font-ui);fill:var(--ink-2)}
.chart .grid line{stroke:var(--line);stroke-width:1}
.chart .line{fill:none;stroke:var(--brand-navy);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.chart .line--gap{stroke-dasharray:5 6;stroke-width:2;stroke:var(--navy-400)}
.chart .pt{fill:#fff;stroke:var(--brand-navy);stroke-width:3}
.chart .pt-lbl{font:700 13px var(--font-ui);fill:var(--brand-navy)}
.chart .series-2 .line{stroke:var(--navy-400)}.chart .series-2 .pt{stroke:var(--navy-400)}
.chart .series-3 .line{stroke:#7b8aa3;stroke-dasharray:1 0}.chart .series-3 .pt{stroke:#7b8aa3}
.chart .series-4 .line{stroke:var(--navy-200)}.chart .series-4 .pt{stroke:var(--navy-200)}
.chart-legend{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:.5rem 0 0;padding:0;font-size:.875rem;color:var(--ink-2)}
.chart-legend li{margin:0;display:inline-flex;align-items:center;gap:.4rem}
.chart-legend i{display:inline-block;width:18px;height:4px;border-radius:2px}

/* Documents and records */
.doc-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.doc-list li{margin:0;border-bottom:1px solid var(--line)}
.doc-list a{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;align-items:center;padding:.95rem .25rem;text-decoration:none;color:var(--ink)}
.doc-list a:hover{background:var(--mist)}
.doc-list strong{display:block;color:var(--brand-navy);font-weight:650}
.doc-list span.note{display:block;font-size:.9rem;color:var(--ink-2)}
.doc-list .tag{font:650 .75rem var(--font-ui);color:var(--ink-2);border:1px solid var(--line-strong);border-radius:6px;padding:.15rem .45rem;white-space:nowrap}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin:0 0 1rem;padding:1rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--mist)}
.filters .field{margin:0;flex:1 1 220px}
.filters .field--narrow{flex:0 1 180px}
.record-count{font-size:.925rem;color:var(--ink-2);margin:0 0 .75rem}
.year-group h2,.year-group h3{font-size:1.4rem;margin:2rem 0 .5rem}
.entity-group+.entity-group{margin-top:2.25rem}
.entity-group h2{font-size:clamp(1.3rem,2.2vw,1.6rem)}

/* Timeline (E-03) */
.timeline{list-style:none;margin:0;padding:0 0 0 .6rem;border-left:2px solid var(--line)}
.timeline li{position:relative;margin:0;padding:0 0 1.6rem 1.6rem}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-10px;top:.3rem;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--brand-navy)}
.timeline li.is-pending::before{border-color:var(--line-strong);border-style:dashed}
.timeline time,.timeline .when{display:block;font-weight:700;color:var(--ink)}
.timeline .pending{font-family:var(--font-display);font-style:italic;color:var(--ink-2);font-weight:400}
.timeline p{margin:.2rem 0 .5rem;color:var(--ink-2)}
.ics-btn{display:inline-flex;align-items:center;gap:.35rem;min-height:36px;padding:.25rem .8rem;border:1.5px solid var(--line-strong);border-radius:var(--r-pill);background:#fff;font:620 .85rem var(--font-ui);color:var(--brand-navy)}
.ics-btn:hover{border-color:var(--brand-navy)}

/* Steps (E-04): a true sequence, so numbered */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
@media (min-width:860px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{margin:0;padding:1.5rem;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;display:flex;flex-direction:column;gap:.5rem}
.steps .step-n{font:400 2.6rem/1 var(--font-display);color:var(--brand-navy)}
.steps h3{margin:0}
.steps p{margin:0;color:var(--ink-2)}
.steps .btn,.steps a.link-strong{margin-top:auto;align-self:flex-start}

/* FAQ (E-06) */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;position:relative;padding:1.1rem 3rem 1.1rem 0;font:650 1.075rem/1.4 var(--font-ui);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.35rem;top:50%;transform:translateY(-50%);font:400 1.7rem/1 var(--font-display);color:var(--brand-navy)}
.faq details[open] summary::after{content:"\2013"}
.faq summary:hover{color:var(--brand-navy)}
.faq__a{padding:0 0 1.3rem;max-width:70ch;color:var(--ink)}
.faq__a p:last-child{margin-bottom:0}
.faq-group+.faq-group{margin-top:2.5rem}
.faq-group h2{font-size:clamp(1.4rem,2.4vw,1.75rem)}

/* Notices and empty states */
.notice{border-left:4px solid var(--brand-navy);background:var(--mist);padding:1rem 1.25rem;border-radius:0 var(--r-in) var(--r-in) 0;margin:0 0 1.25rem}
.notice p:last-child{margin-bottom:0}
.notice--warn{border-color:var(--warn);background:var(--warn-bg)}
.notice--ok{border-color:var(--ok);background:var(--ok-bg)}
.notice--err{border-color:var(--err);background:var(--err-bg)}
.notice h2,.notice h3{font:700 1rem var(--font-ui);margin:0 0 .3rem}
.empty{border:1.5px dashed var(--line-strong);border-radius:var(--r-md);padding:1.5rem;background:var(--mist)}
.empty p{margin:0;color:var(--ink-2)}
.empty p+p{margin-top:.5rem}

/* Year-round calendar bar */
.yearbar{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:1.25rem 1rem 1rem}
.yearbar svg{width:100%;height:auto}
.yearbar .mo{font:600 11px var(--font-ui);fill:var(--ink-2)}
.yearbar .school{fill:var(--brand-navy)}
.yearbar .off{fill:var(--navy-200)}
.yearbar .summer{fill:#e7ecf4}
.yearbar-legend{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.875rem;color:var(--ink-2);margin:.75rem 0 0;list-style:none;padding:0}
.yearbar-legend li{margin:0;display:inline-flex;align-items:center;gap:.45rem}
.yearbar-legend i{width:14px;height:14px;border-radius:3px;display:inline-block}

/* People and contacts */
.people{display:grid;gap:1rem}
@media (min-width:700px){.people{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.people{grid-template-columns:repeat(3,1fr)}}
.person{border:1px solid var(--line);border-radius:var(--r-md);padding:1.35rem;background:#fff}
.person__role{font:650 .85rem var(--font-ui);color:var(--ink-2);margin:0 0 .25rem}
.person h3{font-size:1.4rem;margin:0 0 .35rem}
.person p{margin:0 0 .35rem;color:var(--ink-2)}
.contact-cards{display:grid;gap:1rem}
@media (min-width:700px){.contact-cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.contact-cards{grid-template-columns:repeat(4,1fr)}}
.contact-card{border:1px solid var(--line);border-radius:var(--r-md);padding:1.25rem;background:#fff;font-style:normal;display:flex;flex-direction:column;gap:.4rem}
.contact-card h3{font-size:1.3rem;margin:0}
.contact-card p{margin:0}
.contact-card .muted{font-size:.925rem}
.contact-card a{font-weight:600}

/* Compare table and nearest-campus finder */
.compare th[scope="row"]{white-space:nowrap;color:var(--ink-2);font-size:.925rem;font-weight:650;background:#fff;position:sticky;left:0}
.compare td{min-width:190px}
.compare thead th{font:400 1.2rem var(--font-display);color:var(--brand-navy);background:#fff;white-space:normal}
.finder{border:1px solid var(--line);border-radius:var(--r-md);padding:1.25rem;background:#fff}
.finder__result{margin-top:1rem;padding:1rem 1.25rem;background:var(--mist);border-radius:var(--r-in)}
.finder__result h3{font-size:1.35rem;margin:0 0 .25rem}
.town-list{columns:2 12rem;column-gap:2rem;list-style:none;padding:0;margin:0}
.town-list li{break-inside:avoid;margin:0 0 .5rem}
.town-list b{font-weight:650}

/* Search */
.search-box{display:flex;gap:.5rem;flex-wrap:wrap}
.search-box input{flex:1 1 260px}
.search-results{list-style:none;margin:1.5rem 0 0;padding:0}
.search-results li{margin:0;padding:1rem 0;border-bottom:1px solid var(--line)}
.search-results a{font:400 1.3rem var(--font-display)}
.search-results p{margin:.25rem 0 0;color:var(--ink-2)}
.search-results mark{background:var(--navy-100);color:inherit;padding:0 .1em;border-radius:3px}

/* Sitemap */
.sitemap{columns:1;column-gap:3rem}
@media (min-width:760px){.sitemap{columns:2}}
@media (min-width:1100px){.sitemap{columns:3}}
.sitemap section{break-inside:avoid;margin-bottom:2rem}
.sitemap h2{font-size:1.35rem}
.sitemap ul{list-style:none;padding:0;margin:0}

/* Three Laws numerals and pledge */
.law{display:grid;gap:1rem 2.5rem;padding:clamp(2rem,4vw,3rem) 0;border-top:1px solid var(--line)}
@media (min-width:900px){.law{grid-template-columns:180px 1fr}}
.law__numeral{font:400 clamp(4rem,9vw,7rem)/.9 var(--font-display);color:var(--brand-navy)}
.law__name{font:650 .95rem var(--font-ui);color:var(--ink-2);margin:0 0 .5rem}
.law blockquote{margin:0 0 1rem;font:400 clamp(1.45rem,2.6vw,2rem)/1.3 var(--font-display);color:var(--ink)}
.pledge{counter-reset:pl;list-style:none;margin:0;padding:0}
.pledge li{counter-increment:pl;font:400 clamp(1.2rem,2.2vw,1.55rem)/1.35 var(--font-display);padding:.55rem 0 .55rem 3rem;position:relative;margin:0;border-bottom:1px solid rgba(255,255,255,.14)}
.pledge li::before{content:counter(pl);position:absolute;left:0;top:.7rem;font:600 .95rem var(--font-ui);color:var(--brand-accent)}
.virtues{display:grid;gap:1rem}
@media (min-width:700px){.virtues{grid-template-columns:repeat(4,1fr)}}
.virtue{border-top:2px solid var(--brand-navy);padding-top:.75rem}
.virtue h3{margin:0 0 .25rem;font-size:1.35rem}
.virtue p{margin:0;color:var(--ink-2)}

/* ==========================================================================
   05 Forms (Q-01, Q-02), Family Account portal (Section 12), staff console
   (Section 13)
   ========================================================================== */
.field{display:grid;gap:.4rem;margin:0 0 1.25rem}
.field>label,.field legend,.label{font-weight:650;font-size:1rem;color:inherit}
.field .req{font-weight:500;font-size:.875rem;color:var(--ink-2)}
.hint{font-size:.9rem;color:var(--ink-2);margin:0;line-height:1.45}
fieldset{border:0;margin:0 0 1.25rem;padding:0;min-width:0}
legend{padding:0;margin-bottom:.45rem}
input[type="text"],input[type="email"],input[type="tel"],input[type="search"],input[type="password"],input[type="number"],input[type="date"],select,textarea{width:100%;min-height:48px;padding:.7rem .9rem;border:1.5px solid #8f9bb0;border-radius:var(--r-in);background:#fff;color:var(--ink);font-size:1rem;line-height:1.3;-webkit-appearance:none;appearance:none}
textarea{min-height:120px;resize:vertical}
select{padding-right:2.4rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23112c56' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center}
input:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}
[aria-invalid="true"]{border-color:var(--err)!important;background-color:#fffafa}
.error-text{display:flex;gap:.35rem;align-items:flex-start;color:var(--err);font-weight:650;font-size:.925rem;margin:0}
.modal__form .error-text{color:#ffd6d3}
input[type="checkbox"],input[type="radio"]{width:22px;height:22px;accent-color:var(--brand-navy);margin:0;flex-shrink:0}
.check{display:flex;gap:.75rem;align-items:flex-start;font-weight:500;line-height:1.45}
.check input{margin-top:.1rem}
.choice-list{display:grid;gap:.6rem}
.choice{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem 1rem;border:1.5px solid var(--line-strong);border-radius:var(--r-in);background:#fff;cursor:pointer}
.choice:hover{border-color:var(--brand-navy)}
.choice:has(input:checked){border-color:var(--brand-navy);background:var(--navy-50)}
.choice.is-disabled{opacity:.6;cursor:not-allowed}
.choice b{display:block}
.choice span{display:block;font-size:.9rem;color:var(--ink-2)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:.45rem 1rem;border:1.5px solid var(--line-strong);border-radius:var(--r-pill);background:#fff;color:var(--ink);font-weight:600;font-size:.95rem;cursor:pointer;user-select:none}
.chip input:checked+span{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.chip input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.modal__form .chip span{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.modal__form .chip input:checked+span{background:#fff;color:var(--brand-navy);border-color:#fff}
.modal__form input[type="text"],.modal__form input[type="email"],.modal__form input[type="tel"],.modal__form select{border-color:#fff}
.dob{display:grid;grid-template-columns:1.5fr 1fr 1.15fr;gap:.5rem}
.row-2{display:grid;gap:0 1rem}
@media (min-width:640px){.row-2{grid-template-columns:1fr 1fr}}
.row-3{display:grid;gap:0 1rem}
@media (min-width:640px){.row-3{grid-template-columns:2fr 1fr 1fr}}
.error-summary{border:2px solid var(--err);border-radius:var(--r-md);padding:1rem 1.25rem;background:var(--err-bg);margin:0 0 1.5rem}
.error-summary h2{font:700 1.05rem var(--font-ui);color:var(--err);margin:0 0 .5rem}
.error-summary ul{margin:0;padding-left:1.2rem}
.error-summary a{color:var(--err);font-weight:650}
.form-status{min-height:1.4em;margin:.75rem 0 0;font-weight:600}
.form-status.is-ok{color:var(--ok)}
.form-status.is-err{color:var(--err)}
.consent{font-size:.85rem;line-height:1.45}

/* Portal (Family Account) */
.portal-shell{background:var(--mist);min-height:60vh}
.portal{display:grid;gap:2rem;padding-block:clamp(1.5rem,4vw,3rem) clamp(3rem,6vw,5rem)}
@media (min-width:1024px){.portal{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}
.portal-main{min-width:0;min-height:560px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.25rem,3.5vw,2.25rem)}
.panel+.panel{margin-top:1.25rem}
.panel h1{font-size:clamp(1.9rem,3.6vw,2.6rem)}
.panel h2{font-size:clamp(1.4rem,2.6vw,1.8rem)}
.panel--flat{background:transparent;border:0;padding:0}
.portal-aside .panel{padding:1.35rem}
.portal-aside h2{font:700 1rem var(--font-ui);margin:0 0 .5rem}
.portal-aside p,.portal-aside li{font-size:.925rem;color:var(--ink-2)}
.demo-banner{display:flex;gap:.75rem;align-items:flex-start;background:var(--warn-bg);border:1px solid #e9cf8c;border-radius:var(--r-md);padding:.85rem 1rem;font-size:.925rem;margin-bottom:1.25rem}
.demo-banner b{color:#6d4b00}
.save-status{display:flex;align-items:center;gap:.5rem;min-height:28px;font-size:.9rem;color:var(--ink-2);margin:0 0 1rem}
.save-status::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ok);flex-shrink:0}
.save-status[data-state="saving"]::before{background:var(--warn);animation:pulse 1s infinite ease-in-out}
.save-status[data-state="error"],.save-status[data-state="offline"]{color:var(--err)}
.save-status[data-state="error"]::before,.save-status[data-state="offline"]::before{background:var(--err)}
.save-status[data-state="idle"]::before{background:var(--line-strong)}
@keyframes pulse{50%{opacity:.35}}
.progress{display:flex;gap:4px;margin:.25rem 0 .6rem}
.progress span{flex:1;height:6px;border-radius:3px;background:var(--line)}
.progress span.is-done{background:var(--brand-navy)}
.progress span.is-current{background:var(--navy-400)}
.step-label{font:650 .925rem var(--font-ui);color:var(--ink-2);margin:0}
.form-nav{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.form-nav .btn-row{margin-left:auto}
.status-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border-radius:var(--r-pill);font:700 .8125rem var(--font-ui);background:var(--mist);color:var(--ink);white-space:nowrap}
.status-chip--draft{background:var(--warn-bg);color:#6d4b00}
.status-chip--submitted,.status-chip--in_lottery,.status-chip--verifying,.status-chip--late_submitted{background:var(--navy-100);color:var(--brand-navy)}
.status-chip--offered,.status-chip--no_lottery_needed{background:var(--ok-bg);color:var(--ok)}
.status-chip--accepted,.status-chip--registration,.status-chip--enrolled{background:var(--ok);color:#fff}
.status-chip--waitlisted{background:#f1ecfb;color:#4b2f8a}
.status-chip--declined,.status-chip--expired,.status-chip--withdrawn{background:#eceef2;color:var(--ink-2)}
.app-card{border:1px solid var(--line);border-radius:var(--r-md);padding:1.1rem 1.25rem;display:grid;gap:.5rem;background:#fff}
.app-card+.app-card{margin-top:.75rem}
.app-card__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;align-items:center}
.app-card h3{font-size:1.3rem;margin:0}
.app-card p{margin:0;color:var(--ink-2);font-size:.95rem}
.child-block+.child-block{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.kv{display:grid;grid-template-columns:minmax(8rem,34%) 1fr;gap:.35rem 1rem;margin:0}
.kv dt{color:var(--ink-2);font-weight:600;font-size:.95rem}
.kv dd{margin:0}
.review-section{border:1px solid var(--line);border-radius:var(--r-md);padding:1.1rem 1.25rem;margin-bottom:1rem}
.review-section__head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;margin-bottom:.75rem}
.review-section__head h3{font:700 1.05rem var(--font-ui);margin:0}
.attest{border:2px solid var(--brand-navy);border-radius:var(--r-md);padding:1.25rem;background:var(--navy-50)}
.code-input{font:600 1.6rem/1 var(--font-ui)!important;letter-spacing:.35em;text-align:center;max-width:15rem}
.big-ref{font:400 clamp(1.6rem,3vw,2.2rem) var(--font-display);color:var(--brand-navy);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{position:relative;padding:.5rem 0 .5rem 2rem;border-bottom:1px solid var(--line);margin:0}
.checklist li::before{content:"";position:absolute;left:0;top:.75rem;width:18px;height:18px;border-radius:5px;border:2px solid var(--brand-navy)}
.toast{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);z-index:80;max-width:min(560px,calc(100% - 2rem));background:var(--ink);color:#fff;padding:.85rem 1.1rem;border-radius:var(--r-in);box-shadow:var(--shadow-pop);font-size:.95rem}
.toast a{color:#fff}

/* Staff console */
.admin-body{background:var(--mist)}
.admin{display:grid;min-height:100vh}
@media (min-width:1000px){.admin{grid-template-columns:240px minmax(0,1fr)}}
.admin-side{background:var(--brand-navy);color:#fff;padding:1.25rem 1rem}
.admin-side a{color:#fff;text-decoration:none;display:block;padding:.6rem .75rem;border-radius:8px;font-weight:600}
.admin-side a:hover,.admin-side a[aria-current="page"]{background:rgba(255,255,255,.12)}
.admin-side .brand-mini{font-family:var(--font-display);font-size:1.15rem;margin:0 0 1.25rem;padding:0 .75rem}
.admin-side ul{list-style:none;padding:0;margin:0}
.admin-side li+li{margin-top:.15rem}
.admin-main{padding:clamp(1rem,3vw,2rem);min-width:0}
.admin-main h1{font-size:clamp(1.8rem,3vw,2.3rem)}
.kpis{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:1.5rem}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1rem 1.1rem}
.kpi b{display:block;font:400 2rem/1.1 var(--font-display);color:var(--brand-navy)}
.kpi span{font-size:.875rem;color:var(--ink-2)}
.admin table{font-size:.925rem;background:#fff}
.admin th,.admin td{padding:.6rem .75rem}
.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1rem}
.toolbar .field{margin:0;min-width:160px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;word-break:break-all}
.seat-input{width:5rem!important;min-height:40px!important;padding:.35rem .5rem!important}
.admin .panel+.panel{margin-top:1rem}
.portal-aside .glance dl>div{grid-template-columns:1fr;gap:.15rem}

/* ==========================================================================
   07 V4 brand layer: Liberty red for enrollment actions, honors gold for
   recognition, header and footer accents, interior heroes and kickers,
   plaque rows, tables and the heat map, charts, recognition timeline,
   steps, cursor labels (styles adapted from Cuberto Mouse Follower, MIT)
   ========================================================================== */
/* Red is reserved for the state-aware enrollment actions (Apply, Get reminders) */
.btn[data-state-cta]:not(.btn--outline):not(.btn--ghost-light){background:var(--brand-red);border-color:var(--brand-red);color:#fff;box-shadow:0 10px 22px -12px rgba(228,0,43,.8)}
.btn[data-state-cta]:not(.btn--outline):not(.btn--ghost-light):hover{background:var(--brand-red-deep);border-color:var(--brand-red-deep)}
.btn--arrow svg{width:1.15rem;height:1.15rem;flex:0 0 auto;transition:transform .2s ease}
.btn--arrow:hover svg{transform:translateX(3px)}
a:hover{text-decoration-color:var(--brand-red)}
.site-header a:hover,.btn:hover{text-decoration-color:currentColor}
.oe-bar{border-top:3px solid var(--brand-red)}
.nav__link[aria-current="page"],.nav__link.is-current{box-shadow:inset 0 -2px 0 var(--brand-red)}
@media (max-width:1023px){.nav__link[aria-current="page"],.nav__link.is-current{box-shadow:inset 3px 0 0 var(--brand-red)}}
.site-footer{border-top:3px solid var(--brand-red)}
.kicker{font:700 .78rem/1.35 var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--red-ink);margin:0 0 .95rem}

/* Interior page heroes: a quiet drawn laurel ties every page to the honors band */
.page-hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#f7f9fc 100%)}
.page-hero--mist{background:var(--mist)}
.page-hero>.container{position:relative;z-index:1}
@media (min-width:960px){.page-hero:not(:has(.plaque-row))::after{content:"";position:absolute;right:max(1.5rem,calc((100% - var(--container)) / 2));top:50%;width:17rem;height:11.5rem;transform:translateY(-50%);background:var(--brand-navy);-webkit-mask:var(--laurel-mask) center/contain no-repeat;mask:var(--laurel-mask) center/contain no-repeat;opacity:.06;pointer-events:none}}

/* Plaques outside the podium */
.plaque-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:1.25rem}
.page-hero .plaque-row{gap:.9rem}
.page-hero .plaque{--pw:10.5rem}
.page-hero .plaque--sm{--pw:8.25rem}
.honor-inline{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.25rem}
.honor-inline .plaque{flex:0 0 auto}
.honor-inline .stat-caption{flex:1 1 9rem}

/* Honors chips: gold marks earned recognition; plain facts stay navy */
.proof{display:inline-flex;align-items:center;gap:.45rem;align-self:flex-start;font:650 .85rem/1.3 var(--font-ui);color:#6a4f1c;background:#f8f1e1;box-shadow:inset 0 0 0 1px rgba(185,145,73,.5);border-radius:var(--r-pill);padding:.38rem .85rem}
.proof svg{width:14px;height:14px;flex-shrink:0;color:#a47b35}
.proof--plain{color:var(--brand-navy);background:var(--navy-50);box-shadow:none}

/* Tables and the End-of-Grade heat map: a magnitude bar under every value */
.table-wrap{border-radius:14px;box-shadow:var(--shadow-card)}
@media (min-width:900px){#north-carolina .split{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}}
thead th{background:var(--navy-50);color:var(--brand-navy)}
.heat td.num[style]{position:relative;padding-bottom:1.2rem}
.heat td.num[style]::after{content:"";position:absolute;left:1rem;right:1rem;bottom:.6rem;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--navy-400) calc(var(--v) * 1%),var(--line) 0)}
.heat td.is-above[style]::after{background:linear-gradient(90deg,#fff calc(var(--v) * 1%),rgba(255,255,255,.22) 0)}
.heat tr.is-ref td.num[style]::after{background:linear-gradient(90deg,var(--ink-2) calc(var(--v) * 1%),var(--line-strong) 0)}
.chart{border-radius:14px;box-shadow:var(--shadow-card)}
.chart .line{stroke-width:3.25}

/* Recognition timeline markers in honors gold; enrollment steps numbered in red */
#recognition .timeline li::before{border-color:var(--gold-mid);background:radial-gradient(circle,var(--gold) 0 4px,#fff 4.5px)}
.steps li{border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
.steps .step-n{color:var(--brand-red);font-weight:700}

/* Cursor labels (enhance.js, mouse only). Adapted from Cuberto Mouse Follower styles (MIT). */
.mf-cursor{position:fixed;top:0;left:0;z-index:250;direction:ltr;contain:layout style size;pointer-events:none;color:var(--brand-red);transition:opacity .3s,color .4s}
.mf-cursor::before{content:"";position:absolute;top:-24px;left:-24px;display:block;width:48px;height:48px;transform:scale(.2);background:currentColor;border-radius:50%;box-shadow:0 12px 28px -10px rgba(228,0,43,.7);transition:transform .25s ease-in-out,opacity .1s}
.mf-cursor.-text::before{opacity:1;transform:scale(1.8)}
.mf-cursor.-text.-active::before{transform:scale(1.65);transition-duration:.2s}
.mf-cursor.-hidden::before{transform:scale(0)}
.mf-cursor-text{position:absolute;top:-18px;left:-18px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transform:scale(0) rotate(10deg);opacity:0;color:#fff;font:700 13px/1 var(--font-ui);letter-spacing:.02em;text-align:center;transition:opacity .4s,transform .3s}
.mf-cursor.-text .mf-cursor-text{opacity:1;transform:scale(1)}
.is-clickable{cursor:pointer}

/* Reduced motion and print for the V4 components */
@media (prefers-reduced-motion:reduce){.js .podium.reveal:not(.is-seen) .plaque{opacity:1;transform:none}.js .reveal:not(.is-seen) .bar-row__value{opacity:1}}
html.reduced-motion .podium .plaque{opacity:1!important;transform:none!important}
html.reduced-motion .reveal:not(.is-seen) .bar-row__value{opacity:1}
@media print{.honor-roll__toggle,.strip-nav,.mf-cursor{display:none!important}.honor-roll__list{display:block!important;width:auto!important;transform:none!important}.awards{background:#fff;color:#000}.awards h2,.awards__sub{color:#000}}

/* ==========================================================================
   06 Motion, reduced motion (F-13, Q-01) and print
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal:not(.is-seen) .bar{-webkit-clip-path:inset(0 0 0 0 round 999px);clip-path:inset(0 0 0 0 round 999px)}
}
html.reduced-motion .js .reveal:not(.is-seen) .bar,html.reduced-motion .reveal:not(.is-seen) .bar{-webkit-clip-path:inset(0 0 0 0 round 999px);clip-path:inset(0 0 0 0 round 999px)}
@media print{
  .oe-bar,.site-header,.site-footer,.sticky-cta,.preview-tools,.hero__pause,dialog,.cta-band,.switcher,.source-chip,.skip-link{display:none!important}
  body{font-size:11pt;color:#000}
  a{color:#000}
  .prose a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt}
  .section{padding-block:1.25rem}
  .campus-view[hidden]{display:block!important}
}

.no-js form[data-lead-form]{display:none}
