@charset "UTF-8";
:root{font-family:ui-rounded,"Arial Rounded MT Bold","Trebuchet MS",Arial,sans-serif;color:#25272b;background:#fff;font-synthesis:none;--ink:#25272b;--muted:#73767b;--yellow:#ffdb4b;--shadow:0 12px 24px #171b2310,0 3px 5px #171b2308}
*{box-sizing:border-box}html,body{margin:0;min-width:280px;width:100%;height:100%;overflow:hidden}body{height:100svh;position:relative}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #b28a00;outline-offset:6px}button{border:0}button[hidden],[hidden]{display:none!important}a{color:inherit}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.topbar{position:absolute;z-index:40;top:max(30px,env(safe-area-inset-top));left:40px;right:40px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.topbar>*{pointer-events:auto}.brand{text-decoration:none;line-height:1;display:block}.brand strong{font-family:Arial,sans-serif;font-size:30px;font-weight:900;letter-spacing:-1.7px;display:flex;align-items:baseline}.brand strong span{font-weight:800}.brand i{width:6px;height:6px;margin-left:4px;background:var(--yellow);border-radius:50%}.brand small{display:block;font-size:10px;letter-spacing:.15px;margin-top:5px}.utilities{display:flex;gap:14px;align-items:center}.utility{background:transparent;padding:10px 0;font-size:12px;color:#62666b;display:flex;align-items:center;gap:8px}.utility:hover{color:var(--ink)}.sound svg{width:20px;height:20px}.sound[aria-pressed=false] .sound-waves,.sound[aria-pressed=true] .sound-slash{display:none}.icon-button{border:1px solid #e7e7e8;border-radius:50%;height:32px;width:32px;justify-content:center;padding:0;font-size:16px;font-weight:bold}.icon-button:hover{background:#f5f5f5}
#stage{position:absolute;inset:0;overflow:hidden;isolation:isolate}.intro{position:absolute;top:45%;left:20px;right:20px;transform:translateY(-50%);text-align:center;z-index:25;transition:opacity .55s,transform .55s}.intro.exiting{opacity:0;transform:translateY(-55%);pointer-events:none}h1{font-family:Arial,sans-serif;font-weight:900;font-size:clamp(46px,6.4vw,94px);letter-spacing:-5px;line-height:1.07;margin:0;text-shadow:0 8px 14px #20232d13}.intro-sub{font-size:clamp(29px,4.1vw,58px);font-weight:700;letter-spacing:-2.4px;line-height:1.14;margin:14px 0 23px;color:#797b80;text-shadow:0 5px 9px #20232d12}.intro-message{font-size:clamp(15px,1.65vw,21px);color:#7b7e84;line-height:1.45;margin:0;min-height:1.5em}.typed{white-space:pre-wrap}.typed.typing:after{content:"";display:inline-block;height:.85em;width:2px;background:#95979b;margin-left:5px;animation:cursor .75s step-end infinite}.intro-actions{display:flex;justify-content:center;gap:20px;margin-top:43px;transition:opacity .5s,transform .5s}.intro-actions.pending{opacity:0;transform:translateY(12px);pointer-events:none}.pill{background:#fff;box-shadow:var(--shadow);padding:17px 28px;min-height:52px;border:1px solid #f5f5f5;border-radius:999px;font-size:15px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:16px;transition:box-shadow .2s,background .2s,scale .2s}.pill:hover{background:#f9f9f9;box-shadow:0 15px 26px #171b231b,0 4px 8px #171b230b;scale:1.035}.pill:active{scale:.96}.pill.primary{background:var(--yellow);border-color:#ffdb4b;box-shadow:0 13px 24px #b89c2623,0 3px 4px #b89c2612}.pill.primary:hover{background:#ffe46a}.pill.primary>span:last-child{font-size:24px;line-height:.6}.floating{animation:float 4.4s ease-in-out infinite}.floating:nth-child(2){animation-delay:-1.7s}.sound-note{font-size:11px;color:#96999e;margin-top:27px;letter-spacing:.1px}.js .intro-actions.pending+.sound-note{opacity:0}
.footer{z-index:35;position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:40px;right:40px;min-height:40px;display:flex;align-items:center;justify-content:center;pointer-events:none}.footer>*{pointer-events:auto}#intro-footer{font-size:11px;color:#888b90;margin:0}.play-controls{display:flex;gap:13px;align-items:center}.pill.small{font-size:12px;min-height:44px;padding:11px 22px;gap:10px}.small svg{width:18px;height:18px}.small>span{font-size:21px;line-height:1}.discovery-count{position:absolute;left:0;background:transparent;font-size:11px;color:#777c81;padding:12px 0}.discovery-count:hover{color:#222}.drag-hint{position:absolute;right:0;font-size:11px;color:#91959a}.drag-hint span{font-size:19px;margin-left:6px}.play-heading{position:absolute;left:160px;right:160px;top:115px;text-align:center;z-index:12;pointer-events:none;animation:appear 1s both}.play-heading h2{font-family:Arial,sans-serif;font-size:clamp(21px,2.2vw,32px);letter-spacing:-1.1px;font-weight:800;margin:0 0 10px;line-height:1.2}.play-heading p{color:#878a90;font-size:14px;margin:0}.arrival-caption{position:absolute;top:24%;left:15px;right:15px;text-align:center;color:#777c82;font-size:17px;z-index:12;animation:appear .6s}.skip{position:absolute;bottom:88px;right:42px;z-index:30}.skip span{font-size:20px}
.ground,.props,.effects{position:absolute;inset:0;pointer-events:none}.ground{opacity:0;transition:opacity 1s}.ground.visible{opacity:1}.grass{position:absolute;width:36px;height:24px;transform:translate(-50%,-100%);opacity:.65;filter:drop-shadow(0 3px 2px #465f3110)}.grass i{position:absolute;bottom:0;left:50%;width:2px;height:var(--h,16px);background:linear-gradient(#a9b584,#6e8b44);border-radius:100% 0 0 0;transform-origin:bottom;transform:rotate(var(--r,0deg));}.horse{--size:clamp(190px,26vw,355px);position:absolute;width:var(--size);height:var(--size);left:66%;top:76%;padding:0;background:none;border:0;z-index:20;transform-origin:50% 88%;touch-action:none;user-select:none;cursor:grab;will-change:transform,left,top}.horse:active{cursor:grabbing}.horse:focus-visible{outline-offset:-35px;border-radius:45%}.horse-flip,.horse-art{position:absolute;inset:0;display:block}.horse-flip{transform:scaleX(var(--facing,1));transform-origin:50% 70%}.horse-art{background-image:url('./assets/horse.png');background-repeat:no-repeat;background-size:300% 200%;background-position:0 100%;transform-origin:50% 85%}.horse[data-action=pet] .horse-art{animation:nuzzle .55s ease-in-out 2}.horse[data-action=dance] .horse-art{animation:dance .455s ease-in-out infinite}.horse[data-action=longface] .horse-art{transform:scaleY(1.21);transform-origin:50% 88%}.horse-shadow,.bus-shadow{position:absolute;background:radial-gradient(ellipse,#27221636 0%,#29221818 38%,transparent 70%);pointer-events:none;z-index:3;transform:translate(-50%,-50%)}.horse-shadow{width:clamp(140px,22vw,280px);height:32px}.bus-shadow{width:620px;height:75px}.bus{position:absolute;width:clamp(320px,58vw,770px);aspect-ratio:1.5;transform-origin:50% 79%;z-index:15;pointer-events:none;will-change:transform,left,top}.bus-body{position:relative;width:100%;height:100%;transform-origin:50% 78%;transform:rotate(var(--rock,0deg)) translateY(var(--bounce,0px))}.bus img{width:100%;height:100%;display:block}.bus-destination{position:absolute;top:23%;left:13%;width:17%;color:#ffda7b;font-family:monospace;font-weight:700;font-size:clamp(7px,1.12vw,15px);text-align:center;letter-spacing:.04em;transform:rotate(-4deg)}.bus-brand{position:absolute;left:67%;top:62.5%;font:bold clamp(8px,1.6vw,20px) Arial,sans-serif;letter-spacing:-1px;transform:rotate(7deg);color:#282823}.bus-brand span{font-size:.65em;margin-left:3px;letter-spacing:0}.bus-door{position:absolute;left:33.8%;top:31.1%;width:11.8%;height:45%;clip-path:polygon(0 0,100% 4%,100% 96%,0 100%);display:flex;overflow:hidden}.bus-door i{display:block;width:50%;height:100%;background:linear-gradient(105deg,#303b3ff0,#6a7475e8 50%,#2b3339f2);border:2px solid #d1a837;transform-origin:left;transform:scaleX(calc(1 - var(--door,0)));transition:none}.bus-door i+ i{transform-origin:right}.bus-door i:after{content:"";position:absolute;inset:25% 0 auto;height:2px;background:#abb3b67a}
.parachute{position:absolute;width:85%;height:100%;left:8%;bottom:75%;transform-origin:50% 100%;display:none;animation:sway 2s ease-in-out infinite}.horse[data-action=parachute] .parachute{display:block}.canopy{position:absolute;left:0;top:0;width:100%;height:43%;border-radius:140px 140px 12px 12px;overflow:hidden;background:linear-gradient(100deg,#f7ca35,#ffeb8c 40%,#ffdb4b 65%,#e3b83b);box-shadow:inset 0 -9px 15px #b0832820,0 6px 16px #2827150b;border-bottom:2px solid #c6a743}.canopy i{position:absolute;top:0;bottom:0;border-left:2px solid #fff6;border-radius:50%;width:35%;left:15%}.canopy i:nth-child(2){left:35%}.canopy i:nth-child(3){left:55%}.ropes{position:absolute;top:40%;left:0;right:0;height:62%;background:linear-gradient(66deg,transparent 49.4%,#969795 49.8%,#969795 50.2%,transparent 50.6%) left/50% 100% no-repeat,linear-gradient(-66deg,transparent 49.4%,#969795 49.8%,#969795 50.2%,transparent 50.6%) right/50% 100% no-repeat}.horse-bubble{position:absolute;max-width:210px;text-align:center;background:#fff;padding:13px 20px;border-radius:20px;box-shadow:var(--shadow);font-size:13px;line-height:1.4;z-index:29;transform:translate(-50%,-100%);pointer-events:none}.horse-bubble:after{content:"";position:absolute;bottom:-7px;left:50%;width:14px;height:14px;background:white;transform:rotate(45deg)}
.horsehood{position:absolute;left:57%;top:59%;width:3%;height:0;background:linear-gradient(90deg,#663820,#976247);border-radius:0 0 8px 8px;opacity:0;transition:height 1.3s,opacity .6s;transform:rotate(-8deg);transform-origin:top}.horse[data-action=wee] .horsehood{height:14%;opacity:1}.pee-stream{position:absolute;left:56%;top:69%;width:18%;height:22%;border-left:2px dashed #d9bf5966;border-radius:70% 0 0 0;transform:rotate(20deg);opacity:0}.horse[data-wee=true] .pee-stream{opacity:1;animation:stream .3s infinite}.puddle{position:absolute;width:65px;height:15px;border-radius:50%;background:#e9d8856b;transform:translate(-50%,-50%) rotate(-6deg);animation:appear 1s}.manure{position:absolute;font-size:23px;filter:sepia(.8) saturate(.5);transform:translate(-50%,-90%);animation:plop .4s both}.carrot-prop{position:absolute;font-size:30px;transform:translate(-50%,-80%) rotate(-25deg);filter:drop-shadow(1px 5px 3px #311c1219);animation:plop .45s both}.unicorn-horn{position:absolute;left:14.5%;top:9%;width:6%;height:15%;background:linear-gradient(110deg,#ffdf93,#f3aedb,#ccb8f7);clip-path:polygon(45% 0,100% 100%,0 100%);transform:rotate(-30deg);display:none}.horse[data-unicorn=true] .unicorn-horn{display:block}.sunglasses{position:absolute;top:29%;left:15%;font:bold 24px Arial,sans-serif;color:#191a22;letter-spacing:-2px;transform:rotate(12deg);display:none}.horse[data-action=dance] .sunglasses{display:block}.particle{position:absolute;font-size:22px;animation:particle 1.8s ease-out forwards}.stable{position:absolute;left:76%;top:62%;width:170px;z-index:5;transform:translate(-50%,-50%);animation:plop .5s both}.stable-roof{height:65px;background:#a26039;clip-path:polygon(50% 0,100% 100%,0 100%)}.stable-front{position:relative;width:140px;height:108px;margin:auto;background:repeating-linear-gradient(90deg,#c38b58 0 20px,#b88150 20px 23px);text-align:center;box-shadow:0 25px 20px -25px #0009}.stable-front>span{font:bold 10px/1.15 Arial;letter-spacing:1.2px;background:#faf4df;position:relative;top:7px;display:inline-block;padding:4px 7px}.stable-door{background:#573e2e;width:52px;height:57px;position:absolute;bottom:0;left:44px;border:4px solid #e7c499;border-bottom:0}.stable-status{display:block;text-align:center;font-size:11px;color:#698b56;margin-top:12px}.effects{z-index:28;overflow:hidden}.effects.disco:after{content:"";position:absolute;top:18%;left:50%;width:55px;height:55px;transform:translateX(-50%);border-radius:50%;background:repeating-conic-gradient(#d3d6dd 0 10deg,#fff 10deg 20deg);box-shadow:0 6px 18px #0002;animation:mirrorball 3s linear infinite}.effects.disco:before{content:"";position:absolute;top:0;left:50%;height:19%;width:1px;background:#aaa}.night-wash{position:absolute;inset:0;background:#d8defd;opacity:0;pointer-events:none}.night-mode #stage{background:radial-gradient(ellipse at 50% 45%,#f4f5ff,#dde1f4);transition:background 1s}.night-mode .ground{opacity:.4}
.toast{position:absolute;bottom:99px;left:50%;transform:translateX(-50%);background:#292b30;color:#fff;padding:13px 22px;border-radius:99px;font-size:12px;z-index:45;box-shadow:0 8px 18px #0001;text-align:center;max-width:calc(100% - 35px);width:max-content;animation:toast-in .3s both}.paused-banner{z-index:32;position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);background:#fff;padding:18px 24px;border-radius:16px;box-shadow:var(--shadow);font-size:14px;white-space:nowrap}.paused-banner button{background:transparent;text-decoration:underline;margin-left:10px}.paused *{animation-play-state:paused!important}.paused .horse{pointer-events:none}.paused-banner button{pointer-events:auto}
dialog{border:1px solid #eee;border-radius:24px;box-shadow:0 30px 100px #171b2320;padding:38px;width:min(480px,calc(100% - 28px));max-height:calc(100svh - 40px);overflow:auto;color:var(--ink);background:#fff}dialog::backdrop{background:#f2f3f2ba;backdrop-filter:blur(6px)}dialog h2{font-family:Arial,sans-serif;font-size:30px;line-height:1.1;letter-spacing:-1.2px;margin:14px 0}dialog p{font-size:13px;color:#72767b;line-height:1.55}.close-dialog{position:absolute;top:12px;right:18px;background:none;font-size:29px;color:#777}.dialog-kicker{font-size:9px!important;font-weight:bold;letter-spacing:1.8px}.help-list{list-style:none;margin:25px 0;padding:0;display:grid;gap:17px}.help-list li{font-size:13px}.help-list b{display:block;margin-bottom:4px}.help-list span{font-size:12px;color:#7a7d82;line-height:1.4}.keyboard-note{font-size:11px!important;border-top:1px solid #eee;padding-top:18px}kbd{font:10px monospace;background:#f4f4f4;border-radius:3px;padding:1px 3px}.settings{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;margin:20px 0 25px}.settings label{display:flex;gap:7px;align-items:center}.settings input{accent-color:#9f7b00;width:16px;height:16px}.discovery-list{padding:0;list-style:none;margin:25px 0}.discovery-list li{display:flex;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid #eee;font-size:13px}.discovery-list li>span:first-child{color:#95999f;font-size:11px;width:18px}.discovery-list .found>span:first-child{color:#b4962f}.discovery-list .locked{color:#93969c}.discovery-list small{display:block;color:#8b8e94;font-size:10px;margin-top:3px}.collection-note{font-size:11px}.noscript{position:absolute;bottom:70px;text-align:center;left:20px;right:20px;font-size:13px;color:#888}
@keyframes cursor{50%{opacity:0}}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -6px}}@keyframes appear{from{opacity:0}to{opacity:1}}@keyframes toast-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes nuzzle{50%{rotate:-3deg;translate:0 2px}}@keyframes dance{0%,100%{rotate:-5deg;translate:0 0}50%{rotate:5deg;translate:0 -13px}}@keyframes sway{0%,100%{rotate:-5deg}50%{rotate:5deg}}@keyframes particle{from{opacity:1;translate:0 0;rotate:0deg}to{opacity:0;translate:var(--dx,30px) -110px;rotate:var(--dr,30deg)}}@keyframes plop{from{opacity:0;translate:0 -18px}to{opacity:1;translate:0 0}}@keyframes stream{50%{border-left-style:solid;opacity:.65}}@keyframes mirrorball{to{rotate:360deg}}
.arrival-caption{top:18%}
.parachute{height:70%;bottom:73%}
.unicorn-horn{top:2.5%;left:17%;height:11%;width:4.5%}
.sunglasses{top:var(--glasses-y,27.15%);left:var(--glasses-x,22.65%);width:10.5%;height:4.3%;font-size:0!important;transform:translate(-42%,-50%) rotate(-8deg)}
.sunglasses:before{content:"";position:absolute;left:0;top:0;width:70%;height:100%;border-radius:2px 3px 8px 7px;background:linear-gradient(135deg,#303640,#101318 60%);border-top:2px solid #15181c}
.sunglasses:after{content:"";position:absolute;right:0;top:1px;width:36%;height:2px;background:#14171b;transform:rotate(-10deg);transform-origin:left}
.effects.disco:after{top:28%}.effects.disco:before{top:24%;height:4%}
@media(min-width:1600px){.intro{top:44%}.play-heading{top:135px}}
@media(max-width:900px){.topbar{left:25px;right:25px;top:25px}.footer{left:25px;right:25px}.drag-hint{display:none}.discovery-count{bottom:60px;left:50%;transform:translateX(-50%);white-space:nowrap}.play-heading{left:25px;right:25px;top:110px}.play-heading h2{font-size:25px}.horse{--size:clamp(235px,33vw,310px)}.bus{width:clamp(420px,77vw,670px)}.skip{right:25px}h1{letter-spacing:-3px}}
@media(max-width:540px){.topbar{top:max(22px,env(safe-area-inset-top));left:23px;right:23px}.brand strong{font-size:26px}.brand small{font-size:9px}.utilities{gap:10px}.sound span{display:none}.sound svg{width:19px}.icon-button{height:29px;width:29px}.intro{top:44.5%;left:18px;right:18px}h1{font-size:clamp(37px,10.2vw,54px);letter-spacing:-2.3px;line-height:1.13}.intro-sub{font-size:clamp(25px,6.9vw,38px);letter-spacing:-1.4px;margin-top:15px;margin-bottom:23px}.intro-message{font-size:15px;max-width:260px;margin:0 auto;line-height:1.7;min-height:3.4em}.intro-actions{gap:12px;margin-top:30px}.pill{font-size:13px;padding:15px 21px;min-height:49px;gap:13px}.sound-note{font-size:10px;max-width:250px;margin:24px auto 0}.footer{left:16px;right:16px;bottom:max(22px,env(safe-area-inset-bottom))}.play-controls{gap:8px;width:100%;justify-content:center}.pill.small{font-size:11px;padding:11px 13px;gap:7px;min-height:45px}.small svg{width:16px}.small>span{font-size:18px}.play-heading{top:111px;left:24px;right:24px}.play-heading h2{font-size:23px;letter-spacing:-.8px;max-width:330px;margin:0 auto 12px}.play-heading p{font-size:12px}.horse{--size:240px}.bus{width:480px}.bus-destination{font-size:10px}.bus-brand{font-size:12px}.bus-shadow{width:400px}.horse-bubble{font-size:11px;max-width:180px;padding:10px 14px}.skip{font-size:11px;bottom:120px;right:22px}.arrival-caption{top:26%;font-size:14px}.discovery-count{bottom:59px;font-size:10px}.toast{bottom:145px;font-size:11px;padding:12px 17px}.stable{width:130px;scale:.75}.paused-banner{padding:15px 18px;font-size:12px}dialog{padding:29px 25px}dialog h2{font-size:27px}.sunglasses{font-size:19px}}
@media(max-height:530px){.intro{top:47%}h1{font-size:44px}.intro-sub{font-size:28px;margin:7px 0 12px}.intro-message{font-size:14px;min-height:0}.intro-actions{margin-top:21px}.sound-note{display:none}.topbar{top:17px}.footer{bottom:14px}.play-heading{top:66px}.play-heading h2{font-size:20px;margin-bottom:5px}.play-heading p{font-size:11px}.horse{--size:210px}.discovery-count{left:0;bottom:2px;transform:none}.discovery-word{display:none}.bus{width:450px}}
@media(prefers-reduced-motion:reduce){html:not(.motion-override) *,html:not(.motion-override) *:before,html:not(.motion-override) *:after{animation:none!important;transition:none!important}}
.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}
/* Keep the original sprite's exact alpha geometry beneath the generated livery. */
.bus img{-webkit-mask-image:url('./assets/bus-mask.png');mask-image:url('./assets/bus-mask.png');-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-mode:alpha}
.bus-destination{color:#f7f0d8}
.bus-door i{border-color:#354a50}
@media(forced-colors:active){.pill,.icon-button,.horse-bubble,dialog{border:1px solid ButtonText}.horse{border:1px solid ButtonText}.brand i{background:Highlight}.horse-shadow,.bus-shadow{display:none}.typed.typing:after{background:CanvasText}}
