/* Preferences enhance an accessible default; they are not a compliance overlay. */html{font-size:100%}html[data-text-size="125"]{--text-multiplier:1.25;font-size:125%}html[data-text-size="150"]{--text-multiplier:1.5;font-size:150%}html[data-text-size="200"]{--text-multiplier:2.0;font-size:200%}:focus-visible{outline:3px solid var(--purple);outline-offset:4px}#main-content:focus{outline:none}svg.icon{flex-shrink:0}.accessibility-trigger{align-items:center;display:inline-flex;gap:7px;min-height:44px}.accessibility-trigger .icon{height:20px;width:20px}.footer-legal{flex-wrap:wrap}#accessibility-dialog{max-height:calc(100dvh - 32px);overflow:auto;padding:32px;width:min(560px,calc(100% - 32px))}#accessibility-dialog h2{font-size:var(--font-section);margin:0;min-width:0;padding-right:0}#accessibility-dialog p{line-height:1.6}.accessibility-form{display:grid;gap:20px;margin-top:24px}.accessibility-form fieldset{border:0;margin:0;min-width:0;padding:0}.accessibility-form legend{font-weight:600;margin-bottom:10px}.accessibility-size-options{display:flex;flex-wrap:wrap;gap:8px}.accessibility-size-options label{background:#f7f7fc;border:1px solid var(--line);border-radius:8px;padding:10px}.accessibility-form label{align-items:center;cursor:pointer;display:flex;gap:10px;line-height:1.5;min-height:44px}.accessibility-form input{accent-color:var(--purple);flex:0 0 auto;height:20px;width:20px}.accessibility-options{display:grid;gap:4px}.accessibility-remember{border-top:1px solid var(--line);padding-top:16px}.accessibility-help{color:var(--muted);font-size:var(--text-14);margin-top:8px}.accessibility-status{font-size:var(--text-14);min-height:1.6em}
/* Native disclosure remains keyboard-operable; decoration is purely visual. */.accessibility-info{background:var(--surface-quick);border:1px solid var(--line);border-radius:12px;margin-top:20px;padding:0 16px}.accessibility-info summary{align-items:center;cursor:pointer;display:grid;font-size:var(--text-15);font-weight:600;gap:12px;grid-template-columns:22px minmax(0,1fr) 18px;line-height:1.5;list-style:none;min-height:56px;padding-block:16px}.accessibility-info summary::-webkit-details-marker{display:none}.accessibility-info-icon{color:var(--purple);height:22px;width:22px}.accessibility-info-chevron{height:18px;transform:rotate(90deg);transition:transform .18s ease;width:18px}.accessibility-info[open] .accessibility-info-chevron{transform:rotate(-90deg)}.accessibility-info[open] summary{border-bottom:1px solid var(--line);margin-bottom:16px}.accessibility-info p{font-size:var(--text-14);margin-bottom:16px}.accessibility-info a{text-decoration:underline}
/* Decorate actual text-bearing nodes: flex/grid parents alone do not cover their children. */html[data-underline-links="true"] :is(a,.text-link,.nav-column button,.nav-panel-footer button,.footer-legal button,[data-page],button.button,.listen-button strong,.card-action,.media-action,.quick-text strong,.event-info>strong,.news-card>strong,.hero-video>span:last-child){text-decoration-line:underline;text-decoration-skip-ink:auto;text-decoration-thickness:max(1px,.07em);text-underline-offset:.2em}
/* Native high contrast / forced colors stay under the user's OS control. */@media(forced-colors:active){button,a,input,summary{forced-color-adjust:auto}button,input{border:1px solid ButtonText}:focus-visible{outline-color:Highlight}}html[data-contrast="more"]{--ink:#101028;--line:#595969;--muted:#303040;--purple:#40149e}html[data-contrast="more"] body,html[data-contrast="more"] body *{background-color:var(--contrast-surface)!important;background-image:none!important;box-shadow:none!important;color:var(--contrast-ink)!important;text-shadow:none!important}html[data-contrast="more"] .faq-item[open]{border-color:var(--contrast-ink)}html[data-contrast="more"] .menu-toggle span{background-color:var(--contrast-ink)!important}html[data-contrast="more"] body *::before,html[data-contrast="more"] body *::after{background-image:none!important;box-shadow:none!important}html[data-contrast="more"] :is(button,a,input,summary):focus-visible,html[data-contrast="more"] .story-featured .listen-button:focus-visible{outline-color:var(--contrast-ink)}html[data-contrast="more"] :is(.button,.quick-card,.recognition-card,.story-regular,.media-card,input){border:1px solid var(--contrast-ink)!important}html[data-contrast="more"] .hero-shade{opacity:0}html[data-contrast="more"] .hero-copy{padding:16px}
/* Text enlargement reflows fixed-height presentation blocks. */html:not([data-text-size="100"]) .header{flex-wrap:wrap;height:auto;min-height:82px;padding-block:16px}html:not([data-text-size="100"]) .header>.navigation{flex-wrap:wrap}html:not([data-text-size="100"]) .hero{height:auto;min-height:480px}html:not([data-text-size="100"]) .hero-copy{bottom:auto;left:auto;max-width:none;padding:40px 24px 120px;position:relative;right:auto;top:auto;transform:none}html:not([data-text-size="100"]) .hero :is(h1,h2){overflow-wrap:anywhere}html:not([data-text-size="100"]) .hero-bottom{flex-wrap:wrap}html:not([data-text-size="100"]) .quick-card{min-width:0}html:is([data-text-size="150"],[data-text-size="200"]) :is(.quick-links,.events-news,.news-grid,.recognition-grid,.stories-grid,.media-grid,.resource-grid,.footer-information){grid-template-columns:minmax(0,1fr)}html:is([data-text-size="150"],[data-text-size="200"]) .quick-card{grid-template-columns:auto minmax(0,1fr) auto}html:is([data-text-size="150"],[data-text-size="200"]) .admissions{grid-template-columns:minmax(0,1fr)}html:is([data-text-size="150"],[data-text-size="200"]) .admissions-links{grid-column:1}html:is([data-text-size="150"],[data-text-size="200"]) .section-heading{align-items:flex-start;flex-direction:column}html:is([data-text-size="150"],[data-text-size="200"]) .mobile-menu .nav-panel{grid-template-columns:minmax(0,1fr)}html[data-reduced-motion="true"],html[data-reduced-motion="true"] *,html[data-reduced-motion="true"] *::before,html[data-reduced-motion="true"] *::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}html[data-reduced-motion="true"] .cta .button:is(:hover,:focus-visible)>.icon,html[data-reduced-motion="true"] .quick-card:is(:hover,:focus-visible) .quick-arrow{transform:none}@media(prefers-reduced-motion:reduce){.cta .button:is(:hover,:focus-visible)>.icon,.quick-card:is(:hover,:focus-visible) .quick-arrow{transform:none}*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}@media(max-width:479px){#accessibility-dialog{padding:24px}}#accessibility-dialog h2{overflow-wrap:anywhere}html:is([data-text-size="150"],[data-text-size="200"]) .story-featured{grid-template-columns:minmax(0,1fr)}html:is([data-text-size="150"],[data-text-size="200"]) .story-featured>.story-featured-photo{aspect-ratio:16/9;height:auto;width:100%}html:not([data-text-size="100"]) :is(h2,h3,.brand,.quick-text,.event-info,.footer-facts dd){overflow-wrap:anywhere}html:not([data-text-size="100"]) .footer-bottom{flex-wrap:wrap}html:not([data-text-size="100"]) .event-info{min-width:0}html:is([data-text-size="150"],[data-text-size="200"]) :is(p,a,button,time){overflow-wrap:anywhere;white-space:normal}html:is([data-text-size="150"],[data-text-size="200"]) .event-row .event{align-items:flex-start;flex-direction:column}html:is([data-text-size="150"],[data-text-size="200"]) .date{height:auto;min-width:3rem}html:is([data-text-size="150"],[data-text-size="200"]) .event-info{width:100%}html:is([data-text-size="150"],[data-text-size="200"]) .admissions .button{display:block;max-width:100%;white-space:normal;width:100%}html:is([data-text-size="150"],[data-text-size="200"]) .admissions .button .icon{display:inline-block;vertical-align:middle}.accessibility-heading{align-items:flex-start;background:white;display:flex;gap:12px;justify-content:space-between;margin:-32px -32px 16px;padding:24px 32px 16px;position:sticky;top:-32px;z-index:2}#accessibility-dialog .dialog-close{flex:0 0 44px;height:44px;order:1;position:static;width:44px}
/* Comfortable reading preference; WCAG threshold overrides are tested separately. */html[data-text-spacing="true"] :is(p,a,button,label,legend,summary,h1,h2,h3,span,dt,dd,input,li){letter-spacing:var(--reading-letter-spacing)!important;line-height:var(--reading-line-height)!important;overflow-wrap:anywhere;white-space:normal;word-spacing:var(--reading-word-spacing)!important}html[data-text-spacing="true"] p{margin-bottom:var(--reading-paragraph-gap)!important}html[data-text-spacing="true"] .header{flex-wrap:wrap;height:auto;min-height:82px;padding-block:16px}html[data-text-spacing="true"] .header>.navigation{flex-wrap:wrap}html[data-text-spacing="true"] .footer-bottom{flex-wrap:wrap}@media(max-width:479px){.accessibility-heading{margin:-24px -24px 16px;padding:20px 24px 16px;top:-24px}}
/* Controls stay separate from the enlarged hero copy and retain usable targets. */.slide-dot{min-width:32px}.calendar-add>span{display:grid;font-size:0;place-items:center}html:is([data-text-size="150"],[data-text-size="200"],[data-text-spacing="true"]) .hero{height:auto}html:is([data-text-size="150"],[data-text-size="200"],[data-text-spacing="true"]) .hero-copy{bottom:auto;left:auto;max-width:none;padding:32px 24px 24px;position:relative;right:auto;top:auto;transform:none}html:is([data-text-size="150"],[data-text-size="200"],[data-text-spacing="true"]) .hero-bottom{bottom:auto;flex-wrap:wrap;gap:16px;left:auto;padding:0 24px 24px;position:relative;right:auto}html:is([data-text-size="150"],[data-text-size="200"],[data-text-spacing="true"]) .slide-dots{left:auto;position:static;transform:none}html:is([data-text-size="150"],[data-text-size="200"]) .mobile-menu{max-width:640px;padding:16px;scroll-padding-top:112px;width:calc(100% - 16px)}html:is([data-text-size="150"],[data-text-size="200"]) .mobile-menu-heading{margin:-16px -16px 0;padding:16px;top:-16px}html:is([data-text-size="150"],[data-text-size="200"]) .mobile-menu .nav-panel{padding:24px 12px 16px}html:is([data-text-size="150"],[data-text-size="200"]) .mobile-menu .nav-column h3{margin-inline:0}html:is([data-text-size="150"],[data-text-size="200"]) .mobile-menu .nav-column :is(a,button){padding-inline:0}
/* Audit fixes apply to the default page, independently of optional preferences. */.hero-shade{background:linear-gradient(0deg,var(--hero-overlay-start) 0,var(--hero-overlay-start) 64px,transparent 140px),linear-gradient(90deg,var(--hero-overlay-start) 0,var(--hero-overlay-start) calc(var(--gutter) + var(--hero-copy-width)),var(--hero-overlay-end) var(--hero-overlay-fade))}.hero-copy{max-width:min(var(--hero-copy-width),calc(100% - 2 * var(--gutter)))}.hero :is(.slide-controls,.slide-dots,.hero-video){background:none;border-radius:999px;padding:4px 8px}html:is([data-text-size="125"],[data-text-size="150"],[data-text-size="200"],[data-text-spacing="true"]) .hero-shade{background:var(--hero-overlay-start)}.admissions p{overflow-wrap:anywhere}.text-link,.school-notice-link{min-height:24px}#accessibility-dialog,.mobile-menu{scroll-padding-top:calc(var(--dialog-heading-height,112px) + 12px)}html[data-theme="dark"] .media-section .media-card:nth-child(n) .media-copy>.content-label{background:var(--dark-surface-raised);color:var(--dark-text)}.slide-dot::after{background:#fff}.slide-dot.active::after{background:var(--lime)}
/* Keep slide controls separate when user spacing wraps their labels. */@media(max-width:479px){.hero{min-height:460px}.hero-copy{bottom:auto;padding-bottom:24px}.hero-bottom{bottom:auto;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));left:auto;margin-inline:12px 17px;padding-bottom:19px;position:relative;right:auto;width:calc(100% - 29px)}.hero-bottom .slide-dots{grid-column:1/-1;justify-self:center;order:3;position:static;transform:none}.hero-bottom .slide-controls{justify-self:start;white-space:nowrap}.hero-bottom .hero-video{justify-self:start;min-width:0}html:is([data-text-size="150"],[data-text-size="200"]) .hero-bottom{grid-template-columns:minmax(0,1fr)}html:is([data-text-size="150"],[data-text-size="200"]) .hero-video{justify-self:start}}
/* Dark theme: all colors come from tokens.css. State rules live beside their components. */html[data-theme="dark"]{--card-border:var(--dark-card-border);--contrast-ink:var(--dark-icon);--contrast-surface:var(--dark-contrast-surface);--ink:var(--dark-text);--line:var(--dark-border);--muted:var(--dark-muted);--page-surface:var(--dark-background);--purple:var(--dark-accent);--purple-dark:var(--dark-accent-hover);--surface-note:var(--dark-surface-raised);--surface-provider:var(--dark-background);--surface-quick:var(--dark-surface);color-scheme:dark}html[data-theme="dark"] :is(body,.site-shell){background:var(--dark-background)}html[data-theme="dark"] :is(.page,.header,.content,.site-footer,.mobile-menu-heading,.accessibility-heading,dialog,.nav-panel,.events,.news,.news-card,.recognition-card,.story-regular,.resource,.media-card,.quick-card,.recognition,.media-section,.accessibility-info){background:var(--dark-surface);border-color:var(--dark-border);box-shadow:none;color:var(--dark-text)}html[data-theme="dark"] :is(.school-notice,.date,.quick-icon,.content-label,.news-tag,.calendar-add,.story-filters button,.search-toggle,.dialog-close,.accessibility-size-options label,.mobile-menu .nav-panel,.calendar-options a,#search-dialog .search-results button,#search-dialog .search-results a){background:var(--dark-surface-raised);border-color:var(--dark-border);color:var(--dark-text)}html[data-theme="dark"] :is(h2,h3,p,dt,dd,.section-intro,.news-date,.news-description,.recognition-copy,.story-copy,.media-copy,.resource-description,.footer-facts,.footer-bottom,.footer-legal,.nav-column h3,.nav-column a,.nav-column button,.brand,.school-notice-copy,.school-notice-link,.school-notice-bell,.footer-community>span){color:var(--dark-text)}html[data-theme="dark"] :is(.text-link,.card-action,.media-action,.footer-top,.accessibility-info-icon){color:var(--dark-accent)}html[data-theme="dark"] :is(.button,.story-filters button.active,.skip-link,.play-circle){background:var(--dark-action);color:var(--dark-action-text)}html[data-theme="dark"] :is(.hero,.story-featured,.admissions,.contact-cta) :is(h1,h2,h3,p,.content-label){color:var(--dark-icon)}html[data-theme="dark"] .hero .button{color:var(--dark-action-text)}html[data-theme="dark"] .admissions .text-link{color:var(--dark-icon)}html[data-theme="dark"] :is(.story-featured .listen-button,.contact-cta .button){background:var(--dark-text);color:var(--dark-listen-ink)}html[data-theme="dark"] .story-featured .play-circle{color:var(--dark-listen-ink)}html[data-theme="dark"] .media-section .media-card:nth-child(n){background:var(--dark-surface);border-color:var(--dark-border)}html[data-theme="dark"] .media-section .media-card :is(.media-copy,.media-action){background:transparent;color:var(--dark-text)}html[data-theme="dark"] .media-section .media-card .media-copy :is(strong,span){color:var(--dark-text)}html[data-theme="dark"] .media-section .media-card .media-copy .play-circle{background:var(--dark-action);color:var(--dark-action-text)}html[data-theme="dark"] .resource .resource-heading .icon{background:var(--dark-surface-raised);color:var(--dark-icon)}html[data-theme="dark"] :is(.text-link,.quick-icon,.calendar-add,.header-actions) .icon{color:currentColor}html[data-theme="dark"] .footer-socials :is(a,button){background:var(--dark-surface-raised);color:var(--dark-icon)}html[data-theme="dark"] .footer-socials :is(a,button) .icon{color:inherit;stroke:currentColor}html[data-theme="dark"] .accessibility-form input{accent-color:var(--dark-accent)}html[data-theme="dark"] :focus-visible{outline-color:var(--dark-focus)}html[data-theme="dark"] .site-footer::before,html[data-theme="dark"] .site-footer::after{opacity:.15}html[data-theme="dark"] #main-content{background-image:none}
/* Match pointer feedback with keyboard feedback; preserve visible focus outlines. */html[data-theme="dark"] :is(.quick-card,.calendar-add,.nav-column button,.nav-column a,#search-dialog .search-results button,#search-dialog .search-results a,.calendar-options a,.search-toggle,.dialog-close,.school-notice-close,.footer-socials :is(a,button),.resource-links .text-link):is(:hover,:focus-visible){background:var(--dark-hover);border-color:var(--dark-accent);color:var(--dark-icon)}html[data-theme="dark"] :is(.story-filters button:not(.active)):is(:hover,:focus-visible){background:var(--dark-hover);color:var(--dark-icon)}html[data-theme="dark"] :is(.button,.story-filters button.active):is(:hover,:focus-visible){background:var(--dark-action-hover);color:var(--dark-action-text)}html[data-theme="dark"] :is(.story-featured .listen-button,.contact-cta .button):is(:hover,:focus-visible){background:var(--dark-action-hover);color:var(--dark-listen-ink)}html[data-theme="dark"] :is(.news-card,.recognition-card,.media-section .media-card:nth-child(n)):is(:hover,:focus-visible){background:var(--dark-hover);border-color:var(--dark-card-border);box-shadow:none}html[data-theme="dark"] :is(.news-card,.recognition-card,.media-section .media-card:nth-child(n)):is(:hover,:focus-visible) :is(strong,.news-description,.recognition-copy,.media-copy>span){color:var(--dark-text)}html[data-theme="dark"] :is(.text-link,.footer-legal :is(a,button),.school-notice-link):is(:hover,:focus-visible){color:var(--dark-accent-hover)}html[data-theme="dark"] .admissions .text-link:is(:hover,:focus-visible){color:var(--dark-action)}html[data-theme="dark"] .media-section .media-card:nth-child(n) .media-copy>.content-label{background:var(--dark-surface-raised);color:var(--dark-text)}html[data-theme="dark"] .nav-panel-footer{background:var(--dark-surface-raised)}html[data-theme="dark"] .nav-panel-footer :is(a,button){color:var(--dark-text)}html[data-theme="dark"] .nav-panel-footer :is(a,button):is(:hover,:focus-visible){background:var(--dark-hover);color:var(--dark-icon)}html[data-theme="dark"] .story-featured .content-label{background:transparent}html[data-theme="dark"][data-text-size="100"][data-text-spacing="false"] .hero-shade{background:linear-gradient(90deg,var(--hero-overlay-start) 0,var(--hero-overlay-start) calc(var(--gutter) + 520px),var(--hero-dark-overlay-end) 100%)}html[data-theme="dark"] .hero :is(.slide-controls,.slide-dots,.hero-video){background:var(--hero-overlay-start)}html[data-theme="dark"] #dialog-content :is(p,ul,li){color:var(--dark-text)}html[data-theme="dark"] :is(#calendar-summary,.calendar-help){color:var(--dark-muted)}html[data-theme="dark"] .search-field{background:var(--dark-surface-raised);border-color:var(--dark-border)}html[data-theme="dark"] .search-field:focus-within{border-color:var(--dark-focus);outline-color:var(--dark-focus)}html[data-theme="dark"] .document-icon[data-file-type]{background:var(--dark-surface-raised);color:var(--dark-text)}
