/* Gyan Vigyan Vidyapith — homepage styles (assets/css/home.css)
 * Palette from the school logo: navy, ochre/gold, globe blue.
 * Signatures: gamosa woven border (Assam) + 3D globe hero + 3D class staircase.
 */
:root{
  --ink:#1C2554;
  --ink-2:#2A3570;
  --night:#0B1236;
  --night-2:#141C4D;
  --gold:#E3B04B;
  --gold-2:#C8902E;
  --ochre-soft:#F6EAD0;
  --blue:#2F5FA7;
  --sky:#6F9BE8;
  --gamosa:#B3202A;
  --paper:#FFFFFF;
  --tint:#F3F5FA;
  --line:#DDE1EA;
  --text:#262B45;
  --muted:#5A6080;

  --serif:'Literata', Georgia, 'Times New Roman', serif;
  --sans:'Mukta', 'Segoe UI', system-ui, -apple-system, sans-serif;

  --wrap:1180px;
  --gutter:20px;
  --r-sm:8px;
  --r-md:14px;
  --r-lg:22px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:var(--blue);text-decoration:none;}
a:hover{text-decoration:underline;text-underline-offset:3px;}
h1,h2,h3{margin:0;color:var(--ink);}
p{margin:0;}
ul,ol,dl,dd,figure{margin:0;padding:0;}
ul,ol{list-style:none;}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;}
address{font-style:normal;}
[hidden]{display:none !important;}
main,.site-footer{overflow-x:hidden;overflow-x:clip;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px;}

.icon{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);position:relative;}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:8px 14px;border-radius:var(--r-sm);}
.skip:focus{left:8px;}

/* ---------- gamosa woven border ---------- */
.gamosa{
  height:20px;background-color:#fff;background-repeat:repeat-x;background-position:center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='20'%3E%3Crect width='30' height='3' fill='%23B3202A'/%3E%3Crect y='17' width='30' height='3' fill='%23B3202A'/%3E%3Cpath d='M15 4.5 20.5 10 15 15.5 9.5 10z' fill='%23B3202A'/%3E%3Cpath d='M15 7.6 17.4 10 15 12.4 12.6 10z' fill='%23fff'/%3E%3Cpath d='M0 7.5 2.5 10 0 12.5zM30 7.5 27.5 10 30 12.5z' fill='%23B3202A'/%3E%3C/svg%3E");
}

/* ---------- type ---------- */
.h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.75rem,1.2rem + 1.9vw,2.6rem);line-height:1.15;letter-spacing:-.015em;}
.section-head{max-width:660px;margin-bottom:44px;}
.section-head .h2::after,.about-copy .h2::after,.contact-copy .h2::after{content:'';display:block;width:56px;height:4px;border-radius:4px;margin-top:16px;background:linear-gradient(90deg,var(--gold),var(--gold-2));}
.section-head p{margin-top:14px;color:var(--muted);font-size:1.12rem;}
.section-head-row{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.section-head-row > div{max-width:660px;}
.prose p+p{margin-top:12px;}
.text-link{font-weight:600;white-space:nowrap;}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:999px;font-weight:600;font-size:1rem;line-height:1;border:1.5px solid transparent;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,border-color .2s,color .2s;}
.btn:hover{text-decoration:none;transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn .icon{width:19px;height:19px;}
.btn-sm{min-height:40px;padding:0 16px;font-size:.95rem;}
.btn-lg{min-height:54px;padding:0 26px;font-size:1.05rem;}
.btn-ink{background:var(--ink);color:#fff;box-shadow:0 10px 24px -12px rgba(28,37,84,.7);}
.btn-ink:hover{background:var(--ink-2);}
.btn-line{border-color:var(--ink);color:var(--ink);background:#fff;}
.btn-line:hover{background:var(--tint);}
.btn-gold{background:linear-gradient(135deg,#F2CB74,var(--gold) 45%,var(--gold-2));color:#1A1A3A;box-shadow:0 12px 30px -10px rgba(227,176,75,.75),inset 0 1px 0 rgba(255,255,255,.5);}
.btn-gold:hover{box-shadow:0 18px 36px -10px rgba(227,176,75,.9),inset 0 1px 0 rgba(255,255,255,.5);}
.btn-glass{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:#fff;}
.btn-glass:hover{background:rgba(255,255,255,.16);}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;color:var(--ink);}
.icon-btn:hover{background:var(--tint);}
.round-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;border:1.5px solid currentColor;transition:background-color .2s,transform .2s;}
.round-btn:hover{transform:scale(1.06);}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:#fff;}
.site-header.scrolled{box-shadow:0 8px 24px -16px rgba(11,18,54,.4);}
.header-row{display:flex;align-items:center;gap:24px;min-height:74px;}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);min-width:0;}
.brand:hover{text-decoration:none;}
.brand img{width:48px;height:48px;border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 4px 14px -6px rgba(28,37,84,.5);}
.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0;}
.brand-text strong{font-family:var(--serif);font-weight:700;font-size:1.12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.brand-text span{font-size:.86rem;color:var(--muted);}
.main-nav{display:flex;gap:2px;margin-left:auto;}
.main-nav a{position:relative;padding:8px 13px;color:var(--text);font-weight:500;}
.main-nav a::after{content:'';position:absolute;left:13px;right:13px;bottom:3px;height:2px;border-radius:2px;background:var(--gold);transform:scaleX(0);transition:transform .25s var(--ease);}
.main-nav a:hover{text-decoration:none;color:var(--ink);}
.main-nav a:hover::after{transform:scaleX(1);}
.header-actions{display:flex;align-items:center;gap:6px;}
.menu-btn{display:none;}

.menu-backdrop{position:fixed;inset:0;background:rgba(11,18,54,.5);z-index:60;}
.mobile-menu{position:fixed;top:0;right:0;bottom:0;width:min(340px,88vw);background:#fff;z-index:61;display:flex;flex-direction:column;padding:12px 20px 24px;overflow-y:auto;box-shadow:-12px 0 30px rgba(11,18,54,.25);animation:slideIn .28s var(--ease);}
@keyframes slideIn{from{transform:translateX(100%);}to{transform:none;}}
.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding:6px 0 10px;border-bottom:1px solid var(--line);margin-bottom:6px;font-family:var(--serif);font-weight:700;color:var(--ink);font-size:1.15rem;}
.mobile-menu > a{padding:13px 2px;border-bottom:1px solid var(--line);color:var(--text);font-weight:500;}
.mobile-menu-foot{display:grid;gap:10px;margin-top:auto;padding-top:20px;}

/* =====================================================================
   HERO — night sky, rotating wireframe globe, 3D stage
   ===================================================================== */
.hero{
  position:relative;overflow:hidden;color:#DDE3F7;padding:76px 0 120px;isolation:isolate;
  background:
    radial-gradient(900px 520px at 78% 38%, rgba(66,96,200,.45), transparent 62%),
    radial-gradient(600px 400px at 8% 0%, rgba(227,176,75,.14), transparent 60%),
    linear-gradient(165deg,var(--night) 0%,var(--night-2) 55%,#1B2560 100%);
}
.hero-globe{position:absolute;z-index:-1;right:-90px;top:0;width:760px;height:760px;max-width:none;pointer-events:none;opacity:.95;
  background:radial-gradient(circle at 50% 50%,rgba(90,120,230,.26) 0%,rgba(90,120,230,0) 48%);}
.hero-grid-bg{position:absolute;z-index:-1;left:-20%;right:-20%;bottom:-2px;height:46%;pointer-events:none;
  background-image:linear-gradient(rgba(227,176,75,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(227,176,75,.22) 1px,transparent 1px);
  background-size:64px 64px;transform:perspective(520px) rotateX(62deg);transform-origin:bottom center;
  -webkit-mask-image:linear-gradient(to top,#000 0%,transparent 85%);mask-image:linear-gradient(to top,#000 0%,transparent 85%);}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center;}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;padding:7px 16px 7px 12px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#E9ECF8;font-size:.98rem;margin-bottom:22px;}
.live-dot{position:relative;width:9px;height:9px;border-radius:50%;background:#3DDC84;flex-shrink:0;}
.board-head .live-dot::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:2px solid #3DDC84;opacity:0;animation:ping 2.2s ease-out infinite;}
@keyframes ping{0%{transform:scale(.5);opacity:.8;}100%{transform:scale(1.6);opacity:0;}}
.hero h1{font-family:var(--serif);font-weight:700;color:#fff;font-size:clamp(2.4rem,1.3rem + 4vw,4.1rem);line-height:1.05;letter-spacing:-.025em;max-width:16ch;text-wrap:balance;text-shadow:0 2px 30px rgba(66,96,200,.35);}
.hero h1 em{font-style:italic;font-weight:600;color:var(--gold);}
.hero-lead{margin-top:22px;font-size:1.18rem;line-height:1.65;max-width:54ch;color:#C5CCE6;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;}
.facts{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:12px;margin-top:42px;}
.facts > div{padding:12px 18px 13px;border-radius:var(--r-md);background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.14);}
.facts dt{font-size:.85rem;color:#A9B2D6;}
.facts dd{font-family:var(--serif);font-weight:700;font-size:1.12rem;line-height:1.3;color:#fff;white-space:nowrap;}

/* 3D stage */
.hero-stage{position:relative;perspective:1500px;height:560px;}
.stage-inner{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(var(--ry,-16deg)) rotateX(var(--rx,7deg));transition:transform .5s var(--ease);}
.poster3d{position:absolute;right:2%;top:10px;width:290px;aspect-ratio:480/854;border-radius:28px;transform:translateZ(-40px);transform-style:preserve-3d;}
.poster3d img{position:relative;width:100%;height:100%;object-fit:cover;border-radius:28px;box-shadow:0 40px 80px -30px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.25);}
.poster3d::before{content:'';position:absolute;inset:0;border-radius:28px;background:#0A1030;transform:translateZ(-14px);}
.poster3d::after{content:'';position:absolute;inset:0;border-radius:28px;background:linear-gradient(120deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,0) 32%);pointer-events:none;}
.board{position:absolute;left:0;top:84px;width:min(410px,74%);z-index:2;background:#fff;color:var(--text);border-radius:var(--r-lg);transform:translateZ(70px);box-shadow:0 30px 60px -28px rgba(3,6,25,.8);overflow:hidden;}
.board::before{content:'';display:block;height:5px;background:linear-gradient(90deg,var(--gold),var(--gold-2) 50%,var(--sky));}
.board-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 10px;}
.board-head h2{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:700;font-size:1.25rem;}
.board-head a{font-weight:600;font-size:.95rem;}
.board-list{padding:0 20px;}
.board-list li{display:grid;grid-template-columns:50px 1fr;gap:14px;padding:12px 0;border-top:1px solid var(--line);}
.board-date{text-align:center;line-height:1.05;color:#fff;border-radius:10px;padding:7px 0 8px;align-self:start;background:linear-gradient(160deg,var(--ink-2),var(--ink));box-shadow:0 6px 14px -6px rgba(28,37,84,.6);}
.board-date b{display:block;font-family:var(--serif);font-size:1.25rem;font-weight:700;}
.board-date span{font-size:.78rem;color:#C9D0EE;}
.board-item h3{font-family:var(--sans);font-size:1rem;font-weight:600;line-height:1.35;color:var(--text);}
.board-item p{font-size:.93rem;color:var(--muted);margin-top:3px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.pin{display:inline-block;font-size:.74rem;font-weight:700;color:var(--gamosa);background:#FBEAEA;border-radius:4px;padding:1px 7px;}
.board-list li.board-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:26px 10px 24px;}
.board-empty .empty-ic{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:6px;
  background:linear-gradient(145deg,#F2CB74,var(--gold-2));color:#2A1C04;box-shadow:0 10px 20px -10px rgba(200,144,46,.8);}
.board-empty .empty-ic .icon{width:26px;height:26px;}
.board-empty b{font-family:var(--serif);font-size:1.1rem;color:var(--ink);}
.board-empty span{color:var(--muted);font-size:.95rem;max-width:30ch;}
.board-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:var(--ink);color:#fff;font-family:var(--sans);font-size:.78rem;font-weight:700;}
.board-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;}
.tag{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.01em;border-radius:4px;padding:1px 7px;background:#EEF1F8;color:var(--ink);}
.tag-urgent{background:#FBEAEA;color:var(--gamosa);}
.tag-admission{background:#E7F6EE;color:#13714A;}
.tag-event{background:#F3EAFB;color:#6B3FA0;}
.tag-academic{background:#E8F0FC;color:#2F5FA7;}
.tag-circular{background:var(--ochre-soft);color:#7A5514;}
.tag-new{background:#3DDC84;color:#063B1E;}
.board-when{font-size:.8rem;color:var(--muted);}
.board-list li.board-more{display:block;padding:10px 0 12px;text-align:center;}
.board-more a{font-weight:600;font-size:.95rem;}
.board-list li:not(.sk-line):not(.board-empty):not(.board-more){transition:background-color .2s;}
.board-list a.board-row{display:contents;color:inherit;}
.board-list a.board-row:hover h3{color:var(--blue);}
.board-foot{display:flex;gap:10px;align-items:flex-start;padding:13px 20px 15px;background:var(--tint);color:var(--text);font-size:.93rem;}
.board-foot:hover{text-decoration:none;color:var(--ink);}
.board-foot .icon{color:var(--gold-2);margin-top:2px;}
.chip{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;font-weight:600;font-size:.95rem;color:#fff;
  background:linear-gradient(160deg,rgba(28,37,84,.92),rgba(20,28,77,.78));border:1px solid rgba(255,255,255,.22);
  box-shadow:0 18px 40px -14px rgba(0,0,0,.7);}
.chip .icon{width:18px;height:18px;padding:3px;border-radius:50%;box-sizing:content-box;background:var(--gold);color:#1A1A3A;stroke-width:2.6;}
.chip-a{right:-2%;top:120px;transform:translateZ(130px);animation-delay:-1s;}
.chip-b{right:30%;top:16px;transform:translateZ(100px);animation-delay:-3s;}
.chip-c{right:-3%;bottom:70px;transform:translateZ(160px);animation-delay:-4.5s;}
@keyframes floatY{0%,100%{translate:0 0;}50%{translate:0 -12px;}}

/* entrance */
@media (prefers-reduced-motion:no-preference){
  .hero-copy > *{animation:rise .8s var(--ease) both;}
  .hero-copy > :nth-child(2){animation-delay:.08s;}
  .hero-copy > :nth-child(3){animation-delay:.16s;}
  .hero-copy > :nth-child(4){animation-delay:.24s;}
  .hero-copy > :nth-child(5){animation-delay:.32s;}
  .hero-stage{animation:stageIn 1.1s .15s var(--ease) both;}
}
@keyframes rise{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
@keyframes stageIn{from{opacity:0;transform:translateY(40px) scale(.94);}to{opacity:1;transform:none;}}

/* skeletons */
.sk-line,.sk-card{position:relative;overflow:hidden;background:var(--tint);}
.sk-line{height:54px;border-radius:var(--r-sm);margin:12px 0;}
.sk-card{height:300px;border-radius:var(--r-md);}
.sk-photo{height:220px;}
.sk-line::after,.sk-card::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.7) 50%,transparent 70%);transform:translateX(-100%);animation:sk 1.4s ease-in-out infinite;}
@keyframes sk{to{transform:translateX(100%);}}

/* ---------- scroll reveal (enabled by JS) ---------- */
html.fx .reveal{opacity:0;transform:perspective(1000px) rotateX(12deg) translateY(40px);transform-origin:center top;transition:opacity .9s var(--ease),transform .9s var(--ease);}
html.fx .reveal.in{opacity:1;transform:none;}

/* ---------- tilt cards (enabled by JS on fine pointers) ---------- */
.tilt{transform-style:preserve-3d;transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.tilt.tilting{transition:transform .08s linear,box-shadow .2s;will-change:transform;}
.tilt .glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;z-index:3;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.28),transparent 55%);}
.tilt.tilting .glare{opacity:1;}

/* ---------- sections ---------- */
.section{padding:96px 0;position:relative;}
.section-tint{background:var(--tint);}

/* about + letter */
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start;}
.about-photo{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-lg);margin-bottom:28px;box-shadow:0 30px 60px -30px rgba(11,18,54,.5);}
.about-copy .prose{margin-top:20px;font-size:1.12rem;max-width:58ch;}
.ticks{margin-top:26px;display:grid;gap:12px;}
.ticks li{position:relative;padding-left:34px;}
.ticks li::before{content:'';position:absolute;left:0;top:.3em;width:22px;height:22px;border-radius:50%;background:linear-gradient(145deg,#F2CB74,var(--gold-2));box-shadow:0 4px 10px -4px rgba(200,144,46,.8),inset 0 1px 0 rgba(255,255,255,.6);}
.ticks li::after{content:'';position:absolute;left:8px;top:calc(.3em + 5px);width:6px;height:10px;border:solid #fff;border-width:0 2.4px 2.4px 0;transform:rotate(45deg);}
.numbers{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin-top:32px;}
.numbers > div{display:flex;flex-direction:column-reverse;padding:16px 18px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line);box-shadow:0 14px 30px -22px rgba(11,18,54,.45);}
.numbers dd{font-family:var(--serif);font-size:2rem;font-weight:700;color:var(--ink);line-height:1.1;}
.numbers dt{font-size:.92rem;color:var(--muted);}

.letter{position:relative;border-radius:var(--r-lg);padding:30px 32px 32px;color:#DDE3F7;overflow:hidden;
  background:radial-gradient(500px 260px at 100% 0%,rgba(66,96,200,.5),transparent 60%),linear-gradient(160deg,var(--night-2),var(--ink));
  box-shadow:0 40px 70px -35px rgba(11,18,54,.8);}
.letter::before{content:'\201C';position:absolute;right:22px;top:-18px;font-family:var(--serif);font-size:9rem;line-height:1;color:rgba(227,176,75,.22);pointer-events:none;}
.letter.is-loading .letter-panel{visibility:hidden;min-height:220px;}
.letter-tabs{display:flex;gap:6px;margin-bottom:22px;flex-wrap:wrap;position:relative;}
.letter-tab{padding:7px 16px;border-radius:999px;font-weight:600;color:#A9B2D6;border:1px solid transparent;}
.letter-tab:hover{color:#fff;}
.letter-tab.active{color:#1A1A3A;background:var(--gold);}
.letter-panel{display:none;position:relative;}
.letter-panel.active{display:block;}
.letter-text{font-family:var(--serif);font-size:1.14rem;line-height:1.75;color:#EEF1FB;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;}
.letter-text.expanded{display:block;-webkit-line-clamp:unset;}
.letter-more{display:none;margin-top:10px;font-weight:600;color:var(--gold);}
.letter-more.show{display:inline-block;}
.letter-sign{display:flex;align-items:center;gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);}
.letter-sign b{display:block;color:#fff;font-weight:600;}
.letter-sign span{font-size:.93rem;color:#A9B2D6;}
.avatar{width:54px;height:54px;border-radius:50%;background:var(--gold) center/cover no-repeat;color:#1A1A3A;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;flex-shrink:0;box-shadow:0 0 0 3px rgba(255,255,255,.15);}

/* ---------- classes: colourful 3D staircase on graph paper ---------- */
.section-graph{background-color:#F6F8FC;
  background-image:linear-gradient(rgba(47,95,167,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(47,95,167,.08) 1px,transparent 1px);
  background-size:26px 26px;}
.stairs{display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));align-items:end;padding:90px 30px 0 0;}
/* one colour family per step: front (c1→c2), top face, side face */
.stairs li{--c1:#4B5BD6;--c2:#2D3A9E;--top1:#C9CEFA;--top2:#9EA7F2;--side:#1E2878;}
.stairs li:nth-child(6n+1){--c1:#F59E4C;--c2:#D9702A;--top1:#FFE0B8;--top2:#FFC285;--side:#A8501B;}
.stairs li:nth-child(6n+2){--c1:#2FBF7E;--c2:#17905A;--top1:#C6F3DD;--top2:#8EE2BA;--side:#0E6A41;}
.stairs li:nth-child(6n+3){--c1:#3F95E8;--c2:#2265BD;--top1:#CFE5FB;--top2:#9ACBF6;--side:#174A8C;}
.stairs li:nth-child(6n+4){--c1:#6A5BE0;--c2:#4637B5;--top1:#DCD6FB;--top2:#B5AAF5;--side:#30248A;}
.stairs li:nth-child(6n+5){--c1:#1DAAB0;--c2:#117C82;--top1:#C4F0F1;--top2:#86DEE1;--side:#0A5A5E;}
.stairs li:nth-child(6n+6){--c1:#E0507F;--c2:#B4305B;--top1:#FAD2DF;--top2:#F4A4BF;--side:#871F42;}
.stairs li{display:flex;flex-direction:column;justify-content:flex-end;position:relative;z-index:calc(var(--i) + 1);}
.step{position:relative;height:calc(130px + var(--i) * 42px);padding:18px 16px;color:#fff;display:flex;flex-direction:column;gap:12px;overflow:visible;
  background:linear-gradient(165deg,var(--c1) 0%,var(--c2) 100%);transform-origin:bottom;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 34px 30px -24px rgba(11,18,54,.45);
  transition:transform .35s var(--ease),filter .35s;}
.step::before{content:'';position:absolute;left:0;right:0;bottom:100%;height:28px;transform:skewX(-45deg);transform-origin:bottom left;
  background:linear-gradient(90deg,var(--top1),var(--top2));}
.step::after{content:'';position:absolute;top:0;left:100%;width:28px;height:100%;transform:skewY(-45deg);transform-origin:top left;
  background:var(--side);background:linear-gradient(180deg,var(--side),color-mix(in srgb,var(--side) 70%,#000));}
.step .icon{width:42px;height:42px;padding:9px;border-radius:12px;box-sizing:border-box;color:#fff;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);}
.step h3{color:#fff;font-family:var(--serif);font-weight:700;font-size:1.1rem;line-height:1.25;text-shadow:0 1px 8px rgba(0,0,0,.18);}
.step-no{position:absolute;right:12px;top:10px;font-family:var(--serif);font-weight:700;font-size:2.7rem;line-height:1;color:rgba(255,255,255,.2);pointer-events:none;}
.stairs p{min-height:8.5em;margin:18px 14px 0 0;padding:12px 14px 14px;border-radius:12px;background:#fff;border-top:3px solid var(--c1);
  color:var(--muted);font-size:.93rem;line-height:1.5;box-shadow:0 12px 26px -20px rgba(11,18,54,.55);}
.stairs p:empty{display:none;}
.grad-cap{position:absolute;left:calc(50% + 14px);top:-82px;transform:translateX(-50%);z-index:5;width:58px;height:58px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#F2CB74,var(--gold-2));color:#1C2554;
  box-shadow:0 14px 24px -10px rgba(200,144,46,.8),inset 0 2px 0 rgba(255,255,255,.55);}
.grad-cap .icon{width:30px;height:30px;}
.grad-cap::after{content:'';position:absolute;top:100%;left:50%;width:2px;height:16px;background:var(--gold-2);transform:translateX(-50%);}
.stairs li:hover .step{transform:translateY(-8px);filter:saturate(1.1) brightness(1.05);transition-delay:0s;}
html.fx .stairs .step{transform:scaleY(0);transition:transform .9s var(--ease),filter .35s;transition-delay:calc(var(--i) * .12s);}
html.fx .stairs.in .step{transform:none;}
html.fx .stairs.in li:hover .step{transform:translateY(-8px);transition-delay:0s;}
html.fx .stairs p{opacity:0;transform:translateY(10px);transition:opacity .6s,transform .6s var(--ease);transition-delay:calc(.5s + var(--i) * .12s);}
html.fx .stairs.in p{opacity:1;transform:none;}
html.fx .stairs .grad-cap{opacity:0;transform:translate(-50%,-30px);transition:opacity .5s,transform .7s cubic-bezier(.3,1.6,.5,1);transition-delay:calc(.4s + var(--i) * .12s);}
html.fx .stairs.in .grad-cap{opacity:1;transform:translate(-50%,0);}
html.fx .stairs.reveal{opacity:1;transform:none;}

/* facilities */
.facility-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.facility{position:relative;padding:26px 24px 28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:0 20px 40px -30px rgba(11,18,54,.45);}
.facility:hover{box-shadow:0 34px 60px -30px rgba(11,18,54,.55);}
.facility-media{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:20px;
  background:linear-gradient(145deg,#F2CB74,var(--gold-2));box-shadow:0 14px 24px -10px rgba(200,144,46,.75),inset 0 2px 0 rgba(255,255,255,.55),inset 0 -4px 0 rgba(0,0,0,.08);transform:translateZ(40px);}
.facility-media.has-img{width:auto;height:auto;aspect-ratio:4/3;margin:-26px -24px 20px;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--tint);box-shadow:none;transform:none;}
.facility-media .icon{width:30px;height:30px;color:#2A1C04;stroke-width:1.9;}
.facility-media img{width:100%;height:100%;object-fit:cover;}
.facility h3{font-family:var(--serif);font-weight:700;font-size:1.22rem;transform:translateZ(24px);}
.facility p{color:var(--muted);margin-top:8px;transform:translateZ(14px);}

/* ---------- parent app: coverflow ---------- */
.app-band{position:relative;overflow:hidden;color:#C5CCE6;padding:100px 0 96px;
  background:radial-gradient(800px 420px at 50% 40%,rgba(66,96,200,.55),transparent 65%),
             radial-gradient(1.2px 1.2px at 20% 30%,rgba(255,255,255,.7),transparent),
             radial-gradient(1.2px 1.2px at 70% 15%,rgba(255,255,255,.6),transparent),
             radial-gradient(1px 1px at 85% 60%,rgba(255,255,255,.6),transparent),
             radial-gradient(1px 1px at 35% 80%,rgba(255,255,255,.5),transparent),
             radial-gradient(1.4px 1.4px at 55% 55%,rgba(255,255,255,.5),transparent),
             linear-gradient(180deg,var(--night),var(--night-2));}
.app-head{text-align:center;max-width:720px;margin:0 auto;}
.app-head .h2{color:#fff;}
.app-head p{margin-top:16px;font-size:1.12rem;}
.coverflow{margin-top:26px;margin-left:calc(50% - 50vw);width:100vw;}
.shots{display:flex;align-items:center;overflow-x:auto;scroll-snap-type:x mandatory;padding:50px calc(50% - 125px) 70px;perspective:1400px;scrollbar-width:none;}
.shots::-webkit-scrollbar{display:none;}
.shots img{width:250px;height:auto;flex-shrink:0;margin:0 -24px;border-radius:22px;scroll-snap-align:center;background:#2A3570;
  box-shadow:0 40px 60px -30px rgba(0,0,0,.8);transition:transform .45s var(--ease),opacity .45s,filter .45s;cursor:pointer;}
.shots-nav{display:flex;align-items:center;justify-content:center;gap:16px;color:#fff;}
.shots-nav .round-btn:hover{background:rgba(255,255,255,.12);}
.shots-dots{display:flex;gap:7px;}
.shots-dots span{width:7px;height:7px;border-radius:999px;background:rgba(255,255,255,.3);transition:width .3s,background-color .3s;}
.shots-dots span.on{width:22px;background:var(--gold);}
.app-foot{display:flex;flex-direction:column;align-items:center;gap:26px;margin-top:44px;}
.feature-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:880px;}
.feature-pills li{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;color:#fff;font-weight:500;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);}
.feature-pills .icon{width:17px;height:17px;color:var(--gold);}
.app-cta{text-align:center;}
.app-note{margin-top:12px;font-size:.95rem;color:#A9B0D0;}

/* ---------- people (faculty, achievers) ---------- */
.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 24px;}
.person{position:relative;border-radius:var(--r-lg);}
.person-photo{position:relative;aspect-ratio:1/1;border-radius:var(--r-lg);overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 30% 20%,#3B4CA8,var(--ink) 70%);box-shadow:0 26px 50px -30px rgba(11,18,54,.7);}
.person-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(11,18,54,.35));pointer-events:none;}
.person-photo .initials{font-family:var(--serif);font-weight:700;font-size:2.6rem;color:rgba(255,255,255,.9);text-shadow:0 4px 20px rgba(0,0,0,.3);}
.person-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;}
.person h3{font-family:var(--sans);font-weight:600;font-size:1.08rem;margin-top:14px;color:var(--ink);}
.person p{color:var(--muted);font-size:.95rem;}
.person .badge{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.88rem;font-weight:600;color:#6A4710;background:var(--ochre-soft);border-radius:999px;padding:3px 11px;}
#achievers .person-photo{background:radial-gradient(circle at 30% 20%,#F2CB74,var(--gold-2) 75%);}
#achievers .person-photo .initials{color:#2A1C04;text-shadow:none;}
#achievers .person-photo::before{content:'';position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;z-index:2;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C8902E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4zM17 5h3v2a3 3 0 0 1-3 3M7 5H4v2a3 3 0 0 0 3 3'/%3E%3C/svg%3E") center/18px no-repeat;box-shadow:0 6px 14px -6px rgba(0,0,0,.4);}

/* gallery */
.filters{display:flex;flex-wrap:wrap;gap:6px;}
.filter{padding:7px 16px;border-radius:999px;border:1.5px solid var(--line);font-weight:500;color:var(--text);transition:all .2s;}
.filter:hover{border-color:var(--ink);}
.filter.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.gal-item{position:relative;border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/3;background:var(--tint);cursor:zoom-in;box-shadow:0 20px 40px -28px rgba(11,18,54,.6);}
.gal-item.big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.gal-item:hover img{transform:scale(1.06);}
.gal-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 10px;color:#fff;font-size:.95rem;font-weight:500;background:linear-gradient(transparent,rgba(11,18,54,.8));}

.lightbox{position:fixed;inset:0;z-index:80;background:rgba(6,9,28,.94);display:flex;align-items:center;justify-content:center;padding:60px 70px;color:#fff;}
.lightbox figure{max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px;}
.lightbox img{max-width:100%;max-height:calc(100vh - 160px);border-radius:var(--r-sm);}
.lightbox figcaption{font-size:1rem;color:#D8DCEC;text-align:center;}
.lb-close{position:absolute;top:16px;right:16px;}
.lb-prev{position:absolute;left:16px;top:50%;transform:translateY(-50%);}
.lb-next{position:absolute;right:16px;top:50%;transform:translateY(-50%);}
.lightbox .round-btn:hover{background:rgba(255,255,255,.12);}

/* birthdays */
.bday{position:relative;overflow:hidden;padding:30px 0;background:linear-gradient(100deg,#FBEFD6,#F6E2B8 60%,#F9EBCF);}
.bday::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle,#E3B04B 1.5px,transparent 2px),radial-gradient(circle,#B3202A 1.2px,transparent 1.8px);background-size:46px 46px,70px 70px;background-position:0 0,23px 30px;}
.bday-row{display:flex;align-items:center;gap:20px 28px;flex-wrap:wrap;}
.bday h2{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:700;font-size:1.3rem;color:#5E4210;}
.bday h2 .icon{width:26px;height:26px;color:var(--gamosa);}
.bday-list{display:flex;flex-wrap:wrap;gap:10px;}
.bday-list li{display:flex;align-items:center;gap:10px;background:#fff;border-radius:999px;padding:5px 16px 5px 5px;box-shadow:0 8px 18px -12px rgba(94,66,16,.6);}
.bday-list .b-av{width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,var(--ink-2),var(--ink));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;overflow:hidden;position:relative;}
.bday-list .b-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.bday-list b{font-weight:600;color:var(--ink);}
.bday-list span{color:var(--muted);font-size:.9rem;}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:stretch;}
.contact-copy > p{margin-top:16px;font-size:1.1rem;color:var(--text);max-width:52ch;}
.contact-list{margin-top:26px;display:grid;gap:14px;}
.contact-list li{display:flex;gap:14px;align-items:flex-start;}
.contact-list .icon{width:42px;height:42px;padding:10px;border-radius:12px;box-sizing:border-box;color:#fff;background:linear-gradient(145deg,var(--ink-2),var(--ink));box-shadow:0 8px 16px -8px rgba(28,37,84,.7);}
.contact-list span{display:block;font-size:.88rem;color:var(--muted);}
.contact-list a{font-weight:600;margin-right:14px;}
.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.map{position:relative;min-height:380px;border-radius:var(--r-lg);overflow:hidden;background:#E3E7EF;box-shadow:0 40px 70px -40px rgba(11,18,54,.6);border:6px solid #fff;}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.map-link{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--ink);font-weight:600;padding:9px 14px;border-radius:999px;box-shadow:0 6px 18px rgba(0,0,0,.18);}
.map-link .icon{width:16px;height:16px;}

/* footer */
.site-footer{background:linear-gradient(180deg,#121940,var(--night));color:#C2C8E0;font-size:.98rem;}
.site-footer .gamosa{margin-bottom:56px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;}
.brand-light{color:#fff;}
.brand-light .brand-text span{color:#AEB5D3;}
.footer-brand p{margin-top:16px;max-width:38ch;}
.social{display:flex;gap:8px;margin-top:18px;}
.social a{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.22);color:#fff;transition:all .2s;}
.social a:hover{background:var(--gold);border-color:var(--gold);color:#1A1A3A;transform:translateY(-3px);}
.footer-col h3{font-family:var(--serif);font-weight:700;font-size:1.05rem;color:#fff;margin-bottom:12px;}
.footer-col li{margin:7px 0;}
.footer-col a{color:#C2C8E0;}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;margin-top:48px;padding:22px 0 28px;border-top:1px solid rgba(255,255,255,.12);font-size:.9rem;color:#9EA6C8;}
.footer-bottom a{color:#9EA6C8;}
.footer-bottom a:hover{color:#fff;}
.legal{display:flex;flex-wrap:wrap;gap:6px 18px;}

/* whatsapp float */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:30;width:58px;height:58px;border-radius:50%;background:linear-gradient(145deg,#2BD46A,#18A349);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px -8px rgba(24,163,73,.7);transition:transform .2s;}
.wa-float:hover{transform:scale(1.08);}
.wa-float .icon{width:30px;height:30px;}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .main-nav{display:none;}
  .menu-btn{display:inline-flex;}
  .header-actions{margin-left:auto;}
  .facility-grid,.people-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .hero-globe{width:620px;height:620px;right:-160px;}
}
@media (max-width:960px){
  .hero{padding:44px 0 80px;}
  .hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px;}
  .hero-globe{width:520px;height:520px;right:-180px;top:-40px;opacity:.6;}
  .hero-stage{height:auto;perspective:none;}
  .stage-inner{position:relative;transform:none !important;}
  .poster3d,.chip{display:none;}
  .board{position:relative;left:auto;top:auto;width:100%;transform:none;}
  .section,.app-band{padding:72px 0;}
  .map{min-height:300px;}
  /* staircase turns sideways: each step a bar that grows wider */
  .stairs{grid-template-columns:1fr;padding:0;gap:16px;}
  .stairs li{display:block;}
  .step{height:auto;width:calc(56% + var(--i) * 8.8%);min-width:230px;max-width:100%;flex-direction:row;align-items:center;border-radius:0 14px 14px 0;padding:12px 16px;transform-origin:left;}
  .step::before,.step::after{display:none;}
  .step .icon{width:38px;height:38px;padding:8px;}
  .step-no{display:none;}
  .stairs p{min-height:0;margin:8px 0 0;}
  .grad-cap{display:none;}
  html.fx .stairs .step{transform:scaleX(0);}
  html.fx .stairs.in li:hover .step,.stairs li:hover .step{transform:none;}
}
@media (max-width:640px){
  :root{--gutter:16px;}
  body{font-size:1rem;}
  .header-row{min-height:64px;gap:10px;}
  .brand img{width:40px;height:40px;}
  .brand-text strong{font-size:1rem;}
  .brand-text span{display:none;}
  .header-actions .icon-btn[href]{display:none;}
  .header-actions .btn-sm span{display:none;}
  .header-actions .btn-sm{padding:0 11px;}
  .hero-lead{font-size:1.06rem;}
  .hero-actions .btn{flex:1 1 100%;}
  .facts{grid-template-columns:1fr 1fr;}
  .board-head,.board-list,.board-foot{padding-left:16px;padding-right:16px;}
  .facility-grid{grid-template-columns:1fr 1fr;gap:14px;}
  .facility{padding:20px 16px 22px;}
  .facility-media.has-img{margin:-20px -16px 16px;}
  .people-grid{grid-template-columns:1fr 1fr;gap:22px 14px;}
  .gallery-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .gal-item.big{grid-column:span 2;grid-row:auto;aspect-ratio:4/3;}
  .shots{padding:36px calc(50% - 100px) 56px;}
  .shots img{width:200px;margin:0 -20px;}
  .letter{padding:24px 20px 26px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px 20px;}
  .footer-brand{grid-column:1/-1;}
  .footer-bottom{flex-direction:column;}
  .lightbox{padding:60px 12px;}
  .lb-prev,.lb-next{top:auto;bottom:14px;transform:none;}
  .lb-prev{left:calc(50% - 58px);} .lb-next{right:calc(50% - 58px);}
  .contact-list a{display:inline-block;margin-bottom:2px;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
  html{scroll-behavior:auto;}
  html.fx .reveal,html.fx .stairs .step,html.fx .stairs p{opacity:1 !important;transform:none !important;}
}