@font-face{font-family:Fredoka;src:url(assets/Fredoka_600SemiBold.ttf)}@font-face{font-family:Nunito;src:url(assets/Nunito_400Regular.ttf)}@font-face{font-family:Nunito;font-weight:800;src:url(assets/Nunito_800ExtraBold.ttf)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#301942;background:#fffaf3;font:18px/1.5 Nunito,sans-serif}a{color:inherit}button{cursor:pointer;font:inherit}a:focus-visible,button:focus-visible{outline:4px solid #1984a0;outline-offset:4px}header,footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px max(5vw,calc((100vw - 1210px)/2));background:#fffaf3}header{border-bottom:1px solid #e9dfde}.brand,h1,h2,.ticket strong,.stores button,.steps b,output{font-family:Fredoka,sans-serif;font-weight:normal}.brand{font-size:34px;letter-spacing:-1.4px;text-decoration:none;display:flex;align-items:center;gap:10px}.brand img{width:41px;border-radius:12px}nav{display:flex;align-items:center;gap:28px;font-weight:800;font-size:15px}nav a{text-decoration:none}.download{background:#efe5ff;padding:9px 17px;border-radius:99px}.hero,.journey,.challenge,.growth{padding:74px max(5vw,calc((100vw - 1210px)/2));display:grid;grid-template-columns:1.05fr 1fr;gap:6%;align-items:center}h1,h2,p{margin:0}h1{font-size:clamp(55px,6.4vw,98px);line-height:.99;letter-spacing:-.046em}h2{font-size:clamp(42px,4.8vw,74px);line-height:1.03;letter-spacing:-.035em}p{max-width:48ch}h1+p,h2+p{margin:22px 0;font-size:clamp(17px,1.55vw,22px)}.hero{background:#f0e7ff;overflow:hidden;min-height:660px}.stores{display:flex;gap:10px;flex-wrap:wrap;margin:27px 0 18px}.stores button{display:flex;align-items:center;justify-content:center;gap:7px;border:0;background:#301942;color:white;border-radius:14px;padding:11px 18px;font-size:24px;line-height:1.07;text-align:left}.stores button:hover,#rep:hover{background:#583979}.stores small{display:block;font:800 12px Nunito}.stores svg{width:30px;height:32px}.quiet{font-size:15px;font-weight:800;text-underline-offset:4px}.world{position:relative;height:535px;isolation:isolate}.orbit{position:absolute;inset:10% -8% 6% 1%;background:#d7c5f9;border-radius:48% 52% 44% 56%;transform:rotate(-14deg)}.orbit:after{content:'';position:absolute;inset:-12px 6px 15px -10px;border:1.5px solid #ac8fd4;border-radius:inherit}.phone{width:225px;border:5px solid #302937;border-radius:30px;box-shadow:0 12px 24px #361b4b25;display:block}.hero-phone{height:96%;width:auto;position:absolute;left:32%;top:1%;transform:rotate(7deg)}.cat{position:absolute;width:40%;left:1%;bottom:0;filter:drop-shadow(0 7px 0 #351c511a)}.ticket{position:absolute;right:-1%;bottom:17%;border:2px solid #442845;border-radius:19px;background:#ffdb82;padding:10px 17px;transform:rotate(-7deg);box-shadow:3px 4px #442845}.ticket span{display:block;font-size:14px;font-weight:800}.ticket strong{display:block;font-size:37px;line-height:1.1}.spark{position:absolute;color:#764aa7;font-size:65px}.one{left:9%;top:16%}.two{right:2%;top:4%}.journey,.growth{max-width:100%;overflow:hidden}.steps{display:grid;gap:8px}.steps button{border:2px solid transparent;background:transparent;text-align:left;color:inherit;display:flex;align-items:center;gap:14px;border-radius:18px;padding:13px}.steps [aria-pressed=true]{background:#efe5ff;border-color:#cdb9ec}.steps i{font:22px Fredoka;background:#e8ddf5;border-radius:50%;min-width:37px;height:37px;display:grid;place-items:center}.steps b{font-size:23px}.steps small{display:block;font-size:15px}.stage{min-height:505px;background:#e4efda;border-radius:110px 32px 90px 32px;position:relative;display:grid;place-items:center;padding:20px}.stage .phone{width:204px;transform:rotate(-3deg)}.stage span{position:absolute;right:12%;top:15%;font-size:34px;color:#65805b}.challenge{background:#332046;color:#fff6ec}.poster img{display:block;width:min(100%,330px);border-radius:24px;transform:rotate(-3deg);margin:auto}.demo{max-width:410px;border-top:1px solid #826792;padding-top:15px}.demo small{color:#ebd4ff}.demo output{display:block;font-size:clamp(23px,3vw,37px);margin:4px 0 14px;color:#ffdb82}.demo button{background:#f0e6ff;color:#301942;font-weight:800;border:0;border-radius:24px;padding:9px 18px}.demo button:hover{color:white}.demo b{margin-left:12px}.growth{background:#ffe8b2}.growth img{margin:auto;width:205px;transform:rotate(4deg)}.last{padding:50px 6% 70px;text-align:center;background:#eee3ff}.last img{width:105px}.last p{margin:16px auto}.last .stores{justify-content:center}.last h2{font-size:clamp(37px,5vw,68px)}footer a{font-size:15px}dialog{max-width:min(430px,90vw);border:0;border-radius:24px;padding:32px;background:#fffaf3;color:#301942}dialog h2{font-size:34px;margin:12px 0}dialog form{text-align:right}dialog button{border:0;border-radius:50%;width:34px;height:34px;background:#ece0ff}dialog::backdrop{background:#29143c88}
@media(max-width:780px){.hero,.journey,.challenge,.growth{grid-template-columns:1fr;gap:28px;padding:44px 6%}.hero{min-height:auto}.world{height:440px;width:min(100%,470px);margin:auto}.hero-phone{left:31%}.stage{min-height:380px}.stage .phone{width:156px}.challenge>div:last-child{grid-row:1}.growth img{grid-row:2;width:160px}.poster img{width:245px}nav a:not(.download){display:none}.cat{max-width:180px}.brand{font-size:28px}.stores button{font-size:21px;padding:10px 14px}.hero p{margin:16px 0}.hero .stores{margin-top:20px}.ticket{right:1%}.world .two{right:6%}}@media(max-width:420px){.world{height:355px}.stores{gap:7px}.stores button{padding:9px 10px;font-size:20px}.stores svg{width:24px}.ticket{padding:6px 10px}.ticket strong{font-size:28px}footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Store artwork keeps its original aspect ratio. */
.stores{align-items:center}.stores button,.stores button:hover{padding:0;border:0;border-radius:7px;background:transparent;transition:transform .18s}.stores button:hover{transform:translateY(-2px)}.stores button img{display:block;height:46px;width:auto}.stores .soon{flex-basis:100%;font:800 13px Nunito;color:#614b70}.stage{background:radial-gradient(ellipse at 20% 20%,#f5f9dc,transparent 50%),#d9e9cd}.stage .phone{width:min(240px,68%)}.challenge{grid-template-columns:.87fr 1.13fr;overflow:hidden;background:radial-gradient(ellipse at 84% 45%,#543773,transparent 46%),#322044}.arcade{display:flex;align-items:flex-end;justify-content:center;position:relative;padding:12px 0}.console{position:relative;width:min(76%,316px);flex:none;background:#fff9ef;color:#30203b;border:6px solid #231b2a;border-radius:34px;padding:14px 14px 20px;box-shadow:0 0 0 2px #b4a5bb,7px 12px 0 #22162d66}.notch{margin:-5px auto 17px;width:53px;height:9px;border-radius:10px;background:#231b2a}.hud,.bank{display:flex;justify-content:space-between;align-items:center;gap:6px}.hud b{font:23px Fredoka}.hud span,#xp{background:#ece2fa;color:#573278;border-radius:12px;padding:4px 9px;font:16px Fredoka}.pips{display:flex;gap:5px;margin:10px 0 14px}.pips i{flex:1;height:6px;border-radius:5px;background:#e0d5e4}.pips .won{background:#7956bd}.gym{display:block;width:100%;border-radius:17px;overflow:hidden}#athlete{transform-origin:44px 155px;transition:transform .2s}.lowered #athlete{transform:rotate(15deg)}.bank{padding:16px 2px;color:#56405f;font-size:14px}.bank strong{display:block;font:36px/1.1 Fredoka;color:#5d3788}#xp{background:#ffe4a0;color:#623c26}#play-rep{display:block;width:100%;background:#6844a6;color:white;border:0;border-radius:15px;padding:13px 4px;font:20px Fredoka;box-shadow:0 4px #42246f;touch-action:manipulation}#play-rep:active{transform:translateY(2px)}.coach{position:relative;width:32%;margin-left:-3%;z-index:1;display:grid;justify-items:center}.coach img{width:100%}.coach b{display:block;background:#fff4d6;color:#432948;padding:7px 12px;border:2px solid #392641;border-radius:14px;transform:rotate(4deg);font:18px Fredoka;text-align:center}.sr{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.stage.arrived,.arcade.arrived,.last>img.arrived{animation:land .72s cubic-bezier(.18,.75,.22,1) both}.growth .phone.arrived{animation:tilt-in .8s both}.hero-phone{animation:phone-in 1s both}.ticket{animation:stamp 1.15s both}@keyframes land{from{opacity:.25;translate:0 28px;scale:.96}to{opacity:1;translate:0 0;scale:1}}@keyframes tilt-in{from{rotate:-9deg;translate:0 35px}to{rotate:0deg;translate:0 0}}@keyframes phone-in{from{transform:translateY(25px) rotate(1deg)}to{transform:rotate(7deg)}}@keyframes stamp{0%,45%{opacity:0;scale:.8}75%{opacity:1;scale:1.07}100%{scale:1}}
@media(max-width:780px){.challenge{grid-template-columns:1fr}.challenge-copy{grid-row:1}.challenge>.arcade:last-child{grid-row:2}.arcade{width:min(100%,490px);margin:auto}.coach b{font-size:15px}.console{width:69%}.stage .phone{width:195px}}@media(max-width:415px){.stores button img{height:38px}.console{padding:11px 8px 16px}.hud b{font-size:19px}.coach b{padding:5px 6px}.challenge{padding-inline:5%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.missions{padding:clamp(44px,6vw,84px) max(5vw,calc((100vw - 1210px)/2));background:#f1eafb}
.missions h2{max-width:18ch}.mission-intro{max-width:55ch}
.mission-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,24px);padding:0;margin:32px 0 0;list-style:none}
.mission-grid li{overflow:hidden;background:#fffaf4;border-radius:22px;border:1px solid #d8c9e5}
.mission-grid img{display:block;width:100%;height:auto;aspect-ratio:480/293;object-fit:cover}
.mission-grid li>div{padding:14px 16px 18px}
.mission-grid h3{margin:0;font:clamp(20px,1.8vw,27px)/1.08 Fredoka,sans-serif}
.mission-grid p{font-size:15px;line-height:1.35;margin:6px 0 0;color:#59475e}
@media(max-width:850px){.mission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.mission-grid{gap:10px}.mission-grid li{border-radius:16px}.mission-grid li>div{padding:11px}.mission-grid h3{font-size:19px}.mission-grid p{font-size:14px}}
.steps button{position:relative;overflow:hidden}
.steps .step-meter{position:absolute;bottom:0;left:0;right:0;height:4px;background:#7850b5;transform-origin:left;transform:scaleX(0);pointer-events:none}
.stage .phone{grid-area:1 / 1;aspect-ratio:540 / 1155;object-fit:cover;object-position:top}.stage img[aria-hidden=true]{pointer-events:none}
/* Two copies of each row form a seamless loop. */
.mission-lane{overflow-x:auto;margin-top:16px}
.mission-track{display:flex;width:max-content}
.mission-track .mission-grid{display:flex;gap:16px;padding-right:16px;margin:0}
.mission-track li{flex:0 0 auto;width:clamp(168px,21vw,282px)}
.mission-toggle{color:#4a3063;background:#fffaf4;border:1px solid #cbb8dc;border-radius:20px;padding:7px 15px;font:800 14px Nunito}
@media(prefers-reduced-motion:no-preference){
.missions.is-moving .mission-lane{overflow:hidden;touch-action:pan-y pinch-zoom;user-select:none}
.missions.is-moving .mission-track{animation:mission-slide 88s linear infinite}
.missions.is-moving .mission-lane:last-child .mission-track{animation-direction:reverse}
.missions.is-paused .mission-track,.missions .is-dragging .mission-track{animation-play-state:paused}
}
@keyframes mission-slide{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.mission-track [aria-hidden=true],.mission-toggle{display:none}}
.ticket{width:max-content;min-width:10em}.ticket span{white-space:nowrap}@media(max-width:420px){.ticket{min-width:0;width:164px}.ticket span{font-size:13px}}

.device{position:relative;padding:5px;border:3px solid #a499b1;border-radius:37px;background:#211e29;box-shadow:inset 0 0 0 1px #f0eaf5,0 2px 0 1px #50475c,9px 18px 30px #30204430;isolation:isolate}
.device>img{display:block;width:100%;border-radius:28px}
.device::before{content:"";position:absolute;z-index:3;width:28%;height:11px;left:36%;top:12px;border-radius:20px;background:radial-gradient(circle at 86% 50%,#1d2940 0 2px,transparent 3px),#111014;box-shadow:inset 0 1px 1px #37313c}
.device::after{content:"";position:absolute;left:-5px;top:18%;height:35px;width:3px;border-radius:2px;background:#8e849c;box-shadow:0 45px #8e849c}
.world .hero-phone{height:auto;width:240px;aspect-ratio:540/1169;top:1%}
.stage-device{width:240px;transform:rotate(-3deg)}
.stage-device img{aspect-ratio:540/1155;object-fit:cover;object-position:top}
.stage-device>img[aria-hidden]{position:absolute;inset:5px;width:calc(100% - 10px)}
.growth-device{width:215px;margin:auto;transform:rotate(4deg)}
.growth .growth-device img{margin:0;width:100%;transform:none}
.stage [hidden]{display:none!important}
.orbit-apps{position:relative;width:100%;height:460px;display:grid;place-items:center;isolation:isolate}
.choice-device{width:190px;height:360px;transform:rotate(-6deg);background:#fff9ee}
.choice-content{height:100%;border-radius:29px;background:linear-gradient(#eee0ff,#fff6d8);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:18px}
.choice-content img{width:68px;border-radius:19px}.choice-content b{font:30px/1.08 Fredoka}.choice-content span{position:static;font:14px/1.4 Nunito;color:#634b71}
.orbit-ring{position:absolute;inset:17% 5%;border:1px solid #8a9b7377;border-radius:50%;transform:rotate(-24deg)}
.app-orbit{position:absolute;inset:9% 2%;pointer-events:none;animation:app-revolve 24s linear infinite;display:grid;place-items:start center}
.app-orbit-1{animation-delay:-6s}.app-orbit-2{animation-delay:-12s}.app-orbit-3{animation-delay:-18s}
.app-logo{width:66px;height:66px;padding:15px;background:white;border-radius:20px;box-shadow:0 8px 18px #33204426;border:1px solid #e9deef;animation:app-revolve 24s linear infinite reverse;animation-delay:inherit}
.app-logo img{width:100%;height:100%}
@keyframes app-revolve{to{transform:rotate(360deg)}}
@media(max-width:780px){.world .hero-phone{width:202px}.orbit-apps{height:390px}.stage-device{width:195px}.choice-device{width:174px;height:330px}.growth .growth-device{width:180px}.app-orbit{inset:6% 1%}.app-logo{width:57px;height:57px;padding:13px}}
@media(max-width:420px){.world .hero-phone{width:165px}.orbit-apps{height:370px}.choice-device{width:157px;height:306px}.choice-content b{font-size:26px}}
@media(prefers-reduced-motion:reduce){.app-orbit-1{transform:rotate(90deg)}.app-orbit-2{transform:rotate(180deg)}.app-orbit-3{transform:rotate(270deg)}.app-orbit-1 .app-logo{transform:rotate(-90deg)}.app-orbit-2 .app-logo{transform:rotate(-180deg)}.app-orbit-3 .app-logo{transform:rotate(-270deg)}}
.choice-content{padding:22px 10px 10px;gap:12px}.choice-content b{font-size:25px}.choice-content img{width:75px;height:82px;object-fit:contain}.choice-content span{font-size:13px}@media(max-width:420px){.choice-content b{font-size:22px}}

.hero h1{font-size:clamp(43px,4.6vw,68px);line-height:1.04;letter-spacing:-.035em}
.choice-device{z-index:2}
.orbit-apps .app-orbit{inset:auto;left:calc(50% - 33px);top:calc(50% - 33px);width:66px;height:66px;display:block;animation:none}
.orbit-apps .app-logo{animation:none;transform:none}
.orbit-ring{inset:calc(50% - 72px) 5%;height:144px;transform:none;z-index:-1}
.app-logo.snapchat{background:#fffc00;border-color:#ede900}
.reward-spark{position:absolute;font-style:normal;font-size:24px;line-height:1;color:#8855c5;text-shadow:0 1px #fff1bb;pointer-events:none}
@media(max-width:780px){.orbit-apps .app-orbit{left:calc(50% - 28.5px);top:calc(50% - 28.5px);width:57px;height:57px}}
@media(max-width:420px){.hero h1{font-size:42px}}
