/* A short orbital prologue. The dialog is absent when JavaScript is unavailable. */
.intro{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:0;background:#0e130f;color:#fff;overflow:hidden;isolation:isolate}
.intro:not([open]){display:none}.intro[open]{display:flex;flex-direction:column}.intro::backdrop{background:#0e130f}body.intro-open{overflow:hidden}
.intro-space{position:absolute;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#00c805 0, #0e130f 38%,#0e130f 75%)}
.intro-space:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0e130f,transparent 30%,transparent 75%,#0e130faa);pointer-events:none}
.intro-stars{position:absolute;inset:0;opacity:.65}.intro-stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#c2fac4;box-shadow:0 0 6px #a8f8ab80}
.intro-halo{position:absolute;left:50%;top:48%;width:min(62vw,850px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,transparent 42%,#00c80508 52%,#5ef26466 60%,#a3f8a7 60.4%,#00c80588 61%,#00c80506 68%,transparent 72%);box-shadow:inset 0 0 130px #00c8051a;animation:halo-arrive 2.6s cubic-bezier(.16,1,.3,1) both}
.intro-orbit{position:absolute;left:50%;top:47%;width:78%;height:40%;border:1px solid #87f58b40;border-radius:50%;transform:translate(-50%,-50%) rotate(-24deg);animation:orbit-arrive 3s ease both}.intro-orbit-b{width:67%;height:57%;transform:translate(-50%,-50%) rotate(27deg);border-color:#87f58b1a}
.intro-top{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;padding:28px 4vw;position:relative;z-index:5;flex-shrink:0}.intro-brand{display:flex;align-items:center;gap:3px;font-size:30px;font-weight:700;letter-spacing:-1.8px;line-height:1}.intro-brand>span{color:#81f586}.intro-brand img{margin-left:10px;border-radius:8px}.intro-skip{color:#bce4bd;background:none;border:0;padding:10px;font-size:14px;display:flex;align-items:center;gap:24px}.intro-skip:hover{color:white}.intro-skip span{font-size:22px}
.intro-scene{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.intro-kicker{position:absolute;top:0;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.25em;color:#bbf9bd;animation:intro-copy 1.4s .2s both}
.intro-title{display:flex;align-items:center;justify-content:center;gap:.1em;font-family:Anton,Impact,sans-serif;font-size:clamp(110px,25vw,410px);line-height:1;letter-spacing:-.035em;font-weight:400;transform:translateY(-4%);width:100%;white-space:nowrap;animation:title-arrive 1.8s cubic-bezier(.16,1,.3,1) both;color:#eafdeb;text-shadow:0 6px 50px #0e130f}
.intro-title i{font-style:normal;color:#53f159;font-size:.95em;margin:0 .02em;text-shadow:0 0 100px #00c80560}
.intro-mascot{position:absolute;left:50%;top:50%;width:clamp(200px,30vw,450px);transform:translate(-50%,-43%);animation:mascot-arrive 2.4s cubic-bezier(.16,1,.3,1) both;filter:drop-shadow(0 25px 45px #0008)}
.intro-mascot img{display:block;width:100%;animation:zero-gravity 7s 2.4s ease-in-out infinite;will-change:transform}
.intro-coordinate{position:absolute;bottom:8%;font-size:12px;letter-spacing:.13em;line-height:1.8;color:#87bd89;animation:intro-copy 1.5s 1s both}.intro-coordinate-left{left:4vw}.intro-coordinate-right{right:4vw;text-align:right}
.intro-bottom{position:relative;text-align:center;z-index:5;flex-shrink:0;padding:8px 24px max(28px,env(safe-area-inset-bottom));animation:intro-copy 1.3s .6s both}.intro-bottom p{font-size:22px;letter-spacing:-.5px}.intro-bottom p>span{display:block;font-size:14px;letter-spacing:0;color:#9fd2a1;margin-top:4px}.intro-equation{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-size:22px;font-weight:500;letter-spacing:-.5px;color:#fff}.intro-equation strong{font-weight:700}.intro-equation-icon{display:inline-block;width:26px;height:26px;object-fit:contain;vertical-align:middle;border-radius:6px}.intro-enter{margin:22px auto 18px;display:flex;align-items:center;justify-content:space-between;gap:40px;border:1px solid #84f588;border-radius:100px;background:#00c805;color:#fff;padding:9px 10px 9px 26px;font-size:15px;font-weight:700;box-shadow:0 0 40px #00c80525;transition:background .2s,box-shadow .2s,transform .2s}.intro-enter b{display:grid;place-items:center;font-weight:400;font-size:26px;width:44px;height:44px;border-radius:50%;background:#fff;color:#00c805;transition:transform .2s}.intro-enter:hover{background:#00c805;box-shadow:0 0 55px #00c80560;transform:translateY(-2px)}.intro-enter:hover b{transform:rotate(45deg)}.intro-footnote{font-size:12px;color:#7aac7c;letter-spacing:.13em}.intro-enter:focus-visible,.intro-skip:focus-visible{outline:2px solid white;outline-offset:6px}
.intro-wipe{position:absolute;z-index:10;inset:-30%;background:#00c805;transform:translateX(-130%) skewX(-18deg);pointer-events:none}
.intro.is-leaving .intro-wipe{animation:slash-wipe .5s cubic-bezier(.76,0,.24,1) both}.intro.is-leaving .intro-mascot{animation:mascot-depart .5s cubic-bezier(.55,0,.4,1) both}.intro.is-leaving .intro-title{animation:title-depart .4s ease both}.intro.is-leaving .intro-bottom,.intro.is-leaving .intro-top{opacity:0;transition:opacity .2s}
.site-arriving .hero-copy{animation:site-arrive 1s .1s both}.site-arriving .hero-art{animation:site-arrive 1.2s .2s both}.site-arriving .header{animation:site-arrive .7s both}
.intro-replay{border:1px solid #cee6cf;border-radius:100px;padding:8px 15px;background:transparent;color:var(--ink);font-size:13px;white-space:nowrap}.intro-replay:hover{background:#eefeef}
#hero-title:focus{outline:none}
.intro-controls{display:flex;align-items:center;gap:14px;justify-self:end}.intro-motion{border:1px solid #48764a;color:#dffce0;background:#0e130f;border-radius:50%;width:36px;height:36px;font-size:15px;padding:0}.intro-motion:hover{background:#2a5f2c}
.intro-skip{white-space:nowrap}.intro-motion{flex-shrink:0}
@media(max-width:360px){.intro-top{padding:16px}.intro-brand{font-size:23px}.intro-brand img{width:24px;height:24px;margin-left:6px}.intro-controls{gap:4px}.intro-skip{font-size:12px;gap:8px;padding:8px}.intro-motion{width:32px;height:32px}}
@keyframes halo-arrive{from{opacity:0;transform:translate(-50%,-50%) scale(.7)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes orbit-arrive{from{opacity:0}to{opacity:1}}
@keyframes intro-copy{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes title-arrive{from{opacity:0;transform:translateY(12%) scale(1.15);filter:blur(12px)}to{opacity:1;transform:translateY(-4%) scale(1);filter:blur(0)}}
@keyframes mascot-arrive{from{opacity:0;transform:translate(-50%,-20%) scale(.65) rotate(-15deg)}to{opacity:1;transform:translate(-50%,-43%) scale(1) rotate(0)}}
@keyframes zero-gravity{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-16px) rotate(3deg)}}
@keyframes slash-wipe{0%{transform:translateX(-130%) skewX(-18deg)}70%,100%{transform:translateX(0) skewX(-18deg)}}
@keyframes mascot-depart{from{transform:translate(-50%,-43%) scale(1)}to{transform:translate(-50%,-110%) scale(1.8);opacity:0}}
@keyframes title-depart{to{transform:scale(1.15);opacity:0}}
@keyframes site-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.intro-top{padding-top:34px}.intro-bottom{padding-bottom:38px}}
@media(max-width:740px){.intro-top{grid-template-columns:1fr auto;grid-template-areas:"brand controls" "equation equation";row-gap:12px;padding:14px 20px 10px}.intro-brand{grid-area:brand;font-size:26px}.intro-brand img{width:28px;height:28px}.intro-equation{grid-area:equation;justify-self:center;font-size:19px}.intro-controls{grid-area:controls}.intro-skip{gap:12px}.intro-title{font-size:27vw;gap:.03em;transform:translateY(-16%)}.intro-mascot{width:min(64vw,340px);transform:translate(-50%,-40%)}.intro-kicker{top:4%;font-size:12px;letter-spacing:.15em}.intro-halo{width:115vw;top:43%}.intro-orbit{width:140%;height:35%;top:43%}.intro-coordinate{display:none}.intro-bottom{padding:12px 20px max(28px,env(safe-area-inset-bottom))}.intro-bottom p{font-size:20px}.intro-enter{margin-top:20px}.intro-footnote{font-size:11px;letter-spacing:.08em}}
@media(max-height:600px){.intro-top{padding:12px 24px}.intro-bottom{padding-bottom:14px}.intro-bottom p{display:none}.intro-enter{margin:6px auto 10px;padding:5px 7px 5px 22px}.intro-mascot{width:min(30vh,260px)}.intro-title{font-size:min(24vw,44vh)}.intro-kicker{font-size:11px}.intro-footnote{font-size:11px}}
@media(prefers-reduced-motion:reduce){.intro *,.site-arriving *{animation:none!important;transition:none!important}.intro-title{filter:none}.intro-mascot img{will-change:auto}}
.motion-paused .intro *{animation:none!important;transition:none!important}
.intro-top{grid-template-columns:1fr 1fr}.intro-equation-brand{gap:5px;font-size:20px;letter-spacing:-.5px;white-space:nowrap}.intro-equation-brand img{width:24px;height:24px;margin:0;border-radius:6px;flex-shrink:0}.intro-equation-brand strong{font-weight:700}.intro-controls{grid-column:2}
@media(max-width:740px){.intro-top{grid-template-columns:1fr auto;grid-template-areas:"brand controls";row-gap:0;padding:14px 20px 10px}.intro-top .intro-equation-brand{grid-area:brand;justify-self:start;font-size:clamp(14px,4.2vw,17px);gap:3px}.intro-top .intro-equation-brand img{width:20px;height:20px}.intro-controls{grid-area:controls;grid-column:2}}
@media(max-width:360px){.intro-top{padding:12px 14px 8px}}
