
  :root{
    --black: #08080a;
    --black-2: #111114;
    --black-3: #18181c;
    --silver: #a9afba;
    --silver-light: #e4e7ec;
    --silver-dim: #6b7078;
    --gold: #c9a227;
    --gold-bright: #f2d675;
    --gold-deep: #7d621a;
    --hairline: rgba(201,162,39,0.18);
    --hairline-silver: rgba(169,175,186,0.14);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--black);
    color:var(--silver-light);
    font-family:'Inter',sans-serif;
    font-weight:300;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--gold); color:var(--black);}
  h1,h2,h3,h4{font-family:'Cormorant Garamond',serif; font-weight:600; letter-spacing:0.01em;}
  a{color:inherit; text-decoration:none;}
  .eyebrow{
    font-family:'Space Mono',monospace;
    font-size:0.7rem;
    letter-spacing:0.32em;
    text-transform:uppercase;
    color:var(--gold);
  }
  .wrap{max-width:1180px; margin:0 auto; padding:0 6vw;}
  img{display:block; width:100%; height:100%; object-fit:cover;}

  /* ---------- ambient gold dust ---------- */
  #dust{position:fixed; inset:0; pointer-events:none; z-index:2; opacity:0.55;}

  /* ---------- nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 6vw;
    transition:background 0.4s ease, padding 0.4s ease, border-color 0.4s ease;
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    background:rgba(8,8,10,0.86);
    backdrop-filter:blur(14px);
    padding:14px 6vw;
    border-bottom:1px solid var(--hairline);
  }
  .brand{display:flex; align-items:center; gap:12px;}
  .brand svg{width:34px; height:34px;}
  .brand-name{font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:600; letter-spacing:0.03em; color:var(--silver-light);}
  .brand-name em{color:var(--gold); font-style:normal;}
  nav.links{display:flex; gap:2.4rem;}
  nav.links a{
    font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--silver); position:relative; padding-bottom:4px;
  }
  nav.links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
    background:var(--gold); transition:width 0.35s ease;
  }
  nav.links a:hover{color:var(--gold-bright);}
  nav.links a:hover::after{width:100%;}
  .apply-btn{
    border:1px solid var(--gold-deep); color:var(--gold-bright);
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
    padding:10px 22px; border-radius:2px; transition:all 0.35s ease;
    white-space:nowrap;
  }
  .apply-btn:hover{background:var(--gold); color:var(--black); border-color:var(--gold);}
  .menu-toggle{display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:110;}
  .menu-toggle span{width:24px; height:1px; background:var(--gold-bright);}

  /* ---------- hero ---------- */
  .hero{
    position:relative; min-height:100vh; display:flex; align-items:center;
    justify-content:center; text-align:center; overflow:hidden;
    background:
      radial-gradient(ellipse at 50% 20%, rgba(201,162,39,0.10), transparent 60%),
      linear-gradient(180deg, #08080a 0%, #0c0c0f 60%, #08080a 100%);
  }
  .hero::before{
    content:''; position:absolute; inset:0;
    background-image:url('https://picsum.photos/seed/aldermont-hall/1800/1200');
    background-size:cover; background-position:center;
    opacity:0.18; filter:grayscale(0.6) contrast(1.15);
    animation:kenburns 26s ease-in-out infinite alternate;
  }
  @keyframes kenburns{
    0%{transform:scale(1.05) translate(0,0);}
    100%{transform:scale(1.16) translate(-1.5%, -1%);}
  }
  .hero-inner{position:relative; z-index:3; max-width:820px; padding:0 6vw;}
  .crest{width:118px; height:118px; margin:0 auto 2rem;}
  .crest path, .crest circle, .crest line{
    stroke-dasharray:600; stroke-dashoffset:600;
    animation:draw 2.6s ease forwards;
  }
  .crest .fill-part{animation:fadein 1.2s ease forwards; animation-delay:2.2s; opacity:0;}
  @keyframes draw{to{stroke-dashoffset:0;}}
  @keyframes fadein{to{opacity:1;}}
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem); line-height:1.08; color:var(--silver-light);
    opacity:0; animation:riseIn 1s ease forwards; animation-delay:2.4s;
  }
  .hero h1 .accent{
    font-style:italic; color:transparent;
    background:linear-gradient(120deg, var(--gold-deep), var(--gold-bright), var(--gold-deep));
    background-size:220% auto; -webkit-background-clip:text; background-clip:text;
    animation:shimmer 5s linear infinite;
  }
  @keyframes shimmer{to{background-position:220% center;}}
  .hero p{
    margin:1.6rem auto 0; max-width:520px; color:var(--silver); font-size:1.02rem; line-height:1.75;
    opacity:0; animation:riseIn 1s ease forwards; animation-delay:2.7s;
  }
  @keyframes riseIn{from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:translateY(0);}}
  .hero-ctas{
    display:flex; gap:1.1rem; justify-content:center; margin-top:2.6rem;
    opacity:0; animation:riseIn 1s ease forwards; animation-delay:3s;
  }
  .btn-gold{
    background:linear-gradient(135deg, var(--gold-deep), var(--gold), var(--gold-bright));
    color:var(--black); font-weight:500; letter-spacing:0.06em; font-size:0.85rem;
    padding:14px 30px; border-radius:2px; transition:transform 0.3s ease, box-shadow 0.3s ease;
  }
  .btn-gold:hover{transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(201,162,39,0.55);}
  .btn-outline{
    border:1px solid var(--hairline-silver); color:var(--silver-light);
    font-size:0.85rem; letter-spacing:0.06em; padding:14px 28px; border-radius:2px;
    transition:border-color 0.3s ease, color 0.3s ease;
  }
  .btn-outline:hover{border-color:var(--gold); color:var(--gold-bright);}
  .scroll-cue{
    position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:8px; z-index:3;
    opacity:0; animation:riseIn 1s ease forwards; animation-delay:3.3s;
  }
  .scroll-cue .line{width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation:pulseline 2s ease-in-out infinite;}
  @keyframes pulseline{0%,100%{opacity:0.3;} 50%{opacity:1;}}
  .scroll-cue span{font-family:'Space Mono',monospace; font-size:0.62rem; letter-spacing:0.2em; color:var(--silver-dim); text-transform:uppercase;}

  /* ---------- section shell ---------- */
  section{position:relative; padding:8rem 0;}
  .divider{width:100%; height:1px; background:linear-gradient(90deg, transparent, var(--hairline) 50%, transparent);}
  .section-head{max-width:640px; margin:0 auto 4rem; text-align:center;}
  .section-head h2{font-size:clamp(2rem, 3.6vw, 2.9rem); margin-top:0.9rem; color:var(--silver-light);}
  .section-head p{color:var(--silver); margin-top:1rem; line-height:1.75;}
  .reveal{opacity:0; transform:translateY(34px); transition:opacity 0.9s ease, transform 0.9s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- stats ---------- */
  .stats-row{display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; text-align:center;}
  .stat-num{font-family:'Space Mono',monospace; font-size:clamp(2rem,3.4vw,3rem); color:var(--gold-bright);}
  .stat-label{margin-top:0.6rem; font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--silver-dim);}

  /* ---------- about ---------- */
  .about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:5rem; align-items:center;}
  .about-media{position:relative; aspect-ratio:4/5; border-radius:3px; overflow:hidden; border:1px solid var(--hairline);}
  .about-media img{filter:grayscale(0.35) contrast(1.05);}
  .about-media::after{
    content:''; position:absolute; inset:0; border:1px solid var(--hairline);
    outline:10px solid var(--black); outline-offset:14px; pointer-events:none;
  }
  .about-text h3{font-size:2.1rem; color:var(--silver-light); margin-bottom:1.2rem;}
  .about-text p{color:var(--silver); line-height:1.85; margin-bottom:1.1rem;}
  .about-list{margin-top:1.8rem; display:flex; flex-direction:column; gap:0.9rem;}
  .about-list li{display:flex; gap:12px; align-items:baseline; list-style:none; color:var(--silver-light); font-size:0.95rem;}
  .about-list li::before{content:'—'; color:var(--gold);}

  /* ---------- programs ---------- */
  .programs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;}
  .program-card{
    position:relative; border:1px solid var(--hairline-silver); padding:2.6rem 2rem;
    background:linear-gradient(160deg, var(--black-2), var(--black-3));
    transition:border-color 0.4s ease, transform 0.4s ease;
    overflow:hidden;
  }
  .program-card::before{
    content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(90deg, transparent, var(--gold), transparent);
    transform:scaleX(0); transition:transform 0.5s ease;
  }
  .program-card:hover{transform:translateY(-8px); border-color:var(--hairline);}
  .program-card:hover::before{transform:scaleX(1);}
  .program-num{font-family:'Space Mono',monospace; font-size:0.75rem; color:var(--gold);}
  .program-card h3{font-size:1.5rem; margin:1rem 0 0.8rem; color:var(--silver-light);}
  .program-card p{color:var(--silver-dim); font-size:0.92rem; line-height:1.7;}
  .program-card .arrow{
    display:inline-block; margin-top:1.4rem; font-size:0.78rem; letter-spacing:0.1em;
    color:var(--gold-bright); text-transform:uppercase;
  }

  /* ---------- gallery (masonry) ---------- */
  .gallery-grid{
    columns:3 240px; column-gap:1rem;
  }
  .gallery-item{
    break-inside:avoid; margin-bottom:1rem; position:relative; overflow:hidden;
    border-radius:2px; border:1px solid var(--hairline-silver);
  }
  .gallery-item img{transition:transform 0.7s ease, filter 0.5s ease; filter:grayscale(0.5) brightness(0.9);}
  .gallery-item:hover img{transform:scale(1.08); filter:grayscale(0) brightness(1);}
  .gallery-item .cap{
    position:absolute; left:0; right:0; bottom:0; padding:14px 16px;
    background:linear-gradient(0deg, rgba(0,0,0,0.85), transparent);
    font-size:0.76rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-bright);
    opacity:0; transform:translateY(10px); transition:all 0.4s ease;
  }
  .gallery-item:hover .cap{opacity:1; transform:translateY(0);}

  /* ---------- testimonials ---------- */
  .testi-wrap{max-width:780px; margin:0 auto; text-align:center; position:relative; min-height:260px;}
  .testi-slide{
    position:absolute; inset:0; opacity:0; transition:opacity 0.8s ease;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
  }
  .testi-slide.active{opacity:1; position:relative;}
  .testi-slide p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.6rem;
    line-height:1.6; color:var(--silver-light);}
  .testi-slide .who{margin-top:1.6rem; font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold);}
  .testi-dots{display:flex; gap:10px; justify-content:center; margin-top:2.6rem;}
  .testi-dots span{width:7px; height:7px; border-radius:50%; border:1px solid var(--gold-deep); cursor:pointer; transition:background 0.3s ease;}
  .testi-dots span.active{background:var(--gold);}

  /* ---------- admissions timeline ---------- */
  .timeline{position:relative; max-width:820px; margin:0 auto; padding-left:2px;}
  .timeline::before{content:''; position:absolute; left:18px; top:8px; bottom:8px; width:1px; background:var(--hairline);}
  .tl-item{position:relative; padding-left:60px; margin-bottom:3rem;}
  .tl-item:last-child{margin-bottom:0;}
  .tl-dot{
    position:absolute; left:11px; top:2px; width:15px; height:15px; border-radius:50%;
    background:var(--black); border:1px solid var(--gold); box-shadow:0 0 0 4px var(--black);
  }
  .tl-dot::after{content:''; position:absolute; inset:3px; background:var(--gold); border-radius:50%; opacity:0.7;}
  .tl-item .eyebrow{margin-bottom:0.4rem; display:block;}
  .tl-item h4{font-size:1.3rem; color:var(--silver-light); margin-bottom:0.5rem;}
  .tl-item p{color:var(--silver-dim); font-size:0.92rem; line-height:1.7;}

  /* ---------- cta band ---------- */
  .cta-band{
    padding:6rem 0; text-align:center; position:relative;
    background:radial-gradient(ellipse at 50% 100%, rgba(201,162,39,0.10), transparent 65%);
  }
  .cta-band h2{font-size:clamp(2rem,4vw,3rem); color:var(--silver-light); margin-bottom:1.2rem;}
  .cta-band p{color:var(--silver); max-width:520px; margin:0 auto 2.2rem; line-height:1.75;}

  /* ---------- footer ---------- */
  footer{border-top:1px solid var(--hairline); padding:4.5rem 0 2rem;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:3rem; margin-bottom:3rem;}
  .footer-brand p{color:var(--silver-dim); font-size:0.88rem; line-height:1.75; margin-top:1rem; max-width:280px;}
  footer h5{font-size:0.75rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem;}
  footer ul{list-style:none; display:flex; flex-direction:column; gap:0.7rem;}
  footer ul a{color:var(--silver-dim); font-size:0.88rem; transition:color 0.3s ease;}
  footer ul a:hover{color:var(--gold-bright);}
  .footer-bottom{
    border-top:1px solid var(--hairline-silver); padding-top:1.8rem;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
    font-size:0.76rem; color:var(--silver-dim); letter-spacing:0.04em;
  }

  @media (max-width: 900px){
    .about-grid{grid-template-columns:1fr; gap:2.5rem;}
    .programs-grid{grid-template-columns:1fr 1fr;}
    .stats-row{grid-template-columns:1fr 1fr; gap:2.4rem;}
    .footer-grid{grid-template-columns:1fr 1fr; gap:2.2rem;}
    .gallery-grid{columns:2 180px;}
  }
  @media (max-width: 640px){
    nav.links{
      position:fixed; inset:0 0 0 auto; width:76%; height:100vh; background:var(--black-2);
      flex-direction:column; justify-content:center; align-items:center; gap:2.2rem;
      transform:translateX(100%); transition:transform 0.45s ease; z-index:105;
      border-left:1px solid var(--hairline);
    }
    nav.links.open{transform:translateX(0);}
    .menu-toggle{display:flex;}
    .apply-btn{display:none;}
    .programs-grid{grid-template-columns:1fr;}
    .stats-row{grid-template-columns:1fr 1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .gallery-grid{columns:1 220px;}
  }
