:root {
    --academy-paper: #080510;
    --academy-white: #0d091e;
    --academy-deep: #080510;
    --academy-panel-strong: #130e2b;
    --academy-ink: #f8fafc;
    --academy-blue: #a855f7;
    --academy-cyan: #06b6d4;
    --academy-violet: #d946ef;
    --academy-line: rgba(168, 85, 247, 0.22);
    --academy-muted: #94a3b8;
    --academy-heading: 'Orbitron', sans-serif;
    --academy-body: 'Inter', sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { min-width: 320px; color: var(--academy-ink); background: linear-gradient(rgba(168,85,247,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(168,85,247,.035) 1px, transparent 1px), var(--academy-paper); background-size: 30px 30px; font-family: var(--academy-body); line-height: 1.5; }
a { color: inherit; text-decoration: none; }
ol, ul { list-style: none; }
img { display: block; max-width: 100%; }

.academy-skip { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 10px 14px; color: white; background: var(--academy-blue); transform: translateY(-180%); }
.academy-skip:focus { transform: translateY(0); }

.academy-masthead { min-height: 86px; padding: 14px clamp(24px, 5vw, 78px); position: relative; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 32px; border-bottom: 1px solid var(--academy-line); background: rgba(8, 5, 16, 0.94); backdrop-filter: blur(14px); }
.academy-brand { display: flex; align-items: center; gap: 13px; }
.academy-brand img { width: 48px; height: 48px; border-radius: 12px; border: 1px solid var(--academy-line); box-shadow: 0 0 24px rgba(168,85,247,.18); }
.academy-brand span { display: flex; flex-direction: column; }
.academy-brand strong { font: 800 1rem var(--academy-heading); letter-spacing: 2px; }
.academy-brand small { color: var(--academy-blue); font: 700 .6rem var(--academy-heading); letter-spacing: 1.4px; }
.academy-nav { display: flex; align-items: center; gap: 30px; color: var(--academy-muted); font-size: .82rem; font-weight: 700; }
.academy-nav > a:not(.academy-nav-action):hover, .academy-nav > a:not(.academy-nav-action):focus-visible { color: var(--academy-blue); }
.academy-nav-action { min-height: 44px; padding: 0 18px; display: inline-flex; align-items: center; gap: 12px; color: white; background: var(--academy-blue); transition: background 160ms ease, transform 160ms ease; }
.academy-nav-action:hover { background: var(--academy-blue); transform: translateY(-1px); }

.academy-hero { min-height: calc(100vh - 86px); padding: clamp(70px, 10vw, 145px) clamp(24px, 6vw, 96px); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr); align-items: center; gap: clamp(50px, 10vw, 150px); overflow: hidden; background: radial-gradient(circle at 74% 30%, rgba(6,182,212,.14), transparent 25%), radial-gradient(circle at 20% 60%, rgba(168,85,247,.14), transparent 32%), var(--academy-paper); }
.academy-kicker { margin-bottom: 34px; display: flex; gap: 9px; }
.academy-kicker span { padding: 7px 10px; border: 1px solid var(--academy-line); color: var(--academy-blue); font: 700 .64rem var(--academy-heading); letter-spacing: 1.2px; text-transform: uppercase; }
.academy-hero-copy h1 { max-width: 960px; font: 700 clamp(3.2rem, 6.7vw, 7rem)/.96 var(--academy-heading); letter-spacing: -5px; }
.academy-hero-copy h1 em { color: var(--academy-blue); font-style: normal; }
.academy-hero-copy > p { max-width: 690px; margin-top: 30px; color: var(--academy-muted); font-size: 1.1rem; line-height: 1.8; }
.academy-actions { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.academy-primary, .academy-secondary { min-height: 52px; padding: 0 20px; display: inline-flex; align-items: center; gap: 25px; font-size: .78rem; font-weight: 700; }
.academy-primary { color: white; background: var(--academy-blue); box-shadow: 0 13px 30px rgba(168,85,247,.2); transition: transform 160ms ease, box-shadow 160ms ease; }
.academy-primary:hover { transform: translateY(-2px); box-shadow: 0 18px 35px rgba(168,85,247,.3); }
.academy-secondary { color: var(--academy-blue); border-bottom: 1px solid var(--academy-blue); }

.academy-index { position: relative; border: 1px solid var(--academy-line); background: rgba(13,9,30,.86); box-shadow: 20px 24px 0 rgba(168,85,247,.09), 0 0 42px rgba(6,182,212,.06); backdrop-filter: blur(12px); }
.academy-index::before { content: ''; width: 70px; height: 7px; position: absolute; top: -1px; left: -1px; background: var(--academy-cyan); }
.academy-index header { padding: 20px 22px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--academy-line); color: var(--academy-muted); font: 700 .6rem var(--academy-heading); letter-spacing: 1.3px; }
.academy-index header strong { color: var(--academy-blue); }
.academy-index-title { padding: 38px 28px 32px; display: flex; flex-direction: column; }
.academy-index-title small { margin-bottom: 10px; color: var(--academy-muted); font-size: .72rem; text-transform: uppercase; }
.academy-index-title strong { font: 800 clamp(2rem, 3.6vw, 3.5rem)/.92 var(--academy-heading); letter-spacing: -2px; }
.academy-index dl { border-top: 1px solid var(--academy-line); }
.academy-index dl > div { padding: 18px 22px; display: grid; grid-template-columns: 38px 1fr; gap: 14px; border-bottom: 1px solid var(--academy-line); }
.academy-index dl > div:last-child { border-bottom: 0; }
.academy-index dt { color: var(--academy-violet); font: 700 .72rem var(--academy-heading); }
.academy-index dd { display: flex; justify-content: space-between; gap: 16px; }
.academy-index dd strong { font-size: .85rem; }
.academy-index dd span { color: var(--academy-muted); font-size: .74rem; text-align: right; }

.academy-principles { padding: 23px clamp(24px, 6vw, 96px); display: flex; align-items: center; justify-content: space-between; gap: 35px; color: white; border-block: 1px solid var(--academy-line); background: var(--academy-panel-strong); }
.academy-principles > p { color: var(--academy-cyan); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.academy-principles > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: clamp(22px, 4vw, 65px); color: rgba(255,255,255,.66); font: 700 .62rem var(--academy-heading); letter-spacing: 1.2px; }

.curriculum-section { padding: 120px clamp(24px, 6vw, 96px); }
.curriculum-heading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(290px, .55fr); gap: 80px; align-items: end; }
.section-label { color: var(--academy-blue); font: 800 .64rem var(--academy-heading); letter-spacing: 1.8px; }
.curriculum-heading h2, .progression-section h2, .academy-cta h2 { margin-top: 18px; font: 700 clamp(2.3rem, 4.9vw, 4.8rem)/1.02 var(--academy-heading); letter-spacing: -3px; }
.curriculum-heading > p { color: var(--academy-muted); line-height: 1.8; }
.curriculum-grid { margin-top: 64px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.curriculum-card { min-height: 370px; padding: 30px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; border: 1px solid var(--academy-line); background: var(--academy-white); }
.curriculum-number { position: absolute; top: 25px; right: 25px; color: var(--academy-violet); font: 800 .78rem var(--academy-heading); }
.curriculum-card small { margin-bottom: 7px; color: var(--academy-blue); font: 800 .62rem var(--academy-heading); letter-spacing: 1.4px; }
.curriculum-card h3 { margin-bottom: 10px; font: 700 1.7rem var(--academy-heading); letter-spacing: -1px; }
.curriculum-card p { max-width: 510px; color: var(--academy-muted); line-height: 1.7; }
.curriculum-card-foundation { background: linear-gradient(145deg, var(--academy-white), #130e2b); }
.curriculum-mark { width: 145px; height: 145px; position: absolute; top: 38px; left: 38px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; transform: rotate(12deg); }
.curriculum-mark i { display: block; background: var(--academy-blue); }
.curriculum-mark i:nth-child(2) { background: var(--academy-cyan); transform: translateY(16px); }
.curriculum-mark i:nth-child(3) { background: var(--academy-violet); transform: translateY(32px); }
.curriculum-card-practice { color: white; background: var(--academy-blue); }
.curriculum-card-practice small, .curriculum-card-practice .curriculum-number { color: var(--academy-cyan); }
.curriculum-card-practice p { color: rgba(255,255,255,.72); }
.practice-orbit { width: 160px; height: 160px; position: absolute; top: 32px; left: 40px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; }
.practice-orbit::before, .practice-orbit::after { content: ''; position: absolute; inset: 25px; border: 1px solid rgba(12,205,232,.7); border-radius: 50%; }
.practice-orbit::after { inset: 55px; background: var(--academy-cyan); }
.practice-orbit i { width: 12px; height: 12px; position: absolute; border-radius: 50%; background: white; }
.practice-orbit i:first-child { top: 20px; right: 20px; }
.practice-orbit i:last-child { bottom: 17px; left: 23px; }
.review-bars { width: 180px; position: absolute; top: 50px; left: 35px; display: grid; gap: 12px; }
.review-bars i { height: 15px; display: block; background: #30264c; }
.review-bars i:nth-child(1) { width: 70%; background: var(--academy-violet); }
.review-bars i:nth-child(2) { width: 100%; }
.review-bars i:nth-child(3) { width: 55%; background: var(--academy-cyan); }
.review-bars i:nth-child(4) { width: 84%; }
.curriculum-card-review { background: linear-gradient(145deg, var(--academy-white), #130e2b); }
.curriculum-card-credential { min-height: 285px; grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: flex-start; gap: clamp(30px, 7vw, 105px); color: white; background: var(--academy-panel-strong); }
.curriculum-card-credential p { color: rgba(255,255,255,.65); }
.curriculum-card-credential small, .curriculum-card-credential .curriculum-number { color: var(--academy-cyan); }
.credential-seal { width: 145px; height: 145px; flex: 0 0 145px; display: grid; place-items: center; border: 1px solid var(--academy-cyan); border-radius: 50%; color: var(--academy-cyan); font: 800 3.6rem var(--academy-heading); box-shadow: inset 0 0 0 12px var(--academy-panel-strong), inset 0 0 0 13px rgba(6,182,212,.35), 0 0 24px rgba(6,182,212,.1); }

.progression-section { padding: 115px clamp(24px, 6vw, 96px); color: white; border-block: 1px solid var(--academy-line); background: radial-gradient(circle at 82% 20%, rgba(217,70,239,.18), transparent 34%), var(--academy-panel-strong); }
.progression-section header { max-width: 850px; }
.progression-section .section-label { color: var(--academy-cyan); }
.progression-track { margin-top: 70px; display: grid; grid-template-columns: repeat(4, 1fr); }
.progression-track li { min-height: 245px; padding: 25px 24px; position: relative; border-top: 1px solid rgba(255,255,255,.34); border-right: 1px solid rgba(255,255,255,.2); }
.progression-track li:last-child { border-right: 0; }
.progression-track > li > span { width: 31px; height: 31px; position: absolute; top: -16px; left: 24px; display: grid; place-items: center; border-radius: 50%; color: var(--academy-deep); background: var(--academy-cyan); font-size: .7rem; font-weight: 800; }
.progression-track li div { margin-top: 57px; }
.progression-track strong { font: 700 1.2rem var(--academy-heading); }
.progression-track p { margin-top: 11px; color: rgba(255,255,255,.67); font-size: .86rem; line-height: 1.7; }

.academy-cta { margin: 90px clamp(24px, 6vw, 96px); padding: clamp(36px, 5vw, 70px); display: flex; justify-content: space-between; align-items: center; gap: 45px; border: 1px solid var(--academy-line); background: var(--academy-white); box-shadow: 14px 14px 0 rgba(168,85,247,.14); }
.academy-cta > div { max-width: 840px; }
.academy-cta > div > span { color: var(--academy-blue); font: 800 .62rem var(--academy-heading); letter-spacing: 1.5px; }
.academy-cta a { min-width: 260px; min-height: 70px; padding: 0 25px; display: flex; align-items: center; justify-content: space-between; color: white; background: var(--academy-blue); font-size: .8rem; font-weight: 700; }
.academy-cta a b { color: var(--academy-cyan); font-size: 1.4rem; }
.academy-footer { padding: 26px clamp(24px, 6vw, 96px); display: flex; justify-content: space-between; gap: 25px; border-top: 1px solid var(--academy-line); color: var(--academy-muted); font-size: .64rem; font-weight: 700; letter-spacing: .8px; }

@media (max-width: 960px) {
    .academy-hero { min-height: auto; grid-template-columns: 1fr; background: var(--academy-paper); }
    .academy-index { max-width: 620px; }
    .curriculum-heading { grid-template-columns: 1fr; gap: 24px; }
    .progression-track { grid-template-columns: repeat(2, 1fr); gap: 45px 0; }
    .academy-cta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {
    .academy-masthead { min-height: 74px; padding-inline: 18px; }
    .academy-brand small { display: none; }
    .academy-nav > a:not(.academy-nav-action) { display: none; }
    .academy-nav-action { min-height: 42px; padding-inline: 13px; }
    .academy-hero { padding: 72px 20px; }
    .academy-hero-copy h1 { font-size: clamp(3rem, 15vw, 5rem); letter-spacing: -3px; }
    .academy-actions { align-items: stretch; flex-direction: column; }
    .academy-primary, .academy-secondary { justify-content: space-between; }
    .academy-index dd { flex-direction: column; gap: 3px; }
    .academy-index dd span { text-align: left; }
    .academy-principles { padding-inline: 20px; align-items: flex-start; flex-direction: column; }
    .academy-principles > div { justify-content: flex-start; }
    .curriculum-section, .progression-section { padding: 85px 20px; }
    .curriculum-grid { grid-template-columns: 1fr; }
    .curriculum-card-credential { grid-column: auto; align-items: flex-start; flex-direction: column; }
    .progression-track { grid-template-columns: 1fr; gap: 45px 0; }
    .progression-track li { min-height: 190px; border-right: 0; }
    .academy-cta { margin: 65px 20px; box-shadow: 8px 8px 0 rgba(168,85,247,.14); }
    .academy-cta a { width: 100%; min-width: 0; }
    .academy-footer { padding-inline: 20px; flex-direction: column; }
}

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