.home-intro{display:none;position:fixed;inset:0;z-index:1000;background:#11120f;color:#eeeee4;place-items:center;overflow:hidden;overscroll-behavior:contain}
.intro-pending{overflow:hidden}.intro-pending .home-intro{display:grid}.intro-pending .home-page .type-word{animation-play-state:paused!important}
.intro-scene{width:min(1000px,92vw);height:min(490px,56vw);position:relative;isolation:isolate}
.intro-characters{position:absolute;inset:0;transition:opacity .2s}
.intro-character{position:absolute;bottom:12%;transform-origin:50% 90%;opacity:0;will-change:transform,opacity}
.intro-character svg{display:block;width:100%;height:100%;overflow:visible}
.intro-character:nth-child(1){left:2%;width:14%;height:62%;--fly-x:160%;--fly-y:-10%;--turn:-22deg}
.intro-character:nth-child(2){left:19%;width:14%;height:49%;--fly-x:65%;--fly-y:-40%;--turn:18deg}
.intro-character:nth-child(3){left:36%;width:19%;height:84%;--fly-x:-65%;--fly-y:8%;--turn:-12deg}
.intro-character:nth-child(4){left:56%;width:13%;height:42%;--fly-x:-205%;--fly-y:-60%;--turn:25deg}
.intro-character:nth-child(5){left:68%;width:23%;height:72%;--fly-x:-185%;--fly-y:8%;--turn:20deg}
.intro-character:nth-child(6){left:90%;width:10%;height:33%;--fly-x:-620%;--fly-y:40%;--turn:-18deg}
.intro-playing .intro-character{animation:mascot-arrival 2.75s cubic-bezier(.4,0,.2,1) both;animation-delay:var(--delay)}
.intro-playing .mascot-head{animation:mascot-head-act 2.75s both;animation-delay:var(--delay);transform-box:view-box}
.intro-playing .mascot-body{animation:mascot-body-act 2.75s both;animation-delay:var(--delay);transform-box:view-box}
@keyframes mascot-arrival{
0%{opacity:0;transform:translateY(45%) scale(.8,1.15)}
8%{opacity:1;transform:translateY(-12%) scale(.92,1.08)}
16%{transform:translateY(0) scale(1.12,.86)}
23%{transform:translateY(-3%) scale(.97,1.03)}
31%{transform:translateY(0) scale(1)}
43%{transform:translateY(-9%) scale(.98,1.02)}
54%{transform:translateY(0) scale(1.05,.95)}
62%{transform:translateY(0) scale(1)}
70%{opacity:1;transform:translateY(5%) scale(1.12,.86)}
80%{opacity:1;transform:translate(calc(var(--fly-x)*.45),calc(var(--fly-y) - 35%)) scale(.72,1.02) rotate(calc(var(--turn)*.5))}
93%{opacity:1;transform:translate(var(--fly-x),var(--fly-y)) scale(.45) rotate(var(--turn))}
100%{opacity:0;transform:translate(var(--fly-x),var(--fly-y)) scale(.4) rotate(var(--turn))}}
@keyframes mascot-head-act{
0%,9%{transform:rotate(calc(var(--lean)*-1)) translateY(-5px)}
17%{transform:rotate(var(--lean)) translateY(5px)}
28%{transform:rotate(calc(var(--lean)*-.5))}
38%{transform:rotate(calc(var(--lean)*.65))}
47%{transform:rotate(calc(var(--lean)*-.7)) translateY(-2px)}
57%{transform:rotate(calc(var(--lean)*.4)) translateY(3px)}
65%{transform:rotate(0)}
73%{transform:rotate(calc(var(--lean)*-.7)) translateY(4px)}
84%{transform:rotate(var(--lean)) translateY(-3px)}
100%{transform:rotate(0)}}
@keyframes mascot-body-act{0%{transform:skewX(-4deg)}17%{transform:skewX(5deg)}28%{transform:skewX(-2deg)}40%{transform:rotate(-3deg)}52%{transform:rotate(3deg)}64%{transform:rotate(0)}74%{transform:skewX(4deg)}90%,100%{transform:skewX(0)}}
.intro-final-logo{position:absolute;width:72%;height:auto;left:14%;top:50%;transform:translateY(-50%) scale(.92);opacity:0;pointer-events:none}
.intro-playing .intro-final-logo{animation:logo-complete .7s cubic-bezier(.16,1,.3,1) 2.6s both}
@keyframes logo-complete{to{opacity:1;transform:translateY(-50%) scale(1)}}
.intro-caption{position:absolute;left:24px;bottom:max(28px,env(safe-area-inset-bottom));margin:0;font-size:.875rem;color:#aaa}
.intro-skip{position:absolute;right:24px;bottom:max(20px,env(safe-area-inset-bottom));min-height:44px;border:1px solid #ffffff40;border-radius:var(--button-radius,12px);padding:12px 20px;background:transparent;color:#eeeee4;font:inherit;font-size:.875rem;cursor:pointer}
.intro-skip:hover{background:#ffffff12;border-color:#d35a27}.intro-skip:focus-visible{outline:2px solid #d35a27;outline-offset:4px}
.home-intro.is-leaving{opacity:0;transition:opacity .45s ease;pointer-events:none}
@media(max-width:600px){.intro-scene{width:96vw;height:65vw}.intro-final-logo{width:86%;left:7%}.intro-caption{left:16px;font-size:.75rem}.intro-skip{right:16px}}
@media(prefers-reduced-motion:reduce){.intro-characters{display:none}.intro-playing .intro-final-logo{animation:none;opacity:1;transform:translateY(-50%)}.home-intro.is-leaving{transition:none}}
