@font-face{
  font-family:Cairo;
  src:url("./assets/cairo-ar.woff2") format("woff2");
  font-weight:200 1000;
  font-display:swap;
  unicode-range:U+0600-08FF,U+200C-200E,U+FB50-FDFF,U+FE70-FEFC;
}
@font-face{
  font-family:Cairo;
  src:url("./assets/cairo-latin.woff2") format("woff2");
  font-weight:200 1000;
  font-display:swap;
  unicode-range:U+0000-00FF,U+2000-200B,U+200F-206F;
}

:root{
  color-scheme:dark;--midnight:#151322;--cloud:#f4f2fa;--lime:#b8f74a;--violet:#a94bf5;--sky:#48d6f3;
  --muted:#b9b4cc;--line:rgba(244,242,250,.15);--soft-edge:rgba(244,242,250,.24);
  --body:Cairo,"Segoe UI",Arial,sans-serif;
  font-family:var(--body);background:var(--midnight);color:var(--cloud);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body,h1,h2,p,figure{margin:0}
body{min-width:0;overflow-x:clip}
a{color:inherit;text-decoration:none}
button,summary{font:inherit}
button{color:inherit}
img{max-width:100%;display:block}
svg{display:block}
::selection{color:var(--midnight);background:var(--lime)}
:focus-visible{outline:2px solid var(--sky);outline-offset:4px}
[id]{scroll-margin-top:20px}
.shell{width:min(100% - 8.7vw,1440px);margin-inline:auto}
.skip{position:fixed;inset-block-start:12px;inset-inline-start:12px;transform:translateY(-180%);z-index:6;background:var(--lime);color:var(--midnight);padding:9px 16px}
.skip:focus{transform:none}

.site-header{border-bottom:1px solid var(--line)}
.header-inner{min-height:92px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(.75rem,2.1vw,2rem)}
.brand{display:flex;align-items:center;gap:13px;width:max-content;max-width:100%}
.brand img{width:80px;aspect-ratio:1;height:auto;border-radius:50%}
.brand-name{display:grid;line-height:1.1;text-align:left;white-space:nowrap}
.brand-name strong,.footer-brand{font:italic 850 1.72rem/1 var(--body);letter-spacing:-.01em}
.brand-name small{font:700 .58rem/1.3 var(--body);letter-spacing:.105em;color:var(--muted);margin-top:5px}
.navigation{display:flex;align-items:center;gap:clamp(.85rem,2.7vw,2.9rem);font-size:.875rem;font-weight:650;color:var(--muted);white-space:nowrap}
.navigation a{padding-block:11px;transition:color .2s}
.navigation a:first-child,.navigation a:hover{color:var(--cloud)}
.header-actions{display:flex;justify-self:end;align-items:center;gap:8px}
.header-link,.language-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--soft-edge);font-weight:800;white-space:nowrap;transition:background .2s,color .2s,border .2s}
.header-link{gap:10px;padding:7px 15px;color:var(--lime);font-size:.9rem}
.language-link{min-width:42px;padding-inline:9px;color:var(--cloud);font-size:.86rem}
.language-link:hover{color:var(--lime);border-color:var(--lime)}
.header-link svg,.hero-actions svg,.start-link svg,.footer-inner svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.header-link:hover{background:var(--lime);color:var(--midnight);border-color:var(--lime)}

.hero{
  display:grid;
  gap:clamp(15px,2.2svh,24px);
  padding-block:clamp(19px,3svh,36px) clamp(24px,4svh,54px);
  position:relative;
}
.hero-copy{position:relative;z-index:4;text-align:center}
.hero-label{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;color:var(--muted);font-weight:670;font-size:.83rem}
.hero-label i,.plot-tag i,.orbit-dot,.footer-inner>span i{width:6px;height:6px;background:var(--sky);border-radius:50%;flex:none}
.hero-label span{width:16px;height:1px;background:var(--soft-edge)}
h1,h2{font-weight:900;line-height:1.32}
.hero h1{
  font-size:clamp(2rem,6.4vw,5.65rem);
  margin-block:clamp(4px,1svh,10px) clamp(3px,.65svh,8px);
  letter-spacing:-.02em;
  line-height:1.2;
}
.hero h1>span{white-space:nowrap}
.hero h1>span,.hero h1>em,.academy h2>span,.academy h2>em{display:inline-block}
.hero h1 em,.academy h2 em{font-style:normal}
.hero h1 em{color:var(--lime);white-space:nowrap}
.hero-copy>p{color:var(--muted);font-size:clamp(.9rem,1.28vw,1.13rem);line-height:1.8;max-width:62ch;margin-inline:auto;font-weight:460}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px clamp(10px,2vw,29px);margin-top:clamp(10px,2svh,20px)}
.signup{display:inline-flex;align-items:center;justify-content:space-between;gap:clamp(15px,2.7vw,39px);background:var(--lime);color:var(--midnight);font-weight:900;padding:11px 19px;min-height:55px;clip-path:polygon(0 0,100% 0,100% 100%,12px 100%,0 calc(100% - 12px));transition:background .25s}
.signup:hover{background:var(--cloud)}
.signup:focus-visible{outline-offset:-4px;outline-color:var(--midnight)}
.signup svg{width:23px;height:23px;transition:transform .25s}
.signup:hover svg{transform:translateY(3px)}
.learn-link{display:inline-flex;align-items:center;gap:7px;color:var(--cloud);font-weight:680;font-size:.87rem;min-height:44px;transition:color .2s}
.learn-link svg{color:var(--sky);width:17px;height:17px;transition:transform .25s}
.learn-link:hover{color:var(--sky)}
.learn-link:hover svg{transform:translate(2px,-2px)}

.hero-visual{min-width:0;position:relative;width:min(100%,1120px);margin-inline:auto}
.figure-field{isolation:isolate;position:relative;height:clamp(235px,44svh,490px);border:1px solid var(--line);overflow:hidden;
  background:radial-gradient(ellipse at 54% 54%,#292039 0%,#201a30 37%,#151322 76%)}
.figure-field::before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(to right,rgba(169,75,245,.085) 1px,transparent 1px),linear-gradient(to bottom,rgba(169,75,245,.085) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse at 53% 55%,#000 4%,rgba(0,0,0,.85) 39%,transparent 87%)}
.plot-tag{position:absolute;font:750 clamp(.56rem,1vw,.69rem)/1 var(--body);display:flex;align-items:center;gap:8px;color:var(--muted);letter-spacing:.095em;z-index:2;pointer-events:none}
.plot-tag{top:19px;left:20px}.plot-tag b{font-weight:400;color:var(--sky)}
.plot-frame{width:12px;height:12px;position:absolute;border:0 solid var(--sky);opacity:.83;z-index:3;pointer-events:none}
.plot-tl{inset:0 auto auto 0;border-width:1px 0 0 1px}.plot-tr{inset:0 0 auto auto;border-width:1px 1px 0 0}
.plot-bl{inset:auto auto 0 0;border-width:0 0 1px 1px}.plot-br{inset:auto 0 0 auto;border-width:0 1px 1px 0}
.figure-word{position:absolute;z-index:-1;left:7.5%;top:23%;font:italic 900 clamp(2.5rem,8vw,8rem)/.83 var(--body);letter-spacing:-.045em;color:transparent;-webkit-text-stroke:1px rgba(244,242,250,.21);transform:rotate(-7deg);user-select:none}
.figure-word span{-webkit-text-stroke-color:rgba(184,247,74,.45)}
.hero-orbit{position:absolute;z-index:-1;inset:0;pointer-events:none}
.hero-orbit svg{width:100%;height:100%;fill:none}
.orbit-dash{stroke:rgba(244,242,250,.20);stroke-dasharray:3 7}
.orbit-solid{stroke:rgba(169,75,245,.37)}
.orbit-glow{stroke:var(--violet);stroke-width:2.3;opacity:.7}
.orbit-lime{stroke:var(--lime);stroke-width:1.5;opacity:.68}
.orbit-marker{fill:var(--sky)}.orbit-dot{fill:var(--lime)}.orbit-cross{stroke:var(--sky);opacity:.3}
.skate-stage{position:absolute;inset:0}
.skate-poster{position:absolute;inset:3% 5%;width:90%;height:94%;object-fit:cover;object-position:51% 63%;mask-image:radial-gradient(ellipse at 54% 57%,#000 15%,#000d 48%,transparent 72%);transition:opacity .45s ease}
.skate-stage[data-skate-ready] .skate-poster{visibility:hidden;opacity:0}
.skate-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y;visibility:hidden}
.skate-stage[data-skate-ready] canvas{visibility:visible;cursor:grab}
.skate-stage[data-skate-ready] canvas:active{cursor:grabbing}
.skate-stage canvas:focus-visible{outline-offset:-4px}
.figure-caption{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:51px;border-bottom:1px solid var(--line)}
.render-id{color:var(--muted);font-size:.76rem;font-weight:640;white-space:nowrap}
.skate-toolbar{display:none;align-items:center;gap:8px}
.hero-visual:has([data-skate-ready]) .skate-toolbar{display:flex}
.skate-toolbar>span{color:var(--muted);font-size:.75rem;font-weight:580}
.skate-toolbar button{display:grid;place-items:center;background:none;border:1px solid var(--soft-edge);padding:0;width:44px;height:44px;cursor:pointer;transition:border .2s,color .2s}
.skate-toolbar button:hover{border-color:var(--lime);color:var(--lime)}
.skate-toolbar svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.skate-toolbar .play-icon,[data-skate-pause][aria-pressed="true"] .pause-icon{display:none}
[data-skate-pause][aria-pressed="true"] .play-icon{display:block}

.motion-rail{border-block:1px solid rgba(184,247,74,.55);background:#1d2220;overflow:hidden}
.rail-inner{min-height:52px;display:flex;align-items:center;justify-content:center;gap:clamp(13px,3vw,45px);font:italic 850 clamp(.95rem,2.2vw,1.35rem)/1 var(--body);letter-spacing:.11em;color:var(--lime);white-space:nowrap}
.rail-inner i{height:1px;background:linear-gradient(90deg,transparent,var(--lime));flex:1;max-width:410px;opacity:.45}
.rail-inner i:last-child{rotate:180deg}

.academy{background:var(--cloud);color:var(--midnight);color-scheme:light;padding-block:clamp(56px,7.4vw,112px);overflow-x:clip}
.academy :focus-visible{outline-color:#7023b5}
.academy-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.19fr);align-items:center;gap:clamp(2.2rem,7vw,8rem)}
.academy h2,.start h2{font-size:clamp(2rem,4.4vw,4.65rem);letter-spacing:-.02em}
.academy h2 em{color:#742bc2}
.academy-copy>p{font-size:clamp(.99rem,1.38vw,1.125rem);color:#494259;line-height:1.95;margin-block:14px 24px;max-width:45ch}
.academy-lead>span{display:block}
.skill-list{border-top:1px solid #d4cee0}
.skill-list details{border-bottom:1px solid #d4cee0}
.skill-list summary{list-style:none;display:grid;grid-template-columns:1fr 22px;align-items:center;gap:13px;min-height:51px;cursor:pointer}
.skill-list summary::-webkit-details-marker{display:none}
.skill-list summary strong{font-size:1rem;font-weight:880}
.skill-plus{height:20px;width:20px;display:grid;place-items:center;position:relative}
.skill-plus::before,.skill-plus::after{position:absolute;content:"";width:11px;height:1px;background:#742bc2}
.skill-plus::after{rotate:90deg;transition:rotate .2s}
.skill-list details[open] .skill-plus::after{rotate:0deg}
.skill-list details p{font-size:.9rem;line-height:1.9;color:#494259;margin-block:0 13px;margin-inline-end:22px}
.academy-photo{position:relative;isolation:isolate}
.photo-frame{position:relative;aspect-ratio:1.32;overflow:hidden;background:#b1a8bb;clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%)}
.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 56%}
.photo-frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(150deg,rgba(169,75,245,.18),transparent 50%,rgba(21,19,34,.19));mix-blend-mode:multiply}
.academy-photo::after{content:"";position:absolute;z-index:-1;inset:11px -11px 28px 11px;border:1px solid rgba(116,43,194,.45)}
.academy-photo figcaption{margin-top:16px;color:#514960;font-size:.78rem}

.gallery{
  padding-block:clamp(55px,8vw,125px);
  overflow-x:clip;
  background:linear-gradient(156deg,#221631 0%,var(--midnight) 60%);
  border-bottom:1px solid var(--line);
}
.gallery-heading{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:.55rem 1.8rem;
  margin-bottom:clamp(20px,3vw,40px);
}
.gallery-heading h2{
  font-size:clamp(2.3rem,6.2vw,5.8rem);
  line-height:1.14;
  letter-spacing:-.025em;
}
.gallery-heading em{color:var(--lime);font-style:normal}
.gallery-heading p{color:var(--muted);font-size:clamp(.92rem,1.5vw,1.12rem)}
.gallery-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  grid-template-rows:repeat(2,clamp(150px,19vw,268px));
  gap:clamp(8px,1.3vw,18px);
}
.gallery-item{
  isolation:isolate;
  position:relative;
  display:block;
  overflow:hidden;
  min-width:0;
  background:#241d30;
  border:1px solid var(--soft-edge);
}
.gallery-item--feature{grid-row:span 2}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:scale .42s cubic-bezier(.19,.77,.28,1);
}
.gallery-item--feature img{object-position:center 63%}
.gallery-item--rink img{object-position:center 65%}
.gallery-item--turn img{object-position:center 75%}
.gallery-item::after{
  position:absolute;
  inset:25% 0 0;
  background:linear-gradient(0deg,rgba(13,10,22,.93),rgba(13,10,22,0));
  content:"";
  pointer-events:none;
}
.gallery-label{
  position:absolute;
  z-index:1;
  inset:auto 0 0;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:.4rem;
  padding:clamp(8px,2vw,25px);
  color:var(--cloud);
  font-size:clamp(.85rem,2vw,1.5rem);
  line-height:1.35;
}
.gallery-label svg,.gallery-viewer button svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.7;
}
.gallery-label svg{
  box-sizing:content-box;
  flex:none;
  padding:8px;
  color:var(--lime);
  border:1px solid var(--soft-edge);
}
.gallery-item:hover img,.gallery-item:focus-visible img{scale:1.06}
.gallery-item:hover .gallery-label svg,.gallery-item:focus-visible .gallery-label svg{
  color:var(--midnight);
  background:var(--lime);
}

body:has(.gallery-viewer[open]){overflow:hidden}
.gallery-viewer{
  width:min(900px,calc(100% - 28px));
  max-width:none;
  max-height:calc(100dvh - 28px);
  padding:0;
  overflow:auto;
  color:var(--cloud);
  background:var(--midnight);
  border:1px solid var(--soft-edge);
  overscroll-behavior:contain;
}
.gallery-viewer::backdrop{background:rgba(12,9,20,.91)}
.gallery-viewer-inner{position:relative}
.gallery-full{
  display:grid;
  place-items:center;
  background:#0d0a16;
  touch-action:pan-y pinch-zoom;
}
.gallery-full img{
  width:100%;
  height:min(71dvh,680px);
  object-fit:contain;
  touch-action:pan-y pinch-zoom;
}
.gallery-viewer button{
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  padding:0;
  color:var(--cloud);
  background:var(--midnight);
  border:1px solid var(--soft-edge);
  cursor:pointer;
}
.gallery-viewer button:hover{color:var(--lime);border-color:var(--lime)}
.gallery-close{position:absolute;z-index:1;inset-block-start:10px;inset-inline-end:10px}
.gallery-viewer-bar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.55rem 1rem;
  padding:10px 16px;
  border-top:1px solid var(--line);
}
.gallery-viewer-bar h2{font-size:clamp(1rem,3vw,1.4rem)}
.gallery-viewer-nav{display:flex;gap:10px;align-items:center;color:var(--muted)}
.gallery-viewer-nav p{white-space:nowrap;font-size:.8rem}
.gallery-viewer:dir(ltr) .gallery-viewer-nav svg{scale:-1 1}

.lesson{
  padding-block:clamp(55px,7.4vw,110px);
  color:var(--midnight);
  background:var(--cloud);
  color-scheme:light;
  overflow-x:clip;
}
.lesson-heading{max-width:800px}
.lesson-heading h2{
  margin:0;
  font-size:clamp(2.2rem,5.6vw,5.15rem);
  font-weight:900;
  letter-spacing:-.025em;
  line-height:1.2;
}
.lesson-heading em{color:#742bc2;font-style:normal}
.lesson-heading p{
  margin-top:12px;
  color:#514960;
  font-size:clamp(1rem,1.55vw,1.2rem);
  line-height:1.8;
}
.lesson [data-scroll-enter]{display:block}
.lesson-journey{
  --lesson-gap:clamp(20px,4vw,70px);
  position:relative;
  margin-top:clamp(30px,4vw,57px);
}
.lesson-steps{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--lesson-gap);
  counter-reset:lesson-step;
}
.lesson-step{
  position:relative;
  padding-block-start:64px;
  counter-increment:lesson-step;
}
.lesson-step::before{
  content:counter(lesson-step,decimal-leading-zero);
  position:absolute;
  inset-block-start:0;
  inset-inline-start:0;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid #9d75c5;
  border-radius:50%;
  color:#742bc2;
  background:var(--cloud);
  font-weight:850;
  font-size:.85rem;
}
.lesson-step h3{margin:0 0 9px;font-size:clamp(1.13rem,1.9vw,1.65rem);font-weight:850;line-height:1.4}
.lesson-step p{color:#514960;font-size:clamp(.94rem,1.3vw,1.09rem);line-height:1.85;max-width:35ch}
.lesson-track{
  position:absolute;
  inset-block-start:20px;
  inset-inline-start:21px;
  width:calc((100% + var(--lesson-gap)) * 2 / 3);
  height:2px;
  background:#dfd3ed;
}
.lesson-track i{
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(90deg,#a94bf5,#742bc2);
}
.lesson[data-scroll-active] .lesson-track i{
  transform:scaleX(var(--lesson-route,1));
  transform-origin:right;
}
:root[dir="ltr"] .lesson-track i{transform-origin:left}
.lesson-contact{
  width:max-content;
  max-width:100%;
  display:flex;
  align-items:center;
  gap:22px;
  margin-block-start:35px;
  margin-inline-start:auto;
  min-height:48px;
  color:#742bc2;
  border-bottom:1px solid #a581ca;
  font-size:clamp(.95rem,1.4vw,1.12rem);
  font-weight:850;
  line-height:1.5;
  padding-block:7px;
}
.lesson-contact svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.lesson-contact:hover{color:var(--midnight);border-color:var(--midnight)}
.lesson-contact:focus-visible{outline-color:#742bc2}

.start{padding-block:clamp(43px,6.4vw,98px);position:relative}
.start-board{isolation:isolate;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr);align-items:center;min-height:320px;gap:2rem;padding:clamp(25px,5vw,74px);overflow:hidden;border:1px solid var(--soft-edge);border-inline-start:3px solid var(--lime);background:linear-gradient(85deg,#282036 0%,var(--midnight) 63%)}
.start-lines{pointer-events:none;position:absolute;height:100%;width:55%;inset-inline-end:0;top:0;z-index:-1;stroke:var(--violet);stroke-width:2.2;fill:none;opacity:.55}
:root[dir="ltr"] .start-lines{scale:-1 1}
:root[dir="ltr"] .start-board{background:linear-gradient(275deg,#282036 0%,var(--midnight) 63%)}
:root[lang="en"] .hero h1{font-size:clamp(2.15rem,4.45vw,4.45rem);text-wrap:balance}
:root[lang="en"] .hero h1>span,:root[lang="en"] .hero h1>em{white-space:normal}
:root[lang="en"] .hero-copy>p{max-width:78ch;text-wrap:balance}
.start-lines path:first-of-type,.start-lines circle{stroke:var(--lime)}
.start-copy p{color:var(--muted);max-width:44ch;font-size:clamp(.95rem,1.4vw,1.075rem);line-height:1.95;margin-top:12px}
.start-signoff{
  justify-self:center;
  color:var(--cloud);
  font-size:clamp(1.75rem,3.65vw,3.9rem);
  font-weight:870;
  line-height:1.34;
  letter-spacing:-.02em;
  text-shadow:0 2px 20px var(--midnight);
}
.start-signoff span{color:var(--lime)}
.start-link{display:inline-flex;align-items:center;gap:10px;min-height:54px;margin-top:24px;padding-inline:17px;background:var(--lime);color:var(--midnight);font-size:.91rem;font-weight:900;transition:box-shadow .23s,transform .23s}
.start-link svg:last-child{margin-inline-start:7px}
.start-link:hover{box-shadow:5px 5px 0 var(--violet);transform:translate(-2px,-2px)}

.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}
.footer-inner{min-height:79px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.footer-brand{color:var(--cloud);display:flex;align-items:end;gap:8px;font-size:1.25rem}
.footer-brand small{color:var(--muted);font:700 .57rem/1 var(--body);letter-spacing:.06em}
.footer-inner>span,.footer-inner>a:last-child{display:flex;align-items:center;gap:9px}
.footer-inner>a:last-child:hover{color:var(--lime)}
.footer-inner svg{color:var(--sky);width:15px;height:15px}

.ride-world,.ride-story{display:none}
.ride[data-ride-active]{
  --ride-takeover:0;
  --ride-intro:1;
  --ride-presence:1;
  position:relative;
  isolation:isolate;
}
.ride[data-ride-active] .ride-pin{
  position:sticky;
  top:0;
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  overflow:clip;
  background:var(--midnight);
}
.ride[data-ride-active]::after{
  content:"";
  display:block;
  height:clamp(625px,112svh,1100px);
}
.ride[data-ride-active] .ride-world{
  position:absolute;
  z-index:0;
  inset:0;
  display:block;
  pointer-events:none;
  opacity:calc(var(--ride-takeover) * max(.28,var(--ride-presence)));
  background:radial-gradient(ellipse at 50% 52%,#251832 0%,var(--midnight) 70%);
}
.ride-world canvas{
  width:100%;
  height:100%;
  display:block;
}
.ride[data-ride-active] .hero-copy{
  opacity:calc(1 - var(--ride-copy-out,0));
  transform:translate3d(0,calc(var(--ride-copy-out,0) * -54px),0);
}
.ride[data-ride-active] .figure-caption{
  opacity:var(--ride-intro);
  transform:translateY(calc(var(--ride-takeover) * -32px));
}
.ride[data-ride-active] .hero-visual{z-index:3}
.ride[data-ride-active] .figure-field{
  overflow:visible;
  border-color:rgba(244,242,250,calc(var(--ride-intro) * .15));
  background:none;
}
.ride[data-ride-active] .figure-field::after{
  content:"";
  position:absolute;
  z-index:-2;
  inset:0;
  opacity:var(--ride-intro);
  background:radial-gradient(ellipse at 54% 54%,#292039 0%,#201a30 37%,#151322 76%);
}
.ride[data-ride-active] .figure-field::before,
.ride[data-ride-active] :is(.plot-tag,.plot-frame,.figure-word,.hero-orbit){
  opacity:var(--ride-intro);
}
.ride[data-ride-active] .figure-word{
  transform:translateX(calc(-9% * var(--ride-takeover))) rotate(calc(-7deg - 5deg * var(--ride-takeover)));
}
.ride[data-ride-active] .skate-stage{
  transform:translate3d(var(--ride-x,0px),var(--ride-y,0px),0) scale(var(--ride-scale,1));
  opacity:var(--ride-presence);
}
.ride[data-ride-active] .skate-stage canvas{
  mask-image:linear-gradient(0deg,transparent,#000 var(--ride-edge,0%),#000 calc(100% - var(--ride-edge,0%)),transparent),
    linear-gradient(90deg,transparent,#000 var(--ride-edge,0%),#000 calc(100% - var(--ride-edge,0%)),transparent);
  mask-composite:intersect;
}
.ride[data-ride-active] .skate-poster{
  transform:translateX(var(--ride-poster-x,0%)) scale(var(--ride-poster-zoom,1));
}
.ride[data-ride-active] .ride-story{
  display:block;
  position:absolute;
  z-index:4;
  inset:0;
  pointer-events:none;
}
.ride-line{
  position:absolute;
  top:clamp(50px,24%,235px);
  max-width:min(29vw,395px);
  color:var(--cloud);
  font-size:clamp(2.15rem,5.1vw,5.4rem);
  font-weight:900;
  line-height:1.14;
  letter-spacing:-.025em;
  text-shadow:0 2px 20px var(--midnight),0 2px 35px var(--midnight);
  opacity:var(--line-opacity,0);
  transform:translate3d(calc(var(--line-direction) * var(--line-offset,1) * clamp(30px,7vw,105px)),0,0);
}
.ride-line--right{right:clamp(22px,6vw,105px);--line-direction:1}
.ride-line--left{left:clamp(22px,6vw,105px);--line-direction:-1}
.ride-line em{color:var(--lime);font-style:normal}
.ride-line--final{
  --final-progress:var(--ride-finale,0);
  --final-entry:clamp(48px,8vw,115px);
  --final-side:clamp(90px,26vw,330px);
  top:calc(13% + 31% * var(--final-progress));
  right:50%;
  width:max-content;
  max-width:calc(100% - 40px);
  text-align:center;
  transform:translateX(calc(50% + (1 - var(--final-progress)) * var(--final-side) + var(--line-offset,0) * var(--final-entry)));
}
@media(prefers-reduced-motion:no-preference){
  [data-scroll-section][data-scroll-active] [data-scroll-enter]{
    --academy-left:calc(1 - var(--scroll-progress,1));
    --academy-distance:clamp(20px,4.5vw,66px);
    opacity:calc(1 - .31 * var(--academy-left));
    translate:calc(var(--academy-side) * var(--academy-distance) * var(--academy-left)) 0;
  }
  [data-scroll-section] [data-scroll-enter="left"]{--academy-side:-1}
  [data-scroll-section] [data-scroll-enter="right"]{--academy-side:1}
  .academy[data-scroll-active] .photo-frame img{
    transform:scale(calc(1 + .13 * var(--academy-left)));
    transform-origin:46% 68%;
  }
  .academy[data-scroll-active] .skill-list [data-scroll-enter]{--academy-distance:clamp(15px,2.7vw,40px)}
  .academy[data-scroll-active] details:focus-within [data-scroll-enter]{
    opacity:1;
    translate:none;
  }
}

[data-enter="right"]{--text-origin:1}
[data-enter="left"]{--text-origin:-1}
.text-arriving{
  --text-distance:clamp(22px,4.5vw,70px);
  animation:text-slide-in .64s cubic-bezier(.19,.77,.28,1) var(--text-delay,0s) both;
}
.hero-label.text-arriving{--text-distance:clamp(18px,3vw,44px)}
.hero h1 em.text-arriving{--text-delay:.09s}
.hero-copy>p.text-arriving{--text-delay:.14s}
.start-signoff.text-arriving{--text-delay:.12s}
.start-link:focus-visible [data-enter],.text-arriving:focus-visible{animation:none}
@keyframes text-slide-in{
  from{opacity:.58;translate:calc(var(--text-origin) * var(--text-distance)) 0}
  to{opacity:1;translate:0 0}
}

@media(max-width:940px){
  .shell{width:calc(100% - 7vw)}
  .academy-grid{gap:3.4rem}
}
@media(max-width:840px){
  .header-inner{grid-template-columns:minmax(0,1fr) max-content}
  .site-header .navigation{display:none}
}
@media(max-width:720px){
  .shell{width:calc(100% - 36px)}
  .header-inner{grid-template-columns:minmax(0,1fr) max-content;gap:10px;min-height:87px}
  .brand img{width:80px}
  .brand-name strong{font-size:1.4rem}
  .hero{padding-block:18px 25px;gap:14px}
  .hero h1{font-size:clamp(1.98rem,8.8vw,4.3rem);margin-block:7px 6px;line-height:1.24}
  :root[lang="en"] .hero h1{font-size:clamp(1.85rem,7.3vw,3.5rem);line-height:1.13}
  :root[lang="en"] .signup{gap:8px}
  .hero-copy>p{max-width:35ch;line-height:1.74}
  :root[lang="en"] .hero-copy>p{max-width:38ch}
  .signup{min-height:48px;padding:7px 15px}
  .figure-field{height:auto;aspect-ratio:1.23}
  .figure-word{font-size:clamp(2.5rem,12vw,5.7rem);top:17%;left:8%}
  .plot-tag{top:13px;left:12px}
  .figure-caption{min-height:48px}
  .ride-line{
    top:clamp(28px,13%,100px);
    right:20px;
    left:20px;
    max-width:none;
    font-size:clamp(1.85rem,8.3vw,3.25rem);
    text-align:center;
    translate:0 calc(var(--line-offset,0) * 42px);
  }
  .ride-line--final{
    --final-entry:42px;
    --final-side:0px;
    top:calc(17% + 23% * var(--final-progress));
    right:50%;
    left:auto;
    translate:none;
  }
  .rail-inner{min-height:45px}
  .academy-grid{grid-template-columns:1fr;gap:29px}
  .academy h2,.start h2{font-size:clamp(2.07rem,7.8vw,3.65rem)}
  .academy-photo{width:calc(100% - 7px)}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}
  .gallery-item--feature{grid-row:auto;grid-column:1 / -1;aspect-ratio:1.38}
  .gallery-item:not(.gallery-item--feature){aspect-ratio:1.07}
  .gallery-label svg{width:15px;height:15px;padding:5px}
  .gallery-full img{height:min(65dvh,79vw)}
  .gallery-viewer-bar{padding-inline:10px}
  .lesson-steps{grid-template-columns:1fr;gap:26px}
  .lesson-step{padding-block-start:2px;padding-inline-start:62px}
  .lesson-step p{max-width:46ch}
  .lesson-track{width:2px;height:calc(100% - 22px);inset-inline-start:20px}
  .lesson[data-scroll-active] .lesson-track i{transform:scaleY(var(--lesson-route,1));transform-origin:top}
  .lesson-contact{margin-inline-start:62px;gap:12px;max-width:calc(100% - 62px)}
  .start-board{min-height:0;padding:25px;gap:38px;grid-template-columns:1fr}
  .start-signoff{justify-self:end;text-align:end}
  .start-lines{height:63%;width:84%;top:auto;bottom:-15%;opacity:.43;mask-image:linear-gradient(0deg,#000 35%,transparent)}
  .footer-inner{padding-block:15px;min-height:65px;gap:10px}
  .footer-inner>span{display:none}
}
@media(max-width:420px){
  .brand{gap:8px}
  .brand img{width:62px}
  .brand-name strong{font-size:1.25rem}
  .brand-name small{font-size:.52rem}
  .header-link{gap:6px;padding-inline:11px}
  .header-link svg{display:none}
  .header-actions{gap:5px}
}
@media(max-width:360px){
  .shell{width:calc(100% - 28px)}
  .brand{gap:3px}.brand img{width:63px}
  .brand-name strong{font-size:.99rem}.brand-name small{font-size:.43rem}
  .header-link{gap:5px;padding-inline:8px;font-size:.82rem}
  .language-link{min-width:38px;padding-inline:6px;font-size:.78rem}
  .skate-toolbar{gap:4px}
  .skate-toolbar>span{font-size:.65rem}
}
@media(max-width:720px) and (max-height:740px){
  .header-inner{min-height:72px}
  .brand img{width:62px}
  .figure-field{max-height:35svh}
}
@media(min-width:721px) and (max-height:680px){
  .hero h1{font-size:clamp(2.55rem,7.3svh,4.6rem)}
  .figure-field{height:clamp(185px,39svh,330px)}
}
@media(max-height:480px){
  .ride-line{top:clamp(14px,12%,56px);font-size:clamp(1.75rem,4.2vw,3.25rem)}
  .ride-line--final{top:calc(10% + 28% * var(--final-progress))}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .skate-toolbar [data-skate-pause]{display:none}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
