:root{
    --sky:#EDF4F8;        /* soft sky */
    --cloud:#FFFFFF;
    --ink:#22384A;        /* deep navy ink */
    --mack-blue:#4E8FB5;  /* his blue eyes */
    --sunshine:#E5A93F;   /* golden afternoon */
    --grass:#5E8A5E;      /* outfield green */
    --line:#D5E2EA;
    --radius:14px;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation:none!important;transition:none!important;} }
  body{
    font-family:'Nunito Sans',system-ui,sans-serif;
    color:var(--ink);
    background:var(--sky);
    line-height:1.65;
    font-size:17px;
  }
  h1,h2,h3{font-family:'Bitter',Georgia,serif;line-height:1.2;}
  a{color:var(--mack-blue);}
  img{max-width:100%;display:block;}
  .wrap{max-width:960px;margin:0 auto;padding:0 24px;}
  .narrow{max-width:720px;margin:0 auto;}

  /* ---------- Nav ---------- */
  nav{
    position:sticky;top:0;z-index:20;
    background:rgba(237,244,248,.92);backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;}
  .nav-name{font-family:'Bitter',serif;font-weight:700;font-size:1.05rem;color:var(--ink);text-decoration:none;}
  .nav-links{display:flex;gap:22px;flex-wrap:wrap;}
  .nav-links a{text-decoration:none;font-weight:600;font-size:.92rem;color:var(--ink);}
  .nav-links a:hover{color:var(--mack-blue);}
  .nav-links a.cta{background:var(--sunshine);color:var(--ink);padding:6px 14px;border-radius:999px;}

  /* ---------- Hero ---------- */
  header.hero{
    padding:84px 0 64px;
    text-align:center;
    background:linear-gradient(180deg,#F6FAFC 0%, var(--sky) 100%);
  }
  .eyebrow{
    display:inline-block;letter-spacing:.14em;text-transform:uppercase;
    font-size:.78rem;font-weight:700;color:var(--mack-blue);margin-bottom:18px;
  }
  .hero h1{font-size:clamp(2.4rem,6vw,4rem);font-weight:700;}
  .hero .known-as{font-family:'Bitter',serif;font-style:italic;font-size:1.25rem;color:var(--mack-blue);margin-top:10px;}
  .hero .dates{margin-top:14px;font-weight:600;letter-spacing:.06em;color:#5A7183;}
  .hero .tagline{max-width:560px;margin:26px auto 0;font-size:1.12rem;}
  .photo-frame{
    width:min(340px,80%);margin:40px auto 0;aspect-ratio:4/5;
    background:var(--cloud);border:1px solid var(--line);border-radius:var(--radius);
    display:flex;align-items:center;justify-content:center;
    color:#8AA2B2;font-size:.9rem;padding:16px;text-align:center;
    box-shadow:0 12px 32px rgba(34,56,74,.08);
  }

  /* ---------- Sections ---------- */
  section{padding:72px 0;}
  section h2{font-size:clamp(1.6rem,3.5vw,2.2rem);margin-bottom:8px;}
  .kicker{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--mack-blue);margin-bottom:10px;display:block;}
  .section-intro{color:#4B6274;max-width:640px;margin-bottom:36px;}
  .alt{background:var(--cloud);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

  /* ---------- Letter ---------- */
  .letter{
    background:var(--cloud);border:1px solid var(--line);border-radius:var(--radius);
    padding:clamp(28px,5vw,56px);
    box-shadow:0 8px 28px rgba(34,56,74,.06);
  }
  .letter p{margin-bottom:1.2em;}
  .letter p:last-child{margin-bottom:0;}
  .letter .sign-off{font-family:'Bitter',serif;font-style:italic;color:var(--mack-blue);}

  /* ---------- Video ---------- */
  .video-shell{
    aspect-ratio:16/9;background:var(--ink);border-radius:var(--radius);
    display:flex;align-items:center;justify-content:center;color:#BFD4E0;
    text-align:center;padding:24px;font-size:.95rem;
  }
  .video-shell iframe{width:100%;height:100%;border:0;border-radius:var(--radius);}

  /* ---------- Memory cards ---------- */
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
  .card{
    background:var(--cloud);border:1px solid var(--line);border-radius:var(--radius);
    padding:26px;position:relative;
  }
  .card::before{
    content:"";position:absolute;top:0;left:26px;right:auto;
    width:44px;height:4px;border-radius:0 0 4px 4px;background:var(--sunshine);
  }
  .card:nth-child(3n+2)::before{background:var(--mack-blue);}
  .card:nth-child(3n)::before{background:var(--grass);}
  .card h3{font-size:1.05rem;margin-bottom:8px;}
  .card p{font-size:.95rem;color:#3D5568;}

  /* ---------- Scholarship ---------- */
  .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:30px 0 40px;}
  .fact{background:var(--sky);border:1px solid var(--line);border-radius:var(--radius);padding:20px;}
  .fact .label{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--mack-blue);}
  .fact .value{font-family:'Bitter',serif;font-weight:600;font-size:1.1rem;margin-top:6px;}

  /* ---------- Forms ---------- */
  form{display:grid;gap:18px;}
  .form-row{display:grid;gap:18px;grid-template-columns:1fr 1fr;}
  @media(max-width:640px){.form-row{grid-template-columns:1fr;}}
  label{font-weight:700;font-size:.9rem;display:block;margin-bottom:6px;}
  input,textarea,select{
    width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;
    font:inherit;background:var(--cloud);color:var(--ink);
  }
  input:focus,textarea:focus,select:focus{outline:3px solid rgba(78,143,181,.35);border-color:var(--mack-blue);}
  textarea{min-height:140px;resize:vertical;}
  .hint{font-size:.82rem;color:#6B8296;margin-top:5px;}
  button{
    justify-self:start;background:var(--sunshine);color:var(--ink);
    font:inherit;font-weight:700;border:0;border-radius:999px;
    padding:13px 30px;cursor:pointer;
  }
  button:hover{filter:brightness(1.05);}
  button:focus-visible{outline:3px solid var(--mack-blue);outline-offset:2px;}
  .form-note{background:#FBF3E2;border:1px solid #EAD9AE;border-radius:10px;padding:14px 16px;font-size:.88rem;}

  /* ---------- Footer ---------- */
  footer{padding:56px 0 64px;text-align:center;border-top:1px solid var(--line);}
  footer .foot-name{font-family:'Bitter',serif;font-weight:700;font-size:1.1rem;}
  footer p{font-size:.9rem;color:#5A7183;margin-top:8px;}

/* ---------- Utility / hardening refactor ---------- */
.btn{display:inline-block;background:var(--sunshine);color:var(--ink);text-decoration:none;font-weight:700;padding:13px 30px;border-radius:999px;}
.btn-blue{display:inline-block;background:var(--mack-blue);color:#fff;text-decoration:none;font-weight:700;padding:13px 30px;border-radius:999px;}
.btn:hover,.btn-blue:hover{filter:brightness(1.05);}
.btn:focus-visible,.btn-blue:focus-visible{outline:3px solid var(--mack-blue);outline-offset:2px;}
.hp{display:none;}
.ta-short{min-height:90px;}
.center-block{margin-left:auto;margin-right:auto;}
.mt-lg{margin-top:28px;}
.mt-xl{margin-top:32px;}
.text-center{text-align:center;}
.hero-compact{padding:64px 0 48px;}
.hero-roomy{padding:100px 0;}
.h1-sub{font-size:clamp(2rem,5vw,3rem);}
.facts-flush{margin-top:0;}
.section-tight{padding-top:56px;}
.photo-frame.has-photo{padding:10px;}
.photo-frame img{width:100%;height:100%;object-fit:cover;border-radius:8px;}
.video-shell noscript{display:contents;}

/* ---------- Mobile navigation ---------- */
@media (max-width: 760px){
  nav .wrap{
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding-top:12px;
    padding-bottom:12px;
  }
  .nav-name{white-space:nowrap;text-align:center;}
  .nav-links{
    justify-content:center;
    align-items:center;
    column-gap:16px;
    row-gap:8px;
    font-size:.88rem;
  }
  .nav-links a.cta{padding:5px 14px;}
}
input[readonly]{background:#F1F6F9;color:#4B6274;cursor:default;}
input[readonly]:focus{outline:none;border-color:var(--line);}
.kicker-sentence{text-transform:none;letter-spacing:.02em;font-size:1.05rem;font-family:'Bitter',Georgia,serif;font-style:italic;font-weight:600;margin-bottom:18px;}
