:root{font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;color:#fff9f0;background:#171429;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-width:320px}body{background:radial-gradient(circle at 70% 0%,#43314d 0,transparent 30%),#171429}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #ffe37e;outline-offset:3px}.page{max-width:1450px;margin:auto;padding:0 32px}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff22;gap:15px}.brand{display:flex;align-items:center;gap:11px;font-size:22px;font-weight:1000;letter-spacing:-.05em;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:41px;height:41px;border-radius:12px;background:#fce263;box-shadow:4px 4px 0 #c85880;font-size:22px}.brand-gold{color:#ffe677}.brand-sub{font-size:11px;letter-spacing:.08em;color:#d4c6d9;border-left:1px solid #a297ac;padding-left:12px;margin-left:3px}.top-actions{display:flex;align-items:center;gap:9px}.fiction-pill{font-size:12px;color:#c9bbcf;margin-right:9px}.small-button{background:#ffffff12;color:#fff;border:1px solid #ffffff27;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:900}.small-button:hover{background:#ffffff26}.intro{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:36px 4px 29px}.eyebrow{font-size:11px;font-weight:1000;letter-spacing:.19em;color:#dfa8dc}.intro h1{font-size:clamp(43px,5vw,70px);letter-spacing:-.065em;line-height:1.1;margin:12px 0 12px}.intro h1 em{color:#ffe476;font-style:normal;text-shadow:4px 5px 0 #ba4d7b}.intro p{color:#c8bfd1;font-size:15px;line-height:1.7;margin:0}.intro-sticker{border:3px solid #fff0d3;background:#ed7497;color:#2c183b;padding:12px 19px;transform:rotate(6deg);border-radius:8px;box-shadow:5px 6px 0 #a64d74;font-size:13px;font-weight:800;white-space:nowrap}.intro-sticker strong{font-size:17px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:20px;align-items:start}.game-column{min-width:0}.hud{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(130px,.75fr) minmax(130px,.75fr);gap:10px;margin-bottom:13px}.hud>div{min-height:112px;border-radius:16px;padding:16px 19px;box-shadow:5px 6px 0 #0004}.hud-balance{background:#fae2a8;color:#2f213a}.hud-balance>span,.hud-stat>span{display:block;font-size:11px;font-weight:1000;letter-spacing:.06em;white-space:nowrap}.hud-balance strong{display:block;font-size:clamp(28px,3.2vw,46px);font-variant-numeric:tabular-nums;letter-spacing:-.06em;line-height:1.15;margin:7px 0}.hud-balance strong small{font-size:.65em;margin-right:5px}.balance-meter{height:6px;background:#d2b980;border-radius:9px;overflow:hidden}.balance-meter i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#f58d58,#dd416e);border-radius:9px;transition:width .4s}.hud-stat{background:#352b50}.hud-stat strong{display:block;margin-top:17px;font-size:clamp(22px,2.4vw,31px);font-variant-numeric:tabular-nums;letter-spacing:-.05em}.hud-stat strong small{font-size:14px;color:#dac9df}.game-stage{height:450px;position:relative;overflow:hidden;border:5px solid #fbeee5;border-radius:19px;background:linear-gradient(180deg,#5c4a81 0%,#9c75a5 48%,#e29ab0 100%);box-shadow:7px 8px 0 #f1bd69,0 24px 45px #0005;touch-action:manipulation;user-select:none}.game-stage.hit-small{animation:shakeSmall .25s}.game-stage.hit-medium{animation:shakeMedium .35s}.game-stage.hit-large{animation:shakeLarge .55s}.game-stage.hit-super{animation:shakeSuper .75s}.sun{position:absolute;width:95px;height:95px;right:16%;top:49px;background:#ffe08e;border-radius:50%;box-shadow:0 0 0 22px #ffe08e22,0 0 80px #ffe08e88}.cloud{position:absolute;width:158px;height:40px;border-radius:40px;background:#fff5e079;filter:blur(1px)}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}.cloud:before{width:75px;height:75px;left:27px;bottom:5px}.cloud:after{width:95px;height:55px;right:10px;bottom:0}.cloud-one{top:72px;left:8%}.cloud-two{top:146px;right:7%;transform:scale(.65)}.skyline{position:absolute;left:-100%;width:300%;bottom:70px;height:170px;background-repeat:repeat-x;animation:moveSky 16s linear infinite}.skyline-back{opacity:.35;bottom:88px;background-image:repeating-linear-gradient(90deg,transparent 0 34px,#402b62 34px 75px,transparent 75px 98px,#402b62 98px 152px);height:155px}.skyline-front{background-image:repeating-linear-gradient(90deg,#3b315f 0 52px,#3b315f 52px 65px,transparent 65px 86px,#3b315f 86px 144px,transparent 144px 167px);height:102px;animation-duration:10s;opacity:.75}.stage-sign{position:absolute;top:19px;right:20px;background:#ffdd6d;color:#3d2550;border:3px solid #fff4c9;box-shadow:3px 4px 0 #78406b;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:1000;transform:rotate(5deg);z-index:2}.road{height:80px;background:#2b2545;position:absolute;bottom:0;left:0;right:0;border-top:9px solid #ffe2a0}.road-stripes{height:8px;position:absolute;left:0;right:0;top:35px;background:repeating-linear-gradient(90deg,#f7dfa3 0 45px,transparent 45px 89px);animation:roadMove .45s linear infinite}.game-stage.idle .road-stripes,.game-stage.idle .skyline{animation-play-state:paused}.entities{position:absolute;inset:0;z-index:4;pointer-events:none}.runner{position:absolute;left:100px;bottom:74px;width:105px;height:166px;z-index:5;filter:drop-shadow(5px 7px 0 #25123577);will-change:transform}.runner-photo{position:absolute;left:9px;right:9px;top:10px;height:139px;border:4px solid #fff7df;border-radius:14px 14px 10px 10px;background:#9dcbd6 url('assets/suit-photo.jpg') no-repeat 0% 33% / 285% auto;box-shadow:0 0 0 4px #f9c64d;overflow:hidden}.runner-badge{position:absolute;left:-8px;top:-17px;background:#ffe56e;color:#34233c;border:2px solid #fff5cc;padding:3px 8px;border-radius:50px;font-weight:1000;font-size:12px;z-index:2;transform:rotate(-9deg)}.runner-feet{position:absolute;bottom:0;left:26px;right:20px;display:flex;justify-content:space-between}.runner-feet i{width:18px;height:22px;background:#2b1d43;border:3px solid #ffe17d;border-radius:0 0 8px 8px;transform-origin:top}.game-stage.running .runner-feet i:first-child{animation:runFeet .18s infinite alternate}.game-stage.running .runner-feet i:last-child{animation:runFeet .18s infinite alternate-reverse}.game-stage.jumping .runner-feet i{animation:none}.entity{position:absolute;left:0;bottom:75px;width:90px;height:98px;border-radius:13px;border:3px solid #fff0d6;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;box-shadow:5px 7px 0 #241235a3;transform:translateX(var(--x));will-change:transform}.entity .emoji{font-size:30px;line-height:1}.entity .name{font-size:11px;font-weight:1000;line-height:1.2;max-width:84px}.entity .money{font-size:12px;font-weight:1000;color:#ffe46f}.entity.small{background:#385c74}.entity.medium{background:#695080}.entity.large{background:#a6476e}.entity.super{background:#bd594d}.entity.bonus{height:86px;background:#2e916f;border-color:#d5ffb7;box-shadow:0 0 22px #84ffa17b,5px 7px 0 #17483c}.entity.bonus .money{color:#e6ffb1}.feedback{position:absolute;left:40%;top:24%;z-index:12;display:none;text-align:center;pointer-events:none;text-shadow:4px 5px 0 #4a1c4e;animation:feedbackPop .7s both}.feedback.show{display:flex;flex-direction:column}.feedback b{font-size:clamp(32px,5vw,64px);letter-spacing:-.06em;white-space:nowrap}.feedback span{font-size:19px;font-weight:1000;max-width:450px}.feedback.bonus{color:#aaffca;text-shadow:3px 4px 0 #23644e}.feedback.loss{color:#ffe178}.stage-overlay{position:absolute;inset:0;background:#1b1430b8;z-index:20;display:grid;place-items:center;padding:20px}.stage-overlay.hidden{display:none}.overlay-card{text-align:center;background:#fff1db;border:5px solid #fff;color:#31213c;border-radius:20px;padding:24px 36px 27px;max-width:410px;box-shadow:9px 10px 0 #e76b91;transform:rotate(-2deg)}.overlay-icon{font-size:53px;display:block}.overlay-kicker{font-size:11px;letter-spacing:.16em;color:#a24b70;font-weight:1000}.overlay-card h2{font-size:31px;margin:10px 0;letter-spacing:-.05em}.overlay-card p{font-size:14px;line-height:1.65;color:#625168}.overlay-card button,.game-over-panel button{background:#2f2143;color:#fff;border:0;border-radius:9px;padding:12px 23px;font-weight:1000;font-size:16px;margin-top:10px}.overlay-card button:hover,.game-over-panel button:hover{background:#513467}.controls{display:flex;align-items:center;gap:15px;margin-top:23px;padding:15px 17px;border-radius:12px;background:#ffffff0b;border:1px solid #ffffff1a}.control-tip{display:flex;flex-direction:column;gap:5px;min-width:0}.control-tip strong{color:#ffe17e;font-size:12px}.control-tip span{color:#d2c5d9;font-size:12px;line-height:1.4}.controls #jumpBtn{margin-left:auto;min-width:130px;background:#ffe16e;color:#36233f;border:3px solid #fff0bb;border-radius:10px;padding:12px;font-weight:1000;font-size:18px;box-shadow:4px 5px 0 #bd6d70;touch-action:manipulation}.controls #jumpBtn:active{transform:translateY(3px);box-shadow:1px 2px 0 #bd6d70}.side-panel{display:flex;flex-direction:column;gap:15px}.character-card,.rules-card,.hint-card{border-radius:16px;overflow:hidden}.character-card{background:#f5e5d6;color:#33243b;border:4px solid #fff3e6;box-shadow:5px 6px 0 #bb567c}.character-top{height:38px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;font-size:11px;font-weight:1000}.live-dot{color:#cb426f}.character-photo{height:215px;background:#a9d4dc url('assets/suit-photo.jpg') no-repeat 0% 36% / 275% auto}.character-bottom{padding:13px}.character-bottom strong{display:block;font-size:22px}.character-bottom span{display:block;color:#765e73;font-size:12px;line-height:1.5;margin-top:3px}.rules-card{background:#3b2f54;border:1px solid #ffffff22;padding:20px}.rules-label{color:#d7b5e0;font-size:10px;letter-spacing:.17em;font-weight:1000}.rules-card h2{font-size:20px;line-height:1.3;margin:11px 0 7px}.rules-card p{font-size:12px;color:#e0d6e5;line-height:1.65;min-height:39px;margin:0}.rules-divider{height:1px;background:#ffffff26;margin:16px 0}.mini-stat{display:flex;justify-content:space-between;font-size:12px;color:#d9cede;margin-top:11px}.mini-stat strong{color:#ffe277}.hint-card{background:#e57091;color:#321d3e;font-weight:900;font-size:12px;line-height:1.6;padding:14px 17px;box-shadow:5px 5px 0 #993d6d}footer{margin-top:57px;border-top:1px solid #ffffff1e;text-align:center;color:#978ea5;padding:22px 0 29px;font-size:11px;line-height:1.6}.cutin,.game-over{position:fixed;inset:0;z-index:50;opacity:0;pointer-events:none;transition:opacity .18s}.cutin.active,.game-over.active{opacity:1}.cutin{background:#09060f;overflow:hidden}.cutin-photo{position:absolute;inset:0;background:url('assets/headphones-photo.jpg') no-repeat 53% 52% / cover;filter:contrast(1.13) saturate(.8);transform-origin:58% 70%}.cutin.active .cutin-photo{animation:zoomFace 1.2s ease-out both}.cutin-shade{position:absolute;inset:0;background:linear-gradient(90deg,#120b1bd1 0%,#160d2466 48%,#0c0915b3 100%)}.cutin-copy{position:absolute;left:7%;right:7%;bottom:11%;text-shadow:4px 5px 0 #2e1432}.cutin-copy>span{display:inline-block;background:#ffe470;color:#3c2745;padding:7px 12px;font-weight:1000;letter-spacing:.06em;font-size:clamp(15px,2vw,25px);transform:rotate(-3deg);text-shadow:none}.cutin-copy strong{display:block;color:#fff;font-size:clamp(60px,10vw,140px);letter-spacing:-.07em;line-height:1.15;white-space:nowrap}.cutin-copy p{color:#ffe27c;font-weight:1000;font-size:clamp(20px,3vw,42px);margin:0;max-width:900px}.game-over{z-index:60;display:grid;place-items:center;background:radial-gradient(circle at center,#74406f,#171128 70%);overflow:auto;padding:25px}.game-over.active{pointer-events:auto}.game-over-panel{position:relative;text-align:center;width:min(560px,100%);background:#fff0de;color:#2f2240;border:6px solid #fff;border-radius:23px;padding:27px 30px 30px;box-shadow:11px 12px 0 #e36793;transform:rotate(-1deg)}.over-emoji{font-size:54px}.over-kicker{color:#a95179;font-size:11px;letter-spacing:.15em;font-weight:1000}.game-over-panel h2{font-size:clamp(39px,6vw,65px);letter-spacing:-.065em;margin:7px 0 3px}.time-label{color:#745d74;font-weight:800;margin:5px 0}.final-time{font-size:clamp(48px,8vw,88px);letter-spacing:-.065em;font-weight:1000;color:#d84678;font-variant-numeric:tabular-nums}.final-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:14px 0;border-top:1px solid #d9c7c1;border-bottom:1px solid #d9c7c1}.final-stats div{display:flex;flex-direction:column;gap:6px}.final-stats span{font-size:11px;color:#806b7a}.final-stats strong{font-size:16px}.smile{display:inline-block;background:#ffe27b;padding:8px 12px;border-radius:7px;margin-top:17px;font-weight:1000;font-size:13px}.game-over-panel button{display:block;margin:18px auto 0}.confetti{position:absolute;inset:0;pointer-events:none}.confetti span{position:absolute;top:-20px;font-size:22px;animation:confettiFall 3s linear forwards}@keyframes runFeet{to{transform:rotate(26deg)}}@keyframes moveSky{to{transform:translateX(33.333%)}}@keyframes roadMove{to{background-position:-89px 0}}@keyframes zoomFace{to{transform:scale(1.25) translate(-2%,2%)}}@keyframes feedbackPop{0%{opacity:0;transform:scale(.4) rotate(-12deg)}35%{opacity:1;transform:scale(1.15) rotate(3deg)}80%{opacity:1}100%{opacity:0;transform:translateY(-22px) scale(1)}}@keyframes shakeSmall{50%{transform:translateX(3px)}}@keyframes shakeMedium{25%{transform:translate(-5px,3px)}75%{transform:translate(5px,-3px)}}@keyframes shakeLarge{25%,75%{transform:translate(-10px,5px) rotate(-1deg)}50%{transform:translate(10px,-5px) rotate(1deg)}}@keyframes shakeSuper{20%,60%{transform:translate(-14px,8px) rotate(-2deg)}40%,80%{transform:translate(14px,-8px) rotate(2deg)}}@keyframes confettiFall{to{transform:translateY(110vh) rotate(600deg)}}
@media(max-width:1050px){.content-grid{grid-template-columns:minmax(0,1fr) 225px}.hud{grid-template-columns:minmax(0,1.5fr) 1fr 1fr}.character-photo{height:180px}.controls{flex-wrap:wrap}.controls #jumpBtn{margin-left:auto}.control-tip{flex:1 1 160px}}
@media(max-width:790px){.page{padding:0 16px}.topbar{height:67px}.brand{font-size:18px}.brand-mark{width:32px;height:32px;font-size:18px}.brand-sub,.fiction-pill{display:none}.intro{padding:27px 0 20px}.intro h1{font-size:43px}.intro p{font-size:13px}.intro-sticker{display:none}.content-grid{display:flex;flex-direction:column;gap:29px}.game-column,.side-panel{width:100%}.side-panel{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.character-card{display:none}.hint-card{align-self:start}.hud{grid-template-columns:minmax(0,1.5fr) 1fr 1fr}.hud>div{min-height:90px;padding:12px}.hud-balance strong{font-size:clamp(24px,4.7vw,37px)}.hud-stat strong{margin-top:14px;font-size:clamp(16px,3vw,25px)}.game-stage{height:455px}.rules-card{min-height:220px}.controls{margin-top:18px}.control-tip{flex:1 1 150px}.controls #jumpBtn{min-width:110px}}
@media(max-width:520px){.top-actions .small-button{padding:7px 8px;font-size:11px}.intro h1{font-size:40px}.intro p{max-width:350px}.hud{grid-template-columns:1fr 1fr;gap:8px}.hud-balance{grid-column:1/-1}.hud>div{min-height:75px}.hud-balance strong{font-size:36px;margin:3px 0}.hud-stat strong{font-size:22px;margin-top:8px}.game-stage{height:445px}.runner{width:88px;height:145px}.runner-photo{height:119px;left:7px;right:7px}.runner-feet{left:23px;right:17px}.stage-sign{font-size:10px;top:12px;right:11px}.entity{width:78px;height:88px}.entity .emoji{font-size:27px}.entity .name{font-size:10px}.entity .money{font-size:11px}.controls{padding:12px}.controls #jumpBtn{width:100%;margin-left:0}.side-panel{display:flex}.rules-card{min-height:unset}.hint-card{width:100%}.cutin-copy{left:5%;right:5%;bottom:15%}.cutin-copy strong{font-size:clamp(39px,10vw,58px)}.cutin-copy p{font-size:19px}.cutin-shade{background:linear-gradient(0deg,#0b071be3,transparent 85%)}.game-over-panel{padding:24px 15px}.final-stats strong{font-size:13px}.final-time{font-size:53px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body.modal-open{overflow:hidden}.game-over{overflow-x:hidden;overflow-y:auto}
html,body{overflow-x:hidden}
.cutin::before{content:"";position:absolute;inset:0;background:url('assets/headphones-photo.jpg') center/cover;filter:blur(24px) brightness(.4);transform:scale(1.1)}
.cutin-photo{background-size:contain;background-position:center;transform-origin:center;filter:contrast(1.08) saturate(.85)}
.cutin.active .cutin-photo{animation:cutinFit 1.05s ease-out both}
.cutin-copy strong{max-width:100%;white-space:normal;overflow-wrap:anywhere;font-size:clamp(45px,8vw,110px)}
body.cutin-open{overflow:hidden}
html.overlay-open{overflow:hidden}
@keyframes cutinFit{from{transform:scale(.97)}to{transform:scale(1)}}
@media(max-width:520px){.cutin-copy{bottom:7%}.cutin-copy strong{font-size:clamp(37px,9vw,55px)}.cutin-copy p{font-size:18px}}

/* Event scenes: the mishap stays on the track before any photo cut-in. */
.effect-layer{position:absolute;inset:0;z-index:15;pointer-events:none;display:none;overflow:hidden;background:linear-gradient(#22133225,transparent 65%)}
.effect-layer.active{display:block}.fx-action{position:absolute;inset:0}
.scene-announcement{position:absolute;top:15px;left:16px;right:16px;text-align:center;z-index:4}
.scene-announcement>span{display:inline-block;background:#32233f;color:#ffe7a1;padding:4px 10px;font-size:10px;font-weight:900;border-radius:20px}
.scene-announcement strong{display:block;font-size:clamp(23px,3vw,34px);font-weight:1000;color:#fff0b1;text-shadow:3px 4px 0 #6d294e;line-height:1.3;margin-top:6px}
.scene-caption{position:absolute;top:106px;left:12px;right:12px;text-align:center;color:#fff;font-size:16px;line-height:1.5;font-weight:900;text-shadow:2px 3px 0 #46233a;z-index:5}
.scene-caption b{display:block;color:#ffe271;font-size:34px;letter-spacing:-.05em;line-height:1.3}
.game-stage.impact-playing .road-stripes,.game-stage.impact-playing .skyline{animation-play-state:paused}
.runner[data-reaction] .runner-photo{animation:actorPanic .22s infinite alternate;transform-origin:bottom}
.runner[data-reaction=dog] .runner-feet{animation:trouserTug .15s infinite alternate}
.runner[data-reaction=water] .runner-photo{animation:actorFloat .7s infinite alternate}
.runner[data-reaction=cake] .runner-photo:after{content:'☁';position:absolute;font-size:90px;color:#fff2d8;inset:20px 0;animation:creamWipe 1.2s both}
.fx-particle{position:absolute;left:var(--actor-x);bottom:132px;font-size:25px;font-style:normal;animation:propScatter 1.25s var(--delay) ease-out both;z-index:4}
.fx-money .fx-particle{font-size:24px;animation-delay:calc(var(--delay) + .28s)}
.fx-small-label{position:absolute;bottom:82px;right:12px;max-width:65%;padding:5px 8px;background:#fff0d8;color:#6a3350;transform:rotate(-3deg);font-weight:1000;font-size:11px;z-index:6;border:2px solid #a95874;border-radius:5px}
.fx-dog{position:absolute;left:calc(var(--actor-x) + 6px);bottom:69px;width:180px;height:125px;animation:dogRush .45s cubic-bezier(.13,.8,.25,1) both;z-index:5}
.cartoon-dog{width:100%;height:100%;overflow:visible}.dog-jaw{transform-origin:76px 77px;animation:dogChomp .17s .4s infinite alternate}
.dog-leg{transform-origin:center;animation:dogLegs .2s infinite alternate}.dog-leg.back{animation-delay:.1s}.dog-tail{transform-origin:198px 83px;animation:dogTail .16s infinite alternate}
.dog-cloth{position:absolute;left:10px;top:60px;width:39px;height:18px;background:#5f2547;border:3px solid #351b37;clip-path:polygon(0 0,100% 15%,90% 80%,50% 100%,5% 77%);animation:clothPull .16s .4s infinite alternate;transform-origin:right}
.dog-bark{position:absolute;top:-2px;left:70px;background:#fff5ca;color:#51243f;font-size:12px;padding:5px 9px;border:2px solid #51243f;border-radius:50% 50% 50% 0;transform:rotate(8deg)}
.bite-star{position:absolute;left:calc(var(--actor-x) + 7px);bottom:116px;color:#ffe561;font-size:43px;animation:biteFlash .23s .45s infinite alternate;z-index:6}
.entity.dog-obstacle{background:transparent;border:0;box-shadow:none;width:105px!important;height:99px!important;gap:0}
.dog-obstacle>.cartoon-dog{height:73px;width:112px}.dog-obstacle .money{background:#63334b;border:2px solid #ffe2a0;border-radius:10px;padding:2px 7px}.dog-obstacle .name{position:absolute;top:-12px;white-space:nowrap;color:#4c2945;background:#ffea99;border-radius:5px;padding:2px 5px}
.fx-fountain{position:absolute;left:var(--actor-x);bottom:79px;width:30px;height:210px;border-radius:50% 50% 10% 10%;background:linear-gradient(90deg,#73cfe780,#d9ffff,#3aa5d3);box-shadow:0 0 18px #96f9ff;transform-origin:bottom;animation:fountain .7s both}
.fx-waterline{position:absolute;bottom:72px;left:0;right:0;height:46px;background:repeating-radial-gradient(ellipse at 50% 0,#a8f9ffa6 0 10px,#58aedea6 14px 32px);border-radius:45% 50% 0 0;animation:floodRise 1.2s both;z-index:4}
.water-drop{color:#d5f9ff;animation-iteration-count:2;animation-duration:.75s}.fx-prop{position:absolute;left:calc(var(--actor-x) + 100px);bottom:89px;font-size:64px}.bobbing{animation:bucketBob .45s infinite alternate}
.fx-octopus{position:absolute;left:calc(var(--actor-x) - 5px);bottom:70px;width:215px;height:166px;animation:octopusEntry .45s both}.fx-octopus svg{width:100%;height:100%}.tentacle{transform-origin:120px 100px;animation:tentacleWave .3s infinite alternate}.tentacle.alt{animation-direction:alternate-reverse}
.tentacle-bill{position:absolute;background:#fff8da;border:2px solid #813458;color:#9c3254;box-shadow:2px 3px 0 #532b59;font-size:13px;padding:5px 4px;animation:tentacleBill .35s infinite alternate}.bill-a{left:9px;bottom:5px;rotate:-15deg}.bill-b{right:2px;bottom:22px;rotate:18deg}.bill-c{left:99px;bottom:-4px;animation-delay:.16s}
.fx-stamp{position:absolute;left:calc(var(--actor-x) + 20px);bottom:195px;border:6px double #ca2f56;color:#be214b;background:#ffecbff0;padding:8px 14px;font-size:31px;font-weight:1000;rotate:-13deg;z-index:6;animation:stampSlam .65s both}
.fx-receipt{position:absolute;left:calc(var(--actor-x) + 5px);bottom:82px;background:#fff4d3;color:#725066;padding:16px 20px;font-size:13px;line-height:1.6;transform:rotate(7deg);box-shadow:5px 5px 0 #473351;clip-path:polygon(0 0,100% 0,100% 95%,90% 100%,80% 95%,70% 100%,60% 95%,50% 100%,40% 95%,30% 100%,20% 95%,10% 100%,0 95%)}
.fx-receipt strong{color:#cb365b}.fx-car{position:absolute;left:calc(var(--actor-x) + 12px);bottom:78px;font-size:105px;animation:carCrash .65s both}.fx-smoke{position:absolute;left:calc(var(--actor-x) + 50px);bottom:145px;font-size:67px;color:#d5cbd8;animation:smokePuff 1.3s both}.smoke-b{left:calc(var(--actor-x) + 100px);animation-delay:.3s}.fx-wrench{position:absolute;left:calc(var(--actor-x) + 80px);bottom:163px;font-size:61px;animation:wrenchSpin .7s ease-out both}
.fx-rocket{position:absolute;left:var(--actor-x);bottom:97px;font-size:92px;animation:rocketDrop .75s ease-in both}.fx-crash{position:absolute;left:var(--actor-x);bottom:80px;font-size:110px;animation:crashPop .7s .55s both}
.fx-breakable{position:absolute;left:calc(var(--actor-x) + 15px);bottom:97px;font-size:92px;animation:breakProp .55s both}.glass-shard{font-size:19px;color:#d0f5ff;clip-path:polygon(0 0,100% 20%,35% 100%);animation-delay:.25s}
.fx-washer,.fx-spinning{position:absolute;left:calc(var(--actor-x) + 5px);bottom:91px;font-size:103px;animation:washerRock .2s infinite alternate}.fx-spinning{font-size:52px;left:calc(var(--actor-x) + 37px);bottom:118px;animation:fullSpin .6s infinite linear}
.fx-cake{position:absolute;left:var(--actor-x);bottom:166px;font-size:87px;animation:cakeFly .65s both}.fx-cream{position:absolute;left:calc(var(--actor-x) - 45px);bottom:157px;font-size:114px;color:#fff1d5;animation:creamWipe 1.3s .45s both}
.fx-drain{position:absolute;left:var(--actor-x);bottom:74px;width:110px;height:22px;border-radius:50%;background:#150d26;box-shadow:0 0 0 5px #a696b1}.fx-watch{position:absolute;left:calc(var(--actor-x) + 20px);bottom:84px;font-size:68px;animation:watchFall 1.1s both}
.fx-box{position:absolute;left:var(--actor-x);bottom:79px;font-size:107px;animation:boxPop .4s both}.fx-brick{position:absolute;left:var(--actor-x);bottom:80px;font-size:69px;animation:brickDrop .5s both}.brick-b{left:calc(var(--actor-x) + 52px);animation-delay:.2s}.brick-c{left:calc(var(--actor-x) + 26px);bottom:124px;animation-delay:.4s}
.fx-phone{position:absolute;left:var(--actor-x);bottom:100px;font-size:105px;animation:phoneRing .15s infinite alternate}.fx-phone-ring{position:absolute;left:calc(var(--actor-x) - 10px);bottom:84px;width:130px;height:130px;border:4px solid #ffe888;border-radius:50%;animation:ringPulse .7s infinite}.ring-b{animation-delay:.3s}
.fx-chart{position:absolute;left:var(--actor-x);bottom:90px;width:185px;animation:chartSlide .9s both}
.theater-menu{background:#272039;border:1px solid #ffffff25;border-radius:14px;padding:13px 15px;color:#f8e6bd}.theater-menu summary{font-weight:900;font-size:13px;cursor:pointer}.theater-menu p{font-size:11px;color:#cdbed1;line-height:1.5;margin:10px 0}.theater-buttons{display:flex;flex-wrap:wrap;gap:6px}.theater-buttons button{border:1px solid #fff3;background:#ffffff12;border-radius:7px;color:#fff2cc;font-size:11px;padding:7px 9px}.theater-buttons button:hover{background:#875077}
.game-over{background:#160e21;isolation:isolate}.end-photo,.end-photo-blur,.end-shade{position:fixed;inset:0;pointer-events:none;z-index:-1}.end-photo-blur{background:url('assets/headphones-photo.jpg') center/cover;filter:blur(20px) brightness(.45)}.end-photo{background:url('assets/headphones-photo.jpg') left center/contain no-repeat;opacity:.92}.end-shade{background:linear-gradient(90deg,#120b1710 20%,#150b2499 65%,#150b24df)}
.game-over-panel{margin-left:auto;margin-right:3vw;width:min(510px,52vw);background:#21172fdb;border:2px solid #ffefc887;color:#fff0d3;box-shadow:10px 11px 0 #b9497877;backdrop-filter:blur(6px)}
.game-over-panel h2{color:#ffe287}.game-over-panel .over-kicker,.game-over-panel .time-label,.game-over-panel .final-stats span{color:#e1c7d9}.game-over-panel .final-time{color:#ff9ab8}.game-over-panel .smile{color:#4b2943}.over-verdict{font-size:15px;line-height:1.5;color:#ffe1b0;margin:8px 0 12px}.worst-fall{font-size:12px;line-height:1.5;color:#f6c6d8;margin-top:11px}.game-over-panel .over-emoji{font-size:42px}
@keyframes actorPanic{to{transform:rotate(-7deg) translateY(-8px)}}@keyframes trouserTug{to{transform:translateX(10px) rotate(-9deg)}}@keyframes actorFloat{to{transform:translateY(-22px) rotate(9deg)}}
@keyframes propScatter{0%{opacity:0;transform:translate(0,0) scale(.2)}20%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(150deg) scale(1.1)}}
@keyframes dogRush{from{transform:translateX(160px)}to{transform:translateX(0)}}@keyframes dogChomp{to{transform:rotate(17deg)}}@keyframes dogLegs{to{transform:rotate(8deg)}}@keyframes dogTail{to{transform:rotate(-20deg)}}@keyframes clothPull{to{transform:scaleX(1.45) rotate(12deg)}}@keyframes biteFlash{to{opacity:.25;transform:scale(.6) rotate(20deg)}}
@keyframes fountain{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes floodRise{from{transform:translateY(60px)}to{transform:translateY(0)}}@keyframes bucketBob{to{transform:rotate(18deg) translateY(-12px)}}
@keyframes octopusEntry{from{transform:translateY(160px) scale(.5)}to{transform:translateY(0) scale(1)}}@keyframes tentacleWave{to{transform:rotate(7deg)}}@keyframes tentacleBill{to{transform:translateY(-13px) rotate(12deg)}}
@keyframes stampSlam{0%{transform:translateY(-210px) scale(1.5);opacity:0}65%{transform:translateY(80px) scale(1);opacity:1}82%{transform:translateY(48px)}100%{transform:translateY(66px)}}
@keyframes carCrash{from{transform:translateX(210px) rotate(0)}60%{transform:translateX(0) rotate(-13deg)}to{transform:translateX(0) rotate(3deg)}}@keyframes smokePuff{from{transform:scale(.3);opacity:0}40%{opacity:1}to{transform:translateY(-90px) scale(1.7);opacity:0}}@keyframes wrenchSpin{from{transform:translateY(75px) rotate(0)}to{transform:translateY(-15px) rotate(380deg)}}
@keyframes rocketDrop{from{transform:translate(180px,-200px) rotate(120deg)}to{transform:translate(0,0) rotate(120deg);opacity:0}}@keyframes crashPop{0%{transform:scale(0);opacity:0}30%{transform:scale(1.3);opacity:1}100%{transform:scale(.9);opacity:0}}@keyframes breakProp{0%{transform:translateY(-50px) rotate(-15deg)}75%{transform:rotate(20deg)}to{transform:scale(.2);opacity:0}}
@keyframes washerRock{to{transform:rotate(8deg)}}@keyframes fullSpin{to{transform:rotate(360deg)}}@keyframes cakeFly{from{transform:translateX(250px) rotate(180deg)}to{transform:translateX(-30px) rotate(-25deg);opacity:0}}@keyframes creamWipe{0%{opacity:0;transform:scale(.2)}25%,70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(20px)}}
@keyframes watchFall{0%{transform:translateY(-130px) rotate(-30deg)}70%{transform:translateY(0) rotate(50deg) scale(.8);opacity:1}100%{transform:translateY(12px) scale(0);opacity:0}}@keyframes boxPop{from{transform:scale(.2) rotate(-15deg)}to{transform:scale(1) rotate(4deg)}}@keyframes brickDrop{from{transform:translateY(-230px) rotate(-15deg)}to{transform:translateY(0) rotate(0)}}@keyframes phoneRing{to{transform:rotate(13deg)}}@keyframes ringPulse{to{transform:scale(1.7);opacity:0}}@keyframes chartSlide{from{transform:translateY(-70px)}to{transform:translateY(20px)}}
@media(max-width:790px){.theater-menu{grid-column:1/-1}.game-over-panel{margin:auto;width:min(510px,100%);background:#21172fcc}.end-photo{background-position:center;background-size:contain}.end-shade{background:linear-gradient(0deg,#150b2477,#150b2422)}.game-over{align-items:center}.over-emoji{font-size:32px!important}}
@media(max-width:520px){.scene-caption{font-size:13px;top:100px}.scene-caption b{font-size:29px}.scene-announcement strong{font-size:23px}.fx-dog{width:157px;left:calc(var(--actor-x) - 3px)}.fx-octopus{width:185px}.game-over-panel{padding:20px 15px;margin-top:18vh;box-shadow:6px 7px 0 #b9497877}.game-over-panel h2{font-size:38px}.game-over-panel .final-time{font-size:51px}.end-photo{background-position:center top}.game-over{padding:18px}.over-verdict{font-size:13px}.game-over-panel .final-stats{padding:11px 0}}
@media(prefers-reduced-motion:reduce){.effect-layer *{animation-duration:.1s!important;animation-iteration-count:1!important}}

/* The settlement scene is an explicit cartoon performance by the fictional game character. */
.apology-stage{display:grid;grid-template-columns:138px minmax(0,1fr);align-items:center;gap:14px;min-height:181px;margin:12px 0 4px;padding:12px 14px;border:2px dashed #ffe8a7;border-radius:17px;background:linear-gradient(135deg,#4f2b60e8,#271a42e8);box-shadow:inset 0 0 22px #120d37}
.apology-actor{position:relative;width:134px;height:158px;perspective:440px;align-self:end}
.apology-bow{position:absolute;left:9px;top:0;width:111px;height:135px;transform-origin:center 100%;animation:apologyBow 2.55s cubic-bezier(.4,0,.35,1) infinite;filter:drop-shadow(4px 6px 0 #130d2b)}
.apology-portrait{width:100%;height:100%;border:4px solid #fff0cd;border-radius:14px;background:#97bfd0 url('assets/suit-photo.jpg') no-repeat 0% 35% / 285% auto;box-shadow:0 0 0 4px #ecb84d}
.apology-name{position:absolute;left:-7px;top:-10px;padding:2px 8px;border-radius:20px;border:2px solid #fff2bd;background:#ffdd67;color:#36233f;font-size:11px;font-weight:1000;transform:rotate(-10deg)}
.apology-floor{position:absolute;left:0;right:5px;bottom:2px;height:15px;border-radius:50%;background:#130b2ca8;box-shadow:0 0 0 3px #f7d18340}
.apology-impact{position:absolute;z-index:2;right:0;top:50px;color:#fff17d;font-size:30px;font-weight:1000;text-shadow:3px 3px #a54478;transform:rotate(15deg);animation:apologyThump 2.55s infinite;pointer-events:none}
.apology-dialogue{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;text-align:left}
.apology-to{align-self:flex-start;padding:4px 7px;border-radius:5px;background:#ffe077;color:#36233f;font-size:11px;font-weight:1000}
.apology-dialogue strong{padding:2px 8px;border-radius:7px;color:#fff2d3;font-size:clamp(18px,2.2vw,25px);line-height:1.25;white-space:nowrap;animation:apologyWords 3s infinite}
.apology-dialogue strong:nth-of-type(2){animation-delay:1s}.apology-dialogue strong:nth-of-type(3){animation-delay:2s}
.apology-repeat{color:#e5bdd4;font-size:11px;font-weight:800;margin-top:2px}
.ending-fiction{margin:6px 0 8px;color:#e0c4d4;font-size:10px;line-height:1.4}
.ending-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.game-over-panel .ending-actions button{display:inline-block;margin:14px 0 0;padding:10px 16px;font-size:13px}.game-over-panel #endingSoundBtn{background:#735277;color:#ffefd6}
.game-over-panel .time-label{font-size:12px}.game-over-panel .final-time{line-height:1.05}
@keyframes apologyBow{0%,7%,52%,100%{transform:rotateX(0) translateY(0)}22%,38%{transform:rotateX(72deg) translateY(21px)}30%{transform:rotateX(77deg) translateY(25px)}}
@keyframes apologyThump{0%,17%,43%,100%{opacity:0;transform:scale(.3) rotate(15deg)}25%,34%{opacity:1;transform:scale(1.2) rotate(15deg)}}
@keyframes apologyWords{0%,27%,100%{background:transparent;color:#fff2d3;transform:scale(1)}5%,22%{background:#ffdf68;color:#4d2341;transform:scale(1.08)}}
@media(max-width:520px){.apology-stage{grid-template-columns:100px minmax(0,1fr);gap:8px;min-height:145px;padding:9px}.apology-actor{width:98px;height:132px}.apology-bow{left:7px;width:79px;height:110px}.apology-impact{font-size:23px;right:-2px;top:36px}.apology-dialogue strong{font-size:17px;padding:2px 5px}.apology-to{font-size:9px}.apology-repeat{font-size:9px}.game-over-panel .over-emoji{font-size:26px!important}.game-over-panel h2{margin:2px 0;font-size:35px}.game-over-panel .final-time{font-size:46px}.game-over-panel{margin-top:5vh}.ending-fiction{font-size:9px}}
@media(prefers-reduced-motion:reduce){.apology-bow,.apology-impact,.apology-dialogue strong{animation:none}}

.entity.large{height:105px}.entity.super{height:112px}
@media(max-width:520px){.entity.large{height:100px}.entity.super{height:108px}}

/* Ground bills and floating bills ask for different moves. */
.entity .maneuver{position:absolute;top:-24px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:3px 10px;border:2px solid #fff5cc;border-radius:20px;background:#ffe078;color:#3b2645;font-size:11px;font-weight:1000;box-shadow:2px 3px 0 #442548}
.entity.overhead{bottom:175px;width:112px;height:76px;background:linear-gradient(135deg,#237eaa,#4c3d91);border-color:#b9f5ff;box-shadow:0 0 20px #6ee8ff88,5px 7px 0 #241235a3}
.entity.overhead::before{content:'';position:absolute;left:12px;right:12px;top:-57px;height:53px;border-left:3px dashed #b9f5ff88;border-right:3px dashed #b9f5ff88;pointer-events:none}
.entity.overhead .maneuver{background:#baf7ff;color:#173b63;border-color:#e9ffff}
.entity.overhead .emoji{font-size:24px}.entity.overhead .name{font-size:10px}.entity.overhead .money{font-size:11px}
.runner.ducking .runner-photo{transform-origin:center bottom;transform:scaleY(.48) skewX(-7deg);border-color:#baf7ff;box-shadow:0 0 0 4px #48b8dc}
.runner.ducking .runner-badge{top:69px;background:#baf7ff;transform:rotate(8deg)}
.game-stage.running .runner.ducking .runner-feet i{animation:none;transform:rotate(58deg)}
.controls .action-buttons{display:flex;gap:9px;margin-left:auto;flex-shrink:0}
.controls .action-buttons #jumpBtn{margin:0;min-width:105px}
.controls #duckBtn{min-width:110px;background:#95e8ff;color:#253451;border:3px solid #daf8ff;border-radius:10px;padding:12px;font-size:17px;font-weight:1000;box-shadow:4px 5px 0 #527d9e;touch-action:none;user-select:none}
.controls #duckBtn[aria-pressed=true]{transform:translateY(3px);box-shadow:1px 2px 0 #527d9e;background:#c7f6ff}
@media(max-width:520px){.entity.overhead{bottom:165px;width:100px;height:72px}.entity.overhead .emoji{font-size:22px}.entity .maneuver{font-size:10px}.controls .action-buttons{width:100%}.controls .action-buttons #jumpBtn,.controls .action-buttons #duckBtn{width:50%;min-width:0;margin:0;padding:11px 5px;font-size:16px}.runner.ducking .runner-badge{top:56px}}
