.hero-mascot{position:absolute;z-index:3;right:3%;bottom:2%;width:min(31vw,330px);pointer-events:auto;filter:drop-shadow(0 25px 35px rgba(0,0,0,.75));transform:translateX(34%);animation:mascot-enter 1.1s .35s cubic-bezier(.16,1,.3,1) both}.hero-mascot img{display:block;width:100%;transition:opacity .3s,transform .45s cubic-bezier(.16,1,.3,1)}.hero-mascot .mascot-wave{position:absolute;inset:0;opacity:0}.hero-mascot:hover .mascot-peek{opacity:0;transform:translateX(12px) rotate(3deg)}.hero-mascot:hover .mascot-wave{opacity:1;transform:translateX(-8px) rotate(-2deg)}
.connection-story{--progress:0;height:220vh;min-height:1200px;position:relative;background:#050505}.connection-sticky{position:sticky;top:0;height:100vh;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(50,197,29,.14),transparent 28%),#050505}.connection-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}
.connection-copy{position:absolute;z-index:6;left:7vw;top:15vh;width:min(700px,61vw)}.connection-kicker{font:700 11px monospace;letter-spacing:.18em;color:var(--green)}.connection-message{position:absolute;left:0;top:62px;width:100%;opacity:1}.connection-message h2{font-size:clamp(51px,7vw,110px);line-height:.9;letter-spacing:-.035em;text-transform:uppercase}.connection-message p{max-width:520px;color:#aaa;font-size:17px;line-height:1.6}
.connection-progress{position:absolute;z-index:8;right:4vw;top:20vh;width:170px;height:58vh;color:#777}.connection-progress:before{content:"";position:absolute;left:5px;top:0;width:1px;height:100%;background:#333}.connection-progress-fill{position:absolute;left:5px;top:0;width:2px;height:calc(var(--progress) * 100%);background:var(--green)}.connection-progress-dot{position:absolute;left:0;top:calc(var(--progress) * 100%);width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 18px rgba(50,197,29,.8);transform:translateY(-50%)}.connection-progress ol{list-style:none;margin:0;padding:0 0 0 27px;height:100%;display:flex;flex-direction:column;justify-content:space-between}.connection-progress li{font:700 11px monospace;letter-spacing:.12em;text-transform:uppercase;transition:color .15s}.connection-progress li.is-active{color:#fff}
.connection-nodes{position:absolute;z-index:2;inset:0}.connection-node{position:absolute;left:var(--x);top:var(--y);width:13px;height:13px;border:2px solid #777;border-radius:50%;box-shadow:0 0 0 9px rgba(255,255,255,.025);transition:background .15s,border-color .15s,box-shadow .15s}.connection-story[data-stage="1"] .connection-node,.connection-story[data-stage="2"] .connection-node{border-color:var(--green);box-shadow:0 0 20px rgba(50,197,29,.6)}.connection-story[data-stage="2"] .connection-node{background:var(--green);box-shadow:0 0 25px rgba(50,197,29,.85)}
.connection-lines{position:absolute;z-index:1;inset:0;width:100%;height:100%;opacity:calc(var(--progress) * .62)}.connection-lines path{fill:none;stroke:var(--green);stroke-width:1;stroke-dasharray:7 10}.connection-mascot{position:absolute;z-index:5;right:18vw;bottom:-2%;width:min(29vw,320px);filter:drop-shadow(0 24px 38px #000)}.connection-mascot img{display:block;width:100%}.connection-mascot .mascot-sneak{opacity:1;clip-path:inset(0 15% 0 0);transform:translateX(calc(var(--progress) * 20px))}.connection-mascot .mascot-celebrate{position:absolute;inset:0;opacity:0}.connection-story[data-stage="2"] .connection-mascot .mascot-sneak{opacity:0}.connection-story[data-stage="2"] .connection-mascot .mascot-celebrate{opacity:1}
.event-mascot{position:absolute;z-index:6;right:2%;bottom:-4%;width:min(25%,180px);filter:drop-shadow(0 18px 22px rgba(0,0,0,.8));animation:mascot-float 4s ease-in-out infinite}footer{position:relative;overflow:hidden}.footer-mascot{position:absolute;right:2vw;bottom:-80px;width:150px;opacity:.72;transform:rotate(-5deg);transition:.35s}.footer-mascot:hover{bottom:-48px;opacity:1;transform:none}.mascot-easter-egg{position:fixed;z-index:19;right:-96px;top:56%;width:92px;padding:0;border:0;background:none;opacity:0;pointer-events:none;filter:drop-shadow(0 12px 17px #000);transition:right .35s,opacity .25s;cursor:pointer}.mascot-easter-egg.is-visible{right:-54px;opacity:1;pointer-events:auto}.mascot-easter-egg.is-visible:hover,.mascot-easter-egg.is-visible.is-greeting{right:-8px}.mascot-easter-egg img{display:block;width:100%}.mascot-easter-egg span{position:absolute;right:72px;top:28px;padding:8px 11px;border:1px solid #333;border-radius:8px;background:#111;color:#fff;font:700 11px monospace;white-space:nowrap;opacity:0;transform:translateX(8px);transition:.25s}.mascot-easter-egg.is-greeting span{opacity:1;transform:none}
@keyframes mascot-enter{from{opacity:0;transform:translateX(65%) translateY(30px)}to{opacity:1;transform:translateX(34%)}}@keyframes mascot-float{50%{transform:translateY(-10px) rotate(1deg)}}
@media(max-width:800px){.hero-mascot{right:-5%;bottom:8%;width:210px;opacity:.76}.connection-story{height:200vh;min-height:1100px}.connection-copy{left:6vw;right:6vw;top:7vh;width:auto}.connection-message h2{font-size:clamp(42px,13vw,64px)}.connection-message p{font-size:15px;max-width:100%}.connection-progress{left:6vw;right:6vw;top:auto;bottom:5vh;width:auto;height:54px}.connection-progress:before{left:0;right:0;top:7px;width:auto;height:1px}.connection-progress-fill{left:0;top:7px;width:calc(var(--progress) * 100%);height:2px}.connection-progress-dot{left:calc(var(--progress) * 100%);top:2px}.connection-progress ol{padding:22px 0 0;height:auto;flex-direction:row;justify-content:space-between;gap:12px}.connection-progress li{max-width:30%;font-size:9px;line-height:1.25;letter-spacing:.08em}.connection-progress li:nth-child(2){text-align:center}.connection-progress li:last-child{text-align:right}.connection-mascot{right:-3vw;bottom:7%;width:170px}.event-mascot{width:130px}.footer-mascot{display:none}.mascot-easter-egg{width:72px;right:-90px}.mascot-easter-egg.is-visible{right:-48px}}@media(prefers-reduced-motion:reduce){.hero-mascot,.event-mascot{animation:none}}
