
:root{
  --ink:#16232e; --ink-soft:#3d4c5a; --navy:#0f2a43; --navy-deep:#0a1c2e;
  --stone:#f5f1e9; --stone-deep:#e9e2d3; --paper:#fbfaf6; --line:#d8d1c0;
  --accent:#8a6d3b;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px;scroll-behavior:smooth}
body{font-family:Charter,'Spectral',Georgia,'Times New Roman',serif;
  color:var(--ink);background:var(--paper);line-height:1.65;
  -webkit-font-smoothing:antialiased}
.wrap{max-width:1060px;margin:0 auto;padding:0 1.5rem}
a{color:var(--navy);text-decoration:none}
a:hover{text-decoration:underline}
/* header */
header{background:var(--paper);border-bottom:1px solid var(--line)}
.masthead{display:flex;align-items:center;gap:.9rem;padding:1.1rem 0}
.crest{flex:0 0 auto}
.inst{font-variant:small-caps;letter-spacing:.06em;font-size:1.15rem;font-weight:700;color:var(--navy);line-height:1.15}
.inst small{display:block;font-variant:normal;letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;color:var(--accent);font-family:inherit}
nav{border-top:1px solid var(--line)}
nav .wrap{display:flex;flex-wrap:wrap;gap:.2rem 1.4rem;padding-top:.55rem;padding-bottom:.55rem;
  font-family:'Helvetica Neue',Arial,sans-serif;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase}
nav a{color:var(--ink-soft);padding:.25rem 0}
nav a.on{color:var(--navy);border-bottom:2px solid var(--accent)}
/* hero */
.hero{background:var(--navy);color:#eef2f5;padding:4.2rem 0 4.6rem;
  background-image:linear-gradient(160deg,var(--navy-deep) 0%,var(--navy) 62%,#15375a 100%)}
.hero .kicker{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:#c8b486;margin-bottom:1.1rem}
.hero h1{font-size:2.45rem;font-weight:600;line-height:1.22;max-width:22em;color:#fff}
.hero p.lede{margin-top:1.1rem;max-width:44em;color:#c9d4de;font-size:1.05rem}
.hero .cta{margin-top:2rem;display:flex;gap:.9rem;flex-wrap:wrap}
.btn{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.75rem 1.4rem;border:1px solid #c8b486;color:#e9dfc8;text-decoration:none}
.btn.solid{background:#c8b486;color:var(--navy-deep)}
.btn:hover{text-decoration:none;opacity:.9}
/* sections */
section.band{padding:3.4rem 0;border-bottom:1px solid var(--line)}
section.band.tint{background:var(--stone)}
h2{font-size:1.65rem;font-weight:600;color:var(--navy);margin-bottom:.9rem}
h2 .rule{display:block;width:3rem;height:3px;background:var(--accent);margin-bottom:.85rem}
.kicker2{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);margin-bottom:.7rem}
p+p{margin-top:.9rem}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.4rem;margin-top:1.6rem}
.card{background:var(--paper);border:1px solid var(--line);padding:1.5rem;position:relative}
section.tint .card{background:#fff}
.card h3{font-size:1.12rem;color:var(--navy);margin-bottom:.5rem;font-weight:600}
.card .meta{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);margin:.55rem 0 .3rem}
.card .tuition{font-size:1.25rem;color:var(--navy);font-weight:600}
.tag{display:inline-block;font-family:'Helvetica Neue',Arial,sans-serif;font-size:.66rem;
  letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);
  padding:.18rem .55rem;margin-top:.7rem}
.note{font-size:.92rem;color:var(--ink-soft);background:var(--stone);border-left:3px solid var(--accent);
  padding:1rem 1.2rem;margin-top:1.6rem}
section.tint .note{background:#fff}
/* tables */
table{width:100%;border-collapse:collapse;margin-top:1.4rem;font-size:.95rem}
th{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);text-align:left;padding:.6rem .8rem;border-bottom:2px solid var(--line)}
td{padding:.75rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}
/* faculty */
.fcard{display:flex;gap:1.2rem;align-items:flex-start;padding:1.4rem 0;border-bottom:1px solid var(--line)}
.avatar{flex:0 0 auto;width:64px;height:64px;border-radius:50%;background:var(--stone-deep);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
  font-variant:small-caps;font-size:1.25rem;color:var(--navy);font-weight:700}
.fcard h3{font-size:1.12rem;color:var(--navy);font-weight:600}
.fcard .role{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent);margin:.2rem 0 .5rem}
.fcard p{font-size:.95rem;color:var(--ink-soft)}
dl.spec{margin-top:1.2rem}
dl.spec dt{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-top:1.2rem}
dl.spec dd{margin-top:.25rem}
/* footer */
footer{background:var(--navy-deep);color:#9fb0bf;padding:2.6rem 0;font-size:.85rem}
footer a{color:#d5dde4}
footer .fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.6rem}
footer h4{font-family:'Helvetica Neue',Arial,sans-serif;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:#c8b486;margin-bottom:.6rem;font-weight:600}
footer .fine{margin-top:2rem;padding-top:1.2rem;border-top:1px solid #1e3a52;font-size:.78rem;color:#7e93a5}
@media(max-width:640px){.hero h1{font-size:1.8rem}html{font-size:16px}}
