/* index-Dila6NAj.css */
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.resize{resize:both}}:root{--navy:#344261;--deep:#1e2d4d;--yellow:#f5ad21;--red:#b82b37;--cream:#f7f1df;--ink:#242936;--mint:#71c9aa;--pink:#ef8294;--white:#fffdf7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{z-index:50;color:#fff;background:linear-gradient(#21304f99,#0000);justify-content:space-between;align-items:center;height:82px;padding:0 clamp(20px,5vw,76px);transition:all .35s;display:flex;position:fixed;top:0;left:0;right:0}.site-header.is-scrolled{height:68px;color:var(--deep);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f1dff0;box-shadow:0 8px 30px #1e2d4d15}.brand{letter-spacing:.08em;align-items:center;gap:10px;font-weight:900;line-height:.82;display:flex}.brand-star{background:var(--yellow);width:37px;height:37px;color:var(--red);border-radius:50%;place-items:center;font-size:20px;display:grid;transform:rotate(-9deg)}.brand small{letter-spacing:.32em;margin-top:7px;font-size:8px;display:block}.site-header nav{align-items:center;gap:30px;font-size:13px;font-weight:700;display:flex}.site-header nav a{position:relative}.site-header nav a:not(.nav-cta):after{content:"";background:var(--yellow);height:2px;transition:all .25s;position:absolute;bottom:-6px;left:0;right:100%}.site-header nav a:hover:after{right:0}.nav-cta{background:var(--yellow);color:var(--deep);border-radius:99px;padding:12px 18px}.menu-button{background:0 0;border:0;width:40px;height:40px;display:none}.menu-button span{background:currentColor;height:2px;margin:7px;display:block}.hero{color:#fff;background:var(--deep);height:min(920px,100svh);min-height:700px;position:relative;overflow:hidden}.hero-photo{background:linear-gradient(90deg,var(--deep) 0%,transparent 38%),linear-gradient(0deg,#1e2d4db5,transparent 48%),url(/images/source-puzzle.webp) center/cover;animation:16s ease-in-out infinite alternate heroDrift;position:absolute;inset:-9% 0 0 38%}.hero-sun{background:var(--yellow);mix-blend-mode:screen;opacity:.22;filter:blur(2px);border-radius:50%;width:55vw;min-width:650px;height:55vw;min-height:650px;position:absolute;top:-25vw;right:-21vw}.hero-copy{z-index:2;width:min(750px,65vw);padding:clamp(150px,20vh,210px) 7vw 120px;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.22em;margin:0 0 22px;font-size:12px;font-weight:800}.eyebrow.red{color:var(--red)}h1,h2{letter-spacing:-.055em;margin:0;font-family:Georgia,Times New Roman,serif;font-weight:400;line-height:.9}h1{font-size:clamp(65px,8.3vw,132px)}h1 em,h2 em{color:var(--yellow);font-weight:400}.intro{color:#ffffffdf;max-width:590px;margin:30px 0;font-size:clamp(16px,1.4vw,21px);line-height:1.6}.hero-actions{align-items:center;gap:28px;display:flex}.button{border-radius:999px;align-items:center;gap:20px;padding:16px 22px;font-size:13px;font-weight:800;display:inline-flex}.button span{font-size:20px}.button.primary{background:var(--red)}.text-link{font-size:13px;font-weight:800}.hero-badge{z-index:3;background:var(--mint);width:142px;height:142px;color:var(--deep);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;bottom:13%;right:6vw;transform:rotate(8deg);box-shadow:0 15px 40px #14203b44}.hero-badge b{font-family:Georgia,serif;font-size:38px}.hero-badge span{text-align:center;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:800}.spark{z-index:2;color:var(--yellow);animation:3s infinite twinkle;position:absolute}.s1{font-size:30px;top:20%;left:47%}.s2{font-size:18px;animation-delay:1s;top:35%;right:10%}.s3{font-size:20px;animation-delay:1.8s;bottom:25%;left:55%}.wave{border-radius:50% 50% 0 0;height:90px;position:absolute;bottom:-46px;left:-5%;right:-5%}.cream-wave{background:var(--cream)}.section-pad{padding:clamp(90px,11vw,160px) clamp(24px,7vw,110px)}.story{grid-template-columns:1.15fr .85fr;align-items:center;gap:8vw;min-height:740px;display:grid;position:relative}.section-number{color:#3442610b;font-family:Georgia,serif;font-size:180px;position:absolute;top:12%;right:7%}.story h2,.learning h2,.curriculum h2,.voices h2,.admissions h2{font-size:clamp(50px,6.3vw,94px)}.story h2 em{color:var(--red)}.story-copy{max-width:530px;font-size:17px;line-height:1.75}.story-copy p+p{margin-top:26px}.orbit{text-transform:uppercase;letter-spacing:.15em;border:1px solid #34426155;border-radius:50%;place-items:center;width:112px;height:112px;font-size:11px;font-weight:800;display:grid;position:absolute}.orbit:after{content:"★";color:var(--red);position:absolute;top:50%;right:-5px}.orbit-one{animation:5s ease-in-out infinite float;bottom:8%;right:5%}.orbit-two{width:80px;height:80px;animation:4s ease-in-out infinite reverse float;top:13%;left:5%}.learning{background:var(--navy);color:#fff;position:relative}.learning-head{grid-template-columns:1.4fr .6fr;align-items:end;gap:50px;margin-bottom:80px;display:grid}.learning-head>p{color:#fffbd9;font-size:17px;line-height:1.7}.learning-grid{border-top:1px solid #fff4;grid-template-columns:repeat(4,1fr);display:grid}.learning-card{border-right:1px solid #fff4;min-height:320px;padding:32px 24px;transition:all .35s;position:relative}.learning-card:first-child{border-left:1px solid #fff4}.learning-card>span{color:var(--yellow);font-family:Georgia,serif;font-size:14px}.learning-card h3{margin:80px 0 18px;font:400 36px Georgia,serif}.learning-card p{color:#ffffffbc;font-size:14px;line-height:1.55}.learning-card i{font-size:25px;font-style:normal;transition:all .3s;position:absolute;bottom:20px;right:22px}.learning-card:hover{background:var(--yellow);color:var(--deep);transform:translateY(-12px)}.learning-card:hover p{color:var(--deep)}.learning-card:hover>span{color:var(--red)}.learning-card:hover i{transform:rotate(45deg)}.marquee{background:var(--red);color:#fff;z-index:3;margin:-4px -10px;padding:21px 0;position:relative;overflow:hidden;transform:rotate(-1.5deg)}.marquee div{letter-spacing:.18em;white-space:nowrap;font:700 15px Georgia,serif;animation:24s linear infinite marquee}.moments{background:#e9c8c1;grid-template-columns:34vw 1fr;gap:5vw;padding:130px 6vw 140px;display:grid;position:relative}.moments-sticky{height:max-content;position:sticky;top:130px}.moments h2{letter-spacing:-.05em;font-family:Georgia,serif;font-size:clamp(48px,5.4vw,82px);font-weight:400;line-height:.92}.moments h2 em{color:var(--red)}.moments-sticky>p:last-child{margin-top:28px;font-size:15px}.photo-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:50px 24px;display:grid}.photo-card{background:var(--white);margin:0;padding:10px 10px 17px;transition:all .4s;transform:rotate(-2deg);box-shadow:0 18px 45px #703c3c22}.photo-card:nth-child(4n+2){transform:translateY(60px)rotate(2deg)}.photo-card:nth-child(4n+3){transform:rotate(1.5deg)}.photo-card:nth-child(4n){transform:translateY(60px)rotate(-1deg)}.photo-card:hover{z-index:2;transform:translateY(-8px)rotate(0)scale(1.02)}.photo-card img{aspect-ratio:4/5;object-fit:cover;width:100%;display:block}.photo-card figcaption{flex-direction:column;gap:4px;padding:13px 5px 0;display:flex}.photo-card b{font:400 20px Georgia,serif}.photo-card span{color:#5d5f66;font-size:11px}.curriculum{background:var(--yellow);position:relative}.section-number.light{color:#fff3}.curriculum h2 em{color:var(--red)}.subject-row{grid-template-columns:repeat(4,1fr);gap:15px;margin:80px 0 60px;display:grid}.subject{border-top:2px solid var(--deep);min-height:170px;padding:22px 5px}.subject span{color:var(--red);font:400 42px Georgia,serif}.subject h3{margin-top:38px;font:400 22px Georgia,serif}.skills{flex-wrap:wrap;gap:10px;display:flex}.skills span{border:1px solid var(--deep);text-transform:uppercase;letter-spacing:.08em;border-radius:99px;padding:11px 17px;font-size:12px;font-weight:800}.skills span:nth-child(2n){background:var(--deep);color:#fff}.voices{background:var(--cream);grid-template-columns:.8fr 1.2fr;gap:7vw;display:grid}.voices-intro{height:max-content;position:sticky;top:130px}.voices h2 em{color:var(--red)}.quote-mark{color:var(--yellow);height:120px;font:180px/1 Georgia,serif}.voice-track{gap:25px;display:grid}.voice-track blockquote{background:#fff;border:1px solid #34426118;border-radius:28px;margin:0;padding:42px}.voice-track blockquote:nth-child(2n){background:var(--navy);color:#fff;transform:translate(-25px)}.voice-track blockquote p{margin:0 0 28px;font:400 clamp(20px,2vw,29px)/1.45 Georgia,serif}.voice-track footer{text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;font-size:11px;display:flex}.voice-track footer span{color:var(--red)}.admissions{background:var(--red);color:#fff;grid-template-columns:1fr 1fr;min-height:730px;display:grid}.admission-photo{background:url(/images/craft-creativity-pulses.webp) 50%/cover fixed}.admission-copy{flex-direction:column;justify-content:center;padding:clamp(80px,10vw,150px) 7vw;display:flex}.admission-copy h2{font-size:clamp(46px,5vw,76px)}.admission-copy h2 em{color:var(--yellow)}.admission-copy>p:not(.eyebrow){color:#fffde0;max-width:580px;line-height:1.7}.class-chips{flex-wrap:wrap;gap:8px;margin:35px 0 20px;display:flex}.class-chips span{border:1px solid #fff8;border-radius:99px;padding:10px 13px;font-size:11px;font-weight:800}.light-button{background:var(--yellow);color:var(--deep);align-self:flex-start;margin-top:25px}.footer{background:var(--deep);color:#fff;grid-template-columns:1fr 1fr 1fr;align-items:start;gap:40px;padding:65px 7vw 25px;display:grid}.footer>p{margin:8px 0;font:400 27px Georgia,serif}.footer>div{gap:10px;font-size:13px;display:grid}.footer>small{color:#fff8;border-top:1px solid #fff3;grid-column:1/-1;padding-top:20px}.footer-brand{width:max-content}@keyframes heroDrift{to{transform:scale(1.07)translate(-1.5%,2%)}}@keyframes twinkle{50%{opacity:.45;transform:scale(.4)rotate(90deg)}}@keyframes float{50%{transform:translateY(-16px)rotate(6deg)}}@keyframes marquee{to{transform:translate(-50%)}}.reveal{animation:1s .15s both reveal}@keyframes reveal{0%{opacity:0;transform:translateY(30px)}}@supports (animation-timeline:view()){.photo-card{animation:linear both cardReveal;animation-timeline:view();animation-range:entry 5% cover 35%}@keyframes cardReveal{0%{opacity:0;translate:0 80px;rotate:-4deg}to{opacity:1;translate:0;rotate:none}}}@media (width<=900px){.site-header{height:68px;padding:0 20px}.menu-button{z-index:3;color:inherit;display:block;position:relative}.site-header nav{background:var(--cream);color:var(--deep);flex-direction:column;justify-content:center;font:400 34px Georgia,serif;transition:all .35s;display:flex;position:fixed;inset:0;transform:translate(100%)}.site-header nav.open{transform:none}.nav-cta{font:800 13px Arial,sans-serif}.hero{height:820px}.hero-photo{background:linear-gradient(90deg,#1e2d4de8,#1e2d4d33),linear-gradient(#0000,#1e2d4db5),url(/images/source-puzzle.webp) 62%/cover;inset:0}.hero-copy{width:auto;padding:150px 24px 100px}.hero-badge{width:108px;height:108px;bottom:9%;right:24px}.hero-badge b{font-size:28px}.hero-sun{top:-30vw;right:-85vw}.story,.learning-head,.voices{grid-template-columns:1fr}.story{padding-top:120px}.story-title{margin-top:50px}.learning-grid{grid-template-columns:1fr 1fr}.learning-card{min-height:270px}.moments{padding:100px 20px;display:block}.moments-sticky{margin-bottom:60px;position:relative;top:0}.photo-flow{gap:36px 12px}.photo-card:nth-child(n){transform:none}.subject-row{grid-template-columns:1fr 1fr}.voices-intro{position:relative;top:0}.voice-track blockquote:nth-child(2n){transform:none}.admissions{grid-template-columns:1fr}.admission-photo{background-attachment:scroll;min-height:470px}.footer{grid-template-columns:1fr 1fr}.footer>p{grid-column:1/-1}}@media (width<=560px){.hero{height:100svh;min-height:720px}.hero-copy{padding-top:135px}.hero-copy h1{font-size:60px}.intro{font-size:15px;line-height:1.55}.hero-actions{flex-direction:column;align-items:flex-start;gap:16px}.hero-badge{bottom:6%}.section-pad{padding:90px 22px}.story{min-height:auto;display:block}.story h2,.learning h2,.curriculum h2,.voices h2{font-size:48px}.story-copy{margin-top:45px;font-size:15px}.orbit{display:none}.learning-head{margin-bottom:50px}.learning-grid{grid-template-columns:1fr}.learning-card,.learning-card:first-child{border-bottom:1px solid #fff4;border-left:0;border-right:0;min-height:220px}.learning-card h3{margin-top:45px}.moments{padding-top:90px}.photo-flow{grid-template-columns:1fr 1fr}.photo-card{padding:7px 7px 12px}.photo-card img{aspect-ratio:4/5}.photo-card b{font-size:15px}.photo-card span{font-size:9px}.subject-row{grid-template-columns:1fr;margin:50px 0 40px}.subject{grid-template-columns:70px 1fr;align-items:center;min-height:auto;display:grid}.subject h3{margin:0}.voices{padding-left:20px;padding-right:20px}.voice-track blockquote{padding:28px}.admission-photo{min-height:360px}.admission-copy{padding:75px 24px}.footer{grid-template-columns:1fr}.footer>p{font-size:24px}.footer>small{grid-column:auto}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.admission-photo{background-attachment:scroll}}.brand{align-items:center;display:flex}.footer-brand{background:#f7f1dff5;border-radius:12px;padding:4px 10px;box-shadow:0 6px 18px #101a2e2e}.site-header .brand{box-shadow:none;background:0 0;border-radius:0;padding:0}.brand img{object-fit:contain;object-position:left center;width:150px;height:64px;display:block}.site-header:not(.is-scrolled) .brand img{filter:drop-shadow(0 2px 5px #0005)}.hero-copy{z-index:3}.intro{color:#fff;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#1e2d4dc7;border-radius:16px;max-width:620px;padding:12px 16px;box-shadow:0 12px 35px #14203b20}.hero-badge{z-index:4;width:190px;height:190px;bottom:11%;right:5vw}.hero-badge b{font-size:52px}.hero-badge span{font-size:13px}.star-field{z-index:2;pointer-events:none;position:absolute;inset:0}.star-field i{color:#fff5c7;opacity:.75;font-size:clamp(10px,1.1vw,17px);font-style:normal;animation:3.8s ease-in-out infinite starDance;position:absolute}.star-field i:nth-child(3n){color:var(--yellow);font-size:24px}.star-field i:nth-child(2n){animation-duration:5.2s}.orbit{width:150px;height:150px}.orbit-two{width:148px;height:148px;top:11%;left:4%}.footer-brand{border-radius:16px;padding:7px 14px}.footer-brand img{filter:drop-shadow(0 2px 6px #0005);width:190px;height:96px}@keyframes starDance{0%,to{opacity:.35;transform:translateY(0)rotate(-10deg)scale(.7)}50%{opacity:1;transform:translateY(-18px)rotate(18deg)scale(1.15)}}@media (width<=900px){.brand img{width:126px;height:54px}.hero-badge{width:142px;height:142px;bottom:7%;right:24px}.hero-badge b{font-size:38px}.hero-badge span{font-size:10px}}@media (width<=560px){.intro{padding:10px 12px}.star-field i:nth-child(n+6){display:none}}.admission-hero{background:var(--deep);color:#fff;height:100svh;min-height:880px;position:relative;overflow:hidden}.admission-hero-photo{background:linear-gradient(90deg,var(--deep),transparent 46%),linear-gradient(0deg,#1e2d4d99,transparent 45%),url(/images/source-sensory.webp) center 78%/cover;animation:16s ease-in-out infinite alternate heroDrift;position:absolute;inset:0 0 0 40%}.admission-hero-copy{z-index:3;width:min(780px,66vw);padding:clamp(165px,20vh,220px) 7vw 100px;position:relative}.admission-hero h1{font-size:clamp(64px,7.6vw,120px)}.admission-hero-copy>p:not(.eyebrow){max-width:600px;margin:30px 0;font-size:clamp(16px,1.4vw,21px);line-height:1.65}.admission-button{background:var(--yellow);color:var(--deep)}.admission-roundel{z-index:4;background:var(--red);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:180px;height:180px;display:flex;position:absolute;bottom:13%;right:7vw;transform:rotate(8deg);box-shadow:0 18px 40px #121b30aa}.admission-roundel span,.admission-roundel small{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:800}.admission-roundel b{margin:5px;font:400 42px Georgia,serif}.admission-stars{z-index:2;pointer-events:none;position:absolute;inset:0}.admission-stars i{color:var(--yellow);font-size:20px;font-style:normal;animation:4s ease-in-out infinite starDance;position:absolute}.admission-wave{z-index:5;background:var(--cream);border-radius:50% 50% 0 0;height:95px;position:absolute;bottom:-48px;left:-5%;right:-5%}.admission-intro{grid-template-columns:1.2fr .8fr;align-items:end;gap:8vw;min-height:560px;display:grid}.admission-intro h2,.class-options h2,.admission-steps h2,.documents-copy h2,.fees h2,.visit-cta h2{font-size:clamp(52px,6.2vw,92px)}.admission-intro h2 em,.admission-steps h2 em,.fees h2 em{color:var(--red)}.admission-intro>p{margin:0;font:400 clamp(20px,2vw,29px)/1.5 Georgia,serif}.class-options{background:var(--navy);color:#fff}.class-option-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px;display:grid}.class-option-grid article{color:var(--deep);border-radius:220px 220px 24px 24px;flex-direction:column;min-height:440px;padding:50px 38px 38px;display:flex;position:relative}.class-option-grid .mint{background:var(--mint)}.class-option-grid .yellow{background:var(--yellow);transform:translateY(28px)}.class-option-grid .pink{background:var(--pink)}.class-option-grid article>span{align-self:flex-end;font:400 17px Georgia,serif}.class-option-grid article>p{text-transform:uppercase;letter-spacing:.2em;margin:auto 0 5px;font-size:11px;font-weight:800}.class-option-grid h3{letter-spacing:-.05em;margin:0 0 55px;font:400 clamp(42px,4vw,64px) Georgia,serif}.class-option-grid article>div{border-top:1px solid #1e2d4d66;padding-top:17px;font-size:15px}.class-option-grid article>div b{text-transform:uppercase;letter-spacing:.13em;margin-bottom:6px;font-size:9px;display:block}.admission-steps{grid-template-columns:.9fr 1.1fr;gap:9vw;display:grid}.steps-title{height:max-content;position:sticky;top:130px}.admission-steps ol{margin:0;padding:0;list-style:none}.admission-steps li{border-bottom:1px solid #34426133;grid-template-columns:68px 1fr;gap:24px;padding:32px 0;display:grid}.admission-steps li>span{border:1px solid var(--red);width:58px;height:58px;color:var(--red);border-radius:50%;place-items:center;font:400 16px Georgia,serif;display:grid}.admission-steps h3{margin:0 0 10px;font:400 31px Georgia,serif}.admission-steps li p{color:#555a64;max-width:520px;margin:0;line-height:1.6}.documents-section{background:var(--yellow);grid-template-columns:1fr 1fr;min-height:750px;display:grid}.documents-photo{background:url(/images/craft-creativity-pulses.webp) 50%/cover}.documents-copy{flex-direction:column;justify-content:center;padding:clamp(80px,10vw,150px) 7vw;display:flex}.documents-copy h2 em{color:var(--red)}.documents-copy ul{margin:45px 0 25px;padding:0;list-style:none}.documents-copy li{border-top:1px solid #1e2d4d55;grid-template-columns:40px 1fr;align-items:center;padding:18px 0;font-weight:800;display:grid}.documents-copy li span{color:var(--red);font-size:20px}.documents-copy li small{margin-top:5px;font-weight:400;display:block}.document-note{max-width:520px;font-size:12px;line-height:1.6}.documents-copy li small{white-space:nowrap}.fees{background:var(--cream)}.fees-head{grid-template-columns:1.2fr .8fr;align-items:end;gap:70px;display:grid}.fees-head>p{margin:0;line-height:1.7}.fee-table{border-top:2px solid var(--deep);margin-top:65px}.fee-row{border-bottom:1px solid #34426155;grid-template-columns:1.2fr repeat(3,1fr);display:grid}.fee-row span{padding:26px 12px;font:400 23px Georgia,serif}.fee-header span{text-transform:uppercase;letter-spacing:.15em;padding-top:17px;padding-bottom:17px;font:800 10px Arial,sans-serif}.fee-row:not(.fee-header) span:first-child{color:var(--red);font-size:30px}.fee-notes{grid-template-columns:repeat(3,1fr);gap:15px;margin:35px 0;display:grid}.fee-notes article{background:#fff;border-radius:20px;padding:25px}.fee-notes b{color:var(--red);font:400 38px Georgia,serif}.fee-notes p{margin:8px 0 0;font-size:13px;line-height:1.5}.fine-print{color:#63666c;font-size:11px;line-height:1.6}.admission-notes{background:var(--deep);color:#fff;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.admission-notes article{border-left:1px solid #fff3;padding:25px 40px}.admission-notes article:first-child{border-left:0}.admission-notes article>span{background:var(--yellow);width:75px;height:75px;color:var(--red);border-radius:50%;place-items:center;font:700 20px Georgia,serif;display:grid}.admission-notes article:nth-child(2)>span{background:var(--pink)}.admission-notes article:nth-child(3)>span{background:var(--mint);color:var(--deep)}.admission-notes h3{margin:24px 0 10px;font:400 28px Georgia,serif}.admission-notes p{color:#ffffffc9;font-size:13px;line-height:1.65}.visit-cta{background:var(--red);color:#fff;grid-template-columns:1fr 1fr;min-height:720px;display:grid}.visit-photo{background:url(/images/joy-every-discovery.webp) 50%/cover fixed}.visit-cta>div:last-child{flex-direction:column;justify-content:center;padding:clamp(80px,10vw,150px) 7vw;display:flex}.visit-cta h2 em{color:var(--yellow)}.visit-cta>div>p:not(.eyebrow){max-width:540px;line-height:1.95}.visit-cta .button{align-self:flex-start}@media (width<=900px){.admission-hero{min-height:820px}.admission-hero-photo{background:linear-gradient(90deg,#1e2d4de8,#1e2d4d33),linear-gradient(#0000,#1e2d4dba),url(/images/source-sensory.webp) 60% 82%/cover;inset:0}.admission-hero-copy{width:auto;padding:150px 24px 110px}.admission-roundel{width:135px;height:135px;bottom:7%;right:25px}.admission-roundel b{font-size:30px}.admission-intro,.admission-steps,.fees-head{grid-template-columns:1fr}.class-option-grid{gap:10px}.class-option-grid article{min-height:390px;padding:40px 22px 28px}.documents-section,.visit-cta{grid-template-columns:1fr}.documents-photo,.visit-photo{background-attachment:scroll;min-height:480px}.steps-title{position:relative;top:0}.admission-notes{grid-template-columns:1fr}.admission-notes article{border-top:1px solid #fff3;border-left:0}.admission-notes article:first-child{border-top:0}}@media (width<=600px){.admission-hero h1{font-size:57px}.admission-hero-copy>p:not(.eyebrow){font-size:15px}.admission-intro{min-height:auto}.admission-intro>p{margin-top:30px;font-size:19px}.class-option-grid{grid-template-columns:1fr}.class-option-grid article{border-radius:180px 180px 22px 22px;min-height:340px}.class-option-grid .yellow{transform:none}.admission-steps li{grid-template-columns:52px 1fr;gap:15px}.admission-steps li>span{width:46px;height:46px}.documents-photo,.visit-photo{min-height:350px}.fee-header{display:none}.fee-row{grid-template-columns:1fr 1fr;padding:16px 0}.fee-row span{padding:13px 6px;font-size:20px}.fee-row span:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.12em;color:#676a70;margin-bottom:5px;font:800 8px Arial,sans-serif;display:block}.fee-row:not(.fee-header) span:first-child{font-size:26px}.fee-notes{grid-template-columns:1fr}.visit-cta h2,.documents-copy h2,.fees h2,.admission-steps h2,.admission-intro h2{font-size:48px}}.story,.learning,.curriculum,.voices,.admission-intro,.class-options,.admission-steps,.fees{position:relative;overflow:hidden}.story>:not(.space-scene):not(.scroll-shooting-star),.learning>:not(.space-scene),.curriculum>:not(.space-scene),.voices>:not(.space-scene),.admission-intro>:not(.space-scene),.class-options>:not(.space-scene),.admission-steps>:not(.space-scene),.fees>:not(.space-scene){z-index:2;position:relative}.scroll-shooting-star{--shoot-progress:0;z-index:4;pointer-events:none;width:0;height:0;transform:translateX(calc(105vw - (var(--shoot-progress) * 125vw))) translateY(calc(var(--shoot-progress) * 80px));will-change:transform;position:absolute;top:20%;left:0}.scroll-shooting-star i{background:var(--yellow);border-radius:50%;width:44px;height:44px;position:absolute;top:0;left:0;box-shadow:0 0 0 10px #f9b72f30,0 0 38px 12px #f9b72faa}.scroll-shooting-star i:before{content:"";background:linear-gradient(90deg,transparent 0,#e9605a88 42%,var(--red) 100%);transform-origin:100%;filter:drop-shadow(0 0 8px #e9605a88);border-radius:999px;width:260px;height:16px;position:absolute;top:13px;right:24px;transform:rotate(-8deg)}.scroll-shooting-star i:after{content:"✦";color:#fff9d9;text-align:center;text-shadow:0 0 10px #fff;font-size:42px;line-height:52px;position:absolute;inset:-5px}.space-scene{z-index:1;pointer-events:none;opacity:.88;width:220px;height:220px;animation:7s ease-in-out infinite spaceFloat;position:absolute;top:42px;right:2vw}.space-scene .space-orbit{opacity:.3;border:1.5px solid;border-radius:50%;position:absolute;inset:22px;transform:rotate(-18deg)scaleY(.38)}.admission-steps .space-orbit{display:none}.space-scene .space-body{background:var(--yellow);border-radius:50%;width:78px;height:78px;position:absolute;top:71px;left:71px;box-shadow:inset -16px -12px #dd7c32}.space-scene .space-body:after{content:"";border:8px solid var(--red);border-left-color:#0000;border-right-color:#0000;border-radius:50%;width:104px;height:26px;position:absolute;top:23px;left:-21px;transform:rotate(-12deg)}.space-scene .space-moon{background:var(--mint);transform-origin:86px 16px;border-radius:50%;width:21px;height:21px;animation:5s linear infinite moonOrbit;position:absolute;top:94px;left:24px;box-shadow:inset -5px -3px #31977c}.space-scene .space-rock{background:#a36f61;border-radius:55% 45% 60% 40%;width:13px;height:10px;animation:6s linear infinite asteroidDrift;position:absolute}.space-scene .rock-one{top:40px;right:8px}.space-scene .rock-two{animation-delay:-3s;bottom:34px;left:15px}.space-scene.moon{inset:auto auto 28px 2vw;transform:scale(.85)}.space-scene.moon .space-body{background:#fff4c5;box-shadow:inset -16px -10px #d9c990}.space-scene.moon .space-body:before{content:"";background:#c8b77d;border-radius:50%;width:13px;height:13px;position:absolute;top:20px;left:18px;box-shadow:31px 20px 0 -3px #c8b77d,12px 42px 0 -4px #c8b77d}.space-scene.moon .space-body:after{display:none}.space-scene.rocket{opacity:.72;top:18px;right:2vw}.space-scene.rocket .space-body{background:#ef8294;width:54px;height:54px;top:84px;left:84px;box-shadow:inset -10px -8px #b82b37}.space-scene.rocket .space-body:after{display:none}.space-rocket{color:var(--yellow);filter:drop-shadow(-10px 10px 0 var(--red));font-size:34px;font-style:normal;animation:5s ease-in-out infinite rocketFly;position:absolute;bottom:45px;left:30px;transform:rotate(43deg)}.learning .space-scene,.class-options .space-scene{color:#fff}.voices .space-scene{top:auto;bottom:25px}.fees .space-scene{top:30px}.admission-intro .space-scene{top:24px;right:3vw}.admission-steps .space-scene{inset:auto auto 25px 2vw}@keyframes spaceFloat{0%,to{translate:0;rotate:-2deg}50%{translate:0 -16px;rotate:3deg}}@keyframes moonOrbit{to{rotate:360deg}}@keyframes asteroidDrift{0%{translate:0;rotate:0}50%{translate:-22px 17px;rotate:130deg}to{translate:0;rotate:260deg}}@keyframes rocketFly{0%,to{translate:0}50%{translate:22px -22px}}@media (width<=760px){.space-scene{transform-origin:100% 0;opacity:.55;width:150px;height:150px;top:18px;right:-28px;transform:scale(.65)}.space-scene.moon{bottom:12px;left:-32px}.admission-steps .space-scene{left:-32px}.voices .space-scene{bottom:5px}.scroll-shooting-star{height:120px;top:9%}.scroll-shooting-star i:before{width:120px}}@media (prefers-reduced-motion:reduce){.scroll-shooting-star{display:none}}.cartoon-planet{z-index:1;pointer-events:none;opacity:.9;width:250px;height:200px;animation:7s ease-in-out infinite spaceFloat;position:absolute;bottom:34px;right:1.5vw}.cartoon-planet-body{z-index:3;background:radial-gradient(circle at 32% 28%,#fff4c5 0 8%,var(--mint) 25%,#50a8bc 58%,var(--navy) 100%);border-radius:50%;width:92px;height:92px;position:absolute;top:56px;left:88px;box-shadow:inset -14px -13px #223e6b,0 12px 28px #1e2d4d33}.cartoon-planet-body:after{content:"";border:8px solid #ffffff91;border-color:#ffffff91 #0000;border-radius:50%;position:absolute;inset:20px -2px;transform:rotate(9deg)}.cartoon-ring{z-index:2;border:7px solid var(--yellow);border-left-color:#0000;border-right-color:#0000;border-radius:50%;width:138px;height:34px;position:absolute;top:87px;left:66px;transform:rotate(-8deg)}.cartoon-ring.ring-front{z-index:4;clip-path:inset(50% 0 0)}.cartoon-orbit{border:1px solid #34426138;border-radius:50%;animation:8s linear infinite cartoonOrbit;position:absolute;inset:20px;transform:scaleY(.36)rotate(-8deg)}.cartoon-orbit b{background:var(--pink);border-radius:50%;width:18px;height:18px;position:absolute;top:45%;left:5px;box-shadow:inset -4px -3px #b82b37}.cartoon-orbit.orbit-b{animation-duration:11s;animation-direction:reverse;inset:5px}.cartoon-orbit.orbit-b b{background:var(--yellow);left:auto;right:12px;box-shadow:inset -4px -3px #d57b2c}.cartoon-orbit.orbit-c{animation-duration:6s;inset:38px}.cartoon-orbit.orbit-c b{background:#a5e6d3;width:13px;height:13px;top:-7px;left:58%;box-shadow:inset -3px -2px #31977c}@keyframes cartoonOrbit{to{rotate:360deg}}.admission-gallery{background:var(--cream);grid-template-columns:repeat(2,1fr);gap:14px;padding:14px;display:grid}.admission-gallery figure{border-radius:24px;min-height:440px;margin:0;position:relative;overflow:hidden}.admission-gallery .gallery-wide{grid-column:1/-1;min-height:600px}.admission-gallery img{object-fit:cover;width:100%;height:100%;transition:transform .8s;position:absolute}.admission-gallery figure:hover img{transform:scale(1.035)}.admission-gallery figcaption{z-index:2;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e2d4dde;border-radius:18px;justify-content:space-between;align-items:end;gap:20px;padding:20px 24px;display:flex;position:absolute;bottom:24px;left:24px;right:24px}.admission-gallery figcaption b{font:400 clamp(26px,3vw,42px) Georgia,serif}.admission-gallery figcaption span{letter-spacing:.05em;font-size:12px}.admission-gallery .caption-away-from-faces figcaption{background:#1e2d4dc9;animation:5s ease-in-out infinite captionFloat;top:24px;bottom:auto}@keyframes captionFloat{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@media (width<=760px){.cartoon-planet{transform-origin:100% 100%;opacity:.58;bottom:0;right:-48px;transform:scale(.65)}.scroll-shooting-star{top:15%}.scroll-shooting-star i{width:36px;height:36px}.scroll-shooting-star i:before{width:165px;height:12px}.scroll-shooting-star i:after{font-size:34px;line-height:44px}.admission-gallery{grid-template-columns:1fr;gap:8px;padding:8px}.admission-gallery .gallery-wide{grid-column:auto}.admission-gallery figure,.admission-gallery .gallery-wide{border-radius:18px;min-height:420px}.admission-gallery figcaption{display:block;bottom:14px;left:14px;right:14px}.admission-gallery .caption-away-from-faces figcaption{top:14px;bottom:auto}.admission-gallery figcaption span{margin-top:7px;display:block}}.story .section-number,.curriculum .section-number{z-index:1;white-space:nowrap;font-size:clamp(108px,12vw,180px);line-height:1;top:clamp(38px,8%,82px);left:auto;right:clamp(30px,7vw,110px)}.voices{grid-template-columns:.68fr 1.32fr;align-items:start;gap:5vw}.voice-track{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:20px}.voice-track blockquote{flex-direction:column;min-width:0;padding:clamp(27px,3vw,42px);display:flex}.voice-track blockquote:nth-child(2n){transform:none}.voice-track blockquote p{font-size:clamp(18px,1.55vw,24px);line-height:1.48}.voice-track footer{letter-spacing:.08em;gap:15px;margin-top:auto;font-size:10px}.voice-track footer span{text-align:right}.animated-star-cluster{z-index:1;pointer-events:none;width:260px;height:210px;position:absolute;bottom:45px;right:3vw}.animated-star-cluster i{color:var(--yellow);filter:drop-shadow(0 0 8px #f5ad2166);font-style:normal;animation:3.8s ease-in-out infinite starDance;position:absolute}.animated-star-cluster i:first-child{font-size:25px;top:54%;left:12%}.animated-star-cluster i:nth-child(2){font-size:14px;animation-delay:.4s;top:14%;left:34%}.animated-star-cluster i:nth-child(3){font-size:32px;animation-delay:1.1s;top:62%;left:55%}.animated-star-cluster i:nth-child(4){font-size:18px;animation-delay:1.8s;top:25%;left:80%}.animated-star-cluster i:nth-child(5){font-size:11px;animation-delay:.7s;top:80%;left:72%}.animated-star-cluster i:nth-child(6){font-size:12px;animation-delay:2.2s;top:8%;left:4%}.animated-star-cluster i:nth-child(7){font-size:16px;animation-delay:1.5s;top:37%;left:46%}.animated-star-cluster i:nth-child(8){font-size:10px;animation-delay:2.6s;top:55%;left:92%}.aurora{pointer-events:none;filter:blur(34px);opacity:.62;inset:8% -6% 0 35%;transform:rotate(-8deg);z-index:1!important;position:absolute!important}.aurora i{mix-blend-mode:multiply;border-radius:50%;height:38%;animation:9s ease-in-out infinite alternate auroraFlow;position:absolute;left:0;right:0}.aurora i:first-child{background:linear-gradient(90deg,transparent,var(--mint),transparent);top:8%;transform:skewY(-8deg)}.aurora i:nth-child(2){background:linear-gradient(90deg,transparent,#8ea8ef,var(--pink),transparent);animation-delay:-3s;top:29%;transform:skewY(7deg)}.aurora i:nth-child(3){background:linear-gradient(90deg,transparent,var(--yellow),#b8e4d5,transparent);animation-delay:-6s;top:49%;transform:skewY(-5deg)}@keyframes auroraFlow{0%{translate:-5% 4%;scale:.95 1}to{translate:7% -5%;scale:1.08 1.15}}@media (width<=900px){.voices{grid-template-columns:1fr}.voice-track{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.story .section-number,.curriculum .section-number{font-size:92px;top:28px;right:22px}.voice-track{grid-template-columns:1fr}.animated-star-cluster{transform-origin:100% 100%;opacity:.7;bottom:5px;right:-25px;transform:scale(.72)}.aurora{opacity:.5;inset:34% -20% 0 10%}}

/* home-local.css */
.hero-photo {
  background:
    radial-gradient(circle at 78% 23%, #fff6 0 1.5%, transparent 8%),
    linear-gradient(90deg, var(--deep) 0%, transparent 38%),
    linear-gradient(0deg, #1e2d4db5, transparent 48%),
url("/images/source-puzzle.webp") center / cover;
}

.admission-photo {
  background-image: url("/images/craft-creativity-pulses.webp");
}

@media (min-width: 901px) {
  .voices {
    grid-template-columns: minmax(0, .68fr) minmax(0, 1.32fr);
    align-items: start;
    gap: clamp(48px, 5vw, 100px);
  }

  .voices-intro {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    min-width: 0;
  }

  .voice-track {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    min-width: 0;
  }
}
/* School news is populated from the existing WordPress blog on the live site. */
.site-header nav {
  gap: clamp(13px, 1.55vw, 30px);
}

.school-news {
  background: #fffdf7;
  position: relative;
  overflow: hidden;
}

.school-news::before {
  content: "✦";
  color: var(--yellow);
  font-size: clamp(90px, 13vw, 210px);
  line-height: 1;
  opacity: .12;
  position: absolute;
  top: 12px;
  right: 4vw;
  transform: rotate(12deg);
}

.news-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 40px;
  margin-bottom: 58px;
  position: relative;
  z-index: 1;
}

.news-heading h2 {
  font-size: clamp(52px, 6.2vw, 94px);
}

.news-heading h2 em {
  color: var(--red);
}

.news-all-link {
  border-bottom: 1px solid currentColor;
  padding: 12px 0;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 800;
}

.news-all-link span {
  color: var(--red);
  margin-left: 12px;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  position: relative;
  z-index: 1;
}

.news-grid.is-live {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.news-card {
  background: var(--cream);
  border: 1px solid #34426118;
  border-radius: 24px;
  min-width: 0;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease;
}

.news-card:hover {
  transform: translateY(-9px);
  box-shadow: 0 20px 50px #1e2d4d1c;
}

.news-card > a {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.news-image {
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, var(--navy), var(--mint));
  overflow: hidden;
}

.news-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s ease;
}

.news-card:hover .news-image img {
  transform: scale(1.045);
}

.news-copy {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 25px;
}

.news-copy time {
  color: var(--red);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 10px;
  font-weight: 800;
}

.news-copy h3 {
  margin: 16px 0 14px;
  font: 400 clamp(23px, 2vw, 31px)/1.08 Georgia, serif;
}

.news-copy p {
  color: #575c67;
  margin: 0 0 28px;
  font-size: 13px;
  line-height: 1.6;
}

.news-copy span {
  color: var(--red);
  margin-top: auto;
  font-size: 12px;
  font-weight: 800;
}

@media (max-width: 900px) {
  .news-heading {
    align-items: start;
    flex-direction: column;
  }

  .news-grid,
  .news-grid.is-live {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .news-heading {
    margin-bottom: 38px;
  }

  .news-grid,
  .news-grid.is-live {
    grid-template-columns: 1fr;
  }
}

/* Each Moments card is a class album. Its cover changes to a random teacher upload. */
#moments .photo-flow > a.photo-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

#moments .class-gallery-card {
  cursor: pointer;
}

#moments .class-gallery-card:focus-visible {
  outline: 4px solid var(--gold, #f5ad21);
  outline-offset: 5px;
}

/* mobile-polish.css */
/* Mobile refinements for the faculty and admissions pages. */

/* Prevent decorative artwork and the closed mobile menu from widening the page. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: none;
}

/* The Admissions "Now Open" roundel was intentionally removed. */
.admission-hero .admission-roundel {
  display: none !important;
}

/* V47: the previously named mobile variants are not present on the server.
   Reuse the existing photographs so the hero never becomes an empty navy panel. */
@media (max-width: 760px) {
  #top.hero .hero-photo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-image:
      linear-gradient(180deg, rgba(30, 45, 77, .05) 0 54%, #1e2d4d 100%),
url("/images/source-puzzle.webp") !important;
    background-position: 54% 38% !important;
    background-size: cover !important;
  }

  .admission-hero .admission-hero-photo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-image:
      linear-gradient(180deg, rgba(30, 45, 77, .08) 12%, rgba(30, 45, 77, .58) 66%, #1e2d4d 100%),
url("/images/source-sensory.webp") !important;
    background-position: 66% 34% !important;
    background-size: cover !important;
  }

  /* Remove only the ratio/open badge—not either hero photograph. */
  #top .hero-badge,
  .admission-hero .admission-roundel {
    display: none !important;
  }
}

body,
main,
.site-header {
  position: relative;
  max-width: 100vw;
}

main {
  width: 100%;
  overflow-x: clip;
}

.site-header {
  position: fixed;
  width: 100%;
}

@supports (overflow: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

/* Centre the footer mark within the full footer background on phones. */
@media (max-width: 760px) {
  .footer .footer-brand {
    justify-self: center !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .footer .footer-brand img {
    display: block !important;
    margin: 0 auto !important;
  }
}

/* Full-screen phone navigation. Removing header blur prevents the menu from
   being trapped inside the header's short containing block on mobile Chrome. */
@media (max-width: 900px) {
  html.menu-is-open,
  body.menu-is-open {
    overflow: hidden !important;
  }

  .site-header,
  .site-header.is-scrolled {
    z-index: 500 !important;
    overflow: visible !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  .site-header .brand,
  .site-header .menu-button {
    z-index: 502 !important;
    position: relative !important;
  }

  .menu-is-open .site-header .brand {
    padding: 2px 8px !important;
    background: #f7f1df !important;
    border-radius: 7px !important;
  }

  .site-header .menu-button[aria-expanded="true"] {
    color: #fff !important;
  }

  .site-header nav {
    z-index: 501 !important;
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    padding: 92px 24px 34px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    color: #fff !important;
    background: #17243f !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(100%) !important;
    transition: transform 280ms ease, opacity 180ms ease, visibility 0s linear 280ms !important;
  }

  .site-header nav.open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(0) !important;
    transition: transform 280ms ease, opacity 180ms ease !important;
  }

  .site-header nav a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    min-height: 56px !important;
    padding: 13px 8px !important;
    color: #fff !important;
    border-bottom: 1px solid rgb(255 255 255 / 16%) !important;
    font: 700 20px/1.2 Georgia, "Times New Roman", serif !important;
    letter-spacing: .03em !important;
    text-align: center !important;
    text-transform: none !important;
  }

  .site-header nav a::after {
    display: none !important;
  }

  .site-header nav .nav-cta {
    min-height: 58px !important;
    margin-top: 18px !important;
    padding: 15px 18px !important;
    color: #1e2d4d !important;
    background: #f5ad21 !important;
    border: 1px solid #ffe09a !important;
    border-radius: 8px !important;
    font: 900 12px/1 Arial, sans-serif !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
  }

  .site-header .menu-button[aria-expanded="true"] span:first-child {
    transform: translateY(4.5px) rotate(45deg);
  }

  .site-header .menu-button[aria-expanded="true"] span:last-child {
    transform: translateY(-4.5px) rotate(-45deg);
  }

  .site-header .menu-button span {
    transition: transform 220ms ease;
  }
}

/* Keep the moving planets, but remove the thin orbital guide lines. */
.space-scene .space-orbit {
  display: none !important;
}

/* Let the browser postpone layout and paint work for distant sections. */
.story,
.learning,
.moments,
.curriculum,
.voices,
.admissions,
.admission-intro,
.class-options,
.admission-steps,
.documents-section,
.fees,
.admission-notes,
.admission-gallery,
.visit-cta {
  content-visibility: auto;
  contain-intrinsic-size: 1px 900px;
}

.admission-hero-copy > .eyebrow {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-bottom: 18px;
  padding: 10px 15px;
  color: #1e2d4d;
  background: #f5ad21;
  border: 1px solid #ffe09a;
  border-radius: 999px;
  box-shadow: 0 10px 28px rgb(7 17 38 / 28%);
  letter-spacing: .16em;
}

.admission-hero-copy > .eyebrow::before {
  display: none;
}

.admission-open-highlight {
  position: relative;
  max-width: 640px;
  margin: 28px 0 30px;
  padding: 18px 64px 19px 22px;
  overflow: hidden;
  color: #1e2d4d;
  background: linear-gradient(118deg, #fffdf3, #fff4c5 72%);
  border-left: 6px solid #f5ad21;
  border-radius: 4px 22px 22px 4px;
  box-shadow: 0 16px 34px rgb(7 17 38 / 24%);
}

.admission-open-highlight::after {
  content: "\2726";
  position: absolute;
  top: 50%;
  right: 22px;
  color: #c62c3b;
  font-size: 29px;
  transform: translateY(-50%) rotate(10deg);
}

.admission-open-kicker {
  display: block;
  color: #c62c3b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .18em;
}

.admission-open-highlight p {
  margin: 7px 0 5px;
  font-size: clamp(19px, 1.8vw, 26px);
  line-height: 1.14;
}

.admission-open-highlight strong {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  color: #c62c3b;
}

.admission-open-highlight small {
  display: block;
  max-width: 540px;
  color: #344261;
  font-size: 13px;
  line-height: 1.45;
}

/* Keep every gallery photograph at full opacity; the old scroll reveal faded the final row. */
#moments .photo-card,
#moments .photo-card:nth-child(n) {
  opacity: 1 !important;
  translate: none !important;
  animation: none !important;
  animation-timeline: auto !important;
}

@media (max-width: 600px) {
  /* Keep the complete classroom scene behind the admissions headline on phones. */
  .admission-page .admission-hero {
    height: auto;
    min-height: 940px;
    background: #1e2d4d;
  }

  .admission-page .admission-hero-photo {
    inset: 0 0 auto !important;
    width: 100%;
    height: 75vw;
    max-height: 450px;
    background:
      linear-gradient(180deg, rgb(30 45 77 / 10%) 18%, rgb(30 45 77 / 58%) 58%, #1e2d4d 96%),
url("/images/source-sensory.webp") center top / 100% auto no-repeat;
    background-color: #1e2d4d;
    animation: none;
  }

  .admission-page .admission-hero-copy {
    width: auto;
    padding: calc(34vw + 46px) 24px 150px;
  }

  .admission-page .admission-roundel {
    bottom: 38px;
  }

  /* Keep the desktop Polaroid rhythm on phones without allowing horizontal overflow. */
  #moments .photo-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 12px;
    align-items: start;
    padding: 0 2px 30px;
  }

  #moments .photo-card {
    opacity: 1 !important;
    translate: none !important;
    animation: none !important;
    animation-timeline: auto !important;
    transform: rotate(-2deg) !important;
    transform-origin: center;
  }

  #moments .photo-card:nth-child(4n + 2) {
    transform: translateY(26px) rotate(2deg) !important;
  }

  #moments .photo-card:nth-child(4n + 3) {
    transform: rotate(1.5deg) !important;
  }

  #moments .photo-card:nth-child(4n) {
    transform: translateY(26px) rotate(-1deg) !important;
  }

  #moments .photo-card img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center;
  }

  #moments .photo-card figcaption {
    min-height: 62px;
  }

  /* Six faculty members in one compact, readable 3 x 2 phone grid. */
  #faculty.faculty {
    padding: 34px 14px 38px;
  }

  #faculty .faculty-head {
    gap: 8px;
    margin-bottom: 18px;
  }

  #faculty h2 {
    max-width: 320px;
    margin: 0;
    font-size: clamp(34px, 10.5vw, 44px);
    line-height: .94;
  }

  #faculty .faculty-intro {
    max-width: none;
    font-size: 12px;
    line-height: 1.35;
  }

  #faculty .faculty-intro > p {
    display: none;
  }

  #faculty .faculty-link {
    gap: 8px;
    margin-top: 4px;
    padding-bottom: 4px;
    font-size: 8px;
  }

  #faculty .faculty-link span {
    font-size: 13px;
  }

  #faculty .faculty-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  #faculty .faculty-card,
  #faculty .faculty-card:nth-child(n) {
    border-radius: 64px 64px 12px 12px;
    transform: none;
  }

  #faculty .faculty-card img {
    aspect-ratio: 1 / 1.08;
    object-position: center 32%;
  }

  #faculty .faculty-card > div {
    min-height: 76px;
    padding: 9px 7px 8px;
  }

  #faculty .faculty-card span {
    overflow: hidden;
    font-size: 6px;
    letter-spacing: .08em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #faculty .faculty-card h3 {
    display: -webkit-box;
    min-height: 2.08em;
    margin: 5px 0 3px;
    overflow: hidden;
    font-size: clamp(12px, 3.4vw, 15px);
    line-height: 1.04;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  #faculty .faculty-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 8px;
    line-height: 1.2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
}

@media (max-width: 760px) {
  .site-header nav {
    right: auto;
    left: 0;
    width: 100vw;
    max-width: 100vw;
  }

  main > section,
  main > footer {
    max-width: 100%;
    overflow-x: clip;
  }

  .admission-page {
    overflow-x: clip;
  }

  .admission-open-highlight {
    margin: 18px 0 20px;
    padding: 14px 45px 14px 15px;
    border-left-width: 4px;
    border-radius: 3px 17px 17px 3px;
  }

  .admission-open-highlight::after {
    right: 14px;
    font-size: 23px;
  }

  .admission-open-highlight p {
    margin: 5px 0;
    font-size: 20px;
  }

  .admission-open-highlight small {
    font-size: 12px;
    line-height: 1.35;
  }

  /* Keep every planet fully inside the phone canvas. */
  .admission-page .space-scene {
    top: 14px !important;
    right: 6px !important;
    left: auto !important;
    width: 150px;
    height: 150px;
    opacity: .38;
    transform: scale(.58);
    transform-origin: top right;
  }

  .admission-page .space-scene.moon,
  .admission-page .admission-steps .space-scene {
    top: auto !important;
    right: auto !important;
    bottom: 8px !important;
    left: 6px !important;
    transform-origin: bottom left;
  }

  .admission-page .cartoon-planet {
    right: 4px !important;
    bottom: 4px !important;
    opacity: .42;
    transform: scale(.56);
    transform-origin: bottom right;
  }

  .admission-page .class-options > .satellite-scene {
    top: 8px !important;
    right: 0 !important;
    width: min(92vw, 360px) !important;
    height: 200px !important;
    opacity: .34 !important;
    scale: .62 !important;
    transform-origin: top right !important;
  }

  .admission-page .admission-intro > :not(.space-scene),
  .admission-page .class-options > :not(.space-scene):not(.satellite-scene),
  .admission-page .admission-steps > :not(.space-scene),
  .admission-page .fees > :not(.space-scene) {
    z-index: 3;
    position: relative;
  }
}

@media (max-width: 370px) {
  #faculty.faculty {
    padding-right: 10px;
    padding-left: 10px;
  }

  #faculty .faculty-grid {
    gap: 6px;
  }

  #faculty .faculty-card > div {
    min-height: 72px;
    padding-right: 6px;
    padding-left: 6px;
  }
}

/* squarespace-inspired.css */
/* Squarespace-inspired editorial polish, adapted to the Star Kids brand. */
:root {
  --editorial-ink: #17243f;
  --editorial-paper: #f7f1df;
  --editorial-line: rgb(23 36 63 / 18%);
}

body {
  font-family: "Helvetica Neue", Arial, sans-serif;
}

h1,
h2,
.admission-hero-copy h1 {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: -.065em;
}

h1 em,
h2 em,
.admission-hero-copy h1 em {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
}

.eyebrow::before {
  width: 28px;
  height: 1px;
  background: currentColor;
  content: "";
}

.site-header {
  border-bottom: 1px solid rgb(255 255 255 / 14%);
  box-shadow: none;
}

.site-header.is-scrolled {
  border-bottom-color: var(--editorial-line);
  background: rgb(247 241 223 / 94%);
  backdrop-filter: blur(16px);
}

.site-header nav a {
  position: relative;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.site-header nav a:not(.nav-cta)::after {
  position: absolute;
  right: 0;
  bottom: -7px;
  left: 0;
  height: 1px;
  background: currentColor;
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 220ms ease;
}

.site-header nav a:not(.nav-cta):hover::after,
.site-header nav a:not(.nav-cta):focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.button,
.nav-cta,
.admission-button,
.light-button {
  border: 1px solid currentColor;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  box-shadow: none;
  transition: color 220ms ease, background-color 220ms ease, transform 220ms ease;
}

.button:hover,
.nav-cta:hover,
.admission-button:hover,
.light-button:hover {
  transform: translateY(-3px);
}

.button span,
.admission-button span,
.light-button span {
  display: inline-block;
  transition: transform 220ms ease;
}

.button:hover span,
.admission-button:hover span,
.light-button:hover span {
  transform: translate(4px, -2px);
}

#top.hero {
  border-bottom: 1px solid rgb(255 255 255 / 14%);
}

#top .hero-copy h1 {
  max-width: 760px;
  font-size: clamp(72px, 8.3vw, 132px);
  line-height: .88;
}

#top .hero-copy .intro {
  border: 1px solid rgb(255 255 255 / 28%);
  border-radius: 6px;
  background: rgb(23 36 63 / 78%);
  box-shadow: none;
}

#top .hero-actions .primary {
  color: var(--editorial-ink);
  background: #fff;
}

#top.hero::after {
  position: absolute;
  right: 34px;
  bottom: 28px;
  z-index: 3;
  color: rgb(255 255 255 / 72%);
  content: "STAR KIDS  /  DIMAPUR";
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
}

.section-pad {
  border-top: 1px solid var(--editorial-line);
}

.story-photo,
.learning-card,
.photo-card,
.voice-track blockquote,
.class-option-grid article,
.admission-gallery figure,
.admission-gallery figcaption,
.admission-notes article {
  border-radius: 6px;
}

.learning-card,
.voice-track blockquote,
.class-option-grid article,
.admission-notes article {
  border: 1px solid var(--editorial-line);
  box-shadow: none;
  transition: transform 240ms ease, box-shadow 240ms ease;
}

.learning-card:hover,
.voice-track blockquote:hover,
.class-option-grid article:hover,
.admission-notes article:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 36px rgb(23 36 63 / 10%);
}

.learning-card h3,
.subject h3,
.class-option-grid h3,
.admission-notes h3 {
  letter-spacing: -.035em;
}

.moments-sticky h2,
.voices h2,
.fees h2,
.admission-intro h2,
.admission-steps h2 {
  max-width: 900px;
}

.photo-card {
  overflow: hidden;
}

.photo-card img,
.story-photo img {
  transition: transform 700ms cubic-bezier(.2, .8, .2, 1);
}

.photo-card:hover img,
.story-photo:hover img {
  transform: scale(1.035);
}

#voices.voices {
  background: #f5f1e7;
}

#voices .voice-track blockquote {
  border-radius: 6px;
}

#voices .voice-track blockquote p {
  font-family: Georgia, "Times New Roman", serif;
}

.admissions,
.documents-section,
.visit-cta {
  border-top: 1px solid rgb(255 255 255 / 18%);
  border-bottom: 1px solid rgb(23 36 63 / 18%);
}

.footer {
  border-top: 1px solid rgb(255 255 255 / 16%);
}

/* Admissions page */
.admission-hero-copy h1 {
  max-width: 980px;
  font-size: clamp(68px, 8vw, 128px);
  line-height: .88;
}

.admission-hero-copy > p:not(.eyebrow) {
  max-width: 640px;
  font-size: clamp(16px, 1.25vw, 20px);
  line-height: 1.6;
}

.admission-roundel {
  border: 1px solid rgb(255 255 255 / 38%);
  box-shadow: none;
}

.class-option-grid article {
  border-width: 1px;
  border-color: rgb(23 36 63 / 28%);
}

.class-option-grid article > span:first-child,
.admission-steps li > span:first-child {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: -.06em;
}

.admission-steps ol {
  border-bottom: 1px solid var(--editorial-line);
}

.admission-steps li {
  border-top: 1px solid var(--editorial-line);
}

.admission-gallery {
  gap: 6px;
  padding: 6px;
}

.admission-gallery figcaption {
  border: 1px solid rgb(255 255 255 / 22%);
  background: rgb(23 36 63 / 92%);
  box-shadow: none;
}

.admission-gallery figcaption b {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: -.045em;
}

.fee-table {
  border: 1px solid var(--editorial-line);
  border-radius: 6px;
  overflow: hidden;
}

.fee-row {
  border-bottom: 1px solid var(--editorial-line);
}

.fee-row:last-child {
  border-bottom: 0;
}

.fee-header {
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.fine-print,
.document-note {
  border-left: 1px solid currentColor;
  padding-left: 18px;
}

@media (max-width: 900px) {
  .site-header nav.open {
    color: #fff;
    background: var(--editorial-ink);
  }

  #top .hero-copy h1,
  .admission-hero-copy h1 {
    font-size: clamp(62px, 12vw, 96px);
  }

  #top.hero::after {
    right: 22px;
    bottom: 18px;
  }
}

@media (max-width: 560px) {
  .eyebrow {
    font-size: 10px;
  }

  #top .hero-copy h1,
  .admission-hero-copy h1 {
    font-size: clamp(48px, 15vw, 64px);
  }

  #top.hero::after {
    display: none;
  }

  .admission-gallery {
    gap: 4px;
    padding: 4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .learning-card,
  .voice-track blockquote,
  .class-option-grid article,
  .admission-notes article,
  .photo-card img,
  .story-photo img {
    transition: none;
  }
}

/* Radiant golden shooting star shared by both page heroes. */
.scroll-shooting-star.golden-flight {
  --flight-duration: 10s;
  z-index: 2;
  top: 68%;
  left: -18vw;
  opacity: 0;
  transform: none;
  animation: goldenStarFlight var(--flight-duration) 1.4s cubic-bezier(.32, .03, .55, .96) infinite;
}

.admission-hero .scroll-shooting-star.golden-flight {
  --flight-duration: 12s;
  top: 76%;
  animation-delay: 4.2s;
}

.scroll-shooting-star.golden-flight i {
  width: 30px;
  height: 30px;
  background: #fffbd1;
  box-shadow:
    0 0 0 7px #ffd85b36,
    0 0 24px 10px #ffd33fbf,
    0 0 52px 18px #f5ad216e;
}

.scroll-shooting-star.golden-flight i::before {
  width: 300px;
  height: 11px;
  top: 9px;
  right: 15px;
  border-radius: 100% 0 0 100%;
  background: linear-gradient(90deg, transparent 0%, #ffe9792b 18%, #ffd33f99 65%, #fff6a8 100%);
  filter: drop-shadow(0 0 7px #ffd33fcc);
  transform: rotate(-13deg) skewX(-12deg);
}

.scroll-shooting-star.golden-flight i::after {
  content: "✦";
  inset: -8px;
  color: #fffef0;
  font-size: 38px;
  line-height: 46px;
  text-shadow: 0 0 5px #fff, 0 0 14px #ffd33f, 0 0 28px #f5ad21;
}

.scroll-shooting-star.golden-flight::after {
  content: "";
  position: absolute;
  top: 21px;
  left: -145px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff5a8;
  transform: rotate(-13deg);
  box-shadow:
    -22px 8px 0 0 #ffd95d,
    -48px -4px 0 -1px #fff7b8,
    -74px 14px 0 0 #f5ad21,
    -103px 3px 0 -1px #ffe67a,
    -132px 19px 0 -1px #fff7b8,
    -164px 8px 0 -1px #f5ad21;
}

@keyframes goldenStarFlight {
  0%, 10% {
    opacity: 0;
    transform: translate3d(0, 70px, 0) rotate(-2deg) scale(.68);
  }
  14% {
    opacity: 1;
  }
  36% {
    opacity: 1;
    transform: translate3d(48vw, -105px, 0) rotate(-1deg) scale(1);
  }
  58% {
    opacity: 1;
    transform: translate3d(102vw, -330px, 0) rotate(1deg) scale(.94);
  }
  64%, 100% {
    opacity: 0;
    transform: translate3d(138vw, -490px, 0) rotate(2deg) scale(.72);
  }
}

@media (max-width: 760px) {
  .scroll-shooting-star.golden-flight,
  .admission-hero .scroll-shooting-star.golden-flight {
    top: 72%;
  }

  .scroll-shooting-star.golden-flight i::before {
    width: 190px;
  }

  @keyframes goldenStarFlight {
    0%, 10% {
      opacity: 0;
      transform: translate3d(0, 35px, 0) rotate(-2deg) scale(.62);
    }
    14% {
      opacity: 1;
    }
    38% {
      opacity: 1;
      transform: translate3d(52vw, -85px, 0) rotate(-1deg) scale(.88);
    }
    60% {
      opacity: 1;
      transform: translate3d(108vw, -220px, 0) rotate(1deg) scale(.78);
    }
    66%, 100% {
      opacity: 0;
      transform: translate3d(145vw, -300px, 0) rotate(2deg) scale(.65);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-shooting-star.golden-flight {
    display: block !important;
    animation: goldenStarFlight var(--flight-duration) linear infinite !important;
  }
}

/* Desktop visibility pass: begin on-screen and repeat often enough to be unmistakable. */
.scroll-shooting-star.golden-flight {
  --flight-duration: 6s;
  display: block;
  top: 76%;
  left: 2vw;
  opacity: 1;
  animation-delay: .15s;
}

.admission-hero .scroll-shooting-star.golden-flight {
  --flight-duration: 6.6s;
  top: 78%;
  left: 2vw;
  animation-delay: -.9s;
}

.scroll-shooting-star.golden-flight i {
  width: 38px;
  height: 38px;
  box-shadow:
    0 0 0 9px #ffd85b42,
    0 0 30px 14px #ffd33fe8,
    0 0 70px 25px #f5ad2190;
}

.scroll-shooting-star.golden-flight i::before {
  width: 350px;
  height: 13px;
  top: 12px;
  right: 18px;
}

.scroll-shooting-star.golden-flight i::after {
  inset: -10px;
  font-size: 48px;
  line-height: 58px;
}

@keyframes goldenStarFlight {
  0% {
    opacity: 1;
    transform: translate3d(0, 20px, 0) rotate(-2deg) scale(.78);
  }
  32% {
    opacity: 1;
    transform: translate3d(40vw, -145px, 0) rotate(-1deg) scale(1);
  }
  68% {
    opacity: 1;
    transform: translate3d(91vw, -430px, 0) rotate(1deg) scale(.92);
  }
  75%, 100% {
    opacity: 0;
    transform: translate3d(118vw, -565px, 0) rotate(2deg) scale(.72);
  }
}

@media (max-width: 760px) {
  .scroll-shooting-star.golden-flight,
  .admission-hero .scroll-shooting-star.golden-flight {
    top: 74%;
    left: 1vw;
  }

  .scroll-shooting-star.golden-flight i::before {
    width: 210px;
  }

  @keyframes goldenStarFlight {
    0% {
      opacity: 1;
      transform: translate3d(0, 12px, 0) rotate(-2deg) scale(.66);
    }
    35% {
      opacity: 1;
      transform: translate3d(44vw, -110px, 0) rotate(-1deg) scale(.84);
    }
    70% {
      opacity: 1;
      transform: translate3d(95vw, -265px, 0) rotate(1deg) scale(.72);
    }
    78%, 100% {
      opacity: 0;
      transform: translate3d(125vw, -345px, 0) rotate(2deg) scale(.62);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-shooting-star.golden-flight,
  .admission-hero .scroll-shooting-star.golden-flight {
    display: block !important;
    animation-name: goldenStarFlight !important;
    animation-duration: var(--flight-duration) !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
  }
}

/* Numbered celestial chapters */
.story {
  grid-template-columns: minmax(360px, .88fr) minmax(460px, 1.12fr);
  grid-template-rows: auto auto;
  column-gap: clamp(58px, 8vw, 150px);
  row-gap: 34px;
  min-height: 800px;
}

.story .section-number,
.learning .section-number,
.curriculum .section-number {
  opacity: 1;
  isolation: isolate;
  overflow: hidden;
  color: #fffdf7;
  background:
    radial-gradient(circle at 50% 50%, #f5ad21 0 3px, transparent 4px),
    radial-gradient(circle at 26% 24%, #fff 0 1px, transparent 2px),
    radial-gradient(circle at 70% 31%, #fff8cf 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 78% 72%, #fff 0 1px, transparent 2px),
    radial-gradient(circle at 31% 76%, #f5ad21 0 1.5px, transparent 2.5px),
    #1e2d4d;
  border: 1px solid #ffffff2b;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-shadow: 0 5px 24px #07112699;
  box-shadow: 0 28px 80px #1e2d4d32, inset 0 0 70px #07112670;
}

.story .section-number {
  position: relative !important;
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  top: auto;
  right: auto;
  left: auto;
  width: min(38vw, 500px);
  aspect-ratio: 1;
  font-size: clamp(128px, 14vw, 220px);
  line-height: 1;
}

.story .story-title {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
}

.story .story-copy {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
}

.story .orbit {
  display: none;
}

.story .section-number::before,
.learning .section-number::before,
.curriculum .section-number::before {
  content: "";
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background: repeating-conic-gradient(from 12deg, transparent 0 8deg, #fffbd9b8 8.4deg 8.9deg, transparent 9.3deg 16deg);
  -webkit-mask: repeating-radial-gradient(circle, transparent 0 28px, #000 29px 31px, transparent 32px 53px);
  mask: repeating-radial-gradient(circle, transparent 0 28px, #000 29px 31px, transparent 32px 53px);
  opacity: .7;
  animation: northStarTurn 32s linear infinite;
}

.story .section-number::after,
.learning .section-number::after,
.curriculum .section-number::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
  box-shadow:
    -118px -82px 0 0 #fff8cf,
    112px -98px 0 1px #f5ad21,
    146px 34px 0 0 #fff,
    72px 138px 0 0 #fff8cf,
    -91px 142px 0 1px #f5ad21,
    -153px 38px 0 0 #fff;
  animation: northStarTurn 22s linear infinite reverse;
}

.curriculum .section-number {
  position: absolute !important;
  top: clamp(52px, 6vw, 90px);
  right: clamp(24px, 7vw, 110px);
  left: auto;
  width: min(38vw, 500px);
  aspect-ratio: 1;
  font-size: clamp(128px, 14vw, 220px);
  line-height: 1;
}

.learning .learning-section-number {
  position: relative !important;
  z-index: 3;
  width: min(38vw, 500px);
  aspect-ratio: 1;
  margin: 0 0 clamp(34px, 5vw, 72px) auto;
  font-size: clamp(128px, 14vw, 220px);
  line-height: 1;
}

.curriculum > h2 {
  max-width: 72%;
}

@keyframes northStarTurn {
  to { transform: rotate(360deg); }
}

/* Faculty */
.faculty {
  position: relative;
  overflow: hidden;
  background: #dfeee8;
}

.faculty::before {
  content: "✦";
  position: absolute;
  top: 54px;
  right: 5vw;
  color: #f5ad21;
  font-size: clamp(70px, 10vw, 150px);
  line-height: 1;
  opacity: .5;
  animation: starDance 5s ease-in-out infinite;
}

.faculty-head {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  align-items: end;
  gap: clamp(45px, 8vw, 130px);
  margin-bottom: clamp(55px, 7vw, 100px);
  position: relative;
  z-index: 2;
}

.faculty h2 {
  font-size: clamp(52px, 6.2vw, 94px);
}

.faculty h2 em {
  color: var(--red);
}

.faculty-intro {
  max-width: 520px;
  font-size: 17px;
  line-height: 1.75;
}

.faculty-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
  border-bottom: 1px solid var(--deep);
  padding-bottom: 7px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.faculty-link span {
  color: var(--red);
  font-size: 19px;
}

.faculty-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 32px);
  align-items: start;
  position: relative;
  z-index: 2;
}

.faculty-card {
  min-width: 0;
  overflow: hidden;
  background: var(--white);
  border: 1px solid #1e2d4d18;
  border-radius: 200px 200px 24px 24px;
  box-shadow: 0 18px 50px #1e2d4d12;
  transition: transform .45s ease, box-shadow .45s ease;
}

.faculty-card:nth-child(2),
.faculty-card:nth-child(5) {
  transform: translateY(34px);
}

.faculty-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 65px #1e2d4d24;
}

.faculty-card:nth-child(2):hover,
.faculty-card:nth-child(5):hover {
  transform: translateY(24px);
}

.faculty-card img {
  width: 100%;
  aspect-ratio: 4 / 4.6;
  object-fit: cover;
  object-position: center 36%;
  background: #fff;
  display: block;
}

.faculty-card.julli img { object-position: center 45%; }
.faculty-card.soma img { object-position: center 42%; }
.faculty-card.rebika img { object-position: center 35%; }

.faculty-card > div {
  min-height: 166px;
  padding: 25px 27px 29px;
}

.faculty-card span {
  display: block;
  color: var(--red);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .16em;
}

.faculty-card h3 {
  margin: 11px 0 9px;
  font: 400 clamp(23px, 2.2vw, 34px)/1.02 Georgia, serif;
  letter-spacing: -.035em;
}

.faculty-card p {
  margin: 0;
  color: #5b606b;
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .story {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .story .section-number {
    grid-column: 1;
    grid-row: auto;
    width: min(70vw, 380px);
    margin: 0 auto 20px;
  }

  .learning .learning-section-number,
  .curriculum .section-number {
    width: min(70vw, 380px);
  }

  .story .story-title,
  .story .story-copy {
    grid-column: 1;
    grid-row: auto;
  }

  .story .story-title {
    margin-top: 0;
  }

  .faculty-head {
    grid-template-columns: 1fr;
  }

  .faculty-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .faculty-card:nth-child(n) {
    transform: none;
  }
}

@media (max-width: 600px) {
  .story .section-number,
  .learning .learning-section-number,
  .curriculum .section-number {
    width: min(76vw, 280px);
    font-size: 112px;
  }

  .curriculum .section-number {
    position: relative !important;
    top: auto;
    right: auto;
    margin: 0 auto 20px;
  }

  .learning .learning-section-number {
    margin: 0 auto 20px;
  }

  .curriculum > h2 {
    max-width: none;
  }

  .faculty-grid {
    grid-template-columns: 1fr;
  }

  .faculty-card {
    border-radius: 180px 180px 22px 22px;
  }

  .faculty-card h3 {
    font-size: 30px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .story .section-number::before,
  .story .section-number::after,
  .learning .section-number::before,
  .learning .section-number::after,
  .curriculum .section-number::before,
  .curriculum .section-number::after,
  .faculty::before {
    animation: none !important;
  }
}

/* V71: keep the three chapter markers equal and compact on desktop. */
@media (min-width: 901px) {
  .story .section-number,
  .learning .learning-section-number,
  .curriculum .section-number {
    width: clamp(240px, 17vw, 300px);
    font-size: clamp(96px, 7vw, 132px);
  }

  .curriculum .section-number {
    top: clamp(44px, 5vw, 72px);
    right: clamp(32px, 6vw, 96px);
  }
}

/* V66: interactive parent feedback and Admissions FAQ. */
#voices .voice-track blockquote {
  position: relative;
  cursor: pointer;
  transform-style: preserve-3d;
  perspective: 900px;
  will-change: transform, opacity;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

#voices .voice-track blockquote::after {
  content: "Tap for another voice ↻";
  position: absolute;
  right: 22px;
  bottom: 16px;
  color: currentColor;
  font: 700 9px/1.2 Arial, sans-serif;
  letter-spacing: .11em;
  text-transform: uppercase;
  opacity: .58;
  transform: translateY(0);
  transition: opacity 180ms ease, transform 180ms ease, letter-spacing 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
  #voices .voice-track blockquote::after {
    content: "Click for another voice ↻";
    opacity: 0;
    transform: translateY(6px);
  }

  #voices .voice-track blockquote:hover,
  #voices .voice-track blockquote:focus-visible {
    transform: translateY(-6px);
    border-color: #f5ad21;
    box-shadow: 0 20px 42px #1e2d4d24;
  }

  #voices .voice-track blockquote:hover::after,
  #voices .voice-track blockquote:focus-visible::after {
    opacity: .92;
    transform: translateY(0);
    letter-spacing: .14em;
  }
}

#voices .voice-track blockquote.is-flipping {
  animation: voiceCardFlip 560ms cubic-bezier(.2, .72, .2, 1);
  pointer-events: none;
}

@keyframes voiceCardFlip {
  0% { transform: rotateY(0); opacity: 1; }
  48% { transform: rotateY(88deg); opacity: .35; }
  52% { transform: rotateY(-88deg); opacity: .35; }
  100% { transform: rotateY(0); opacity: 1; }
}

.admissions-faq {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(420px, 1.28fr);
  gap: clamp(48px, 8vw, 140px);
  color: #1e2d4d;
  background: #f5f1e7;
}

.faq-heading {
  position: sticky;
  top: 120px;
  align-self: start;
}

.faq-heading h2 {
  margin: 22px 0 28px;
  font-size: clamp(48px, 5.5vw, 88px);
  line-height: .94;
  letter-spacing: -.055em;
}

.faq-heading h2 em {
  color: #c82e3d;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.faq-heading > p:last-child {
  max-width: 320px;
  line-height: 1.65;
}

.faq-list {
  border-top: 1px solid rgb(30 45 77 / 28%);
}

.faq-list details {
  border-bottom: 1px solid rgb(30 45 77 / 28%);
}

.faq-list summary {
  position: relative;
  padding: 28px 58px 28px 0;
  cursor: pointer;
  list-style: none;
  font: 400 clamp(22px, 2.2vw, 34px)/1.18 Georgia, "Times New Roman", serif;
}

.faq-list summary::-webkit-details-marker { display: none; }

.faq-list summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #1e2d4d;
  background: #f5ad21;
  border-radius: 50%;
  transform: translateY(-50%);
  transition: transform 220ms ease;
}

.faq-list details[open] summary::after { transform: translateY(-50%) rotate(45deg); }

.faq-list details p {
  max-width: 700px;
  margin: -2px 58px 28px 0;
  color: #515765;
  font-size: clamp(15px, 1.2vw, 18px);
  line-height: 1.7;
}

.faq-list details a {
  color: #c82e3d;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.fine-print span {
  display: block;
  margin-top: 12px;
  color: #a82c3a;
  font-weight: 700;
}

@media (max-width: 760px) {
  .admissions-faq {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .faq-heading { position: static; }

  .faq-heading h2 { font-size: 48px; }

  .faq-list summary {
    padding: 24px 50px 24px 0;
    font-size: 23px;
  }

  .faq-list details p { margin-right: 0; }

  .footer .footer-brand {
    justify-self: center !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .footer .footer-brand img {
    margin-inline: auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #voices .voice-track blockquote.is-flipping {
    animation: none;
    opacity: .25;
    transition: opacity 120ms ease;
  }
}

/* Original sketched solar-system motion behind the Moments heading. */
.moments {
  overflow: hidden;
}

.moments-sticky {
  isolation: isolate;
  z-index: 2;
}

.moments-sticky > :not(.solar-system-backdrop) {
  position: relative;
  z-index: 2;
}

.solar-system-backdrop {
  z-index: 0;
  pointer-events: none;
  position: absolute;
  top: -105px;
  left: -115px;
  width: min(47vw, 720px);
  aspect-ratio: 1;
  border-radius: 50%;
  opacity: .42;
  background:
    radial-gradient(circle at 16% 19%, #1e2d4d 0 1px, transparent 2px),
    radial-gradient(circle at 83% 23%, #b82b37 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 23% 78%, #1e2d4d 0 1px, transparent 2px),
    radial-gradient(circle at 72% 84%, #f5ad21 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 53% 11%, #1e2d4d 0 1px, transparent 2px);
  animation: solarSystemDrift 12s ease-in-out infinite alternate;
}

.solar-sun {
  z-index: 3;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 42px;
  height: 42px;
  margin: -21px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 0 10px #f5ad212b, 0 0 38px #f5ad21a6;
  animation: solarSunPulse 3.8s ease-in-out infinite;
}

.solar-orbit {
  --tilt: -12deg;
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1.5px dashed #1e2d4d99;
  border-radius: 50%;
  transform: rotate(var(--tilt));
  animation: solarRevolve 14s linear infinite;
}

.solar-orbit b {
  position: absolute;
  top: 50%;
  right: -7px;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: inset -4px -3px #7d1723, 0 0 0 4px #fff7;
}

.solar-orbit-1 {
  width: 142px;
  height: 58px;
  margin: -29px 0 0 -71px;
  animation-duration: 7s;
}

.solar-orbit-1 b {
  width: 10px;
  height: 10px;
  margin-top: -5px;
  background: #fff4c5;
  box-shadow: inset -3px -2px #b7a66f, 0 0 0 3px #fff6;
}

.solar-orbit-2 {
  --tilt: 8deg;
  width: 230px;
  height: 92px;
  margin: -46px 0 0 -115px;
  animation-duration: 10s;
  animation-direction: reverse;
}

.solar-orbit-2 b {
  background: var(--mint);
  box-shadow: inset -4px -3px #32957d, 0 0 0 4px #fff7;
}

.solar-orbit-3 {
  --tilt: -6deg;
  width: 330px;
  height: 136px;
  margin: -68px 0 0 -165px;
  animation-duration: 15s;
}

.solar-orbit-3 b {
  width: 18px;
  height: 18px;
  margin-top: -9px;
  background: #5d7fc4;
  box-shadow: inset -5px -4px #344261, 0 0 0 4px #fff7;
}

.solar-orbit-4 {
  --tilt: 11deg;
  width: 440px;
  height: 184px;
  margin: -92px 0 0 -220px;
  animation-duration: 21s;
  animation-direction: reverse;
}

.solar-orbit-4 b {
  width: 23px;
  height: 23px;
  margin-top: -11px;
  background: #e3934a;
  box-shadow: inset -6px -5px #b76236, 0 0 0 4px #fff7;
}

.solar-orbit-4 b::after {
  content: "";
  position: absolute;
  top: 6px;
  left: -7px;
  width: 35px;
  height: 10px;
  border: 2px solid var(--yellow);
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 50%;
  transform: rotate(-12deg);
}

.solar-orbit-5 {
  --tilt: -9deg;
  width: 560px;
  height: 236px;
  margin: -118px 0 0 -280px;
  animation-duration: 29s;
}

.solar-orbit-5 b {
  width: 17px;
  height: 17px;
  margin-top: -8px;
  background: var(--pink);
  box-shadow: inset -5px -4px #b82b37, 0 0 0 4px #fff7;
}

@keyframes solarRevolve {
  to { rotate: 360deg; }
}

@keyframes solarSystemDrift {
  from { translate: -2% 1%; }
  to { translate: 3% -2%; }
}

@keyframes solarSunPulse {
  50% { scale: 1.12; box-shadow: 0 0 0 15px #f5ad211d, 0 0 48px #f5ad21c2; }
}

.admission-hero .scroll-shooting-star.golden-flight {
  display: none !important;
}

@media (max-width: 900px) {
  .solar-system-backdrop {
    top: -80px;
    left: -70px;
    width: min(88vw, 620px);
    opacity: .34;
    transform-origin: 30% 35%;
    scale: .82;
  }
}

@media (max-width: 560px) {
  .solar-system-backdrop {
    top: -42px;
    left: -86px;
    width: 570px;
    opacity: .26;
    scale: .68;
  }
}

@media (prefers-reduced-motion: reduce) {
  .solar-system-backdrop,
  .solar-sun,
  .solar-orbit {
    animation: none !important;
  }
}

/* hero-text-fix.css */
#top.hero {
  height: auto !important;
  min-height: max(760px, 100vh) !important;
}

/* Retired homepage labels: keep them hidden even if HostGator serves older markup. */
#top .hero-badge,
#top .hero-copy > .eyebrow {
  display: none !important;
}

#top .hero-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: min(780px, 72vw) !important;
  min-height: max(760px, 100vh) !important;
  padding-top: clamp(150px, 20vh, 210px) !important;
  padding-bottom: clamp(120px, 15vh, 180px) !important;
}

#top .hero-copy h1 {
  max-width: none !important;
  font-size: clamp(54px, 7.6vw, 116px) !important;
  line-height: .9 !important;
  white-space: nowrap !important;
}

#top .hero-copy h1 em {
  display: inline-block !important;
  white-space: nowrap !important;
}

#top .intro {
  position: relative !important;
  display: block !important;
  flex: none !important;
  width: min(620px, 100%) !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  white-space: normal !important;
  overflow: visible !important;
  contain: none !important;
}

#top .intro span {
  display: block !important;
}

#top .intro span + span {
  margin-top: 2px;
}

#top .hero-actions {
  flex: none !important;
  flex-wrap: wrap !important;
}

@media (max-width: 900px) {
  #top.hero,
  #top .hero-copy {
    min-height: max(780px, 100vh) !important;
  }

  #top .hero-copy {
    width: 100% !important;
    padding: 145px 24px 130px !important;
  }

  #top .hero-copy h1 {
    font-size: clamp(48px, 9vw, 76px) !important;
  }

  #top .intro {
    width: min(620px, calc(100vw - 48px)) !important;
  }
}

@media (max-width: 560px) {
  #top.hero,
  #top .hero-copy {
    min-height: max(880px, 100vh) !important;
  }

  #top.hero {
    background: #1e2d4d !important;
  }

  #top .hero-photo {
    inset: 0 0 auto !important;
    width: 100% !important;
    height: min(75vw, 310px) !important;
    min-height: 250px !important;
    background:
      linear-gradient(180deg, rgb(30 45 77 / 5%) 0 58%, #1e2d4d 100%),
url("/images/source-puzzle.webp") center top / 100% auto no-repeat !important;
    animation: none !important;
  }

  #top .hero-copy {
    /* Lift the copy into the dark lower-photo gradient, below the children's faces. */
    padding: max(210px, calc(min(75vw, 310px) - 48px)) 20px 190px !important;
  }

  #top .hero-copy h1 {
    width: 100% !important;
    max-width: 100% !important;
    color: #fff !important;
    font-size: clamp(43px, 13vw, 54px) !important;
    line-height: .86 !important;
    white-space: normal !important;
    text-shadow: 0 4px 20px rgb(8 18 39 / 42%);
    padding: 13px 14px 17px !important;
    background: rgb(23 36 63 / 96%) !important;
    border-left: 5px solid #f5ad21 !important;
    border-radius: 4px 14px 14px 4px !important;
  }

  #top .hero-copy h1 em {
    display: block !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    color: #ffc342 !important;
  }

  #top .intro {
    width: calc(100vw - 40px) !important;
    margin: 24px 0 22px !important;
    background: rgb(20 34 63 / 94%) !important;
  }

  #top .hero-actions {
    gap: 13px !important;
  }

  #top .hero-actions .button {
    padding: 14px 18px !important;
  }

  #top .hero-badge {
    right: 14px !important;
    bottom: 16px !important;
    width: 106px !important;
    height: 106px !important;
    opacity: .88;
  }

  #top .hero-badge b {
    font-size: 29px !important;
  }

  #top .hero-badge span {
    font-size: 8px !important;
  }
}

/* homepage-final-fixes.css */
/* Version 44 final overrides: loaded after every other homepage stylesheet. */

/* Remove the old badge, eyebrow and generated Star Kids / Dimapur label. */
#top .hero-badge,
#top .hero-copy > .eyebrow,
#top.hero::after {
  display: none !important;
  content: none !important;
}

/* All Moments cards must stay fully coloured, including the last row. */
#moments .photo-card,
#moments .photo-card:nth-child(n),
#moments .photo-card img,
#moments .photo-card figcaption {
  opacity: 1 !important;
  filter: none !important;
  visibility: visible !important;
  animation: none !important;
  animation-name: none !important;
  animation-timeline: none !important;
}

#moments .photo-card {
  position: relative !important;
  z-index: 2 !important;
  pointer-events: auto !important;
  translate: none !important;
}

/* Teacher cards request and load only one unseen replacement when selected. */
#faculty .faculty-card {
  --faculty-y: 0px;
  cursor: pointer;
  transform: translateY(var(--faculty-y));
  transform-style: preserve-3d;
  will-change: transform;
}

#faculty .faculty-card:nth-child(2),
#faculty .faculty-card:nth-child(5) {
  --faculty-y: 34px;
}

#faculty .faculty-card:hover {
  transform: translateY(calc(var(--faculty-y) - 8px));
}

#faculty .faculty-card:focus-visible {
  outline: 4px solid #f9aa1b;
  outline-offset: 5px;
}

#faculty .faculty-card.is-loading {
  cursor: progress;
}

#faculty .faculty-card.is-flipping {
  animation: faculty-card-flip 0.72s ease both !important;
  pointer-events: none;
}

@keyframes faculty-card-flip {
  0% { transform: translateY(var(--faculty-y)) rotateY(0deg); }
  49% { transform: translateY(var(--faculty-y)) rotateY(90deg); }
  50% { transform: translateY(var(--faculty-y)) rotateY(-90deg); }
  100% { transform: translateY(var(--faculty-y)) rotateY(0deg); }
}

@media (max-width: 600px) {
  #faculty .faculty-card:nth-child(n) {
    --faculty-y: 0px;
  }

  #faculty .faculty-card:hover {
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  #faculty .faculty-card.is-flipping {
    animation-duration: 0.01ms !important;
  }
}

/* Keep the supporting sentence to two intentional lines on normal PCs. */
@media (min-width: 1200px) {
  #top .hero-copy {
    width: min(950px, 70vw) !important;
    padding-left: 6vw !important;
    padding-right: 2vw !important;
  }

  #top .intro {
    width: 100% !important;
    max-width: 760px !important;
  }

  #top .intro > span {
    display: block !important;
    white-space: nowrap !important;
  }
}

/* V74: final alignment pass for the homepage admissions panel, footer logo,
   and the mobile chapter-two artwork. */
@media (min-width: 901px) {
  /* Bring the red-panel copy closer to the photograph without changing the
     balanced two-column split. */
  #admissions .admission-copy {
    padding-left: clamp(44px, 4.6vw, 78px) !important;
  }
}

@media (max-width: 760px) {
  /* Make the footer logo occupy the complete grid row so its centre is the
     centre of the cream background, not the first footer column. */
  .footer .footer-brand {
    grid-column: 1 / -1 !important;
    place-self: center !important;
    align-self: center !important;
    justify-self: center !important;
    margin-inline: auto !important;
    transform: none !important;
  }

  .footer .footer-brand img {
    display: block !important;
    margin-inline: auto !important;
    object-position: center center !important;
    transform: none !important;
  }

  /* The illustrated planet is atmospheric background art. Keep it behind the
     number and centre 02 independently of every inherited inset/margin. */
  #learning .space-scene {
    z-index: 0 !important;
    top: 12px !important;
    right: -10px !important;
    bottom: auto !important;
    left: auto !important;
    opacity: .3 !important;
    transform: scale(.88) !important;
    transform-origin: top right !important;
  }

  #learning .learning-section-number {
    position: relative !important;
    inset: auto !important;
    left: 50% !important;
    z-index: 2 !important;
    margin: 0 0 28px !important;
    transform: translateX(-50%) !important;
  }

  #learning .learning-head,
  #learning .learning-grid {
    position: relative !important;
    z-index: 2 !important;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 760px) {
  #learning .space-scene {
    animation: none !important;
  }
}

/* V75: on desktop, place the header logo on the same vertical guide as the
   “Inspiring little minds.” hero heading. Phone positioning is unchanged. */
@media (min-width: 901px) {
  .site-header {
    padding-left: 7vw !important;
  }

  .site-header > .brand {
    margin-left: 0 !important;
    transform: none !important;
  }
}

@media (min-width: 1200px) {
  .site-header {
    padding-left: 6vw !important;
  }
}

/* V76: shift the homepage admissions photograph itself to the left on PC.
   This changes the crop, not the red-panel text, and leaves phones alone. */
@media (min-width: 901px) {
  #admissions.admissions .admission-photo {
    background-position-x: 62% !important;
    background-position-y: 50% !important;
  }
}

/* performance.css */
/* Delivery and rendering optimizations shared by every public page. */
html, body { max-width: 100%; overflow-x: clip; }
img { max-width: 100%; }
.brand img { display: block; width: auto; height: auto; aspect-ratio: 480 / 241; }

.hero-media,
.hero-media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.hero-media img { object-fit: cover; object-position: center; }
#top .hero-photo,
.admission-hero .admission-hero-photo { background-image: none !important; overflow: hidden; }
#top .hero-photo::after,
.admission-hero .admission-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
#top .hero-photo::after {
  background: radial-gradient(circle at 78% 23%, #fff6 0 1.5%, transparent 8%), linear-gradient(90deg, #1e2d4d 0%, transparent 46%), linear-gradient(0deg, #1e2d4db5, transparent 48%);
}
.admission-hero .admission-hero-photo::after {
  background: linear-gradient(90deg, #1e2d4d 0%, rgba(30,45,77,.86) 25%, rgba(30,45,77,.08) 68%), linear-gradient(0deg, rgba(30,45,77,.35), transparent 48%);
}

.gallery-loading {
  grid-column: 1 / -1;
  min-height: 18rem;
  display: grid;
  place-items: center;
  color: #1e2d4d;
  background: linear-gradient(100deg, rgba(255,255,255,.35) 25%, rgba(255,255,255,.75) 45%, rgba(255,255,255,.35) 65%);
  background-size: 240% 100%;
  animation: gallery-placeholder 1.8s ease-in-out infinite;
  border-radius: 1.25rem;
}
@keyframes gallery-placeholder { to { background-position: -160% 0; } }

.photo-flow img,
.faculty-card img,
.class-photo-card img,
.class-album-card img { background: #e9e1cf; }

@media (min-width: 761px) {
  main > section:not(:first-of-type), .footer { content-visibility: auto; contain-intrinsic-size: auto 900px; }
}

@media (max-width: 760px) {
  #top .hero-photo::after { background: linear-gradient(180deg, rgba(30,45,77,.03) 0 45%, rgba(30,45,77,.82) 72%, #1e2d4d 100%); }
  .admission-hero .admission-hero-photo::after { background: linear-gradient(180deg, rgba(30,45,77,.04) 0 38%, rgba(30,45,77,.75) 70%, #1e2d4d 100%); }
  #top .hero-media img { object-position: 64% 24%; }
  .admission-hero .hero-media img { object-position: 67% 28%; }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-loading { animation: none; }
}

/* v78: transparent, correctly sized logo. */
.site-header .brand,
.footer .footer-brand { background: transparent !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; }
.site-header .brand { position: relative !important; inset: auto !important; align-self: center !important; width: 148px !important; min-width: 148px; height: 64px !important; min-height: 0 !important; margin: 0 !important; display: flex; align-items: center; justify-content: center; overflow: hidden !important; transform: none !important; }
.site-header .brand img { width: 148px !important; height: 64px !important; max-height: 64px !important; margin: 0 !important; aspect-ratio: auto !important; object-fit: contain; object-position: center; transform: none !important; }
.footer .footer-brand { width: 190px; height: auto; display: flex; align-items: center; justify-content: flex-start; }
.footer .footer-brand img { width: 190px !important; height: auto !important; aspect-ratio: auto !important; background: transparent !important; filter: none !important; }
@media (max-width: 760px) {
  .site-header .brand { width: 148px !important; min-width: 148px; height: 64px !important; }
  .site-header .brand img { width: 148px !important; height: 64px !important; max-height: 64px !important; }
  .footer .footer-brand { width: 184px; margin-inline: auto; justify-content: center; }
  .footer .footer-brand img { width: 184px !important; }
}
