/* First scroll: the orange point falls into the accessibility control. */
.companion-origin{display:block;width:34px;height:34px;background:var(--orange);border-radius:50%;margin:24px 0}
.hero>.companion-origin,.course-hero .companion-origin{display:none}
.has-corner-companion .hero{position:relative}
.has-corner-companion[data-ball-state=falling] .portal-center,.has-corner-companion[data-ball-state=docked] .portal-center,.has-corner-companion[data-ball-state=falling] .companion-origin,.has-corner-companion[data-ball-state=docked] .companion-origin{visibility:hidden}
.has-corner-companion[data-ball-state=docked] .portal-center{animation:none!important}
.falling-accessibility-ball{position:fixed;left:0;top:0;width:96px;height:96px;z-index:36;pointer-events:none;transform-origin:center;will-change:transform}
.falling-accessibility-ball svg{width:96px;height:96px}
.falling-accessibility-ball[hidden]{display:none}
.accessibility-trigger{position:relative;display:grid;place-items:center;flex:none;width:58px;height:58px;padding:15px;border:1px solid #8aa7ac;border-radius:50%;background:#fff;color:#143b43;cursor:pointer;transition:background 360ms ease,border-color 360ms ease}
.accessibility-trigger>svg{width:28px;height:28px}
[data-ball-state=falling] .accessibility-trigger>svg{opacity:0}
[data-ball-state=docked] .accessibility-trigger{background:#ed7e20;border-color:#ed7e20;box-shadow:0 5px 16px #143b4320}
[data-ball-state=docked] .accessibility-trigger:hover{background:#f28c35}
.accessibility-trigger:focus-visible{outline:3px solid #143b43;outline-offset:4px}
.accessibility-tooltip{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);padding:8px 12px;border-radius:5px;background:#143b43;color:#fff;font-size:13px;line-height:1.3;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none}
.accessibility-trigger:hover .accessibility-tooltip,.accessibility-trigger:focus-visible .accessibility-tooltip{opacity:1;visibility:visible}
.accessibility-panel{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + 72px);z-index:40;width:min(356px,calc(100vw - 32px));max-height:calc(100vh - 125px);max-height:calc(100dvh - 125px);overflow-y:auto;overscroll-behavior:contain;padding:24px;background:#fff;color:#143b43;border-radius:12px;box-shadow:0 12px 42px #102f3950;font-family:Instrument Sans,Arial,sans-serif;line-height:1.5}
.accessibility-panel[hidden]{display:none}
.accessibility-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.accessibility-panel h2{font-family:Instrument Sans,Arial,sans-serif;font-size:22px;line-height:1.2;font-weight:700;letter-spacing:0}
.accessibility-close{display:grid;place-items:center;width:44px;height:44px;flex:none;margin:-8px -8px -8px 0;padding:12px;background:transparent;border:0;border-radius:4px;color:#143b43}
.accessibility-close svg{width:20px;height:20px}
.accessibility-close:hover{background:#e7f3f4}
.accessibility-intro{font-size:14px!important;line-height:1.6;margin:12px 0 20px;color:#34515a}
.accessibility-options{display:grid;gap:10px}
.accessibility-option,.accessibility-panel .motion-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:54px;margin:0;padding:13px 15px;border:1px solid #b0c4c7;border-radius:6px;background:white;color:#143b43;font-size:15px;line-height:1.4;box-shadow:none;text-align:left}
.accessibility-panel .motion-toggle{justify-content:flex-start;max-width:none}
.accessibility-panel .motion-toggle svg{width:16px;height:16px;flex:none}
.accessibility-option:hover,.accessibility-panel .motion-toggle:hover{background:#f3f8f8}
.accessibility-option[aria-pressed=true],.accessibility-panel .motion-toggle[aria-pressed=true]{background:#e7f3f4;border-color:#527a82}
.accessibility-switch{display:block;position:relative;flex:none;width:32px;height:20px;border:1px solid #78969c;border-radius:11px;background:#e7eeee}
.accessibility-switch:after{content:'';position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#527079;transition:transform 360ms ease}
[aria-pressed=true]>.accessibility-switch{background:#143b43;border-color:#143b43}
[aria-pressed=true]>.accessibility-switch:after{background:#fff;transform:translateX(12px)}
.accessibility-reset{display:block;min-height:44px;margin-top:12px;padding:8px 0;border:0;background:none;color:#143b43;font-size:14px;text-decoration:underline;text-underline-offset:4px;text-align:left}
.accessibility-statement{display:block;margin-top:10px;padding-top:16px;border-top:1px solid #cbd8d8;color:#34515a;font-size:13px;line-height:1.6}
.accessibility-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
[data-accessibility-open=true] .back-to-top{visibility:hidden}
[data-large-text=true] main :is(p,li,summary,label,address,.small,.note,.role,.profile-link,.schedule-item span){font-size:24px!important;line-height:1.65!important;overflow-wrap:anywhere}
[data-high-contrast=true]{--ink:#082c34;--body:#082c34;--muted:#183a42;--line:#718d92;--water:#eff9fa;--paper:#fafafa}
[data-high-contrast=true] .site-header{background:#fff;border-bottom-color:#718d92}
[data-high-contrast=true] .hero p,[data-high-contrast=true] .contact-section p,[data-high-contrast=true] .contact-section address,[data-high-contrast=true] .schedule-panel .small,[data-high-contrast=true] .schedule-item span{color:#fff}
[data-high-contrast=true] .pathway span,[data-high-contrast=true] .fact span,[data-high-contrast=true] figcaption,[data-high-contrast=true] .faculty .role{color:#183a42}
@media(max-width:768px){.course-hero .companion-origin{display:block}}
@media(max-width:640px),(max-height:500px){
  .has-corner-companion .hero>.companion-origin{display:block;position:absolute;width:40px;height:40px;right:var(--gutter);top:24px;margin:0}
  .has-corner-companion .hero .portal-center{visibility:hidden}
}
@media(max-width:640px){
  .accessibility-trigger{width:54px;height:54px;padding:13px}
  .accessibility-panel{right:max(12px,env(safe-area-inset-right));bottom:calc(max(12px,env(safe-area-inset-bottom)) + 68px);max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px);padding:20px}
  .accessibility-panel h2{font-size:21px}
}
@media(max-height:500px){.accessibility-panel{bottom:80px;max-height:calc(100dvh - 94px);padding:16px 20px}.accessibility-intro{margin:8px 0 12px}}
@media(prefers-reduced-motion:reduce){.falling-accessibility-ball{display:none!important}.accessibility-trigger,.accessibility-switch:after{transition:none!important}}
@media print{.falling-accessibility-ball,.accessibility-panel{display:none!important}.has-corner-companion .portal-center{visibility:visible!important}.companion-origin{display:none!important}}
