/* ===== Phase 1 – public site refinements (loaded after demo.css + inner.css) ===== */

/* 1. Apply Now: green <-> yellow animation */
@keyframes applyPulse{0%,100%{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;box-shadow:0 0 0 0 rgba(22,163,74,.5)}50%{background:linear-gradient(135deg,#facc15,#eab308);color:#1f2937;box-shadow:0 0 0 9px rgba(250,204,21,0)}}
.btn-apply-anim{animation:applyPulse 1.6s ease-in-out infinite;border:0;font-weight:700}
@media (prefers-reduced-motion:reduce){.btn-apply-anim{animation:none;background:#16a34a}}

/* 12. faster notice ticker */
/* (speed is now set from px/second by site.js; this is only the no-JS fallback) */
.ticker-items{animation-duration:18s}

/* 13. Admission nav button: orange + dropdown */
.nav-cta{background:linear-gradient(135deg,#f97316,#ea580c)!important;box-shadow:0 4px 12px rgba(234,88,12,.35)!important}
.adm-dd{position:relative}
.adm-menu{position:absolute;top:100%;right:0;min-width:220px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 34px -12px rgba(15,23,42,.35);padding:6px;list-style:none;margin:6px 0 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;z-index:60}
.adm-dd:hover .adm-menu,.adm-dd:focus-within .adm-menu{opacity:1;visibility:visible;transform:none}
.adm-menu a{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:8px;color:var(--ink);font-size:.85rem;font-weight:500;white-space:nowrap}
.adm-menu a:hover{background:var(--surface-2);color:var(--royal)}

/* 3. hero slider: fade, centred + justified text, optional content */
.hero-slide{transition:opacity .8s ease}
.hero-content.hc{display:flex!important;position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s;justify-content:center;align-items:center;text-align:center}
.hero-content.hc.active{opacity:1;visibility:visible}
.hero-content .container{display:flex;flex-direction:column;align-items:center;max-width:860px}
.hero-title{font-size:clamp(1.5rem,3.4vw,2.4rem)!important;max-width:760px;margin:0 auto 12px!important;text-align:center}
.hero-desc{font-size:clamp(.88rem,1.5vw,1rem)!important;max-width:680px;margin:0 auto 22px!important;text-align:justify;text-align-last:center;hyphens:auto}
.hero-buttons{justify-content:center}
.hero-overlay{background:linear-gradient(180deg,rgba(15,30,50,.55),rgba(15,30,50,.55))!important}

/* 6. smaller quick actions */
.qa-grid{gap:10px!important}
.qa-card{padding:12px 8px!important;border-radius:10px!important}
.qa-icon{width:38px!important;height:38px!important;font-size:1rem!important;margin-bottom:8px!important}
.qa-card h3{font-size:.82rem!important}
.qa-card p{font-size:.7rem!important;margin-top:2px!important}

/* 4. About: transparent, no card */
.about-img-wrap.about-plain{box-shadow:none;background:transparent;border-radius:0;overflow:visible}
.about-img-wrap.about-plain img{height:auto;max-height:440px;object-fit:contain;background:transparent;border-radius:0}

/* 7 + 9. every photo is a rectangle, same style everywhere */
.avatar,img.avatar,.teacher-photo,.msg-avatar,.testi-author img,.me .avatar,.star .avatar,.pcard .avatar{border-radius:8px!important}
.teacher-photo{width:120px!important;height:144px!important;object-fit:cover}
.avatar,.pcard .avatar{width:120px!important;height:144px!important}
.me .avatar,.star .avatar{width:96px!important;height:116px!important}
.testi-author img{width:48px!important;height:58px!important}
.msg-avatar{border-radius:8px!important}
.teacher-grid{grid-template-columns:repeat(5,1fr)!important;gap:16px!important}
@media(max-width:1100px){.teacher-grid{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:640px){.teacher-grid{grid-template-columns:repeat(2,1fr)!important;gap:12px!important}.teacher-card{padding:14px!important}}

/* 8. visible stroke + shadow on cards */
.news-card,.facility-card{border:1px solid #cbd5e1!important;box-shadow:0 6px 18px -8px rgba(15,23,42,.28)!important}
.news-card:hover,.facility-card:hover{border-color:var(--royal)!important;box-shadow:0 14px 28px -10px rgba(37,99,235,.35)!important}
.facility-img{border-bottom:1px solid #e2e8f0}

/* 10. testimonials: endless right-to-left marquee */
.testi-marquee{overflow:hidden;position:relative;padding:6px 0}
.testi-track{display:flex;gap:24px;width:max-content;animation:testiScroll 40s linear infinite}
.testi-marquee:hover .testi-track{animation-play-state:paused}
.testi-track .testi-card{width:340px;flex:0 0 340px}
@keyframes testiScroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 12px))}}
@media(max-width:600px){.testi-track .testi-card{width:270px;flex-basis:270px}}
@media(prefers-reduced-motion:reduce){.testi-track{animation:none;overflow-x:auto}}

/* 11. footer developer credit beside social icons */
.footer-social{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.footer-dev{margin-left:auto;font-size:.8rem;color:rgba(255,255,255,.75)}
.footer-dev a,.footer-dev strong{color:var(--accent-gold,#facc15);font-weight:600}
.footer-dev a:hover{text-decoration:underline}

/* ===== 5. inner pages: no broken cards, "More pages" as stacked buttons below ===== */
.card.pad{padding:26px}
.card{border:1px solid var(--line)}
.card,.prose,.nrow .t,.pcard{overflow-wrap:anywhere;word-break:normal}
.prose{line-height:1.8}
.prose h1,.prose h2,.prose h3{line-height:1.3;margin:1.2em 0 .5em}
.prose p{margin:0 0 1em}
.pagehead h1{line-height:1.25;overflow-wrap:anywhere}
.layout{grid-template-columns:minmax(0,1fr)!important}
.side{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;max-width:100%}
.side .card{margin-bottom:0}
.side h3{padding:18px 22px 4px}
.side ul{display:flex;flex-direction:column;gap:8px;padding:10px 18px 18px}
.side li a{border:1px solid var(--line);background:#fff;font-weight:600;padding:11px 14px;transition:.2s}
.side li a:hover{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ===== 18. result / status pages ===== */
.portal-hero{border:1px solid var(--line);border-radius:18px;max-width:1000px}
.portal-hero .art{background:linear-gradient(150deg,#0b3b8f,#2563eb 70%,#38bdf8);position:relative;overflow:hidden}
.portal-hero .art::after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08)}
.portal-hero .art h2{font-size:1.7rem;line-height:1.25;margin:6px 0 12px}
.portal-hero .form{background:#fff;display:flex;flex-direction:column;justify-content:center}
.portal-hero .inp{background:#f8fafc}
.btn-block{width:100%;justify-content:center}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}
.kv>*{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.tbl th{background:var(--primary);color:#fff;text-align:left;padding:11px 12px;font-weight:600;white-space:nowrap}
.tbl td{padding:10px 12px;border-top:1px solid var(--line)}
.tbl tbody tr:nth-child(even){background:#f8fafc}
.card.pad:has(.tbl){overflow-x:auto}
@media(max-width:760px){.portal-hero{grid-template-columns:1fr!important}.portal-hero .art,.portal-hero .form{padding:28px 22px}.card.pad{padding:18px}}

/* ===== admission status page ===== */
.kv dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0}
.kv dd{margin:2px 0 0;font-weight:600;color:#0f172a;overflow-wrap:anywhere}
.adm-banner{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:12px}
.adm-banner i{font-size:2rem}.adm-banner div{display:flex;flex-direction:column;gap:2px}.adm-banner span{font-size:.86rem;opacity:.9}
.adm-banner.ok{background:#dcfce7;color:#166534}.adm-banner.no{background:#fee2e2;color:#991b1b}.adm-banner.wait{background:#fef9c3;color:#854d0e}

/* ===== Student portal ===== */
.sp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px}
.sp-stat{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 4px 12px -8px rgba(15,23,42,.25)}
.sp-stat>i{width:40px;height:40px;border-radius:10px;background:#e0ecff;color:var(--primary);display:grid;place-items:center;font-size:1rem}
.sp-stat small{display:block;color:#64748b;font-size:.74rem}.sp-stat b{font-size:1.05rem}
.sp-stat>i.sp-ok{background:#dcfce7;color:#16a34a}.sp-stat>i.sp-no{background:#fee2e2;color:#dc2626}.sp-stat>i.sp-wait{background:#fef9c3;color:#ca8a04}.sp-stat>i.sp-info{background:#e0f2fe;color:#0284c7}
.sp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;align-items:start}
.sp-grid2{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
@media(min-width:900px){.sp-grid2{grid-template-columns:300px minmax(0,1fr)}.sp-grid2+.sp-grid2{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}}
.sp-h{margin:0 0 14px;font-size:1rem}
.sp-me{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.sp-me h3{margin:6px 0 0}.sp-me small{color:#64748b}
.sp-me .avatar{width:120px!important;height:144px!important;object-fit:cover}
.avatar.ph{display:grid;place-items:center;background:#e2e8f0;color:#64748b}
.sp-teacher{display:flex;gap:14px;align-items:center}.sp-teacher .avatar{width:72px!important;height:88px!important;flex:none;object-fit:cover}
.sp-teacher small{display:block;color:#64748b;overflow-wrap:anywhere}
.sp-muted{color:#64748b;margin:0}
.sp-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:14px 0}
.sp-kv2{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.sp-kv .wide{grid-column:1/-1}
.sp-kv>div{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:9px 12px}
.sp-kv dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:0}.sp-kv dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.sp-res{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.sp-res small{display:block;color:#64748b}.sp-res span:last-child{text-align:right}
.sp-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:20px}
.sp-actions a{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-weight:600;transition:.2s}
.sp-actions a:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.sp-filter{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.sp-cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
.sp-day{border-radius:10px;padding:8px 4px;text-align:center;border:1px solid var(--line);background:#f8fafc;display:flex;flex-direction:column;line-height:1.25}
.sp-day small{font-size:.65rem;color:#64748b}.sp-day i{font-style:normal;font-weight:700;font-size:.8rem}
.sp-day.ok{background:#dcfce7;border-color:#86efac;color:#166534}.sp-day.no{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.sp-day.wait{background:#fef9c3;border-color:#fde047;color:#854d0e}.sp-day.info{background:#e0f2fe;border-color:#7dd3fc;color:#075985}
.pnav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.pnav a{padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:600;font-size:.88rem}
.pnav a.on,.pnav a:hover{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ===== round 2 ===== */
.live-clock{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--muted,#64748b);background:#f1f5f9;border:1px solid var(--line,#e2e8f0);border-radius:999px;padding:6px 12px;white-space:nowrap}
.live-clock b{color:var(--primary,#1e3a8a);font-variant-numeric:tabular-nums;min-width:74px;display:inline-block}
.header-actions{display:flex;align-items:center;gap:12px}
@media(max-width:1100px){.live-clock .lc-date{display:none}}
@media(max-width:640px){.live-clock{display:none}}
/* footer bottom: copyright left, developer right */
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.footer-bottom .footer-dev{margin-left:auto}
@media(max-width:640px){.footer-bottom{justify-content:center;text-align:center}.footer-bottom .footer-dev{margin:0 auto}}
/* slimmer newsletter band */
.newsletter-section{padding:16px 0!important}
.newsletter-wrap{gap:16px!important}
.newsletter-text h2{font-size:1.15rem!important;margin:0!important}
.newsletter-text p{font-size:.82rem!important;margin:2px 0 0!important}
.newsletter-form input{padding:9px 14px!important;font-size:.88rem!important}
.newsletter-form button{padding:9px 18px!important;font-size:.88rem!important}
/* transparent logo everywhere */
.brand-logo{background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;object-fit:contain}
.footer-brand img{background:transparent!important;padding:0!important;border-radius:0!important;box-shadow:none!important;height:64px;width:auto;object-fit:contain}

/* ===================== round 4 ===================== */
/* 12. typography: Poppins bold headings, Inter body, steady line-height */
body{font-family:var(--font-body,'Inter',system-ui,sans-serif);line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,.section-title,.hero-title,.pagehead h1,.footer-title{font-family:'Poppins','Inter',sans-serif!important;font-weight:700!important;line-height:1.28;letter-spacing:-.005em}
p,li,td,th,dd,label,input,textarea,select,button,small{font-family:var(--font-body,'Inter',sans-serif)}
p,li,td,dd{line-height:1.72}
.section-title{margin-bottom:10px}
.prose p,.prose li{line-height:1.8}
.prose h2,.prose h3{margin:1.4em 0 .5em}
.pagehead{padding:46px 0 40px;background-image:linear-gradient(135deg,var(--primary-dark,#152a47),var(--primary,#1e3a5f) 60%,var(--royal,#2563eb))}
.pagehead h1{color:#fff;font-size:clamp(1.6rem,3.2vw,2.3rem);margin:8px 0 6px;animation:phIn .7s cubic-bezier(.22,1,.36,1) both}
.pagehead .crumbs{opacity:.85;font-size:.85rem}
@keyframes phIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* 13. bigger live clock */
.live-clock{gap:10px;padding:8px 16px 8px 12px;background:linear-gradient(135deg,#eef4ff,#fff);border:1px solid #cfe0ff;box-shadow:0 4px 14px -8px rgba(37,99,235,.5);font-size:.82rem;line-height:1.15}
.live-clock>i{font-size:1.15rem;color:var(--royal,#2563eb)}
.live-clock .lc-date{display:block;font-weight:500;color:#475569}
.live-clock .lc-time{display:block;font-size:1.05rem;color:var(--primary,#1e3a5f);min-width:96px}
.live-clock .lc-wrap{display:flex;flex-direction:column}

/* 7. About image: taller */
.about-img-wrap.about-plain img{min-height:480px;max-height:640px;width:100%;object-fit:contain}
@media(max-width:800px){.about-img-wrap.about-plain img{min-height:0;max-height:420px}}

/* 5. leadership cards on the home page: larger rectangular portraits */
.msg-card{padding:26px 28px;gap:24px;align-items:flex-start}
.msg-avatar{width:150px!important;height:186px!important;border-radius:10px!important;object-fit:cover}
.msg-card p{-webkit-line-clamp:5;line-height:1.7}
@media(max-width:640px){.msg-card{flex-direction:column;align-items:center;text-align:center}.msg-avatar{width:150px!important;height:186px!important}}

/* leadership list page */
.lead-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px}
.lead-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;background:#fff;border:1px solid #cbd5e1;border-radius:16px;padding:26px 22px;box-shadow:0 8px 22px -12px rgba(15,23,42,.35);transition:.3s}
.lead-card:hover{transform:translateY(-6px);border-color:var(--royal);box-shadow:0 18px 34px -14px rgba(37,99,235,.45)}
.lead-photo{width:170px;height:210px;object-fit:cover;border-radius:12px;box-shadow:0 8px 20px -10px rgba(15,23,42,.5);margin:8px 0}
.lead-photo.ph{display:grid;place-items:center;background:#e2e8f0;color:#64748b}
.lead-card b{font-size:1.1rem;font-family:'Poppins',sans-serif}
.lead-card small{color:#64748b;display:block;overflow-wrap:anywhere}
.lead-card .excerpt{color:#475569;line-height:1.65;margin-top:6px;text-align:justify;text-align-last:center}
.lead-more{margin-top:auto;padding-top:12px;color:var(--royal);font-weight:600;font-size:.88rem}

/* full message page */
.msgx{display:grid;grid-template-columns:300px minmax(0,1fr);gap:34px;align-items:start}
.msgx-who{background:#fff;border:1px solid #cbd5e1;border-radius:16px;padding:26px 22px;text-align:center;box-shadow:0 10px 26px -14px rgba(15,23,42,.35);position:sticky;top:96px}
.msgx-photo{width:100%;max-width:240px;aspect-ratio:4/5;object-fit:cover;border-radius:12px;margin:0 auto 14px;display:block}
.msgx-photo.ph{display:grid;place-items:center;background:#e2e8f0;color:#64748b}
.msgx-who h2{font-size:1.25rem;margin:4px 0}.msgx-role{color:var(--primary);font-weight:600;margin:0 0 10px}
.msgx-text{background:#fff;border:1px solid var(--line,#e2e8f0);border-radius:16px;padding:34px 38px;position:relative;box-shadow:0 10px 26px -18px rgba(15,23,42,.3);text-align:justify;line-height:1.85;overflow-wrap:anywhere}
.msgx-q{position:absolute;top:18px;right:24px;font-size:2.4rem;color:#dbe7ff}
@media(max-width:860px){.msgx{grid-template-columns:1fr}.msgx-who{position:static}.msgx-text{padding:24px 20px}}
.soc-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px 0 4px}
.soc-links a{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:#eff6ff;color:var(--royal);transition:.25s}
.soc-links a:hover{background:var(--royal);color:#fff;transform:translateY(-3px)}
.person .soc-links,.prose .soc-links{justify-content:flex-start}

/* 2/10. "More pages": side-by-side buttons at the bottom */
.side{max-width:100%}
.side ul{flex-direction:row!important;flex-wrap:wrap;gap:10px!important}
.side li{flex:0 1 auto}
.side li a{display:inline-flex!important;align-items:center;border-radius:999px!important;padding:9px 18px!important;font-size:.88rem}
.side h3{font-size:1rem}
.more-pages{margin-top:28px;background:#fff;border:1px solid var(--line,#e2e8f0);border-radius:14px;padding:18px 22px}
.more-pages h3{margin:0 0 12px;font-size:1rem}
.mp-row{display:flex;flex-wrap:wrap;gap:10px}
.mp-row a{padding:9px 18px;border-radius:999px;border:1px solid var(--line,#e2e8f0);background:#fff;font-weight:600;font-size:.88rem;transition:.2s}
.mp-row a:hover{background:var(--primary);color:#fff;border-color:var(--primary)}

/* 3. teacher / staff list page */
.ppl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:22px}
.ppl-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:#fff;border:1px solid #cbd5e1;border-radius:14px;padding:20px 16px 18px;box-shadow:0 8px 20px -12px rgba(15,23,42,.35);transition:.3s;min-width:0}
.ppl-card:hover{transform:translateY(-6px);border-color:var(--royal);box-shadow:0 16px 30px -14px rgba(37,99,235,.45)}
.ppl-photo{width:150px;height:184px;object-fit:cover;border-radius:10px;margin-bottom:10px}
.ppl-photo.ph{display:grid;place-items:center;background:#e2e8f0;color:#64748b}
.ppl-card b{font-family:'Poppins',sans-serif;font-size:1rem;line-height:1.3;overflow-wrap:anywhere}
.ppl-card small{display:block;color:#64748b;font-size:.82rem;line-height:1.5;overflow-wrap:anywhere}
.ppl-card .excerpt{text-align:justify;text-align-last:center;margin-top:6px}

/* 6. home: teachers marquee (2 rows when more than 10) */
.tm-wrap{display:flex;flex-direction:column;gap:22px;overflow:hidden;padding:8px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.tm-row{overflow:hidden}
.tm-track{display:flex;width:max-content;animation:tmL calc(var(--n) * 3.4s) linear infinite}
.tm-track.ltr{animation-name:tmR}
.tm-row:hover .tm-track{animation-play-state:paused}
.tm-card{flex:0 0 190px;width:190px;margin-right:18px;background:#fff;border:1px solid #cbd5e1;border-radius:14px;padding:16px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;box-shadow:0 8px 20px -12px rgba(15,23,42,.35);transition:.3s}
.tm-card:hover{transform:translateY(-5px);border-color:var(--royal)}
.tm-card .teacher-photo{width:118px!important;height:146px!important;border-radius:10px!important;object-fit:cover;margin-bottom:8px}
.tm-card .teacher-photo.ph{display:grid;place-items:center;background:#e2e8f0;color:#64748b}
.tm-card b{font-family:'Poppins',sans-serif;font-size:.95rem;line-height:1.3;overflow-wrap:anywhere}
.tm-card .teacher-role,.tm-card .teacher-dept{font-size:.78rem;color:#64748b;line-height:1.4}
@keyframes tmL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes tmR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.tm-track,.nt-view.move .nt-track{animation:none}.tm-row{overflow-x:auto}}

/* 8. home: notices – 4 rows visible, moving bottom → top */
.nt-wrap{max-width:920px;margin:0 auto}
.nt-view{--h:440px;height:var(--h);overflow:hidden;border-radius:16px;position:relative;-webkit-mask-image:linear-gradient(180deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(180deg,transparent,#000 4%,#000 96%,transparent)}
.nt-view:not(.move){height:auto}
.nt-view.move .nt-track{animation:ntUp calc(var(--n) * 4.2s) linear infinite}
.nt-view:hover .nt-track{animation-play-state:paused}
@keyframes ntUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
.nt-item{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:14px;padding:14px 18px;margin:0 0 12px;box-shadow:0 6px 16px -12px rgba(15,23,42,.4);transition:border-color .25s,box-shadow .25s}
.nt-item:hover{border-color:var(--royal);box-shadow:0 12px 24px -14px rgba(37,99,235,.5)}
.nt-item .notice-date-box{flex:0 0 62px}
.nt-body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.nt-body b{font-family:'Poppins',sans-serif;font-size:1rem;line-height:1.35;overflow-wrap:anywhere;color:var(--ink)}
.nt-ex{font-size:.86rem;color:#475569;line-height:1.55;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nt-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.78rem;color:#64748b}
.nt-all{text-align:center;margin:22px 0 0}
@media(max-width:600px){.nt-item{padding:12px;gap:12px}.nt-item .notice-date-box{flex-basis:54px}}

/* 8. notices page */
.ntp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:16px;margin-top:18px}
.ntp-card{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #cbd5e1;border-radius:14px;padding:16px 18px;box-shadow:0 8px 18px -14px rgba(15,23,42,.45);transition:.3s;min-width:0;transition-delay:var(--d,0ms)}
.ntp-card:hover{transform:translateY(-4px);border-color:var(--royal);box-shadow:0 16px 28px -16px rgba(37,99,235,.5)}
.ntp-date{flex:0 0 66px;text-align:center;border-radius:12px;padding:8px 4px;background:linear-gradient(160deg,var(--primary),var(--royal));color:#fff;line-height:1.15}
.ntp-date b{display:block;font-size:1.5rem;font-family:'Poppins',sans-serif}.ntp-date span{font-size:.72rem;opacity:.9}
.ntp-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.ntp-title{font-weight:600;line-height:1.4;overflow-wrap:anywhere;color:var(--ink)}
.ntp-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.78rem;color:#64748b}
.ntp-go{color:var(--royal);opacity:.5;transition:.3s}.ntp-card:hover .ntp-go{opacity:1;transform:translateX(4px)}

/* 1. students info page */
.si-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:26px}
.si-sum>div{background:#fff;border:1px solid #cbd5e1;border-radius:14px;padding:16px;text-align:center;box-shadow:0 8px 18px -14px rgba(15,23,42,.45)}
.si-sum i{font-size:1.2rem;color:var(--royal);display:block;margin-bottom:6px}.si-sum b{display:block;font-size:1.7rem;font-family:'Poppins',sans-serif;color:var(--primary)}.si-sum span{font-size:.8rem;color:#64748b}
.si-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px}
.si-card{background:#fff;border:1px solid #cbd5e1;border-radius:16px;overflow:hidden;box-shadow:0 10px 24px -16px rgba(15,23,42,.45)}
.si-card header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;background:linear-gradient(135deg,var(--primary),var(--royal));color:#fff}
.si-card h3{color:#fff;margin:0;font-size:1.05rem}.si-total{font-size:.82rem;opacity:.95}.si-total b{font-size:1.2rem}
.si-t{width:100%;border-collapse:collapse;font-size:.9rem}.si-t th{text-align:left;padding:9px 16px;color:#64748b;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc}
.si-t td{padding:9px 16px;border-top:1px solid #eef2f7}.si-none{padding:18px;color:#64748b;margin:0}
.si-card footer{padding:11px 18px;border-top:1px solid #eef2f7;font-size:.82rem;color:#475569;background:#f8fafc;line-height:1.5}

/* 9/11. footer developer + newsletter follow the website colour */
.footer-dev a,.footer-dev a:hover{text-decoration:none!important}
.footer-bottom .footer-dev{margin-left:auto;margin-right:56px}
@media(max-width:640px){.footer-bottom .footer-dev{margin:0 auto}}
.newsletter-section{background:linear-gradient(135deg,var(--site-main,#0b5ed7),var(--site-main-dark,#073b8a))!important;padding:12px 0!important}
.newsletter-text h2{font-size:1.05rem!important;line-height:1.3}
.newsletter-text p{font-size:.8rem!important;line-height:1.4}
.newsletter-form input{padding:8px 14px!important}.newsletter-form button{padding:8px 18px!important}

/* 15. live visitors */
.live-visitors{position:fixed;left:16px;bottom:16px;z-index:70;display:flex;align-items:center;gap:8px;background:#0f172a;color:#fff;padding:8px 14px;border-radius:999px;font-size:.78rem;box-shadow:0 10px 24px -10px rgba(0,0,0,.6);opacity:0;transform:translateY(12px);transition:.5s}
.live-visitors.on{opacity:1;transform:none}
.live-visitors b{font-family:'Poppins',sans-serif;font-size:.95rem}
.lv-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.7);animation:lvPulse 1.8s infinite}
@keyframes lvPulse{70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@media(max-width:480px){.live-visitors{left:10px;bottom:10px;font-size:.72rem;padding:6px 11px}}

/* 14. scroll animation variety */
.scroll-bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--accent-gold,#d4af37),var(--royal,#2563eb),var(--accent-cyan,#06b6d4));z-index:200;transition:width .1s linear}
.reveal{opacity:0;transform:translateY(36px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1);transition-delay:var(--rd,0ms)}
.reveal.fx-left{transform:translateX(-56px)}.reveal.fx-right{transform:translateX(56px)}.reveal.fx-zoom{transform:scale(.88)}.reveal.fx-flip{transform:perspective(900px) rotateX(14deg) translateY(30px)}
.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* online payment */
.pay-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding:14px 18px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px}
.pay-bar small{display:block;color:#166534}.pay-bar b{font-size:1.3rem;color:#166534;font-family:'Poppins',sans-serif}
