:root{
  --skin:#E5ECF4; --flesh:#FFFFFF; --seed:#233979; --stem:#004990; --ripeness:#43B4DF; --juice:#DA5026;
  --ink:#1B262C; --pale:#C6E8F5; --paper:var(--flesh); --ground:var(--skin);
  --line:color-mix(in srgb, var(--seed) 22%, var(--flesh)); --line-strong:var(--seed);
  --font-display:"Merriweather",Georgia,serif; --font-sans:"Montserrat",Arial,sans-serif;
  --fs-hero:2.15rem; --fs-h2:1.55rem; --fs-h3:1.08rem; --fs-body:1rem; --fs-small:.88rem; --fs-index:.78rem;
  --lh-body:1.65; --lh-tight:1.25; --weight-regular:400; --weight-medium:600; --weight-bold:700; --weight-black:900;
  --s1:.5rem; --s2:.75rem; --s3:1rem; --s4:1.5rem; --s5:2rem; --s6:3rem; --s7:4rem;
  --radius-s:4px; --radius-m:8px; --radius-pill:999px;
  --max:1120px; --tap:44px; --motion-fast:160ms ease; --motion-med:260ms ease;
  --shadow:0 1px 0 var(--line);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);background:var(--ground);font-variant-numeric:tabular-nums}
img{max-width:100%;display:block}
a{color:var(--stem);transition:color var(--motion-fast)}
a:hover{color:var(--seed)}
:focus-visible{outline:3px solid var(--ripeness);outline-offset:2px}
.wrap{width:min(100% - var(--s4),var(--max));margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:var(--s3);top:var(--s3);background:var(--flesh);padding:var(--s2);z-index:99}
.site-header{background:var(--flesh);border-bottom:2px solid var(--line-strong);position:sticky;top:0;z-index:50}
.header-in{display:flex;align-items:center;gap:var(--s3);min-height:72px;padding-top:env(safe-area-inset-top)}
.brand{display:flex;align-items:center;gap:var(--s2);text-decoration:none;color:var(--ink);min-height:var(--tap)}
.brand img{width:44px;height:auto}
.brand strong{font-family:var(--font-display);font-weight:var(--weight-black);color:var(--seed);display:block;line-height:var(--lh-tight)}
.brand span{font-size:var(--fs-index);letter-spacing:.08em;text-transform:uppercase;color:var(--stem)}
.main-nav{margin-left:auto;display:none}
.main-nav ul{list-style:none;display:flex;gap:var(--s1);margin:0;padding:0}
.main-nav a{display:flex;align-items:center;min-height:var(--tap);padding:var(--s1) var(--s2);text-decoration:none;font-weight:var(--weight-medium);font-size:var(--fs-small);border-bottom:3px solid transparent}
.main-nav a[aria-current="page"]{border-bottom-color:var(--juice);color:var(--seed)}
.menu-btn{margin-left:auto;min-width:var(--tap);min-height:var(--tap);background:var(--seed);color:var(--flesh);border:0;border-radius:var(--radius-s);font-family:var(--font-sans);font-weight:var(--weight-bold);cursor:pointer;padding:var(--s2)}
.mobile-menu{display:none;background:var(--seed);padding:var(--s3) 0 calc(var(--s3) + env(safe-area-inset-bottom))}
.mobile-menu.open{display:block}
.mobile-menu a{display:flex;align-items:center;min-height:var(--tap);color:var(--flesh);text-decoration:none;padding:var(--s1) 0;border-bottom:1px solid var(--stem);font-weight:var(--weight-medium)}
@media(min-width:900px){.main-nav{display:block}.menu-btn,.mobile-menu{display:none!important}}
.hero{background:var(--seed);color:var(--flesh);padding:var(--s6) 0;border-bottom:6px solid var(--juice)}
.hero .kicker,.kicker{font-size:var(--fs-index);letter-spacing:.14em;text-transform:uppercase;font-weight:var(--weight-bold)}
.hero .kicker{color:var(--ripeness)}
.hero h1{font-family:var(--font-display);font-size:var(--fs-hero);line-height:var(--lh-tight);font-weight:var(--weight-black);margin:var(--s2) 0;max-width:22ch}
.hero p{max-width:62ch;margin:0}
.hero .meta{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.chip{display:inline-flex;align-items:center;min-height:32px;padding:var(--s1) var(--s2);border:1px solid currentColor;border-radius:var(--radius-pill);font-size:var(--fs-small);font-weight:var(--weight-bold)}
.hero .chip{color:var(--flesh);border-color:var(--ripeness)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:var(--s2) var(--s4);border-radius:var(--radius-s);text-decoration:none;font-weight:var(--weight-bold);border:2px solid var(--seed);background:var(--seed);color:var(--flesh);transition:all var(--motion-fast)}
.btn.alt{background:var(--flesh);color:var(--seed)}
.btn.juice{background:var(--juice);border-color:var(--juice);color:var(--flesh)}
main{background:var(--flesh)}
.crumbs{padding:var(--s3) 0 0;font-size:var(--fs-small)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s1);margin:0;padding:0}
.crumbs li+li:before{content:"/";margin-right:var(--s1);color:var(--stem)}
.crumbs a{min-height:var(--tap);display:inline-flex;align-items:center}
.section{padding:var(--s5) 0;border-bottom:1px solid var(--line)}
.sec-head{display:flex;gap:var(--s3);align-items:baseline;border-bottom:3px solid var(--line-strong);padding-bottom:var(--s2);margin-bottom:var(--s4)}
.sec-index{font-family:var(--font-display);font-weight:var(--weight-black);color:var(--juice);font-size:var(--fs-h2);font-variant-numeric:tabular-nums}
.sec-head h2{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-tight);color:var(--seed);margin:0}
.sec-head p{margin:var(--s1) 0 0}
.grid{display:grid;gap:var(--s3);grid-template-columns:1fr}
@media(min-width:700px){.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grid.four{grid-template-columns:repeat(4,1fr)}}
.entry{border:1px solid var(--line);border-top:4px solid var(--stem);border-radius:var(--radius-m);padding:var(--s4);background:var(--flesh);box-shadow:var(--shadow)}
.entry h3{font-family:var(--font-display);color:var(--seed);font-size:var(--fs-h3);margin:0 0 var(--s2);line-height:var(--lh-tight)}
.entry p,.entry li{font-size:var(--fs-small)}
.entry p{margin:0 0 var(--s2)}
ul.clean{margin:0;padding-left:1.1rem}ul.clean li{margin-bottom:var(--s1)}
.register{border:1px solid var(--line-strong);border-radius:var(--radius-m);overflow:hidden}
.register-row{display:grid;grid-template-columns:64px 1fr;gap:var(--s3);padding:var(--s3);border-bottom:1px solid var(--line);background:var(--flesh)}
.register-row:nth-child(even){background:var(--skin)}
.register-row:last-child{border-bottom:0}
.register-no{font-family:var(--font-display);font-weight:var(--weight-black);color:var(--stem);font-variant-numeric:tabular-nums}
.register-row h3{margin:0 0 var(--s1);font-size:var(--fs-h3);color:var(--seed)}
.register-row p{margin:0;font-size:var(--fs-small)}
figure.campus{margin:0;border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;background:var(--flesh)}
figure.campus img{width:100%;aspect-ratio:340/162;object-fit:cover}
figure.campus figcaption{padding:var(--s2) var(--s3);font-size:var(--fs-small);font-weight:var(--weight-medium);border-top:3px solid var(--ripeness)}
figure.campus figcaption span{display:block;font-weight:var(--weight-regular);color:var(--stem);font-size:var(--fs-index);letter-spacing:.06em;text-transform:uppercase}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:var(--fs-small)}
caption{text-align:left;font-family:var(--font-display);font-weight:var(--weight-bold);color:var(--seed);padding:var(--s2) 0}
th,td{padding:var(--s2) var(--s3);border:1px solid var(--line);text-align:left;vertical-align:top}
th{background:var(--seed);color:var(--flesh)}
td.num{text-align:right;font-weight:var(--weight-bold)}
.table-scroll{overflow-x:auto}
.stat{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3)}
@media(min-width:700px){.stat{grid-template-columns:repeat(4,1fr)}}
.stat div{border-top:4px solid var(--juice);padding-top:var(--s2)}
.stat strong{font-family:var(--font-display);font-size:var(--fs-h2);color:var(--seed);display:block;font-variant-numeric:tabular-nums}
.stat span{font-size:var(--fs-small)}
.note{border-left:5px solid var(--juice);background:var(--skin);padding:var(--s4);border-radius:0 var(--radius-m) var(--radius-m) 0}
.note strong{color:var(--seed)}
.next-step{background:var(--seed);color:var(--flesh);padding:var(--s5) 0}
.next-step h2{font-family:var(--font-display);margin:0 0 var(--s2);font-size:var(--fs-h2)}
.next-step p{max-width:62ch}
.next-step .btn{margin-top:var(--s2)}
.site-footer{background:var(--ink);color:var(--flesh);padding:var(--s5) 0 calc(var(--s5) + env(safe-area-inset-bottom));font-size:var(--fs-small)}
.site-footer a{color:var(--pale);display:inline-flex;align-items:center;min-height:var(--tap)}
.footer-grid{display:grid;gap:var(--s4);grid-template-columns:1fr}
@media(min-width:800px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr}}
.site-footer h2,.site-footer h3{font-family:var(--font-display);color:var(--flesh);margin:0 0 var(--s2)}
.site-footer ul{list-style:none;margin:0;padding:0}
.concept{display:inline-flex;align-items:center;min-height:28px;padding:2px var(--s2);background:var(--juice);color:var(--flesh);border-radius:var(--radius-pill);font-weight:var(--weight-black);letter-spacing:.1em;font-size:var(--fs-index)}
.prototype-line{border-top:1px solid var(--stem);margin-top:var(--s4);padding-top:var(--s3)}
.lede{font-size:1.08rem;max-width:68ch}
.quote{font-family:var(--font-display);font-size:1.15rem;line-height:1.5;border-left:5px solid var(--ripeness);padding-left:var(--s4);margin:0}
.search-box{display:flex;flex-wrap:wrap;gap:var(--s2)}
.search-box label{flex-basis:100%;font-weight:var(--weight-bold)}
.search-box input{flex:1;min-height:var(--tap);padding:var(--s2);border:2px solid var(--seed);border-radius:var(--radius-s);font:inherit;min-width:200px}
.search-box button{min-height:var(--tap);padding:var(--s2) var(--s4);background:var(--stem);color:var(--flesh);border:0;border-radius:var(--radius-s);font:inherit;font-weight:var(--weight-bold);cursor:pointer}
