
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('../fonts/poppins/poppins-400.woff2') format('woff2');
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('../fonts/poppins/poppins-500.woff2') format('woff2');
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('../fonts/poppins/poppins-600.woff2') format('woff2');
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('../fonts/poppins/poppins-700.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('../fonts/inter/inter-400.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('../fonts/inter/inter-500.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('../fonts/inter/inter-600.woff2') format('woff2');
}
:root {
--blue-900: #0f2342;
--blue-800: #1a365d;
--blue-700: #1e3a6e;
--blue-600: #2563eb;
--blue-500: #3b82f6;
--blue-100: #dbeafe;
--blue-50:  #eff6ff;
--gold-700: #b8922e;
--gold-600: #d4a843;
--gold-500: #e0bb5f;
--gold-400: #ebd08a;
--gold-100: #fdf6e3;
--teal-600: #0d9488;
--teal-500: #14b8a6;
--teal-100: #ccfbf1;
--red-600:  #dc2626;
--green-600:#16a34a;
--white:    #ffffff;
--gray-50:  #f8fafc;
--gray-100: #f1f5f9;
--gray-200: #e2e8f0;
--gray-300: #cbd5e1;
--gray-400: #94a3b8;
--gray-500: #64748b;
--gray-600: #475569;
--gray-700: #334155;
--gray-800: #1e293b;
--gray-900: #0f172a;
--color-primary:    var(--blue-800);
--color-primary-h:  var(--blue-700);
--color-accent:     var(--gold-600);
--color-accent-h:   var(--gold-700);
--color-secondary:  var(--teal-600);
--color-bg:         var(--white);
--color-bg-alt:     var(--gray-50);
--color-text:       var(--gray-800);
--color-text-light: var(--gray-600);
--color-text-muted: var(--gray-400);
--color-border:     var(--gray-200);
--font-heading: 'Poppins', 'Segoe UI', sans-serif;
--font-body:    'Inter', 'Segoe UI', system-ui, sans-serif;
--fs-xs:   0.75rem;
--fs-sm:   0.875rem;
--fs-base: 1rem;
--fs-lg:   1.125rem;
--fs-xl:   1.25rem;
--fs-2xl:  1.5rem;
--fs-3xl:  1.875rem;
--fs-4xl:  2.25rem;
--fs-5xl:  3rem;
--section-py: 5rem;
--container-px: 1rem;
--container-max: 1200px;
--radius-sm: 6px;
--radius:    10px;
--radius-lg: 16px;
--radius-xl: 24px;
--radius-full: 9999px;
--shadow-sm:  0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
--shadow:     0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);
--shadow-md:  0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.05);
--shadow-lg:  0 20px 25px -5px rgba(0,0,0,.08), 0 8px 10px -6px rgba(0,0,0,.04);
--shadow-xl:  0 25px 50px -12px rgba(0,0,0,.15);
--ease: cubic-bezier(.4,0,.2,1);
--dur:  .3s;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);font-size:var(--fs-base);line-height:1.7;color:var(--color-text);background:var(--color-bg);overflow-x:hidden}
img,svg{display:block;max-width:100%;height:auto}
a{color:var(--color-primary);text-decoration:none;transition:color var(--dur) var(--ease)}
a:hover{color:var(--color-accent)}
ul,ol{list-style:none}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.3;color:var(--gray-900)}
h1{font-size:var(--fs-4xl)}
h2{font-size:var(--fs-3xl)}
h3{font-size:var(--fs-2xl)}
h4{font-size:var(--fs-xl)}
p+p{margin-top:1em}
table{border-collapse:collapse;width:100%}
.skip-link{position:absolute;left:-9999px;top:auto;z-index:9999;padding:.5rem 1rem;background:var(--blue-800);color:var(--white);font-weight:600;border-radius:var(--radius-sm)}
.skip-link:focus{left:1rem;top:1rem}
.container{width:100%;max-width:var(--container-max);margin:0 auto;padding-left:var(--container-px);padding-right:var(--container-px)}
@media(min-width:640px){.container{padding-left:1.5rem;padding-right:1.5rem}}
.icon{display:inline-block;vertical-align:middle;flex-shrink:0}
.top-bar{background:var(--blue-900);color:rgba(255,255,255,.85);font-size:var(--fs-xs);padding:.45rem 0}
.top-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.top-bar__left,.top-bar__right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.top-bar__item{display:inline-flex;align-items:center;gap:.35rem}
.top-bar__item a{color:rgba(255,255,255,.9);font-weight:500}
.top-bar__item a:hover{color:var(--gold-400)}
.top-bar__badge{background:var(--gold-600);color:var(--blue-900);padding:.15rem .55rem;border-radius:var(--radius-full);font-weight:700;font-size:.65rem;letter-spacing:.03em;text-transform:uppercase}
.top-bar__social{color:rgba(255,255,255,.7);transition:color var(--dur) var(--ease)}
.top-bar__social:hover{color:var(--gold-400)}
@media(max-width:639px){.top-bar__item--hide-mobile{display:none}}
.site-header{position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid var(--color-border);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.site-header.scrolled{box-shadow:var(--shadow-md)}
.site-header.header-hidden{transform:translateY(-100%)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:1rem}
.site-logo{display:flex;align-items:center;gap:.65rem;text-decoration:none}
.site-logo__img{border-radius:var(--radius-sm)}
.site-logo__text{line-height:1.2}
.site-logo__name{font-family:var(--font-heading);font-weight:700;font-size:var(--fs-lg);color:var(--blue-800);display:block}
.site-logo__sub{font-size:var(--fs-xs);color:var(--gray-500);font-weight:500;letter-spacing:.03em;text-transform:uppercase}
.main-nav__list{display:flex;align-items:center;gap:.15rem}
.main-nav__link{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem .85rem;font-size:var(--fs-sm);font-weight:500;color:var(--gray-700);border-radius:var(--radius-sm);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.main-nav__link:hover,.main-nav__link.active{color:var(--blue-600);background:var(--blue-50)}
.main-nav__caret{transition:transform var(--dur) var(--ease)}
.main-nav__dropdown{position:relative}
.main-nav__sub{position:absolute;top:100%;left:0;min-width:200px;padding:.5rem 0;background:var(--white);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(8px);transition:all .2s var(--ease);z-index:50}
.main-nav__dropdown:hover .main-nav__sub{opacity:1;visibility:visible;transform:translateY(0)}
.main-nav__dropdown:hover .main-nav__caret{transform:rotate(180deg)}
.main-nav__sub a{display:block;padding:.5rem 1.1rem;font-size:var(--fs-sm);color:var(--gray-700);transition:background var(--dur) var(--ease)}
.main-nav__sub a:hover{background:var(--blue-50);color:var(--blue-600)}
.site-header__actions{display:flex;align-items:center;gap:.75rem}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:4px}
.hamburger span{display:block;width:100%;height:2.5px;background:var(--gray-700);border-radius:2px;transition:all .25s var(--ease)}
.hamburger.is-active span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.hamburger.is-active span:nth-child(2){opacity:0}
.hamburger.is-active span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.mobile-nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;z-index:90;transition:all .25s var(--ease)}
.mobile-nav-overlay.visible{opacity:1;visibility:visible}
@media(max-width:1023px){
.main-nav{position:fixed;top:0;right:0;width:min(320px,85vw);height:100vh;background:var(--white);box-shadow:var(--shadow-xl);z-index:95;padding:5rem 1.5rem 2rem;overflow-y:auto;transform:translateX(100%);transition:transform .3s var(--ease)}
.main-nav.open{transform:translateX(0)}
.main-nav__list{flex-direction:column;align-items:stretch;gap:0}
.main-nav__link{padding:.75rem .5rem;font-size:var(--fs-base);border-bottom:1px solid var(--gray-100)}
.main-nav__sub{position:static;box-shadow:none;border:none;opacity:1;visibility:visible;transform:none;padding:0 0 0 1.25rem;max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
.main-nav__dropdown.open .main-nav__sub{max-height:300px}
.main-nav__dropdown.open .main-nav__caret{transform:rotate(180deg)}
.hamburger{display:flex}
}
body.nav-open{overflow:hidden}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.6rem;font-family:var(--font-heading);font-size:var(--fs-sm);font-weight:600;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;text-decoration:none;transition:all var(--dur) var(--ease);white-space:nowrap;line-height:1.4}
.btn--sm{padding:.5rem 1.15rem;font-size:var(--fs-xs)}
.btn--lg{padding:.85rem 2rem;font-size:var(--fs-base)}
.btn--primary{background:var(--blue-600);color:var(--white);border-color:var(--blue-600)}
.btn--primary:hover{background:var(--blue-800);border-color:var(--blue-800);color:var(--white);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn--accent{background:var(--gold-600);color:var(--blue-900);border-color:var(--gold-600)}
.btn--accent:hover{background:var(--gold-700);border-color:var(--gold-700);color:var(--blue-900);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn--outline{background:transparent;color:var(--blue-600);border-color:var(--blue-600)}
.btn--outline:hover{background:var(--blue-600);color:var(--white)}
.btn--white{background:var(--white);color:var(--blue-800);border-color:var(--white)}
.btn--white:hover{background:var(--gold-100);border-color:var(--gold-100);color:var(--blue-900)}
.btn--outline-white{background:transparent;color:var(--white);border-color:rgba(255,255,255,.5)}
.btn--outline-white:hover{background:rgba(255,255,255,.15);border-color:var(--white);color:var(--white)}
.hero{position:relative;background:linear-gradient(135deg, var(--blue-900) 0%, var(--blue-700) 50%, var(--blue-800) 100%);color:var(--white);padding:6rem 0 8rem;overflow:hidden;min-height:520px;display:flex;align-items:center}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat}
.hero__inner{position:relative;z-index:2;max-width:680px}
.hero__badge{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.12);backdrop-filter:blur(4px);padding:.35rem .9rem;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:600;color:var(--gold-400);margin-bottom:1.5rem;letter-spacing:.03em;text-transform:uppercase;border:1px solid rgba(255,255,255,.1)}
.hero__title{font-size:clamp(2rem, 5vw, 3.25rem);font-weight:700;line-height:1.15;margin-bottom:1rem}
.hero__title span{color:var(--gold-400)}
.hero__subtitle{font-size:var(--fs-lg);color:rgba(255,255,255,.8);max-width:540px;margin-bottom:2rem;line-height:1.7}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem}
.hero__wave{position:absolute;bottom:-1px;left:0;width:100%;line-height:0;z-index:3}
.hero__wave svg{display:block;width:100%;height:auto}
.hero__accent{position:absolute;right:0;top:50%;transform:translateY(-50%);width:360px;height:360px;border-radius:50%;background:radial-gradient(circle, rgba(212,168,67,.15) 0%, transparent 70%);z-index:1}
.stats-bar{position:relative;z-index:5;margin-top:-3.5rem}
.stats-bar__inner{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.75rem 2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center}
.stats-bar__item{position:relative}
.stats-bar__item+.stats-bar__item::before{content:'';position:absolute;left:-.75rem;top:10%;height:80%;width:1px;background:var(--gray-200)}
.stats-bar__number{font-family:var(--font-heading);font-size:var(--fs-3xl);font-weight:700;color:var(--blue-800);line-height:1.1}
.stats-bar__label{font-size:var(--fs-sm);color:var(--gray-500);margin-top:.25rem}
@media(max-width:639px){
.stats-bar__inner{grid-template-columns:repeat(2,1fr);gap:1.25rem;padding:1.25rem 1rem}
.stats-bar__item+.stats-bar__item::before{display:none}
.stats-bar__number{font-size:var(--fs-2xl)}
}
.section{padding:var(--section-py) 0}
.section--alt{background:var(--gray-50)}
.section--blue{background:var(--blue-800);color:var(--white)}
.section--blue h2,.section--blue h3{color:var(--white)}
.section--blue p{color:rgba(255,255,255,.8)}
.section-header{text-align:center;max-width:700px;margin:0 auto 3rem}
.section-header__label{display:inline-block;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-600);margin-bottom:.75rem}
.section-header h2{margin-bottom:.75rem}
.section-header p{color:var(--color-text-light);font-size:var(--fs-lg)}
.section-header h2::after{content:'';display:block;width:60px;height:3px;background:var(--gold-600);margin:.75rem auto 0;border-radius:2px}
.card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:2rem;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card__icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);margin-bottom:1.25rem;color:var(--white)}
.card__icon--blue{background:linear-gradient(135deg,var(--blue-600),var(--blue-800))}
.card__icon--gold{background:linear-gradient(135deg,var(--gold-500),var(--gold-700))}
.card__icon--teal{background:linear-gradient(135deg,var(--teal-500),var(--teal-600))}
.card h3{font-size:var(--fs-xl);margin-bottom:.5rem}
.card p{color:var(--color-text-light);font-size:var(--fs-sm);line-height:1.7}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
@media(max-width:1023px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767px){.grid-3{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}
@media(max-width:639px){.grid-4{grid-template-columns:1fr}}
.feature{display:flex;gap:1.25rem;align-items:flex-start}
.feature__icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--blue-50);color:var(--blue-600)}
.feature__body h4{font-size:var(--fs-base);margin-bottom:.25rem}
.feature__body p{font-size:var(--fs-sm);color:var(--color-text-light)}
.staff-card{text-align:center;padding:1.5rem 1rem}
.staff-card__avatar{width:80px;height:80px;border-radius:50%;background:var(--blue-100);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:var(--blue-600);font-family:var(--font-heading);font-weight:700;font-size:var(--fs-2xl)}
.staff-card__name{font-family:var(--font-heading);font-weight:600;font-size:var(--fs-base);color:var(--gray-800)}
.staff-card__role{font-size:var(--fs-sm);color:var(--gold-600);font-weight:500}
.staff-card__subject{font-size:var(--fs-xs);color:var(--gray-500)}
.fee-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.fee-table{width:100%;font-size:var(--fs-sm)}
.fee-table thead{background:var(--blue-800);color:var(--white)}
.fee-table th{padding:.75rem 1rem;font-weight:600;text-align:left;white-space:nowrap}
.fee-table td{padding:.65rem 1rem;border-bottom:1px solid var(--gray-100)}
.fee-table tbody tr:hover{background:var(--blue-50)}
.fee-table .fee-total{font-weight:700;color:var(--blue-800);background:var(--gold-100)}
.accordion__item{border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.75rem;overflow:hidden;transition:border-color var(--dur) var(--ease)}
.accordion__item.open{border-color:var(--blue-600)}
.accordion__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;font-family:var(--font-heading);font-size:var(--fs-base);font-weight:600;color:var(--gray-800);background:var(--white);border:none;cursor:pointer;text-align:left;gap:1rem;transition:background var(--dur) var(--ease)}
.accordion__trigger:hover{background:var(--gray-50)}
.accordion__trigger svg{flex-shrink:0;transition:transform var(--dur) var(--ease);color:var(--gray-400)}
.accordion__item.open .accordion__trigger svg{transform:rotate(180deg);color:var(--blue-600)}
.accordion__body{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.accordion__item.open .accordion__body{max-height:500px}
.accordion__content{padding:0 1.25rem 1.25rem;color:var(--color-text-light);font-size:var(--fs-sm);line-height:1.8}
.tab-list{display:flex;gap:.25rem;overflow-x:auto;border-bottom:2px solid var(--gray-200);padding-bottom:0;margin-bottom:2rem;-webkit-overflow-scrolling:touch}
.tab-btn{flex-shrink:0;padding:.65rem 1.25rem;font-family:var(--font-heading);font-size:var(--fs-sm);font-weight:500;color:var(--gray-500);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all var(--dur) var(--ease);white-space:nowrap}
.tab-btn:hover{color:var(--gray-700)}
.tab-btn.active{color:var(--blue-600);border-bottom-color:var(--blue-600);font-weight:600}
.tab-panel{display:none}
.tab-panel.active{display:block;animation:fadeIn .35s var(--ease)}
.form-group{margin-bottom:1.25rem}
.form-label{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--gray-700);margin-bottom:.35rem}
.form-input,.form-select,.form-textarea{width:100%;padding:.7rem 1rem;font-family:var(--font-body);font-size:var(--fs-sm);color:var(--gray-800);background:var(--white);border:1.5px solid var(--gray-300);border-radius:var(--radius);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);outline:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.form-textarea{min-height:120px;resize:vertical}
.form-hint{font-size:var(--fs-xs);color:var(--gray-400);margin-top:.25rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:639px){.form-row{grid-template-columns:1fr}}
.cta-banner{background:linear-gradient(135deg, var(--blue-800) 0%, var(--blue-900) 100%);color:var(--white);padding:4rem 0}
.cta-banner__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta-banner__text h2{font-size:var(--fs-2xl);color:var(--white);margin-bottom:.5rem}
.cta-banner__text p{color:rgba(255,255,255,.75);font-size:var(--fs-base);max-width:500px}
.cta-banner__actions{display:flex;flex-wrap:wrap;gap:.75rem}
.site-footer{background:var(--blue-900);color:rgba(255,255,255,.75);padding:4rem 0 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.25fr 1fr;gap:2.5rem}
@media(max-width:1023px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media(max-width:639px){.footer-grid{grid-template-columns:1fr}}
.footer-logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;margin-bottom:1rem}
.footer-logo img{border-radius:var(--radius-sm)}
.footer-logo strong{color:var(--white);font-family:var(--font-heading);font-size:var(--fs-base)}
.footer-logo span{color:rgba(255,255,255,.6);font-size:var(--fs-sm)}
.footer-tagline{font-size:var(--fs-sm);line-height:1.7;margin-bottom:1.25rem;max-width:320px}
.footer-social{display:flex;gap:.75rem}
.footer-social a{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border-radius:var(--radius-sm);color:rgba(255,255,255,.7);transition:all var(--dur) var(--ease)}
.footer-social a:hover{background:var(--gold-600);color:var(--blue-900)}
.footer-heading{font-size:var(--fs-sm);color:var(--white);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.25rem;font-weight:600}
.footer-links li{margin-bottom:.6rem}
.footer-links a{color:rgba(255,255,255,.65);font-size:var(--fs-sm);transition:color var(--dur) var(--ease)}
.footer-links a:hover{color:var(--gold-400)}
.footer-contact li{display:flex;gap:.65rem;align-items:flex-start;margin-bottom:.85rem;font-size:var(--fs-sm)}
.footer-contact .icon{color:var(--gold-500);margin-top:2px}
.footer-contact a{color:rgba(255,255,255,.65)}
.footer-contact a:hover{color:var(--gold-400)}
.footer-affiliation{margin-top:1.75rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}
.footer-affiliation__label{font-size:var(--fs-xs);color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.08em}
.footer-affiliation__board{font-weight:600;color:var(--white);font-size:var(--fs-sm)}
.footer-affiliation__no{font-size:var(--fs-xs);color:var(--gold-400)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:1.75rem 0;margin-top:3rem;border-top:1px solid rgba(255,255,255,.1);font-size:var(--fs-xs)}
.footer-bottom__credit a{color:var(--gold-400);font-weight:600}
.footer-bottom__credit a:hover{color:var(--gold-500)}
.whatsapp-fab{position:fixed;bottom:1.5rem;right:1.5rem;z-index:80;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#25d366;border-radius:50%;box-shadow:0 4px 14px rgba(37,211,102,.4);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.whatsapp-fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(37,211,102,.55)}
.back-to-top{position:fixed;bottom:1.5rem;right:5rem;z-index:79;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--white);border:1px solid var(--gray-200);border-radius:50%;cursor:pointer;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .25s var(--ease)}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}
.back-to-top svg{color:var(--gray-500)}
.back-to-top:hover svg{color:var(--white)}
.breadcrumb{padding:1rem 0;font-size:var(--fs-xs)}
.breadcrumb__list{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.breadcrumb__list li{display:inline-flex;align-items:center;gap:.35rem}
.breadcrumb__list li+li::before{content:'›';color:var(--gray-300);font-weight:500}
.breadcrumb__list a{color:var(--gray-500);transition:color var(--dur) var(--ease)}
.breadcrumb__list a:hover{color:var(--blue-600)}
.breadcrumb__list li:last-child{color:var(--gray-700);font-weight:500}
.page-hero{background:linear-gradient(135deg, var(--blue-900) 0%, var(--blue-800) 100%);color:var(--white);padding:4rem 0 3rem;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{font-size:clamp(1.75rem,4vw,2.75rem);margin-bottom:.5rem}
.page-hero p{color:rgba(255,255,255,.75);font-size:var(--fs-lg);max-width:600px}
.timeline{position:relative;padding-left:2.5rem}
.timeline::before{content:'';position:absolute;left:.75rem;top:0;bottom:0;width:2px;background:var(--gold-400)}
.timeline__item{position:relative;margin-bottom:2rem;padding-left:1.5rem}
.timeline__item::before{content:'';position:absolute;left:-1.85rem;top:.35rem;width:14px;height:14px;border-radius:50%;background:var(--gold-600);border:3px solid var(--white);box-shadow:0 0 0 2px var(--gold-400)}
.timeline__year{font-family:var(--font-heading);font-weight:700;color:var(--blue-800);font-size:var(--fs-lg)}
.timeline__text{color:var(--color-text-light);font-size:var(--fs-sm);margin-top:.15rem}
.disclosure-table{width:100%;font-size:var(--fs-sm);border:1px solid var(--color-border);border-radius:var(--radius)}
.disclosure-table th,.disclosure-table td{padding:.65rem 1rem;text-align:left;border-bottom:1px solid var(--gray-100)}
.disclosure-table th{background:var(--blue-50);font-weight:600;color:var(--blue-800);white-space:nowrap}
.disclosure-table td{color:var(--color-text-light)}
.key-takeaways{background:var(--gold-100);border-left:4px solid var(--gold-600);border-radius:0 var(--radius) var(--radius) 0;padding:1.25rem 1.5rem;margin:2rem 0}
.key-takeaways__title{font-family:var(--font-heading);font-weight:600;font-size:var(--fs-sm);color:var(--blue-800);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}
.key-takeaways ul{list-style:disc;padding-left:1.25rem}
.key-takeaways li{font-size:var(--fs-sm);color:var(--gray-700);margin-bottom:.35rem;line-height:1.6}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.revealed{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-24px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal-left.revealed{opacity:1;transform:translateX(0)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.text-center{text-align:center}
.text-primary{color:var(--blue-800)}
.text-gold{color:var(--gold-600)}
.text-muted{color:var(--color-text-light)}
.text-sm{font-size:var(--fs-sm)}
.text-xs{font-size:var(--fs-xs)}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-6{margin-top:3rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}
.pt-0{padding-top:0}.pb-0{padding-bottom:0}
.mx-auto{margin-left:auto;margin-right:auto}
.max-w-prose{max-width:680px}
.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}
.map-wrap{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);height:350px}
.map-wrap iframe{width:100%;height:100%;border:0}
.alert{padding:1rem 1.25rem;border-radius:var(--radius);font-size:var(--fs-sm);margin-bottom:1.5rem}
.alert--success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}
.alert--error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.alert--info{background:var(--blue-50);border:1px solid var(--blue-100);color:var(--blue-800)}
@media print{
.top-bar,.site-header,.cta-banner,.whatsapp-fab,.back-to-top,.site-footer{display:none!important}
body{font-size:11pt;color:#000}
.section{padding:1.5rem 0}
a{color:#000;text-decoration:underline}
}
.form-error{display:block;color:#d92d20;font-size:var(--fs-sm);font-weight:600;margin-top:.3rem}
[aria-invalid="true"]{border-color:#e5484d!important;border-width:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-hint{color:var(--gray-600,#4b5563)}
.h-sub{font-size:var(--fs-xl)}
.feature__body .h-sub{font-size:var(--fs-base);margin-bottom:.25rem}
.top-bar__social{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}
.footer-affiliation__label{color:rgba(255,255,255,.72)}
.hero__title,.page-hero h1{color:var(--white)}
@media (max-width:480px){
.site-logo{gap:.5rem;min-width:0}
.site-logo__img{width:40px;height:40px}
.site-logo__name{font-size:var(--fs-base);white-space:nowrap}
.site-logo__sub{font-size:.62rem;white-space:nowrap;letter-spacing:.02em}
.site-header__actions{gap:.4rem}
.site-header__actions .btn--sm{padding:.45rem .75rem}
}
:root{
--glass-bg:rgba(255,255,255,.72);
--glass-bg-strong:rgba(255,255,255,.88);
--glass-border:rgba(255,255,255,.65);
--glass-line:rgba(26,54,93,.10);
--glass-shadow:0 8px 32px -12px rgba(15,35,66,.25);
--glass-blur:14px;
--surface:#fff;
--ambient-a:rgba(37,99,235,.10);
--ambient-b:rgba(212,168,67,.12);
}
:root[data-theme="dark"]{
color-scheme:dark;
--color-bg:#0b1220;--color-bg-alt:#0f1a2e;--color-text:#e5ecf6;--color-text-light:#b4c2d6;
--color-text-muted:#8a9bb2;--color-border:rgba(255,255,255,.10);--color-primary:#8fb4ff;
--color-primary-h:#b5ceff;
--glass-bg:rgba(18,30,52,.62);--glass-bg-strong:rgba(15,26,46,.88);--glass-border:rgba(255,255,255,.10);
--glass-line:rgba(255,255,255,.08);--glass-shadow:0 10px 36px -14px rgba(0,0,0,.7);
--surface:#111d33;--ambient-a:rgba(59,130,246,.14);--ambient-b:rgba(212,168,67,.08);
}
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]){
color-scheme:dark;
--color-bg:#0b1220;--color-bg-alt:#0f1a2e;--color-text:#e5ecf6;--color-text-light:#b4c2d6;
--color-text-muted:#8a9bb2;--color-border:rgba(255,255,255,.10);--color-primary:#8fb4ff;
--color-primary-h:#b5ceff;
--glass-bg:rgba(18,30,52,.62);--glass-bg-strong:rgba(15,26,46,.88);--glass-border:rgba(255,255,255,.10);
--glass-line:rgba(255,255,255,.08);--glass-shadow:0 10px 36px -14px rgba(0,0,0,.7);
--surface:#111d33;--ambient-a:rgba(59,130,246,.14);--ambient-b:rgba(212,168,67,.08);
}
}
body{background:var(--color-bg);color:var(--color-text);
background-image:radial-gradient(60rem 28rem at 90% -5%,var(--ambient-a),transparent 70%),
radial-gradient(48rem 24rem at -5% 30%,var(--ambient-b),transparent 70%);
background-attachment:scroll;transition:background-color .2s}
.site-header{background:var(--glass-bg-strong);border-bottom:1px solid var(--glass-line)}
@supports (backdrop-filter:blur(1px)){
.site-header{background:var(--glass-bg);backdrop-filter:saturate(1.5) blur(var(--glass-blur));-webkit-backdrop-filter:saturate(1.5) blur(var(--glass-blur))}
}
.card{background:var(--glass-bg-strong);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow);
transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.card:hover{border-color:rgba(37,99,235,.35)}
:root[data-theme="dark"] .card h3,:root[data-theme="dark"] h1,:root[data-theme="dark"] h2,:root[data-theme="dark"] h3{color:var(--color-text)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .card h3,:root:not([data-theme="light"]) h1,:root:not([data-theme="light"]) h2,:root:not([data-theme="light"]) h3{color:var(--color-text)}}
:root[data-theme="dark"] .main-nav__link,:root[data-theme="dark"] .site-logo__name{color:var(--color-text)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .main-nav__link,:root:not([data-theme="light"]) .site-logo__name{color:var(--color-text)}}
.app-links{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.app-link{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .65rem;border-radius:999px;
background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:#fff!important;
font-weight:600;font-size:.7rem;text-decoration:none;transition:background-color .15s,border-color .15s}
.app-link:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4)}
.app-link--accent{background:var(--gold-600);border-color:var(--gold-600);color:var(--blue-900)!important}
.app-link--accent:hover{background:var(--gold-500)}
.app-link:focus-visible{outline:2px solid var(--gold-400);outline-offset:2px}
@media(max-width:640px){
.top-bar__left,.top-bar__badge{display:none}
.top-bar__right{width:100%}
.app-links{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}
.app-link{justify-content:center;padding:.4rem .6rem;font-size:.75rem}
}
.theme-toggle{width:40px;height:40px;border-radius:999px;border:1px solid var(--glass-line);background:var(--glass-bg-strong);
color:var(--color-text);display:inline-grid;place-items:center;cursor:pointer;transition:background-color .15s}
.theme-toggle:hover{background:var(--glass-bg)}
.theme-toggle:focus-visible{outline:2px solid var(--blue-600);outline-offset:2px}
.theme-toggle .i-sun{display:none}
:root[data-theme="dark"] .theme-toggle .i-sun{display:block}
:root[data-theme="dark"] .theme-toggle .i-moon{display:none}
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]) .theme-toggle .i-sun{display:block}
:root:not([data-theme="light"]) .theme-toggle .i-moon{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
:root[data-theme="dark"] .main-nav__link:hover,:root[data-theme="dark"] .main-nav__link.active{color:#fff;background:rgba(255,255,255,.10)}
:root[data-theme="dark"] .main-nav__sub{background:var(--glass-bg-strong);border-color:var(--glass-line)}
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]) .main-nav__link:hover,:root:not([data-theme="light"]) .main-nav__link.active{color:#fff;background:rgba(255,255,255,.10)}
:root:not([data-theme="light"]) .main-nav__sub{background:var(--glass-bg-strong);border-color:var(--glass-line)}
}
.site-logo__img{width:52px;height:52px;object-fit:contain;flex:none}
:root[data-theme="dark"] .section--alt,:root[data-theme="dark"] .accordion__trigger:hover{background:var(--color-bg-alt)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .section--alt,:root:not([data-theme="light"]) .accordion__trigger:hover{background:var(--color-bg-alt)}}
:root[data-theme="dark"] .hamburger span{background:var(--color-text)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hamburger span{background:var(--color-text)}}
.page-hero .breadcrumb__list a{color:rgba(255,255,255,.8)}
.page-hero .breadcrumb__list li[aria-current="page"]{color:#fff}
.page-hero .breadcrumb__list li+li::before{color:rgba(255,255,255,.6)}
:root {
--sh-bg: #FBF8F3;
--sh-soft: #F4EFE6;
--sh-surface: #FFFFFF;
--sh-ink: #12203A;
--sh-text-2: #4A5468;
--sh-line: rgba(15, 35, 66, .10);
--sh-navy: #0F2342;
--sh-navy-2: #1A365D;
--sh-sky: #3E7CC4;
--sh-sky-soft: #E6EFFA;
--sh-sky-deep: #2D62A3;
--sh-gold: #D4A843;
--sh-gold-text: #8A6414;
--sh-link: #1E4E8C;
--sh-glass-bg: rgba(255, 255, 255, .7);
--sh-glass-line: rgba(255, 255, 255, .8);
--sh-glass-shadow: 0 22px 44px -22px rgba(15, 35, 66, .38), inset 0 1px 0 rgba(255, 255, 255, .85);
--sh-shadow: 0 1px 2px rgba(15, 35, 66, .05), 0 14px 34px -20px rgba(15, 35, 66, .28);
--sh-ease: cubic-bezier(.2, .7, .2, 1);
--hl-sky-1: #CFE2F6; --hl-sky-2: #FCEFD8; --hl-sun: #F2BE5C;
--hl-1: #B8CBE2; --hl-2: #8CA7CA; --hl-3: #4E6D9B; --hl-4: #1E3A6E; --hl-5: #0F2342; --hl-bird: #2C4A75;
--color-bg: var(--sh-bg);
--color-bg-alt: var(--sh-soft);
--color-text: #1E293B;
}
:root[data-theme="dark"] {
--sh-bg: #0B1220; --sh-soft: #0F1A2E; --sh-surface: #111D33; --sh-ink: #EEF2F8; --sh-text-2: #B4C2D6;
--sh-line: rgba(255, 255, 255, .1); --sh-sky-soft: rgba(126, 170, 230, .14); --sh-sky-deep: #9CC3F0;
--sh-gold-text: #E6C578; --sh-link: #9CC3F0;
--sh-glass-bg: rgba(16, 27, 48, .68); --sh-glass-line: rgba(255, 255, 255, .12);
--sh-glass-shadow: 0 22px 44px -20px rgba(0, 0, 0, .75), inset 0 1px 0 rgba(255, 255, 255, .06);
--sh-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 16px 36px -20px rgba(0, 0, 0, .8);
--hl-sky-1: #0A1430; --hl-sky-2: #1D2D52; --hl-sun: #E9EEF8;
--hl-1: #253A62; --hl-2: #1B2D50; --hl-3: #142340; --hl-4: #0D1934; --hl-5: #060D1F; --hl-bird: #8FA6C8;
--color-bg: var(--sh-bg); --color-bg-alt: var(--sh-soft);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--sh-bg: #0B1220; --sh-soft: #0F1A2E; --sh-surface: #111D33; --sh-ink: #EEF2F8; --sh-text-2: #B4C2D6;
--sh-line: rgba(255, 255, 255, .1); --sh-sky-soft: rgba(126, 170, 230, .14); --sh-sky-deep: #9CC3F0;
--sh-gold-text: #E6C578; --sh-link: #9CC3F0;
--sh-glass-bg: rgba(16, 27, 48, .68); --sh-glass-line: rgba(255, 255, 255, .12);
--sh-glass-shadow: 0 22px 44px -20px rgba(0, 0, 0, .75), inset 0 1px 0 rgba(255, 255, 255, .06);
--sh-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 16px 36px -20px rgba(0, 0, 0, .8);
--hl-sky-1: #0A1430; --hl-sky-2: #1D2D52; --hl-sun: #E9EEF8;
--hl-1: #253A62; --hl-2: #1B2D50; --hl-3: #142340; --hl-4: #0D1934; --hl-5: #060D1F; --hl-bird: #8FA6C8;
--color-bg: var(--sh-bg); --color-bg-alt: var(--sh-soft);
}
}
body { -webkit-font-smoothing: antialiased; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
:focus-visible { outline: 3px solid var(--sh-sky); outline-offset: 3px; border-radius: 6px; }
.reveal, .reveal-left { opacity: 1; transform: none; }
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
:root:not([data-fx="reduced"]) .reveal:not(.revealed) { opacity: 0; transform: translateY(22px); animation: sh-safety 0s 4s forwards; }
:root:not([data-fx="reduced"]) .reveal { transition: opacity .8s var(--sh-ease), transform .8s var(--sh-ease); transition-delay: calc(var(--i, 0) * 70ms); }
}
@keyframes sh-safety { to { opacity: 1; transform: none; } }
.sh-glass { background: var(--sh-surface); border: 1px solid var(--sh-glass-line); box-shadow: var(--sh-glass-shadow); border-radius: 20px; color: var(--sh-ink); }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.sh-glass { background: var(--sh-glass-bg); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px); }
}
.btn { border-radius: 14px; font-weight: 600; letter-spacing: -.005em; transition: background-color .2s, color .2s, border-color .2s, box-shadow .25s, transform .12s; }
.btn:active { transform: scale(.97); }
.btn--accent { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 10px 24px -12px rgba(184, 146, 46, .8); }
.btn--primary { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 10px 24px -14px rgba(15, 35, 66, .8); }
.sh-btn-quiet { color: var(--sh-ink); background: transparent; border: 1.5px solid var(--sh-line); }
.sh-btn-quiet:hover { color: var(--sh-ink); border-color: var(--sh-ink); background: var(--sh-surface); }
.sh-block { width: 100%; justify-content: center; }
.btn--primary { background: var(--sh-navy-2); color: #fff; }
.btn--primary:hover { background: var(--sh-navy); color: #fff; }
:root[data-theme="dark"] .btn--primary { background: #2B5DA8; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .btn--primary { background: #2B5DA8; } }
.sh-appearance { position: relative; }
.sh-appearance[hidden] { display: none; }
.sh-appearance__btn .sh-ico { width: 18px; height: 18px; }
.sh-appearance__panel {
position: absolute; right: 0; top: calc(100% + .6rem); width: 17rem; z-index: 1200; padding: 1rem; border-radius: 18px;
background: var(--sh-surface); border: 1px solid var(--sh-line); box-shadow: 0 30px 60px -28px rgba(15, 35, 66, .5); color: var(--sh-ink);
}
.sh-appearance__panel fieldset { border: 0; margin: 0 0 .85rem; padding: 0; }
.sh-appearance__panel legend { font-size: .8rem; font-weight: 600; color: var(--sh-text-2); margin-bottom: .5rem; }
.sh-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: .25rem; padding: .25rem; border-radius: 12px; background: var(--sh-soft); border: 1px solid var(--sh-line); }
.sh-seg label { position: relative; cursor: pointer; }
.sh-seg input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.sh-seg span { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: .5rem .2rem; border-radius: 9px; font-size: .8rem; font-weight: 600; color: var(--sh-text-2); }
.sh-seg .sh-ico { width: 18px; height: 18px; }
.sh-seg input:checked + span { background: var(--sh-surface); color: var(--sh-ink); box-shadow: var(--sh-shadow); }
.sh-seg input:focus-visible + span { outline: 3px solid var(--sh-sky); outline-offset: 1px; }
.sh-switch { display: flex; align-items: center; gap: .7rem; font-size: .88rem; font-weight: 500; cursor: pointer; position: relative; min-height: 2.75rem; }
.sh-switch input { position: absolute; opacity: 0; width: 2.6rem; height: 1.5rem; margin: 0; cursor: pointer; }
.sh-switch__ui { flex: none; width: 2.6rem; height: 1.5rem; border-radius: 999px; background: var(--sh-soft); border: 1px solid var(--sh-line); position: relative; transition: background-color .2s; }
.sh-switch__ui::after { content: ""; position: absolute; top: 2px; left: 2px; width: calc(1.5rem - 6px); height: calc(1.5rem - 6px); border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); transition: transform .2s var(--sh-ease); }
.sh-switch input:checked + .sh-switch__ui { background: var(--sh-navy-2); border-color: var(--sh-navy-2); }
.sh-switch input:checked + .sh-switch__ui::after { transform: translateX(1.1rem); }
.sh-switch input:focus-visible + .sh-switch__ui { outline: 3px solid var(--sh-sky); outline-offset: 2px; }
.theme-toggle { width: 44px; height: 44px; }
.sh-ico { width: 1.25em; height: 1.25em; flex: none; }
.sh-label { font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--sh-gold-text); margin-bottom: .9rem; }
.sh-label--light { color: #EBD08A; }
.sh-display { font-family: var(--font-heading); font-weight: 600; font-size: clamp(2rem, 4.4vw, 3.3rem); line-height: 1.08; letter-spacing: -.03em; color: var(--sh-ink); max-width: 22ch; text-wrap: balance; }
.sh-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: 2.25rem; font-weight: 600; color: var(--sh-link); }
.sh-link .sh-ico { width: 1.05rem; height: 1.05rem; transition: transform .2s var(--sh-ease); }
.sh-link:hover { color: var(--sh-link); }
.sh-link:hover .sh-ico { transform: translateX(3px); }
.sh-section { padding: clamp(4.5rem, 9vw, 7rem) 0; }
.sh-section--soft { background: var(--sh-soft); }
.sh-head { max-width: 44rem; margin-bottom: clamp(2.25rem, 4vw, 3.25rem); }
.sh-head > p:not(.sh-label), .sh-head--split > p { margin-top: 1rem; color: var(--sh-text-2); font-size: 1.1rem; }
.sh-head--split { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 26rem); gap: 1rem 3rem; align-items: end; }
.sh-head--split > p { margin: 0 0 .4rem; }
@media (max-width: 767px) { .sh-head--split { grid-template-columns: 1fr; } }
.sh-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(2.75rem, 6vw, 5rem) 0 clamp(3.5rem, 7vw, 6rem); }
.sh-hero__light { position: absolute; inset: 0; z-index: -1; pointer-events: none;
background: radial-gradient(46rem 30rem at 88% 8%, rgba(62, 124, 196, .17), transparent 64%), radial-gradient(40rem 26rem at 2% 92%, rgba(212, 168, 67, .17), transparent 64%); }
.sh-hero__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
.sh-kicker { display: inline-flex; align-items: center; gap: .55rem; font-size: .85rem; font-weight: 600; color: var(--sh-text-2); padding: .42rem .95rem .42rem .8rem; border-radius: 999px; background: var(--sh-surface); border: 1px solid var(--sh-line); box-shadow: var(--sh-shadow); }
.sh-kicker__dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--sh-gold); box-shadow: 0 0 0 4px rgba(212, 168, 67, .22); }
.sh-hero__title { text-wrap: balance; font-family: var(--font-heading); font-weight: 600; font-size: clamp(2.4rem, 4.3vw, 3.6rem); line-height: 1.04; letter-spacing: -.035em; color: var(--sh-ink); margin-top: 1.4rem; }
.sh-hero__title .sh-hero__accent { display: block; color: var(--sh-sky-deep); }
.sh-hero__name { display: block; font-size: clamp(.95rem, 1.3vw, 1.08rem); font-weight: 600; line-height: 1.35; letter-spacing: 0; color: var(--sh-gold-text); margin-bottom: .55rem; text-wrap: pretty; }
.sh-hero__lede { font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.65; color: var(--sh-text-2); max-width: 33rem; margin-top: 1.3rem; }
.sh-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.sh-hero__visual { position: relative; margin: 0; }
.sh-frame { position: relative; border-radius: 32px; overflow: hidden; aspect-ratio: 8 / 7; box-shadow: 0 50px 90px -50px rgba(15, 35, 66, .55), 0 0 0 1px var(--sh-line); transform: perspective(1500px) rotateY(-7deg) rotateX(2deg); transition: transform 1s var(--sh-ease); }
.sh-hero__visual:hover .sh-frame { transform: perspective(1500px) rotateY(-3deg) rotateX(1deg); }
.sh-hills, .sh-frame__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.sh-hero__panel { position: absolute; left: -2.25rem; bottom: 1.75rem; width: 16.5rem; padding: 1rem 1.1rem; }
.sh-hero__panel-title { font-family: var(--font-heading); font-weight: 600; font-size: .95rem; margin-bottom: .55rem; color: var(--sh-ink); }
.sh-hero__panel li { display: flex; justify-content: space-between; gap: .75rem; padding: .38rem 0; border-top: 1px solid var(--sh-line); font-size: .82rem; color: var(--sh-text-2); }
.sh-hero__panel b { color: var(--sh-ink); font-weight: 600; white-space: nowrap; }
.sh-hero__badge { position: absolute; right: -1.1rem; top: 1.75rem; display: flex; align-items: center; gap: .7rem; padding: .55rem 1rem .55rem .55rem; border-radius: 18px; }
.sh-hero__badge img { width: 44px; height: 44px; object-fit: contain; background: #fff; border-radius: 12px; padding: 3px; }
.sh-hero__badge b { display: block; font-size: .88rem; color: var(--sh-ink); }
.sh-hero__badge span { display: block; font-size: .78rem; color: var(--sh-text-2); }
@media (prefers-reduced-motion: no-preference) {
:root:not([data-fx="reduced"]) .sh-hero__copy > * { animation: sh-rise .9s var(--sh-ease) both; }
:root:not([data-fx="reduced"]) .sh-hero__copy > :nth-child(2) { animation-delay: .06s; }
:root:not([data-fx="reduced"]) .sh-hero__copy > :nth-child(3) { animation-delay: .12s; }
:root:not([data-fx="reduced"]) .sh-hero__copy > :nth-child(4) { animation-delay: .18s; }
:root:not([data-fx="reduced"]) .sh-hero__panel { animation: sh-float-in 1s .35s var(--sh-ease) both; }
:root:not([data-fx="reduced"]) .sh-hero__badge { animation: sh-float-in 1s .5s var(--sh-ease) both; }
:root:not([data-fx="reduced"]) .sh-hills__birds { animation: sh-drift 14s ease-in-out infinite; }
}
@keyframes sh-rise { from { transform: translateY(16px); } to { transform: none; } }
@keyframes sh-float-in { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }
@keyframes sh-drift { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(18px, -6px); } }
@media (max-width: 1023px) {
.sh-hero__grid { grid-template-columns: 1fr; }
.sh-hero__visual { max-width: 40rem; }
.sh-frame { transform: none; aspect-ratio: 4 / 3; border-radius: 26px; }
.sh-hero__visual:hover .sh-frame { transform: none; }
.sh-hero__panel { left: 1rem; bottom: 1rem; }
.sh-hero__badge { right: 1rem; top: 1rem; }
}
@media (max-width: 520px) {
.sh-frame { aspect-ratio: 1 / 1.05; }
.sh-hero__panel { right: 1rem; width: auto; padding: .85rem .95rem; }
.sh-hero__panel-title { font-size: .88rem; }
.sh-hero__actions .btn { flex: 1 1 100%; justify-content: center; }
.sh-kicker { font-size: .8rem; }
.sh-kicker__place { display: none; }
}
@media (max-width: 639px) { .top-bar__social { display: none; } }
.sh-intro { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.sh-intro__body > p { font-size: clamp(1.08rem, 1.4vw, 1.22rem); line-height: 1.7; color: var(--sh-text-2); }
.sh-facts { display: grid; grid-template-columns: 1fr 1fr; margin-top: 2rem; border-top: 1px solid var(--sh-line); }
.sh-facts div { padding: 1.2rem 0; border-bottom: 1px solid var(--sh-line); }
.sh-facts div:nth-child(odd) { padding-right: 1rem; }
.sh-facts dt { font-size: .85rem; color: var(--sh-text-2); }
.sh-facts dd { margin: .2rem 0 0; font-family: var(--font-heading); font-weight: 600; font-size: clamp(1.6rem, 3vw, 2.3rem); letter-spacing: -.03em; color: var(--sh-ink); line-height: 1.15; }
@media (max-width: 860px) { .sh-intro { grid-template-columns: 1fr; } }
.sh-journey { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; position: relative; }
.sh-journey::before { content: ""; position: absolute; left: 1.3rem; right: 1.3rem; top: 1.3rem; height: 2px; background: linear-gradient(90deg, var(--sh-gold), var(--sh-sky)); opacity: .55; }
.sh-journey li { position: relative; padding-top: 4rem; }
.sh-journey__step { position: absolute; top: 0; left: 0; width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-heading); font-weight: 600; color: var(--sh-ink); background: var(--sh-surface); border: 2px solid var(--sh-gold); box-shadow: 0 0 0 6px var(--sh-soft); }
.sh-journey__classes { font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sh-gold-text); }
.sh-journey h3 { font-family: var(--font-heading); font-weight: 600; font-size: 1.3rem; letter-spacing: -.02em; color: var(--sh-ink); margin-top: .3rem; }
.sh-journey li p:last-child { margin-top: .55rem; color: var(--sh-text-2); font-size: .98rem; }
@media (max-width: 900px) {
.sh-journey { grid-template-columns: 1fr; gap: 0; }
.sh-journey::before { left: 1.3rem; right: auto; top: 1.3rem; bottom: 1.3rem; width: 2px; height: auto; background: linear-gradient(180deg, var(--sh-gold), var(--sh-sky)); }
.sh-journey li { padding: 0 0 1.75rem 4rem; }
}
.sh-fac { display: grid; grid-template-columns: 1.25fr 1fr 1fr; grid-template-areas: "sports labs labs" "sports library computers"; gap: 1.1rem; }
.sh-fac__item { position: relative; border-radius: 26px; overflow: hidden; min-height: 15rem; display: flex; align-items: flex-end; padding: 1rem; isolation: isolate; box-shadow: var(--sh-shadow); }
.sh-fac__item--sports { grid-area: sports; min-height: 31rem; }
.sh-fac__item--labs { grid-area: labs; }
.sh-fac__item--library { grid-area: library; }
.sh-fac__item--computers { grid-area: computers; }
.sh-fac__media { position: absolute; inset: 0; z-index: -1; }
.sh-fac__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--sh-ease); }
.sh-fac__item:hover .sh-fac__media img { transform: scale(1.04); }
.sh-fac__item--sports .sh-fac__media:not(.has-photo) { background: radial-gradient(70% 60% at 80% 15%, rgba(235, 208, 138, .55), transparent 60%), linear-gradient(160deg, #1E3A6E, #3E7CC4 70%, #6FA4DD); }
.sh-fac__item--labs .sh-fac__media:not(.has-photo) { background: radial-gradient(60% 90% at 90% 10%, rgba(212, 168, 67, .45), transparent 60%), linear-gradient(150deg, #0F2342, #1E3A6E); }
.sh-fac__item--library .sh-fac__media:not(.has-photo) { background: radial-gradient(80% 80% at 10% 0%, rgba(255, 255, 255, .45), transparent 60%), linear-gradient(160deg, #E9C878, #C99837); }
.sh-fac__item--computers .sh-fac__media:not(.has-photo) { background: radial-gradient(80% 80% at 90% 0%, rgba(255, 255, 255, .35), transparent 60%), linear-gradient(160deg, #5B95D6, #2D62A3); }
.sh-fac__art { position: absolute; right: 1.4rem; top: 1.4rem; width: 5.5rem; height: 5.5rem; border-radius: 26px; display: grid; place-items: center; color: #fff; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .28); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35); }
.sh-fac__art .sh-ico { width: 2.6rem; height: 2.6rem; }
.sh-fac__item--sports .sh-fac__art { width: 8rem; height: 8rem; border-radius: 36px; right: 2rem; top: 2rem; }
.sh-fac__item--sports .sh-fac__art .sh-ico { width: 3.8rem; height: 3.8rem; }
.sh-fac__item--library .sh-fac__art { color: #5A3F06; background: rgba(255, 255, 255, .3); }
.sh-fac__caption { position: relative; padding: 1rem 1.15rem; max-width: 26rem; border-radius: 18px; }
.sh-fac__caption h3 { font-family: var(--font-heading); font-weight: 600; font-size: 1.15rem; color: var(--sh-ink); letter-spacing: -.015em; }
.sh-fac__caption p { margin-top: .3rem; font-size: .92rem; color: var(--sh-text-2); line-height: 1.55; }
@media (max-width: 900px) {
.sh-fac { grid-template-columns: 1fr 1fr; grid-template-areas: "sports sports" "labs labs" "library computers"; }
.sh-fac__item--sports { min-height: 22rem; }
}
@media (max-width: 560px) {
.sh-fac { grid-template-columns: 1fr; grid-template-areas: "sports" "labs" "library" "computers"; }
.sh-fac__item, .sh-fac__item--sports { min-height: 16rem; }
.sh-fac__item--sports .sh-fac__art { width: 5.5rem; height: 5.5rem; border-radius: 26px; right: 1.4rem; top: 1.4rem; }
.sh-fac__item--sports .sh-fac__art .sh-ico { width: 2.6rem; height: 2.6rem; }
}
.sh-streams { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; }
.sh-stream { background: var(--sh-surface); border: 1px solid var(--sh-line); border-radius: 24px; padding: 1.6rem 1.5rem 1.75rem; box-shadow: var(--sh-shadow); transition: transform .35s var(--sh-ease), box-shadow .35s var(--sh-ease); }
.sh-stream:hover { transform: translateY(-4px); box-shadow: var(--sh-shadow), 0 30px 60px -36px rgba(15, 35, 66, .45); }
.sh-stream__icon { width: 3rem; height: 3rem; border-radius: 14px; display: grid; place-items: center; color: var(--sh-sky-deep); background: var(--sh-sky-soft); }
.sh-stream__icon .sh-ico { width: 1.5rem; height: 1.5rem; }
.sh-stream h3 { font-family: var(--font-heading); font-weight: 600; font-size: 1.6rem; letter-spacing: -.03em; color: var(--sh-ink); margin-top: 1.1rem; }
.sh-stream__subjects { margin-top: .4rem; font-weight: 600; color: var(--sh-ink); font-size: .98rem; line-height: 1.45; }
.sh-stream p:last-child { margin-top: .6rem; color: var(--sh-text-2); font-size: .95rem; }
@media (max-width: 1023px) { .sh-streams { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sh-streams { grid-template-columns: 1fr; } }
.sh-gallery { columns: 3 18rem; column-gap: 1.1rem; }
.sh-gallery figure { position: relative; margin: 0 0 1.1rem; break-inside: avoid; border-radius: 22px; overflow: hidden; }
.sh-gallery img { width: 100%; height: auto; transition: transform 1.2s var(--sh-ease); }
.sh-gallery figure:hover img { transform: scale(1.03); }
.sh-gallery figcaption { position: absolute; left: .8rem; bottom: .8rem; padding: .4rem .8rem; border-radius: 12px; font-size: .85rem; font-weight: 600; }
.sh-admit { position: relative; isolation: isolate; overflow: hidden; background: #0C1C36; color: #E6ECF6; padding: clamp(4.5rem, 9vw, 7rem) 0; }
.sh-admit__light { position: absolute; inset: 0; z-index: -1; background: radial-gradient(40rem 26rem at 90% 10%, rgba(212, 168, 67, .28), transparent 62%), radial-gradient(40rem 30rem at 0% 100%, rgba(62, 124, 196, .35), transparent 62%); }
.sh-admit__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.sh-admit .sh-display { color: #fff; }
.sh-admit__lede { margin-top: 1rem; font-size: 1.12rem; color: #C3CFE2; max-width: 34rem; }
.sh-steps { margin-top: 2rem; counter-reset: st; display: grid; gap: 1rem; }
.sh-steps li { counter-increment: st; display: grid; grid-template-columns: 2.4rem 1fr; gap: .2rem 1rem; }
.sh-steps li::before { content: counter(st); grid-row: span 2; width: 2.4rem; height: 2.4rem; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-heading); font-weight: 600; color: #EBD08A; border: 1.5px solid rgba(235, 208, 138, .6); }
.sh-steps b { color: #fff; font-weight: 600; }
.sh-steps span { color: #C3CFE2; font-size: .95rem; }
.sh-admit__card { padding: clamp(1.4rem, 3vw, 2rem); background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .16); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .1); color: #fff; }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .sh-admit__card { background: rgba(255, 255, 255, .07); } }
.sh-admit__card h3 { font-family: var(--font-heading); font-weight: 600; font-size: 1.5rem; color: #fff; letter-spacing: -.02em; }
.sh-admit__card > p { margin: .5rem 0 1.4rem; color: #C3CFE2; font-size: .97rem; }
.sh-admit__alt { display: grid; gap: .25rem; margin-top: 1rem; }
.sh-admit__alt a { display: flex; align-items: center; gap: .6rem; min-height: 2.75rem; color: #fff; font-weight: 500; }
.sh-admit__alt a:hover { color: #EBD08A; }
.sh-admit__alt .sh-ico { color: #EBD08A; }
.sh-admit :focus-visible { outline-color: #EBD08A; }
@media (max-width: 900px) { .sh-admit__grid { grid-template-columns: 1fr; } }
.sh-visit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.sh-visit__lede { margin: 1rem 0 2rem; color: var(--sh-text-2); font-size: 1.1rem; max-width: 30rem; }
.sh-visit__list { background: var(--sh-surface); border: 1px solid var(--sh-line); border-radius: 26px; padding: .5rem 1.5rem; box-shadow: var(--sh-shadow); }
.sh-visit__list li { display: flex; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--sh-line); }
.sh-visit__list li:last-child { border-bottom: 0; }
.sh-visit__list .sh-ico { color: var(--sh-gold-text); margin-top: .15rem; width: 1.35rem; height: 1.35rem; }
.sh-visit__list b { display: block; color: var(--sh-ink); font-weight: 600; }
.sh-visit__list span { color: var(--sh-text-2); font-size: .97rem; }
.sh-visit__list a { color: var(--sh-link); }
@media (max-width: 860px) { .sh-visit { grid-template-columns: 1fr; } }
.site-header .site-logo__name { letter-spacing: -.01em; }
.page-hero { background: radial-gradient(40rem 22rem at 90% 0%, rgba(212, 168, 67, .2), transparent 62%), radial-gradient(40rem 26rem at 0% 100%, rgba(62, 124, 196, .3), transparent 60%), linear-gradient(135deg, #0F2342, #1A365D); }
.page-hero h1 { letter-spacing: -.03em; font-weight: 600; }
.card { border-radius: 22px; }
.section-header h2 { letter-spacing: -.025em; }
.form-input, .form-select, .form-textarea { border-radius: 12px; }
.alert { border-radius: 14px; }
.footer-heading--sub { margin-top: 1.75rem; }
.site-footer { background: #0A1830; }
:root[data-theme="dark"] .site-footer { background: #070F20; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .site-footer { background: #070F20; } }
:root[data-fx="reduced"] *, :root[data-fx="reduced"] *::before, :root[data-fx="reduced"] *::after { animation: none !important; transition: none !important; }
:root[data-fx="reduced"] .sh-glass, :root[data-fx="reduced"] .site-header { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
:root[data-fx="reduced"] .sh-glass { background: var(--sh-surface); }
:root[data-fx="reduced"] .sh-admit__card { background: #15274A; }
:root[data-fx="reduced"] .sh-frame { transform: none; }
html[data-fx="reduced"] { scroll-behavior: auto; }
@media (prefers-reduced-motion: reduce) { .sh-frame, .sh-hero__visual:hover .sh-frame { transform: none; } }
.section-header__label { color: var(--sh-gold-text); }
:root[data-theme="dark"] .site-logo__sub { color: var(--sh-text-2); }
:root[data-theme="dark"] .site-header { background: rgba(11, 18, 32, .92); }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .site-logo__sub { color: var(--sh-text-2); }
:root:not([data-theme="light"]) .site-header { background: rgba(11, 18, 32, .92); }
}
@media (max-width: 1023px) {
:root[data-theme="dark"] .main-nav { background: var(--sh-surface); }
:root[data-theme="dark"] .main-nav__sub a { color: var(--sh-text-2); }
}
@media (max-width: 1023px) and (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .main-nav { background: var(--sh-surface); }
:root:not([data-theme="light"]) .main-nav__sub a { color: var(--sh-text-2); }
}
.fee-table-wrap:focus-visible { outline: 3px solid var(--sh-sky); outline-offset: 2px; border-radius: 10px; }
html { overflow-x: clip; }
@media (max-width: 1023px) {
.main-nav:not(.open) { visibility: hidden; transition: transform .3s var(--ease), visibility 0s .3s; }
.main-nav.open { visibility: visible; transition: transform .3s var(--ease); }
.main-nav:not(.open) .main-nav__sub, .main-nav__dropdown:not(.open) .main-nav__sub { visibility: hidden; }
}
@media (min-width: 1024px) {
.main-nav__dropdown:focus-within .main-nav__sub { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity .2s, transform .2s, visibility 0s; }
}
.back-to-top { width: 48px; height: 48px; right: 5.25rem; bottom: 1.75rem; background: var(--sh-surface); border: 1px solid var(--sh-line); box-shadow: var(--sh-shadow), 0 14px 30px -16px rgba(15, 35, 66, .55); color: var(--sh-ink); }
.back-to-top svg { color: var(--sh-ink); }
.back-to-top:hover { background: var(--sh-navy-2); border-color: var(--sh-navy-2); }
.back-to-top:hover svg { color: #fff; }
.back-to-top:focus-visible { outline: 3px solid var(--sh-sky); outline-offset: 3px; }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.back-to-top { background: var(--sh-glass-bg); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); }
.back-to-top:hover { background: var(--sh-navy-2); }
}
.map-card { position: relative; height: auto; min-height: 20rem; display: grid; align-items: end; padding: clamp(1.25rem, 3vw, 2rem); isolation: isolate;
background: radial-gradient(30rem 18rem at 85% 10%, rgba(242, 190, 92, .35), transparent 60%), linear-gradient(170deg, var(--hl-sky-1), var(--hl-sky-2) 55%, var(--hl-2)); }
.map-card::before { content: ""; position: absolute; inset: auto 0 0 0; height: 55%; z-index: -1; pointer-events: none;
background: linear-gradient(180deg, transparent, rgba(15, 35, 66, .25)), radial-gradient(120% 90% at 30% 120%, var(--hl-3), transparent 60%); }
.map-card__body { max-width: 34rem; padding: 1.25rem 1.4rem; border-radius: 20px; background: var(--sh-surface); border: 1px solid var(--sh-line); box-shadow: var(--sh-shadow); }
.map-card__label { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--sh-gold-text); }
.map-card__title { font-family: var(--font-heading); font-size: 1.35rem !important; margin: .25rem 0 .35rem; color: var(--sh-ink); }
.map-card__addr { color: var(--sh-text-2); font-size: .97rem; }
.map-card__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.map-card__actions [hidden] { display: none; }
.map-card__note { margin-top: .75rem; font-size: .82rem; color: var(--sh-text-2); }
.map-card.is-loaded { padding: 0; min-height: 0; display: block; background: none; }
.map-card.is-loaded::before, .map-card.is-loaded .map-card__body { display: none; }
.map-card__frame { display: block; width: 100%; height: 380px; border: 0; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
@media (max-width: 520px) { .page-hero__actions .btn { flex: 1 1 100%; justify-content: center; } }
.sh-alt-contact { margin-top: 2rem; padding: 1.25rem 1.4rem; border-radius: 20px; background: var(--sh-surface); border: 1px solid var(--sh-line); box-shadow: var(--sh-shadow); }
.sh-alt-contact ul { margin-top: .75rem; display: grid; gap: .75rem; }
.sh-alt-contact li { display: flex; gap: .75rem; align-items: flex-start; color: var(--sh-text-2); }
.sh-alt-contact .sh-ico { color: var(--sh-gold-text); margin-top: .2rem; }
.sh-alt-contact a { color: var(--sh-link); font-weight: 600; }
@media (max-width: 359px) {
.site-header__actions .btn--sm { display: none; }
}
@media (max-width: 400px) {
.sh-hero { padding-top: 1.75rem; }
.sh-hero__title { margin-top: 1rem; }
}
@media (min-width: 1024px) {
.sh-hero__grid { align-items: start; }
.sh-hero__visual { margin-top: 2.25rem; }
}
.page-hero {
position: relative; isolation: isolate; overflow: hidden; color: var(--sh-ink);
padding: clamp(2.5rem, 6vw, 4.25rem) 0 clamp(6.5rem, 12vw, 9.5rem);
background: radial-gradient(34rem 22rem at 86% 18%, color-mix(in srgb, var(--hl-sun) 42%, transparent), transparent 62%),
linear-gradient(176deg, var(--hl-sky-1) 0%, var(--hl-sky-2) 78%);
}
.page-hero::before, .page-hero::after {
content: ""; position: absolute; left: 0; right: 0; top: auto; bottom: -1px; z-index: -1; pointer-events: none; opacity: 1;
-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
}
.page-hero::before {
inset: auto 0 -1px 0; height: clamp(5.5rem, 11vw, 8.5rem); background: var(--hl-2);
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 160' preserveAspectRatio='none'%3E%3Cpath d='M0 92C170 40 330 26 520 66s360-52 560-16 250-6 360 10v100H0Z'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 160' preserveAspectRatio='none'%3E%3Cpath d='M0 92C170 40 330 26 520 66s360-52 560-16 250-6 360 10v100H0Z'/%3E%3C/svg%3E");
}
.page-hero::after {
height: clamp(3.5rem, 7vw, 5.5rem); background: var(--sh-bg);
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 58C230 18 450 30 690 52s500-34 750 2v46H0Z'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0 58C230 18 450 30 690 52s500-34 750 2v46H0Z'/%3E%3C/svg%3E");
}
.page-hero .container { position: relative; z-index: 2; }
.page-hero h1, .hero__title, .page-hero h1 { color: var(--sh-ink); }
.page-hero h1 { font-weight: 600; letter-spacing: -.035em; font-size: clamp(2rem, 4.6vw, 3.4rem); line-height: 1.06; max-width: 22ch; text-wrap: balance; margin-top: .25rem; }
.page-hero p { color: var(--sh-text-2); font-size: clamp(1.02rem, 1.4vw, 1.15rem); max-width: 40rem; line-height: 1.65; margin-top: .75rem; }
.page-hero .breadcrumb { padding: 0 0 .75rem; }
.page-hero .breadcrumb__list a { color: var(--sh-text-2); }
.page-hero .breadcrumb__list a:hover { color: var(--sh-link); }
.page-hero .breadcrumb__list li[aria-current="page"] { color: var(--sh-ink); font-weight: 600; }
.page-hero .breadcrumb__list li + li::before { color: var(--sh-text-2); }
.section-header { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.section-header h2 { font-weight: 600; font-size: clamp(1.75rem, 3.4vw, 2.6rem); line-height: 1.12; letter-spacing: -.03em; color: var(--sh-ink); text-wrap: balance; }
.section-header h2::after { display: none; }
.section-header p { color: var(--sh-text-2); }
.section-header__label { letter-spacing: .12em; font-weight: 600; }
.card { background: var(--sh-surface); border: 1px solid var(--sh-line); border-radius: 22px; box-shadow: var(--sh-shadow); transition: transform .35s var(--sh-ease), box-shadow .35s var(--sh-ease), border-color .35s; }
.card:hover { transform: translateY(-4px); box-shadow: var(--sh-shadow), 0 28px 56px -34px rgba(15, 35, 66, .45); border-color: color-mix(in srgb, var(--sh-sky) 35%, var(--sh-line)); }
.card h3 { color: var(--sh-ink); font-weight: 600; letter-spacing: -.015em; }
.card p { color: var(--sh-text-2); font-size: .95rem; }
.card__icon { width: 52px; height: 52px; border-radius: 16px; box-shadow: none; }
.card__icon--blue { background: var(--sh-sky-soft); color: var(--sh-sky-deep); }
.card__icon--gold { background: color-mix(in srgb, var(--sh-gold) 18%, transparent); color: var(--sh-gold-text); }
.card__icon--teal { background: color-mix(in srgb, #0d9488 14%, transparent); color: #0f766e; }
:root[data-theme="dark"] .card__icon--teal { color: #5eead4; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .card__icon--teal { color: #5eead4; } }
.feature__icon { background: var(--sh-sky-soft); color: var(--sh-sky-deep); border-radius: 14px; }
.key-takeaways { background: var(--sh-surface); border: 1px solid var(--sh-line); border-left: 0; border-radius: 22px; padding: 1.5rem 1.6rem 1.4rem; box-shadow: var(--sh-shadow); position: relative; overflow: hidden; }
.key-takeaways::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, var(--sh-gold), var(--sh-sky)); }
.key-takeaways__title { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--sh-gold-text); }
.key-takeaways__title svg { display: none; }
.key-takeaways ul { list-style: none; padding: 0; display: grid; gap: .55rem; }
.key-takeaways li { position: relative; padding-left: 1.75rem; color: var(--sh-ink); font-size: .97rem; }
.key-takeaways li::before { content: ""; position: absolute; left: .1rem; top: .35em; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--sh-sky-soft); }
.key-takeaways li::after { content: ""; position: absolute; left: .45rem; top: .6em; width: .36rem; height: .2rem; border-left: 2px solid var(--sh-sky-deep); border-bottom: 2px solid var(--sh-sky-deep); transform: rotate(-45deg); }
.accordion__item { background: var(--sh-surface); border: 1px solid var(--sh-line); border-radius: 18px; margin-bottom: .65rem; transition: border-color .25s, box-shadow .25s; }
.accordion__item.open { border-color: color-mix(in srgb, var(--sh-sky) 45%, var(--sh-line)); box-shadow: var(--sh-shadow); }
.accordion__trigger { background: transparent; color: var(--sh-ink); padding: 1.1rem 1.3rem; font-size: 1.02rem; text-align: left; gap: 1rem; min-height: 3.25rem; }
.accordion__trigger:hover { background: transparent; color: var(--sh-link); }
.accordion__trigger svg { width: 1.6rem; height: 1.6rem; padding: .3rem; border-radius: 50%; background: var(--sh-sky-soft); color: var(--sh-sky-deep); }
.accordion__content { color: var(--sh-text-2); font-size: .97rem; padding: 0 1.3rem 1.25rem; }
#enquiry form, section form[method="post"] { background: var(--sh-surface); border: 1px solid var(--sh-line); border-radius: 24px; padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--sh-shadow); }
.form-label { color: var(--sh-ink); font-weight: 600; font-size: .93rem; }
.form-input, .form-select, .form-textarea { border-radius: 12px; border: 1.5px solid #8a93a6; background: var(--sh-surface); color: var(--sh-ink); min-height: 3rem; font-size: 1rem; transition: border-color .2s, box-shadow .2s; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color: var(--sh-sky-deep); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sh-sky) 22%, transparent); outline: none; }
:root[data-theme="dark"] .form-input, :root[data-theme="dark"] .form-select, :root[data-theme="dark"] .form-textarea { border-color: #5d6b86; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .form-input, :root:not([data-theme="light"]) .form-select, :root:not([data-theme="light"]) .form-textarea { border-color: #5d6b86; } }
.fee-table-wrap { border-radius: 18px; border-color: var(--sh-line); background: var(--sh-surface); box-shadow: var(--sh-shadow); }
.fee-table thead { background: var(--sh-navy-2); }
.fee-table td { border-bottom-color: var(--sh-line); color: var(--sh-ink); }
.fee-table tbody tr:nth-child(even) { background: color-mix(in srgb, var(--sh-sky-soft) 45%, transparent); }
.fee-table tbody tr:hover { background: var(--sh-sky-soft); }
.disclosure-table { border-color: var(--sh-line); border-radius: 18px; overflow: hidden; background: var(--sh-surface); }
.disclosure-table th { background: var(--sh-soft); color: var(--sh-ink); }
.disclosure-table td { color: var(--sh-text-2); border-bottom-color: var(--sh-line); }
.timeline::before { background: linear-gradient(180deg, var(--sh-gold), var(--sh-sky)); }
.timeline__year { color: var(--sh-ink); }
.staff-card { background: var(--sh-surface); border: 1px solid var(--sh-line); border-radius: 20px; }
.staff-card__avatar { background: var(--sh-sky-soft); color: var(--sh-sky-deep); }
.staff-card__name { color: var(--sh-ink); }
.staff-card__role { color: var(--sh-gold-text); }
.cta-banner { position: relative; isolation: isolate; overflow: hidden; background: #0C1C36; }
.cta-banner::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(34rem 20rem at 92% 0%, rgba(212, 168, 67, .28), transparent 62%), radial-gradient(34rem 24rem at 0% 100%, rgba(62, 124, 196, .35), transparent 62%); }
.cta-banner__text h2 { font-weight: 600; letter-spacing: -.025em; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.step-num { width: 3rem; height: 3rem; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-heading); font-weight: 600; font-size: 1.15rem; color: #fff; background: var(--sh-navy-2); box-shadow: 0 0 0 5px color-mix(in srgb, var(--sh-gold) 30%, transparent); }
:root[data-theme="dark"] .step-num { background: #2B5DA8; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .step-num { background: #2B5DA8; } }
.card__icon .sh-ico { width: 1.6rem; height: 1.6rem; }
.site-logo__sub, .form-hint, .staff-card__subject { color: var(--sh-text-2); }
:root:not([data-theme="dark"]) .site-header { background: rgba(255, 255, 255, .92); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .site-header { background: rgba(11, 18, 32, .92); } }
.scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1001; pointer-events: none; }
.scroll-progress__bar { height: 100%; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--sh-gold), #E9C46A 55%, var(--sh-sky)); box-shadow: 0 0 10px rgba(212, 168, 67, .45); }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top { -webkit-backdrop-filter: blur(12px) saturate(1.4); backdrop-filter: blur(12px) saturate(1.4); background: color-mix(in srgb, var(--sh-surface) 82%, transparent); }
.fx-spot { position: relative; isolation: isolate; }
.fx-spot::after {
content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 2; opacity: 0;
transition: opacity .35s ease;
background: radial-gradient(20rem circle at var(--sx, 50%) var(--sy, 0%), rgba(212, 168, 67, .10), transparent 60%);
}
.fx-spot::before {
content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none; z-index: 3; opacity: 0; padding: 1px;
transition: opacity .35s ease;
background: radial-gradient(15rem circle at var(--sx, 50%) var(--sy, 0%), rgba(212, 168, 67, .85), rgba(62, 124, 196, .35) 45%, transparent 70%);
-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.fx-spot.is-lit::after, .fx-spot.is-lit::before, .fx-spot:focus-within::before { opacity: 1; }
.sh-fac__item.fx-spot::after { background: radial-gradient(20rem circle at var(--sx, 50%) var(--sy, 0%), rgba(255, 255, 255, .14), transparent 60%); }
.fx-tilt { transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0)); }
.sh-stream.fx-tilt:hover { --lift: -4px; transform: perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0)); }
@media (prefers-reduced-motion: reduce) {
.fx-tilt, .sh-stream.fx-tilt:hover { transform: none; }
}
@media print { .scroll-progress, .back-to-top { display: none !important; } }
:root {
--sh-glass-1: rgba(255, 255, 255, .5);
--sh-glass-2: rgba(255, 255, 255, .7);
--sh-glass-3: rgba(255, 255, 255, .86);
--sh-glass-edge: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 0 0 1px rgba(255, 255, 255, .6);
--sh-glass-drop: 0 1px 2px rgba(15, 35, 66, .06), 0 24px 48px -26px rgba(15, 35, 66, .42);
--sh-glass-drop-hi: 0 2px 6px rgba(15, 35, 66, .06), 0 44px 80px -38px rgba(15, 35, 66, .52);
--sh-contour: rgba(184, 140, 40, .16);
--sc-sky-1: #A7C7EC; --sc-sky-2: #DAE6F5; --sc-sky-3: #FBE6C6;
--sc-sun: #F7C35A; --sc-sun-core: #FFF4D6; --sc-sun-glow: rgba(247, 190, 80, .42);
--sc-h1a: #CAD8EE; --sc-h1b: #B9CBE6;
--sc-h2a: #A3BADC; --sc-h2b: #8DA8D1;
--sc-h3a: #6C8DC0; --sc-h3b: #5477AD;
--sc-h4a: #284878; --sc-h4b: #19325E;
--sc-mist: #F6EFE3; --sc-bird: #2C4A75; --sc-stars: 0;
--sc-lede: #33405A; --sc-chip: rgba(255, 255, 255, .62); --sc-chip-line: rgba(255, 255, 255, .8);
}
:root[data-theme="dark"] {
--sh-glass-1: rgba(16, 28, 50, .46); --sh-glass-2: rgba(16, 28, 50, .62); --sh-glass-3: rgba(16, 28, 50, .78);
--sh-glass-edge: inset 0 1px 0 rgba(255, 255, 255, .09), inset 0 0 0 1px rgba(255, 255, 255, .08);
--sh-glass-drop: 0 24px 50px -24px rgba(0, 0, 0, .85);
--sh-glass-drop-hi: 0 44px 80px -36px rgba(0, 0, 0, .9);
--sh-contour: rgba(156, 195, 240, .07);
--sc-sky-1: #040A1A; --sc-sky-2: #0C1A3B; --sc-sky-3: #26346A;
--sc-sun: #DDE6F7; --sc-sun-core: #FFFFFF; --sc-sun-glow: rgba(150, 180, 255, .26);
--sc-h1a: #233660; --sc-h1b: #1C2D52; --sc-h2a: #19294B; --sc-h2b: #142244;
--sc-h3a: #111E3B; --sc-h3b: #0E1934; --sc-h4a: #0B152C; --sc-h4b: #091124;
--sc-mist: #2D3D6C; --sc-bird: #8FA6C8; --sc-stars: 1;
--sc-lede: #C3CFE2; --sc-chip: rgba(255, 255, 255, .08); --sc-chip-line: rgba(255, 255, 255, .16);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--sh-glass-1: rgba(16, 28, 50, .46); --sh-glass-2: rgba(16, 28, 50, .62); --sh-glass-3: rgba(16, 28, 50, .78);
--sh-glass-edge: inset 0 1px 0 rgba(255, 255, 255, .09), inset 0 0 0 1px rgba(255, 255, 255, .08);
--sh-glass-drop: 0 24px 50px -24px rgba(0, 0, 0, .85);
--sh-glass-drop-hi: 0 44px 80px -36px rgba(0, 0, 0, .9);
--sh-contour: rgba(156, 195, 240, .07);
--sc-sky-1: #040A1A; --sc-sky-2: #0C1A3B; --sc-sky-3: #26346A;
--sc-sun: #DDE6F7; --sc-sun-core: #FFFFFF; --sc-sun-glow: rgba(150, 180, 255, .26);
--sc-h1a: #233660; --sc-h1b: #1C2D52; --sc-h2a: #19294B; --sc-h2b: #142244;
--sc-h3a: #111E3B; --sc-h3b: #0E1934; --sc-h4a: #0B152C; --sc-h4b: #091124;
--sc-mist: #2D3D6C; --sc-bird: #8FA6C8; --sc-stars: 1;
--sc-lede: #C3CFE2; --sc-chip: rgba(255, 255, 255, .08); --sc-chip-line: rgba(255, 255, 255, .16);
}
}
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.sh-glass {
background: linear-gradient(160deg, var(--sh-glass-3), var(--sh-glass-1));
border-color: transparent; box-shadow: var(--sh-glass-edge), var(--sh-glass-drop);
-webkit-backdrop-filter: blur(18px) saturate(1.7); backdrop-filter: blur(18px) saturate(1.7);
}
}
.btn--accent { background: linear-gradient(180deg, #EBC86C 0%, #D4A843 55%, #C2952F 100%); border-color: #C2952F; color: #10203C;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 0 rgba(120, 80, 0, .2), 0 12px 28px -12px rgba(184, 136, 30, .85), 0 0 34px -14px rgba(247, 195, 90, .7); }
.btn--accent:hover { background: linear-gradient(180deg, #F0D07A 0%, #DBB04C 55%, #C79A33 100%); border-color: #C2952F; color: #10203C; transform: translateY(-1px);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -1px 0 rgba(120, 80, 0, .2), 0 18px 34px -12px rgba(184, 136, 30, .9), 0 0 44px -10px rgba(247, 195, 90, .8); }
.sh-btn-arrow { gap: .55rem; }
.sh-btn-arrow .sh-ico { width: 1.05rem; height: 1.05rem; transition: transform .25s var(--sh-ease); }
.sh-btn-arrow:hover .sh-ico { transform: translateX(3px); }
.sh-btn-glass { color: var(--sh-ink); border: 1px solid rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .5);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 10px 26px -16px rgba(15, 35, 66, .5);
-webkit-backdrop-filter: blur(14px) saturate(1.6); backdrop-filter: blur(14px) saturate(1.6); }
.sh-btn-glass:hover { color: var(--sh-ink); background: rgba(255, 255, 255, .78); border-color: #fff; transform: translateY(-1px); }
:root[data-theme="dark"] .sh-btn-glass { color: #fff; border-color: rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 10px 26px -16px rgba(0, 0, 0, .8); }
:root[data-theme="dark"] .sh-btn-glass:hover { color: #fff; background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .35); }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .sh-btn-glass { color: #fff; border-color: rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 10px 26px -16px rgba(0, 0, 0, .8); }
:root:not([data-theme="light"]) .sh-btn-glass:hover { color: #fff; background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .35); }
}
.btn:focus-visible { outline-offset: 4px; }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.site-header { -webkit-backdrop-filter: blur(18px) saturate(1.8); backdrop-filter: blur(18px) saturate(1.8); }
:root[data-theme="light"] .site-header { background: rgba(255, 255, 255, .8); }
:root[data-theme="dark"] .site-header { background: rgba(11, 18, 32, .82); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) .site-header { background: rgba(255, 255, 255, .8); } }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .site-header { background: rgba(11, 18, 32, .82); } }
}
.site-header { border-bottom-color: rgba(15, 35, 66, .07); }
.site-header.scrolled { box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 14px 34px -22px rgba(15, 35, 66, .45); }
.sh-hero--scape { display: flex; flex-direction: column; padding: clamp(2.75rem, 5.5vw, 5rem) 0 0; min-height: clamp(42rem, calc(100svh - 6.5rem), 56rem); background: var(--sc-sky-2); }
.sh-scape { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.sh-scape__sky { position: absolute; inset: 0; background: linear-gradient(180deg, var(--sc-sky-1) 0%, var(--sc-sky-2) 40%, var(--sc-sky-3) 74%); }
.sh-scape__sun { position: absolute; right: clamp(6%, 14vw, 20%); top: 30%; width: clamp(8rem, 13vw, 12rem); aspect-ratio: 1; border-radius: 50%;
background: radial-gradient(circle, var(--sc-sun-core) 0 28%, var(--sc-sun) 60%, transparent 62%); }
.sh-scape__sun::before { content: ""; position: absolute; inset: -160%; border-radius: 50%; background: radial-gradient(closest-side, var(--sc-sun-glow), transparent 70%); }
.sh-scape__stars { position: absolute; inset: 0 0 45% 0; opacity: var(--sc-stars);
background-image:
radial-gradient(1.5px 1.5px at 8% 18%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 22% 8%, #fff 50%, transparent 51%),
radial-gradient(1.2px 1.2px at 36% 26%, #DCE6FF 50%, transparent 51%), radial-gradient(1px 1px at 48% 12%, #fff 50%, transparent 51%),
radial-gradient(1.6px 1.6px at 61% 21%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 72% 6%, #DCE6FF 50%, transparent 51%),
radial-gradient(1.2px 1.2px at 86% 16%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 94% 30%, #fff 50%, transparent 51%),
radial-gradient(1px 1px at 14% 40%, #DCE6FF 50%, transparent 51%), radial-gradient(1.3px 1.3px at 55% 38%, #fff 50%, transparent 51%);
}
.sh-scape__birds { position: absolute; left: 50%; top: 5%; width: clamp(6rem, 9vw, 9rem); stroke: var(--sc-bird); opacity: .7; }
.sh-scape__hills { position: absolute; left: 0; bottom: 0; width: 100%; height: clamp(18rem, 58%, 36rem); display: block; }
.sc-ground { fill: var(--sh-bg); }
.sh-hero--scape .sh-hero__grid { flex: 1; align-items: start; grid-template-columns: minmax(0, 1.22fr) minmax(0, .78fr); }
.sh-hero--scape .sh-kicker { background: var(--sc-chip); border-color: var(--sc-chip-line); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.sh-hero--scape .sh-hero__title { font-size: clamp(2.6rem, 4.6vw, 4.1rem); line-height: 1.02; }
.sh-hero--scape .sh-hero__lede { color: var(--sc-lede); }
.sh-hero__stack { display: grid; gap: 1rem; justify-items: end; padding-top: clamp(0rem, 3vw, 2.5rem); }
.sh-hero__crest { display: flex; align-items: center; gap: .9rem; padding: .7rem 1.2rem .7rem .7rem; border-radius: 22px; max-width: 22rem; }
.sh-hero__crest img { width: 64px; height: 64px; flex: none; object-fit: contain; background: #fff; border-radius: 16px; padding: 4px; box-shadow: 0 6px 16px -8px rgba(15, 35, 66, .5); }
.sh-hero__crest b { display: block; font-family: var(--font-heading); font-weight: 600; font-size: .98rem; line-height: 1.25; color: var(--sh-ink); }
.sh-hero__crest span { display: block; margin-top: .15rem; font-size: .82rem; color: var(--sh-text-2); }
.sh-hero--scape .sh-hero__panel { position: relative; left: auto; bottom: auto; width: min(100%, 21rem); padding: 1.15rem 1.25rem 1rem; border-radius: 22px; margin-right: clamp(0rem, 3vw, 3rem); }
.sh-hero--scape .sh-hero__panel-title { font-size: 1.02rem; }
.sh-hero--scape .sh-hero__panel li { font-size: .88rem; padding: .5rem 0; }
.sh-frame--photo { width: min(100%, 26rem); aspect-ratio: 4 / 3; border-radius: 26px; transform: none; box-shadow: var(--sh-glass-drop-hi); }
.sh-hero__base { position: relative; padding-top: 2rem; padding-bottom: clamp(1.75rem, 3.5vw, 3rem); }
.sh-facts--bar { margin: 0; border: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); padding: .4rem .6rem; border-radius: 26px; }
.sh-facts--bar div, .sh-facts--bar div:nth-child(odd) { padding: 1rem 1.2rem; border: 0; }
.sh-facts--bar div + div { border-left: 1px solid var(--sh-line); }
.sh-facts--bar dd { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .sh-facts--bar { background: linear-gradient(160deg, var(--sh-glass-3), var(--sh-glass-2)); } }
@media (prefers-reduced-motion: no-preference) {
.sh-scape__hills { animation: sc-hills-in 1.6s .1s var(--sh-ease) both; }
.sh-scape__sun { animation: sc-sun-in 2.2s .2s var(--sh-ease) both; }
.sh-hero__crest { animation: sh-float-in 1s .45s var(--sh-ease) both; }
.sh-hero--scape .sh-hero__panel { animation: sh-float-in 1s .6s var(--sh-ease) both; }
.sh-facts--bar { animation: sh-float-in 1s .75s var(--sh-ease) both; }
.sh-scape__birds { animation: sh-drift 16s ease-in-out infinite; }
}
@keyframes sc-hills-in { from { transform: translateY(40px); } to { transform: none; } }
@keyframes sc-sun-in { from { transform: translateY(70px); opacity: .3; } to { transform: none; opacity: 1; } }
@supports (animation-timeline: scroll()) {
@media (prefers-reduced-motion: no-preference) {
.sc-l { animation: sc-depth linear both; animation-timeline: scroll(root); animation-range: 0 100vh; }
.sc-l1 { --sc-d: 70px; } .sc-l2 { --sc-d: 48px; } .sc-l3 { --sc-d: 28px; } .sc-l4 { --sc-d: 12px; }
}
}
@keyframes sc-depth { to { transform: translateY(var(--sc-d, 0)); } }
@media (max-width: 1023px) {
.sh-hero--scape { min-height: 0; }
.sh-hero--scape .sh-hero__grid { grid-template-columns: 1fr; gap: 2rem; }
.sh-hero__stack { justify-items: start; padding-top: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); align-items: start; }
.sh-hero--scape .sh-hero__panel { margin-right: 0; width: 100%; }
.sh-hero__crest { max-width: none; width: 100%; }
.sh-scape__hills { height: 24rem; }
.sh-scape__sun { top: auto; bottom: 19rem; right: 10%; }
}
@media (max-width: 640px) {
.sh-hero--scape .sh-hero__title { font-size: clamp(2.3rem, 10.5vw, 2.9rem); }
.sh-scape__hills { height: 20rem; }
.sh-scape__sun { bottom: 15rem; width: 7rem; }
.sh-scape__birds { display: none; }
.sh-facts--bar { grid-template-columns: 1fr 1fr; }
.sh-facts--bar div:nth-child(odd) { border-left: 0; }
.sh-facts--bar div:nth-child(n+3) { border-top: 1px solid var(--sh-line); }
.sh-facts--bar div { padding: .85rem .9rem; }
}
.sh-section--intro { padding-top: clamp(3.5rem, 7vw, 5.5rem); }
.sh-section--intro .sh-display { font-size: clamp(2.2rem, 4.6vw, 3.7rem); }
.sh-section--intro .sh-intro__body > p { position: relative; padding-left: 1.4rem; font-size: clamp(1.12rem, 1.5vw, 1.3rem); }
.sh-section--intro .sh-intro__body > p::before { content: ""; position: absolute; left: 0; top: .35rem; bottom: .35rem; width: 3px; border-radius: 3px; background: linear-gradient(180deg, var(--sh-gold), var(--sh-sky)); }
.sh-section--intro .sh-intro { align-items: end; }
.sh-contours { position: relative; isolation: isolate; overflow: clip; }
.sh-contours::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
background:
repeating-radial-gradient(ellipse 58% 42% at 88% 14%, transparent 0 25px, var(--sh-contour) 25px 26px),
repeating-radial-gradient(ellipse 46% 36% at 6% 96%, transparent 0 21px, var(--sh-contour) 21px 22px);
-webkit-mask-image: linear-gradient(180deg, #000, rgba(0, 0, 0, .35) 60%, #000); mask-image: linear-gradient(180deg, #000, rgba(0, 0, 0, .35) 60%, #000);
}
.sh-journey { gap: 1.1rem; }
.sh-journey::before { top: 2.45rem; left: 2rem; right: 2rem; height: 2px; opacity: .8; }
.sh-journey li { padding: 4.6rem 1.35rem 1.5rem; border-radius: 24px; background: var(--sh-surface); box-shadow: var(--sh-glass-edge), var(--sh-glass-drop); transition: transform .35s var(--sh-ease), box-shadow .35s var(--sh-ease); }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.sh-journey li { background: linear-gradient(160deg, var(--sh-glass-3), var(--sh-glass-1)); -webkit-backdrop-filter: blur(16px) saturate(1.6); backdrop-filter: blur(16px) saturate(1.6); }
}
.sh-journey li:hover { transform: translateY(-4px); box-shadow: var(--sh-glass-edge), var(--sh-glass-drop-hi); }
.sh-journey__step { top: 1.15rem; left: 1.3rem; box-shadow: 0 0 0 5px rgba(212, 168, 67, .16), 0 6px 14px -6px rgba(15, 35, 66, .4); }
.sh-journey__classes { font-family: var(--font-heading); font-size: clamp(1.35rem, 2vw, 1.65rem); font-weight: 600; letter-spacing: -.02em; text-transform: none; color: var(--sh-gold-text); }
.sh-journey h3 { font-size: 1.12rem; margin-top: .2rem; }
@media (max-width: 900px) {
.sh-journey { gap: .9rem; }
.sh-journey::before { left: 2.6rem; top: 2rem; bottom: 2rem; }
.sh-journey li { padding: 1.2rem 1.25rem 1.3rem 4.6rem; }
.sh-journey__step { top: 1.2rem; left: 1.3rem; }
}
.sh-fac__item { box-shadow: var(--sh-glass-drop-hi); transition: transform .45s var(--sh-ease), box-shadow .45s var(--sh-ease); }
.sh-fac__item:hover { transform: translateY(-4px); }
.sh-fac__media:not(.has-photo)::after { content: ""; position: absolute; inset: 0; pointer-events: none;
background: repeating-radial-gradient(ellipse 70% 55% at 85% 10%, transparent 0 22px, rgba(255, 255, 255, .09) 22px 23px);
-webkit-mask-image: linear-gradient(200deg, #000, transparent 70%); mask-image: linear-gradient(200deg, #000, transparent 70%); }
.sh-fac__art { -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 18px 34px -16px rgba(0, 0, 0, .45); }
@media (prefers-reduced-motion: no-preference) {
.sh-fac__art { transition: transform .6s var(--sh-ease); }
.sh-fac__item:hover .sh-fac__art { transform: translateY(-6px) rotate(-4deg); }
}
.sh-streams-layout { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.sh-streams-layout .sh-head { margin: 0; position: sticky; top: 8.5rem; }
.sh-streams-layout .sh-link { margin-top: 1.75rem; }
.sh-section--streams .sh-streams { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.sh-stream { position: relative; overflow: hidden; border: 0; padding: 1.6rem 1.5rem 1.8rem;
background: radial-gradient(16rem 12rem at 100% 0%, var(--st-glow, transparent), transparent 70%), var(--sh-surface);
box-shadow: var(--sh-glass-edge), var(--sh-glass-drop); }
.sh-stream--1 { --st-glow: rgba(62, 124, 196, .2); --st-ico: #2D62A3; --st-ico-bg: rgba(62, 124, 196, .13); }
.sh-stream--2 { --st-glow: rgba(40, 150, 105, .18); --st-ico: #19734F; --st-ico-bg: rgba(40, 150, 105, .13); }
.sh-stream--3 { --st-glow: rgba(212, 168, 67, .26); --st-ico: #8A6414; --st-ico-bg: rgba(212, 168, 67, .18); }
.sh-stream--4 { --st-glow: rgba(124, 108, 246, .18); --st-ico: #5847C9; --st-ico-bg: rgba(124, 108, 246, .13); }
.sh-stream__icon { color: var(--st-ico, var(--sh-sky-deep)); background: var(--st-ico-bg, var(--sh-sky-soft)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6); }
.sh-stream__num { position: absolute; right: 1.3rem; top: 1rem; font-family: var(--font-heading); font-weight: 600; font-size: 2.8rem; line-height: 1; letter-spacing: -.04em;
color: transparent; -webkit-text-stroke: 1px rgba(15, 35, 66, .16); }
:root[data-theme="dark"] .sh-stream__num { -webkit-text-stroke-color: rgba(255, 255, 255, .16); }
:root[data-theme="dark"] .sh-stream { --st-ico: #CFE0F8; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .sh-stream__num { -webkit-text-stroke-color: rgba(255, 255, 255, .16); }
:root:not([data-theme="light"]) .sh-stream { --st-ico: #CFE0F8; }
}
@media (max-width: 1023px) {
.sh-streams-layout { grid-template-columns: 1fr; }
.sh-streams-layout .sh-head { position: static; }
}
@media (max-width: 560px) { .sh-section--streams .sh-streams { grid-template-columns: 1fr; } }
.sh-admit { padding-top: calc(clamp(4.5rem, 9vw, 7rem) + clamp(1.5rem, 4vw, 3.5rem)); }
.sh-ridge { position: absolute; top: -1px; left: 0; width: 100%; height: clamp(36px, 5.6vw, 90px); display: block; fill: var(--ridge-sky, var(--sh-soft)); pointer-events: none; }
.sh-admit__light { background:
radial-gradient(42rem 28rem at 88% 14%, rgba(212, 168, 67, .32), transparent 62%),
radial-gradient(44rem 32rem at 0% 100%, rgba(62, 124, 196, .4), transparent 62%),
radial-gradient(24rem 18rem at 60% 60%, rgba(124, 108, 246, .14), transparent 70%); }
.sh-admit__card { border-radius: 26px; background: linear-gradient(160deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .04)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), inset 0 0 0 1px rgba(255, 255, 255, .1), 0 40px 80px -36px rgba(0, 0, 0, .8), 0 0 60px -30px rgba(212, 168, 67, .5); }
.sh-steps li::before { background: rgba(235, 208, 138, .08); box-shadow: 0 0 18px -6px rgba(235, 208, 138, .6); }
.sh-section--visit { position: relative; isolation: isolate; overflow: clip; }
.sh-section--visit::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
background: radial-gradient(36rem 26rem at 90% 40%, rgba(62, 124, 196, .12), transparent 65%), radial-gradient(30rem 22rem at 0% 90%, rgba(212, 168, 67, .12), transparent 65%); }
.sh-visit__list { border: 0; box-shadow: var(--sh-glass-edge), var(--sh-glass-drop-hi); }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.sh-visit__list { background: linear-gradient(160deg, var(--sh-glass-3), var(--sh-glass-2)); -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6); }
}
.site-footer { position: relative; }
.sh-ridge--footer { --ridge-sky: var(--sh-bg); }
.site-footer:has(.sh-ridge--footer) { padding-top: calc(4rem + clamp(1.5rem, 4vw, 3.5rem)); }
@media (prefers-reduced-motion: reduce) {
.sh-journey li:hover, .sh-fac__item:hover { transform: none; }
}
@media (max-width: 1023px) { .sh-scape__birds { left: auto; right: 6%; top: 4%; } }
@media (max-width: 400px) {
.site-logo__name { font-size: 1rem; }
.site-logo__img { width: 40px; height: 40px; }
.site-header__inner { gap: .5rem; }
}
