:root {
  --academy-ink: #082c4c;
  --academy-ink-deep: #041e35;
  --academy-blue: #0969b4;
  --academy-blue-bright: #168ee0;
  --academy-cyan: #59d5df;
  --academy-teal: #087f86;
  --academy-accent: #f6c344;
  --academy-paper: #f6f8fb;
  --academy-white: #fff;
  --academy-muted: #5d6d7b;
  --academy-border: #dbe4eb;
  --academy-radius: 1.25rem;
  --academy-shadow: 0 1.5rem 4rem rgba(4, 30, 53, .12);
}

.academy-v1 {
  background: var(--academy-white);
  color: var(--academy-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  text-rendering: optimizeLegibility;
}

.academy-v1 h1,
.academy-v1 h2,
.academy-v1 h3,
.academy-v1 p { text-wrap: pretty; }
.academy-v1 h1,
.academy-v1 h2,
.academy-v1 h3 { color: inherit; font-weight: 750; letter-spacing: -.035em; }
.academy-v1 a { text-underline-offset: .2em; }
.academy-v1 :focus-visible { outline: 3px solid var(--academy-accent); outline-offset: 3px; }
.academy-icon-sprite { height: 0; overflow: hidden; position: absolute; width: 0; }
.academy-icon { fill: none; flex: 0 0 auto; height: 1.15em; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; vertical-align: -.16em; width: 1.15em; }
.academy-icon .academy-icon-fill { fill: currentColor; stroke: none; }

.academy-skip-link {
  background: var(--academy-white);
  color: var(--academy-ink);
  left: 1rem;
  padding: .75rem 1rem;
  position: fixed;
  top: -5rem;
  z-index: 1100;
}
.academy-skip-link:focus { top: 1rem; }

.academy-navbar {
  background: linear-gradient(135deg, #075f8c, var(--academy-ink-deep));
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  min-height: 4.75rem;
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  backdrop-filter: blur(12px);
}
.academy-brand { align-items: center; color: var(--academy-white); display: flex; font-size: 1.05rem; gap: .65rem; letter-spacing: -.02em; }
.academy-brand:hover { color: var(--academy-white); }
.academy-brand img { filter: drop-shadow(0 .2rem .45rem rgba(0,0,0,.24)); object-fit: contain; }
.academy-navbar .nav-link { color: rgba(255,255,255,.78); font-size: .94rem; font-weight: 400; padding: .7rem .8rem !important; }
.academy-navbar .nav-link:hover { color: var(--academy-white); }
.academy-navbar .navbar-toggler { border-color: rgba(255,255,255,.3); }
.academy-navbar .academy-btn-primary { background: var(--academy-accent); color: var(--academy-ink-deep); }
.academy-navbar .academy-btn-primary:hover { background: #ffda6b; color: var(--academy-ink-deep); }

.academy-btn { align-items: center; border: 1px solid transparent; border-radius: .75rem; display: inline-flex; font-weight: 700; gap: .6rem; justify-content: center; padding: .65rem 1rem; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.academy-btn:hover { transform: translateY(-1px); }
.academy-btn-lg { min-height: 3.25rem; padding: .8rem 1.25rem; }
.academy-btn-primary { background: var(--academy-ink); color: var(--academy-white); }
.academy-btn-primary:hover { background: var(--academy-blue); color: var(--academy-white); }
.academy-btn-accent { background: var(--academy-accent); color: var(--academy-ink-deep); }
.academy-btn-accent:hover { background: #ffda6b; color: var(--academy-ink-deep); }
.academy-btn-ghost { border-color: rgba(255,255,255,.45); color: var(--academy-white); }
.academy-btn-ghost:hover { background: rgba(255,255,255,.1); border-color: var(--academy-white); color: var(--academy-white); }
.academy-btn-outline { border-color: var(--academy-border); color: var(--academy-ink); }
.academy-btn-outline:hover { background: var(--academy-paper); border-color: var(--academy-blue); color: var(--academy-blue); }
.academy-btn-light { background: var(--academy-white); color: var(--academy-ink); }
.academy-btn-light:hover { background: var(--academy-accent); color: var(--academy-ink-deep); }

.academy-hero { background: radial-gradient(circle at 78% 25%, rgba(22,142,224,.38), transparent 27rem), linear-gradient(135deg, var(--academy-ink-deep), #073f6b 70%, #075f8c); color: var(--academy-white); overflow: hidden; padding: clamp(5rem, 9vw, 8.5rem) 0; position: relative; }
.academy-hero h1 { color: var(--academy-white); font-size: clamp(3rem, 6.7vw, 6rem); letter-spacing: -.065em; line-height: .98; max-width: 12ch; }
.academy-hero-lead { color: #d9e9f4; font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.65; max-width: 43rem; }
.academy-eyebrow { align-items: center; color: #bfe8ef; display: flex; font-size: .78rem; font-weight: 750; gap: .75rem; letter-spacing: .11em; margin-bottom: 1.5rem; text-transform: uppercase; }
.academy-eyebrow span { background: var(--academy-cyan); border-radius: 999px; height: .5rem; width: .5rem; }
.academy-hero-orbit { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; pointer-events: none; position: absolute; }
.academy-hero-orbit-one { height: 32rem; right: -13rem; top: -18rem; width: 32rem; }
.academy-hero-orbit-two { bottom: -24rem; height: 42rem; left: 28%; width: 42rem; }
.academy-hero-facts { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 3.5rem 0 0; max-width: 52rem; padding: 0; }
.academy-hero-facts li { align-items: flex-start; color: #d9e9f4; display: flex; font-size: .84rem; gap: .65rem; line-height: 1.4; }
.academy-hero-facts > li > .academy-icon { color: var(--academy-cyan); height: 1.2rem; width: 1.2rem; }
.academy-hero-facts strong, .academy-hero-facts span { display: block; }
.academy-hero-facts strong { color: var(--academy-white); font-size: .9rem; margin-bottom: .2rem; }
.academy-hero-visual { margin: 1rem auto; max-width: 29rem; position: relative; }
.academy-tech-canvas { aspect-ratio: 1; background: radial-gradient(circle at 43% 38%, rgba(89,213,223,.28), transparent 24%), radial-gradient(circle at 64% 64%, rgba(246,195,68,.15), transparent 22%), linear-gradient(145deg, rgba(22,142,224,.32), rgba(4,30,53,.56)); border: 1px solid rgba(255,255,255,.2); border-radius: 42% 58% 48% 52% / 50% 43% 57% 50%; box-shadow: inset 0 0 4rem rgba(89,213,223,.08), 0 2rem 6rem rgba(0,0,0,.32); overflow: hidden; position: relative; width: 100%; }
.academy-tech-canvas::before { background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 2.25rem 2.25rem; content: ""; inset: 0; mask-image: radial-gradient(circle, #000 20%, transparent 72%); position: absolute; }
.academy-tech-canvas::after { background: linear-gradient(105deg, transparent 35%, rgba(89,213,223,.18) 50%, transparent 65%); content: ""; inset: -30%; position: absolute; transform: rotate(-8deg); }
.academy-tech-core { align-items: center; background: rgba(4,30,53,.72); border: 1px solid rgba(89,213,223,.55); border-radius: .75rem; box-shadow: 0 0 0 .375rem rgba(89,213,223,.05), 0 .75rem 1.5rem rgba(0,0,0,.25); display: flex; height: 4.75rem; justify-content: center; left: 50%; position: absolute; top: 50%; transform: translate(-50%,-50%); width: 4.75rem; z-index: 2; }
.academy-tech-core-mark { fill: none; height: 3.25rem; stroke: var(--academy-cyan); stroke-linecap: round; stroke-linejoin: round; stroke-width: 4; width: 3.25rem; }
.academy-tech-ring { border: 1px solid rgba(89,213,223,.35); border-radius: 50%; left: 50%; position: absolute; top: 50%; transform: translate(-50%,-50%); }
.academy-tech-ring-one { height: 15rem; width: 15rem; }
.academy-tech-ring-two { border-style: dashed; height: 21rem; width: 21rem; }
.academy-tech-node { background: var(--academy-accent); border: .3rem solid rgba(4,30,53,.9); border-radius: 50%; box-shadow: 0 0 0 .3rem rgba(246,195,68,.16); height: 1.1rem; position: absolute; width: 1.1rem; z-index: 3; }
.academy-tech-node-one { left: 20%; top: 31%; }
.academy-tech-node-two { right: 17%; top: 44%; }
.academy-tech-node-three { bottom: 18%; right: 22%; }
.academy-tech-label { color: rgba(255,255,255,.7); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .64rem; letter-spacing: .08em; position: absolute; text-transform: uppercase; z-index: 3; }
.academy-tech-label-one { left: 12%; top: 22%; }
.academy-tech-label-two { right: 10%; top: 34%; }
.academy-tech-label-three { bottom: 11%; right: 27%; }
.academy-code-card { align-items: center; backdrop-filter: blur(14px); background: rgba(4,30,53,.88); border: 1px solid rgba(255,255,255,.18); border-radius: .9rem; box-shadow: 0 1rem 3rem rgba(0,0,0,.24); display: flex; gap: .75rem; padding: .9rem 1rem; position: absolute; }
.academy-code-card-top { right: -1rem; top: 8%; }
.academy-code-card-bottom { bottom: 4%; font-size: .85rem; left: -2rem; max-width: 17rem; }
.academy-code-card-bottom strong, .academy-code-card-bottom span { display: block; }
.academy-code-dot { background: var(--academy-cyan); border-radius: 50%; box-shadow: 0 0 0 .3rem rgba(89,213,223,.15); height: .55rem; width: .55rem; }
.academy-code-card code { color: #d8f7fa; font-size: .8rem; }
.academy-card-icon { align-items: center; background: var(--academy-accent); border-radius: .6rem; color: var(--academy-ink); display: flex !important; flex: 0 0 2.25rem; height: 2.25rem; justify-content: center; }

.academy-proof { background: var(--academy-white); border-bottom: 1px solid var(--academy-border); }
.academy-proof .col-6:not(:last-child) { border-right: 1px solid var(--academy-border); }
.academy-proof p { margin: 0; padding: 1.6rem 1rem; text-align: center; }
.academy-proof strong, .academy-proof span { display: block; }
.academy-proof strong { font-size: .95rem; }
.academy-proof span { color: var(--academy-muted); font-size: .78rem; margin-top: .25rem; }

.academy-section { padding: clamp(5rem, 9vw, 8rem) 0; }
.academy-section-light { background: var(--academy-paper); }
.academy-section-heading { margin: 0 auto 3.5rem; max-width: 49rem; text-align: center; }
.academy-section-heading h2, .academy-foundation h2, .academy-directions h2, .academy-faq h2, .academy-journal h2, .academy-final-cta h2 { font-size: clamp(2.25rem, 4.4vw, 4rem); line-height: 1.04; }
.academy-section-heading > p:last-child, .academy-section-lead { color: var(--academy-muted); font-size: 1.1rem; line-height: 1.7; }
.academy-kicker { color: var(--academy-blue); font-size: .78rem; font-weight: 800; letter-spacing: .14em; margin-bottom: 1rem; text-transform: uppercase; }
.academy-kicker-light { color: var(--academy-cyan); }

.academy-audience-card { border-radius: var(--academy-radius); color: var(--academy-white); display: flex; flex-direction: column; height: 100%; min-height: 29rem; overflow: hidden; padding: 2rem; position: relative; }
.academy-audience-card-blue { background: linear-gradient(145deg, #0b72bd, #07528c); }
.academy-audience-card-navy { background: linear-gradient(145deg, #0a3458, #061f36); }
.academy-audience-card-teal { background: linear-gradient(145deg, #078991, #05656d); }
.academy-audience-card h3 { color: var(--academy-white); font-size: 1.75rem; line-height: 1.15; max-width: 14ch; }
.academy-audience-card > p:not(.academy-card-label) { color: rgba(255,255,255,.78); line-height: 1.65; }
.academy-audience-card a { color: var(--academy-white); font-weight: 700; margin-top: auto; text-decoration: none; }
.academy-audience-card a:hover { text-decoration: underline; }
.academy-audience-icon { height: 3rem; margin: 2.8rem 0 2rem; width: 3rem; }
.academy-card-number { color: rgba(255,255,255,.4); font-family: ui-monospace, monospace; font-size: .8rem; position: absolute; right: 2rem; top: 2rem; }
.academy-card-label { color: rgba(255,255,255,.6); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }

.academy-foundation { background: var(--academy-white); }
.academy-foundation-visual { position: relative; }
.academy-foundation-visual img { aspect-ratio: 1; border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); height: auto; object-fit: cover; width: 100%; }
.academy-foundation-badge { align-items: center; background: var(--academy-white); border-radius: .8rem; bottom: -1rem; box-shadow: 0 1rem 2rem rgba(4,30,53,.18); display: flex; font-size: .9rem; font-weight: 750; gap: .6rem; padding: 1rem 1.2rem; position: absolute; right: -1rem; }
.academy-foundation-badge .academy-icon { color: var(--academy-blue); height: 1.3rem; width: 1.3rem; }
.academy-check-list { display: grid; gap: .85rem; list-style: none; margin: 2rem 0; padding: 0; }
.academy-check-list li { align-items: flex-start; display: flex; gap: .75rem; }
.academy-check-list .academy-icon { background: #dff3f5; border-radius: 50%; color: var(--academy-teal); flex: 0 0 1.45rem; height: 1.45rem; margin-top: .08rem; padding: .24rem; width: 1.45rem; }
.academy-course-meta { border-bottom: 1px solid var(--academy-border); border-top: 1px solid var(--academy-border); display: grid; grid-template-columns: repeat(3, 1fr); margin: 2rem 0; padding: 1.25rem 0; }
.academy-course-meta div:not(:last-child) { border-right: 1px solid var(--academy-border); }
.academy-course-meta div { padding: 0 1rem; }
.academy-course-meta div:first-child { padding-left: 0; }
.academy-course-meta dt { color: var(--academy-muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.academy-course-meta dd { font-weight: 750; margin: .25rem 0 0; }
.academy-action-note { align-items: center; color: var(--academy-muted); display: flex; font-size: .8rem; gap: .4rem; margin: 1rem 0 0; }

.academy-olympiads { background: var(--academy-white); padding: 0 0 clamp(5rem, 9vw, 8rem); }
.academy-olympiads-panel { background: linear-gradient(135deg, #075f8c, var(--academy-ink-deep)); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); color: var(--academy-white); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); overflow: hidden; position: relative; }
.academy-olympiads-panel::before { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; height: 34rem; left: -21rem; position: absolute; top: -22rem; width: 34rem; }
.academy-olympiads-copy { padding: clamp(2.5rem, 5vw, 5rem); position: relative; }
.academy-olympiads-copy h2 { color: var(--academy-white); font-size: clamp(2.4rem, 4.5vw, 4.2rem); line-height: 1; max-width: 12ch; }
.academy-olympiads-copy > p:not(.academy-kicker) { color: #c9ddea; line-height: 1.7; margin-bottom: 2rem; max-width: 35rem; }
.academy-olympiads-list { background: rgba(3,23,39,.42); border-left: 1px solid rgba(255,255,255,.12); padding: clamp(2.5rem, 5vw, 4.5rem); position: relative; }
.academy-olympiads-mark { align-items: center; color: var(--academy-cyan); display: flex; font-size: .75rem; font-weight: 800; gap: .7rem; letter-spacing: .1em; margin-bottom: 1.5rem; text-transform: uppercase; }
.academy-olympiads-mark .academy-icon { height: 1.5rem; width: 1.5rem; }
.academy-olympiads-list ul { border-top: 1px solid rgba(255,255,255,.13); list-style: none; margin: 0; padding: 0; }
.academy-olympiads-list li { border-bottom: 1px solid rgba(255,255,255,.13); display: grid; gap: 1rem; grid-template-columns: 9rem 1fr; padding: .95rem 0; }
.academy-olympiads-list strong { color: var(--academy-white); font-size: .86rem; }
.academy-olympiads-list li span { color: #b9cfdd; font-size: .8rem; line-height: 1.45; }
.academy-olympiads-note { color: #8eacbe; font-size: .7rem; line-height: 1.5; margin: 1.2rem 0 0; }

.academy-directions { background: linear-gradient(135deg, var(--academy-ink-deep), var(--academy-ink)); color: var(--academy-white); }
.academy-directions h2 { color: var(--academy-white); max-width: 13ch; }
.academy-directions-intro { color: #c3d6e4; font-size: 1.08rem; line-height: 1.7; }
.academy-direction-grid { border-left: 1px solid rgba(255,255,255,.13); border-top: 1px solid rgba(255,255,255,.13); display: grid; grid-template-columns: repeat(4, 1fr); }
.academy-direction-grid article { border-bottom: 1px solid rgba(255,255,255,.13); border-right: 1px solid rgba(255,255,255,.13); min-height: 20rem; padding: 2rem; position: relative; }
.academy-direction-grid article > span { color: rgba(255,255,255,.4); font-family: ui-monospace, monospace; font-size: .75rem; position: absolute; right: 1.5rem; top: 1.5rem; }
.academy-direction-grid article > .academy-icon { color: var(--academy-cyan); display: block; height: 2.4rem; margin: 3rem 0 3.5rem; width: 2.4rem; }
.academy-direction-grid h3 { color: var(--academy-white); font-size: 1.35rem; }
.academy-direction-grid p { color: #adbfcd; font-size: .9rem; line-height: 1.6; }

.academy-process { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; margin: 0; padding: 0; }
.academy-process li { border-top: 2px solid var(--academy-border); padding: 2rem 1.5rem 0 0; position: relative; }
.academy-process li::before { background: var(--academy-blue); border: .3rem solid var(--academy-paper); border-radius: 50%; content: ""; height: 1rem; left: 0; position: absolute; top: -.55rem; width: 1rem; }
.academy-process li > span { color: var(--academy-blue); font-family: ui-monospace, monospace; font-size: .75rem; }
.academy-process h3 { font-size: 1.2rem; margin-top: 1.4rem; }
.academy-process p { color: var(--academy-muted); font-size: .9rem; line-height: 1.6; }

.academy-faq { background: var(--academy-white); }
.academy-text-link { color: var(--academy-blue); font-weight: 750; text-decoration: none; }
.academy-text-link:hover { color: var(--academy-ink); text-decoration: underline; }
.academy-accordion .accordion-item { border: 0; border-bottom: 1px solid var(--academy-border); }
.academy-accordion .accordion-button { background: transparent; box-shadow: none; color: var(--academy-ink); font-size: 1.05rem; font-weight: 750; padding: 1.4rem 0; }
.academy-accordion .accordion-button:not(.collapsed) { color: var(--academy-blue); }
.academy-accordion .accordion-body { color: var(--academy-muted); line-height: 1.7; padding: 0 2.5rem 1.5rem 0; }

.academy-journal { background: var(--academy-paper); }
.academy-article-card { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: 1rem; display: grid; grid-template-columns: 11rem 1fr; height: 100%; overflow: hidden; }
.academy-article-card img { height: 100%; object-fit: cover; width: 100%; }
.academy-article-card div { padding: 1.5rem; }
.academy-article-card p { color: var(--academy-blue); font-size: .7rem; font-weight: 800; letter-spacing: .1em; margin-bottom: .6rem; text-transform: uppercase; }
.academy-article-card h3 { font-size: 1.25rem; line-height: 1.25; }
.academy-article-card h3 a { color: var(--academy-ink); text-decoration: none; }
.academy-article-card h3 a:hover { color: var(--academy-blue); text-decoration: underline; }
.academy-article-card span { color: var(--academy-muted); font-size: .78rem; }

.academy-final-cta { background: var(--academy-white); padding: clamp(4rem, 8vw, 7rem) 0; }
.academy-final-cta-inner { align-items: center; background: linear-gradient(135deg, #075f8c, var(--academy-ink-deep)); border-radius: var(--academy-radius); color: var(--academy-white); display: grid; gap: 3rem; grid-template-columns: 1fr auto; overflow: hidden; padding: clamp(2.5rem, 6vw, 5rem); position: relative; }
.academy-final-cta h2 { color: var(--academy-white); max-width: 16ch; }
.academy-final-cta p:not(.academy-kicker) { color: #cbe0ed; line-height: 1.7; max-width: 43rem; }

.academy-contact-hero { background: radial-gradient(circle at 82% 20%, rgba(22,142,224,.28), transparent 24rem), linear-gradient(135deg, #075f8c, var(--academy-ink-deep)); color: var(--academy-white); overflow: hidden; padding: clamp(4.5rem, 8vw, 7rem) 0; position: relative; }
.academy-contact-hero::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; height: 30rem; position: absolute; right: -10rem; top: -20rem; width: 30rem; }
.academy-contact-hero h1 { color: var(--academy-white); font-size: clamp(3rem, 6.5vw, 5.75rem); letter-spacing: -.06em; line-height: .98; max-width: 12ch; }
.academy-contact-hero .col-lg-8 > p:last-child { color: #d4e6f1; font-size: 1.15rem; line-height: 1.7; max-width: 46rem; }
.academy-contact-hero .col-lg-4 { align-items: flex-end; display: flex; justify-content: flex-end; }
.academy-contact-hero-note { align-items: center; color: #d4e6f1; display: flex; font-size: .9rem; gap: .75rem; justify-content: flex-end; margin: 0 0 .3rem; text-align: right; }
.academy-contact-hero-note span { background: var(--academy-cyan); border-radius: 50%; box-shadow: 0 0 0 .35rem rgba(89,213,223,.14); flex: 0 0 .55rem; height: .55rem; width: .55rem; }
.academy-contact-main { background: var(--academy-paper); padding: clamp(4rem, 8vw, 7rem) 0; }
.academy-contact-form-card { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); padding: clamp(1.75rem, 4vw, 3.5rem); }
.academy-contact-form-heading { border-bottom: 1px solid var(--academy-border); margin-bottom: 2rem; padding-bottom: 1.75rem; }
.academy-contact-form-heading h2 { font-size: clamp(2rem, 3vw, 3rem); }
.academy-contact-form-heading > p:last-child { color: var(--academy-muted); font-size: .85rem; margin-bottom: 0; }
.academy-contact-form label { color: var(--academy-ink); display: block; font-size: .84rem; font-weight: 750; margin-bottom: .55rem; }
.academy-contact-form label span, .academy-contact-form-heading span { color: #b12f3e; }
.academy-form-control { appearance: none; background: var(--academy-paper); border: 1px solid #cbd7e0; border-radius: .75rem; color: var(--academy-ink); display: block; min-height: 3.35rem; padding: .8rem 1rem; transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease; width: 100%; }
.academy-form-control:hover { border-color: #9eb2c1; }
.academy-form-control:focus { background: var(--academy-white); border-color: var(--academy-blue); box-shadow: 0 0 0 .25rem rgba(9,105,180,.12); outline: 0; }
.academy-form-control.is-invalid { border-color: #b12f3e; }
.academy-form-textarea { line-height: 1.6; min-height: 11rem; resize: vertical; }
.academy-field-hint { color: var(--academy-muted); font-size: .77rem; line-height: 1.5; margin-top: .55rem; }
.academy-field-error { color: #9a2030; font-size: .78rem; font-weight: 650; margin-top: .5rem; }
.academy-form-alert { background: #fff0f1; border: 1px solid #e7b6bc; border-radius: .75rem; color: #8d1d2b; margin-bottom: 1.5rem; padding: 1rem; }
.academy-form-alert ul { margin: 0; }
.academy-form-submit-row { align-items: center; display: flex; gap: 1.5rem; justify-content: space-between; }
.academy-form-submit-row p { color: var(--academy-muted); font-size: .78rem; line-height: 1.5; margin: 0; max-width: 24rem; }
.academy-form-submit-row p a { color: var(--academy-blue); }
.academy-form-submit-row .academy-btn { flex: 0 0 auto; }
.academy-contact-details { background: linear-gradient(145deg, #075f8c, var(--academy-ink-deep)); border-radius: var(--academy-radius); color: var(--academy-white); overflow: hidden; padding: clamp(2rem, 4vw, 3rem); position: sticky; top: 6.5rem; }
.academy-contact-details::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; bottom: -11rem; content: ""; height: 23rem; position: absolute; right: -11rem; width: 23rem; }
.academy-contact-details h2 { color: var(--academy-white); font-size: clamp(2rem, 3.5vw, 3.25rem); line-height: 1.05; }
.academy-contact-details-intro { color: #c9ddea; line-height: 1.7; }
.academy-contact-details ul { border-top: 1px solid rgba(255,255,255,.14); display: grid; gap: 0; list-style: none; margin: 2rem 0; padding: 0; position: relative; z-index: 1; }
.academy-contact-details li { align-items: center; border-bottom: 1px solid rgba(255,255,255,.14); display: flex; gap: 1rem; padding: 1.25rem 0; }
.academy-contact-details li > span { align-items: center; background: rgba(89,213,223,.12); border: 1px solid rgba(89,213,223,.28); border-radius: .7rem; color: var(--academy-cyan); display: flex; flex: 0 0 2.75rem; height: 2.75rem; justify-content: center; }
.academy-contact-details li > span .academy-icon { height: 1.25rem; width: 1.25rem; }
.academy-contact-details small { color: #91adbf; display: block; font-size: .68rem; font-weight: 800; letter-spacing: .1em; margin-bottom: .25rem; text-transform: uppercase; }
.academy-contact-details a { color: var(--academy-white); font-weight: 700; text-decoration: none; }
.academy-contact-details a:hover { color: var(--academy-cyan); text-decoration: underline; }
.academy-contact-details address { color: var(--academy-white); font-size: .9rem; margin: 0; }
.academy-contact-assurance { align-items: flex-start; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: .8rem; display: flex; gap: .75rem; padding: 1rem; position: relative; z-index: 1; }
.academy-contact-assurance > .academy-icon { color: var(--academy-accent); flex: 0 0 1.25rem; height: 1.25rem; }
.academy-contact-assurance p { color: #c9ddea; font-size: .78rem; line-height: 1.5; margin: 0; }
.academy-contact-assurance strong { color: var(--academy-white); display: block; }
.academy-contact-location { background: var(--academy-white); padding: clamp(4rem, 8vw, 7rem) 0; }
.academy-contact-location-heading { align-items: flex-end; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 2rem; }
.academy-contact-location-heading h2 { font-size: clamp(2rem, 4vw, 3.5rem); margin-bottom: 0; }
.academy-contact-location-heading > a { color: var(--academy-blue); font-weight: 750; text-decoration: none; }
.academy-contact-location-heading > a:hover { color: var(--academy-ink); text-decoration: underline; }
.academy-contact-map { background: #e7eef3; border: 1px solid var(--academy-border); border-radius: var(--academy-radius); height: clamp(22rem, 45vw, 34rem); overflow: hidden; }

.academy-login { background: radial-gradient(circle at 18% 20%, rgba(22,142,224,.16), transparent 28rem), var(--academy-paper); min-height: calc(100vh - 4.75rem); padding: clamp(3rem, 7vw, 7rem) 0; }
.academy-login-shell { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(25rem, .95fr); margin: 0 auto; max-width: 68rem; overflow: hidden; }
.academy-login-context { background: radial-gradient(circle at 18% 18%, rgba(89,213,223,.18), transparent 16rem), linear-gradient(145deg, #075f8c, var(--academy-ink-deep)); color: var(--academy-white); min-height: 42rem; overflow: hidden; padding: clamp(2.5rem, 5vw, 5rem); position: relative; }
.academy-login-context::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; bottom: -16rem; content: ""; height: 31rem; position: absolute; right: -16rem; width: 31rem; }
.academy-login-context h1 { color: var(--academy-white); font-size: clamp(3rem, 5vw, 5rem); letter-spacing: -.06em; line-height: .98; max-width: 9ch; }
.academy-login-intro { color: #c9ddea; font-size: 1.08rem; line-height: 1.7; max-width: 28rem; }
.academy-login-benefits { border-top: 1px solid rgba(255,255,255,.14); display: grid; gap: 0; list-style: none; margin: 3rem 0; max-width: 29rem; padding: 0; position: relative; z-index: 1; }
.academy-login-benefits li { align-items: flex-start; border-bottom: 1px solid rgba(255,255,255,.14); color: #bcd2df; display: flex; font-size: .82rem; gap: 1rem; line-height: 1.5; padding: 1.1rem 0; }
.academy-login-benefits li > .academy-icon { color: var(--academy-cyan); flex: 0 0 1.35rem; height: 1.35rem; margin-top: .1rem; width: 1.35rem; }
.academy-login-benefits strong, .academy-login-benefits span { display: block; }
.academy-login-benefits strong { color: var(--academy-white); font-size: .88rem; margin-bottom: .15rem; }
.academy-login-home-link { color: #d8e8f1; font-size: .82rem; font-weight: 700; position: relative; text-decoration: none; z-index: 1; }
.academy-login-home-link:hover { color: var(--academy-cyan); text-decoration: underline; }
.academy-icon-back { transform: rotate(180deg); }
.academy-login-form-panel { align-self: center; padding: clamp(2.5rem, 5vw, 4.5rem); }
.academy-login-form-heading { margin-bottom: 2rem; }
.academy-login-form-heading h2 { font-size: clamp(2.25rem, 4vw, 3.5rem); }
.academy-login-form-heading > p:last-child { color: var(--academy-muted); }
.academy-login-form .academy-form-alert p { margin: 0; }
.academy-login-field { margin-bottom: 1.35rem; }
.academy-login-field label { color: var(--academy-ink); display: block; font-size: .84rem; font-weight: 750; margin-bottom: .55rem; }
.academy-login-label-row { align-items: center; display: flex; justify-content: space-between; }
.academy-login-label-row a { color: var(--academy-blue); font-size: .78rem; font-weight: 700; text-decoration: none; }
.academy-login-label-row a:hover { color: var(--academy-ink); text-decoration: underline; }
.academy-input-with-icon { position: relative; }
.academy-input-with-icon > .academy-icon { color: #7890a2; height: 1.15rem; left: 1rem; pointer-events: none; position: absolute; top: 50%; transform: translateY(-50%); width: 1.15rem; z-index: 1; }
.academy-input-with-icon .academy-form-control { padding-left: 3rem; }
.academy-login-register { border-top: 1px solid var(--academy-border); color: var(--academy-muted); display: flex; font-size: .85rem; gap: .4rem; justify-content: center; margin-top: 2rem; padding-top: 1.5rem; }
.academy-login-register a { color: var(--academy-blue); font-weight: 750; text-decoration: none; }
.academy-login-register a:hover { color: var(--academy-ink); text-decoration: underline; }

.academy-auth-page { background: radial-gradient(circle at 15% 15%, rgba(22,142,224,.14), transparent 27rem), var(--academy-paper); min-height: calc(100vh - 4.75rem); padding: clamp(3rem, 7vw, 7rem) 0; }
.academy-auth-shell { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); display: grid; margin: 0 auto; overflow: hidden; }
.academy-auth-shell-wide { grid-template-columns: minmax(21rem, .82fr) minmax(0, 1.18fr); max-width: 72rem; }
.academy-auth-context { background: radial-gradient(circle at 15% 15%, rgba(89,213,223,.17), transparent 17rem), linear-gradient(145deg, #075f8c, var(--academy-ink-deep)); color: var(--academy-white); overflow: hidden; padding: clamp(2.5rem, 5vw, 4.5rem); position: relative; }
.academy-auth-context::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; bottom: -15rem; content: ""; height: 29rem; position: absolute; right: -15rem; width: 29rem; }
.academy-auth-context h1 { color: var(--academy-white); font-size: clamp(2.8rem, 4.7vw, 4.6rem); letter-spacing: -.06em; line-height: .99; max-width: 10ch; }
.academy-auth-context > p:not(.academy-kicker) { color: #c9ddea; line-height: 1.7; max-width: 29rem; }
.academy-auth-steps { border-top: 1px solid rgba(255,255,255,.14); list-style: none; margin: 2.5rem 0; padding: 0; position: relative; z-index: 1; }
.academy-auth-steps li { align-items: center; border-bottom: 1px solid rgba(255,255,255,.14); color: #7e9bae; display: flex; gap: 1rem; padding: 1rem 0; }
.academy-auth-steps li > span { align-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; display: flex; flex: 0 0 2.25rem; font-family: ui-monospace, monospace; font-size: .7rem; height: 2.25rem; justify-content: center; }
.academy-auth-steps strong, .academy-auth-steps small { display: block; }
.academy-auth-steps strong { color: #b9cfdd; font-size: .86rem; }
.academy-auth-steps small { font-size: .72rem; margin-top: .1rem; }
.academy-auth-steps .is-current > span { background: var(--academy-accent); border-color: var(--academy-accent); color: var(--academy-ink-deep); }
.academy-auth-steps .is-current strong { color: var(--academy-white); }
.academy-auth-steps .is-complete > span { background: rgba(89,213,223,.13); border-color: var(--academy-cyan); color: var(--academy-cyan); }
.academy-auth-assurance { align-items: flex-start; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: .8rem; display: flex; gap: .7rem; padding: 1rem; position: relative; z-index: 1; }
.academy-auth-assurance > .academy-icon { color: var(--academy-accent); flex: 0 0 1.2rem; height: 1.2rem; }
.academy-auth-assurance p { color: #c9ddea; font-size: .78rem; line-height: 1.5; margin: 0; }
.academy-auth-assurance strong { color: var(--academy-white); display: block; }
.academy-auth-form-panel { align-self: center; padding: clamp(2.5rem, 5vw, 4.5rem); }
.academy-auth-heading { border-bottom: 1px solid var(--academy-border); margin-bottom: 2rem; padding-bottom: 1.5rem; }
.academy-auth-heading h2 { font-size: clamp(2.25rem, 4vw, 3.5rem); }
.academy-auth-heading > p:last-child { color: var(--academy-muted); font-size: .84rem; margin: 0; }
.academy-auth-form label:not(.academy-auth-consent) { color: var(--academy-ink); display: block; font-size: .84rem; font-weight: 750; margin-bottom: .55rem; }
.academy-auth-form label > span { color: var(--academy-muted); font-size: .72rem; font-weight: 500; }
.academy-auth-guidance { background: var(--academy-paper); border-radius: .65rem; color: var(--academy-muted); font-size: .74rem; line-height: 1.5; margin: 1.25rem 0; padding: .8rem 1rem; }
.academy-password-requirements { background: var(--academy-paper); border: 1px solid var(--academy-border); border-radius: .8rem; color: var(--academy-muted); margin: 1.35rem 0; padding: 1rem 1.1rem; }
.academy-password-requirements > strong { color: var(--academy-ink); display: block; font-size: .8rem; margin-bottom: .75rem; }
.academy-password-requirements ul { display: grid; gap: .55rem; list-style: none; margin: 0; padding: 0; }
.academy-password-requirements li { align-items: flex-start; display: flex; font-size: .75rem; gap: .55rem; line-height: 1.45; transition: color .16s ease; }
.academy-password-check { align-items: center; border: 1px solid #aebdca; border-radius: 50%; color: transparent; display: flex; flex: 0 0 1rem; height: 1rem; justify-content: center; margin-top: .05rem; transition: background-color .16s ease, border-color .16s ease, color .16s ease; width: 1rem; }
.academy-password-check .academy-icon { height: .68rem; width: .68rem; }
.academy-password-requirements li.is-met { color: #18753b; }
.academy-password-requirements li.is-met .academy-password-check { background: #18753b; border-color: #18753b; color: var(--academy-white); }
.academy-password-server-rule .academy-password-check { background: #e7f1f7; border-color: #b8cfdd; color: var(--academy-blue); }
.academy-auth-consent { align-items: flex-start; color: var(--academy-muted); display: flex; font-size: .76rem; gap: .7rem; line-height: 1.5; margin: 1.25rem 0; }
.academy-auth-consent input { accent-color: var(--academy-blue); flex: 0 0 1rem; height: 1rem; margin-top: .12rem; width: 1rem; }
.academy-auth-consent a { color: var(--academy-blue); }
.academy-auth-consent-error { margin: -.75rem 0 1.25rem; }
.academy-auth-alternate { border-top: 1px solid var(--academy-border); color: var(--academy-muted); display: flex; font-size: .84rem; gap: .4rem; justify-content: center; margin-top: 2rem; padding-top: 1.5rem; }
.academy-auth-alternate a { color: var(--academy-blue); font-weight: 750; text-decoration: none; }
.academy-auth-alternate a:hover { color: var(--academy-ink); text-decoration: underline; }
.academy-auth-card, .academy-auth-status { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); margin: 0 auto; max-width: 36rem; padding: clamp(2.25rem, 5vw, 4rem); }
.academy-auth-card > h1, .academy-auth-status > h1 { font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1; }
.academy-auth-card > p:not(.academy-kicker), .academy-auth-status > p:not(.academy-kicker) { color: var(--academy-muted); line-height: 1.7; }
.academy-auth-card-icon, .academy-auth-status-icon { align-items: center; background: #dff3f5; border-radius: 1rem; color: var(--academy-teal); display: flex; height: 3.5rem; justify-content: center; margin-bottom: 2rem; width: 3.5rem; }
.academy-auth-card-icon .academy-icon, .academy-auth-status-icon .academy-icon { height: 1.6rem; width: 1.6rem; }
.academy-auth-status { max-width: 42rem; text-align: center; }
.academy-auth-status .academy-auth-status-icon { margin-left: auto; margin-right: auto; }
.academy-auth-status-success { background: #e3f4e9; color: #18753b; }
.academy-auth-status-warning .academy-auth-status-icon { background: #fff1d1; color: #8a5b00; }
.academy-auth-status-note { background: var(--academy-paper); border: 1px solid var(--academy-border); border-radius: .75rem; color: var(--academy-muted); font-size: .78rem; line-height: 1.55; margin: 2rem 0; padding: 1rem; text-align: left; }
.academy-auth-status-note strong, .academy-auth-status-note span { display: block; }
.academy-auth-status-note strong { color: var(--academy-ink); }
.academy-file-control { padding: .6rem; }
.academy-file-control::file-selector-button { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: .5rem; color: var(--academy-ink); cursor: pointer; font-weight: 700; margin-right: 1rem; padding: .55rem .8rem; }

.academy-legal-hero { background: radial-gradient(circle at 82% 20%, rgba(89,213,223,.18), transparent 22rem), linear-gradient(135deg, #087ba0, var(--academy-ink-deep)); color: var(--academy-white); overflow: hidden; padding: clamp(4.5rem, 9vw, 8rem) 0; position: relative; }
.academy-legal-hero::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; height: 32rem; position: absolute; right: -12rem; top: -20rem; width: 32rem; }
.academy-legal-hero h1 { color: var(--academy-white); font-size: clamp(3rem, 6vw, 5.75rem); letter-spacing: -.06em; line-height: .96; margin-bottom: 1.25rem; max-width: 13ch; }
.academy-legal-hero > .container > p:not(.academy-kicker) { color: #d1e5ef; font-size: 1.05rem; line-height: 1.7; max-width: 46rem; }
.academy-legal-meta { align-items: center; border-top: 1px solid rgba(255,255,255,.16); display: flex; font-size: .78rem; gap: .55rem; margin-top: 2.25rem; max-width: 46rem; padding-top: 1rem; }
.academy-legal-meta span { color: #8fb3c6; }
.academy-legal-meta strong { color: var(--academy-white); }
.academy-legal-main { background: var(--academy-paper); padding: clamp(4rem, 8vw, 7rem) 0; }
.academy-legal-layout { align-items: start; display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(13rem, 16rem) minmax(0, 50rem); justify-content: center; }
.academy-legal-toc { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: 1rem; padding: 1.35rem; position: sticky; top: 6.5rem; }
.academy-legal-toc > strong { color: var(--academy-ink); display: block; font-size: .72rem; letter-spacing: .09em; margin-bottom: 1rem; text-transform: uppercase; }
.academy-legal-toc ol { counter-reset: legal-toc; display: grid; gap: .15rem; list-style: none; margin: 0; padding: 0; }
.academy-legal-toc a { border-radius: .45rem; color: var(--academy-muted); display: block; font-size: .78rem; line-height: 1.35; padding: .42rem .55rem; text-decoration: none; }
.academy-legal-toc a:hover, .academy-legal-toc a:focus-visible { background: var(--academy-paper); color: var(--academy-blue); }
.academy-legal-document { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); padding: clamp(1.75rem, 5vw, 4.5rem); }
.academy-legal-lead { border-bottom: 1px solid var(--academy-border); color: var(--academy-ink); font-size: clamp(1.05rem, 2vw, 1.25rem); font-weight: 600; line-height: 1.75; margin-bottom: 0; padding-bottom: 2.5rem; }
.academy-legal-document > section { scroll-margin-top: 7rem; }
.academy-legal-document h2 { align-items: baseline; color: var(--academy-ink); display: flex; font-size: clamp(1.55rem, 3vw, 2.15rem); gap: .85rem; letter-spacing: -.035em; line-height: 1.12; margin: 3.5rem 0 1.25rem; }
.academy-legal-document h2 span { color: var(--academy-blue); flex: 0 0 auto; font-family: ui-monospace, monospace; font-size: .68rem; letter-spacing: .08em; }
.academy-legal-document p, .academy-legal-document li, .academy-legal-document dd { color: #496276; font-size: .94rem; line-height: 1.78; }
.academy-legal-document a { color: var(--academy-blue); font-weight: 700; text-underline-offset: .16em; }
.academy-legal-document ul { display: grid; gap: .7rem; padding-left: 1.2rem; }
.academy-legal-document li::marker { color: var(--academy-teal); }
.academy-legal-company { border: 1px solid var(--academy-border); border-radius: .85rem; margin: 1.5rem 0 0; overflow: hidden; }
.academy-legal-company > div { display: grid; grid-template-columns: minmax(10rem, .7fr) 1.3fr; }
.academy-legal-company > div + div { border-top: 1px solid var(--academy-border); }
.academy-legal-company dt, .academy-legal-company dd { margin: 0; padding: .85rem 1rem; }
.academy-legal-company dt { background: var(--academy-paper); color: var(--academy-ink); font-size: .75rem; font-weight: 800; }
.academy-legal-highlight { align-items: flex-start; background: linear-gradient(135deg, #e5f6f4, #edf6fb); border: 1px solid #b9deda; border-radius: .9rem; display: flex; gap: 1rem; margin-top: 2rem; padding: 1.25rem; }
.academy-legal-highlight > .academy-icon { color: var(--academy-teal); flex: 0 0 1.5rem; height: 1.5rem; width: 1.5rem; }
.academy-legal-highlight strong { color: var(--academy-ink); display: block; margin-bottom: .25rem; }
.academy-legal-highlight p { margin: 0; }
.academy-legal-footer { align-items: center; border-top: 1px solid var(--academy-border); display: grid; gap: 1rem; grid-template-columns: 1fr auto; margin-top: 4rem; padding-top: 2rem; }
.academy-legal-footer > p { color: var(--academy-ink); font-size: 1rem; font-weight: 750; margin: 0; }
.academy-legal-footer nav { display: flex; flex-wrap: wrap; gap: .8rem 1.25rem; grid-column: 1 / -1; }
.academy-legal-footer nav a { color: var(--academy-muted); font-size: .75rem; }
.academy-legal-document .academy-legal-footer .academy-btn-primary { color: var(--academy-white); }
.academy-legal-document .academy-legal-footer .academy-btn-primary:hover { color: var(--academy-white); }

.academy-resources-hero { background: radial-gradient(circle at 82% 20%, rgba(89,213,223,.2), transparent 25rem), linear-gradient(135deg, #087ba0, var(--academy-ink-deep)); color: var(--academy-white); overflow: hidden; padding: clamp(5rem, 10vw, 9rem) 0 clamp(3rem, 6vw, 5rem); position: relative; }
.academy-resources-hero h1 { color: var(--academy-white); font-size: clamp(3.25rem, 7vw, 6.5rem); letter-spacing: -.065em; line-height: .94; margin: 0; max-width: 12ch; }
.academy-resources-hero-copy { color: #c9dfea; font-size: 1.05rem; line-height: 1.75; margin: 0; max-width: 28rem; }
.academy-resources-orbit { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; pointer-events: none; position: absolute; }
.academy-resources-orbit-one { height: 34rem; right: -14rem; top: -20rem; width: 34rem; }
.academy-resources-orbit-two { bottom: -24rem; height: 40rem; left: 36%; width: 40rem; }
.academy-resources-topics { border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-wrap: wrap; gap: .55rem; list-style: none; margin: clamp(2.5rem, 6vw, 4.5rem) 0 0; padding: 1.25rem 0 0; }
.academy-resources-topics li { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; color: #d8e9f1; font-size: .72rem; font-weight: 700; padding: .5rem .8rem; }
.academy-resources-main { background: var(--academy-paper); padding: clamp(4rem, 8vw, 7rem) 0; }
.academy-resources-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 2rem; }
.academy-resources-heading h2, .academy-resources-row-heading h2 { font-size: clamp(2.35rem, 4.5vw, 4rem); margin: 0; }
.academy-resources-heading > p { color: var(--academy-muted); line-height: 1.65; margin: 0; max-width: 25rem; }
.academy-resource-lead { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .85fr); overflow: hidden; }
.academy-resource-lead-media, .academy-resource-card-media { background: #dce9ef; display: block; overflow: hidden; position: relative; }
.academy-resource-lead-media { min-height: 31rem; }
.academy-resource-lead-media img, .academy-resource-card-media img { height: 100%; object-fit: cover; transition: transform .4s ease; width: 100%; }
.academy-resource-lead:hover .academy-resource-lead-media img, .academy-resource-feature-card:hover .academy-resource-card-media img, .academy-resource-card:hover .academy-resource-card-media img { transform: scale(1.025); }
.academy-resource-media-fallback { align-items: center; background: radial-gradient(circle at 35% 30%, rgba(89,213,223,.42), transparent 10rem), linear-gradient(145deg, #0b89ac, var(--academy-ink-deep)); display: flex; justify-content: center; }
.academy-resource-media-fallback::after { background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 2rem 2rem; content: ""; inset: 0; mask-image: radial-gradient(circle, #000 15%, transparent 70%); position: absolute; }
.academy-resource-media-fallback > .academy-icon { color: var(--academy-cyan); height: 5rem; position: relative; width: 5rem; z-index: 1; }
.academy-resource-lead-content { align-self: center; padding: clamp(2rem, 5vw, 4.25rem); }
.academy-resource-meta { align-items: center; color: var(--academy-muted); display: flex; flex-wrap: wrap; font-size: .7rem; gap: .65rem; letter-spacing: .04em; margin-bottom: 1rem; text-transform: uppercase; }
.academy-resource-meta span { color: var(--academy-blue); font-weight: 800; }
.academy-resource-meta span::after { color: #b8c5ce; content: "•"; margin-left: .65rem; }
.academy-resource-lead h3 { font-size: clamp(2.25rem, 4.2vw, 4.25rem); letter-spacing: -.055em; line-height: .98; }
.academy-resource-lead h3 a, .academy-resource-card h3 a, .academy-resource-feature-card h3 a { color: var(--academy-ink); text-decoration: none; }
.academy-resource-lead h3 a:hover, .academy-resource-card h3 a:hover, .academy-resource-feature-card h3 a:hover { color: var(--academy-blue); }
.academy-resource-lead-content > p, .academy-resource-card-body > p { color: var(--academy-muted); line-height: 1.7; }
.academy-resource-read { align-items: center; color: var(--academy-blue); display: inline-flex; font-size: .8rem; font-weight: 800; gap: .5rem; margin-top: .75rem; text-decoration: none; }
.academy-resource-read .academy-icon { height: 1rem; transition: transform .16s ease; width: 1rem; }
.academy-resource-read:hover { color: var(--academy-ink); }
.academy-resource-read:hover .academy-icon { transform: translateX(.2rem); }
.academy-resources-featured, .academy-resources-library { margin-top: clamp(4.5rem, 9vw, 8rem); }
.academy-resources-row-heading { align-items: end; border-bottom: 1px solid var(--academy-border); display: flex; justify-content: space-between; margin-bottom: 2rem; padding-bottom: 1.5rem; }
.academy-resources-row-heading > span { color: var(--academy-muted); font-size: .78rem; }
.academy-resource-feature-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.academy-resource-feature-card { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: 1rem; display: grid; grid-template-columns: minmax(12rem, .8fr) 1.2fr; overflow: hidden; }
.academy-resource-feature-card .academy-resource-card-media { min-height: 22rem; }
.academy-resource-card-body { display: flex; flex-direction: column; padding: clamp(1.4rem, 3vw, 2.25rem); }
.academy-resource-card-body h3 { font-size: clamp(1.45rem, 2.4vw, 2.1rem); letter-spacing: -.035em; line-height: 1.08; }
.academy-resource-card-body .academy-resource-read { margin-top: auto; padding-top: 1rem; }
.academy-resource-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.academy-resource-card { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: 1rem; display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.academy-resource-card .academy-resource-card-media { aspect-ratio: 16 / 10; }
.academy-resource-card .academy-resource-card-body { flex: 1; }
.academy-resource-pagination { align-items: center; border-top: 1px solid var(--academy-border); display: grid; grid-template-columns: 1fr auto 1fr; margin-top: 3rem; padding-top: 1.5rem; }
.academy-resource-pagination > a { align-items: center; color: var(--academy-blue); display: flex; font-size: .78rem; font-weight: 800; gap: .45rem; text-decoration: none; }
.academy-resource-pagination > a:last-child { justify-self: end; }
.academy-resource-pagination .academy-icon { height: 1rem; width: 1rem; }
.academy-resource-pagination p { color: var(--academy-muted); font-size: .75rem; margin: 0; }
.academy-resource-pagination strong { color: var(--academy-ink); }
.academy-resources-cta { align-items: center; background: linear-gradient(120deg, #087fa1, var(--academy-ink-deep)); border-radius: var(--academy-radius); color: var(--academy-white); display: grid; gap: 2rem; grid-template-columns: 1fr auto; margin-top: clamp(4.5rem, 9vw, 8rem); overflow: hidden; padding: clamp(2rem, 5vw, 4rem); position: relative; }
.academy-resources-cta::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; height: 22rem; position: absolute; right: -10rem; top: -13rem; width: 22rem; }
.academy-resources-cta h2 { color: var(--academy-white); font-size: clamp(2.25rem, 4.5vw, 4rem); line-height: 1; max-width: 14ch; }
.academy-resources-cta > div > p:last-child { color: #c8dfe9; line-height: 1.7; margin: 0; max-width: 40rem; }
.academy-resources-cta .academy-btn { position: relative; z-index: 1; }
.academy-resources-empty { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); margin: 0 auto; max-width: 52rem; padding: clamp(2.5rem, 7vw, 6rem); text-align: center; }
.academy-resources-empty-icon { align-items: center; background: #dff3f5; border-radius: 1rem; color: var(--academy-teal); display: flex; height: 4rem; justify-content: center; margin: 0 auto 2rem; width: 4rem; }
.academy-resources-empty-icon .academy-icon { height: 1.8rem; width: 1.8rem; }
.academy-resources-empty h2 { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; }
.academy-resources-empty > p:not(.academy-kicker) { color: var(--academy-muted); line-height: 1.75; margin: 0 auto 2rem; max-width: 39rem; }
.academy-resources-empty-secondary { color: var(--academy-muted); padding: 1.5rem 0; }

.academy-article-page { background: var(--academy-paper); }
.academy-article-hero { background: radial-gradient(circle at 82% 18%, rgba(89,213,223,.18), transparent 24rem), linear-gradient(135deg, #087a9d, var(--academy-ink-deep)); color: var(--academy-white); overflow: hidden; padding: clamp(2.75rem, 4.5vw, 4.25rem) 0 clamp(3.5rem, 6vw, 5.5rem); position: relative; }
.academy-article-orbit { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; height: 38rem; position: absolute; right: -16rem; top: -24rem; width: 38rem; }
.academy-article-breadcrumb { align-items: center; color: #8fb6c8; display: flex; font-size: .72rem; gap: .65rem; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.academy-article-breadcrumb a { color: #cce3ed; text-decoration: none; }
.academy-article-breadcrumb a:hover { color: var(--academy-white); text-decoration: underline; }
.academy-article-heading { max-width: 66rem; }
.academy-article-meta { align-items: center; color: #b8d2de; display: flex; flex-wrap: wrap; font-size: .7rem; gap: .75rem; letter-spacing: .05em; margin-bottom: 1.35rem; text-transform: uppercase; }
.academy-article-meta span { background: rgba(89,213,223,.12); border: 1px solid rgba(89,213,223,.25); border-radius: 999px; color: var(--academy-cyan); font-weight: 800; padding: .45rem .7rem; }
.academy-article-meta small { color: #88aabd; font-size: inherit; }
.academy-article-heading h1 { color: var(--academy-white); font-size: clamp(2.85rem, 6vw, 5.5rem); letter-spacing: -.06em; line-height: .96; margin-bottom: 1.35rem; max-width: 17ch; }
.academy-article-heading > p { color: #d2e6ef; font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.7; max-width: 49rem; }
.academy-article-author { align-items: center; display: flex; gap: .75rem; margin-top: 2rem; }
.academy-article-author > span { align-items: center; background: var(--academy-accent); border-radius: 50%; color: var(--academy-ink-deep); display: flex; flex: 0 0 2.75rem; font-size: .72rem; font-weight: 900; height: 2.75rem; justify-content: center; letter-spacing: .03em; }
.academy-article-author small, .academy-article-author strong { display: block; }
.academy-article-author small { color: #87aabc; font-size: .65rem; text-transform: uppercase; }
.academy-article-author strong { color: var(--academy-white); font-size: .82rem; }
.academy-article-cover { aspect-ratio: 16 / 7; background: #dce9ef; border-bottom: 1px solid var(--academy-border); margin: 0; overflow: hidden; }
.academy-article-cover img { height: 100%; object-fit: cover; width: 100%; }
.academy-article-cover.academy-resource-media-fallback > .academy-icon { height: 6rem; width: 6rem; }
.academy-article-main { padding: clamp(4rem, 8vw, 7rem) 0; }
.academy-article-layout { align-items: start; display: grid; gap: clamp(2.5rem, 5vw, 5rem); grid-template-columns: minmax(0, 1fr) minmax(17rem, 20rem); max-width: 76rem; }
.academy-article-body { background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: var(--academy-radius); box-shadow: var(--academy-shadow); min-width: 0; overflow: hidden; }
.academy-article-body-inner { padding: clamp(2rem, 5vw, 4.5rem); }
.academy-article-content { color: #38546a; font-size: clamp(1rem, 1.5vw, 1.08rem); line-height: 1.85; }
.academy-article-content > *:first-child { margin-top: 0; }
.academy-article-content h2, .academy-article-content h3, .academy-article-content h4 { color: var(--academy-ink); letter-spacing: -.035em; scroll-margin-top: 7rem; }
.academy-article-content h2 { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.05; margin: 3.5rem 0 1.25rem; }
.academy-article-content h3 { font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.12; margin: 2.75rem 0 1rem; }
.academy-article-content h4 { font-size: 1.25rem; margin: 2rem 0 .75rem; }
.academy-article-content p, .academy-article-content ul, .academy-article-content ol, .academy-article-content blockquote, .academy-article-content pre, .academy-article-content figure { margin-bottom: 1.5rem; }
.academy-article-content ul, .academy-article-content ol { padding-left: 1.4rem; }
.academy-article-content li { margin-bottom: .5rem; }
.academy-article-content li::marker { color: var(--academy-teal); font-weight: 800; }
.academy-article-content a { color: var(--academy-blue); font-weight: 650; text-underline-offset: .16em; }
.academy-article-content img { border-radius: .85rem; height: auto; margin: 1rem 0; max-width: 100%; }
.academy-article-content iframe, .academy-article-content video { aspect-ratio: 16 / 9; border: 0; border-radius: .85rem; height: auto; max-width: 100%; width: 100%; }
.academy-article-content blockquote { background: #e9f5f6; border-left: .25rem solid var(--academy-teal); border-radius: 0 .75rem .75rem 0; color: var(--academy-ink); font-size: 1.12rem; font-weight: 600; line-height: 1.7; padding: 1.25rem 1.5rem; }
.academy-article-content blockquote > *:last-child { margin-bottom: 0; }
.academy-article-content pre { background: var(--academy-ink-deep); border-radius: .8rem; color: #d9f1f4; max-width: 100%; overflow-x: auto; padding: 1.25rem; }
.academy-article-content code { background: #e8eef2; border-radius: .25rem; color: #084f79; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .88em; padding: .12em .28em; }
.academy-article-content pre code { background: transparent; color: inherit; padding: 0; }
.academy-article-content table { border-collapse: collapse; display: block; margin: 2rem 0; max-width: 100%; overflow-x: auto; width: 100%; }
.academy-article-content th, .academy-article-content td { border: 1px solid var(--academy-border); padding: .75rem; text-align: left; }
.academy-article-content th { background: #eaf1f5; color: var(--academy-ink); }
.academy-article-tags { border-top: 1px solid var(--academy-border); display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 3rem 0 0; padding: 1.5rem 0 0; }
.academy-article-tags li { background: #e6f1f5; border-radius: 999px; color: var(--academy-blue); font-size: .7rem; font-weight: 750; padding: .45rem .7rem; }
.academy-article-end { align-items: center; border-top: 1px solid var(--academy-border); display: grid; gap: 1.5rem; grid-template-columns: 1fr auto; margin-top: 3rem; padding-top: 2rem; }
.academy-article-end p { color: var(--academy-ink); font-size: 1.1rem; font-weight: 800; margin: 0 0 .2rem; }
.academy-article-end span { color: var(--academy-muted); font-size: .78rem; }
.academy-article-end > div:last-child { display: flex; flex-wrap: wrap; gap: .65rem; }
.academy-article-sidebar { display: grid; gap: 2.5rem; position: sticky; top: 6.5rem; }
.academy-article-sidebar-card { background: linear-gradient(145deg, #087d9f, var(--academy-ink-deep)); border-radius: 1rem; color: var(--academy-white); overflow: hidden; padding: 1.75rem; position: relative; }
.academy-article-sidebar-card::after { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; bottom: -8rem; content: ""; height: 16rem; position: absolute; right: -8rem; width: 16rem; }
.academy-article-sidebar-card h2 { color: var(--academy-white); font-size: 1.85rem; line-height: 1.05; }
.academy-article-sidebar-card > p:not(.academy-kicker) { color: #c4dce7; font-size: .82rem; line-height: 1.65; }
.academy-article-sidebar-card .academy-resource-read { color: var(--academy-cyan); position: relative; z-index: 1; }
.academy-article-related > h2 { font-size: 1.65rem; margin-bottom: 1.25rem; }
.academy-article-related > div { border-top: 1px solid var(--academy-border); }
.academy-article-related article { align-items: center; border-bottom: 1px solid var(--academy-border); display: grid; gap: .8rem; grid-template-columns: 4.75rem 1fr; padding: 1rem 0; }
.academy-article-related-media { aspect-ratio: 1; border-radius: .6rem; display: block; min-height: 4.75rem; overflow: hidden; }
.academy-article-related-media img { height: 100%; object-fit: cover; width: 100%; }
.academy-article-related-media.academy-resource-media-fallback > .academy-icon { height: 1.5rem; width: 1.5rem; }
.academy-article-related time { color: var(--academy-muted); display: block; font-size: .62rem; margin-bottom: .25rem; text-transform: uppercase; }
.academy-article-related h3 { font-size: .92rem; line-height: 1.25; margin: 0; }
.academy-article-related h3 a { color: var(--academy-ink); text-decoration: none; }
.academy-article-related h3 a:hover { color: var(--academy-blue); }

.academy-error-page { align-items: center; background: radial-gradient(circle at 82% 18%, rgba(89,213,223,.18), transparent 25rem), linear-gradient(135deg, #087b9f, var(--academy-ink-deep)); color: var(--academy-white); display: flex; min-height: calc(100vh - 4.75rem); overflow: hidden; padding: clamp(4rem, 9vw, 8rem) 0; position: relative; }
.academy-error-orbit { border: 1px solid rgba(255,255,255,.1); border-radius: 50%; pointer-events: none; position: absolute; }
.academy-error-orbit-one { height: 36rem; right: -14rem; top: -20rem; width: 36rem; }
.academy-error-orbit-two { bottom: -26rem; height: 44rem; left: -18rem; width: 44rem; }
.academy-error-shell { align-items: center; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.2fr); }
.academy-error-code { color: transparent; font-size: clamp(9rem, 24vw, 22rem); font-weight: 900; letter-spacing: -.1em; line-height: .7; opacity: .9; text-align: center; -webkit-text-stroke: 1px rgba(255,255,255,.24); user-select: none; }
.academy-error-content { max-width: 48rem; }
.academy-error-content h1 { color: var(--academy-white); font-size: clamp(3rem, 6.5vw, 6rem); letter-spacing: -.06em; line-height: .96; margin-bottom: 1.5rem; max-width: 13ch; }
.academy-error-content > p:not(.academy-kicker) { color: #cce1eb; font-size: 1.05rem; line-height: 1.75; max-width: 40rem; }
.academy-error-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

.academy-footer { background: #031727; color: #b8cad7; }
.academy-footer a { color: #dbe8f0; text-decoration: none; }
.academy-footer a:hover { color: var(--academy-cyan); text-decoration: underline; }
.academy-footer-brand { align-items: center; color: var(--academy-white) !important; display: inline-flex; font-size: 1.1rem; font-weight: 750; gap: .75rem; }
.academy-footer-intro { line-height: 1.7; max-width: 28rem; }
.academy-footer-title { color: var(--academy-white); display: block; font-size: .8rem; font-weight: 800; letter-spacing: .1em; margin-bottom: 1.2rem; text-transform: uppercase; }
.academy-footer-links { display: grid; gap: .7rem; list-style: none; margin: 0; padding: 0; }
.academy-footer-bottom { align-items: center; border-top: 1px solid rgba(255,255,255,.12); display: flex; font-size: .8rem; justify-content: space-between; }
.academy-footer-bottom .academy-icon { height: 1.1rem; width: 1.1rem; }
.academy-back-to-top { align-items: center; background: var(--academy-white); border: 1px solid var(--academy-border); border-radius: 50%; bottom: 1.25rem; box-shadow: 0 .5rem 2rem rgba(4,30,53,.18); color: var(--academy-ink); display: none; height: 3rem; justify-content: center; position: fixed; right: 1.25rem; width: 3rem; z-index: 1030; }

@media (max-width: 991.98px) {
  .academy-navbar .navbar-collapse { padding: 1rem 0; }
  .academy-hero { padding-top: 4.5rem; }
  .academy-hero-visual { margin-top: 2rem; }
  .academy-direction-grid { grid-template-columns: repeat(2, 1fr); }
  .academy-process { grid-template-columns: repeat(2, 1fr); row-gap: 3rem; }
  .academy-final-cta-inner { grid-template-columns: 1fr; }
  .academy-olympiads-panel { grid-template-columns: 1fr; }
  .academy-olympiads-list { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .academy-contact-details { position: relative; top: auto; }
  .academy-contact-hero .col-lg-4 { justify-content: flex-start; }
  .academy-contact-hero-note { justify-content: flex-start; margin-bottom: 0; text-align: left; }
  .academy-login-shell { grid-template-columns: 1fr; }
  .academy-login-context { min-height: auto; }
  .academy-auth-shell-wide { grid-template-columns: 1fr; }
  .academy-legal-layout { grid-template-columns: 1fr; }
  .academy-legal-toc { position: static; }
  .academy-legal-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .academy-resource-lead { grid-template-columns: 1fr; }
  .academy-resource-lead-media { min-height: auto; aspect-ratio: 16 / 9; }
  .academy-resource-feature-grid { grid-template-columns: 1fr; }
  .academy-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .academy-article-layout { grid-template-columns: 1fr; }
  .academy-article-sidebar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); position: static; }
  .academy-error-shell { grid-template-columns: 1fr; }
  .academy-error-code { text-align: left; }
}

@media (max-width: 767.98px) {
  .academy-hero h1 { font-size: clamp(2.75rem, 14vw, 4.5rem); }
  .academy-hero-facts { grid-template-columns: 1fr; }
  .academy-hero-visual { max-width: 24rem; }
  .academy-code-card-top { right: 0; }
  .academy-code-card-bottom { left: 0; }
  .academy-proof .col-6:nth-child(2) { border-right: 0; }
  .academy-proof .col-6:nth-child(-n+2) { border-bottom: 1px solid var(--academy-border); }
  .academy-foundation-badge { bottom: -.75rem; right: .75rem; }
  .academy-direction-grid, .academy-process { grid-template-columns: 1fr; }
  .academy-process { gap: 2.5rem; }
  .academy-direction-grid article { min-height: 17rem; }
  .academy-article-card { grid-template-columns: 1fr; }
  .academy-article-card img { aspect-ratio: 16 / 9; }
  .academy-footer-bottom { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .academy-form-submit-row, .academy-contact-location-heading { align-items: stretch; flex-direction: column; }
  .academy-form-submit-row .academy-btn { width: 100%; }
  .academy-olympiads-list li { gap: .35rem; grid-template-columns: 1fr; }
  .academy-legal-toc ol { grid-template-columns: 1fr; }
  .academy-legal-document { border-radius: 1rem; }
  .academy-legal-company > div { grid-template-columns: 1fr; }
  .academy-legal-company dd { padding-top: .25rem; }
  .academy-resources-heading, .academy-resources-cta { align-items: stretch; grid-template-columns: 1fr; }
  .academy-resources-heading { flex-direction: column; gap: 1rem; }
  .academy-resource-feature-card { grid-template-columns: 1fr; }
  .academy-resource-feature-card .academy-resource-card-media { aspect-ratio: 16 / 9; min-height: auto; }
  .academy-resource-grid { grid-template-columns: 1fr; }
  .academy-resources-cta .academy-btn { justify-self: start; }
  .academy-article-cover { aspect-ratio: 16 / 10; }
  .academy-article-sidebar { grid-template-columns: 1fr; }
  .academy-article-end { align-items: start; grid-template-columns: 1fr; }
  .academy-error-code { font-size: clamp(7rem, 42vw, 12rem); }
}

@media (max-width: 479.98px) {
  .academy-course-meta { grid-template-columns: 1fr; }
  .academy-course-meta div, .academy-course-meta div:first-child { border-bottom: 1px solid var(--academy-border); border-right: 0 !important; padding: .75rem 0; }
  .academy-course-meta div:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .academy-v1 *, .academy-v1 *::before, .academy-v1 *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
