@font-face{font-family:Poppins;src:url("/assets/fonts/poppins-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url("/assets/fonts/poppins-bold.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
/* Homepage-only typography and restrained motion; text is visible without JS. */
.home-neon{font-family:Poppins,Arial,system-ui,sans-serif;line-height:1.7;letter-spacing:0}
.home-neon h1,.home-neon h2,.home-neon h3{font-family:Poppins,Arial,system-ui,sans-serif;font-weight:700;letter-spacing:.005em;overflow-wrap:normal;word-break:normal;text-wrap:balance}
.home-neon h1{font-size:clamp(3rem,7.2vw,6.4rem);line-height:1.04;max-width:980px;text-transform:uppercase}
.home-neon h2{font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.1;max-width:20ch}
.home-neon h3{font-size:clamp(1.55rem,2.1vw,1.9rem);line-height:1.16;letter-spacing:.015em}
.home-neon .lead{font-size:clamp(1.08rem,1.7vw,1.25rem);line-height:1.65}
.home-neon .eyebrow{line-height:1.6;letter-spacing:.13em}
.home-neon h1,.home-neon h2{padding-block:.08em}
.home-neon .heading-mask{overflow:clip}
.home-neon .heading-inner{display:block}
.home-neon .heading-accent{position:relative;display:inline-block;white-space:normal}
.home-neon .heading-accent::after{content:"";position:absolute;left:0;right:0;bottom:.015em;height:.045em;min-height:2px;background:var(--green);transform-origin:left center}
.home-neon .has-heading-motion .heading-accent::after{transform:scaleX(0)}
.home-neon .has-heading-motion.is-heading-visible .heading-accent::after{transform:scaleX(1);transition:transform .55s cubic-bezier(.2,.7,.2,1) .35s}
/* The shared community reveal is replaced by the heading entrance here. */
.motion-ready .home-neon .community-band.motion-reveal{opacity:1;transform:none;clip-path:none;transition:none}
.home-neon .academy-training{overflow:clip}
.home-neon .academy-training-grid{display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:clamp(2rem,5vw,5rem)}
.home-neon .academy-training-copy{min-width:0;max-width:34rem}
.home-neon .academy-training-copy p:not(.eyebrow){color:#dbe1dc}
.home-neon .training-graphic{margin:0;min-width:0;perspective:1000px}
.home-neon .training-graphic-drift{transform:translate3d(0,var(--graphic-y,0px),0) rotate(var(--graphic-turn,0deg))}
.home-neon .training-graphic-tilt{transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .4s cubic-bezier(.2,.7,.2,1);transform-origin:center}
.home-neon .training-graphic img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;filter:none}
@media(max-width:800px){.home-neon h1{font-size:clamp(2.3rem,8.8vw,4.4rem);line-height:1.06}.home-neon h2{font-size:clamp(2rem,6.7vw,3rem);line-height:1.12}.home-neon .academy-training-grid{grid-template-columns:minmax(0,1fr);gap:2rem}.home-neon .training-graphic{max-width:620px;width:100%;margin-inline:auto}.home-neon .training-graphic-drift,.home-neon .training-graphic-tilt{transform:none;transition:none}}
@media(prefers-reduced-motion:reduce){.home-neon .heading-inner,.home-neon h3,.home-neon .training-graphic,.home-neon .training-graphic-drift,.home-neon .training-graphic-tilt{animation:none!important;transform:none!important;transition:none!important;opacity:1!important}.home-neon .heading-accent::after{transform:none!important;transition:none!important}}

/* Slow whole-graphic wobble, including its logo block. */
@keyframes onyx-graphic-wobble{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
.home-neon .training-graphic img{animation:onyx-graphic-wobble 7s ease-in-out infinite;animation-play-state:paused;transform-origin:center}
.home-neon .training-graphic.graphic-motion-visible:not(.image-motion-paused) img{animation-play-state:running}
.home-neon .graphic-motion-control{display:flex;justify-content:center;margin-top:1rem}
.home-neon .graphic-motion-toggle{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--muted);padding:.65rem .85rem;font:inherit;font-size:.75rem;cursor:pointer;min-height:44px}
.home-neon .graphic-motion-toggle[hidden]{display:none}
@media(max-width:800px){@keyframes onyx-graphic-wobble{0%,100%{transform:translateY(0) rotate(-.65deg)}50%{transform:translateY(-3px) rotate(.65deg)}}}
@media(prefers-reduced-motion:reduce){.home-neon .training-graphic img{animation:none!important;transform:none!important}}

/* Shared typography: preserve each page's existing heading sizes and layout. */
.onyx-typography{font-family:Poppins,Arial,system-ui,sans-serif}
.onyx-typography h1,.onyx-typography h2,.onyx-typography h3{font-family:Poppins,Arial,system-ui,sans-serif;font-weight:700}
.onyx-typography h1,.onyx-typography h2{padding-block:.08em;line-height:1.12}
.onyx-typography .heading-mask{overflow:clip}
.onyx-typography .heading-inner{display:block}
@media(prefers-reduced-motion:reduce){.onyx-typography .heading-inner,.onyx-typography h3{animation:none!important;transform:none!important;opacity:1!important;transition:none!important}}

@media(max-width:800px){.onyx-typography:not(.home-neon) h1{font-size:clamp(2.3rem,8.8vw,4.4rem);line-height:1.12}}
