:root{--navy:#0f2b5b;--navy-2:#183a75;--gold:#c9a24a;--cream:#f7f3ea;--ink:#1c1c1c;--muted:#5b5a55;--line:#e6e2d6;--paper:#ffffff}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Source Sans 3','Helvetica Neue',Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55;font-size:16px}
h1,h2,h3,h4{font-family:'Playfair Display',Georgia,'Times New Roman',serif;color:var(--navy);font-weight:600;letter-spacing:.2px;margin:0 0 .5em}
h1{font-size:2.4rem;line-height:1.15}
h2{font-size:1.75rem}
h3{font-size:1.25rem}
p{margin:0 0 1em}
a{color:var(--navy-2);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px;margin:0 auto;padding:0 24px}

/* Top strip */
.topstrip{background:var(--navy);color:#e8ecf3;font-size:.85rem}
.topstrip .container{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;flex-wrap:wrap;gap:8px}
.topstrip a{color:#e8ecf3}

/* Header */
header.site{border-bottom:1px solid var(--line);background:#fff}
header.site .container{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;gap:24px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px}
.brand img{height:64px;width:auto;display:block}
.brand .wordmark{display:flex;flex-direction:column}
.brand .wordmark .n{font-family:'Playfair Display',Georgia,serif;color:var(--navy);font-size:1.35rem;font-weight:700;line-height:1}
.brand .wordmark .t{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:4px}
nav.primary{display:flex;gap:22px;flex-wrap:wrap}
nav.primary a{color:var(--ink);font-weight:500;font-size:.95rem;padding:6px 0;border-bottom:2px solid transparent}
nav.primary a:hover{border-bottom-color:var(--gold);text-decoration:none}
nav.primary a.active{border-bottom-color:var(--navy);color:var(--navy)}

/* Hero */
.hero{background:linear-gradient(135deg,#0f2b5b 0%,#1c3f80 100%);color:#fff;padding:80px 0 96px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(1200px 400px at 90% -20%,rgba(201,162,74,.35),transparent 60%);pointer-events:none}
.hero .container{position:relative;z-index:1}
.hero .eyebrow{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;font-weight:600;margin-bottom:14px}
.hero h1{color:#fff;font-size:3rem;max-width:780px}
.hero p.lede{font-size:1.15rem;max-width:640px;color:#e6ecf5;margin-top:12px}
.hero .cta{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 22px;border-radius:2px;font-weight:600;font-size:.95rem;letter-spacing:.03em}
.btn.gold{background:var(--gold);color:#20140a}
.btn.gold:hover{background:#d4b064;text-decoration:none}
.btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.6)}
.btn.ghost:hover{background:rgba(255,255,255,.1);text-decoration:none}

/* Sections */
section{padding:72px 0}
section.tint{background:var(--cream)}
.section-head{text-align:center;margin-bottom:48px}
.section-head .kicker{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:.78rem;font-weight:700;margin-bottom:10px}
.section-head h2{margin:0 auto;max-width:640px}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px}
.stat{text-align:center;padding:20px 12px;border-top:2px solid var(--gold)}
.stat .n{font-family:'Playfair Display',serif;color:var(--navy);font-size:2.2rem;font-weight:700;line-height:1}
.stat .l{font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:8px}

/* Pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.pillar{background:#fff;border:1px solid var(--line);padding:32px 28px;border-top:3px solid var(--navy)}
.pillar h3{margin-bottom:10px}
.pillar p{color:var(--muted);font-size:.95rem;margin:0}

/* News */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.newscard{background:#fff;border:1px solid var(--line)}
.newscard .thumb{background:var(--cream);height:160px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--navy);font-family:'Playfair Display',serif;font-size:1.5rem}
.newscard .body{padding:20px}
.newscard .date{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.newscard h3{font-size:1.1rem;margin-bottom:8px}
.newscard p{color:var(--muted);font-size:.9rem;margin:0}

/* Faculty grid */
.faculty{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.person{background:#fff;border:1px solid var(--line);padding:22px}
.person .avatar{width:72px;height:72px;border-radius:50%;background:var(--cream);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;color:var(--navy);font-size:1.5rem;font-weight:600;margin-bottom:14px;border:1px solid var(--line)}
.person h3{font-size:1.05rem;margin:0 0 4px}
.person .role{color:var(--gold);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.person p{font-size:.9rem;color:var(--muted);margin:0}

/* Two column */
.two{display:grid;grid-template-columns:2fr 1fr;gap:48px;align-items:start}
.sidecard{background:var(--cream);padding:28px;border-left:3px solid var(--gold)}
.sidecard h3{font-size:1.05rem;margin-bottom:12px}
.sidecard ul{margin:0;padding-left:18px;color:var(--muted);font-size:.95rem}
.sidecard li{margin-bottom:6px}

/* Table */
table.info{width:100%;border-collapse:collapse;margin:20px 0}
table.info th,table.info td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:.95rem}
table.info th{background:var(--cream);color:var(--navy);font-family:'Playfair Display',serif;font-weight:600}

/* Footer */
footer.site{background:#0a1f45;color:#c5cee0;padding:56px 0 28px;margin-top:40px}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
footer.site h4{color:#fff;font-size:.9rem;text-transform:uppercase;letter-spacing:.14em;margin-bottom:14px;font-family:'Source Sans 3',sans-serif;font-weight:700}
footer.site a{color:#c5cee0;font-size:.9rem;display:block;padding:3px 0}
footer.site .fine{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:20px;font-size:.8rem;color:#8b98b3;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer.site .seal{display:flex;align-items:center;gap:12px;margin-bottom:14px}
footer.site .seal img{height:52px;width:auto;display:block;opacity:.95;filter:none}
footer.site .seal .n{color:#fff;font-family:'Playfair Display',serif;font-size:1.1rem}

/* Utility */
.callout{background:var(--cream);border-left:3px solid var(--navy);padding:20px 24px;margin:24px 0}
.callout p:last-child{margin-bottom:0}

@media (max-width:860px){
  .hero h1{font-size:2.1rem}
  .stats{grid-template-columns:repeat(2,1fr)}
  .pillars,.news,.faculty{grid-template-columns:1fr}
  .hero.photo{min-height:auto;padding:70px 0}
  .hero.photo .container{padding:0 24px}
}

/* Photo hero */
.hero.photo{position:relative;padding:120px 0 96px;min-height:420px;background-size:cover;background-position:center;color:#fff}
.hero.photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,43,91,.55) 0%,rgba(15,43,91,.75) 100%);z-index:0}
.hero.photo .container{position:relative;z-index:1}

/* Person photo avatar */
.person .avatar.photo{background-size:cover;background-position:center top;color:transparent}
.person .avatar.photo::after{content:""}

/* Inline content photos */
.content-photo{margin:28px 0;border:1px solid var(--line)}
.content-photo img{display:block;width:100%;height:auto}
.content-photo .caption{padding:10px 16px;background:var(--cream);font-size:.85rem;color:var(--muted);font-style:italic}

/* News card photo thumb */
.newscard .thumb.photo{background-size:cover;background-position:center;color:transparent}
.newscard .thumb.photo::after{content:""}

/* Staff portrait strip for Head of School section */
.hos-block{display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:start;margin-top:24px}
.hos-block img{width:100%;height:auto;border:1px solid var(--line)}
@media (max-width:720px){.hos-block{grid-template-columns:1fr}}

/* Athletics/board simple table */
.roster{width:100%;border-collapse:collapse;margin:16px 0}
.roster th,.roster td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;font-size:.92rem}
.roster th{background:var(--cream);font-family:'Source Sans 3',sans-serif;color:var(--navy)}

/* Card grid for board / openings */
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:16px}
@media (max-width:900px){.cardgrid{grid-template-columns:1fr}}
.mini{background:#fff;border:1px solid var(--line);padding:20px}
.mini h3{margin:0 0 6px;font-size:1rem}
.mini .role{color:var(--gold);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-weight:600}
.mini p{color:var(--muted);font-size:.88rem;margin:0}

/* Article body */
.article-meta{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;margin-bottom:8px}
.article-body p{font-size:1.02rem;line-height:1.75;color:#3a3a37}
.article-body img{width:100%;height:auto;margin:20px 0;border:1px solid var(--line)}
.backlink{display:inline-block;margin-top:32px;color:var(--navy);font-size:.9rem}
  .two{grid-template-columns:1fr}
  footer.site .cols{grid-template-columns:1fr 1fr}
  nav.primary{gap:14px}
  nav.primary a{font-size:.88rem}
}
