:root { --navy:#082b61; --blue:#1265dc; --sky:#dcebff; --ink:#172033; --muted:#5a6577; --paper:#f8fafc; --line:#dce3ee; --white:#fff; --gold:#f2b542; --radius:18px; --shadow:0 18px 45px rgba(9,39,88,.12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.55; }
a { color:inherit; }
.container { width:min(1120px,calc(100% - 40px)); margin:0 auto; }
.skip-link { position:fixed; z-index:20; top:12px; left:12px; transform:translateY(-160%); padding:10px 14px; border-radius:8px; color:var(--white); background:var(--navy); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; z-index:10; top:0; border-bottom:1px solid rgba(220,227,238,.8); background:rgba(255,255,255,.94); backdrop-filter:blur(13px); }
.header-row { display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; gap:11px; align-items:center; text-decoration:none; font-weight:750; letter-spacing:-.025em; }
.brand-mark { display:grid; width:38px; height:38px; place-items:center; border-radius:10px; color:var(--white); background:var(--blue); font-size:12px; font-weight:800; letter-spacing:-.09em; }
.brand span { max-width:210px; line-height:1.12; }
nav ul { display:flex; align-items:center; gap:20px; padding:0; margin:0; list-style:none; }
nav a { color:#3f4857; text-decoration:none; font-size:.9rem; font-weight:600; }
nav a:hover,nav a:focus-visible,nav a[aria-current="page"] { color:var(--blue); }
.header-contact { padding:9px 14px; border:1px solid var(--blue); border-radius:8px; color:var(--blue); text-decoration:none; font-size:.88rem; font-weight:700; }
.header-contact:hover { color:var(--white); background:var(--blue); }
.page-hero { padding:82px 0 75px; color:var(--white); background:linear-gradient(120deg,#082b61,#1265dc); }
.page-hero .eyebrow { color:#dcebff; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; margin:0 0 15px; color:var(--blue); text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:800; }
.eyebrow:before { width:24px; height:2px; background:var(--gold); content:""; }
h1,h2,h3 { line-height:1.12; letter-spacing:-.04em; }
h1 { max-width:760px; margin:0; font-size:clamp(2.65rem,5vw,4.5rem); }
.hero-copy { max-width:690px; margin:20px 0 0; color:#e7effc; font-size:1.08rem; }
section { padding:84px 0; }
.section-intro { max-width:720px; margin-bottom:38px; }
.section-intro h2 { margin:0; font-size:clamp(2rem,3.5vw,3.1rem); }
.section-intro p:last-child { margin:15px 0 0; color:var(--muted); }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card { overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:0 5px 18px rgba(9,39,88,.05); }
.portrait { display:grid; min-height:252px; place-items:center; color:#2e5d9f; background:linear-gradient(145deg,#deebfd,#b8d0f3); font-size:4rem; font-weight:800; }
.card-body { padding:23px; }
.card h2,.card h3 { margin:0; font-size:1.35rem; }
.role { margin:8px 0 0; color:var(--blue); font-size:.9rem; font-weight:800; }
.affiliation,.card p { margin:11px 0 0; color:var(--muted); font-size:.92rem; }
.contact-row { display:flex; gap:9px; margin-top:19px; }
.contact-row a { padding:7px 10px; border:1px solid var(--line); border-radius:7px; color:var(--navy); text-decoration:none; font-size:.84rem; font-weight:750; }
.contact-row a:hover { border-color:var(--blue); color:var(--blue); }
.soft { background:var(--paper); }
.school-logo { display:grid; min-height:174px; place-items:center; padding:20px; border-bottom:1px solid var(--line); color:var(--navy); background:linear-gradient(145deg,#fff,#eff5fd); text-align:center; font-size:1.25rem; font-weight:800; }
.badge { display:inline-block; margin-top:13px; padding:4px 8px; border-radius:99px; color:#245080; background:var(--sky); font-size:.74rem; font-weight:800; }
.card-link { display:inline-block; margin-top:19px; color:var(--blue); font-size:.9rem; font-weight:800; text-underline-offset:4px; }
.empty-state { padding:45px; border:1px dashed #9ab6dc; border-radius:var(--radius); color:var(--muted); background:#f5f9ff; text-align:center; }
.empty-state h2 { margin:0 0 10px; color:var(--navy); font-size:1.5rem; }
.empty-state p { max-width:550px; margin:0 auto; }
.event-list { display:grid; gap:18px; }
.event-card { display:grid; grid-template-columns:130px 1fr auto; gap:25px; align-items:center; padding:24px; border:1px solid var(--line); border-radius:14px; background:var(--white); }
.date-block { padding:14px; border-radius:11px; color:var(--navy); background:#f8df9d; text-align:center; }
.date-block b { display:block; font-size:1.65rem; line-height:1; }
.date-block span { font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.event-card h2 { margin:0; font-size:1.25rem; }
.event-card p { margin:7px 0 0; color:var(--muted); font-size:.92rem; }
.button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:10px 16px; border-radius:8px; color:var(--white); background:var(--blue); font-size:.9rem; font-weight:800; text-decoration:none; }
.button:hover { background:var(--navy); }
.cta { padding:64px 0; color:var(--white); background:var(--blue); }
.cta-row { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.cta h2 { max-width:670px; margin:0; font-size:clamp(1.85rem,3vw,2.7rem); }
.cta .button { color:var(--navy); background:var(--white); }
footer { padding:38px 0; color:#b9c8df; background:#061a3c; }
.footer-row { display:flex; gap:24px; align-items:center; justify-content:space-between; }
.footer-brand { color:var(--white); }
.footer-copy { margin:4px 0 0; font-size:.84rem; }
.footer-links { display:flex; flex-wrap:wrap; gap:17px; }
.footer-links a { color:#c8d6eb; font-size:.88rem; text-decoration:none; }
@media (max-width:900px) { nav { display:none; } .card-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .container { width:min(100% - 30px,1120px); } .header-row { min-height:66px; } .brand span { max-width:155px; font-size:.84rem; } .header-contact { padding:8px 10px; font-size:.78rem; } section { padding:62px 0; } .page-hero { padding:62px 0; } .card-grid { grid-template-columns:1fr; } .event-card { grid-template-columns:1fr; gap:16px; } .event-card .button { width:max-content; } .cta-row,.footer-row { align-items:flex-start; flex-direction:column; } }
