/* Shared readable surfaces and motion. Controls remain stationary. */
:root{--ui-paper:#f0ede4;--ui-panel:#e5e5dc;--ui-ink:#203e43;--ui-muted:#50645f;--ui-edge:#9aa99b;--ui-accent:#974627}
html[data-theme=dark]{--ui-paper:#122c32;--ui-panel:#203d43;--ui-ink:#f2eee2;--ui-muted:#c3d2c9;--ui-edge:#73948b;--ui-accent:#ffc094;color-scheme:dark}
html[data-theme=light]{color-scheme:light}
body{font-family:var(--font-editorial,'Horizon Sans',system-ui,sans-serif)}
main :is(h1,h2,h3){text-wrap:balance}main p{overflow-wrap:break-word}
main :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--ui-accent);outline-offset:4px}
main :is(input,select,textarea){color:var(--ui-ink);background:var(--ui-paper);border-color:var(--ui-edge)}
main :is(input,textarea)::placeholder{color:var(--ui-muted);opacity:1}
html[data-theme=dark] main :is(.section-heading>p,.section-lead,.section-intro>p,.faq-answer,.form-note,.field-note,.breadcrumb){color:var(--ui-muted)}
html[data-theme=dark] main :is(.faq-item,.admission-card,.contact-card,.pathway-card){background:var(--ui-panel);color:var(--ui-ink);border-color:var(--ui-edge)}
/* Single-frame anatomy replaces the obsolete group sprite stepping. */
.has-opening-stickers .group-cast-figure>img{filter:none!important}
.has-opening-stickers .group-cast-figure{animation:none;will-change:auto}

/* Photo stickers: all eight slots are editable independently in admin. */
.motion-directory-photo{position:absolute;right:-8px;bottom:-27px;width:76px;height:90px;z-index:2;padding:4px 4px 11px;border-radius:5px;background:#fff6e6;box-shadow:0 7px 14px #152f3a26;transform:rotate(7deg);pointer-events:none}
.motion-directory-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:2px;animation:directoryMemory 6s ease-in-out infinite}
.motion-directory-file:nth-child(2n) .motion-directory-photo{transform:rotate(-7deg)}.motion-directory-file:nth-child(2n) .motion-directory-photo img{animation-delay:-3s}
@keyframes directoryMemory{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}
.program-motion-page.motion-paused .motion-directory-photo img{animation-play-state:paused}
.motion-directory-grid{row-gap:52px}.motion-directory-file .directory-file-content{padding-bottom:42px;padding-right:45px}
html[data-theme=dark] .motion-directory-file{background:#27474a!important;border-color:#8ca29a!important;color:#f5eee0!important}
html[data-theme=dark] .motion-directory-file :is(small,strong,span,b){color:#f5eee0!important;opacity:1}
html[data-theme=dark] .motion-directory-file .directory-tab{background:#1a363c!important;border-color:#8ca29a}
html[data-theme=light] .motion-directory-file :is(small,strong,span,b){color:#23464b;opacity:1}
.module-has-motion{--module-tilt:0deg}.module-has-motion>img{transition:transform .6s ease}.module-has-motion:is(:hover,:focus-within)>img{transform:scale(1.025)}
/* The community film retains a readable photo if playback/network fails. */
.community-moment-feature{isolation:isolate}.community-moment-feature>[data-community-video]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.community-moment-feature::after{z-index:2;pointer-events:none}.community-moment-feature>figcaption{z-index:3;pointer-events:none;padding-bottom:92px}
.community-film-controls{position:absolute;bottom:18px;left:18px;right:18px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;z-index:4}
.community-film-controls[hidden],[data-community-video][hidden]{display:none!important}
.community-film-controls button{font:inherit;font-size:12px;min-height:44px;padding:10px 14px;border-radius:12px;border:1px solid #d6e2d5;background:#122f3a;color:#fff8eb;cursor:pointer}
.community-film-controls [data-community-sound][aria-pressed=true]{background:#f4c58e;color:#173c43;border-color:#f4c58e}
.community-film-controls [role=status]{font-size:11px;color:#fff;background:#102f40db;padding:5px 8px;border-radius:6px;max-width:100%}
.community-film-controls [role=status]:empty{display:none}
@media(max-width:760px){.motion-directory-photo{width:64px;height:78px;right:-4px}.motion-directory-file .directory-file-content{padding-right:20px}.community-moment-feature>figcaption{padding-bottom:120px}.community-film-controls{left:12px;right:12px;bottom:12px;gap:6px}.community-film-controls button{font-size:11px;padding:9px 11px}}
@media(prefers-reduced-motion:reduce){.has-opening-stickers .group-cast-figure,.motion-directory-photo img{animation:none!important}.module-has-motion>img{transition:none}}
/* A dedicated palette for the detached widgets. */
html[data-theme=dark] body main .opening-widget-dock>.opening-fold-widget{background:#1d3b42!important;border-color:#718f8a!important;color:#f3f0e5!important}
html[data-theme=dark] body main .opening-widget-dock :is(h2,.pare-live-clock,.pare-now-date time,.insight-kicker){color:#f3f0e5!important}
html[data-theme=dark] body main .opening-widget-dock :is(.insight-copy,.insight-footer,.pare-now-greeting,.pare-now-footer,.pare-now-date,.pare-time-zone,.pare-live-label){color:#c7ddd4!important}
html[data-theme=dark] body main .opening-widget-dock .hero-brand-logo{background:#f5f0e5;border-radius:9px;padding:5px}
html[data-theme=dark] body main .opening-widget-dock :is([data-widget-fold],[data-home-widget-fold]){color:#f5eee0!important;background:#365b60!important}
html[data-theme] body main .sticker-memory-tiles>a{color:#264b45!important}html[data-theme] body main .sticker-memory-tiles>a span{color:#264b45!important}

html[data-theme] body main .community-film-caption{font-size:12px;line-height:1.6;color:#f6f2e6!important;margin:8px 0 0;max-width:440px}

html,body{overflow-x:clip}body{max-width:100%}
/* Contrast corrections found across the ten public pages. Photo labels keep solid backplates. */
html[data-theme] body main :is(.home-program-image>span,.page-opening-caption,.map-shell>span){color:#fff8ec!important;background:#173d49!important;backdrop-filter:none}
html[data-theme] body main .image-note{background:#173d49;color:#fff8ec}html[data-theme] body main .image-note p{color:#d7e4df}
html[data-theme=light] body main :is(.app-showcase-foot,.catalogue-signals-label,.language-stage-meta span,.stage-price-copy span,.stage-price-row.is-price-pending>strong,.field small,.form-section-heading small,.form-note){color:#4c6269!important}
html[data-theme=light] body main .stage-price-index{color:#195e5c!important}
html[data-theme] body main .card-icon{color:#874020!important}
html[data-theme=dark] body main .pricing-integrity-note{background:#1d3b42!important;color:#d7e4dc!important;border-color:#75948a}
html[data-theme] body main .pricing-integrity-note>i{background:#815414;color:#fff}
html[data-theme=dark] body main .fg-years{background:#1d3b42!important;color:#eef1e5!important}
html[data-theme=dark] body main .fg-years p,html[data-theme=dark] body main .fg-card .form-note{color:#d3e0d5!important;background:transparent!important}
html[data-theme=dark] body main .opening-widget-dock :is(.insight-brand span,.insight-choice-row b,.consultation-checklist i,.pare-live-seconds,.pare-time-zone b){color:#ffd09b!important}
html[data-theme=dark] body main .opening-widget-dock :is(.pare-now-footer span,.pare-now-date span){color:#c7ddd4!important}
html[data-theme=dark] body main .opening-widget-dock .home-widget-fold-toggle span{color:#f5eee0!important}
.program-motion-page .motion-language-slide{--slide-accent:#944429}
html[data-theme=light] body.program-motion-page :is(.motion-tabs button,.motion-overline,.motion-stage-caption,.motion-slide-meta,.motion-secondary-link,.motion-carousel-controls>span,.motion-directory-heading>p){color:#486057!important}
html[data-theme=light] body.program-motion-page .motion-directory-heading h2 em{color:#8e4429}
html[data-theme=dark] body.program-motion-page main :is(.motion-carousel,.motion-language-slide,.motion-carousel-controls,.motion-tabs){background:#1a363d!important;color:#f4eee0!important;border-color:#658b85}
html[data-theme=dark] body.program-motion-page main .motion-language-slide{--slide-accent:#ffc094;--slide-soft:#314d50}
html[data-theme=dark] body.program-motion-page main :is(.motion-slide-copy h1,.motion-overline,.motion-stage-caption,.motion-slide-meta,.motion-secondary-link,.motion-carousel-controls>span,.motion-tabs button,.motion-directory-heading>p){color:#d6e4d9!important}
html[data-theme=dark] body.program-motion-page main :is(.motion-language-name,.motion-directory-heading h2 em){color:#ffc094!important}
html[data-theme=dark] body.program-motion-page main .motion-description{color:#d6e4d9!important}
html[data-theme=dark] body.program-motion-page main .motion-directory-file :is(small,strong,span,b){color:#f5eee0!important}
html[data-theme] body.program-motion-page main :is(.motion-offered-file,.motion-mini-file,.motion-speech){background:#f1ecdf;color:#26474a!important}
html[data-theme] body.program-motion-page main :is(.motion-offered-file,.motion-mini-file,.motion-speech) :is(strong,small,b,span){color:#26474a!important}
html[data-theme] body.program-motion-page main :is(.motion-file-tab,.motion-file-action){background:#944429!important;color:#fff8ec!important}
html[data-theme=dark] body main .app-showcase-foot{color:#d5e3db;background:#1d3b42}
@media(prefers-reduced-motion:no-preference){.language-stage .stage-index{animation:moduleBreath 7s ease-in-out infinite}.language-stage:nth-child(2n) .stage-index{animation-delay:-3.5s}}
@keyframes moduleBreath{0%,100%{translate:0 0}50%{translate:0 -4px}}
html[data-theme=light] body main .app-showcase-foot span,html[data-theme=light] body main .stage-price-copy small{color:#4c6269!important}
html[data-theme=dark] body main .app-showcase-foot span{color:#d5e3db!important}
html[data-theme] body.program-motion-page main .motion-offered-file :is(.motion-file-tab,.motion-file-action,.motion-file-action span){color:#fff8ec!important;background:#944429!important}
html[data-theme=light] body.program-motion-page main .motion-slide-meta span,html[data-theme=light] body.program-motion-page main .motion-carousel-controls>p{color:#486057!important}
html[data-theme=dark] body.program-motion-page main .motion-carousel-controls>p{color:#d6e4d9!important}
html[data-theme=dark] body main .opening-widget-dock .opening-fold-widget .hero-brand-content :is(.pare-live-clock,.pare-now-date time){color:#f3f0e5!important}
html[data-theme=dark] body main .opening-widget-dock .opening-fold-widget .hero-brand-content :is(.pare-live-label,.pare-time-zone,.pare-now-greeting,.pare-now-footer span,.pare-now-date span){color:#d5e5da!important}
html[data-theme=dark] body main .opening-widget-dock .opening-fold-widget .hero-brand-content :is(.pare-live-seconds,.pare-time-zone b){color:#ffd09b!important}
html[data-theme=dark] body main .opening-widget-dock .opening-fold-widget .insight-widget-body :is(.insight-kicker,h2,.insight-copy,.insight-footer){color:#e2ece0!important}
html[data-theme=dark] body main .opening-widget-dock .opening-fold-widget .insight-widget-body h2 em{color:#ffc89c!important}
html[data-theme=dark] body main .opening-widget-dock .opening-fold-widget :is(.insight-choice-row,.journey-map-steps,.media-insight-filters,.ecosystem-orbit,.consultation-checklist) button{background:#294b50!important;color:#edf3e8!important;border-color:#71958c!important}
html[data-theme=dark] body main .opening-widget-dock .opening-fold-widget :is(.insight-choice-row,.journey-map-steps,.media-insight-filters,.ecosystem-orbit,.consultation-checklist) button :is(span,strong,b,i){color:#edf3e8!important}
html[data-theme=dark] body main .fg-years>article{background:#25454b!important;border-color:#75948a!important}
html[data-theme=dark] body main .fg-years>article :is(b,p){color:#e0ebdf!important}
html[data-theme] body main .pricing-integrity-note>span{background:#815414;color:#fff}
html[data-theme=dark] body.program-motion-page main .intake-strip .container>div>span{background:#24474b;color:#ffd09e;padding:5px 8px;border-radius:6px}

html[data-theme=dark] body.program-motion-page main .motion-directory-file{color:#f5eee0!important}
html[data-theme=dark] body.program-motion-page main .motion-directory-mantra :is(span,em){color:#d1dfd1!important}
html[data-theme=dark] body.program-motion-page main .motion-directory-foot>span{color:#c8dacf!important}

/* The primary community card is a real uploaded-video slot, never a photo montage. */
.community-video-slot>img[data-community-poster-key]{display:none!important}
.community-video-slot{background:#173d49}
.community-video-placeholder{position:absolute;inset:0;z-index:1;display:grid;place-items:center;padding:28px 28px 180px;text-align:center;color:#e5eee4;background:radial-gradient(ellipse at 30% 25%,#355c5c,transparent 65%),#173d49;font-size:clamp(17px,2vw,25px);line-height:1.5}
.community-video-placeholder[hidden]{display:none!important}
.community-video-slot:not(.has-community-recording)>figcaption{padding-bottom:0}
html[data-theme=light] .community-video-placeholder{color:#24474a;background:radial-gradient(ellipse at 30% 25%,#d0dfcf,transparent 65%),#e4e6dc}

/* Phone screen and its real-app hotspot follow the same pose index as the body. */
.sticker-phone-hotspot.has-pose-phone{left:var(--phone-x0);top:var(--phone-y0);width:var(--phone-w0);height:var(--phone-h0);min-width:0;min-height:0;animation:horizonPhonePose 1.8s steps(1,end) infinite;display:grid;place-items:center;z-index:4}
.sticker-phone-hotspot.has-pose-phone::before{content:'';position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
.has-pose-phone>span{position:relative;z-index:1;font-size:12px;color:#fff}
.has-opening-stickers .opening-sticker-stage[data-scene=about] .group-cast-figure{width:min(100cqw,calc((100cqh - 88px)*var(--person-ratio,1)))}
@keyframes horizonPhonePose{0.0000000%{left:var(--phone-x0);top:var(--phone-y0);width:var(--phone-w0);height:var(--phone-h0)}16.6666667%{left:var(--phone-x1);top:var(--phone-y1);width:var(--phone-w1);height:var(--phone-h1)}33.3333333%{left:var(--phone-x2);top:var(--phone-y2);width:var(--phone-w2);height:var(--phone-h2)}50.0000000%{left:var(--phone-x3);top:var(--phone-y3);width:var(--phone-w3);height:var(--phone-h3)}66.6666667%{left:var(--phone-x4);top:var(--phone-y4);width:var(--phone-w4);height:var(--phone-h4)}83.3333333%{left:var(--phone-x5);top:var(--phone-y5);width:var(--phone-w5);height:var(--phone-h5)}100%{left:var(--phone-x0);top:var(--phone-y0);width:var(--phone-w0);height:var(--phone-h0)}}
@media(prefers-reduced-motion:reduce){.has-pose-phone{animation:none!important}}
.opening-full-person{overflow:hidden}

/* Original full-body stickers accompany supporting modules; pose loops stay in heroes. */
.legacy-sticker-context{display:grid;grid-template-columns:minmax(0,1fr) clamp(100px,10vw,150px);gap:20px;align-items:center;min-width:0}
.legacy-sticker-context>p{margin:0;color:inherit}
.legacy-community-sticker{margin:0;min-width:0;width:100%;height:200px;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;filter:none}
.legacy-community-sticker>img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:none}
.legacy-app-sticker,.legacy-consultation-sticker{width:min(100%,230px);height:280px;margin:20px auto}
@media(max-width:760px){.legacy-sticker-context{grid-template-columns:minmax(0,1fr) 104px;gap:12px}.legacy-community-sticker{height:168px}.legacy-app-sticker,.legacy-consultation-sticker{height:240px;width:190px}}
/* Audit 12.5.42: readable fallbacks and consultation copy in both themes. */
html[data-theme] body main .origin-number>i{color:#765529!important}
html[data-theme=light] body main .teacher-portrait-fallback{color:#31534e}
html[data-theme=dark] body main .teacher-portrait-fallback{color:#dce9de}
html[data-theme=dark] body main .card .card-icon{color:#ffd09f!important}
html[data-theme=dark] body main .insight-admissions :is(.insight-brand span,.insight-kicker,.insight-copy,.insight-footer,.insight-footer span,.insight-footer a,.consultation-checklist button){color:#dfebe0!important}
html[data-theme=dark] body main .insight-admissions .insight-widget-body h2{color:#f2f0e4!important}
html[data-theme=dark] body main .insight-admissions .insight-widget-body h2 em{color:#ffd09f!important}
html[data-theme=dark] body main .insight-admissions .insight-fold-toggle>span{color:#f2f0e4!important}
html[data-theme=dark] body main .insight-admissions .consultation-checklist i{color:#ffd09f!important}
html[data-theme=dark] body main .form-copy :is(h2,p,.consultation-points span){color:#e0e9de!important}
html[data-theme=dark] body main .form-copy :is(.eyebrow,.consultation-points b){color:#ffd09f!important}
html[data-theme] body.program-motion-page main .motion-offered-file .motion-file-action>b{color:#fff8ec!important}

/* Slower pose loops and original full-body companions at the widget media edge. */
.sticker-memory-tiles a.legacy-widget-sticker{padding:0;background:transparent;border:0;box-shadow:none;top:54%;left:0;right:auto;width:28%;max-width:140px;transform:none}
.has-opening-stickers .sticker-memory-tiles a.legacy-widget-sticker img{width:100%;height:clamp(130px,24cqh,210px);object-fit:contain;object-position:center bottom;border:0;border-radius:0;background:transparent;animation:none;filter:none}
.opening-sticker-stage:not(.has-group-cast) .sticker-memory-tiles a.legacy-widget-sticker{left:1%;right:auto;top:36%;width:28%;max-width:135px}
.opening-full-person{animation-duration:14s}.sticker-memory-tiles>a:not(.legacy-widget-sticker)>img{animation-duration:14s}
.program-motion-page .motion-person>img{animation-duration:4.8s}.has-pose-phone{animation-duration:4.8s}
@media(max-width:760px){.sticker-memory-tiles a.legacy-widget-sticker{width:29%;max-width:120px}.has-opening-stickers .sticker-memory-tiles a.legacy-widget-sticker img{height:150px}.opening-sticker-stage:not(.has-group-cast) .sticker-memory-tiles a.legacy-widget-sticker{width:25%;max-width:105px}}
