@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@700;800&display=swap');

:root{
  --navy:#0b2556;
  --blue:#0b4ca3;
  --teal:#0f8b8d;
  --gold:#f4b942;
  --sky:#eaf5ff;
  --ink:#17223b;
  --muted:#667085;
  --line:#dfe8f4;
  --white:#fff;
  --shadow:0 18px 50px rgba(11,37,86,.12);
  --radius:24px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Manrope',system-ui,sans-serif;color:var(--ink);background:#f7fbff;line-height:1.65;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.container{width:min(1180px,92%);margin:auto}
.section{padding:84px 0}
.section-sm{padding:58px 0}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;margin-bottom:12px}
.eyebrow:before{content:"";width:28px;height:3px;border-radius:20px;background:var(--gold)}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3.35rem);line-height:1.15;color:var(--navy);margin-bottom:16px}
.section-copy{max-width:720px;color:var(--muted);font-size:1.02rem}
.center{text-align:center}.center .section-copy{margin-inline:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:none;border-radius:999px;padding:13px 22px;font-weight:800;cursor:pointer;transition:.25s ease}
.btn-primary{background:linear-gradient(135deg,var(--blue),var(--teal));color:white;box-shadow:0 12px 28px rgba(11,76,163,.22)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(11,76,163,.3)}
.btn-light{background:white;color:var(--navy);box-shadow:0 10px 24px rgba(0,0,0,.1)}
.btn-outline{border:1px solid rgba(11,37,86,.18);background:white;color:var(--navy)}
.btn-outline:hover{border-color:var(--teal);color:var(--teal)}

.topbar{background:var(--navy);color:#d9e7ff;font-size:.86rem}
.topbar-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:38px}
.topbar-links{display:flex;gap:18px;flex-wrap:wrap}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(11,37,86,.07)}
.navbar{display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:24px}
.brand{display:flex;align-items:center;gap:12px;min-width:300px}
.brand img{width:60px;height:60px;filter:drop-shadow(0 8px 12px rgba(11,37,86,.2))}
.brand-text strong{display:block;font-family:'Playfair Display',serif;color:var(--navy);font-size:1.08rem;line-height:1.1}
.brand-text span{display:block;color:var(--teal);font-size:.76rem;font-weight:800;letter-spacing:.05em;margin-top:4px;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:6px;list-style:none}
.nav-links a{display:block;padding:10px 11px;border-radius:10px;color:#344054;font-weight:700;font-size:.91rem}
.nav-links a:hover,.nav-links a.active{background:var(--sky);color:var(--blue)}
.nav-cta{white-space:nowrap;padding:11px 18px}
.menu-toggle{display:none;width:44px;height:44px;border:0;border-radius:12px;background:var(--sky);font-size:1.4rem;color:var(--navy)}

.hero{position:relative;height:min(720px,calc(100vh - 120px));min-height:580px;overflow:hidden;background:#071a3e}
.hero-slide{position:absolute;inset:0;opacity:0;transform:scale(1.035);transition:opacity 1s ease,transform 6s ease;background-size:cover;background-position:center}
.hero-slide.active{opacity:1;transform:scale(1)}
.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,18,50,.87) 0%,rgba(4,18,50,.55) 48%,rgba(4,18,50,.12) 100%)}
.hero-content{position:relative;z-index:2;height:100%;display:flex;align-items:center}
.hero-copy{max-width:760px;color:white}
.hero-badge{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.11);backdrop-filter:blur(8px);border-radius:999px;font-weight:700;margin-bottom:20px}
.hero h1{font-family:'Playfair Display',serif;font-size:clamp(2.6rem,6vw,5.7rem);line-height:.98;letter-spacing:-.03em;margin-bottom:20px}
.hero h1 span{color:var(--gold)}
.hero p{max-width:700px;font-size:clamp(1rem,2vw,1.18rem);color:#eef5ff;margin-bottom:28px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap}
.hero-dots{position:absolute;z-index:4;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.hero-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.45);cursor:pointer;transition:.25s}
.hero-dot.active{width:32px;border-radius:99px;background:var(--gold)}
.hero-floating-card{position:absolute;right:6%;bottom:55px;z-index:4;width:320px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);padding:20px;border-radius:22px;box-shadow:var(--shadow)}
.hero-floating-card h3{color:var(--navy);font-size:1.05rem;margin-bottom:8px}
.hero-floating-card p{color:var(--muted);font-size:.89rem;margin:0}

.notice-strip{background:white;box-shadow:0 8px 25px rgba(11,37,86,.08);position:relative;z-index:5}
.notice-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:62px}
.notice-label{background:var(--gold);color:#2f2302;padding:9px 14px;border-radius:10px;font-weight:900;white-space:nowrap}
.notice-marquee{overflow:hidden;white-space:nowrap;color:#344054;font-weight:700}
.notice-track{display:inline-block;padding-left:100%;animation:marquee 26s linear infinite}
@keyframes marquee{to{transform:translateX(-100%)}}

.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:-34px;position:relative;z-index:8}
.quick-card{background:white;padding:24px;border-radius:20px;box-shadow:var(--shadow);border:1px solid rgba(11,37,86,.06);transition:.3s;overflow:hidden;position:relative}
.quick-card:before{content:"";position:absolute;right:-25px;top:-25px;width:80px;height:80px;background:var(--sky);border-radius:50%}
.quick-card:hover{transform:translateY(-8px)}
.icon-box{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--blue),var(--teal));display:grid;place-items:center;color:#fff;font-size:1.5rem;margin-bottom:18px;box-shadow:0 10px 20px rgba(11,76,163,.18)}
.quick-card h3{color:var(--navy);margin-bottom:6px}
.quick-card p{color:var(--muted);font-size:.9rem}

.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:58px;align-items:center}
.media-stack{position:relative;min-height:520px}
.media-main{width:84%;height:450px;object-fit:cover;border-radius:30px;box-shadow:var(--shadow)}
.media-small{position:absolute;right:0;bottom:0;width:52%;height:250px;object-fit:cover;border:8px solid #f7fbff;border-radius:26px;box-shadow:var(--shadow)}
.experience-badge{position:absolute;left:-18px;bottom:40px;background:var(--gold);color:#2f2302;border-radius:20px;padding:18px 20px;font-weight:900;box-shadow:0 14px 28px rgba(244,185,66,.25)}
.check-list{display:grid;gap:13px;margin:24px 0 30px}
.check-item{display:flex;gap:12px;color:#344054}
.check-item span:first-child{width:26px;height:26px;display:grid;place-items:center;background:#dff7f0;color:#047857;border-radius:50%;font-weight:900;flex:0 0 auto}

.stats-band{background:linear-gradient(135deg,var(--navy),#0b4ca3 62%,var(--teal));color:white}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat{text-align:center;padding:28px 16px;border-right:1px solid rgba(255,255,255,.16)}
.stat:last-child{border-right:0}
.stat strong{display:block;font-family:'Playfair Display',serif;font-size:3rem;color:var(--gold);line-height:1}
.stat span{display:block;margin-top:8px;color:#dce9ff;font-weight:700}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px}
.info-card{background:white;border:1px solid rgba(11,37,86,.07);border-radius:24px;overflow:hidden;box-shadow:0 12px 34px rgba(11,37,86,.07);transition:.3s}
.info-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.card-image{height:220px;object-fit:cover;width:100%}
.card-body{padding:24px}
.card-tag{display:inline-flex;background:var(--sky);color:var(--blue);border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:900;margin-bottom:12px}
.card-body h3{color:var(--navy);font-size:1.25rem;margin-bottom:8px}
.card-body p{color:var(--muted);font-size:.93rem}
.card-link{display:inline-flex;margin-top:16px;color:var(--teal);font-weight:900}

.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:34px}
.feature-card{background:white;padding:24px;border-radius:22px;border:1px solid var(--line);box-shadow:0 10px 30px rgba(11,37,86,.06);transition:.3s}
.feature-card:hover{transform:translateY(-7px);border-color:#b9d5ff}
.feature-card .icon-box{width:46px;height:46px;border-radius:14px;font-size:1.25rem}
.feature-card h3{color:var(--navy);font-size:1.05rem;margin-bottom:7px}
.feature-card p{color:var(--muted);font-size:.88rem}

.timeline{display:grid;gap:18px;margin-top:30px}
.timeline-item{display:grid;grid-template-columns:90px 1fr;gap:18px;align-items:center;background:white;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 20px rgba(11,37,86,.05)}
.date-box{text-align:center;background:var(--sky);border-radius:14px;padding:10px;color:var(--blue);font-weight:900}
.date-box strong{display:block;font-size:1.8rem;line-height:1}
.timeline-item h4{color:var(--navy);margin-bottom:4px}.timeline-item p{color:var(--muted);font-size:.9rem}

.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:14px;margin-top:32px}
.gallery-item{position:relative;overflow:hidden;border-radius:18px;cursor:pointer}
.gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:span 2}
.gallery-item:nth-child(3){grid-row:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.5s}
.gallery-item:after{content:"View";position:absolute;inset:0;background:rgba(11,37,86,.62);display:grid;place-items:center;color:white;font-weight:900;opacity:0;transition:.3s}
.gallery-item:hover img{transform:scale(1.08)}.gallery-item:hover:after{opacity:1}

.testimonial-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center}
.testimonial-card{background:white;border-radius:28px;padding:34px;box-shadow:var(--shadow);position:relative}
.quote-mark{font-family:Georgia,serif;font-size:5rem;line-height:.7;color:#cfe3ff;position:absolute;right:24px;top:20px}
.testimonial-card p{color:#475467;font-size:1.05rem;margin:20px 0}
.person{display:flex;align-items:center;gap:13px}.person img{width:54px;height:54px;object-fit:cover;border-radius:50%}.person strong{display:block;color:var(--navy)}.person span{color:var(--muted);font-size:.84rem}

.cta-band{background:linear-gradient(135deg,#09214d,#0b4ca3 60%,#0f8b8d);border-radius:32px;padding:48px;color:white;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:var(--shadow)}
.cta-band h2{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3.2rem);line-height:1.1}.cta-band p{color:#dfeaff;max-width:650px;margin-top:10px}

.page-hero{position:relative;padding:104px 0 88px;color:white;background:linear-gradient(rgba(5,24,63,.78),rgba(5,24,63,.78)),url('https://images.unsplash.com/photo-1580582932707-520aed937b7b?auto=format&fit=crop&w=1800&q=85') center/cover}
.page-hero h1{font-family:'Playfair Display',serif;font-size:clamp(2.5rem,5vw,4.7rem);line-height:1.05}.page-hero p{max-width:700px;color:#e2ecff;margin-top:15px}.breadcrumbs{margin-top:20px;color:#cbdcff;font-weight:700}.breadcrumbs span{color:var(--gold)}

.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.value-card{padding:28px;background:white;border-radius:22px;border:1px solid var(--line);box-shadow:0 10px 30px rgba(11,37,86,.06)}
.value-card h3{color:var(--navy);margin:13px 0 8px}.value-card p{color:var(--muted)}

.table-wrap{overflow:auto;background:white;border-radius:22px;box-shadow:var(--shadow);border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line)}th{background:var(--navy);color:white}tr:hover td{background:#f5faff}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}
.step{background:white;border:1px solid var(--line);border-radius:22px;padding:24px;position:relative}
.step-number{width:44px;height:44px;border-radius:14px;background:var(--gold);display:grid;place-items:center;color:#302301;font-weight:900;margin-bottom:17px}.step h3{color:var(--navy);margin-bottom:8px}.step p{color:var(--muted);font-size:.9rem}

.form-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:30px;align-items:start}
.contact-card,.form-card{background:white;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 12px 34px rgba(11,37,86,.07)}
.contact-card{background:linear-gradient(160deg,var(--navy),var(--blue));color:white;position:sticky;top:120px}.contact-card h3{font-family:'Playfair Display',serif;font-size:2rem;margin-bottom:14px}.contact-card p{color:#dce8ff}.contact-list{display:grid;gap:16px;margin-top:24px}.contact-item{display:flex;gap:12px;align-items:flex-start}.contact-item b{display:block;color:var(--gold)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:800;color:#344054;font-size:.9rem}.field input,.field select,.field textarea{width:100%;border:1px solid #d5dfec;border-radius:12px;padding:13px 14px;background:#fbfdff;outline:none;transition:.2s}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(15,139,141,.1)}

.notice-list{display:grid;gap:16px}.notice-card{background:white;border-radius:18px;padding:20px;border-left:5px solid var(--teal);box-shadow:0 8px 25px rgba(11,37,86,.06);display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center}.notice-date{font-weight:900;color:var(--blue)}.notice-card h3{color:var(--navy);font-size:1rem}.notice-card p{color:var(--muted);font-size:.87rem}.notice-badge{background:#fff3d1;color:#7a5300;padding:6px 10px;border-radius:999px;font-size:.75rem;font-weight:900}

.login-shell{min-height:calc(100vh - 120px);display:grid;place-items:center;padding:60px 20px;background:linear-gradient(rgba(4,20,54,.68),rgba(4,20,54,.68)),url('https://images.unsplash.com/photo-1503676260728-1c00da094a0b?auto=format&fit=crop&w=1800&q=85') center/cover}
.login-box{width:min(500px,100%);background:rgba(255,255,255,.96);backdrop-filter:blur(15px);border-radius:28px;padding:34px;box-shadow:var(--shadow)}
.login-box .brand{justify-content:center;min-width:0;margin-bottom:26px}.role-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:#eef4fb;border-radius:12px;padding:5px;margin-bottom:20px}.role-tab{border:0;background:transparent;padding:10px;border-radius:9px;font-weight:800;color:var(--muted);cursor:pointer}.role-tab.active{background:white;color:var(--blue);box-shadow:0 5px 14px rgba(11,37,86,.1)}

.modal{position:fixed;inset:0;background:rgba(4,18,50,.68);z-index:3000;display:none;place-items:center;padding:20px}.modal.show{display:grid}.modal-content{background:white;border-radius:22px;padding:32px;width:min(460px,100%);text-align:center;box-shadow:var(--shadow);animation:pop .3s ease}@keyframes pop{from{transform:scale(.9);opacity:0}}.modal-icon{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#dff7f0;color:#047857;font-size:2rem;margin:0 auto 16px}.modal-content h3{color:var(--navy);font-size:1.5rem}.modal-content p{color:var(--muted);margin:8px 0 20px}

.footer{background:#061a3c;color:#d4e1f7;padding-top:68px}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr .8fr 1fr;gap:40px}.footer-brand .brand{min-width:0}.footer-brand .brand-text strong{color:white}.footer-brand p{color:#aebfdb;margin:18px 0}.footer h4{color:white;margin-bottom:16px}.footer-links{list-style:none;display:grid;gap:10px}.footer-links a{color:#aebfdb}.footer-links a:hover{color:var(--gold)}.newsletter{display:flex;margin-top:14px}.newsletter input{flex:1;min-width:0;border:0;padding:12px;border-radius:10px 0 0 10px}.newsletter button{border:0;background:var(--gold);padding:0 15px;border-radius:0 10px 10px 0;font-weight:900}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:46px;padding:20px 0;display:flex;justify-content:space-between;gap:20px;color:#93a6c5;font-size:.85rem}

.reveal{opacity:0;transform:translateY(28px);transition:.7s ease}.reveal.visible{opacity:1;transform:none}
.back-to-top{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border:0;border-radius:50%;background:var(--gold);color:#2f2302;font-size:1.2rem;box-shadow:var(--shadow);cursor:pointer;display:none;z-index:1000}.back-to-top.show{display:block}

@media(max-width:1050px){
  .nav-links{position:fixed;inset:120px 4% auto 4%;background:white;border-radius:20px;box-shadow:var(--shadow);padding:18px;display:none;flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.nav-links a{padding:12px}.menu-toggle{display:block}.nav-cta{display:none}.brand{min-width:0}.hero-floating-card{display:none}.quick-grid,.feature-grid{grid-template-columns:repeat(2,1fr)}.two-col,.testimonial-wrap,.form-layout{grid-template-columns:1fr}.contact-card{position:static}.card-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .topbar{display:none}.navbar{min-height:74px}.brand img{width:50px;height:50px}.brand-text strong{font-size:.92rem}.brand-text span{font-size:.65rem}.hero{min-height:620px;height:calc(100vh - 74px)}.hero-slide:after{background:linear-gradient(90deg,rgba(4,18,50,.88),rgba(4,18,50,.56))}.hero-actions{flex-direction:column;align-items:flex-start}.notice-inner{grid-template-columns:auto 1fr}.notice-inner .btn{display:none}.quick-grid{grid-template-columns:1fr;margin-top:25px}.section{padding:66px 0}.two-col{gap:34px}.media-stack{min-height:400px}.media-main{height:350px}.media-small{height:180px}.experience-badge{left:8px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}.card-grid,.feature-grid,.value-grid,.steps{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}.gallery-item:nth-child(3){grid-row:auto}.gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:auto}.cta-band{padding:34px 24px;align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.notice-card{grid-template-columns:1fr;gap:8px}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.page-hero{padding:80px 0 68px}.timeline-item{grid-template-columns:70px 1fr}
}

/* =========================================================
   CENTRAL SECURE PORTAL — ROLE-AWARE LOGIN EXPERIENCE
   ========================================================= */
.portal-page{
  --portal-accent:#0b4ca3;
  --portal-accent-2:#0f9e9d;
  --portal-soft:#e9f6ff;
  min-height:100vh;
  background:#f5fbff;
  color:#102654;
  overflow-x:hidden;
}
.portal-page[data-portal-role="parent"]{
  --portal-accent:#0756bc;
  --portal-accent-2:#08a9a2;
  --portal-soft:#e9f8ff;
}
.portal-page[data-portal-role="staff"]{
  --portal-accent:#0a347d;
  --portal-accent-2:#0b9c9a;
  --portal-soft:#e9f5fb;
}
.portal-shell{
  position:relative;
  min-height:100vh;
  isolation:isolate;
  overflow:hidden;
  padding:22px clamp(20px,4vw,72px) 28px;
  background:
    radial-gradient(circle at 8% 42%,rgba(79,181,218,.13),transparent 24%),
    radial-gradient(circle at 91% 13%,rgba(89,169,222,.12),transparent 26%),
    linear-gradient(135deg,#f8fdff 0%,#eef8ff 51%,#f8fcff 100%);
}
.portal-shell:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  opacity:.28;
  background-image:
    linear-gradient(rgba(10,75,143,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(10,75,143,.035) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to right,#000,transparent 72%);
}
.portal-orb{
  position:absolute;
  z-index:-2;
  border-radius:50%;
  filter:blur(2px);
  animation:portalFloat 10s ease-in-out infinite alternate;
}
.portal-orb-one{
  width:230px;height:230px;left:-130px;top:28%;
  background:linear-gradient(145deg,rgba(75,170,215,.25),rgba(75,170,215,.02));
}
.portal-orb-two{
  width:190px;height:190px;right:-76px;bottom:-42px;
  background:linear-gradient(145deg,rgba(244,185,66,.27),rgba(244,185,66,.03));
  animation-delay:-3s;
}
.portal-dots{
  position:absolute;z-index:-1;right:2.2%;top:4%;width:160px;height:160px;
  background-image:radial-gradient(rgba(26,106,172,.25) 1.7px,transparent 1.7px);
  background-size:14px 14px;
  mask-image:linear-gradient(135deg,#000,transparent 78%);
  animation:dotsDrift 14s linear infinite alternate;
}
.portal-topbar{
  position:relative;z-index:5;
  width:min(1380px,100%);margin:0 auto 10px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:42px;
}
.portal-home-link,.portal-secure-badge{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em;
}
.portal-home-link{
  color:#38547d;padding:8px 12px;border-radius:999px;
  transition:.25s ease;
}
.portal-home-link:hover{background:#fff;box-shadow:0 8px 22px rgba(15,52,101,.09);transform:translateX(-3px)}
.portal-secure-badge{color:#078b8c}
.portal-secure-badge span{color:#f4b942;font-size:.72rem;animation:sparkPulse 1.7s ease-in-out infinite}
.portal-grid{
  position:relative;z-index:2;
  width:min(1380px,100%);margin:auto;
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(540px,.98fr);
  gap:clamp(34px,5vw,84px);align-items:center;
  min-height:calc(100vh - 102px);
}
.portal-story{
  min-width:0;text-align:center;
  display:flex;flex-direction:column;align-items:center;
  transition:opacity .18s ease,transform .18s ease,filter .18s ease;
}
.portal-eyebrow{
  display:flex;align-items:center;justify-content:center;gap:15px;
  color:#078c90;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:900;
  margin-bottom:12px;
}
.portal-eyebrow span{width:44px;height:2px;background:#f2be40;border-radius:9px}
.portal-story h1{
  font-family:'Playfair Display',Georgia,serif;
  color:#0a2454;letter-spacing:-.036em;
  font-size:clamp(3rem,4.7vw,5.45rem);line-height:.9;
  max-width:760px;
  text-wrap:balance;
  text-shadow:0 12px 35px rgba(9,45,91,.05);
}
.portal-story-copy{
  max-width:650px;margin:22px auto 0;color:#68758b;
  font-size:clamp(.96rem,1.3vw,1.13rem);line-height:1.45;
  min-height:3.3em;
}
.portal-visual{
  position:relative;
  width:min(650px,95%);height:420px;
  margin-top:4px;
  display:grid;place-items:end center;
  overflow:visible;
}
.portal-visual:after{
  content:"";position:absolute;z-index:-1;bottom:17px;left:50%;transform:translateX(-50%);
  width:76%;height:45px;border-radius:50%;
  background:rgba(26,66,116,.16);filter:blur(22px);
}
.portal-character-stage{
  position:relative;z-index:2;display:inline-block;max-width:100%;line-height:0;
  filter:drop-shadow(0 17px 22px rgba(24,70,112,.13));
  animation:characterFloat 5.5s ease-in-out infinite;
  transition:opacity .22s ease,transform .22s ease;
  transform-origin:center bottom;
}
.portal-character-stage img{
  display:block;width:auto;height:390px;max-width:100%;object-fit:contain;object-position:center bottom;
  -webkit-user-drag:none;user-select:none;pointer-events:none;
}
.character-eyes{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:visible}
.tracking-eye{
  position:absolute;left:var(--eye-x);top:var(--eye-y);width:var(--eye-w);height:var(--eye-h);
  transform:translate(-50%,-50%) rotate(var(--eye-rotate,0deg));
  border-radius:50%;overflow:hidden;background:#fffdf8;
  border:1px solid rgba(85,48,29,.12);
  box-shadow:inset 0 -2px 4px rgba(81,49,29,.12),0 0 1px rgba(30,20,15,.12);
}
.tracking-pupil{
  position:absolute;left:50%;top:50%;width:46%;aspect-ratio:1;border-radius:50%;
  transform:translate(calc(-50% + var(--look-x,0px)),calc(-50% + var(--look-y,0px)));
  background:radial-gradient(circle at 32% 28%,#fff 0 8%,#3c2417 10% 42%,#0b0806 44% 100%);
  box-shadow:0 0 0 1px rgba(40,22,12,.2);
  transition:transform 70ms linear;
}
.tracking-pupil:after{content:"";position:absolute;left:27%;top:20%;width:18%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.92)}
.tracking-lid{
  position:absolute;inset:-8%;z-index:3;border-radius:50%;background:var(--lid-color,#efb18f);
  transform:scaleY(0);transform-origin:center;opacity:0;
  transition:transform 105ms ease,opacity 70ms ease;
}
.tracking-lid:after{
  content:"";position:absolute;left:12%;right:12%;top:35%;height:38%;
  border-bottom:2px solid rgba(78,38,24,.48);border-radius:0 0 50% 50%;
}
.portal-character-stage.is-blinking .tracking-lid,
.portal-character-stage.password-eyes-closed .tracking-lid{transform:scaleY(1);opacity:1}
.portal-character-stage.is-blinking .tracking-eye,
.portal-character-stage.password-eyes-closed .tracking-eye{background:transparent;border-color:transparent;box-shadow:none;overflow:visible}
.portal-character-stage.password-eyes-closed .tracking-pupil{transition:none}
.portal-character-stage.is-looking .tracking-eye{box-shadow:inset 0 -2px 4px rgba(81,49,29,.12),0 0 0 1px rgba(7,139,144,.08)}
.visual-spark{position:absolute;color:#f6b719;font-size:2rem;z-index:3;filter:drop-shadow(0 8px 8px rgba(244,185,66,.24));animation:sparkFloat 3.1s ease-in-out infinite}
.spark-one{left:12%;top:33%}.spark-two{right:10%;top:24%;animation-delay:-1.2s}.spark-three{right:14%;bottom:14%;animation-delay:-2.1s;font-size:1.35rem}
.portal-role-status{
  min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;
  color:#365274;background:rgba(255,255,255,.88);border:1px solid rgba(36,102,161,.09);
  border-radius:999px;padding:9px 18px;box-shadow:0 10px 24px rgba(29,76,124,.08);
  font-size:.84rem;
  transition:.25s ease;
}
.portal-role-status strong{color:#143568}.status-dot{width:11px;height:11px;border-radius:50%;background:var(--portal-accent-2);box-shadow:0 0 0 6px color-mix(in srgb,var(--portal-accent-2) 14%,transparent);animation:statusPulse 2s ease-in-out infinite}
.portal-trust-list{
  width:100%;margin-top:16px;display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;
  color:#345170;font-size:.77rem;font-weight:800;
}
.portal-trust-list span{padding:0 23px;display:inline-flex;align-items:center;gap:8px;border-right:1px solid rgba(45,93,141,.18)}
.portal-trust-list span:last-child{border-right:0}.portal-trust-list b{color:var(--portal-accent-2);font-size:1rem}
.portal-access-column{display:grid;gap:15px;perspective:1300px}
.portal-login-card,.portal-quick-card{
  position:relative;background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.92);
  box-shadow:0 25px 70px rgba(21,68,117,.13),inset 0 1px 0 rgba(255,255,255,.96);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
}
.portal-login-card{
  --tilt-x:0deg;--tilt-y:0deg;
  border-radius:34px;padding:25px 32px 22px;overflow:hidden;
  transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style:preserve-3d;
  transition:transform .18s ease,opacity .18s ease,filter .18s ease;
}
.portal-login-card:before{
  content:"";position:absolute;right:-50px;top:-54px;width:170px;height:150px;border-radius:0 0 0 100%;
  background:linear-gradient(135deg,rgba(62,139,202,.2),rgba(62,139,202,.02));
}
.portal-login-card:after{
  content:"";position:absolute;left:-46px;bottom:42px;width:95px;height:95px;border-radius:50%;
  background:linear-gradient(135deg,rgba(244,185,66,.22),rgba(244,185,66,.03));z-index:-1;
}
.portal-brand{
  position:relative;display:flex;align-items:center;justify-content:center;gap:13px;margin-bottom:18px;
}
.portal-brand img{width:58px;height:58px;filter:drop-shadow(0 8px 12px rgba(16,66,112,.16))}
.portal-brand span{display:grid;line-height:1.1}.portal-brand strong{font-family:'Playfair Display',Georgia,serif;color:#0a2454;font-size:1.23rem}.portal-brand small{color:#068d91;text-transform:uppercase;letter-spacing:.06em;font-size:.63rem;font-weight:900;margin-top:5px}
.portal-role-tabs{
  position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;
  padding:5px;background:#edf4fb;border:1px solid #dce8f4;border-radius:17px;
}
.portal-role-tab{
  position:relative;z-index:1;min-height:47px;border:0;border-radius:13px;background:transparent;
  color:#66748b;font-size:.91rem;font-weight:900;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  transition:color .25s ease,background .25s ease,box-shadow .25s ease,transform .25s ease;
}
.portal-role-tab:hover{color:#123665;transform:translateY(-1px)}
.portal-role-tab.active{
  color:white;background:linear-gradient(135deg,#0a347d,var(--portal-accent));
  box-shadow:0 10px 20px color-mix(in srgb,var(--portal-accent) 28%,transparent);
}
.portal-role-tab:focus-visible{outline:3px solid rgba(244,185,66,.7);outline-offset:2px}.tab-symbol{font-size:1.05rem;line-height:1}
.portal-login-intro{text-align:center;padding:15px 6px 13px}
.portal-welcome{display:block;color:#078f91;font-weight:900;text-transform:uppercase;letter-spacing:.15em;font-size:.66rem;margin-bottom:2px}
.portal-login-intro h2{font-family:'Playfair Display',Georgia,serif;color:#0a2454;font-size:clamp(2rem,3vw,2.7rem);line-height:1.15;margin:0}
.portal-login-intro p{color:#748198;font-size:.85rem;line-height:1.35;max-width:460px;margin:4px auto 0;min-height:2.3em}
.portal-login-form{display:grid;gap:11px}.portal-field{display:grid;gap:6px}.portal-field label{font-size:.78rem;font-weight:900;color:#173667}
.portal-input-wrap{position:relative;display:flex;align-items:center}
.portal-input-wrap input{
  width:100%;height:49px;border:1px solid #d9e5f0;border-radius:13px;background:rgba(250,253,255,.86);
  padding:0 47px 0 46px;color:#172d52;outline:none;font-size:.86rem;
  transition:.24s ease;
}
.portal-input-wrap input::placeholder{color:#8a97aa}
.portal-input-wrap input:focus{border-color:var(--portal-accent-2);background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--portal-accent-2) 11%,transparent),0 8px 20px rgba(22,72,120,.06);transform:translateY(-1px)}
.input-icon{position:absolute;left:16px;z-index:1;color:#60738e;font-size:1.08rem}.password-toggle{position:absolute;right:10px;width:36px;height:36px;border:0;background:transparent;border-radius:9px;color:#60738e;cursor:pointer}.password-toggle:hover{background:#eaf4fb;color:var(--portal-accent)}
.portal-error{color:#c13838;min-height:1em;font-size:.67rem;font-weight:700;padding-left:3px}
.portal-form-options{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:.75rem;margin:0 1px 1px}
.portal-form-options a{color:#0756bc;font-weight:900}.portal-form-options a:hover{text-decoration:underline}
.portal-checkbox{display:flex;align-items:center;gap:8px;color:#4d5e76;cursor:pointer;font-weight:700}.portal-checkbox input{position:absolute;opacity:0;pointer-events:none}.portal-checkbox span{width:17px;height:17px;border:1.5px solid #93a4ba;border-radius:3px;background:#fff;display:grid;place-items:center}.portal-checkbox input:checked+span{background:var(--portal-accent);border-color:var(--portal-accent)}.portal-checkbox input:checked+span:after{content:"✓";color:#fff;font-size:.7rem;font-weight:900}
.portal-submit{
  position:relative;overflow:hidden;height:51px;border:0;border-radius:14px;
  color:white;font-weight:900;cursor:pointer;
  background:linear-gradient(105deg,#092a70 0%,#0757bf 50%,var(--portal-accent-2) 100%);
  box-shadow:0 13px 24px color-mix(in srgb,var(--portal-accent) 22%,transparent);
  display:flex;align-items:center;justify-content:center;gap:18px;
  transition:.25s ease;
}
.portal-submit:before{content:"";position:absolute;inset:-60% auto -60% -35%;width:35%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transition:left .55s ease}
.portal-submit:hover{transform:translateY(-3px);box-shadow:0 18px 30px color-mix(in srgb,var(--portal-accent) 30%,transparent)}.portal-submit:hover:before{left:118%}.submit-arrow{font-size:1.3rem;transition:.2s ease}.portal-submit:hover .submit-arrow{transform:translateX(5px)}
.portal-legal{text-align:center;color:#7b899d;font-size:.63rem;line-height:1.45;margin-top:12px}.portal-legal a{color:#0753a9;font-weight:900}
.portal-quick-card{border-radius:25px;padding:18px 22px 20px;transition:opacity .18s ease,transform .18s ease,filter .18s ease}
.portal-quick-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:11px}.portal-quick-heading h3{font-family:'Playfair Display',Georgia,serif;color:#0b2859;font-size:1.15rem}.portal-quick-heading span{color:#7a8799;font-size:.67rem;font-weight:700}
.portal-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.portal-quick-item{
  min-width:0;border:1px solid #e0e9f3;background:rgba(255,255,255,.82);border-radius:13px;padding:12px 5px 10px;
  display:grid;place-items:center;gap:5px;color:#29456d;cursor:pointer;
  animation:quickItemIn .52s calc(var(--item-index)*70ms) both ease-out;
  transition:.25s ease;
}
.portal-quick-item:hover{transform:translateY(-5px) scale(1.02);border-color:color-mix(in srgb,var(--portal-accent-2) 45%,#dce8f4);box-shadow:0 10px 22px rgba(18,72,119,.1)}
.quick-icon{height:28px;display:grid;place-items:center;color:var(--portal-accent-2);font-size:1.4rem;line-height:1}.portal-quick-item strong{font-size:.66rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.portal-story.is-switching,.portal-login-card.is-switching{opacity:.18;transform:translateY(8px) scale(.99);filter:blur(5px)}
.portal-login-card.is-switching{transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(8px) scale(.99)}
.portal-story.role-enter{animation:roleStoryEnter .58s ease-out}.portal-login-card.role-enter{animation:roleCardEnter .58s ease-out}
.portal-toast{
  position:fixed;z-index:5000;right:24px;bottom:24px;width:min(430px,calc(100% - 32px));
  background:#fff;border:1px solid #dce8f2;border-radius:18px;padding:15px 44px 15px 15px;
  box-shadow:0 24px 65px rgba(12,55,103,.22);
  display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;
  opacity:0;visibility:hidden;transform:translateY(24px) scale(.96);transition:.3s ease;
}
.portal-toast.show{opacity:1;visibility:visible;transform:none}.toast-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#dff7ef;color:#057650;font-weight:900}.portal-toast strong{display:block;color:#102e5e;font-size:.84rem}.portal-toast p{color:#718096;font-size:.72rem;line-height:1.4;margin-top:2px}.portal-toast button{position:absolute;right:9px;top:9px;width:30px;height:30px;border:0;border-radius:9px;background:#edf4fa;color:#55677f;cursor:pointer;font-size:1.1rem}
.form-shake{animation:formShake .38s ease}

@keyframes portalFloat{to{transform:translate(16px,-20px) scale(1.08)}}
@keyframes dotsDrift{to{transform:translate(-15px,12px)}}
@keyframes characterFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes ringSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes sparkFloat{0%,100%{transform:translateY(0) rotate(0);opacity:.75}50%{transform:translateY(-12px) rotate(14deg);opacity:1}}
@keyframes sparkPulse{50%{transform:scale(1.35);opacity:.7}}
@keyframes statusPulse{50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--portal-accent-2) 5%,transparent)}}
@keyframes quickItemIn{from{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}
@keyframes roleStoryEnter{from{opacity:.2;transform:translateX(-18px)}to{opacity:1;transform:none}}
@keyframes roleCardEnter{from{opacity:.2;transform:translateX(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes formShake{20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}

@media(max-width:1180px){
  .portal-grid{grid-template-columns:minmax(0,.9fr) minmax(510px,1.1fr);gap:30px}
  .portal-story h1{font-size:clamp(2.8rem,5vw,4.5rem)}
  .portal-visual{height:380px}.portal-character-stage img{height:355px}
}
@media(max-width:960px){
  .portal-shell{padding:18px 20px 30px}.portal-grid{grid-template-columns:1fr;max-width:680px;min-height:auto;gap:25px}
  .portal-story h1{font-size:clamp(2.7rem,8vw,4.6rem)}.portal-story-copy{min-height:auto}.portal-visual{height:375px;margin-top:0}.portal-access-column{width:100%}
  .portal-trust-list{margin-bottom:4px}.portal-topbar{max-width:680px}
}
@media(max-width:620px){
  .portal-shell{padding:12px 12px 24px}.portal-topbar{margin-bottom:5px}.portal-secure-badge{font-size:.63rem}.portal-home-link{font-size:.64rem;padding-inline:7px}
  .portal-eyebrow{font-size:.65rem;gap:9px}.portal-eyebrow span{width:27px}.portal-story h1{font-size:clamp(2.35rem,12vw,3.4rem);line-height:.94}.portal-story-copy{font-size:.86rem;margin-top:15px}
  .portal-visual{height:320px;width:100%}.portal-character-stage img{height:305px}.visual-spark{font-size:1.35rem}
  .portal-role-status{font-size:.7rem;padding:8px 12px;flex-wrap:wrap;row-gap:0}.portal-trust-list{gap:8px;margin-top:12px}.portal-trust-list span{font-size:.66rem;padding:0 9px;border-right:0}
  .portal-login-card{padding:20px 15px 18px;border-radius:25px}.portal-brand{justify-content:flex-start;margin-left:5px}.portal-brand img{width:49px;height:49px}.portal-brand strong{font-size:1.02rem}.portal-brand small{font-size:.54rem}
  .portal-role-tab{min-height:43px;font-size:.76rem;gap:5px}.tab-symbol{font-size:.91rem}.portal-login-intro h2{font-size:2.08rem}.portal-login-intro p{font-size:.75rem}.portal-welcome{font-size:.57rem}
  .portal-form-options{font-size:.68rem}.portal-submit{height:49px}.portal-legal{font-size:.57rem}
  .portal-quick-card{padding:16px 13px 15px}.portal-quick-heading{align-items:flex-start}.portal-quick-heading span{max-width:150px;text-align:right}.portal-quick-grid{gap:6px}.portal-quick-item{padding-inline:3px}.portal-quick-item strong{font-size:.58rem}.quick-icon{font-size:1.2rem}
  .portal-toast{right:16px;bottom:16px}
}
@media(max-width:420px){
  .portal-visual{height:285px}.portal-character-stage img{height:270px}
  .portal-role-tab{font-size:.67rem}.portal-role-tab .tab-symbol{display:none}.portal-brand strong{font-size:.94rem}.portal-quick-heading span{display:none}
  .portal-trust-list span:last-child{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  .portal-page *,.portal-page *:before,.portal-page *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}

/* --- Portal illustration upgrade: code-based sticker characters --- */
.portal-visual{
  width:min(650px,95%);
  height:430px;
  margin-top:8px;
  display:grid;
  place-items:end center;
}
.portal-character-stage{
  position:relative;
  width:min(560px,100%);
  max-width:100%;
  line-height:0;
  filter:drop-shadow(0 20px 26px rgba(24,70,112,.14));
  animation:characterFloat 5.5s ease-in-out infinite;
  transform-origin:center bottom;
}
#portalIllustration{width:100%;}
.character-artboard{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}
.portal-character-stage .eye-lid{
  opacity:0;
  transform:scaleY(0);
  transform-origin:center center;
  transform-box:fill-box;
  transition:transform 120ms ease, opacity 90ms ease;
}
.portal-character-stage .blink-line{
  opacity:0;
  transition:opacity 80ms ease;
}
.portal-character-stage .pupil-group{
  transition:transform 70ms linear;
  transform-box:fill-box;
  transform-origin:center center;
}
.portal-character-stage.is-blinking .eye-lid,
.portal-character-stage.password-eyes-closed .eye-lid{
  opacity:1;
  transform:scaleY(1);
}
.portal-character-stage.is-blinking .blink-line,
.portal-character-stage.password-eyes-closed .blink-line{
  opacity:1;
}
.portal-character-stage.password-eyes-closed .pupil-group{opacity:0;}
.portal-character-stage .eye{transform-box:fill-box;transform-origin:center center;}
.portal-character-stage.is-looking .eye{filter:drop-shadow(0 0 6px rgba(8,155,157,.08));}
.portal-character-stage .character-artboard rect,
.portal-character-stage .character-artboard circle,
.portal-character-stage .character-artboard path,
.portal-character-stage .character-artboard ellipse,
.portal-character-stage .character-artboard text{
  vector-effect:non-scaling-stroke;
}

@media(max-width:720px){
  .portal-visual{height:360px;width:min(100%,520px)}
  .portal-character-stage{width:min(500px,100%)}
}

/* =========================================================
   HOME PAGE — COMPACT SLIDER + NOTICE BOARD + LEADERSHIP
   ========================================================= */
.brand img{
  object-fit:contain;
  border-radius:50%;
  background:#fff;
}

.home-showcase{
  padding:26px 0 20px;
  background:
    radial-gradient(circle at 10% 10%,rgba(15,139,141,.08),transparent 27%),
    linear-gradient(180deg,#eef7ff 0%,#f7fbff 100%);
}
.home-showcase-grid{
  display:grid;
  grid-template-columns:minmax(0,1.9fr) minmax(300px,.76fr);
  gap:24px;
  align-items:stretch;
}
.home-showcase .hero{
  height:470px;
  min-height:0;
  border-radius:24px;
  box-shadow:0 18px 48px rgba(11,37,86,.18);
  border:1px solid rgba(11,37,86,.08);
}
.home-showcase .hero-slide{
  background-size:cover;
  background-position:center;
}
.home-showcase .hero-slide:after{
  background:linear-gradient(90deg,rgba(4,18,50,.65) 0%,rgba(4,18,50,.22) 48%,rgba(4,18,50,.05) 100%);
}
.home-showcase .hero-content{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:flex-end;
  padding:34px;
  pointer-events:none;
}
.home-showcase .hero-copy{
  width:min(590px,92%);
  padding:22px 24px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:20px;
  background:rgba(5,25,61,.58);
  backdrop-filter:blur(10px);
  box-shadow:0 14px 35px rgba(0,0,0,.2);
  pointer-events:auto;
}
.home-showcase .hero-badge{
  font-size:.76rem;
  margin-bottom:10px;
  padding:6px 11px;
}
.home-showcase .hero h1{
  font-size:clamp(2rem,3.6vw,3.8rem);
  margin-bottom:8px;
  line-height:1;
}
.home-showcase .hero p{
  font-size:.94rem;
  margin-bottom:16px;
}
.home-showcase .hero-actions .btn{
  padding:10px 16px;
  font-size:.82rem;
}
.home-showcase .hero-dots{
  left:auto;
  right:20px;
  bottom:18px;
  transform:none;
  padding:7px 9px;
  background:rgba(3,18,48,.46);
  border-radius:999px;
  backdrop-filter:blur(8px);
}
.home-showcase .hero-dot{
  width:8px;
  height:8px;
}
.home-showcase .hero-dot.active{
  width:24px;
}

.home-notice-board{
  min-height:470px;
  padding:0 20px 22px;
  background:#fff;
  border-radius:24px;
  border:1px solid rgba(11,37,86,.08);
  box-shadow:0 18px 48px rgba(11,37,86,.13);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.notice-board-heading{
  position:relative;
  margin:0 -20px 14px;
  padding:14px 22px;
  background:linear-gradient(135deg,var(--blue),#1267b5);
  color:#fff;
  text-transform:uppercase;
  text-align:center;
  font-weight:900;
  letter-spacing:.06em;
  font-size:1.25rem;
}
.notice-board-heading:after{
  content:"";
  position:absolute;
  bottom:-12px;
  left:50%;
  transform:translateX(-50%);
  border:12px solid transparent;
  border-top-color:#1267b5;
  border-bottom:0;
}
.notice-board-list{
  display:grid;
  gap:9px;
  margin-top:8px;
}
.notice-board-item{
  position:relative;
  display:grid;
  gap:3px;
  padding:10px 12px;
  background:#f4f8fd;
  border-left:4px solid #8db4d9;
  border-radius:8px;
  transition:.25s ease;
}
.notice-board-item:hover{
  transform:translateX(4px);
  border-left-color:var(--gold);
  background:#fff8e7;
}
.notice-board-item time{
  color:var(--blue);
  font-size:.74rem;
  font-weight:900;
}
.notice-board-item strong{
  color:#2e405f;
  font-size:.78rem;
  line-height:1.35;
  padding-right:38px;
}
.new-badge{
  position:absolute;
  right:8px;
  top:10px;
  background:#e60012;
  color:white;
  border-radius:5px;
  padding:2px 6px;
  font-size:.58rem;
  font-weight:900;
  transform:rotate(-8deg);
  box-shadow:0 4px 10px rgba(230,0,18,.22);
}
.notice-board-photo{
  margin:13px 0;
  border-radius:10px;
  overflow:hidden;
  height:72px;
  border:1px solid var(--line);
}
.notice-board-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%;
}
.notice-view-all{
  margin-top:auto;
  width:100%;
  padding:10px 14px;
  font-size:.82rem;
}
.quick-grid{
  margin-top:0;
  padding-top:0;
}

.leadership-section{
  background:
    linear-gradient(180deg,#fff 0%,#f7fbff 100%);
}
.leadership-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  margin-top:42px;
  align-items:stretch;
}
.leadership-card{
  position:relative;
  background:#fff;
  border:1px solid rgba(11,37,86,.08);
  border-top:4px solid #d2ae45;
  border-radius:18px;
  padding:30px 28px;
  text-align:center;
  box-shadow:0 16px 40px rgba(11,37,86,.08);
  transition:.3s ease;
}
.leadership-card.featured{
  border-top-color:#9b1c27;
  transform:translateY(-10px);
}
.leadership-card:hover{
  transform:translateY(-8px);
  box-shadow:0 22px 54px rgba(11,37,86,.15);
}
.leadership-card.featured:hover{
  transform:translateY(-16px);
}
.leadership-photo{
  width:170px;
  height:170px;
  margin:0 auto 18px;
  padding:7px;
  border-radius:50%;
  background:linear-gradient(135deg,#d9b548,#ffffff 48%,#a71922);
  box-shadow:0 12px 28px rgba(11,37,86,.12);
}
.leadership-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  border:5px solid #fff;
}
.leadership-role{
  display:block;
  color:#a01820;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.7rem;
  font-weight:900;
}
.leadership-card h3{
  margin:7px 0 12px;
  color:var(--navy);
  font-family:'Playfair Display',serif;
  font-size:1.45rem;
}
.leadership-quote{
  margin:0 0 14px;
  padding:13px 14px;
  background:#fbf8f0;
  border-left:3px solid #d6b44c;
  color:#293a59;
  font-family:Georgia,serif;
  font-style:italic;
  font-size:.9rem;
  line-height:1.5;
  text-align:left;
}
.leadership-card p{
  color:var(--muted);
  font-size:.9rem;
  text-align:left;
}

@media(max-width:1050px){
  .home-showcase-grid{grid-template-columns:1fr}
  .home-showcase .hero{height:450px}
  .home-notice-board{min-height:0}
  .notice-board-list{grid-template-columns:repeat(2,1fr)}
  .notice-board-photo{height:120px}
  .leadership-grid{grid-template-columns:repeat(2,1fr)}
  .leadership-card.featured{transform:none}
  .leadership-card.featured:hover{transform:translateY(-8px)}
}
@media(max-width:720px){
  .home-showcase{padding:14px 0 18px}
  .home-showcase-grid{gap:16px}
  .home-showcase .hero{height:390px;min-height:0;border-radius:18px}
  .home-showcase .hero-content{padding:16px;align-items:flex-end}
  .home-showcase .hero-copy{width:100%;padding:15px;border-radius:15px}
  .home-showcase .hero h1{font-size:2rem}
  .home-showcase .hero p{display:none}
  .home-showcase .hero-badge{font-size:.66rem}
  .home-showcase .hero-actions{flex-direction:row;align-items:center}
  .home-showcase .hero-actions .btn{font-size:.72rem;padding:9px 12px}
  .home-showcase .hero-dots{right:12px;bottom:10px;max-width:46%;overflow:hidden}
  .home-notice-board{border-radius:18px}
  .notice-board-list{grid-template-columns:1fr}
  .notice-board-photo{height:92px}
  .leadership-grid{grid-template-columns:1fr;gap:20px}
  .leadership-photo{width:145px;height:145px}
}
@media(max-width:430px){
  .home-showcase .hero{height:335px}
  .home-showcase .hero-actions .btn-light{display:none}
  .home-showcase .hero-dots{display:none}
}


/* =========================================================
   CENTRAL HEADER + COMPACT HOME SLIDER + NOTICE BOARD
   ========================================================= */
.topbar{display:none}
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  border-bottom:0;
  backdrop-filter:none;
  box-shadow:0 12px 30px rgba(11,37,86,.08);
}
.header-main{background:#fff}
.header-main-inner{
  display:flex;
  align-items:center;
  gap:18px;
  padding:16px 0 14px;
}
.brand{min-width:auto;flex:0 0 auto}
.brand img{width:82px;height:82px;filter:drop-shadow(0 10px 14px rgba(11,37,86,.16))}
.school-meta{flex:1;min-width:0}
.school-meta h1{
  margin:0;
  color:#001f4d;
  font-size:clamp(1.65rem,3vw,2.95rem);
  line-height:1.02;
  font-weight:900;
  letter-spacing:.02em;
}
.school-meta p{
  margin-top:5px;
  color:#17345e;
  font-size:1rem;
  font-weight:700;
}
.header-utility{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
  margin-top:8px;
  color:#456285;
  font-weight:800;
  font-size:.84rem;
}
.main-nav{
  background:linear-gradient(90deg,#2a9de4 0%,#8cbf4f 100%);
  border-top:1px solid rgba(11,37,86,.06);
}
.nav-shell{display:flex;align-items:center;justify-content:flex-start;min-height:54px}
.nav-links{display:flex;align-items:center;gap:0;list-style:none;flex-wrap:wrap}
.nav-links a{
  display:block;
  padding:16px 17px;
  color:#072246;
  font-weight:900;
  font-size:.92rem;
  border-radius:0;
  text-transform:uppercase;
  letter-spacing:.01em;
}
.nav-links a:hover,.nav-links a.active{background:rgba(255,255,255,.16);color:#fff}
.nav-cta{white-space:nowrap;margin-left:auto}

.home-hero{
  position:relative;
  height:auto;
  min-height:auto;
  padding:26px 0 8px;
  background:transparent;
  overflow:visible;
}
.hero-layout{
  display:grid;
  grid-template-columns:minmax(0,2.06fr) minmax(320px,.9fr);
  gap:28px;
  align-items:start;
}
.home-slider{
  position:relative;
  height:420px;
  overflow:hidden;
  border-radius:24px;
  background:#0b2556;
  box-shadow:var(--shadow);
}
.home-slider .hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transform:scale(1.03);
  transition:opacity 1s ease, transform 6s ease;
  background-size:cover;
  background-position:center;
}
.home-slider .hero-slide.active{opacity:1;transform:scale(1)}
.home-slider .hero-slide:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(4,18,50,.08),rgba(4,18,50,.18));
}
.hero-dots{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:5;
  display:flex;
  gap:10px;
}
.hero-dot{width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.45);cursor:pointer}
.hero-dot.active{background:#fff;transform:scale(1.16)}
.notice-board{
  background:#fff;
  border-radius:24px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.notice-board-title{
  position:relative;
  background:#145fa7;
  color:#fff;
  text-align:center;
  font-size:2rem;
  font-weight:900;
  letter-spacing:.04em;
  padding:16px 12px;
}
.notice-board-title:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-14px;
  transform:translateX(-50%);
  border-left:14px solid transparent;
  border-right:14px solid transparent;
  border-top:14px solid #145fa7;
}
.notice-scroll-wrap{
  height:344px;
  overflow:hidden;
  padding:26px 18px 8px;
}
.notice-scroll{
  display:flex;
  flex-direction:column;
  gap:14px;
  animation:noticeScroll 18s linear infinite;
}
.notice-scroll-wrap:hover .notice-scroll{animation-play-state:paused}
.notice-item{
  position:relative;
  display:block;
  background:#edf1f7;
  border-left:4px solid #8cb8e8;
  border-radius:16px;
  padding:14px 18px 14px 16px;
  color:#153360;
  min-height:72px;
}
.notice-date{
  display:block;
  color:#0b4ca3;
  font-size:1.15rem;
  font-weight:900;
  margin-bottom:3px;
}
.notice-text{
  display:block;
  font-size:1.02rem;
  line-height:1.35;
  font-weight:800;
  max-width:80%;
}
.notice-new{
  position:absolute;
  top:12px;
  right:12px;
  background:#ff2035;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  padding:4px 9px;
  border-radius:10px;
  transform:rotate(-8deg);
}
.notice-thumb{
  width:calc(100% - 36px);
  height:95px;
  object-fit:cover;
  border-radius:16px;
  margin:6px 18px 14px;
}
.notice-btn{margin:0 18px 20px;width:calc(100% - 36px)}
.notice-strip{display:none}
.footer-bottom .developer-credit{color:var(--gold);font-weight:900;letter-spacing:.04em}

@keyframes noticeScroll{
  0%{transform:translateY(0)}
  100%{transform:translateY(calc(-50% - 7px))}
}

@media(max-width:1050px){
  .header-main-inner{flex-wrap:wrap}
  .menu-toggle{display:block;margin-left:auto}
  .nav-cta{order:3;margin-left:0}
  .nav-links{
    position:fixed;
    inset:145px 4% auto 4%;
    background:#fff;
    border-radius:20px;
    box-shadow:var(--shadow);
    padding:14px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    max-height:calc(100vh - 180px);
    overflow:auto;
  }
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 14px;border-radius:12px;text-transform:none}
  .main-nav{position:relative}
  .nav-shell{min-height:0;padding:0}
  .hero-layout{grid-template-columns:1fr}
  .notice-board{max-width:540px;margin:0 auto}
}

@media(max-width:720px){
  .site-header{position:sticky}
  .header-main-inner{padding:12px 0}
  .brand img{width:62px;height:62px}
  .school-meta h1{font-size:1.25rem}
  .school-meta p{font-size:.87rem}
  .header-utility{font-size:.74rem;gap:6px 12px}
  .nav-cta{display:none}
  .nav-links{inset:120px 4% auto 4%}
  .home-slider{height:280px;border-radius:18px}
  .notice-board-title{font-size:1.55rem}
  .notice-scroll-wrap{height:300px;padding:24px 14px 8px}
  .notice-item{padding:12px 14px}
  .notice-date{font-size:1rem}
  .notice-text{font-size:.95rem;max-width:100%}
  .notice-thumb{width:calc(100% - 28px);margin:6px 14px 12px;height:82px}
  .notice-btn{width:calc(100% - 28px);margin:0 14px 18px}
}


/* =========================================================
   CENTRAL FINAL BLUE THEME + LEADERSHIP + FOOTER MAP + MEDIA BAR
   ========================================================= */
:root{
  --navy:#183d7c;
  --blue:#2f7fdb;
  --teal:#60b7eb;
  --gold:#f2b94a;
  --sky:#eef7ff;
  --ink:#1d355f;
  --muted:#617596;
  --line:#d8e8fb;
  --white:#ffffff;
  --shadow:0 18px 45px rgba(33,92,170,.13);
}
body{
  background:linear-gradient(180deg,#f4faff 0%,#edf6ff 46%,#f7fbff 100%);
  color:var(--ink);
}
.section:nth-child(even){background:transparent}
.quick-card,.info-card,.feature-card,.testimonial-card,.contact-card,.notice-card,.form-card,.login-box,.leader-card{
  box-shadow:0 18px 35px rgba(58,119,200,.10);
}
.site-header{box-shadow:0 10px 34px rgba(44,112,196,.12)}
.main-nav{background:linear-gradient(90deg,#74baf2 0%,#c6e8ff 42%,#8fc7f2 100%)}
.nav-links a{color:#173763}
.nav-links a:hover,.nav-links a.active{background:rgba(47,127,219,.18);color:#0d386e}
.btn-primary{background:linear-gradient(135deg,#2c79d2,#64b8ea);box-shadow:0 14px 30px rgba(47,127,219,.22)}
.eyebrow,.brand-text span,.footer-links a:hover{color:#2b84d6}
.home-hero{padding-top:30px}
.hero-layout{grid-template-columns:minmax(0,2.2fr) minmax(360px,.88fr)}
.home-slider{height:520px;border-radius:28px}
.home-slider .hero-slide:after{background:linear-gradient(180deg,rgba(19,61,124,.05),rgba(19,61,124,.14))}
.notice-board{border:1px solid rgba(96,183,235,.25);background:linear-gradient(180deg,#ffffff,#f7fbff)}
.notice-board-title{background:linear-gradient(90deg,#1b66b8,#2e84d7)}
.notice-board-title:after{border-top-color:#297bd0}
.notice-item{background:#f1f6fd;border-left-color:#7abaf0}
.notice-btn{border-radius:18px}
.hero-dot.active{background:#f2b94a}
.stats-band{background:linear-gradient(135deg,#1c5cab,#63b6e8)}
.cta-band{background:linear-gradient(135deg,#1e63b4,#63b8ea)}
.feature-card .icon-box,.quick-card .icon-box{background:linear-gradient(135deg,#d9ecff,#f5fbff)}
.card-tag{background:#eaf4ff;color:#1f63b2}

.portal-login-wrap{position:relative;flex:0 0 auto}
.portal-dropdown{
  position:absolute;
  right:0;
  top:calc(100% + 12px);
  width:250px;
  background:#fff;
  border:1px solid rgba(96,183,235,.3);
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:14px;
  display:none;
  z-index:1200;
}
.portal-login-wrap.open .portal-dropdown{display:block}
.portal-dropdown-title{font-weight:900;color:#153d79;margin-bottom:10px;font-size:.92rem}
.portal-dropdown a{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  font-weight:800;
  color:#234671;
}
.portal-dropdown a:hover{background:#eef6ff;color:#1c69bd}

.leadership-grid{
  margin-top:40px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}
.leader-card{
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  border:1px solid rgba(96,183,235,.24);
  border-radius:30px;
  overflow:hidden;
}
.leader-photo-wrap{
  padding:26px 26px 6px;
  display:flex;
  justify-content:center;
}
.leader-photo{
  width:180px;
  height:180px;
  object-fit:cover;
  border-radius:50%;
  border:8px solid #edf6ff;
  box-shadow:0 12px 28px rgba(39,101,182,.16);
  background:#fff;
}
.leader-body{padding:4px 28px 30px;text-align:center}
.leader-role{display:inline-block;padding:7px 14px;border-radius:999px;background:#eaf4ff;color:#1d66b6;font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.leader-body h3{margin:14px 0 6px;color:#16396f;font-size:2rem;font-family:'Playfair Display',serif}
.leader-subtitle{color:#4e6f98;font-weight:800;margin-bottom:16px}
.leader-body p:last-child{color:#5f7495;line-height:1.72}

.footer{
  background:linear-gradient(135deg,#0d2f60 0%,#124482 46%,#1a5ca8 100%);
  color:#e7f2ff;
}
.footer-grid{align-items:start}
.footer-brand p,.footer-links a,.footer-contact-links li{color:#d9e9ff}
.footer-map-block h4{margin-bottom:16px}
.footer-map-card{
  display:block;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  overflow:hidden;
  color:#fff;
}
.footer-map-card img{width:100%;height:190px;object-fit:cover;display:block}
.footer-map-card span{display:block;padding:12px 14px;font-weight:900;color:#ffd66a}
.footer-bottom{
  align-items:center;
}
.developer-credit{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#fff;
  font-weight:900;
}
.developer-credit span{color:#dbe9ff}
.developer-credit img{
  width:220px;
  height:auto;
  border-radius:10px;
  box-shadow:0 8px 16px rgba(0,0,0,.18);
}

.fixed-media-bar{
  position:fixed;
  right:0;
  top:50%;
  transform:translateY(-50%);
  z-index:1400;
  display:flex;
  flex-direction:column;
  box-shadow:0 14px 28px rgba(0,0,0,.18);
  border-radius:20px 0 0 20px;
  overflow:hidden;
}
.media-link{
  width:68px;
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
}
.media-icon svg{width:34px;height:34px;display:block}
.media-instagram{background:linear-gradient(180deg,#ff2fab,#ff6b2c)}
.media-facebook{background:#2277e5}
.media-linkedin{background:#0b67c2}
.media-admission{
  background:#a51617;
  min-height:158px;
  padding:10px 0;
}
.media-text{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  font-weight:900;
  letter-spacing:.08em;
  font-size:.98rem;
}
.media-link:hover{filter:brightness(1.05)}

@media(max-width:1050px){
  .hero-layout{grid-template-columns:1fr}
  .home-slider{height:460px}
  .leadership-grid{grid-template-columns:1fr}
  .portal-login-wrap{order:3;margin-left:0}
  .developer-credit img{width:190px}
}
@media(max-width:720px){
  .home-slider{height:340px}
  .portal-dropdown{right:auto;left:0;width:220px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .developer-credit{flex-wrap:wrap}
  .developer-credit img{width:170px}
  .fixed-media-bar{top:auto;bottom:18px;right:10px;transform:none;border-radius:18px;flex-direction:row}
  .media-link{width:56px;min-height:56px}
  .media-admission{min-height:56px;width:134px}
  .media-text{writing-mode:horizontal-tb;font-size:.78rem;line-height:1.2;text-align:center}
}


/* =========================================================
   FINAL MEDIA BAR + SATELLITE MAP + DESKTOP-MODE MOBILE VIEW
   ========================================================= */
.hero-layout{grid-template-columns:minmax(0,2.95fr) minmax(320px,.7fr)}
.home-slider{
  height:660px;
}
.home-slider .hero-slide{
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center center;
  background-color:#eef6ff;
}
.notice-scroll-wrap{height:390px}

.footer-map-card{
  position:relative;
  overflow:hidden;
}
.map-embed-wrap{
  position:relative;
  border-radius:18px 18px 0 0;
  overflow:hidden;
}
.map-open-badge{
  position:absolute;
  left:10px;
  top:10px;
  z-index:2;
  background:#ffffff;
  color:#2d73cf;
  padding:8px 12px;
  border-radius:6px;
  font-weight:800;
  box-shadow:0 4px 12px rgba(0,0,0,.16);
}
.footer-map-card iframe{
  width:100%;
  height:250px;
  border:0;
  display:block;
}

.fixed-media-bar{
  right:0;
  top:50%;
  transform:translateY(-50%);
  border-radius:16px 0 0 16px;
  overflow:hidden;
}
.media-link{
  width:56px;
  min-height:66px;
}
.media-link .media-icon svg{width:31px;height:31px}
.media-instagram{background:linear-gradient(180deg,#ff2eaa 0%,#ff7e19 100%)}
.media-facebook{background:#2275e4}
.media-call{background:#14aa83}
.media-linkedin{background:#0c67c1}
.media-admission{
  min-height:152px;
  background:#a8161a;
}
.media-share{background:#38d883;border:0;cursor:pointer}
.media-text{font-size:.9rem;letter-spacing:.06em}

@media(max-width:1050px){
  .hero-layout{grid-template-columns:minmax(0,2.4fr) minmax(300px,.8fr)}
  .home-slider{height:560px}
}

@media(max-width:720px){
  html,body{min-width:1180px;overflow-x:auto}
  .site-header,.home-hero,main,.footer{min-width:1180px}
  .hero-layout{grid-template-columns:minmax(0,2.95fr) minmax(320px,.7fr)}
  .home-slider{height:620px}
  .fixed-media-bar{
    top:50%;
    bottom:auto;
    right:0;
    transform:translateY(-50%);
    flex-direction:column;
    border-radius:16px 0 0 16px;
  }
  .media-link{width:56px;min-height:66px}
  .media-admission{width:56px;min-height:152px}
  .media-text{writing-mode:vertical-rl;text-orientation:mixed;font-size:.9rem}
}


/* =========================================================
   SLIDER LENGTH INCREASE + HEIGHT REDUCE FIX
   ========================================================= */
.hero-layout{
  grid-template-columns:minmax(0,3.35fr) minmax(280px,.65fr) !important;
  align-items:start;
}
.home-slider{
  height:auto !important;
  aspect-ratio:16 / 9;
  min-height:0 !important;
  width:100%;
}
.home-slider .hero-slide{
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center center;
}
@media(max-width:1050px){
  .hero-layout{
    grid-template-columns:minmax(0,3fr) minmax(260px,.72fr) !important;
  }
  .home-slider{
    aspect-ratio:16 / 9;
    height:auto !important;
  }
}
@media(max-width:720px){
  .hero-layout{
    grid-template-columns:minmax(0,3.2fr) minmax(260px,.7fr) !important;
  }
  .home-slider{
    aspect-ratio:16 / 9;
    height:auto !important;
  }
}


/* =========================================================
   PORTAL LOGIN INSIDE MENU + FORCED DESKTOP VIEW ON MOBILE
   ========================================================= */
html,body{
  min-width:1180px !important;
}
.site-header,main,.footer{
  min-width:1180px;
}
.nav-links{
  width:100%;
}
.nav-portal-item{
  position:relative;
  list-style:none;
  margin-left:auto;
}
.nav-portal-button{
  display:block;
  border:0;
  background:linear-gradient(135deg,#2c79d2,#64b8ea);
  color:#fff;
  padding:16px 20px;
  font-weight:900;
  font-size:.92rem;
  text-transform:uppercase;
  cursor:pointer;
  min-height:54px;
}
.nav-portal-button:hover,
.nav-portal-item.open .nav-portal-button{
  background:linear-gradient(135deg,#1f65bb,#4aa8df);
}
.nav-portal-item .portal-dropdown{
  top:calc(100% + 8px);
  right:0;
  left:auto;
}
.nav-portal-item:hover .portal-dropdown{
  display:block;
}
.header-main-inner .menu-toggle{
  margin-left:auto;
}

/* viewport is fixed at desktop width, so the complete desktop layout is scaled on phones */
@media(max-width:1179px){
  html,body,.site-header,main,.footer{
    min-width:1180px !important;
  }
}

/* =========================================================
   SCHOOL BUS LIVE ANIMATION STRIP
   ========================================================= */
.hero-left-column{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.bus-animation-strip{
  position:relative;
  height:170px;
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(113,179,236,.35);
  background:linear-gradient(180deg,#dff1ff 0%,#eef8ff 52%,#d8e8f7 52%,#d8e8f7 100%);
  box-shadow:0 18px 35px rgba(58,119,200,.10);
}
.bus-strip-sky{
  position:absolute;
  inset:0 0 46% 0;
  background:linear-gradient(180deg,#dff1ff 0%,#edf8ff 100%);
}
.bus-strip-hill{
  position:absolute;
  bottom:48px;
  width:260px;
  height:70px;
  background:linear-gradient(180deg,#bfe0bc,#8bc789);
  border-radius:140px 140px 0 0;
  opacity:.8;
}
.hill-one{left:210px}
.hill-two{left:520px;width:340px;height:90px}
.school-sign{
  position:absolute;
  left:34px;
  bottom:58px;
  z-index:3;
  display:flex;
  align-items:flex-end;
  gap:0;
}
.school-sign-post{
  width:8px;
  height:74px;
  background:#775234;
  border-radius:4px;
  box-shadow:2px 0 0 rgba(255,255,255,.2) inset;
}
.school-sign-board{
  margin-left:-2px;
  margin-bottom:22px;
  background:linear-gradient(135deg,#1970c8,#48a9e8);
  color:#fff;
  font-size:1rem;
  font-weight:900;
  letter-spacing:.06em;
  padding:12px 18px;
  border-radius:14px;
  box-shadow:0 10px 20px rgba(31,104,191,.22);
  white-space:nowrap;
}
.bus-road{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:58px;
  background:linear-gradient(180deg,#58646e,#39434d);
  border-top:4px solid #f3d26a;
}
.road-line{
  position:absolute;
  top:26px;
  width:72px;
  height:6px;
  background:#fff;
  border-radius:999px;
  opacity:.9;
  animation:roadMove 1.8s linear infinite;
}
.road-line:nth-child(1){left:34%;animation-delay:0s}
.road-line:nth-child(2){left:48%;animation-delay:.25s}
.road-line:nth-child(3){left:62%;animation-delay:.5s}
.road-line:nth-child(4){left:76%;animation-delay:.75s}
.school-bus{
  position:absolute;
  bottom:14px;
  width:178px;
  height:86px;
  z-index:4;
  animation:busDrive 16s linear infinite;
}
.bus-two{animation-delay:8s}
.bus-body{
  position:absolute;
  left:0;
  right:0;
  top:10px;
  height:54px;
  background:linear-gradient(180deg,#ffd23c,#eeb51a);
  border:4px solid #173763;
  border-radius:16px 20px 10px 10px;
  box-shadow:0 6px 10px rgba(0,0,0,.12);
}
.bus-body:before{
  content:"";
  position:absolute;
  right:10px;
  top:-14px;
  width:58px;
  height:18px;
  background:linear-gradient(180deg,#ffd23c,#eeb51a);
  border:4px solid #173763;
  border-bottom:0;
  border-radius:16px 16px 0 0;
}
.bus-name{
  position:absolute;
  left:10px;
  right:12px;
  top:5px;
  font-size:.56rem;
  font-weight:900;
  color:#123566;
  text-align:center;
  letter-spacing:.02em;
  white-space:nowrap;
  overflow:hidden;
}
.bus-windows{
  position:absolute;
  left:12px;
  right:44px;
  top:18px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
}
.bus-window{
  position:relative;
  display:block;
  height:16px;
  background:linear-gradient(180deg,#e1f6ff,#b7e7ff);
  border:2px solid #173763;
  border-radius:4px;
  overflow:hidden;
}
.bus-window i{
  position:absolute;
  left:50%;
  bottom:1px;
  transform:translateX(-50%);
  width:8px;
  height:8px;
  background:#7b4d2b;
  border-radius:50% 50% 45% 45%;
}
.bus-window i:before{
  content:"";
  position:absolute;
  left:1px;
  top:7px;
  width:6px;
  height:7px;
  background:#f8d6af;
  border-radius:4px 4px 2px 2px;
}
.bus-door{
  position:absolute;
  right:10px;
  top:18px;
  width:22px;
  height:26px;
  background:linear-gradient(180deg,#eff8ff,#cde9ff);
  border:2px solid #173763;
  border-radius:5px;
}
.wheel{
  position:absolute;
  bottom:0;
  width:24px;
  height:24px;
  background:#17202c;
  border:4px solid #5a6776;
  border-radius:50%;
  animation:wheelSpin .65s linear infinite;
}
.wheel:after{
  content:"";
  position:absolute;
  inset:5px;
  background:#dbe4f0;
  border-radius:50%;
}
.wheel-front{right:22px}
.wheel-back{left:24px}
.bus-one{animation-name:busDrive}
.bus-two{animation-name:busDriveTwo}

@keyframes busDrive{
  0%{transform:translateX(-220px)}
  48%{transform:translateX(560px)}
  49%,100%{transform:translateX(560px)}
}
@keyframes busDriveTwo{
  0%,49%{transform:translateX(-220px)}
  50%{transform:translateX(-220px)}
  100%{transform:translateX(560px)}
}
@keyframes wheelSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes roadMove{
  0%{transform:translateX(0);opacity:.9}
  100%{transform:translateX(-180px);opacity:.15}
}

@media(max-width:1050px){
  .hero-left-column{gap:14px}
  .bus-animation-strip{height:156px}
  .school-sign-board{font-size:.88rem;padding:10px 14px}
  .school-bus{transform:scale(.9);transform-origin:left bottom}
}
@media(max-width:720px){
  .bus-animation-strip{height:150px}
}

/* =========================================================
   BUS ANIMATION V2 - MODERN BUS + TREES + BIRDS + SUN
   ========================================================= */
.bus-animation-strip{
  background:linear-gradient(180deg,#dff0ff 0%,#ebf7ff 54%,#dbe8f4 54%,#dbe8f4 100%) !important;
}
.bus-strip-hill{display:none !important}
.bus-strip-sky{
  inset:0 0 40% 0 !important;
  background:linear-gradient(180deg,#d8eeff 0%,#eff8ff 100%) !important;
}
.sun-rise{
  position:absolute;
  right:118px;
  top:14px;
  width:54px;
  height:54px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#fffad3 0%,#ffd75f 38%,#f8b226 70%,#f29f19 100%);
  box-shadow:0 0 0 10px rgba(255,216,102,.14),0 0 35px rgba(255,192,50,.34);
  animation:sunFloat 5s ease-in-out infinite alternate;
  z-index:1;
}
.sun-rise:before{
  content:"";
  position:absolute;
  inset:-10px;
  background:conic-gradient(from 0deg, transparent 0 8%, rgba(255,199,62,.75) 8% 10%, transparent 10% 18%, rgba(255,199,62,.75) 18% 20%, transparent 20% 28%, rgba(255,199,62,.75) 28% 30%, transparent 30% 38%, rgba(255,199,62,.75) 38% 40%, transparent 40% 48%, rgba(255,199,62,.75) 48% 50%, transparent 50% 58%, rgba(255,199,62,.75) 58% 60%, transparent 60% 68%, rgba(255,199,62,.75) 68% 70%, transparent 70% 78%, rgba(255,199,62,.75) 78% 80%, transparent 80% 88%, rgba(255,199,62,.75) 88% 90%, transparent 90% 100%);
  border-radius:50%;
  filter:blur(.4px);
  animation:sunSpin 18s linear infinite;
}
.bird-flock{
  position:absolute;
  inset:16px 0 auto 0;
  height:40px;
  z-index:2;
}
.bird{
  position:absolute;
  width:16px;
  height:8px;
  border-top:3px solid #334a69;
  border-radius:50% 50% 0 0;
  transform:rotate(7deg);
  animation:birdFly 11s linear infinite;
}
.bird:after{
  content:"";
  position:absolute;
  left:10px;
  top:-3px;
  width:16px;
  height:8px;
  border-top:3px solid #334a69;
  border-radius:50% 50% 0 0;
  transform:rotate(-14deg);
}
.bird-one{left:55%;top:8px;animation-delay:0s;transform:scale(1.05)}
.bird-two{left:60%;top:2px;animation-delay:2.6s;transform:scale(.9)}
.bird-three{left:67%;top:10px;animation-delay:5.2s;transform:scale(1.15)}
.roadside-tree{
  position:absolute;
  bottom:58px;
  z-index:2;
}
.tree-trunk{
  position:absolute;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:10px;
  height:44px;
  background:linear-gradient(180deg,#845833,#6c472a);
  border-radius:8px;
}
.tree-crown{
  position:absolute;
  bottom:28px;
  left:50%;
  transform:translateX(-50%);
  width:72px;
  height:72px;
  background:radial-gradient(circle at 35% 30%,#78d776 0%,#44b85f 55%,#2f9151 100%);
  border-radius:50%;
  box-shadow:-22px 16px 0 2px #4ebf66,24px 14px 0 4px #5bc86f,0 -10px 0 4px #6acf70;
}
.tree-one{left:300px}
.tree-two{left:560px;transform:scale(1.06)}
.tree-three{left:790px;transform:scale(.94)}
.school-sign{
  bottom:52px !important;
}
.school-sign-board{
  background:linear-gradient(135deg,#2f7fd6,#57b1f0) !important;
  border-radius:18px !important;
  padding:13px 22px !important;
  font-size:1.04rem !important;
  box-shadow:0 14px 26px rgba(41,120,206,.24) !important;
}
.bus-road{
  height:64px !important;
  background:linear-gradient(180deg,#5a6672,#38414b) !important;
  border-top:4px solid #f2d163 !important;
}
.road-line{
  top:28px !important;
  width:88px !important;
  height:6px !important;
  background:#dce3ea !important;
}
.road-line:nth-child(1){left:18% !important}
.road-line:nth-child(2){left:36% !important}
.road-line:nth-child(3){left:54% !important}
.road-line:nth-child(4){left:72% !important}
.school-bus{
  width:232px !important;
  height:98px !important;
  bottom:10px !important;
}
.school-bus::before{
  content:"";
  position:absolute;
  right:18px;
  top:8px;
  width:14px;
  height:10px;
  background:#183b73;
  border-radius:4px 4px 2px 2px;
}
.school-bus::after{
  content:"";
  position:absolute;
  right:-6px;
  top:34px;
  width:14px;
  height:10px;
  background:#ffe39b;
  border-radius:0 8px 8px 0;
  box-shadow:0 0 10px rgba(255,225,139,.6);
}
.bus-body{
  top:14px !important;
  height:60px !important;
  background:linear-gradient(180deg,#ffd84c 0%,#f5bf28 100%) !important;
  border:5px solid #183b73 !important;
  border-radius:22px 26px 18px 18px !important;
  box-shadow:0 10px 18px rgba(11,35,69,.15) !important;
}
.bus-body:before{
  right:14px !important;
  top:-16px !important;
  width:72px !important;
  height:22px !important;
  background:linear-gradient(180deg,#ffd84c 0%,#f5bf28 100%) !important;
  border:5px solid #183b73 !important;
  border-bottom:0 !important;
  border-radius:18px 18px 0 0 !important;
}
.bus-body:after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:6px;
  height:8px;
  background:linear-gradient(90deg,#1c4586,#2d73cf);
  border-radius:999px;
}
.bus-name{
  top:6px !important;
  font-size:.68rem !important;
  color:#16396f !important;
}
.bus-windows{
  left:14px !important;
  right:56px !important;
  top:22px !important;
  gap:7px !important;
}
.bus-window{
  height:18px !important;
  border:2px solid #183b73 !important;
  border-radius:6px !important;
  background:linear-gradient(180deg,#f2fbff,#b9e9ff) !important;
}
.bus-window i{
  width:9px !important;
  height:9px !important;
  background:#7a4d2d !important;
}
.bus-window i:before{
  left:1px !important;
  top:7px !important;
  width:7px !important;
  height:8px !important;
  background:#f7d7b2 !important;
}
.bus-door{
  right:13px !important;
  top:20px !important;
  width:28px !important;
  height:29px !important;
  border:2px solid #183b73 !important;
  border-radius:7px !important;
  background:linear-gradient(180deg,#f2fbff,#cceaff) !important;
}
.wheel{
  width:28px !important;
  height:28px !important;
  border:4px solid #5c6876 !important;
  bottom:0 !important;
}
.wheel:after{
  inset:6px !important;
}
.wheel-front{right:28px !important}
.wheel-back{left:28px !important}

@keyframes sunFloat{
  0%{transform:translateY(10px)}
  100%{transform:translateY(-4px)}
}
@keyframes sunSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes birdFly{
  0%{transform:translateX(0) translateY(0) scale(1)}
  50%{transform:translateX(65px) translateY(-8px) scale(1.06)}
  100%{transform:translateX(130px) translateY(0) scale(1)}
}
@keyframes busDrive{
  0%{transform:translateX(-250px)}
  45%{transform:translateX(650px)}
  46%,100%{transform:translateX(650px)}
}
@keyframes busDriveTwo{
  0%,52%{transform:translateX(-250px)}
  100%{transform:translateX(650px)}
}

@media(max-width:1050px){
  .tree-one{left:230px}
  .tree-two{left:460px}
  .tree-three{left:670px}
  .school-bus{transform:scale(.92);transform-origin:left bottom}
}
@media(max-width:720px){
  .sun-rise{right:94px;top:16px}
  .tree-one{left:210px}
  .tree-two{left:440px}
  .tree-three{left:650px}
}

/* =========================================================
   BUS ANIMATION V3 - BETTER SUN, SINGLE BUS, MORE BIRDS, DRIVER
   ========================================================= */
.sun-rise{
  right:125px !important;
  top:10px !important;
  width:68px !important;
  height:68px !important;
  background:radial-gradient(circle at 35% 35%, #fff9cf 0%, #ffe98f 26%, #ffd55f 52%, #f8bb32 76%, #f29f18 100%) !important;
  box-shadow:0 0 0 8px rgba(255,216,104,.18), 0 0 22px rgba(255,191,55,.25) !important;
  animation:sunFloatGentle 4.5s ease-in-out infinite alternate !important;
}
.sun-rise::before{
  content:"";
  position:absolute;
  inset:-14px;
  border-radius:50%;
  background:repeating-conic-gradient(from 0deg, rgba(248,188,46,.95) 0deg 8deg, transparent 8deg 30deg);
  -webkit-mask: radial-gradient(circle, transparent 0 54%, #000 56% 100%);
          mask: radial-gradient(circle, transparent 0 54%, #000 56% 100%);
  opacity:.95;
  animation:sunRotate 18s linear infinite;
}
.sun-rise::after{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(255,255,255,.15) 38%, transparent 40%);
}
.bird-flock{height:46px !important; inset:20px 0 auto 0 !important}
.bird{width:18px !important; height:9px !important; border-top-width:3px !important}
.bird::after{width:18px !important; height:9px !important; top:-3px !important; left:11px !important}
.bird-one{left:48% !important; top:12px !important; animation-delay:0s !important}
.bird-two{left:54% !important; top:4px !important; animation-delay:1.4s !important; transform:scale(.88) !important}
.bird-three{left:60% !important; top:14px !important; animation-delay:2.8s !important; transform:scale(1.04) !important}
.bird-four{left:67% !important; top:8px !important; animation-delay:4.2s !important; transform:scale(.94) !important}
.bird-five{left:73% !important; top:16px !important; animation-delay:5.6s !important; transform:scale(1.08) !important}

.bus-two{display:none !important}
.school-bus{
  width:240px !important;
  height:102px !important;
  bottom:6px !important;
}
.bus-one{
  animation:singleBusDrive 14s linear infinite !important;
}
.bus-body{
  top:12px !important;
  height:62px !important;
  border-radius:24px 28px 16px 16px !important;
}
.bus-body::before{
  width:74px !important;
  height:24px !important;
  right:12px !important;
  top:-18px !important;
}
.bus-name{
  font-size:.7rem !important;
  top:7px !important;
}
.bus-windows{
  left:16px !important;
  right:60px !important;
  top:24px !important;
}
.bus-window{height:19px !important}
.bus-door{
  right:12px !important;
  top:23px !important;
  width:30px !important;
  height:30px !important;
}
.bus-driver{
  position:absolute;
  right:42px;
  top:24px;
  width:18px;
  height:22px;
  z-index:2;
}
.driver-head{
  position:absolute;
  top:0;
  left:4px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#f3cba4;
  box-shadow:0 -2px 0 0 #3c2b1d inset;
}
.driver-body{
  position:absolute;
  left:2px;
  top:8px;
  width:13px;
  height:12px;
  border-radius:5px 5px 2px 2px;
  background:#3170c9;
}
.wheel{bottom:2px !important}
.wheel-front{right:30px !important}
.wheel-back{left:30px !important}

@keyframes sunFloatGentle{
  from{transform:translateY(8px)}
  to{transform:translateY(-2px)}
}
@keyframes sunRotate{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
@keyframes singleBusDrive{
  0%{transform:translateX(-260px)}
  18%{transform:translateX(110px)}
  82%{transform:translateX(430px)}
  100%{transform:translateX(690px)}
}
@keyframes birdFly{
  0%{transform:translateX(0) translateY(0) scale(1)}
  50%{transform:translateX(54px) translateY(-7px) scale(1.04)}
  100%{transform:translateX(108px) translateY(0) scale(1)}
}

@media(max-width:1050px){
  .sun-rise{right:95px !important}
}
@media(max-width:720px){
  .sun-rise{right:92px !important; top:12px !important; width:62px !important; height:62px !important}
}

/* =========================================================
   PORTAL LOGIN ICONS
   ========================================================= */
.portal-dropdown a{
  display:flex !important;
  align-items:center;
  gap:12px;
}
.portal-link-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:linear-gradient(135deg,#e9f4ff,#d7ebff);
  color:#1f64b5;
  box-shadow:inset 0 0 0 1px rgba(68,135,211,.15);
}
.portal-link-icon svg{
  width:20px;
  height:20px;
  display:block;
}
.portal-link-label{
  display:inline-block;
  font-weight:800;
}

/* =========================================================
   COLORFUL PORTAL EMOJI + PUBLISHED CONTENT
   ========================================================= */
.portal-link-icon{
  font-size:1.32rem !important;
  line-height:1;
  background:#fff !important;
  box-shadow:0 8px 18px rgba(28,83,151,.13) !important;
  border:1px solid rgba(76,139,211,.15);
}
.portal-link-icon.admin{background:linear-gradient(135deg,#fff1c8,#ffd66f) !important}
.portal-link-icon.student{background:linear-gradient(135deg,#dff2ff,#91d4ff) !important}
.portal-link-icon.staff{background:linear-gradient(135deg,#dcf8e7,#86ddb0) !important}
.portal-link-icon.parent{background:linear-gradient(135deg,#f2e3ff,#d4a9ff) !important}
.portal-link-icon svg{display:none !important}
.notice-text small{
  display:block;
  margin-top:4px;
  color:#657b9a;
  font-size:.78rem;
  font-weight:600;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dynamic-notice-card{border-left-color:#4ba9e6 !important}
.dynamic-hero-slide{background-color:#eef7ff}


/* Portal login colorful emoji icons */
.portal-link-icon{font-size:1.42rem;line-height:1;background:linear-gradient(135deg,#fff6dc,#e8f5ff)!important;color:inherit!important}
.portal-link-icon svg{display:none!important}

/* Avoid visually duplicated notices in the scrolling board */
.notice-scroll.single-notice{animation:none!important}
.notice-scroll:not(.single-notice){animation-name:noticeScrollOnce!important;animation-timing-function:linear!important;animation-iteration-count:infinite!important}
@keyframes noticeScrollOnce{
  0%,8%{transform:translateY(0)}
  92%,100%{transform:translateY(calc(-100% + 300px))}
}


/* ===== Central School migrated live-feature layer ===== */
.central-utility-strip{background:#0f4c81;color:#fff;border-top:1px solid rgba(255,255,255,.08);box-shadow:0 3px 12px rgba(11,45,75,.08)}
.central-utility-inner{min-height:36px;display:flex;align-items:center;gap:18px;overflow:hidden}
.central-quick-links{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.central-quick-links a{color:#fff;text-decoration:none;font-weight:700;font-size:12px;padding:5px 9px;border:1px solid rgba(255,255,255,.28);border-radius:7px;white-space:nowrap}
.central-quick-links a:hover{background:#fff;color:#0f4c81}
.central-ticker{min-width:0;flex:1;overflow:hidden;white-space:nowrap}
.central-ticker #tickerTrack{display:inline-flex;gap:70px;align-items:center;min-width:max-content;animation:centralTickerMove 32s linear infinite;font-size:12px;font-weight:700}
@keyframes centralTickerMove{from{transform:translateX(65vw)}to{transform:translateX(-100%)}}
.central-three-leaders{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.central-birthday-section{background:linear-gradient(135deg,#f3f9ff 0%,#fff 70%)}
.central-birthday-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:28px}
.central-bday-card{background:#fff;border:1px solid #dceaf6;border-radius:18px;padding:18px;text-align:center;box-shadow:0 10px 30px rgba(21,73,114,.08);cursor:pointer;transition:.25s ease}
.central-bday-card:hover{transform:translateY(-5px);box-shadow:0 15px 34px rgba(21,73,114,.14)}
.central-bday-card.is-today{border:2px solid #f3b53f;box-shadow:0 12px 34px rgba(243,181,63,.20)}
.central-bday-date{font-size:11px;font-weight:800;color:#e49a13;letter-spacing:.05em;margin-bottom:9px}
.central-bday-photo{width:84px;height:84px;border-radius:50%;margin:0 auto 10px;overflow:hidden;background:#eaf4fb;display:grid;place-items:center;border:4px solid #edf6ff}
.central-bday-photo img{width:100%;height:100%;object-fit:cover;object-position:top center}.central-bday-avatar{font-size:32px}
.central-bday-card h3{color:var(--navy);font-size:16px;margin:0 0 7px}.central-bday-meta{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}
.central-cert-link{margin-top:12px;border:0;background:transparent;color:var(--blue);font-size:11px;font-weight:800;cursor:pointer}
.central-live-gallery-section{background:#edf6ff}.central-gallery-marquee{margin-top:28px;position:relative}.central-gallery-viewport{overflow:hidden;border-radius:26px;padding:8px 0;background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,255,255,.35));box-shadow:inset 0 0 0 1px rgba(53,103,156,.08)}
.central-gallery-track{display:flex;align-items:stretch;gap:18px;width:max-content;animation:centralGalleryMove 35s linear infinite;will-change:transform;padding:8px 18px}
.central-gallery-marquee:hover .central-gallery-track{animation-play-state:paused}
.central-gallery-card{display:block;flex:0 0 clamp(200px,18vw,250px);aspect-ratio:3/4;border-radius:22px;overflow:hidden;background:#dceaf6;box-shadow:0 10px 24px rgba(21,73,114,.12);border:1px solid rgba(53,103,156,.10);position:relative}
.central-gallery-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.central-gallery-card:hover img{transform:scale(1.045)}
.central-gallery-card::after{content:'Open Gallery';position:absolute;left:14px;bottom:14px;background:rgba(10,36,84,.74);color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;padding:7px 10px;border-radius:999px;backdrop-filter:blur(8px)}
@keyframes centralGalleryMove{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 9px))}}
.central-gallery-more{margin-top:26px}.footer-map-text-link{display:inline-block;margin-top:8px;text-decoration:none;color:inherit;font-weight:700}
@media(max-width:1000px){.central-three-leaders{grid-template-columns:1fr!important}.central-birthday-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.central-gallery-card{flex-basis:230px}}
@media(max-width:760px){.central-utility-inner{align-items:stretch;flex-direction:column;gap:4px;padding-top:5px;padding-bottom:5px}.central-quick-links{justify-content:center}.central-ticker{width:100%;height:22px}.central-birthday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.central-gallery-track{gap:14px;padding:8px 14px;animation-duration:28s}.central-gallery-card{flex-basis:200px;border-radius:18px}}
@media(max-width:480px){.central-quick-links a{font-size:10px;padding:4px 6px}.central-birthday-grid{grid-template-columns:1fr 1fr}.central-bday-card{padding:14px 10px}.central-gallery-card{flex-basis:170px}.central-gallery-card::after{font-size:10px;padding:6px 9px}}

.contact-map-live iframe{width:100%;height:100%;border:0;display:block}.central-developer-credit{font-weight:800}.central-developer-credit span{white-space:nowrap}


/* ===== REAL WALK-CYCLE CODER BOY V3 ===== */
.footer{padding-top:26px}
.footer-coder-runway{
  position:relative;
  height:112px;
  margin-top:0;
  overflow:hidden;
  pointer-events:none;
}
.footer-coder-runway::after{
  content:'';
  position:absolute;
  left:0;right:0;bottom:5px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12) 12%,rgba(255,255,255,.12) 88%,transparent);
}
.footer-coder-runner{
  position:absolute;
  left:0;
  bottom:4px;
  width:96px;
  height:106px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  transform:translateX(-112px);
  animation:footerCoderSlowTravel 72s linear infinite;
  will-change:transform;
  z-index:2;
}
.footer-coder-runner img{
  display:block;
  width:auto;
  height:104px;
  max-width:none;
  object-fit:contain;
  filter:drop-shadow(0 5px 4px rgba(0,0,0,.22));
  transform-origin:center bottom;
  animation:footerCoderFaceDirection 72s linear infinite;
}
.footer-bottom{margin-top:6px}

/* Position moves slowly; the GIF itself contains the fast leg/arm walk-cycle. */
@keyframes footerCoderSlowTravel{
  0%{transform:translateX(-112px)}
  48%{transform:translateX(calc(100vw - 440px))}
  50%{transform:translateX(calc(100vw - 440px))}
  98%{transform:translateX(-112px)}
  100%{transform:translateX(-112px)}
}
@keyframes footerCoderFaceDirection{
  0%,49.99%{transform:scaleX(1)}
  50%,100%{transform:scaleX(-1)}
}
@media(max-width:1000px){
  @keyframes footerCoderSlowTravel{
    0%{transform:translateX(-112px)}
    48%{transform:translateX(calc(100vw - 135px))}
    50%{transform:translateX(calc(100vw - 135px))}
    98%{transform:translateX(-112px)}
    100%{transform:translateX(-112px)}
  }
}
@media(max-width:760px){
  .footer{padding-top:22px}
  .footer-coder-runway{height:90px}
  .footer-coder-runner{width:76px;height:86px;bottom:3px;transform:translateX(-90px);animation-duration:68s}
  .footer-coder-runner img{height:84px;animation-duration:68s}
  @keyframes footerCoderSlowTravel{
    0%{transform:translateX(-90px)}
    48%{transform:translateX(calc(100vw - 102px))}
    50%{transform:translateX(calc(100vw - 102px))}
    98%{transform:translateX(-90px)}
    100%{transform:translateX(-90px)}
  }
}
@media(prefers-reduced-motion:reduce){
  .footer-coder-runner{left:50%;transform:translateX(-50%);animation:none}
  .footer-coder-runner img{animation:none}
}
