/* The section navigator and SVG lettering share the school's blue and yellow. */
.svg-heading-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.theme-b h2.svg-section-heading { line-height:0; max-width:100%; }
.theme-b h1.hero-svg-heading { line-height:0; max-width:100%; }
.hero-svg-highlight { fill:none; stroke:#ffd652; stroke-width:6px; }
.svg-title.motion-ready .hero-svg-highlight { opacity:0; }
.svg-title.is-playing .hero-svg-highlight { animation:balance-hero-underline .7s ease .65s both; }
@keyframes balance-hero-underline { from { opacity:0; stroke-dasharray:1; stroke-dashoffset:1; } to { opacity:1; stroke-dasharray:1; stroke-dashoffset:0; } }
.svg-title { display:block; max-width:100%; height:auto; overflow:visible; }
.svg-heading-char { fill:currentColor; stroke:currentColor; stroke-width:.7px; stroke-opacity:0; }
.svg-heading-accent { fill:none; stroke:#ddb62d; stroke-width:2.6px; stroke-linecap:round; }
.svg-heading-dot { fill:#ddb62d; }
.visit .svg-heading-accent { stroke:#ffe166; }
.visit .svg-heading-dot { fill:#ffe166; }
.svg-title.motion-ready .svg-heading-char { fill-opacity:0; stroke-opacity:0; }
.svg-title.motion-ready .svg-heading-decoration { opacity:0; }
.svg-title.is-playing .svg-heading-char { animation:balance-letter-draw .9s ease both; animation-delay:calc(var(--glyph-index) * .019s); }
.svg-title.is-playing .svg-heading-decoration { animation:balance-title-accent .6s ease .9s both; }
@keyframes balance-letter-draw {
  0% { fill-opacity:0; stroke-opacity:1; stroke-dasharray:1; stroke-dashoffset:1; }
  62% { fill-opacity:0; stroke-opacity:1; stroke-dasharray:1; stroke-dashoffset:0; }
  100% { fill-opacity:1; stroke-opacity:0; stroke-dasharray:1; stroke-dashoffset:0; }
}
@keyframes balance-title-accent { from { opacity:0; } to { opacity:1; } }
.hero-brand { display:flex; align-items:center; gap:18px; margin-bottom:20px; }
.hero-brand .eyebrow { margin:0; }
.hero-brand .eyebrow span { display:inline-block; white-space:nowrap; }
.animated-logo-mark { width:80px; height:80px; flex:0 0 80px; }
.blc-badge { display:block; width:100%; height:100%; }
.blc-badge .line { fill:none; stroke:#fff; stroke-linecap:butt; stroke-linejoin:round; }
.blc-badge .outer { stroke-width:1.9; }
.blc-badge .ring { stroke-width:5.3; }
.blc-badge .letter { stroke-width:9.2; }
.blc-badge .letter-l { stroke:#f0e62b; stroke-width:10.6; }
.blc-badge .labels { fill:#fff; }
.animated-logo-mark.motion-ready .line path { stroke-dasharray:1; stroke-dashoffset:1; }
.animated-logo-mark.motion-ready .labels { opacity:0; }
.animated-logo-mark.is-playing .outer { animation:balance-badge-draw 1.05s ease .05s both; }
.animated-logo-mark.is-playing .ring-top { animation:balance-badge-draw 1.15s ease .13s both; }
.animated-logo-mark.is-playing .ring-bottom { animation:balance-badge-draw 1.15s ease .2s both; }
.animated-logo-mark.is-playing .letter-b { animation:balance-badge-draw .85s ease .38s both; }
.animated-logo-mark.is-playing .letter-l { animation:balance-badge-draw .65s ease .7s both,balance-badge-sun 7s ease 2.5s infinite; }
.animated-logo-mark.is-playing .letter-c { animation:balance-badge-draw .8s ease .88s both; }
.animated-logo-mark.is-playing .caption { animation:balance-badge-appear .65s ease 1.3s both; }
.animated-logo-mark.is-playing .arc-labels { animation:balance-badge-appear .75s ease 1.5s both; }
.animated-logo-mark.has-played:not(.is-in-view) .letter-l { animation-play-state:running,paused; }
@keyframes balance-badge-draw { from { stroke-dasharray:1; stroke-dashoffset:1; } to { stroke-dasharray:1; stroke-dashoffset:0; } }
@keyframes balance-badge-appear { from { opacity:0; } to { opacity:1; } }
@keyframes balance-badge-sun { 0%,65%,100% { stroke:#f0e62b; } 79% { stroke:#fff582; } }
.section-rail { position:fixed; z-index:30; top:50%; left:19px; transform:translateY(-50%); width:155px; max-height:calc(100dvh - 70px); overflow-y:auto; overscroll-behavior:contain; padding:12px 0; scrollbar-width:thin; }
.rail-caption { margin:0 0 17px 1px; font-size:10px; color:#6d7e9e; letter-spacing:.08em; }
.rail-list { position:relative; list-style:none; padding:0; margin:0; }
.rail-list::before,.rail-list::after { content:''; position:absolute; left:8px; top:22px; bottom:22px; width:1px; background:#c8d3e8; }
.rail-list::after { background:#1648ce; transform:scaleY(var(--rail-progress,0)); transform-origin:top; transition:transform .2s ease; }
.rail-list li { position:relative; z-index:1; }
.rail-list a { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:12px; min-height:44px; padding:7px 1px; text-decoration:none; color:#697a99; font-size:12px; line-height:1.5; letter-spacing:0; }
.rail-dot { width:12px; height:12px; border:1.4px solid #a7b8d8; border-radius:50%; background:#fffdf7; margin-left:2px; transition:background .2s,border-color .2s,box-shadow .2s; }
.rail-list a.is-past .rail-dot { border-color:#1648ce; background:#e6ecfb; }
.rail-list a[aria-current="location"] { color:#113dae; font-weight:600; }
.rail-list a[aria-current="location"] .rail-dot { background:#ffdc58; border-color:#1648ce; box-shadow:0 0 0 4px #1648ce12; }
.rail-list a:hover { color:#1648ce; }
.rail-list a:focus-visible { outline:2px solid #1648ce; outline-offset:-2px; border-radius:4px; }
.section-rail-toggle { position:fixed; z-index:45; left:14px; bottom:max(14px,env(safe-area-inset-bottom)); display:inline-flex; align-items:center; gap:10px; min-height:48px; max-width:calc(100vw - 28px); padding:10px 17px; border:1px solid #b9c8e6; border-radius:26px; background:#fffdf7f5; color:#133c9e; box-shadow:0 5px 22px #102b8120; font:500 13px/1.5 var(--font-text); cursor:pointer; }
.section-rail-toggle svg { width:20px; height:20px; flex:0 0 20px; }
.section-rail-toggle:focus-visible { outline:3px solid #e3b328; outline-offset:3px; }
.has-section-nav [hidden] { display:none!important; }
.has-section-nav section[id] { scroll-margin-top:25px; }
.has-section-nav .feed-heading>div:first-child { flex:1; min-width:0; }
@media(min-width:1100px) {
  .has-section-nav>.header { flex-wrap:wrap; padding:20px 4%; gap:15px 20px; }
  .has-section-nav>.header .nav-cta { margin-left:auto; }
  .has-section-nav>.header nav { order:3; width:100%; justify-content:center; gap:20px; }
  .has-section-nav .hero-copy h1 { font-size:clamp(38px,3.8vw,60px); }
}
@media(max-width:1099px) {
  .section-rail:not([data-ready]) { display:none; }
  .section-rail { top:auto; bottom:76px; left:14px; transform:none; width:220px; padding:18px 17px; max-height:calc(100dvh - 135px); border:1px solid #c3d0e8; border-radius:15px; background:#fffdf7; box-shadow:0 12px 40px #102b8125; }
  .rail-caption { margin-bottom:12px; }
  .rail-list a { font-size:13px; }
  .has-section-nav>.footer { padding-bottom:90px; }
}
@media(max-width:800px) {
  .animated-logo-mark { width:64px; height:64px; flex-basis:64px; }
  .hero-brand { gap:16px; margin-bottom:20px; }
  .hero-svg-highlight { stroke-width:4px; }
}
.motion-off .svg-heading-char { fill-opacity:1!important; stroke-opacity:0!important; animation:none!important; }
.motion-off .svg-heading-decoration { opacity:1!important; animation:none!important; }
.motion-off .animated-logo-mark .line path { stroke-dashoffset:0!important; animation:none!important; }
.motion-off .animated-logo-mark .labels { opacity:1!important; animation:none!important; }
.motion-off .hero-svg-highlight { opacity:1!important; stroke-dashoffset:0!important; animation:none!important; }
@media(prefers-reduced-motion:reduce) {
  .svg-heading-char { fill-opacity:1!important; stroke-opacity:0!important; animation:none!important; }
  .svg-heading-decoration { opacity:1!important; animation:none!important; }
  .animated-logo-mark .line path { stroke-dashoffset:0!important; animation:none!important; }
  .animated-logo-mark .labels { opacity:1!important; animation:none!important; }
  .hero-svg-highlight { opacity:1!important; stroke-dashoffset:0!important; animation:none!important; }
  .rail-list::after,.rail-dot { transition:none; }
}
@media print {
  .section-rail,.section-rail-toggle { display:none!important; }
  .has-section-nav>.header,.has-section-nav>main,.has-section-nav>.footer { margin-left:0; }
  .svg-heading-char { fill-opacity:1!important; stroke-opacity:0!important; animation:none!important; }
  .svg-heading-decoration { opacity:1!important; }
  .animated-logo-mark .line path { stroke-dashoffset:0!important; }
  .animated-logo-mark .labels { opacity:1!important; }
  .hero-svg-highlight { opacity:1!important; stroke-dashoffset:0!important; animation:none!important; }
}
