:root {
    box-sizing: border-box;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    --forest-900:#12301f;
    --forest-700:#1e4d2f;
    --forest-500:#3d7a52;
    --forest-200:#bcd6c3;
    --sun-500:#c99a3d;
    --paper-000:#fffdf7;
    --paper-100:#f5f1e6;
    --ink-900:#1a231d;
    --card-bg:#ffffff;
    --border-soft:rgba(18,48,31,0.14);
    --shadow-soft:0 10px 30px rgba(18,48,31,0.10);
    --shadow-lift:0 20px 50px rgba(18,48,31,0.20);
    --radius-lg:16px;
  }
  :root[data-theme="dark"]{
    --paper-000:#0f1a14; --paper-100:#132018; --ink-900:#eee9dc;
    --card-bg:#17261c; --border-soft:rgba(255,255,255,0.12);
    --forest-200:#294a35;
  }
  html{scroll-behavior:smooth; scroll-padding-top: calc(76px + env(safe-area-inset-top,0px));}
  *{box-sizing:border-box;}
  body{
    margin:0; background:var(--paper-000); color:var(--ink-900);
    font-family:'Work Sans', system-ui, -apple-system, sans-serif;
    line-height:1.65; -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  h1,h2,h3{font-family:'Spectral', Georgia, serif; margin:0 0 .4em; color:var(--ink-900); font-weight:600;}
  a{color:inherit;}
  button{font:inherit;}
  .wrap{max-width:1080px; margin:0 auto; padding:0 24px;}
  :focus-visible{outline:2px solid var(--sun-500); outline-offset:3px;}
  @media (prefers-reduced-motion: reduce){ *{transition:none !important; animation:none !important;} }

  /* nav */
  header{
    position:sticky; top:0; z-index:50;
    background:var(--paper-100);
  }
  .topbar{background:var(--forest-900); color:rgba(245,241,230,0.82); font-size:.8rem; padding-top: env(safe-area-inset-top, 0px);}
  .topbar .wrap{display:flex; justify-content:space-between; align-items:center; padding:9px 24px; gap:16px; flex-wrap:wrap;}
  .topbar-links{display:flex; gap:22px; flex-wrap:wrap;}
  .topbar a{color:inherit; text-decoration:none; display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
  .topbar a svg{width:13px; height:13px; flex:none;}
  .topbar a:hover{color:var(--sun-500);}
  .topbar .topbar-loc{white-space:nowrap; opacity:.85;}
  .navbar{
    background:var(--paper-100);
    background:color-mix(in srgb, var(--paper-100) 86%, transparent);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid var(--border-soft); position:relative;
  }
  .navbar::after{content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:linear-gradient(90deg, var(--forest-700), var(--sun-500)); opacity:.65;}
  nav.wrap{display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap:20px; position:relative;}
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
  .brand img{width:46px; height:46px; border-radius:50%; border:2px solid var(--sun-500); box-shadow:0 4px 12px rgba(18,48,31,0.18);}
  .brand span{font-family:'Spectral', serif; font-weight:600; font-size:1.1rem; color:var(--forest-900); line-height:1.15; letter-spacing:.01em;}
  .brand small{display:block; font-family:'Work Sans',sans-serif; font-weight:400; font-size:.7rem; color:var(--forest-500); letter-spacing:.03em;}
  .navlinks{display:flex; gap:24px; list-style:none; margin:0; padding:0;}
  .navlinks a{text-decoration:none; font-size:.92rem; color:var(--ink-900); white-space:nowrap; position:relative; padding-bottom:2px;}
  .navlinks a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--sun-500); transition:right .18s ease;}
  .navlinks a:hover{color:var(--forest-700);}
  .navlinks a:hover::after{right:0;}
  .nav-apply{white-space:nowrap; padding:10px 20px; font-size:.88rem;}

  /* hero */
  .hero{background:linear-gradient(180deg, var(--paper-100), var(--paper-000)); overflow:hidden; position:relative;}
  .hero-bg{position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;}
  .hero-inner{padding:44px 24px 40px; text-align:center; position:relative; z-index:1;}
  .hero img.logo{width:124px; height:124px; margin:0 auto 24px; border-radius:50%; box-shadow:var(--shadow-lift);}
  .hero h1{font-size:clamp(2rem, 4.4vw, 3.1rem); max-width:16ch; margin:0 auto .5em;}
  .hero p.tag{max-width:46ch; margin:0 auto 30px; font-size:1.1rem; color:var(--forest-500);}
  .cta-row{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
  .btn{display:inline-block; padding:13px 26px; border-radius:8px; text-decoration:none; font-size:.95rem; font-weight:500; border:1px solid transparent; transition:transform .15s ease, box-shadow .15s ease, background .15s ease; cursor:pointer;}
  .btn-primary{background:var(--forest-700); color:var(--paper-000); box-shadow:0 10px 22px rgba(18,48,31,0.26);}
  .btn-primary:hover{background:var(--forest-900); transform:translateY(-2px); box-shadow:0 16px 30px rgba(18,48,31,0.32);}
  .btn-ghost{border-color:var(--forest-700); color:var(--forest-700);}
  .btn-ghost:hover{background:var(--forest-200); transform:translateY(-2px);}
  .road{display:block; width:100%; height:auto; margin-top:-2px;}

  section{padding:72px 0;}
  section.alt{background:var(--paper-100);}
  .quote-strip{background:var(--forest-900); color:var(--paper-100); padding:44px 0;}
  .quote-strip .wrap{max-width:720px; text-align:center;}
  .quote-strip .mark{font-family:'Spectral',serif; font-size:2.8rem; color:var(--sun-500); line-height:1; margin-bottom:4px;}
  .quote-strip p{font-family:'Spectral',serif; font-style:italic; font-size:clamp(1.15rem,2.4vw,1.5rem); line-height:1.5; margin:0; color:var(--paper-100);}
  .section-head{max-width:60ch; margin-bottom:36px;}
  .section-head::before{content:""; display:block; width:44px; height:3px; border-radius:2px; background:var(--sun-500); margin-bottom:16px;}
  .section-head h2{font-size:clamp(1.5rem,3vw,2.1rem);}
  .section-head p{color:var(--forest-500); margin:0; font-size:1.02rem;}

  /* about */
  .about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center;}
  .about-grid ul{margin:18px 0 0; padding:0; list-style:none; display:grid; gap:10px;}
  .about-grid li{padding-left:22px; position:relative; font-size:.98rem;}
  .about-grid li::before{content:""; position:absolute; left:0; top:9px; width:8px; height:8px; background:var(--sun-500); border-radius:50%;}
  .about-art{background:var(--forest-700); border-radius:var(--radius-lg); aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; padding:20px; box-shadow:var(--shadow-soft);}
  .about-art svg{width:100%; height:100%;}

  /* admissions */
  .steps{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
  .step{background:var(--card-bg); border:1px solid var(--border-soft); border-radius:12px; padding:24px 20px; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
  .step:hover{transform:translateY(-5px); border-color:var(--forest-700); box-shadow:0 0 0 1px var(--forest-700), 0 18px 34px rgba(30,77,47,0.22);}
  .step .num{font-family:'Spectral',serif; font-size:1.6rem; color:var(--sun-500); font-weight:600; transition:color .18s ease;}
  .step:hover .num{color:var(--forest-700);}
  .step h3{font-size:1.02rem; margin:.3em 0 .3em;}
  .step p{margin:0; font-size:.9rem; color:var(--forest-500);}
  .adm-note{margin-top:28px; padding:16px 20px; background:var(--forest-200); border-radius:8px; font-size:.92rem;}

  /* courses */
  .grade-grid{display:flex; flex-wrap:wrap; gap:12px;}
  .grade{background:var(--forest-700); color:var(--paper-000); padding:11px 22px; border-radius:999px; font-size:.92rem; font-weight:500; border:none; cursor:pointer; appearance:none; -webkit-appearance:none; box-shadow:0 6px 14px rgba(18,48,31,0.18); transition:transform .15s ease, box-shadow .15s ease;}
  .grade:hover{transform:translateY(-3px); box-shadow:0 12px 22px rgba(18,48,31,0.26);}

  /* faculty */
  .fac-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .fac-card{text-align:center; background:var(--card-bg); border:1px solid var(--border-soft); border-radius:14px; padding:28px 18px; width:100%; cursor:pointer; appearance:none; -webkit-appearance:none; box-shadow:0 4px 16px rgba(18,48,31,0.06); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
  .fac-card:hover{transform:translateY(-5px); border-color:var(--sun-500); box-shadow:0 0 0 1px var(--sun-500), 0 20px 38px rgba(201,154,61,0.28);}
  .fac-avatar{width:76px; height:94px; border-radius:12px; background:var(--forest-700); color:var(--paper-000); display:flex; align-items:center; justify-content:center; font-family:'Spectral',serif; font-weight:600; font-size:1.1rem; margin:0 auto 14px; overflow:hidden;}
  .fac-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
  .fac-card h3{font-size:1.02rem; margin:0 0 2px;}
  .fac-card .role{font-size:.85rem; color:var(--sun-500); margin:0 0 8px; font-weight:500;}
  .fac-card p{margin:0; font-size:.88rem; color:var(--forest-500);}
  .fac-note{margin-top:20px; font-size:.82rem; color:var(--forest-500);}

  /* gallery */
  .life-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .life-card{--accent:var(--forest-700); background:var(--paper-000); border:1px solid var(--border-soft); border-radius:10px; padding:22px 16px 18px; text-align:center; box-shadow:0 8px 18px rgba(18,48,31,0.12); width:100%; cursor:pointer; appearance:none; -webkit-appearance:none; transform:rotate(var(--tilt,0deg)); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
  .life-card:hover{transform:rotate(var(--tilt,0deg)) translateY(-5px); border-color:var(--accent); box-shadow:0 0 0 1px var(--accent), 0 20px 38px color-mix(in srgb, var(--accent) 38%, transparent);}
  .life-card:nth-child(3n-1){--tilt:-1deg;}
  .life-card:nth-child(3n){--tilt:1deg;}
  .life-card.c-blue{--accent:#2f6fa3;}
  .life-card.c-purple{--accent:#7a4fa3;}
  .life-card.c-orange{--accent:#c9702f;}
  .life-card.c-pink{--accent:#b1487a;}
  .life-card.c-teal{--accent:#2f9e8f;}
  .life-card.c-gold{--accent:#c99a3d;}
  .life-card .icon-box{background:color-mix(in srgb, var(--accent) 16%, var(--paper-000)); border-radius:8px; padding:22px 10px; margin-bottom:12px; transition:background .18s ease;}
  .life-card:hover .icon-box{background:color-mix(in srgb, var(--accent) 26%, var(--paper-000));}
  .life-card svg{width:38px; height:38px; color:var(--accent);}
  .life-card h3{font-size:.98rem; margin:0 0 4px;}
  .life-card p{margin:0; font-size:.85rem; color:var(--forest-500);}

  /* map card */
  .map-card{position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); margin-bottom:36px;}
  .map-card svg{display:block; width:100%; height:auto;}
  .map-card .map-btn{position:absolute; left:20px; bottom:20px;}

  /* contact */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
  .info-row{display:flex; gap:12px; margin-bottom:18px; font-size:.95rem;}
  .info-row svg{width:20px; height:20px; flex:none; margin-top:2px; color:var(--forest-700);}
  .info-row a{text-decoration:none; border-bottom:1px dotted var(--forest-500);}
  form{display:grid; gap:14px;}
  form input, form textarea{
    font-family:inherit; padding:13px 14px; border-radius:8px; border:1px solid var(--border-soft);
    background:var(--card-bg); color:var(--ink-900); font-size:.95rem; width:100%;
  }
  form textarea{min-height:110px; resize:vertical;}
  form button{justify-self:start;}
  .placeholder-note{font-size:.8rem; color:var(--forest-500); margin-top:8px;}

  /* modal */
  .modal-overlay{position:fixed; inset:0; background:rgba(15,26,20,0.55); backdrop-filter:blur(3px); display:none; align-items:center; justify-content:center; z-index:300; padding:20px;}
  .modal-overlay.active{display:flex;}
  .modal-box{background:var(--card-bg); border-radius:var(--radius-lg); max-width:420px; width:100%; padding:32px 28px; box-shadow:0 30px 70px rgba(0,0,0,0.28); position:relative; max-height:85vh; overflow:auto;}
  .modal-close{position:absolute; top:14px; right:14px; background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--forest-500); line-height:1; padding:6px;}
  .modal-sub{color:var(--forest-500); font-size:.9rem; margin:-4px 0 18px;}
  .modal-stats{display:flex; gap:14px; margin:8px 0 18px;}
  .modal-stat{flex:1; text-align:center; background:var(--paper-100); border-radius:10px; padding:16px 8px;}
  .modal-stat .num{font-family:'Spectral',serif; font-size:1.7rem; font-weight:700; color:var(--forest-700);}
  .modal-stat .lbl{font-size:.78rem; color:var(--forest-500);}
  .modal-rows{display:grid; gap:10px; margin-bottom:16px;}
  .modal-row{display:flex; justify-content:space-between; gap:10px; font-size:.9rem; border-bottom:1px dashed var(--border-soft); padding-bottom:8px;}
  .modal-row span{color:var(--forest-500);}
  .modal-bio{font-size:.94rem; margin-bottom:14px;}
  .modal-footnote{font-size:.78rem; color:var(--forest-500);}
  .modal-avatar{width:100px; height:124px; border-radius:14px; background:var(--forest-700); color:var(--paper-000); display:none; align-items:center; justify-content:center; font-family:'Spectral',serif; font-weight:600; font-size:1.6rem; margin:0 auto 16px; box-shadow:0 10px 24px rgba(18,48,31,0.25); border:3px solid var(--sun-500); overflow:hidden;}
  .modal-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
  .modal-box.has-avatar #modalTitleText, .modal-box.has-avatar .modal-sub{text-align:center;}
  .photo-list{display:grid; gap:12px; margin:6px 0 16px;}
  .photo-item{display:flex; align-items:center; gap:14px; background:var(--paper-100); border-radius:10px; padding:12px 14px; text-align:left;}
  .photo-item .icon-wrap{width:44px; height:44px; border-radius:8px; background:var(--forest-200); display:flex; align-items:center; justify-content:center; flex:none;}
  .photo-item .icon-wrap svg{width:24px; height:24px; color:var(--forest-700);}
  .photo-item span{font-size:.92rem;}

  /* footer */
  footer{background:var(--forest-900); color:var(--paper-100); padding-top:56px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px; padding-bottom:32px; border-bottom:1px solid rgba(255,255,255,0.12);}
  .footer-logo-row{display:flex; align-items:center; gap:10px; margin-bottom:8px;}
  .footer-logo-row img{width:38px; height:38px; border-radius:50%;}
  .footer-logo-row span{font-family:'Spectral',serif; font-weight:600; font-size:1.02rem;}
  .footer-brand p{color:rgba(245,241,230,0.68); font-size:.88rem; margin:0;}
  footer h4{font-family:'Work Sans',sans-serif; font-size:.85rem; color:var(--sun-500); margin:0 0 14px; font-weight:600;}
  .footer-grid a{display:block; margin-bottom:9px; font-size:.9rem; color:rgba(245,241,230,0.85); text-decoration:none;}
  .footer-grid a:hover{color:var(--sun-500);}
  .footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding:20px 0; padding-bottom:calc(20px + env(safe-area-inset-bottom,0px)); font-size:.82rem; color:rgba(245,241,230,0.65);}
  .footer-bottom a{color:inherit; text-decoration:none;}
  .footer-bottom a:hover{color:var(--sun-500);}

  @media (max-width:820px){
    .about-grid, .contact-grid{grid-template-columns:1fr;}
    .steps{grid-template-columns:repeat(2,1fr);}
    .fac-grid{grid-template-columns:1fr;}
    .life-grid{grid-template-columns:repeat(2,1fr);}
    .navlinks{display:none;}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:480px){
    .steps{grid-template-columns:1fr;}
    .life-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
    .topbar-loc{display:none;}
    .nav-apply{display:none;}
  }

/* ---- multi-page additions ---- */
.page-banner{background:linear-gradient(135deg, var(--forest-900), var(--forest-700)); color:var(--paper-000); padding:56px 0; text-align:center;}
.page-banner h1{color:var(--paper-000); margin:0; font-size:clamp(1.8rem,4vw,2.4rem);}
.page-banner p{color:rgba(245,241,230,0.75); margin:.5em 0 0; font-size:.98rem;}

.navlinks a.active{color:var(--forest-700); font-weight:600;}
.navlinks a.active::after{right:0;}

a.life-card{text-decoration:none; display:block;}

@keyframes slideInLeft{from{transform:translateX(-40px);} to{transform:translateX(0);}}
@keyframes slideInRight{from{transform:translateX(40px);} to{transform:translateX(0);}}
.hero-inner .logo{animation:slideInLeft .7s ease both;}
.hero-inner h1{animation:slideInRight .7s ease .12s both;}
.hero-inner p.tag{animation:slideInRight .7s ease .24s both;}
.hero-inner .cta-row{animation:slideInRight .7s ease .36s both;}

.affil-bar{background:var(--sun-500); color:var(--forest-900); text-align:center; font-size:.74rem; font-weight:600; letter-spacing:.03em; padding:5px 12px; padding-top:calc(5px + env(safe-area-inset-top,0px));}
.school-code{display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
.school-code svg{width:13px; height:13px; flex:none;}

.founder-portrait{background:var(--paper-000); border:2px solid var(--sun-500); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); aspect-ratio:4/5; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; max-width:280px; margin:0 auto;}
.founder-portrait svg{width:52%; height:52%; color:var(--forest-700);}
.founder-caption{margin-top:14px; background:var(--forest-900); color:var(--paper-100); padding:8px 22px; border-radius:6px; text-align:center; font-family:'Spectral',serif; font-size:1rem;}
.founder-caption span{display:block; font-family:'Work Sans',sans-serif; font-size:.7rem; color:var(--sun-500); margin-top:2px; letter-spacing:.03em;}

.reveal{opacity:0; transform:translateY(28px); transition:opacity .6s ease, transform .6s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}
.reveal-left{opacity:0; transform:translateX(-45px); transition:opacity .6s ease, transform .6s ease;}
.reveal-left.is-visible{opacity:1; transform:translateX(0);}
.reveal-right{opacity:0; transform:translateX(45px); transition:opacity .6s ease, transform .6s ease;}
.reveal-right.is-visible{opacity:1; transform:translateX(0);}

@media (prefers-reduced-motion: reduce){
  .hero-inner .logo, .hero-inner h1, .hero-inner p.tag, .hero-inner .cta-row{animation:none !important; opacity:1 !important; transform:none !important;}
  .reveal, .reveal-left, .reveal-right{opacity:1 !important; transform:none !important; transition:none !important;}
}

/* ---- mobile nav toggle ---- */
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px; flex:none; margin:0;}
.nav-toggle svg{width:26px; height:26px; color:var(--forest-900); display:block;}
.mobile-apply-item{display:none;}

@media (max-width:820px){
  .nav-toggle{display:inline-flex; align-items:center; justify-content:center;}
  .nav-apply{display:none;}
  .navlinks{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; left:0; right:0;
    background:var(--paper-100); border-bottom:1px solid var(--border-soft);
    max-height:0; overflow:hidden; padding:0 24px;
    transition:max-height .3s ease;
  }
  .navlinks.open{max-height:420px; padding:10px 24px 22px;}
  .navlinks li{width:100%;}
  .navlinks a{display:block; padding:13px 0; border-bottom:1px solid var(--border-soft); font-size:1rem;}
  .navlinks a::after{display:none;}
  .mobile-apply-item{display:block;}
  .navlinks a.mobile-apply{background:var(--forest-700); color:var(--paper-000); text-align:center; border-radius:8px; border-bottom:none; margin-top:8px; padding:12px;}
}

/* ===== v2: no sideways scroll from slide-in animations ===== */
html{overflow-x:hidden;}
body{overflow-x:clip;}

/* ===== v2: header restructure (only the nav bar sticks) ===== */
header{position:static; display:contents;}
.navbar-outer{position:sticky; top:0; z-index:50; background:var(--paper-100); border-bottom:1px solid var(--border-soft);}
.navbar-outer::after{content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:linear-gradient(90deg,var(--forest-700),var(--sun-500)); opacity:.65; pointer-events:none;}
nav.navbar{background:transparent; border-bottom:none; -webkit-backdrop-filter:none; backdrop-filter:none;}
nav.navbar::after{display:none;}
.brand img{flex:none;}

/* ===== hero slider ===== */
.hero-slider{position:relative; overflow:hidden; height:clamp(440px,42vw,640px); background:#12301f;}
.hs-slide:nth-child(1){background-position:center 30%;}
.hs-track{position:absolute; inset:0;}
.hs-slide{position:absolute; inset:0; transform:translateX(100%); visibility:hidden; transition:transform .8s ease; background-size:cover; background-position:center; background-repeat:no-repeat;}
.hs-slide:first-child{transform:none; visibility:visible;}
.hs-slide.show{visibility:visible;}
.hs-slide::before{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,24,14,.72) 0%,rgba(8,24,14,.35) 55%,rgba(8,24,14,.08) 100%);}
.hs-caption{position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); padding:0 clamp(20px,7vw,96px); z-index:2;}
.hs-logo{margin-bottom:14px;}
.hs-logo img{width:68px; height:68px; border-radius:50%; border:2px solid var(--sun-500); background:#fff; box-shadow:0 8px 20px rgba(0,0,0,.35);}
.hs-box{max-width:560px;}
.hs-title{display:block; margin:0; background:var(--sun-500); color:var(--forest-900); font-size:clamp(1.35rem,4vw,2.3rem); line-height:1.2; padding:10px 18px; border-radius:6px 6px 0 0;}
.hs-text{margin:0; background:rgba(8,20,13,.66); color:#f5f1e6; padding:14px 18px; font-size:clamp(.92rem,2.3vw,1.08rem); line-height:1.6; border-radius:0 0 6px 6px;}
.hs-cta{margin-top:16px;}
.btn-gold{background:var(--sun-500); color:var(--forest-900); box-shadow:0 10px 22px rgba(0,0,0,.3);}
.btn-gold:hover{transform:translateY(-2px); background:#d8a94a;}
.hs-slide.active .hs-logo{animation:slideInLeft .7s ease both;}
.hs-slide.active .hs-box{animation:slideInLeft .7s ease .12s both;}
.hs-slide.active .hs-cta{animation:slideInRight .7s ease .3s both;}
.hs-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:44px; height:44px; border-radius:50%; border:none; background:rgba(255,255,255,.2); color:#fff; font-size:1.7rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.hs-arrow:hover{background:var(--sun-500); color:var(--forest-900);}
.hs-arrow.prev{left:16px;} .hs-arrow.next{right:16px;}
.hs-dots{position:absolute; bottom:16px; left:0; right:0; display:flex; justify-content:center; gap:9px; z-index:5;}
.hs-dots button{width:11px; height:11px; border-radius:50%; border:none; background:rgba(255,255,255,.5); cursor:pointer; padding:0;}
.hs-dots button.on{background:var(--sun-500); transform:scale(1.25);}

/* ===== news + founder ===== */
.nf-grid{display:grid; grid-template-columns:.85fr 1.6fr; gap:44px; align-items:start;}
.news-box{border-radius:14px; overflow:hidden; box-shadow:var(--shadow-soft); background:var(--card-bg); border:1px solid var(--border-soft);}
.news-head{margin:0; background:var(--forest-700); color:var(--paper-000); font-size:1.3rem; padding:14px 20px; text-align:center;}
.news-list{list-style:none; margin:0; padding:6px 20px 14px;}
.news-list li{border-bottom:1px solid var(--border-soft);}
.news-list li:last-child{border-bottom:none;}
.news-list a{display:block; padding:12px 0; text-decoration:none; color:var(--forest-700); font-size:.95rem; line-height:1.45;}
.news-list a:hover{color:var(--sun-500);}
.founder-block{display:grid; grid-template-columns:200px 1fr; gap:30px; align-items:center;}
.founder-circle{width:170px; height:212px; border-radius:18px; background:var(--paper-100); border:3px solid var(--sun-500); display:flex; align-items:center; justify-content:center; margin:0 auto; box-shadow:var(--shadow-soft); overflow:hidden;}
.founder-circle img{width:100%; height:100%; object-fit:cover; display:block;}
.founder-circle svg{width:58%; height:58%; color:var(--forest-700);}
.founder-cap{text-align:center; font-family:'Spectral',serif; font-style:italic; margin-top:12px; font-size:1.05rem;}
.founder-cap span{display:block; font-family:'Work Sans',sans-serif; font-style:normal; font-size:.8rem; color:var(--forest-500);}
.founder-text h2{font-size:clamp(1.5rem,3vw,2rem); color:var(--forest-700);}

/* ===== principal ===== */
.section-head.center{text-align:center; margin-left:auto; margin-right:auto;}
.section-head.center::before{margin-left:auto; margin-right:auto;}
.dots-line{display:flex; align-items:center; gap:14px; max-width:420px; margin:14px auto 0;}
.dots-line::before,.dots-line::after{content:""; flex:1; height:1px; background:var(--sun-500);}
.dots-line span{color:var(--sun-500); letter-spacing:4px; font-size:.8rem;}
.pr-grid{display:grid; grid-template-columns:220px 1fr; gap:38px; align-items:center; max-width:860px; margin:0 auto;}
.pr-avatar{width:170px; height:212px; border-radius:18px; background:var(--forest-700); color:var(--paper-000); display:flex; align-items:center; justify-content:center; font-family:'Spectral',serif; font-size:2.6rem; font-weight:600; border:3px solid var(--sun-500); margin:0 auto; box-shadow:var(--shadow-soft); overflow:hidden;}
.pr-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
.pr-quote{font-family:'Spectral',serif; font-style:italic; font-size:1.2rem; color:var(--forest-700); margin-top:0;}

/* ===== tiles ===== */
.tiles-intro{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; margin-bottom:36px;}
.tiles-intro h2{font-size:clamp(1.6rem,3.4vw,2.4rem); margin:0;}
.tiles-intro h2 em{color:var(--sun-500);}
.tiles-intro p{margin:0; color:var(--forest-500);}
.tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.tile{--accent:#2f6fa3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:220px; padding:20px; text-align:center; border-radius:12px; text-decoration:none; color:#fff; background:linear-gradient(150deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#0b1a12)); box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 35%,transparent); transition:transform .18s ease, box-shadow .18s ease;}
.tile:hover{transform:translateY(-6px); box-shadow:0 0 0 2px var(--accent), 0 22px 40px color-mix(in srgb,var(--accent) 45%,transparent);}
.tile svg{width:44px; height:44px;}
.tile span{font-family:'Spectral',serif; font-size:1.25rem; font-weight:600; line-height:1.25;}
.tile.t-blue{--accent:#2f6fa3;} .tile.t-orange{--accent:#c9702f;} .tile.t-teal{--accent:#2f9e8f;} .tile.t-gold{--accent:#a97c1f;}

/* ===== events carousel ===== */
.carousel{position:relative; padding:0 28px;}
.car-track{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; padding:8px 4px 18px;}
.car-track::-webkit-scrollbar{display:none;}
.car-item{--accent:var(--forest-700); flex:0 0 calc(25% - 12px); scroll-snap-align:start; text-decoration:none; text-align:center; background:var(--card-bg); border:1px solid var(--border-soft); border-radius:12px; padding:18px 14px; box-shadow:0 8px 18px rgba(18,48,31,.10); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.car-item:hover{transform:translateY(-5px); border-color:var(--accent); box-shadow:0 0 0 1px var(--accent), 0 18px 34px color-mix(in srgb,var(--accent) 38%,transparent);}
.car-ic{background:color-mix(in srgb,var(--accent) 16%,var(--paper-000)); border-radius:8px; padding:34px 10px; margin-bottom:12px;}
.car-ic svg{width:44px; height:44px; color:var(--accent);}
.car-item h3{font-size:1rem; margin:0; color:var(--ink-900);}
.car-item.c-blue{--accent:#2f6fa3;} .car-item.c-purple{--accent:#7a4fa3;} .car-item.c-orange{--accent:#c9702f;}
.car-item.c-pink{--accent:#b1487a;} .car-item.c-teal{--accent:#2f9e8f;} .car-item.c-gold{--accent:#c99a3d;}
.car-arrow{position:absolute; top:42%; transform:translateY(-50%); z-index:3; width:38px; height:38px; border-radius:50%; border:none; background:var(--forest-700); color:#fff; font-size:1.5rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(18,48,31,.3);}
.car-arrow:hover{background:var(--sun-500); color:var(--forest-900);}
.car-arrow.prev{left:-4px;} .car-arrow.next{right:-4px;}

/* ===== footer (dark, richer) ===== */
.footer-bottom{padding-left:24px; padding-right:24px;}
.footer-motto{text-align:center; padding-bottom:30px;}
.footer-motto p{font-family:'Spectral',serif; font-style:italic; font-size:clamp(1.05rem,2.2vw,1.35rem); color:rgba(245,241,230,.85); margin:0;}
.footer-brand p{margin:0 0 4px;}
.footer-grid a.footer-btn{display:inline-block; border:1px solid rgba(245,241,230,.5); padding:8px 14px; font-size:.85rem; margin:8px 8px 0 0; border-radius:4px;}
.footer-grid a.footer-btn:hover{border-color:var(--sun-500);}

/* ===== responsive ===== */
@media (max-width:900px){
  .nf-grid{grid-template-columns:1fr; gap:32px;}
  .tiles-intro{grid-template-columns:1fr; gap:14px;}
  .tiles{grid-template-columns:repeat(2,1fr);}
  .car-item{flex:0 0 calc(50% - 8px);}
}
@media (max-width:700px){
  .founder-block, .pr-grid{grid-template-columns:1fr; gap:18px;}
  .founder-text, .pr-text{text-align:center;}
}
@media (max-width:600px){
  .topbar .wrap{justify-content:center; padding:6px 16px;}
  .topbar{font-size:.72rem;}
  .topbar .topbar-mail, .topbar .topbar-loc{display:none;}
  .affil-bar{font-size:.7rem;}
  .hero-slider{height:480px;}
  .hs-caption{top:auto; bottom:48px; transform:none; padding:0 16px;}
  .hs-arrow{display:none;}
  .hs-logo{margin-bottom:10px;}
  .hs-logo img{width:54px; height:54px;}
  .hs-title{padding:8px 14px;}
  .hs-text{padding:12px 14px;}
  .hs-cta{margin-top:12px;}
  .tile{min-height:150px; padding:14px;}
  .tile span{font-size:1.05rem;}
  .car-item{flex:0 0 72%;}
  .carousel{padding:0;}
  .car-arrow{display:none;}
}
@media (prefers-reduced-motion: reduce){
  .hs-slide{transition:none;}
  .hs-slide.active .hs-logo,.hs-slide.active .hs-box,.hs-slide.active .hs-cta{animation:none !important;}
}

/* ===== previous-year toppers (inside class modal) ===== */
.toppers{margin-top:18px; padding-top:14px; border-top:1px dashed var(--border-soft);}
.toppers h4{margin:0 0 10px; font-size:.85rem; color:var(--forest-500); font-weight:600;}
.topper-row{display:flex; align-items:center; gap:10px; padding:7px 0;}
.rank-badge{width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:700; color:#fff; flex:none;}
.rank-badge.rank-1{background:#c99a3d;}
.rank-badge.rank-2{background:#9aa5ad;}
.rank-badge.rank-3{background:#b5723a;}
.topper-avatar{width:30px; height:30px; border-radius:50%; background:var(--forest-200); color:var(--forest-700); display:flex; align-items:center; justify-content:center; font-size:.66rem; font-weight:700; flex:none;}
.topper-name{flex:1; font-size:.88rem;}
.topper-pct{font-size:.85rem; font-weight:600; color:var(--forest-700); white-space:nowrap;}

/* ===== nav dropdown (Result) ===== */
.navlinks li.has-dropdown{position:relative;}
.navlinks .dropdown{list-style:none; margin:0; padding:8px 0; position:absolute; top:100%; left:0; min-width:170px; background:var(--card-bg); border:1px solid var(--border-soft); border-radius:8px; box-shadow:var(--shadow-soft); opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease, visibility .18s; z-index:10;}
.navlinks li.has-dropdown:hover .dropdown, .navlinks li.has-dropdown:focus-within .dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.navlinks .dropdown li{width:100%;}
.navlinks .dropdown a{display:block; padding:9px 18px; font-size:.88rem; border-bottom:none; white-space:nowrap;}
.navlinks .dropdown a:hover{background:var(--paper-100); color:var(--sun-500);}
@media (max-width:820px){
  .navlinks .dropdown{position:static; opacity:1; visibility:visible; transform:none; border:none; box-shadow:none; background:transparent; padding:0; margin-top:0; max-height:0; overflow:hidden; transition:max-height .25s ease;}
  .navlinks li.has-dropdown.open .dropdown{max-height:220px; padding-left:16px; margin-top:4px;}
  .navlinks li.has-dropdown > a{font-weight:600;}
  .navlinks .dropdown a{padding:10px 0; border-bottom:1px solid var(--border-soft); font-size:.92rem;}
}

/* ===== result tables & charts ===== */
.table-wrap{overflow-x:auto; margin-bottom:28px; border-radius:10px; box-shadow:var(--shadow-soft);}
table.result-table{width:100%; border-collapse:collapse; min-width:560px; background:var(--card-bg);}
table.result-table th{background:var(--forest-700); color:var(--paper-000); padding:11px 14px; font-size:.86rem; font-weight:600; text-align:center;}
table.result-table td{padding:10px 14px; text-align:center; font-size:.9rem; border-bottom:1px solid var(--border-soft);}
table.result-table tr:nth-child(even) td{background:var(--paper-100);}
.chart-legend{display:flex; gap:22px; justify-content:center; margin-bottom:10px; flex-wrap:wrap;}
.chart-legend span{display:inline-flex; align-items:center; gap:7px; font-size:.86rem; color:var(--forest-500);}
.chart-legend i{width:12px; height:12px; border-radius:3px; display:inline-block;}
.chart-box{background:var(--card-bg); border:1px solid var(--border-soft); border-radius:12px; padding:16px; box-shadow:var(--shadow-soft); margin-bottom:20px;}
.result-chart{width:100%; height:auto; display:block;}

/* ===== in the news: floating press clippings ===== */
#media{padding-bottom:52px;}
.clip-marquee{overflow:hidden; padding:26px 0 10px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.clip-track{display:flex; gap:22px; width:max-content; animation:clipScroll 34s linear infinite;}
.clip-marquee:hover .clip-track{animation-play-state:paused;}
.clip-card{--tilt:0deg; flex:0 0 220px; background:var(--paper-000); border:1px solid var(--border-soft); border-radius:4px; padding:22px 18px 16px; text-align:center; box-shadow:0 8px 18px rgba(18,48,31,0.12); transform:rotate(var(--tilt));}
.clip-card.t1{--tilt:-2deg;}
.clip-card.t2{--tilt:1.5deg;}
.clip-card.t3{--tilt:-1deg;}
.clip-icon{width:44px; height:44px; margin:0 auto 14px; color:var(--forest-700);}
.clip-icon svg{width:100%; height:100%;}
.clip-caption{font-family:'Spectral',serif; font-size:.96rem; line-height:1.35; margin:0 0 10px; color:var(--ink-900);}
.clip-tag{display:block; font-size:.66rem; letter-spacing:.05em; color:var(--sun-500); border-top:1px dashed var(--border-soft); padding-top:8px; text-transform:uppercase;}
@keyframes clipScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.clip-track{animation:none;}}
@media (max-width:600px){.clip-card{flex:0 0 170px; padding:18px 14px 14px;}}

/* ===== admissions sub-sections ===== */
.adm-block{margin-bottom:44px;}
.adm-block:last-of-type{margin-bottom:0;}
.adm-block h3{font-family:'Spectral',serif; font-size:1.3rem; color:var(--forest-700); margin:0 0 18px; padding-bottom:8px; border-bottom:2px solid var(--sun-500); display:inline-block;}
.elig-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:12px;}
.elig-card{background:var(--card-bg); border:1px solid var(--border-soft); border-radius:12px; padding:20px 14px; text-align:center; box-shadow:0 4px 14px rgba(18,48,31,0.06);}
.elig-age{display:block; font-family:'Spectral',serif; font-size:1.4rem; font-weight:700; color:var(--forest-700); margin-bottom:6px; line-height:1.2;}
.elig-class{display:block; font-size:.82rem; color:var(--forest-500);}
.doc-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 22px;}
.doc-list li{display:flex; align-items:flex-start; gap:10px; font-size:.92rem; padding:12px 14px; background:var(--card-bg); border:1px solid var(--border-soft); border-radius:8px;}
.doc-check{color:var(--forest-700); font-weight:700; flex:none;}
@media (max-width:700px){
  .elig-grid{grid-template-columns:repeat(2,1fr);}
  .doc-list{grid-template-columns:1fr;}
}
