
  :root{
    --ink:#0B1B3B;
    --ink-70: rgba(11,27,59,.7);
    --paper:#FDFBF3;
    --paper-dim:#F3EEDF;
    --marigold:#D4AF37;
    --marigold-dark:#B8941F;
    --sage:#1E6B3A;
    --rust:#C4102E;
    --slate:#4A5568;
    --line: rgba(11,27,59,.14);
    --line-strong: rgba(11,27,59,.28);
    --shadow: 0 20px 50px -20px rgba(11,27,59,.35);
    --radius: 14px;
    --maxw: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  button{font-family:inherit;cursor:pointer;}
  input,textarea,select{font-family:inherit;font-size:1rem;}

  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    font-weight:600;
    margin:0;
    color:var(--ink);
    letter-spacing:-.01em;
  }

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

  .eyebrow{
    font-family:'Space Mono',monospace;
    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--rust);
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:16px;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:1px;
    background:var(--rust);
    display:inline-block;
  }

  .mark{
    background-image:linear-gradient(120deg, rgba(212,175,55,.55) 0%, rgba(212,175,55,.55) 100%);
    background-repeat:no-repeat;
    background-size:100% .38em;
    background-position:0 86%;
    padding:0 .05em;
  }
  .mark.sage{background-image:linear-gradient(120deg, rgba(30,107,58,.4) 0%, rgba(30,107,58,.4) 100%);}

  /* ruled-paper texture, used sparingly behind hero/about */
  .ruled{
    background-image:repeating-linear-gradient(
      to bottom,
      transparent 0,
      transparent 37px,
      rgba(11,27,59,.055) 38px
    );
  }

  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:13px 26px;
    border-radius:999px;
    font-weight:600;
    font-size:.94rem;
    border:1px solid transparent;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  }
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--ink);color:var(--paper);}
  .btn-primary:hover{background:var(--rust);box-shadow:var(--shadow);}
  .btn-ghost{border-color:var(--line-strong);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:var(--paper);}
  .btn-block{width:100%;justify-content:center;}
  .btn[disabled]{opacity:.6;pointer-events:none;}

  /* ---------- Reveal on scroll ---------- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

  /* ================= NAV ================= */
  .nav{
    position:sticky;top:0;z-index:200;
    background:rgba(250,248,242,.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid transparent;
    transition:border-color .25s ease, box-shadow .25s ease;
  }
  .nav.scrolled{border-color:var(--line);box-shadow:0 4px 24px -12px rgba(11,27,59,.18);}
  .nav-inner{
    max-width:var(--maxw);margin:0 auto;padding:16px 32px;
    display:flex;align-items:center;justify-content:space-between;
  }
  .brand{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-weight:700;font-size:1.05rem;white-space:nowrap;}
  .brand-mark{
    width:38px;height:38px;border-radius:50%;background:var(--ink);
    color:var(--marigold);display:flex;align-items:center;justify-content:center;
    font-family:'Space Mono',monospace;font-size:.72rem;font-weight:700;
    border:2px solid var(--marigold);flex:none;
  }
  @media (max-width:520px){.brand{font-size:.92rem;}}
  .nav-links{display:flex;align-items:center;gap:30px;}
  .nav-links a{margin-right:22px;}
  .nav-links a:last-child{margin-right:0;}
  .nav-links a{
    font-size:.92rem;font-weight:500;color:var(--ink-70);position:relative;padding:4px 0;
  }
  .nav-links a::after{
    content:"";position:absolute;left:0;bottom:-3px;width:0;height:2px;background:var(--rust);
    transition:width .22s ease;
  }
  .nav-links a:hover{color:var(--ink);}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{display:flex;align-items:center;gap:14px;}
  .nav-toggle{display:none;background:none;border:none;padding:6px;}
  .nav-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.25s;}

  @media (max-width:920px){
    .nav-links{
      position:fixed;inset:64px 0 0 0;background:var(--paper);
      flex-direction:column;padding:36px 32px;gap:22px;
      transform:translateX(100%);transition:transform .3s ease;
      border-top:1px solid var(--line);
    }
    .nav-links.open{transform:translateX(0);}
    .nav-toggle{display:block;}
    .nav-cta .btn-ghost{display:none;}
  }

  /* ================= HERO ================= */
  .hero{position:relative;overflow:hidden;padding:96px 0 70px;}
  .hero::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rust);opacity:.25;
    margin-left:calc(50% - var(--maxw)/2 + 32px);
  }
  @media (max-width:1240px){.hero::before{display:none;}}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
  .hero h1{font-size:clamp(2.5rem,4.6vw,4rem);line-height:1.06;font-weight:600;}
  .hero-sub{margin:22px 0 32px;font-size:1.12rem;color:var(--slate);max-width:46ch;}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:38px;}
  .hero-stats{display:flex;gap:34px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:26px;}
  .hero-stat{margin-right:20px;max-width:180px;}
  .hero-stat b{display:block;font-family:'Fraunces',serif;font-size:1.7rem;color:var(--ink);}
  .hero-stat span{font-size:.78rem;color:var(--slate);letter-spacing:.02em;}

  .hero-visual{position:relative;}
  .hero-collage{
    display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:150px 150px;gap:14px;
  }
  .hero-collage img{width:100%;height:100%;object-fit:cover;border-radius:16px;box-shadow:var(--shadow);}
  .hero-collage .big{grid-row:1/3;}
  .hero-badge{
    position:absolute;bottom:-22px;left:-22px;background:var(--marigold);color:var(--ink);
    padding:16px 20px;border-radius:14px;box-shadow:var(--shadow);font-family:'Fraunces',serif;
    max-width:190px;font-size:.92rem;font-weight:600;line-height:1.3;
    transform:rotate(-3deg);
  }
  @media (max-width:920px){
    .hero-grid{grid-template-columns:1fr;}
    .hero-badge{position:static;transform:none;margin-top:16px;display:inline-block;}
    .hero{padding-top:40px;}
  }

  /* ================= SECTION HEADERS ================= */
  .section{padding:96px 0;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:52px;flex-wrap:wrap;}
  .section-head h2{font-size:clamp(1.9rem,3vw,2.6rem);max-width:16ch;}
  .section-head p{color:var(--slate);max-width:40ch;margin-top:10px;}
  .alt{background:var(--paper-dim);}

  /* ================= DIRECTOR WELCOME ================= */
  .welcome{padding:88px 0;position:relative;overflow:hidden;background:var(--paper-dim);}
  .welcome-quote-mark{
    position:absolute;top:-40px;left:calc(50% - 620px);font-family:'Fraunces',serif;font-size:340px;
    color:rgba(11,27,59,.05);line-height:1;user-select:none;pointer-events:none;font-weight:700;
  }
  .welcome-grid{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start;position:relative;z-index:1;}
  .welcome-portrait{position:relative;}
  .welcome-portrait-frame{
    border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;
    transform:rotate(-2deg);transition:transform .35s ease;
  }
  .welcome-portrait-frame:hover{transform:rotate(0deg);}
  .welcome-portrait-frame img{width:100%;height:360px;object-fit:cover;object-position:center 15%;}
  .welcome-portrait-badge{
    position:absolute;bottom:-18px;right:-18px;background:var(--marigold);color:var(--ink);
    width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    text-align:center;font-family:'Space Mono',monospace;font-size:.62rem;font-weight:700;line-height:1.3;
    letter-spacing:.03em;box-shadow:var(--shadow);transform:rotate(8deg);padding:6px;
  }
  .welcome-name{margin-top:28px;text-align:left;}
  .welcome-name b{display:block;font-family:'Fraunces',serif;font-size:1.05rem;color:var(--ink);}
  .welcome-name span{display:block;font-size:.82rem;color:var(--rust);font-weight:600;letter-spacing:.03em;text-transform:uppercase;margin-top:2px;}
  .welcome-body h2{font-size:clamp(1.6rem,3vw,2.2rem);max-width:16ch;margin-bottom:22px;}
  .welcome-body p{color:var(--slate);font-size:1.02rem;margin:0 0 18px;max-width:62ch;}
  .welcome-signature{
    margin-top:26px;font-family:'Fraunces',serif;font-style:italic;font-weight:600;font-size:1.4rem;
    color:var(--ink);border-top:1px dashed var(--line-strong);padding-top:20px;display:inline-block;
  }
  .welcome-signature small{
    display:block;font-family:'Space Mono',monospace;font-style:normal;font-size:.7rem;
    letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-top:6px;
  }
  @media (max-width:860px){
    .welcome-grid{grid-template-columns:1fr;}
    .welcome-portrait{max-width:240px;margin:0 auto;}
    .welcome-body{text-align:left;}
    .welcome-quote-mark{display:none;}
  }

  /* ================= ABOUT STRIP ================= */
  .about{padding:70px 0;border-bottom:1px solid var(--line);border-top:1px solid var(--line);}
  .about-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:26px;}
  .about-item{padding-left:18px;border-left:2px solid var(--marigold);}
  .about-item b{display:block;font-family:'Space Mono',monospace;color:var(--rust);font-size:.78rem;letter-spacing:.06em;margin-bottom:8px;}
  .about-item p{margin:0;font-size:.95rem;color:var(--slate);}
  @media (max-width:1080px){.about-grid{grid-template-columns:1fr 1fr 1fr;}}
  @media (max-width:720px){.about-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:480px){.about-grid{grid-template-columns:1fr;}}

  /* ================= CLASSES ================= */
  .classes-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
  .class-pill{
    border-radius:14px;padding:26px 18px;text-align:center;box-shadow:var(--shadow);
    transition:transform .25s ease;
  }
  .class-pill:hover{transform:translateY(-6px);}
  .class-pill.navy{background:var(--ink);color:var(--paper);}
  .class-pill.gold{background:var(--marigold);color:var(--ink);}
  .class-pill .ic{
    width:52px;height:52px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;
    font-size:1.4rem;
  }
  .class-pill.navy .ic{background:rgba(212,175,55,.18);}
  .class-pill.gold .ic{background:rgba(11,27,59,.12);}
  .class-pill.navy h4{color:var(--paper);}
  .class-pill.gold h4{color:var(--ink);}
  .class-pill h4{font-size:1.05rem;font-family:'Fraunces',serif;}
  @media (max-width:920px){.classes-grid{grid-template-columns:1fr 1fr 1fr;}}
  @media (max-width:600px){.classes-grid{grid-template-columns:1fr 1fr;}}

  /* ================= EVENTS ================= */
  .events-list{display:flex;flex-direction:column;}
  .event-row{
    display:grid;grid-template-columns:110px 1fr auto;gap:26px;align-items:center;
    padding:26px 8px;border-top:1px solid var(--line);transition:background .2s ease;
  }
  .event-row:last-child{border-bottom:1px solid var(--line);}
  .event-row:hover{background:rgba(212,175,55,.08);}
  .event-date{font-family:'Space Mono',monospace;text-align:center;background:var(--ink);color:var(--paper);border-radius:10px;padding:10px 6px;}
  .event-date .d{display:block;font-size:1.4rem;font-weight:700;}
  .event-date .m{display:block;font-size:.68rem;letter-spacing:.1em;color:var(--marigold);}
  .event-info h4{font-size:1.15rem;margin-bottom:6px;}
  .event-info p{margin:0;color:var(--slate);font-size:.92rem;}
  .event-tag{
    font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;
    padding:6px 12px;border-radius:999px;border:1px solid var(--line-strong);white-space:nowrap;height:fit-content;
  }
  @media (max-width:640px){
    .event-row{grid-template-columns:70px 1fr;}
    .event-tag{grid-column:2;justify-self:start;}
  }

  /* ================= GALLERY ================= */
  .gallery-grid{
    display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:14px;
  }
  .g-item{
    position:relative;overflow:hidden;border-radius:12px;cursor:pointer;
  }
  .g-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
  .g-item:hover img{transform:scale(1.08);}
  .g-item::after{
    content:"\2197";position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;
    background:rgba(250,248,242,.9);color:var(--ink);display:flex;align-items:center;justify-content:center;
    font-size:1rem;opacity:0;transform:translateY(-6px);transition:.25s;
  }
  .g-item:hover::after{opacity:1;transform:none;}
  .g-item.tall{grid-row:span 2;}
  .g-item.wide{grid-column:span 2;}
  @media (max-width:820px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .g-item.wide{grid-column:span 2;}
  }

  .lightbox{
    position:fixed;inset:0;background:rgba(11,27,59,.92);z-index:1000;
    display:flex;align-items:center;justify-content:center;padding:40px;
    opacity:0;pointer-events:none;transition:opacity .25s ease;
  }
  .lightbox.open{opacity:1;pointer-events:auto;}
  .lightbox img{max-width:min(900px,90vw);max-height:78vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.5);}
  .lightbox-cap{color:var(--paper);text-align:center;margin-top:16px;font-size:.9rem;opacity:.85;font-family:'Space Mono',monospace;}
  .lb-close,.lb-prev,.lb-next{
    position:absolute;background:rgba(250,248,242,.12);border:1px solid rgba(250,248,242,.3);color:var(--paper);
    width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:1.2rem;transition:background .2s ease;
  }
  .lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(250,248,242,.28);}
  .lb-close{top:26px;right:26px;}
  .lb-prev{left:26px;top:50%;transform:translateY(-50%);}
  .lb-next{right:26px;top:50%;transform:translateY(-50%);}
  @media (max-width:640px){.lb-prev,.lb-next{width:38px;height:38px;}}

  /* ================= ADMISSIONS ================= */
  .admit{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:flex-start;}
  .admit-steps{display:flex;flex-direction:column;gap:22px;margin-top:34px;}
  .admit-step{display:flex;gap:16px;}
  .admit-step .n{
    font-family:'Space Mono',monospace;font-weight:700;color:var(--rust);border:1px solid var(--line-strong);
    width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;font-size:.85rem;
  }
  .admit-step p{margin:0;color:var(--slate);font-size:.92rem;}
  .admit-step h5{font-family:'Inter';font-weight:600;margin-bottom:4px;font-size:.98rem;color:var(--ink);}

  .form-card{
    background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:38px;box-shadow:var(--shadow);
  }
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .field{margin-bottom:18px;}
  .field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:7px;color:var(--ink);}
  .field input,.field select,.field textarea{
    width:100%;padding:12px 14px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;border-color:var(--rust);box-shadow:0 0 0 3px rgba(196,16,46,.12);
  }
  .field textarea{resize:vertical;min-height:90px;}
  .field .err{color:var(--rust);font-size:.78rem;margin-top:6px;display:none;}
  .field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--rust);}
  .field.invalid .err{display:block;}
  .form-note{font-size:.78rem;color:var(--slate);margin-top:14px;}
  .form-success{
    display:none;text-align:center;padding:30px 10px;
  }
  .form-success.show{display:block;}
  .form-success .tick{
    width:52px;height:52px;border-radius:50%;background:var(--sage);color:#fff;display:flex;align-items:center;
    justify-content:center;margin:0 auto 16px;font-size:1.3rem;
  }
  @media (max-width:900px){.admit{grid-template-columns:1fr;}}
  @media (max-width:560px){.form-row{grid-template-columns:1fr;}}

  /* ================= TESTIMONIALS ================= */
  .testi-wrap{position:relative;max-width:760px;margin:0 auto;text-align:center;}
  .testi-slide{display:none;}
  .testi-slide.active{display:block;animation:fadein .5s ease;}
  @keyframes fadein{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
  .testi-quote{font-family:'Fraunces',serif;font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:500;font-style:italic;line-height:1.5;}
  .testi-person{margin-top:26px;display:flex;align-items:center;justify-content:center;gap:14px;}
  .testi-person img{width:50px;height:50px;border-radius:50%;object-fit:cover;}
  .testi-person div{text-align:left;}
  .testi-person b{display:block;font-size:.95rem;}
  .testi-person span{font-size:.8rem;color:var(--slate);}
  .testi-dots{display:flex;justify-content:center;gap:10px;margin-top:34px;}
  .testi-dots button{
    width:9px;height:9px;border-radius:50%;background:var(--line-strong);border:none;padding:0;transition:.2s;
  }
  .testi-dots button.active{background:var(--rust);width:24px;border-radius:6px;}
  .testi-arrows{display:flex;justify-content:center;gap:16px;margin-top:20px;}
  .testi-arrows button{
    width:38px;height:38px;border-radius:50%;border:1px solid var(--line-strong);background:none;color:var(--ink);
  }
  .testi-arrows button:hover{background:var(--ink);color:var(--paper);}

  /* ================= BLOG ================= */
  .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
  .blog-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:transform .25s ease, box-shadow .25s ease;}
  .blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
  .blog-card img{height:180px;object-fit:cover;}
  .blog-body{padding:22px;}
  .blog-meta{display:flex;gap:12px;font-family:'Space Mono',monospace;font-size:.72rem;color:var(--rust);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;}
  .blog-body h4{font-size:1.15rem;line-height:1.35;margin-bottom:10px;}
  .blog-body p{margin:0;color:var(--slate);font-size:.9rem;}
  .blog-read{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.85rem;font-weight:600;color:var(--ink);}
  .blog-read span{transition:transform .2s ease;}
  .blog-card:hover .blog-read span{transform:translateX(4px);}
  @media (max-width:900px){.blog-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:600px){.blog-grid{grid-template-columns:1fr;}}

  /* ================= FAQ ================= */
  .faq-wrap{max-width:820px;margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%;text-align:left;background:none;border:none;padding:24px 0;display:flex;
    justify-content:space-between;align-items:center;gap:20px;font-family:'Fraunces',serif;font-size:1.08rem;color:var(--ink);
  }
  .faq-q .plus{
    flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--line-strong);position:relative;transition:.25s;
  }
  .faq-q .plus::before,.faq-q .plus::after{
    content:"";position:absolute;background:var(--ink);top:50%;left:50%;transform:translate(-50%,-50%);
  }
  .faq-q .plus::before{width:10px;height:1.5px;}
  .faq-q .plus::after{width:1.5px;height:10px;transition:.25s;}
  .faq-item.open .faq-q .plus{background:var(--rust);border-color:var(--rust);}
  .faq-item.open .faq-q .plus::before,.faq-item.open .faq-q .plus::after{background:#fff;}
  .faq-item.open .faq-q .plus::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .faq-a p{margin:0 0 24px;color:var(--slate);max-width:65ch;font-size:.95rem;}

  /* ================= CONTACT ================= */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;}
  .contact-info{display:flex;flex-direction:column;gap:22px;margin-top:30px;}
  .contact-info-item{display:flex;gap:16px;align-items:flex-start;}
  .contact-info-item .ic{
    width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--marigold);display:flex;
    align-items:center;justify-content:center;flex:none;font-size:1.05rem;
  }
  .contact-info-item b{display:block;font-size:.95rem;margin-bottom:2px;}
  .contact-info-item span{color:var(--slate);font-size:.9rem;}
  .map-frame{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);margin-top:26px;box-shadow:var(--shadow);}
  .map-frame iframe{width:100%;height:260px;border:0;display:block;filter:grayscale(.15) contrast(1.05);}
  @media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}

  /* ================= FOOTER ================= */
  footer{background:var(--ink);color:var(--paper);padding:70px 0 30px;margin-top:0;}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(250,248,242,.14);}
  footer .brand{color:var(--paper);}
  footer .brand-mark{background:var(--marigold);color:var(--ink);}
  .foot-desc{color:rgba(250,248,242,.65);font-size:.9rem;margin-top:14px;max-width:32ch;}
  .foot-col h5{font-family:'Space Mono',monospace;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--marigold);margin-bottom:16px;}
  .foot-col a{display:block;color:rgba(250,248,242,.72);font-size:.9rem;padding:6px 0;transition:color .2s ease;}
  .foot-col a:hover{color:var(--paper);}
  .foot-newsletter input{
    width:100%;padding:11px 14px;border-radius:8px;border:1px solid rgba(250,248,242,.25);background:rgba(250,248,242,.06);
    color:var(--paper);margin-bottom:10px;
  }
  .foot-newsletter input::placeholder{color:rgba(250,248,242,.5);}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;flex-wrap:wrap;gap:12px;font-size:.82rem;color:rgba(250,248,242,.55);}
  .foot-social{display:flex;gap:12px;}
  .foot-social a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(250,248,242,.25);display:flex;align-items:center;justify-content:center;}
  .foot-social a:hover{background:var(--marigold);color:var(--ink);border-color:var(--marigold);}
  @media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:520px){.foot-grid{grid-template-columns:1fr;}}

  /* ================= BACK TO TOP ================= */
  .to-top{
    position:fixed;bottom:26px;left:26px;width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--paper);
    display:flex;align-items:center;justify-content:center;border:none;font-size:1.1rem;z-index:300;
    opacity:0;pointer-events:none;transition:opacity .25s ease, transform .2s ease;
  }
  .to-top.show{opacity:1;pointer-events:auto;}
  .to-top:hover{transform:translateY(-3px);}

  /* ================= CHATBOT ================= */
  .chat-toggle{
    position:fixed;bottom:26px;right:26px;width:60px;height:60px;border-radius:50%;background:var(--rust);color:#fff;
    border:none;box-shadow:var(--shadow);z-index:300;display:flex;align-items:center;justify-content:center;font-size:1.5rem;
    transition:transform .2s ease;
  }
  .chat-toggle:hover{transform:scale(1.06);}
  .chat-dot{position:absolute;top:6px;right:6px;width:11px;height:11px;background:var(--marigold);border-radius:50%;border:2px solid var(--paper);}
  .chat-window{
    position:fixed;bottom:98px;right:26px;width:340px;max-width:90vw;height:460px;max-height:75vh;background:#fff;
    border-radius:16px;box-shadow:0 30px 70px -20px rgba(11,27,59,.45);z-index:300;display:flex;flex-direction:column;
    overflow:hidden;transform:translateY(16px) scale(.97);opacity:0;pointer-events:none;transition:.22s ease;border:1px solid var(--line);
  }
  .chat-window.open{transform:none;opacity:1;pointer-events:auto;}
  .chat-head{background:var(--ink);color:var(--paper);padding:16px 18px;display:flex;align-items:center;gap:12px;}
  .chat-head .av{width:36px;height:36px;border-radius:50%;background:var(--marigold);color:var(--ink);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:700;}
  .chat-head b{display:block;font-size:.92rem;}
  .chat-head span{font-size:.74rem;color:rgba(250,248,242,.65);display:flex;align-items:center;gap:6px;}
  .chat-head span::before{content:"";width:7px;height:7px;background:var(--sage);border-radius:50%;}
  .chat-close{margin-left:auto;background:none;border:none;color:var(--paper);font-size:1.2rem;}
  .chat-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--paper-dim);}
  .msg{max-width:80%;padding:10px 14px;border-radius:14px;font-size:.86rem;line-height:1.45;}
  .msg.bot{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px;}
  .msg.user{background:var(--ink);color:var(--paper);align-self:flex-end;border-bottom-right-radius:4px;}
  .chat-quick{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 14px;background:var(--paper-dim);}
  .chat-quick button{
    font-size:.76rem;padding:7px 12px;border-radius:999px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);
  }
  .chat-quick button:hover{background:var(--ink);color:var(--paper);}
  .chat-input{display:flex;border-top:1px solid var(--line);padding:10px;gap:8px;background:#fff;}
  .chat-input input{flex:1;border:1px solid var(--line-strong);border-radius:999px;padding:10px 16px;font-size:.86rem;}
  .chat-input input:focus{outline:none;border-color:var(--rust);}
  .chat-input button{width:40px;height:40px;border-radius:50%;background:var(--rust);color:#fff;border:none;flex:none;}
  @media (max-width:480px){.chat-window{right:12px;left:12px;width:auto;bottom:92px;}.chat-toggle{right:16px;}.to-top{left:16px;}}

  /* ================= PAGE HEADER ================= */
  .page-head{
    padding:64px 0 40px;
    background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 37px, rgba(11,27,59,.05) 38px);
    border-bottom:1px solid var(--line);
  }
  .page-head h1{font-size:clamp(2rem,4vw,2.9rem);max-width:22ch;}
  .page-head p{color:var(--slate);margin-top:14px;max-width:56ch;font-size:1.05rem;}


  /* ================= JOURNAL LAYOUT ================= */
  .journal-shell{padding:56px 0 96px;}
  .journal-layout{display:grid;grid-template-columns:280px 1fr;gap:44px;align-items:start;}

  .cat-sidebar{
    position:sticky;top:92px;
    background:#fff;border:1px solid var(--line);border-radius:var(--radius);
    padding:10px;box-shadow:var(--shadow);
  }
  .cat-sidebar-title{
    font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--slate);padding:14px 16px 8px;
  }
  .cat-item{
    display:flex;align-items:center;gap:12px;width:100%;text-align:left;
    padding:13px 14px;border-radius:10px;border:none;background:none;
    font-size:.92rem;font-weight:600;color:var(--ink);transition:background .18s ease, color .18s ease;
    margin-bottom:2px;
  }
  .cat-item .ic{
    width:34px;height:34px;border-radius:9px;background:var(--paper-dim);color:var(--rust);
    display:flex;align-items:center;justify-content:center;font-size:1rem;flex:none;
  }
  .cat-item .meta{flex:1;min-width:0;}
  .cat-item .meta b{display:block;font-size:.92rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .cat-item .meta span{display:block;font-size:.76rem;color:var(--slate);font-weight:500;margin-top:1px;}
  .cat-item:hover{background:var(--paper-dim);}
  .cat-item.active{background:var(--ink);}
  .cat-item.active .meta b{color:var(--paper);}
  .cat-item.active .meta span{color:rgba(253,251,243,.65);}
  .cat-item.active .ic{background:var(--marigold);color:var(--ink);}

  @media (max-width:900px){
    .journal-layout{grid-template-columns:1fr;}
    .cat-sidebar{
      position:static;display:flex;overflow-x:auto;gap:8px;padding:12px;
      -webkit-overflow-scrolling:touch;
    }
    .cat-sidebar-title{display:none;}
    .cat-item{flex:none;width:auto;white-space:nowrap;margin-bottom:0;}
    .cat-item .meta span{display:none;}
  }

  .journal-content-head{
    display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
    margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--line);
  }
  .journal-content-head h2{font-size:clamp(1.5rem,2.6vw,2rem);}
  .journal-content-head p{color:var(--slate);margin-top:8px;max-width:52ch;font-size:.96rem;}
  .journal-count{
    font-family:'Space Mono',monospace;font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;
    padding:7px 14px;border-radius:999px;border:1px solid var(--line-strong);color:var(--slate);white-space:nowrap;
  }

  /* ================= BLOG CARD GRID (reused from homepage) ================= */
  .blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
  .blog-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:transform .25s ease, box-shadow .25s ease;cursor:pointer;display:block;}
  .blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
  .blog-card img{height:190px;object-fit:cover;width:100%;}
  .blog-body{padding:22px;}
  .blog-meta{display:flex;gap:12px;font-family:'Space Mono',monospace;font-size:.72rem;color:var(--rust);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;}
  .blog-body h4{font-size:1.15rem;line-height:1.35;margin-bottom:10px;}
  .blog-body p{margin:0;color:var(--slate);font-size:.9rem;}
  .blog-read{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.85rem;font-weight:600;color:var(--ink);}
  .blog-read span{transition:transform .2s ease;}
  .blog-card:hover .blog-read span{transform:translateX(4px);}
  @media (max-width:640px){.blog-grid{grid-template-columns:1fr;}}

  .fade-in{animation:fadein .35s ease;}
  @keyframes fadein{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

  
  /* ================= GALLERY LAYOUT ================= */
  .gallery-shell{padding:56px 0 96px;}
  .gallery-layout{display:grid;grid-template-columns:280px 1fr;gap:44px;align-items:start;}

  .event-sidebar{
    position:sticky;top:92px;
    background:#fff;border:1px solid var(--line);border-radius:var(--radius);
    padding:10px;box-shadow:var(--shadow);
  }
  .event-sidebar-title{
    font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--slate);padding:14px 16px 8px;
  }
  .event-item{
    display:flex;align-items:center;gap:12px;width:100%;text-align:left;
    padding:13px 14px;border-radius:10px;border:none;background:none;
    font-size:.92rem;font-weight:600;color:var(--ink);transition:background .18s ease, color .18s ease;
    margin-bottom:2px;
  }
  .event-item .ic{
    width:34px;height:34px;border-radius:9px;background:var(--paper-dim);color:var(--rust);
    display:flex;align-items:center;justify-content:center;font-size:1rem;flex:none;
  }
  .event-item .meta{flex:1;min-width:0;}
  .event-item .meta b{display:block;font-size:.92rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .event-item .meta span{display:block;font-size:.76rem;color:var(--slate);font-weight:500;margin-top:1px;}
  .event-item:hover{background:var(--paper-dim);}
  .event-item.active{background:var(--ink);}
  .event-item.active .meta b{color:var(--paper);}
  .event-item.active .meta span{color:rgba(253,251,243,.65);}
  .event-item.active .ic{background:var(--marigold);color:var(--ink);}

  @media (max-width:900px){
    .gallery-layout{grid-template-columns:1fr;}
    .event-sidebar{
      position:static;display:flex;overflow-x:auto;gap:8px;padding:12px;
      -webkit-overflow-scrolling:touch;
    }
    .event-sidebar-title{display:none;}
    .event-item{flex:none;width:auto;white-space:nowrap;margin-bottom:0;}
    .event-item .meta span{display:none;}
  }

  .event-content-head{
    display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
    margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--line);
  }
  .event-content-head h2{font-size:clamp(1.5rem,2.6vw,2rem);}
  .event-content-head p{color:var(--slate);margin-top:8px;max-width:52ch;font-size:.96rem;}
  .event-count{
    font-family:'Space Mono',monospace;font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;
    padding:7px 14px;border-radius:999px;border:1px solid var(--line-strong);color:var(--slate);white-space:nowrap;
  }

  .gallery-grid{
    display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:220px;gap:14px;
  }
  .g-item{position:relative;overflow:hidden;border-radius:12px;cursor:pointer;background:var(--paper-dim);}
  .g-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
  .g-item:hover img{transform:scale(1.08);}
  .g-item::after{
    content:"\2197";position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;
    background:rgba(253,251,243,.9);color:var(--ink);display:flex;align-items:center;justify-content:center;
    font-size:1rem;opacity:0;transform:translateY(-6px);transition:.25s;
  }
  .g-item:hover::after{opacity:1;transform:none;}
  .g-item.wide{grid-column:span 2;}
  .g-item .g-cap{
    position:absolute;left:0;right:0;bottom:0;padding:22px 14px 10px;
    background:linear-gradient(to top, rgba(11,27,59,.75), transparent);
    color:var(--paper);font-size:.8rem;font-weight:500;opacity:0;transition:opacity .25s ease;
  }
  .g-item:hover .g-cap{opacity:1;}
  @media (max-width:720px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px;}
    .g-item.wide{grid-column:span 2;}
  }
  @media (max-width:480px){
    .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px;}
  }

  .fade-in{animation:fadein .35s ease;}
  @keyframes fadein{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

  /* ================= LIGHTBOX ================= */
  .lightbox{
    position:fixed;inset:0;background:rgba(11,27,59,.92);z-index:1000;
    display:flex;align-items:center;justify-content:center;padding:40px;
    opacity:0;pointer-events:none;transition:opacity .25s ease;
  }
  .lightbox.open{opacity:1;pointer-events:auto;}
  .lightbox img{max-width:min(900px,90vw);max-height:78vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.5);}
  .lightbox-cap{color:var(--paper);text-align:center;margin-top:16px;font-size:.9rem;opacity:.85;font-family:'Space Mono',monospace;}
  .lb-close,.lb-prev,.lb-next{
    position:absolute;background:rgba(253,251,243,.12);border:1px solid rgba(253,251,243,.3);color:var(--paper);
    width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:1.2rem;transition:background .2s ease;
  }
  .lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(253,251,243,.28);}
  .lb-close{top:26px;right:26px;}
  .lb-prev{left:26px;top:50%;transform:translateY(-50%);}
  .lb-next{right:26px;top:50%;transform:translateY(-50%);}
  @media (max-width:640px){.lb-prev,.lb-next{width:38px;height:38px;}}


  /* ================= PAGE HERO ================= */
  .page-hero{
    padding:72px 0 56px;
    background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 37px, rgba(11,27,59,.05) 38px);
    border-bottom:1px solid var(--line);
    text-align:center;
  }
  .page-hero .eyebrow{justify-content:center;}
  .page-hero .eyebrow::before{display:none;}
  .page-hero h1{font-size:clamp(2.1rem,4.4vw,3.1rem);max-width:20ch;margin:0 auto;}
  .page-hero p{color:var(--slate);margin:18px auto 0;max-width:58ch;font-size:1.06rem;}
  .hero-strip{display:flex;justify-content:center;gap:48px;margin-top:40px;flex-wrap:wrap;}
  .hero-strip div{text-align:center;}
  .hero-strip b{display:block;font-family:'Fraunces',serif;font-size:1.7rem;color:var(--rust);}
  .hero-strip span{font-size:.82rem;color:var(--slate);}

  /* ================= DIRECTOR WELCOME (shared design) ================= */
  .welcome{padding:88px 0;position:relative;overflow:hidden;background:var(--paper-dim);}
  .welcome-quote-mark{
    position:absolute;top:-40px;left:calc(50% - 620px);font-family:'Fraunces',serif;font-size:340px;
    color:rgba(11,27,59,.05);line-height:1;user-select:none;pointer-events:none;font-weight:700;
  }
  .welcome-grid{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start;position:relative;z-index:1;}
  .welcome-portrait{position:relative;}
  .welcome-portrait-frame{
    border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;
    transform:rotate(-2deg);transition:transform .35s ease;
  }
  .welcome-portrait-frame:hover{transform:rotate(0deg);}
  .welcome-portrait-frame img{width:100%;height:360px;object-fit:cover;object-position:center 15%;}
  .welcome-portrait-badge{
    position:absolute;bottom:-18px;right:-18px;background:var(--marigold);color:var(--ink);
    width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    text-align:center;font-family:'Space Mono',monospace;font-size:.62rem;font-weight:700;line-height:1.3;
    letter-spacing:.03em;box-shadow:var(--shadow);transform:rotate(8deg);padding:6px;
  }
  .welcome-name{margin-top:28px;text-align:left;}
  .welcome-name b{display:block;font-family:'Fraunces',serif;font-size:1.05rem;color:var(--ink);}
  .welcome-name span{display:block;font-size:.82rem;color:var(--rust);font-weight:600;letter-spacing:.03em;text-transform:uppercase;margin-top:2px;}
  .welcome-body h2{font-size:clamp(1.6rem,3vw,2.2rem);max-width:16ch;margin-bottom:22px;}
  .welcome-body p{color:var(--slate);font-size:1.02rem;margin:0 0 18px;max-width:62ch;}
  .welcome-signature{
    margin-top:26px;font-family:'Fraunces',serif;font-style:italic;font-weight:600;font-size:1.4rem;
    color:var(--ink);border-top:1px dashed var(--line-strong);padding-top:20px;display:inline-block;
  }
  .welcome-signature small{
    display:block;font-family:'Space Mono',monospace;font-style:normal;font-size:.7rem;
    letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-top:6px;
  }
  @media (max-width:860px){
    .welcome-grid{grid-template-columns:1fr;}
    .welcome-portrait{max-width:240px;margin:0 auto;}
    .welcome-body{text-align:left;}
    .welcome-quote-mark{display:none;}
  }

  /* ================= MISSION / VISION FLIP CARDS ================= */
  .mv-section{padding:96px 0;}
  .mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
  .flip-card{
    perspective:1600px;height:340px;
  }
  .flip-inner{
    position:relative;width:100%;height:100%;transition:transform .7s cubic-bezier(.4,.2,.2,1);
    transform-style:preserve-3d;cursor:pointer;
  }
  .flip-card.flipped .flip-inner{transform:rotateY(180deg);}
  .flip-face{
    position:absolute;inset:0;backface-visibility:hidden;border-radius:20px;
    padding:44px 40px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow);
  }
  .flip-front{background:var(--ink);color:var(--paper);}
  .flip-front .mv-icon{
    width:64px;height:64px;border-radius:50%;background:rgba(212,175,55,.16);color:var(--marigold);
    display:flex;align-items:center;justify-content:center;font-size:1.7rem;margin-bottom:22px;
  }
  .flip-front h3{color:var(--paper);font-size:1.6rem;margin-bottom:10px;}
  .flip-front p{color:rgba(253,251,243,.7);font-size:.92rem;margin:0;}
  .flip-front .tap-hint{
    margin-top:auto;padding-top:18px;font-family:'Space Mono',monospace;font-size:.7rem;
    letter-spacing:.08em;text-transform:uppercase;color:var(--marigold);display:flex;align-items:center;gap:8px;
  }
  .flip-back{
    background:var(--marigold);color:var(--ink);transform:rotateY(180deg);
  }
  .flip-back h4{font-family:'Space Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:14px;}
  .flip-back p{font-size:1.05rem;line-height:1.55;margin:0;font-family:'Fraunces',serif;font-weight:500;}
  @media (max-width:820px){
    .mv-grid{grid-template-columns:1fr;}
    .flip-card{height:300px;}
  }

  /* ================= VALUES STRIP ================= */
  .values-strip{padding:0 0 96px;}
  .values-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;}
  .value-pill{
    text-align:center;padding:28px 14px;border-radius:14px;background:#fff;border:1px solid var(--line);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .value-pill:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
  .value-pill .ic{
    width:48px;height:48px;border-radius:50%;background:var(--paper-dim);color:var(--rust);
    display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin:0 auto 14px;
  }
  .value-pill h5{font-size:.92rem;margin-bottom:6px;}
  .value-pill p{font-size:.78rem;color:var(--slate);margin:0;}
  @media (max-width:920px){.values-grid{grid-template-columns:repeat(3,1fr);}}
  @media (max-width:600px){.values-grid{grid-template-columns:1fr 1fr;}}

  /* ================= FAQ (shared design) ================= */
  .faq-wrap{max-width:820px;margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%;text-align:left;background:none;border:none;padding:24px 0;display:flex;
    justify-content:space-between;align-items:center;gap:20px;font-family:'Fraunces',serif;font-size:1.08rem;color:var(--ink);
  }
  .faq-q .plus{
    flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--line-strong);position:relative;transition:.25s;
  }
  .faq-q .plus::before,.faq-q .plus::after{
    content:"";position:absolute;background:var(--ink);top:50%;left:50%;transform:translate(-50%,-50%);
  }
  .faq-q .plus::before{width:10px;height:1.5px;}
  .faq-q .plus::after{width:1.5px;height:10px;transition:.25s;}
  .faq-item.open .faq-q .plus{background:var(--rust);border-color:var(--rust);}
  .faq-item.open .faq-q .plus::before,.faq-item.open .faq-q .plus::after{background:#fff;}
  .faq-item.open .faq-q .plus::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .faq-a p{margin:0 0 24px;color:var(--slate);max-width:65ch;font-size:.95rem;}

  .section{padding:96px 0;}
  .section.alt{background:var(--paper-dim);}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:56px;flex-wrap:wrap;}
  .section-head p{color:var(--slate);max-width:40ch;font-size:.98rem;}
