
  :root{
    --pine:#16342a; --pine-deep:#0e241d; --paper:#f7f1e3; --paper2:#efe7d2;
    --heading:#22392e; --body:#4c584f; --soft:#66746a;
    --gold:#7c5f26; --gold-mid:#a8863f; --gold-bright:#d9b878;
    --cream:#f4ecda; --sage:#c9d8ce;
    --hair:rgba(124,95,38,0.28); --hair-onpine:rgba(217,184,120,0.28);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--paper); color:var(--heading); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
  a{color:inherit; text-decoration:none;}
  a:focus-visible{outline:2px solid var(--gold-mid); outline-offset:3px;}
  .eyebrow{font-family:'Jost',sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:0.3em; font-size:11px; color:var(--gold);}
  .rule{width:40px; height:1px; background:var(--gold-mid);}
  .wrap{max-width:680px; margin:0 auto; padding:0 clamp(24px,6vw,40px);}
  .wrap--wide{max-width:800px;}

  /* pine band: holds nav + page head on every page */
  .band{background:var(--pine); color:var(--cream);}
  .band .rule{background:var(--gold-bright);}
  .nav{display:flex; align-items:center; justify-content:space-between; padding:24px clamp(24px,6vw,64px);}
  .brand{display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid rgba(217,184,120,0.6); border-radius:50%; font-family:'Cormorant',serif; font-weight:500; font-size:18px; color:var(--cream);}
  .nav__links{font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.2em; font-size:11.5px; display:flex; gap:26px;}
  .nav__links a{opacity:0.92; transition:color .25s;}
  .nav__links a:hover{color:var(--gold-bright);}
  .nav__links a.cur{color:var(--gold-bright); opacity:1;}

  /* home hero */
  .band--hero{display:flex; flex-direction:column; min-height:88svh; position:relative;}
  .heroinner{flex:1; display:flex; align-items:center; width:100%;}
  .hero__text{max-width:640px;}
  .hero__text .rule{margin-bottom:26px;}
  .hero__kicker{font-family:'Jost',sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:0.42em; font-size:12px; color:var(--gold-bright); margin-bottom:22px;}
  .name{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(64px,11vw,124px); line-height:0.92; letter-spacing:0.02em; color:var(--cream);}
  .tagline{font-family:'Cormorant',serif; font-style:italic; font-weight:400; font-size:clamp(22px,3.2vw,32px); color:var(--sage); margin-top:20px;}
  .role{font-family:'Jost',sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:0.24em; font-size:11.5px; color:#d7d2bd; margin-top:22px; line-height:1.7;}
  .scrolltag{position:absolute; left:0; right:0; bottom:20px; text-align:center; font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.3em; font-size:10px; color:#9db2a4; pointer-events:none;}
  .scrolltag span{display:inline-block; animation:bob 2.4s ease-in-out infinite;}

  /* interior page head (inside .band) */
  .phead{padding:clamp(36px,6vw,72px) 0 clamp(44px,7vw,80px);}
  .phead .eyebrow{color:var(--gold-bright); margin-bottom:20px;}
  .phead h1{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(40px,6vw,72px); line-height:0.98; color:var(--cream);}
  .phead .sub{font-family:'Cormorant',serif; font-style:italic; font-size:clamp(19px,2.4vw,26px); color:var(--sage); margin-top:16px;}
  .phead .rule{margin-top:28px;}

  main{background:var(--paper);}

  /* prose */
  .about{padding:clamp(56px,9vw,104px) 0 clamp(36px,6vw,56px);}
  .about .eyebrow{margin-bottom:22px;}
  .lead{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(34px,3.6vw,40px); line-height:1.34; color:#27412f; margin-bottom:28px;}
  .prose p{font-size:16px; line-height:1.85; color:var(--body); margin-bottom:18px;}
  .prose p:last-child{margin-bottom:0;}
  .prose em{font-style:italic; color:var(--gold);}
  .prose strong{font-weight:400; color:#223a2c;}
  .intro{font-size:16px; line-height:1.85; color:var(--body); margin-top:22px;}

  /* pillars */
  .pillars{padding:clamp(40px,6vw,72px) 0 clamp(48px,7vw,80px);}
  .pillars .eyebrow{margin-bottom:10px;}
  .pillar{padding:24px 0; border-top:1px solid var(--hair);}
  .pillar:last-of-type{border-bottom:1px solid var(--hair);}
  .pillar h3{font-family:'Cormorant',serif; font-weight:500; font-size:23px; color:var(--heading);}
  .pillar p{font-size:14px; line-height:1.75; color:var(--body); margin-top:8px; max-width:560px;}

  /* vision page long-form pillars */
  .vpillar{padding:clamp(34px,5vw,48px) 0; border-top:1px solid var(--hair);}
  .vpillar:last-of-type{border-bottom:1px solid var(--hair);}
  .vpillar .eyebrow{margin-bottom:14px;}
  .vpillar h2{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(26px,3.4vw,34px); color:var(--heading); margin-bottom:14px;}
  .vpillar p{font-size:16px; line-height:1.85; color:var(--body); margin-bottom:16px;}
  .vpillar p:last-child{margin-bottom:0;}
  .vpillar em{font-style:italic; color:var(--gold);}

  /* teacher grid (home) */
  .tsec{padding:clamp(40px,6vw,72px) 0 clamp(56px,8vw,96px);}
  .tsec .eyebrow{margin-bottom:12px;}
  .tsec .tsec__lead{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(26px,3.4vw,34px); color:var(--heading); margin-bottom:30px;}
  .tgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:28px 26px;}
  .tcard{display:block;}
  .ph{background:#fbf6ea; border:1px solid var(--hair); padding:10px;}
  .ph img{display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover;}
  .tcard h3{font-family:'Cormorant',serif; font-weight:500; font-size:21px; color:var(--heading); margin-top:14px; transition:color .25s;}
  .tcard .trole{font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.16em; font-size:10px; color:var(--gold); margin-top:6px; line-height:1.6;}
  .tcard:hover h3{color:var(--gold);}

  /* teacher profiles (teachers page) */
  .tiergap{padding-top:clamp(40px,6vw,72px);}
  .tiergap .eyebrow{margin-bottom:6px;}
  .profile{display:grid; grid-template-columns:280px 1fr; gap:clamp(26px,4vw,40px); padding:clamp(34px,5vw,48px) 0; border-top:1px solid var(--hair);}
  .profile:last-of-type{border-bottom:1px solid var(--hair);}
  .profile .ph{align-self:start;}
  .profile h3{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(25px,3vw,30px); color:var(--heading); line-height:1.1;}
  .profile .prole{font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.16em; font-size:11px; color:var(--gold); margin:10px 0 16px; line-height:1.7;}
  .profile p{font-size:15px; line-height:1.8; color:var(--body); margin-bottom:14px;}
  .profile p:last-of-type{margin-bottom:0;}
  .profile em{font-style:italic; color:var(--gold);}

  /* motto / pull-quote */
  .quote{padding:clamp(48px,7vw,88px) 0; text-align:center;}
  .quote .rule{margin:0 auto 30px;}
  .quote blockquote{font-family:'Cormorant',serif; font-style:italic; font-weight:400; font-size:clamp(26px,4vw,40px); line-height:1.35; color:#2c463a; max-width:720px; margin:0 auto;}
  .quote cite{display:block; font-family:'Jost',sans-serif; font-style:normal; text-transform:uppercase; letter-spacing:0.28em; font-size:11px; color:var(--gold); margin-top:26px;}

  /* closing */
  .closing{padding:clamp(40px,6vw,72px) 0 0;}
  .closing h2{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(24px,3vw,34px); color:var(--heading);}
  .closing p{font-size:16px; line-height:1.85; color:var(--body); margin-top:16px;}

  .more{display:inline-block; margin-top:32px; font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.2em; font-size:12px; color:var(--gold); border-bottom:1px solid var(--hair); padding-bottom:4px; transition:color .25s,border-color .25s;}
  .more:hover{color:var(--heading); border-color:var(--heading);}
  .more .arw{margin-left:8px;}

  footer{background:var(--pine-deep); padding:30px clamp(24px,6vw,40px) 26px; text-align:center; margin-top:clamp(56px,8vw,96px);}
  .foot{font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.18em; font-size:11px; color:#bfb69b; line-height:2.1;}
  .foot a{transition:color .25s;}
  .foot a:hover{color:var(--gold-bright);}
  .foot .sep{margin:0 8px; color:#7a7360;}
  .foot--note{display:block; margin-top:14px; font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.18em; font-size:10px; color:#8e8770;}
  .foot--note a:hover{color:var(--gold-bright);}

  .up{opacity:0; transform:translateY(16px); animation:rise .95s .15s cubic-bezier(.2,.7,.2,1) forwards;}
  .reveal{opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);}
  .reveal.in{opacity:1; transform:none;}
  @keyframes rise{to{opacity:1; transform:none;}}
  @keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}

  @media (max-width:820px){
    .band--hero{min-height:auto;}
    .heroinner{padding:56px 0 72px;}
    .name{font-size:clamp(58px,16vw,84px);}
    .scrolltag{display:none;}
    .profile{grid-template-columns:1fr;}
    .profile .ph{max-width:340px;}
  }
  @media (max-width:480px){ .nav__links{gap:16px; font-size:10.5px;} }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .up,.reveal{opacity:1 !important; transform:none !important; animation:none !important;}
    .scrolltag span{animation:none;}
  }

  /* upcoming events */
  .events{padding:clamp(36px,5vw,56px) 0 clamp(48px,7vw,72px);}
  .event{padding:clamp(30px,4vw,44px) 0; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);}
  .event .edate{font-family:'Jost',sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:0.2em; font-size:11.5px; color:var(--gold); margin-bottom:14px;}
  .event h2{font-family:'Cormorant',serif; font-weight:500; font-size:clamp(32px,4.4vw,46px); line-height:1.02; color:var(--heading);}
  .event .esub{font-family:'Cormorant',serif; font-style:italic; font-size:clamp(19px,2.4vw,24px); color:#55685c; margin-top:10px;}
  .event .evenue{font-size:14.5px; color:var(--body); margin-top:14px;}
  .event p{font-size:15px; line-height:1.8; color:var(--body); margin-top:16px; max-width:620px;}
  .event em{font-style:italic; color:var(--gold);}
  .enote{font-size:13.5px; line-height:1.8; color:var(--soft); margin-top:28px;}
  .enote a{color:var(--gold); border-bottom:1px solid var(--hair);}
  .enote a:hover{color:var(--heading); border-color:var(--heading);}

  /* executive committee */
  .clist{padding:clamp(36px,5vw,56px) 0 clamp(48px,7vw,72px);}
  .crow{display:flex; gap:26px; padding:18px 0; border-top:1px solid var(--hair); align-items:baseline;}
  .crow:last-of-type{border-bottom:1px solid var(--hair);}
  .crow .cpos{font-family:'Jost',sans-serif; text-transform:uppercase; letter-spacing:0.16em; font-size:11px; color:var(--gold); min-width:210px; flex-shrink:0;}
  .crow .cname{font-family:'Cormorant',serif; font-weight:500; font-size:22px; color:var(--heading); line-height:1.2;}
  @media (max-width:600px){ .crow{flex-direction:column; gap:4px;} .crow .cpos{min-width:0;} }
