.lang-switcher[open] .lang-caret{transform:rotate(180deg)}.lang-switcher summary::-webkit-details-marker{display:none}#main-nav{transition:background .3s,border-color .3s}#main-nav .nav-brand-text{color:var(--color-text-bright)}#main-nav .nav-link{color:#f4f7fbb3}#main-nav .nav-link:hover{color:var(--color-text-bright);background:#ffffff0d}#main-nav .nav-divider{background:#ffffff1a}#main-nav.nav-scrolled{background:#0a0d11b3;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.05)}#section-nav .section-nav-track{position:relative;display:flex;flex-direction:column;gap:22px;padding:4px 0}#section-nav .section-nav-track:before{content:"";position:absolute;right:4px;top:4px;bottom:4px;width:1px;background:#ffffff14}#section-nav .section-dot-link{gap:12px;padding:2px 0;text-decoration:none}#section-nav .section-dot-label{font-size:11px;font-weight:600;letter-spacing:.12em;line-height:1;color:#f4f7fb66;transition:opacity .25s,transform .25s,color .2s}#section-nav .section-dot-link:hover .section-dot-label{color:var(--color-violet-300)}#section-nav .section-dot{position:relative;width:9px;height:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}#section-nav .section-dot-core{width:5px;height:5px;border-radius:50%;background:#f4f7fb4d;transition:all .35s cubic-bezier(.34,1.56,.64,1)}#section-nav .section-dot-link:hover .section-dot-core{background:var(--color-violet-400)}#section-nav .section-dot-ring{position:absolute;inset:-2px;border-radius:50%;opacity:0;transition:all .35s cubic-bezier(.34,1.56,.64,1)}#section-nav .section-dot-link.active .section-dot-core{width:7px;height:7px;background:var(--color-violet-400);box-shadow:0 0 12px var(--color-violet-400)}#section-nav .section-dot-link.active .section-dot-ring{opacity:.5;border:1px solid var(--color-violet-400)}#section-nav .section-dot-link.active .section-dot-label{color:var(--color-violet-300)}.hero-line{opacity:0;transform:translateY(20px);animation:var(--animate-fade-up);animation-delay:var(--delay, 0s)}.hero-italic{color:var(--color-text-soft);animation:hero-italic-color .4s ease-out forwards;animation-delay:var(--delay, 0s)}@keyframes hero-italic-color{0%{color:var(--color-text-soft)}to{color:var(--color-violet-400)}}.hero-tooltip{opacity:0;animation:var(--animate-fade-in) 1.4s forwards}@media(prefers-reduced-motion:reduce){.hero-line,.hero-tooltip{opacity:1!important;transform:none!important}}.tour-shot{position:relative;width:min(96vw,1700px,calc(82vh * 2560 / 1351));margin-inline:auto;aspect-ratio:2560 / 1351;border-radius:14px;border:1px solid rgba(255,255,255,.07);background:var(--color-ink-900);box-shadow:0 0 0 1px #7c4dff1f,0 30px 80px -30px #000000b3,0 0 calc(60px + 80px * var(--tour-proximity, .3)) -20px rgba(81,43,212,calc(.2 + .25 * var(--tour-proximity, .3)));transform:scale(var(--tour-scale, .94));transform-origin:center center;will-change:transform}@media(prefers-reduced-motion:reduce){.tour-shot{transform:none}}@media(max-width:1023px),(pointer:coarse){.tour-shot{transform:none;will-change:auto}}.tour-shot-img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;border-radius:14px}.tour-shot-overlay{position:absolute;inset:0;pointer-events:none}.tour-dots{position:relative;width:100%;height:100%}.tour-dots{--tour-dot: #34d399;--tour-dot-bright: #6ee7b7;--tour-dot-light: #a7f3d0;--tour-dot-rgb: 52, 211, 153}.tour-dot{position:absolute;width:44px;height:44px;background:transparent;border:0;padding:0;margin:0;cursor:pointer;pointer-events:auto;color:inherit;transform:translate(-50%,-50%);z-index:2}.tour-dot-core,.tour-dot-ring,.tour-dot-halo{position:absolute;top:50%;left:50%;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.tour-dot-core{width:12px;height:12px;background:var(--tour-dot);box-shadow:0 0 0 2px #060a0ed9,0 0 12px rgba(var(--tour-dot-rgb),.85);transition:transform .2s ease,background .2s ease;z-index:2}.tour-dot-ring{width:12px;height:12px;border:1.5px solid var(--tour-dot);opacity:0;transform:translate(-50%,-50%) scale(1);animation:tour-dot-pulse 3s cubic-bezier(.22,1,.36,1) infinite;animation-delay:calc(var(--dot-i, 0) * .4s);z-index:1}.tour-dot-halo{width:36px;height:36px;background:radial-gradient(closest-side,rgba(var(--tour-dot-rgb),.32),transparent 70%);opacity:.75;z-index:0}@keyframes tour-dot-pulse{0%{opacity:.85;transform:translate(-50%,-50%) scale(1)}80%{opacity:0;transform:translate(-50%,-50%) scale(3.6)}to{opacity:0;transform:translate(-50%,-50%) scale(3.6)}}.tour-dot:hover .tour-dot-core,.tour-dot:focus-visible .tour-dot-core,.tour-dot[data-active=true] .tour-dot-core{background:var(--tour-dot-bright);transform:translate(-50%,-50%) scale(1.4);box-shadow:0 0 0 2px #060a0ed9,0 0 22px rgba(var(--tour-dot-rgb),1)}.tour-dot:hover .tour-dot-ring,.tour-dot:focus-visible .tour-dot-ring,.tour-dot[data-active=true] .tour-dot-ring{animation:none;opacity:.9;border-color:var(--tour-dot-light);transform:translate(-50%,-50%) scale(2.2)}.tour-dots[data-tour-active] .tour-dot:not([data-active=true]) .tour-dot-core{background:rgba(var(--tour-dot-rgb),.55)}.tour-dots[data-tour-active] .tour-dot:not([data-active=true]) .tour-dot-halo{opacity:.3}.tour-caption{position:absolute;width:max-content;max-width:260px;padding:11px 14px;background:#0d1217f5;border:1px solid rgba(var(--tour-dot-rgb),.45);border-radius:10px;box-shadow:0 16px 40px -10px #000000b3,0 0 0 1px rgba(var(--tour-dot-rgb),.1),0 0 40px -10px rgba(var(--tour-dot-rgb),.45);z-index:30;opacity:0;visibility:hidden;transition:opacity .18s ease,visibility 0s linear .18s,transform .22s cubic-bezier(.22,1,.36,1);pointer-events:none}.tour-caption[data-placement=bottom]{top:100%;left:50%;transform:translate(-50%,8px)}.tour-caption[data-placement=top]{bottom:100%;left:50%;transform:translate(-50%,-8px)}.tour-caption[data-placement=right]{left:100%;top:50%;transform:translate(8px,-50%)}.tour-caption[data-placement=left]{right:100%;top:50%;transform:translate(-8px,-50%)}.tour-caption[data-placement=top-right]{bottom:100%;left:100%;transform:translate(8px,-8px)}.tour-dot:hover .tour-caption,.tour-dot:focus-visible .tour-caption,.tour-dot[data-active=true] .tour-caption{opacity:1;visibility:visible;transition-delay:0s}.tour-dot:hover .tour-caption[data-placement=bottom],.tour-dot:focus-visible .tour-caption[data-placement=bottom],.tour-dot[data-active=true] .tour-caption[data-placement=bottom]{transform:translate(-50%)}.tour-dot:hover .tour-caption[data-placement=top],.tour-dot:focus-visible .tour-caption[data-placement=top],.tour-dot[data-active=true] .tour-caption[data-placement=top]{transform:translate(-50%)}.tour-dot:hover .tour-caption[data-placement=left],.tour-dot:focus-visible .tour-caption[data-placement=left],.tour-dot[data-active=true] .tour-caption[data-placement=left]{transform:translateY(-50%)}.tour-dot:hover .tour-caption[data-placement=right],.tour-dot:focus-visible .tour-caption[data-placement=right],.tour-dot[data-active=true] .tour-caption[data-placement=right]{transform:translateY(-50%)}.tour-dot:hover .tour-caption[data-placement=top-right],.tour-dot:focus-visible .tour-caption[data-placement=top-right],.tour-dot[data-active=true] .tour-caption[data-placement=top-right]{transform:translate(0)}.tour-caption-title{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--tour-dot-bright);margin-bottom:5px}.tour-caption-body{display:block;font-size:12.5px;line-height:1.55;color:var(--color-text-strong)}.tour-caption-strip{display:none;position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:12px;width:min(100%,420px);padding:11px 14px;background:#0d1217f5;border:1px solid rgba(var(--tour-dot-rgb),.45);border-radius:10px;box-shadow:0 16px 40px -10px #000000b3,0 0 0 1px rgba(var(--tour-dot-rgb),.1);z-index:30;pointer-events:none}@media(max-width:767px){.tour-dot-core,.tour-dot-ring{width:14px;height:14px}.tour-caption{display:none}.tour-caption-strip{display:block}}@media(prefers-reduced-motion:reduce){.tour-dot-ring{animation:none;opacity:.7;transform:translate(-50%,-50%) scale(1.8)}}.curriculum-ticks .tick{transform:scaleY(.5);transition:background .3s,transform .3s;transition-delay:var(--tick-delay, 0s)}[data-in-view=true] .curriculum-ticks .tick,.curriculum-ticks[data-in-view=true] .tick{background:var(--color-violet-400);transform:scaleY(1)}@supports (animation-timeline: view()){.curriculum-ticks .tick{animation:tick-light .4s ease-out both;animation-timeline:view();animation-range:entry 0% cover 25%;animation-delay:var(--tick-delay, 0s)}}
