.forest-intro{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--night);color:var(--ink);overflow:hidden;isolation:isolate;transition:background .9s ease;animation:none}
.forest-intro::backdrop{background:transparent;backdrop-filter:none}
.forest-intro[open]{animation:none;box-shadow:none}
.forest-loader{position:absolute;inset:0;z-index:2;display:grid;place-items:center;background:#080e1d;opacity:0;visibility:hidden;transition:opacity .55s ease,visibility .55s}
.is-loading .forest-loader{opacity:1;visibility:visible}
.forest-loading-copy{position:relative;text-align:center;width:min(310px,80vw)}
.forest-loading-copy h2{font:400 1.9rem/1.6 Amiri,serif;margin:26px 0 8px}
.forest-loading-copy p{color:#c3d3ef;font-size:.8125rem;margin:0 0 24px}
.forest-loading-copy small{display:block;color:#b8ccef;font-size:.75rem;margin-top:12px;font-variant-numeric:tabular-nums;direction:ltr}
.forest-loading-copy progress{appearance:none;width:160px;height:2px;border:0;overflow:hidden;background:#263956;color:#c6e4ff}
.forest-loading-copy progress::-webkit-progress-bar{background:#263956}
.forest-loading-copy progress::-webkit-progress-value{background:#c6e4ff;box-shadow:0 0 12px #8dc5ff}
.forest-loading-copy progress::-moz-progress-bar{background:#c6e4ff}
.forest-loading-light{display:block;width:8px;height:8px;margin:0 auto;background:#ebf5ff;transform:rotate(45deg);box-shadow:0 0 28px 9px #709ee166;animation:forestBreathe 2.4s ease-in-out infinite}
.forest-loading-stars{position:absolute;inset:0;overflow:hidden}
.forest-loading-stars i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;border-radius:50%;background:#c3ddff;box-shadow:0 0 10px #75adfa;animation:forestFloat 3.5s ease-in-out infinite alternate;animation-delay:var(--delay)}
.forest-intro:not(.is-loading) .forest-loading-stars i,.forest-intro:not(.is-loading) .forest-loading-light{animation:none}
.forest-intro:after{content:'';position:absolute;left:var(--magic-x,68%);top:var(--magic-y,54%);width:100px;height:100px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#e2f5ffb3 0,#8abfff40 25%,transparent 68%);opacity:0;transform:translate(-50%,-50%);mix-blend-mode:screen}
.forest-intro.is-enchanted:after{animation:forestCupLight 1.25s ease-out both}
.forest-intro.is-dissolving:after{animation:forestBloom 1.3s ease-out both}
.is-loading .forest-film,.is-loading .forest-welcome{opacity:0}
.is-dissolving .forest-loader{opacity:0;visibility:hidden}
html[data-input="pointer"] :is(button,a,[tabindex]):focus{outline:none}
button,a{-webkit-tap-highlight-color:transparent}
@keyframes forestBreathe{50%{opacity:.45;box-shadow:0 0 35px 14px #709ee144}}
@keyframes forestFloat{from{opacity:.15;transform:translateY(16px)}to{opacity:.7;transform:translateY(-24px)}}
@keyframes forestCupLight{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}35%{opacity:.75}100%{opacity:.25;transform:translate(-50%,-50%) scale(1.8)}}
@keyframes forestBloom{0%{opacity:.35;transform:translate(-50%,-50%) scale(1)}25%{opacity:.7}100%{opacity:0;transform:translate(-50%,-50%) scale(9)}}
.forest-atmosphere{position:absolute;inset:-35px;background-position:center;background-size:cover;filter:blur(28px);opacity:.3;transform:scale(1.06)}
.forest-film{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transition:opacity .95s ease,filter .95s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}
.forest-skip{position:absolute;top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));min-height:44px;padding:8px 17px;border:1px solid #bec9dd66;background:#080c15d9;color:var(--ink);font:inherit;font-size:.8125rem;z-index:3;cursor:pointer}
.forest-skip:hover{background:var(--panel)}
.forest-welcome{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));inset-inline:24px;text-align:center;font-family:Amiri,serif;font-size:1.6rem;line-height:1.4;text-shadow:0 2px 12px #080c15;pointer-events:none;transition:opacity .4s ease}
.forest-atmosphere{transition:opacity .8s ease}
.forest-dust{position:absolute;inset:0;pointer-events:none;opacity:0}
.forest-dust i{position:absolute;left:var(--x);top:var(--y);height:3px;width:3px;background:#e4efff;border-radius:50%;box-shadow:0 0 7px #a9caff;opacity:0}
.forest-intro.is-dissolving{background:transparent}
.forest-intro.is-dissolving .forest-film{opacity:0;filter:blur(14px) brightness(1.5);transform:scale(1.045)}
.forest-intro.is-dissolving .forest-atmosphere,.forest-intro.is-dissolving .forest-welcome,.forest-intro.is-dissolving .forest-skip{opacity:0;pointer-events:none}
.forest-intro.is-dissolving .forest-dust{opacity:1}
.forest-intro.is-dissolving .forest-dust i{animation:forestRelease 1.1s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--delay)}
@keyframes forestRelease{0%{opacity:0;transform:translate3d(0,0,0) scale(.6)}18%{opacity:.7}100%{opacity:0;transform:translate3d(var(--drift),-65px,0) scale(.15)}}
@media(prefers-reduced-motion:reduce){.forest-intro,.forest-intro *{transition:none!important;animation:none!important}.forest-dust{display:none}}
