/* IQRA Girls PU College – public home page.
   Colours come from the college crest: deep navy and burnished gold, on clean white and a cool sky tint.
   Marcellus (classical Roman capitals, fitting a college named for reading) for headings, Figtree for text. */
:root{
  --navy:#1B2A56; --navy-dk:#111B3B; --gold:#C79A3B; --gold-lt:#E9C77A; --gold-soft:#F6EBD0;
  --sky:#EEF2FA; --ink:#182033; --muted:#596277; --line:#DCE2EE; --white:#fff;
  --display:"Marcellus","Palatino Linotype",Georgia,serif; --body:"Figtree","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--white);color:var(--ink);font:400 16px/1.65 var(--body)}
img{max-width:100%;display:block}
a{color:var(--navy)}
[hidden]{display:none!important}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.15;margin:0;text-wrap:balance}
h2{font-size:clamp(28px,4vw,42px)}
h3{font-size:22px}
.wrap{max-width:1200px;margin:0 auto;padding-inline:16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--navy-dk);padding:8px 12px;z-index:99}
.skip:focus{left:8px}
.center{text-align:center;margin-top:22px}

.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:600;text-decoration:none;border:2px solid transparent;cursor:pointer;background:none}
.btn.gold{background:var(--gold);color:var(--navy-dk)}
.btn.gold:hover{background:var(--gold-lt)}
.btn.line{border-color:currentColor}
.btn.line:hover{background:rgba(199,154,59,.12)}

/* header */
.hdr{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:16px;min-height:66px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.brand img{width:42px;height:42px;object-fit:contain}
.brand b{display:block;font-family:var(--display);font-weight:400;font-size:19px;line-height:1.1}
.brand small{color:var(--muted);font-size:12.5px}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav a{padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:500;font-size:15px}
.nav a:hover{background:var(--sky)}
.nav a.pill{background:var(--navy);color:#fff;border-radius:999px;padding:9px 18px;margin-left:6px}
.menu{display:none;margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;cursor:pointer}
@media (max-width:860px){
  .menu{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:66px;background:#fff;flex-direction:column;align-items:stretch;padding:8px 16px 16px;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(17,27,59,.08)}
  .nav.open{display:flex}
  .nav a.pill{margin:6px 0 0;text-align:center}
}

/* hero: full-screen photo reel behind an animated college crest */
.hero{position:relative;overflow:hidden;color:#fff;background:var(--navy-dk);min-height:calc(100svh - 66px);display:grid;align-items:center}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:6px;background:var(--gold);z-index:3}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:saturate(1.1) brightness(1.15);transition:opacity 1.6s ease;transform:scale(1.08)}
.hero-bg img.on{opacity:1;animation:kb 9s ease-out forwards}
@keyframes kb{from{transform:scale(1.18) translate(2%,1%)}to{transform:scale(1.04) translate(0,0)}}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  radial-gradient(ellipse at 50% 42%,rgba(17,27,59,.30) 0%,rgba(17,27,59,.62) 60%,rgba(17,27,59,.9) 100%),
  linear-gradient(180deg,rgba(17,27,59,.15) 0%,rgba(17,27,59,.35) 45%,rgba(17,27,59,.85) 100%)}
.hero-in{position:relative;z-index:2;text-align:center;padding-block:48px 84px;display:flex;flex-direction:column;align-items:center}
.crest{position:relative;width:min(230px,58vw);aspect-ratio:1;margin-bottom:18px}
.ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ring text{fill:var(--gold-lt);font:600 11.5px/1 var(--body);letter-spacing:2.4px}
.ring-line{fill:none;stroke:var(--gold);stroke-width:1.4;stroke-dasharray:578;stroke-dashoffset:578;animation:draw 1.4s .2s ease-out forwards}
.ring-dash{fill:none;stroke:rgba(233,199,122,.45);stroke-width:1;stroke-dasharray:2 5}
.ring text,.ring-dash{transform-origin:100px 100px;animation:spin 40s linear infinite,fadeIn 1s .9s both}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.seal{position:absolute;inset:23%;border-radius:50%;background:#fff;display:grid;place-items:center;padding:12%;
  box-shadow:0 0 0 6px rgba(199,154,59,.25),0 18px 50px rgba(0,0,0,.45);animation:pop .9s .35s cubic-bezier(.2,1.4,.4,1) both}
.seal img{width:100%;height:100%;object-fit:contain}
.seal::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:2px solid var(--gold);opacity:0;animation:pulse 3.2s 1.6s ease-out infinite}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes pulse{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.35);opacity:0}}
.kicker{color:var(--gold-lt);font-weight:600;margin:0 0 6px;text-shadow:0 1px 8px rgba(0,0,0,.6);letter-spacing:.02em;animation:rise .8s 1s both}
.hero h1{display:flex;flex-direction:column;align-items:center;gap:0;line-height:1}
.iqra{filter:drop-shadow(0 4px 18px rgba(0,0,0,.45));font-size:clamp(76px,17vw,150px);color:#fff;letter-spacing:.02em;background:linear-gradient(100deg,#fff 30%,var(--gold-lt) 50%,#fff 70%);background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:rise .9s 1.1s both,shine 4.5s 2.2s ease-in-out infinite}
.means{font-size:clamp(26px,5.4vw,42px);color:var(--gold-lt);margin-top:4px;animation:rise .8s 1.35s both}
@keyframes shine{0%{background-position:100% 0}60%,100%{background-position:-50% 0}}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.cycler{font-family:var(--display);font-size:clamp(24px,5vw,38px);line-height:1.3;margin:18px 0 0;text-shadow:0 2px 12px rgba(0,0,0,.5);animation:rise .8s 1.6s both}
.swap-wrap{display:inline-block;position:relative;min-width:3.6em;text-align:left;vertical-align:top;overflow:hidden;height:1.3em}
.swap{display:inline-block;color:var(--gold-lt);border-bottom:3px solid var(--gold);line-height:1.18}
.swap.out{animation:swapOut .35s ease-in forwards}.swap.in{animation:swapIn .45s cubic-bezier(.2,1.2,.4,1) forwards}
@keyframes swapOut{to{transform:translateY(-110%);opacity:0}}
@keyframes swapIn{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}
.lede{font-size:17px;color:#E4E8F3;text-shadow:0 1px 8px rgba(0,0,0,.6);max-width:40ch;margin:14px auto 26px;animation:rise .8s 1.8s both}
.cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;animation:rise .8s 2s both}
.hero .btn.line{color:#fff}
.scroll-cue{position:absolute;left:50%;bottom:22px;z-index:2;width:28px;height:44px;margin-left:-14px;border:2px solid rgba(255,255,255,.6);border-radius:16px;animation:fadeIn 1s 2.4s both}
.scroll-cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold);animation:cue 1.8s 2.6s infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}100%{transform:translateY(16px);opacity:0}}
@media (max-width:600px){.hero-in{padding-block:36px 80px}.lede{font-size:16px}}
@media (prefers-reduced-motion:reduce){.hero-bg img.on{animation:none;transform:none}.iqra{color:#fff;background:none}}

/* proud moments */
.proud{background:var(--gold-soft);border-bottom:1px solid #EAD9AE}
.moments{list-style:none;margin:0;padding:22px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.moments li{border-left:2px solid var(--gold)}
.moments a{display:block;padding:6px 20px;text-decoration:none;color:inherit;border-radius:0 10px 10px 0}
.moments a:hover{background:rgba(199,154,59,.14)}
.moments b{display:block;font-family:var(--display);font-weight:400;font-size:26px;color:var(--navy);line-height:1.2}
.moments span{font-size:14px;color:#4F4636}
@media (max-width:900px){.moments{grid-template-columns:1fr 1fr;row-gap:16px}}
@media (max-width:520px){.moments{grid-template-columns:1fr}}

/* section heads */
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:28px}
.sec-head p{margin:0;color:var(--muted);max-width:60ch}
.sec-head.on-dark h2{color:#fff}.sec-head.on-dark p{color:#C5CDE3}

/* toppers */
.toppers{padding-block:64px;background:#fff}
.podium{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:16px;align-items:end}
.podium li{display:flex;flex-direction:column;gap:10px}
.tp-photo{all:unset;cursor:pointer;display:block;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:var(--sky)}
.tp-photo img{width:100%;height:100%;object-fit:cover;object-position:center 88%}
.tp-photo:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.podium li.first .tp-photo{border:4px solid var(--gold)}
.tp-text{display:flex;flex-direction:column;line-height:1.3}
.tp-text .rank{font-size:13px;font-weight:700;color:#8A6519}
.tp-text b{font-family:var(--display);font-weight:400;font-size:20px;color:var(--navy)}
.podium li.first b{font-size:26px}
.tp-text .pct{font-size:22px;font-weight:700;color:var(--ink)}
.podium li.first .pct{font-size:30px}
@media (max-width:900px){.podium{grid-template-columns:repeat(2,1fr)}.podium li.first{grid-column:1/-1}.podium li.first .tp-photo{aspect-ratio:16/11}}

/* videos */
.watch{background:var(--navy);color:#fff;padding-block:64px}
.rail-wrap{position:relative}
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:thin;scrollbar-color:var(--gold) transparent}
.reel{flex:0 0 250px;scroll-snap-align:start;margin:0}
.reel .box{position:relative;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:#0D1530}
.reel iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.reel figcaption{font-size:14px;color:#D6DCEC;margin-top:8px;line-height:1.4}
.reel figcaption b{display:block;color:#fff;font-weight:600}
.rail-btn{position:absolute;top:calc(50% - 40px);z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:var(--gold);color:var(--navy-dk);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.rail-btn.prev{left:-10px}.rail-btn.next{right:-10px}
@media (max-width:700px){.rail-btn{display:none}.reel{flex-basis:72vw}}
.talks-h{color:var(--gold-lt);font-size:24px;margin:40px 0 16px}
.talks{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.talk{margin:0}
.talk .box{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#0D1530}
.talk iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.play{all:unset;cursor:pointer;position:absolute;inset:0;display:block}
.play img{width:100%;height:100%;object-fit:cover}
.play::after{content:"";position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(199,154,59,.95) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23111B3B'/%3E%3C/svg%3E") center/30px no-repeat;box-shadow:0 6px 20px rgba(0,0,0,.35)}
.play:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.talk figcaption{font-size:14px;color:#D6DCEC;margin-top:8px;line-height:1.4}

/* activities timeline */
.life{padding-block:72px;background:#fff}
.years{display:flex;gap:6px;flex-wrap:wrap}
.years button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 16px;cursor:pointer;font-weight:500}
.years button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:118px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl{display:grid;grid-template-columns:100px 1fr;gap:36px;padding-bottom:36px;position:relative}
.tl::before{content:"";position:absolute;left:112px;top:10px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--gold)}
.tl-date{text-align:right;color:var(--muted);font-size:14px;line-height:1.3;padding-top:4px}
.tl-date b{display:block;font-family:var(--display);font-weight:400;font-size:26px;color:var(--navy)}
.tl-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start;cursor:pointer}
.tl-card:hover h3{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.tl-media{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:6px;aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:var(--sky)}
.tl-media img{width:100%;height:100%;object-fit:cover}
.tl-media img:first-child{grid-row:1/3}
.tl-media.one{grid-template-columns:1fr;grid-template-rows:1fr}
.tl-media.two{grid-template-rows:1fr}.tl-media.two img:first-child{grid-row:auto}
.tl-media .vid{position:relative;grid-row:1/3;background:#0D1530}
.tl-text h3{font-size:24px;color:var(--navy)}
.tl-text p{margin:10px 0 12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:13px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--sky);color:var(--navy)}
.tag.v{background:var(--gold-soft);color:#6B4F12}
.open-link{all:unset;cursor:pointer;color:var(--navy);font-weight:600;margin-top:12px;display:inline-block;border-bottom:2px solid var(--gold)}
.timeline .empty{color:var(--muted);padding:20px 0 20px 150px}
@media (max-width:860px){
  .timeline::before{left:7px}
  .tl{grid-template-columns:1fr;gap:10px;padding-left:30px}
  .tl::before{left:1px}
  .tl-date{text-align:left;display:flex;gap:8px;align-items:baseline}
  .tl-date b{font-size:20px}
  .tl-card{grid-template-columns:1fr;gap:14px}
  .timeline .empty{padding-left:30px}
}

/* photo wall */
.photos{background:var(--sky);padding-block:72px}
.wall{columns:4 220px;column-gap:12px}
.wall button{all:unset;cursor:pointer;display:block;margin:0 0 12px;break-inside:avoid;border-radius:12px;overflow:hidden;background:#DDE4F2}
.wall img{width:100%;height:auto;transition:transform .3s}
.wall button:hover img{transform:scale(1.03)}
.wall button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* programs */
.programs{padding-block:72px}
.streams{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.stream{border-radius:18px;padding:26px;border:1px solid var(--line);position:relative;overflow:hidden}
.stream::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--navy)}
.stream.arts::before{background:var(--gold)}
.stream h3{font-size:28px;color:var(--navy)}
.stream h3 small{font-family:var(--body);font-size:14px;font-weight:600;color:var(--muted);margin-left:8px}
.stream p{margin:10px 0 0;color:var(--muted)}
.stream .prep{color:var(--ink);font-weight:500}
.plan{margin-top:32px;display:grid;grid-template-columns:1fr 1.4fr;gap:12px 32px;align-items:start}
.plan h3{color:var(--navy);font-size:26px}
.plan>p{margin:0;color:var(--muted);grid-column:1}
.levels{grid-column:2;grid-row:1/3;list-style:none;margin:0;padding:0;display:grid;gap:10px}
.levels li{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:14px 18px;border-radius:12px;background:var(--sky)}
.levels b{font-family:var(--display);font-weight:400;font-size:20px;color:var(--navy)}
.levels span{color:var(--muted);font-size:15px}
.levels .l1{border-left:5px solid #C27C2C}.levels .l2{border-left:5px solid #3C64A8}.levels .l3{border-left:5px solid #2E7D57}
@media (max-width:860px){.streams,.plan{grid-template-columns:1fr}.levels{grid-column:1;grid-row:auto}.levels li{grid-template-columns:1fr;gap:2px}}

/* admissions */
.admit{background:var(--navy-dk);color:#fff;padding-block:64px;border-top:6px solid var(--gold)}
.admit-in{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center}
.admit h2{color:#fff}
.admit p{color:#C5CDE3;font-size:17px}
.contact{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:24px}
.contact p{margin:0 0 8px;color:#fff}
.contact a{color:var(--gold-lt)}
.contact .btn{margin-top:10px;color:var(--navy-dk)}
@media (max-width:860px){.admit-in{grid-template-columns:1fr}}

.ftr{padding-block:24px;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}
.ftr-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* activity sheet */
.sheet-bg{position:fixed;inset:0;z-index:50;background:rgba(10,16,36,.72);overflow-y:auto;padding:28px 14px}
.sheet{background:#fff;max-width:960px;margin:0 auto;border-radius:20px;overflow:hidden}
.sheet-top{background:var(--navy);color:#fff;padding:22px 24px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.sheet-top h2{color:#fff;font-size:clamp(24px,3.4vw,34px)}
.sheet-top .d{color:var(--gold-lt);font-weight:600;font-size:14px;margin-bottom:6px}
.x{flex:none;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:18px;cursor:pointer}
.sheet-body{padding:24px;display:grid;gap:22px}
.sheet-body>p{margin:0;white-space:pre-line;font-size:17px;max-width:70ch}
.sheet-vids{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px}
.sheet-vids .reel{flex-basis:230px}
.sheet-vids .reel figcaption{color:var(--muted)}
.sheet-vids .talk{flex:0 0 min(420px,85vw)}
.sheet-vids .talk figcaption{color:var(--muted)}
.sheet-gal{columns:3 200px;column-gap:10px}
.sheet-gal button{all:unset;cursor:pointer;display:block;margin:0 0 10px;break-inside:avoid;border-radius:10px;overflow:hidden}
.sheet-gal img{width:100%;height:auto}

/* photo viewer */
.viewer{position:fixed;inset:0;z-index:60;background:rgba(5,8,20,.95);display:grid;place-items:center;padding:56px 12px}
.viewer img{max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:6px}
.v-btn{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:26px;cursor:pointer}
.v-btn:hover{background:rgba(255,255,255,.24)}
.v-close{top:12px;right:12px;font-size:18px}
.v-prev{left:12px;top:calc(50% - 24px)}.v-next{right:12px;top:calc(50% - 24px)}
.v-cap{position:absolute;bottom:10px;left:0;right:0;text-align:center;color:#C5CDE3;margin:0;font-size:14px;padding:0 60px}

/* install-the-app banner (shown by pwa.js) */
.install-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:70;display:flex;align-items:center;gap:12px;background:#111B3B;color:#fff;border-radius:16px;padding:12px 14px;box-shadow:0 12px 32px rgba(17,27,59,.35);max-width:560px;margin:0 auto;animation:barUp .4s ease-out}
.install-bar img{width:44px;height:44px;border-radius:10px;flex:none}
.install-bar .t{flex:1;min-width:0;line-height:1.35}
.install-bar .t b{display:block;font-size:15px}
.install-bar .t span{font-size:13px;color:#C5CDE3}
.install-bar .go{border:0;background:var(--gold);color:#111B3B;font-weight:700;border-radius:999px;padding:9px 16px;cursor:pointer;flex:none}
.install-bar .no{border:0;background:none;color:#C5CDE3;font-size:20px;cursor:pointer;padding:4px 6px;flex:none}
@keyframes barUp{from{transform:translateY(120%)}to{transform:none}}
.ios-help{position:fixed;inset:0;z-index:80;background:rgba(10,16,36,.7);display:grid;align-items:end;justify-items:center;padding:16px}
.ios-help .card{background:#fff;color:#182033;border-radius:18px;max-width:420px;width:100%;padding:20px}
.ios-help ol{margin:10px 0 14px;padding-left:20px}
.ios-help li{margin:6px 0}
@media (prefers-reduced-motion:reduce){.install-bar{animation:none}}
.ios-help .btn{display:block;text-align:center;background:var(--navy);color:#fff;border:0;border-radius:999px;padding:12px;font-weight:600}
