/* The brand stage is opt-in: without the boot script, the page is visible.
   JS owns dismissal, the time limit and navigation lifecycle. */
html.chibi-soft-scroll{scroll-behavior:auto}
.chibi-preloader{display:none}
html.chibi-loading .chibi-preloader:not([hidden]){display:grid}
html.chibi-loading .chibi-preloader[hidden]{display:none}
.chibi-preloader{position:fixed;inset:0;z-index:900;place-items:center;padding:24px;isolation:isolate;background:#fff;color:#5b3897;opacity:1;pointer-events:auto;transition:opacity .24s ease}
.chibi-preloader::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 410px 330px at 31% 40%,#d5c7edab 0,transparent 75%),radial-gradient(ellipse 430px 330px at 71% 44%,#e1edb69e 0,transparent 76%),radial-gradient(ellipse 370px 260px at 51% 60%,#dbece761 0,transparent 74%)}
.chibi-loader-stage{width:min(100%,450px);max-height:100%;display:grid;justify-items:center;gap:14px;transform:translateY(-12px);opacity:0;transition:transform .24s ease,opacity .12s ease}
html.chibi-intro-playing .chibi-loader-stage{opacity:1}
.chibi-loader-logo{display:block;width:190px;max-width:70%;height:auto;object-fit:contain}
.chibi-loader-playground{position:relative;width:100%;height:310px;isolation:isolate;--chibi-jump-height:-66px}
.chibi-loader-jump{position:absolute;left:50%;bottom:8px;width:240px;max-width:100%;aspect-ratio:1;translate:-50% 0;transform-origin:50% 85%}
.chibi-loader-flip{width:100%;height:100%;transform-origin:50% 55%}
.chibi-loader-skater{display:block;width:100%;max-width:100%;height:100%;object-fit:contain}
.chibi-loader-ground{position:absolute;left:50%;bottom:22px;width:112px;height:12px;translate:-50% 0;filter:blur(3px);border-radius:50%;background:#8c71b4;opacity:.17;z-index:-1}
/* A single jump, then rest. The inner turn follows the outer vertical arc;
   changing the grounded shadow makes this a somersault instead of a flat spin. */
html.chibi-loading.chibi-intro-playing .chibi-loader-jump{animation:chibi-loader-jump 1.1s .1s cubic-bezier(.25,.46,.45,.94) both}
html.chibi-loading.chibi-intro-playing .chibi-loader-flip{animation:chibi-loader-somersault 1.1s .1s cubic-bezier(.25,.46,.45,.94) both}
html.chibi-loading.chibi-intro-playing .chibi-loader-ground{animation:chibi-loader-shadow 1.1s .1s ease-in-out both}
@keyframes chibi-loader-jump{0%{transform:translateY(0)}12%{transform:translateY(5px)}24%{transform:translateY(calc(var(--chibi-jump-height) * .45))}47%{transform:translateY(var(--chibi-jump-height))}65%{transform:translateY(calc(var(--chibi-jump-height) * .7))}82%{transform:translateY(0)}91%{transform:translateY(5px)}100%{transform:translateY(0)}}
@keyframes chibi-loader-somersault{0%{transform:rotate(0deg) scale(1)}12%{transform:rotate(-8deg) scale(1.06,.91)}24%{transform:rotate(-45deg) scale(.96,1.02)}47%{transform:rotate(-180deg) scale(.98)}65%{transform:rotate(-310deg) scale(.96,1.02)}82%{transform:rotate(-360deg) scale(1.08,.9)}91%{transform:rotate(-360deg) scale(.98,1.025)}100%{transform:rotate(-360deg) scale(1)}}
@keyframes chibi-loader-shadow{0%,100%{transform:scaleX(1);opacity:.17}12%,82%{transform:scaleX(1.15);opacity:.24}47%{transform:scaleX(.5);opacity:.08}65%{transform:scaleX(.65);opacity:.1}}
html.chibi-loader-leaving .chibi-preloader{opacity:0;pointer-events:none}
html.chibi-loader-leaving .chibi-loader-stage{transform:translateY(-26px)}
@media(max-width:767px){
 .chibi-preloader{padding:20px}
 .chibi-preloader::before{background:radial-gradient(ellipse 250px 270px at 14% 38%,#d5c7ed99 0,transparent 76%),radial-gradient(ellipse 280px 280px at 85% 44%,#e1edb6a6 0,transparent 77%),radial-gradient(ellipse 240px 220px at 53% 64%,#dbece761 0,transparent 75%)}
 .chibi-loader-stage{width:min(100%,360px);gap:14px;transform:translateY(-12px)}
 .chibi-loader-logo{width:160px}
 .chibi-loader-playground{height:255px;--chibi-jump-height:-43px}
 .chibi-loader-jump{width:200px}
 .chibi-loader-ground{width:92px;bottom:20px;height:10px}
 html.chibi-loader-leaving .chibi-loader-stage{transform:translateY(-20px)}
}
@media(max-height:350px){.chibi-loader-stage{gap:6px;transform:none}.chibi-loader-logo{width:120px}.chibi-loader-playground{height:180px;--chibi-jump-height:-30px}.chibi-loader-jump{width:140px}.chibi-loader-ground{width:65px;bottom:16px;height:8px}}
@media(prefers-reduced-motion:reduce){
 html.chibi-loading.chibi-intro-playing :is(.chibi-loader-jump,.chibi-loader-flip,.chibi-loader-ground){animation:none;transform:none}
 .chibi-preloader,.chibi-loader-stage{transition:none}
 html.chibi-loader-leaving .chibi-loader-stage{transform:translateY(-12px)}
}
@media(forced-colors:active){.chibi-preloader{background:Canvas}.chibi-preloader::before,.chibi-loader-ground{display:none}}

/* Articulated intro: the texture is animated by a small, first-visit-only rig. */
.chibi-preloader-v2{transition:opacity .16s ease}
.chibi-preloader-v2 .chibi-loader-stage{width:min(100%,420px);gap:6px;transform:translateY(-8px)}
.chibi-preloader-v2 .chibi-loader-logo{width:170px}
.chibi-preloader-v2 .chibi-loader-playground{width:360px;max-width:100%;height:300px;overflow:visible}
.chibi-preloader-v2 .chibi-loader-skater{position:absolute;left:50%;bottom:16px;width:190px;height:190px;translate:-50% 0;object-fit:contain}
.chibi-preloader-v2 .chibi-loader-playground.is-skater-rigged>.chibi-loader-skater{visibility:hidden}
.chibi-preloader-v2 [data-skater-scene]>canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
html.chibi-loader-leaving .chibi-preloader-v2 .chibi-loader-stage{transform:translateY(-15px)}
@media(max-width:767px){
 .chibi-preloader-v2 .chibi-loader-logo{width:145px}
 .chibi-preloader-v2 .chibi-loader-playground{width:300px;height:255px}
 .chibi-preloader-v2 .chibi-loader-skater{width:170px;height:170px}
}
@media(max-height:430px){
 .chibi-preloader-v2 .chibi-loader-stage{gap:0;transform:none}
 .chibi-preloader-v2 .chibi-loader-logo{width:112px}
 .chibi-preloader-v2 .chibi-loader-playground{width:280px;height:210px}
}
@media(prefers-reduced-motion:reduce){.chibi-preloader-v2,.chibi-preloader-v2 .chibi-loader-stage{transition:none}}
