:root{
    --ink:#0F3D3A;
    --ink-deep:#0A2B29;
    --paper:#F2EFE4;
    --paper-warm:#EAE4D2;
    --card:#FFFFFF;
    --gold:#E8A33D;
    --gold-deep:#C7842A;
    --clay:#B5533C;
    --text:#1B2B28;
    --text-soft:#4A5C58;
    --line: rgba(15,61,58,0.14);
    --radius: 18px;
    --shadow: 0 20px 50px -25px rgba(10,43,41,0.35);
    --serif: 'Fraunces', serif;
    --sans: 'Public Sans', sans-serif;
    --mono: 'IBM Plex Mono', monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
    font-family:var(--sans);
    color:var(--text);
    background:var(--paper);
    line-height:1.6;
    overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.container{max-width:1180px; margin:0 auto; padding:0 28px;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; letter-spacing:-0.01em; color:var(--ink-deep);}
.eyebrow{
    font-family:var(--mono); font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--gold-deep); font-weight:600; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:''; width:26px; height:1px; background:var(--gold-deep); display:inline-block;}
::selection{background:var(--gold); color:var(--ink-deep);}

  /* reveal-on-scroll */
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.16,.84,.44,1), transform .8s cubic-bezier(.16,.84,.44,1);}
  .reveal.in{opacity:1; transform:translateY(0);}
  .stagger > *{transition-delay:calc(var(--i,0) * 90ms);}

  /* ============ NAV ============ */
  .site-nav{
    position:sticky; top:0; z-index:100;
    background:rgba(242,239,228,0.86);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);
    transition:box-shadow .3s ease;
  }
  .site-nav.scrolled{box-shadow:0 8px 24px -18px rgba(10,43,41,0.4);}
  .nav-inner{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto;}
  .nav-brand{display:flex; align-items:center; gap:12px; font-family:var(--serif); font-weight:600; font-size:17px; color:var(--ink-deep);}
  .nav-brand .pin-mini{width:30px; height:30px;}
  .nav-links{display:flex; gap:28px; font-size:14.5px; font-weight:500; color:var(--text-soft);}
  .nav-links a{position:relative; padding:4px 0; transition:color .2s;}
  .nav-links a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold); transition:width .25s ease;}
  .nav-links a:hover{color:var(--ink-deep);}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{
    background:var(--ink); color:var(--paper); font-size:13.5px; font-weight:600;
    padding:10px 20px; border-radius:100px; letter-spacing:.01em;
    transition:transform .2s ease, background .2s ease;
  }
  .nav-cta:hover{background:var(--ink-deep); transform:translateY(-1px);}
  .nav-toggle{display:none;}

  /* ============ HERO ============ */
  .hero{
    position:relative; background:radial-gradient(120% 140% at 15% -10%, #14514C 0%, var(--ink) 46%, var(--ink-deep) 100%);
    color:var(--paper); overflow:hidden; padding:96px 0 120px;
  }
  .hero::before{
    content:''; position:absolute; inset:0; opacity:.12; pointer-events:none;
    background-image: radial-gradient(circle, rgba(242,239,228,.5) 1px, transparent 1px);
    background-size: 26px 26px;
  }
  .hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center; position:relative; z-index:2;}
  .hero-eyebrow{font-family:var(--mono); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:22px; display:flex; align-items:center; gap:10px;}
  .hero-eyebrow::before{content:''; width:26px; height:1px; background:var(--gold);}
  .hero h1{
    font-size:clamp(2.5rem, 5.4vw, 4.1rem); line-height:1.04; color:#fff; font-weight:600;
    margin-bottom:22px; letter-spacing:-0.02em;
  }
  .hero h1 em{font-style:italic; color:var(--gold); font-weight:450;}
  .hero p.lead{font-size:17.5px; color:rgba(242,239,228,.82); max-width:480px; margin-bottom:34px;}
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:52px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14.5px;
    padding:14px 26px; border-radius:100px; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, background .25s ease;
    cursor:pointer; border:none;
  }
  .btn-gold{background:var(--gold); color:var(--ink-deep); box-shadow:0 12px 28px -12px rgba(232,163,61,.55);}
  .btn-gold:hover{transform:translateY(-2px); box-shadow:0 16px 32px -12px rgba(232,163,61,.7);}
  .btn-ghost{background:transparent; color:var(--paper); border:1.5px solid rgba(242,239,228,.35);}
  .btn-ghost:hover{border-color:var(--paper); transform:translateY(-2px);}
  .hero-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid rgba(242,239,228,.18); padding-top:28px;}
  .hero-stat{padding-right:18px;}
  .hero-stat .num{font-family:var(--serif); font-size:clamp(1.6rem,2.6vw,2.1rem); color:var(--gold); font-weight:600; line-height:1;}
  .hero-stat .label{font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:rgba(242,239,228,.62); margin-top:8px;}

  /* pin badge visual */
  .hero-visual{position:relative; display:flex; align-items:center; justify-content:center;}
  .pin-orbit{position:relative; width:100%; max-width:400px; aspect-ratio:1;}
  .pin-ring{position:absolute; inset:0; border:1px dashed rgba(232,163,61,.35); border-radius:50%; animation:spin 40s linear infinite;}
  .pin-ring.two{inset:34px; border-color:rgba(242,239,228,.18); animation-duration:55s; animation-direction:reverse;}
  @keyframes spin{to{transform:rotate(360deg);}}
  .pin-badge{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:62%; animation:float 6s ease-in-out infinite;
  }
  @keyframes float{0%,100%{transform:translate(-50%,-50%) translateY(0);} 50%{transform:translate(-50%,-50%) translateY(-14px);}}
  .orbit-dot{position:absolute; width:10px; height:10px; border-radius:50%; background:var(--gold);}
  .orbit-dot.d1{top:2%; left:50%;}
  .orbit-dot.d2{top:50%; right:0%;}
  .orbit-dot.d3{bottom:6%; left:14%; background:var(--paper); opacity:.6;}

  /* ============ TICKER ============ */
  .ticker-wrap{background:var(--clay); color:#fff; overflow:hidden; white-space:nowrap; position:relative;}
  .ticker-wrap::before, .ticker-wrap::after{content:''; position:absolute; top:0; bottom:0; width:60px; z-index:2; pointer-events:none;}
  .ticker-wrap::before{left:0; background:linear-gradient(90deg, var(--clay), transparent);}
  .ticker-wrap::after{right:0; background:linear-gradient(-90deg, var(--clay), transparent);}
  .ticker-track{display:inline-flex; gap:64px; padding:12px 0; animation:ticker 32s linear infinite;}
  .ticker-track span{font-family:var(--mono); font-size:12.5px; letter-spacing:.03em; display:inline-flex; align-items:center; gap:10px;}
  .ticker-track span::before{content:'●'; color:var(--gold); font-size:8px;}
  @keyframes ticker{from{transform:translateX(0);} to{transform:translateX(-50%);}}

  /* ============ SECTION generic ============ */
  section{padding:108px 0;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem); margin-top:14px; line-height:1.12;}
  .section-head p{color:var(--text-soft); font-size:16px; margin-top:14px; max-width:560px;}

  /* ============ HISTORY ============ */
  .history{background:var(--card);}
  .history-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
  .history-figure{position:sticky; top:100px;}
  .history-figure img{border-radius:var(--radius); box-shadow:var(--shadow);}
  .history-figure figcaption{font-family:var(--mono); font-size:12px; color:var(--text-soft); margin-top:14px; letter-spacing:.03em;}
  .history-copy p{margin-bottom:18px; color:var(--text-soft); font-size:15.5px;}
  .history-copy p strong{color:var(--ink-deep);}
  .pull-quote{
    font-family:var(--serif); font-style:italic; font-size:22px; color:var(--ink-deep);
    border-left:3px solid var(--gold); padding-left:24px; margin:36px 0; line-height:1.45;
  }

  /* ============ MISSION/VISION ============ */
  .mv{background:var(--paper-warm);}
  .mv-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
  .mv-card{
    background:var(--card); border-radius:var(--radius); padding:44px 38px;
    box-shadow:var(--shadow); position:relative; overflow:hidden;
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .mv-card:hover{transform:translateY(-6px);}
  .mv-card .mv-icon{width:46px; height:46px; margin-bottom:22px;}
  .mv-card h3{font-size:23px; margin-bottom:14px;}
  .mv-card p{color:var(--text-soft); font-size:15.5px;}
  .mv-card::after{
    content:''; position:absolute; right:-40px; bottom:-40px; width:140px; height:140px; border-radius:50%;
    background:radial-gradient(circle, rgba(232,163,61,.14), transparent 70%);
  }

  /* ============ OBJECTIVES ============ */
  .objectives{background:var(--card);}
  .obj-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
  .obj-card{background:var(--card); padding:36px 32px; transition:background .3s ease;}
  .obj-card:hover{background:var(--paper-warm);}
  .obj-card .obj-icon{width:34px; height:34px; color:var(--gold-deep); margin-bottom:18px;}
  .obj-card h4{font-family:var(--sans); font-weight:700; font-size:15.5px; color:var(--ink-deep); margin-bottom:10px; line-height:1.3;}
  .obj-card p{font-size:14px; color:var(--text-soft);}

  /* ============ FACILITIES ============ */
  .facilities{background:var(--ink); color:var(--paper); position:relative; overflow:hidden;}
  .facilities .section-head h2, .facilities .eyebrow{color:var(--paper);}
  .facilities .eyebrow{color:var(--gold);}
  .facilities .section-head p{color:rgba(242,239,228,.7);}
  .fac-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  .fac-item{
    border:1px solid rgba(242,239,228,.16); border-radius:14px; padding:22px 20px;
    transition:border-color .3s ease, background .3s ease, transform .3s ease;
  }
  .fac-item:hover{border-color:var(--gold); background:rgba(232,163,61,.06); transform:translateY(-4px);}
  .fac-item .fac-num{font-family:var(--mono); font-size:11px; color:var(--gold); letter-spacing:.06em;}
  .fac-item h5{font-family:var(--sans); font-weight:600; font-size:14.5px; margin-top:10px; color:#fff;}
  .fac-group-label{font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin:44px 0 18px; opacity:.85;}
  .fac-group-label:first-of-type{margin-top:0;}

  /* ============ ADMISSION ============ */
  .admission{background:var(--paper-warm);}
  .adm-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; margin-bottom:80px;}
  .req-list{list-style:none;}
  .req-list li{
    display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); font-size:15px; color:var(--text-soft);
  }
  .req-list li:last-child{border-bottom:none;}
  .req-list .chk{
    width:22px; height:22px; border-radius:50%; background:var(--gold); flex-shrink:0;
    display:flex; align-items:center; justify-content:center; margin-top:1px;
  }
  .req-list .chk svg{width:12px; height:12px;}
  .req-list strong{color:var(--ink-deep); font-weight:600;}
  .adm-note{
    background:var(--card); border-radius:14px; padding:22px 24px; margin-top:8px;
    font-size:14px; color:var(--text-soft); border:1px solid var(--line);
  }
  .adm-note strong{color:var(--clay);}

  .timeline{position:relative; padding-left:36px;}
  .timeline::before{content:''; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:var(--line);}
  .tl-step{position:relative; padding-bottom:38px;}
  .tl-step:last-child{padding-bottom:0;}
  .tl-step::before{
    content:''; position:absolute; left:-36px; top:2px; width:20px; height:20px; border-radius:50%;
    background:var(--card); border:2.5px solid var(--gold); z-index:2;
  }
  .tl-step .tl-when{font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-deep); font-weight:600;}
  .tl-step h4{font-size:17px; margin:8px 0 6px;}
  .tl-step p{font-size:14.5px; color:var(--text-soft);}

  /* CTA banner */
  .cta-banner{
    background:linear-gradient(120deg, var(--clay), #8f3f2d); border-radius:24px; padding:52px 48px;
    color:#fff; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
    position:relative; overflow:hidden;
  }
  .cta-banner::before{
    content:''; position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:50%;
    background:radial-gradient(circle, rgba(255,255,255,.14), transparent 70%);
  }
  .cta-banner h3{color:#fff; font-size:26px; max-width:460px; position:relative; z-index:1;}
  .cta-banner p{color:rgba(255,255,255,.82); margin-top:10px; max-width:460px; font-size:14.5px; position:relative; z-index:1;}
  .cta-banner .fee-tag{
    font-family:var(--mono); font-size:13px; background:rgba(255,255,255,.14); padding:6px 14px;
    border-radius:100px; display:inline-block; margin-top:16px;
  }
  .cta-actions{position:relative; z-index:1; flex-shrink:0;}
  .btn-white{background:#fff; color:var(--clay); box-shadow:0 12px 28px -12px rgba(0,0,0,.35);}
  .btn-white:hover{transform:translateY(-2px);}

/* ============ PRINCIPAL ============ */
.principal{background:var(--card);}
.principal-grid{display:grid; grid-template-columns:0.55fr 1fr; gap:56px; align-items:center;}
.principal-photo{position:relative;}
.principal-photo img{border-radius:var(--radius); box-shadow:var(--shadow); aspect-ratio:4/5; object-fit:cover; width:100%;}
.principal-badge{
    position:absolute; bottom:-18px; left:-18px; background:var(--gold); color:var(--ink-deep);
    padding:12px 18px; border-radius:12px; font-family:var(--mono); font-size:12px; font-weight:600;
    box-shadow:0 12px 24px -10px rgba(0,0,0,.3);
}
.principal-copy .role{font-family:var(--mono); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:10px;}
.principal-copy h3{font-size:30px; margin-bottom:18px;}
.principal-copy p{color:var(--text-soft); font-size:15.5px; margin-bottom:16px;}

/* ============ FOOTER ============ */
footer{background:var(--ink-deep); color:rgba(242,239,228,.85); padding:80px 0 32px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(242,239,228,.14);}
.footer-brand{display:flex; align-items:center; gap:12px; font-family:var(--serif); font-size:19px; color:#fff; margin-bottom:16px;}
.footer-brand .pin-mini{width:32px; height:32px;}
.footer-col h5{font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:18px;}
.footer-col p, .footer-col a{font-size:14px; color:rgba(242,239,228,.7); display:block; margin-bottom:10px; transition:color .2s;}
.footer-col a:hover{color:var(--gold);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:28px; font-size:13px; color:rgba(242,239,228,.5); flex-wrap:wrap; gap:12px;}

/* ============ responsive ============ */
@media (max-width:920px){
    .nav-links{display:none;}
    .hero-grid{grid-template-columns:1fr;}
    .hero-visual{order:-1; max-width:280px; margin:0 auto 20px;}
    .hero-stats{grid-template-columns:repeat(2,1fr); row-gap:24px;}
    .history-grid, .mv-grid, .adm-grid, .principal-grid{grid-template-columns:1fr;}
    .history-figure{position:static;}
    .obj-grid{grid-template-columns:1fr 1fr;}
    .fac-grid{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr 1fr; row-gap:36px;}
    .principal-photo{max-width:320px; margin:0 auto;}
}
@media (max-width:560px){
    section{padding:72px 0;}
    .obj-grid{grid-template-columns:1fr;}
    .fac-grid{grid-template-columns:1fr;}
    .cta-banner{padding:36px 26px;}
    .footer-grid{grid-template-columns:1fr;}
    .hero{padding:76px 0 88px;}
}

@media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

:focus-visible{outline:2.5px solid var(--gold); outline-offset:3px;}