@font-face{font-family:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:url(./fredoka-latin-DM6njrJ3.woff2) format("woff2")}@font-face{font-family:Lilita One;font-style:normal;font-weight:400;font-display:swap;src:url(./lilita-one-latin-87r-Z-Re.woff2) format("woff2")}:root{--ink: #2a1a12;--paper: #fffaf0;--yellow: #ffd23f;--pink: #ff5d8f;--font-display: "Lilita One", "Comic Sans MS", "Trebuchet MS", sans-serif;--font-body: "Fredoka", "Trebuchet MS", "Segoe UI", sans-serif;color:var(--ink);font-family:var(--font-body)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#3fb4f2}body{user-select:none;-webkit-user-select:none}button{font-family:inherit;color:inherit}#app{position:relative;height:100vh;height:100dvh;overflow:hidden}.plate{background:linear-gradient(#fffdf6,#ffeec4);border:4px solid var(--ink);border-radius:18px;box-shadow:0 4px 0 var(--ink)}.hud{position:absolute;inset:0 0 auto 0;z-index:12;display:grid;grid-template-columns:auto minmax(260px,520px) auto;justify-content:space-between;align-items:start;gap:14px;padding:12px 16px 0;pointer-events:none}.hud>*{pointer-events:auto}.brand{padding:6px 16px 8px;background:linear-gradient(#ffe978,#ffb52e);transform:rotate(-1.6deg)}.brand h1{margin:0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:.95;letter-spacing:.01em;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;filter:drop-shadow(0 3px 0 var(--ink))}.brand .t1{color:#c8ff5a}.brand .t2{color:#fff}.brand p{display:inline-block;margin:4px 0 0;padding:1px 10px 2px;background:var(--ink);color:var(--yellow);border-radius:999px;font-size:.82rem;font-weight:700;letter-spacing:.02em}.meters{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:14px;padding:8px 12px 9px;background:linear-gradient(#fffdf6,#ffeec4);border:4px solid var(--ink);border-radius:20px;box-shadow:0 4px 0 var(--ink)}.gauge{display:flex;align-items:center;gap:8px;min-width:0}.badge{flex:none;width:40px;height:40px;display:grid;place-items:center;background:#fff;border:3.5px solid var(--ink);border-radius:50%;box-shadow:0 3px 0 var(--ink)}.badge svg{width:22px;height:22px}.gauge-body{flex:1;min-width:0}.gauge-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2px;font-weight:700;font-size:.86rem;line-height:1.1}.gauge-label .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gauge-label small{font-weight:500;font-size:.72rem;color:#7a5f48}@media(max-width:1180px){.gauge-label small{display:none}}.gauge-label .pct{font-family:var(--font-display);font-size:1rem}.meter{position:relative;height:20px;background:#fff3d6;border:3.5px solid var(--ink);border-radius:999px;overflow:hidden}.meter>div{position:relative;height:100%;width:0;background:linear-gradient(90deg,#ffc233,#ff6a2e 62%,#e1121f);border-radius:inherit}.meter>div:after{content:"";position:absolute;inset:2px 4px auto 4px;height:36%;border-radius:999px;background:#ffffff80}.meter:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 2px),rgba(42,26,18,.28) calc(10% - 2px) 10%);pointer-events:none}.meter.danger>div{background:linear-gradient(90deg,#d8b676,#a2692b 58%,#5c3b1e)}.meter.hot>div{animation:barPulse .3s steps(2) infinite}@keyframes barPulse{50%{filter:brightness(1.3) saturate(1.2)}}.scores{display:flex;align-items:stretch;gap:8px}.score-box{min-width:96px;padding:4px 12px 3px;text-align:right}.score-box span{display:flex;align-items:center;justify-content:flex-end;gap:4px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7a5f48}.score-box strong{display:block;font-family:var(--font-display);font-weight:400;font-size:1.75rem;line-height:1}.crown{width:16px;height:12px}.best-box{background:linear-gradient(#fff7d1,#ffe08a)}#mute{width:54px;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;padding:0}#mute:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}#mute:focus-visible,.btn:focus-visible{outline:4px solid #3d7eff;outline-offset:3px}.stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#3fb4f2;container:stage / size}.stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;pointer-events:none;box-shadow:inset 0 0 140px #1e0e3c52}.world{position:absolute;left:50%;bottom:0;width:max(100cqw,200cqh);aspect-ratio:2 / 1;translate:-50% 0;z-index:1}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none}.svgtxt{font-family:var(--font-display);letter-spacing:.02em}.sun-rays{transform-origin:990px 92px;animation:spin 50s linear infinite}.cloud{animation:drift linear infinite}.cl1{animation-duration:95s;animation-delay:-30s}.cl2{animation-duration:120s;animation-delay:-75s}.cl3{animation-duration:150s;animation-delay:-110s}@keyframes drift{0%{transform:translate(-320px)}to{transform:translate(1480px)}}@keyframes spin{to{transform:rotate(360deg)}}.car{position:absolute;z-index:3;width:12.5%;aspect-ratio:2 / 1}.car svg{width:100%;height:100%;display:block;overflow:visible;animation:engine .36s steps(2) infinite}.car-red{left:12%;bottom:30%}.car-teal{left:80%;bottom:13.5%;width:14%}.car-teal svg{transform:scaleX(-1);animation-delay:-.18s}.carfill{fill:var(--car)}.carshade{fill:var(--car2)}@keyframes engine{50%{translate:0 -1.5px}}.car.honk{animation:carHop .3s steps(3)}.car.honk .driver{animation:fist .1s steps(2) 6;transform-box:fill-box;transform-origin:center}@keyframes carHop{40%{transform:translateY(-8px) rotate(-2deg)}}@keyframes fist{50%{transform:translate(2px)}}.honk-pop{position:absolute;left:52%;top:-34%;font-family:var(--font-display);font-size:clamp(.9rem,1.8cqw,1.6rem);color:#ffe34d;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;opacity:0;white-space:nowrap}.honk-pop.show{animation:popWord .7s steps(5) both}@keyframes popWord{0%{opacity:0;transform:scale(.4) rotate(-8deg)}25%{opacity:1;transform:scale(1.15) rotate(4deg)}80%{opacity:1;transform:scale(1) rotate(-3deg)}to{opacity:0;transform:translateY(-14px) scale(1)}}.signal{position:absolute;left:46.5%;bottom:6.7%;width:6%;aspect-ratio:5 / 11;z-index:4;container-type:inline-size;display:flex;flex-direction:column;align-items:center}.sig-head{flex:0 0 43%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7cqi;background:linear-gradient(#3a3040,#1c1622);border:3px solid #0e0a12;border-radius:16cqi;box-shadow:inset 0 0 0 3px #ffffff1f}.signal .light{width:30cqi;aspect-ratio:1;border-radius:50%;background:#3ddc6a;border:2.5px solid #0e0a12;box-shadow:0 0 12px #3ddc6a}.signal em{font-style:normal;font-family:var(--font-display);font-size:19cqi;letter-spacing:.04em;color:#fff}.signal[data-mode=wait] .light{background:#ffce3a;box-shadow:0 0 12px #ffce3a}.signal[data-mode=ohno] .light{background:#ff4d4d;box-shadow:0 0 12px #ff4d4d;animation:blinkLight .3s steps(2) infinite}@keyframes blinkLight{50%{opacity:.35}}.signal .pole{flex:1;width:13%;background:linear-gradient(90deg,#9aa4b6,#56627a);border:2.5px solid #2d3441;border-top:0}.toilet{position:absolute;left:43.6%;bottom:48%;width:21.7%;aspect-ratio:260 / 210;z-index:2;container-type:inline-size;pointer-events:none}.toilet svg{width:100%;height:100%;display:block;overflow:visible}#door{transform-box:fill-box;transform-origin:left center;transition:transform .4s cubic-bezier(.3,1.3,.5,1)}#door.open{transform:scaleX(.14)}.vacant{position:absolute;left:50%;top:42.4%;translate:-50% 0;padding:.5cqi 3.4cqi;font-size:5.2cqi;font-weight:700;line-height:1.25;background:#d8ffd0;color:#146c36;border:3px solid var(--ink);border-radius:999px;white-space:nowrap}.vacant.late{background:#ffd0c8;color:#8f1d1d}.vacant.occupied{background:#ffe7a3;color:#7a4b00}.actor{--t: 0;position:absolute;left:calc(60.25% - var(--t) * 6.92%);bottom:calc(9.2% + var(--t) * 38%);width:calc(13% * (1 - var(--t) * .5));translate:-50% calc(var(--lift, 0px) * -1);transition:translate .5s steps(6,end);z-index:5;overflow:visible;transform-origin:50% 100%}.grandpa{display:block;width:100%;height:auto;overflow:visible;pointer-events:none}.ol{stroke:var(--ink);stroke-width:5;stroke-linejoin:round;stroke-linecap:round}.ol3{stroke:var(--ink);stroke-width:4.5;stroke-linejoin:round;stroke-linecap:round}.sock{fill:var(--sock, #ff82a9)}.shadow{fill:#1e140a47}.arm-o{fill:none;stroke:var(--ink);stroke-width:35;stroke-linecap:round}.arm-i{fill:none;stroke:#fff4dc;stroke-width:25;stroke-linecap:round}.redwrap{mix-blend-mode:multiply}#rig,#seat,#head,#butt,#armL,#legBack,#legFront,#blast,#stain,#puddle,#stink,#cane{transform-box:view-box}#seat{transform-origin:180px 430px}#head{transform-origin:180px 186px;transform:rotate(-3deg)}#armL{transform-origin:108px 210px}#butt{transform-origin:180px 380px}#legBack,#legFront{transform-origin:180px 400px}.actor.walking #rig{animation:rigWalk .72s steps(1,end) infinite}.actor.walking #seat{animation:seatWalk .72s steps(1,end) infinite}.actor.walking #head{animation:headWalk .72s steps(1,end) infinite}.actor.walking #armL{animation:armWalk .72s steps(1,end) infinite}.actor.walking #legFront{animation:legFrontWalk .72s steps(1,end) infinite}.actor.walking #legBack{animation:legBackWalk .72s steps(1,end) infinite}@keyframes rigWalk{0%,50%{transform:translateY(0)}25%,75%{transform:translateY(-7px)}}@keyframes seatWalk{0%{transform:rotate(-3.5deg) translate(-4px,3px)}25%{transform:rotate(0) translateY(-2px)}50%{transform:rotate(3.5deg) translate(4px,3px)}75%{transform:rotate(0) translateY(-2px)}}@keyframes headWalk{0%{transform:rotate(-6deg)}25%{transform:rotate(-3deg) translateY(-2px)}50%{transform:rotate(0)}75%{transform:rotate(-3deg) translateY(-2px)}}@keyframes armWalk{0%,25%{transform:rotate(7deg)}50%,75%{transform:rotate(-7deg)}}@keyframes legFrontWalk{0%{transform:translateY(-24px)}25%{transform:translateY(-7px)}50%,to{transform:translateY(0)}}@keyframes legBackWalk{0%,25%{transform:translateY(0)}50%{transform:translateY(-24px)}75%{transform:translateY(-7px)}}.actor.waiting #seat{animation:breathe 2.2s steps(2,end) infinite}@keyframes breathe{50%{transform:translateY(3px) scale(1.01,.99)}}.actor.straining #rig{animation:rigShake .1s steps(2,end) infinite}.actor.straining #seat{animation:squat .22s steps(2,end) infinite}.actor.straining #legBack,.actor.straining #legFront{transform:scaleY(.96)}@keyframes rigShake{0%{transform:translate(-2.5px)}50%{transform:translate(2.5px)}}@keyframes squat{0%{transform:translateY(4px) scale(1.035,.95)}50%{transform:translateY(0) scale(1)}}.actor.farting #seat{animation:fartKick .42s steps(1,end) infinite}.actor.farting #head{animation:fartHead .42s steps(1,end) infinite}.actor.farting #armL{animation:armFlail .21s steps(1,end) infinite}.actor.farting #legBack{transform:translate(-8px)}.actor.farting #legFront{transform:translate(8px)}@keyframes fartKick{0%{transform:translateY(8px) scale(1.06,.92)}33%{transform:translateY(-30px) rotate(-3deg) scale(.97,1.05)}66%{transform:translateY(-8px) rotate(2deg)}}@keyframes fartHead{0%{transform:rotate(-3deg)}33%{transform:rotate(-12deg) translateY(-8px)}66%{transform:rotate(4deg)}}@keyframes armFlail{0%{transform:rotate(-26deg)}50%{transform:rotate(14deg)}}#blast{fill:#ffe94f;stroke:var(--ink);stroke-width:6;stroke-linejoin:round;opacity:0;transform-origin:180px 392px;transform:scale(.2)}.actor.farting #blast{animation:blastPop .45s steps(4,end) both}@keyframes blastPop{0%{opacity:1;transform:scale(.4) rotate(0)}60%{opacity:1;transform:scale(1.75) rotate(14deg)}to{opacity:0;transform:scale(2.1) rotate(20deg)}}.actor.farting #combover,.actor.relieving #combover{transform-box:fill-box;transform-origin:20% 90%;animation:hairUp .28s steps(2,end) infinite}@keyframes hairUp{50%{transform:rotate(-18deg) translateY(-3px)}}.actor.relieving #seat{animation:reliefBob .38s steps(2,end) 2}.actor.relieving #head{animation:reliefHead .38s steps(2,end) 2}@keyframes reliefBob{0%{transform:translateY(0) scale(1.02,1.04)}50%{transform:translateY(5px) scale(1.04,.95)}}@keyframes reliefHead{0%{transform:rotate(-9deg) translateY(-4px)}50%{transform:rotate(-1deg) translateY(2px)}}.actor.poked #butt{animation:buttPoke .2s steps(3,end)}@keyframes buttPoke{30%{transform:scale(1.13,.86)}65%{transform:scale(.96,1.07)}}.actor.soiled #rig{animation:none}.actor.soiled #seat{animation:shockTremble .1s steps(2,end) infinite;transform:translateY(3px) scale(1.03,.96)}.actor.soiled #head{animation:shockHead .14s steps(2,end) infinite}.actor.soiled #legBack{transform:translate(-10px)}.actor.soiled #legFront{transform:translate(10px)}@keyframes shockTremble{0%{translate:-2px 0}50%{translate:2px 0}}@keyframes shockHead{0%{transform:rotate(-5deg) translateY(-6px)}50%{transform:rotate(3deg) translateY(-6px)}}#stain{opacity:0;transform-origin:180px 380px}.actor.soiled #stain{animation:stainIn .5s steps(5,end) forwards}@keyframes stainIn{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}#puddle{opacity:0;fill:#6b4423;stroke:var(--ink);stroke-width:3;transform-origin:182px 566px;transform:scale(.3)}.actor.soiled #puddle{opacity:1;transform:scale(5,2);transition:transform .6s steps(6,end),opacity .2s}#stink{opacity:0}.actor.soiled #stink{opacity:.95;animation:stinkRise .8s steps(4,end) infinite}@keyframes stinkRise{0%{transform:translateY(8px);opacity:0}30%{opacity:1}to{transform:translateY(-18px);opacity:0}}.actor.entering{animation:enterDoor .9s ease-in forwards}@keyframes enterDoor{to{opacity:0;transform:translateY(-5%) scale(.5)}}.expr{display:none}.grandpa[data-expr=idle] .expr-idle,.grandpa[data-expr=poke] .expr-poke,.grandpa[data-expr=worry] .expr-worry,.grandpa[data-expr=strain] .expr-strain,.grandpa[data-expr=fart] .expr-fart,.grandpa[data-expr=burp] .expr-burp,.grandpa[data-expr=sigh] .expr-sigh,.grandpa[data-expr=shock] .expr-shock{display:inline}.eye{fill:#fff;stroke:var(--ink);stroke-width:3.5}.pup{fill:#2a1a12}.mouth{fill:none;stroke:var(--ink);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}.squint{fill:none;stroke:var(--ink);stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round}.brow-o{fill:none;stroke:var(--ink);stroke-width:14;stroke-linecap:round}.brow-i{fill:none;stroke:#fffdf8;stroke-width:8;stroke-linecap:round}#mustache{transition:transform .08s}.grandpa[data-expr=poke] #mustache{transform:translateY(-3px)}.grandpa[data-expr=strain] #mustache{transform:translateY(-4px)}.grandpa[data-expr=fart] #mustache,.grandpa[data-expr=shock] #mustache{transform:translateY(-8px)}.grandpa[data-expr=burp] #mustache{transform:translateY(-6px)}.grandpa[data-expr=shock] #lensRing,.grandpa[data-expr=shock] #lensFill{transform-box:fill-box;transform-origin:center;transform:scale(1.1)}.expr-idle .eye-white{transform-box:fill-box;transform-origin:center;animation:blink 4.6s steps(1) infinite}@keyframes blink{0%,94%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}#sweat{opacity:0}.grandpa.sweating #sweat{opacity:1;animation:drip .8s steps(4) infinite}@keyframes drip{0%{transform:translateY(0);opacity:1}to{transform:translateY(18px);opacity:0}}#poke{position:absolute;left:23%;top:48%;width:54%;height:27%;border:0;padding:0;border-radius:46%;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}#poke:disabled{cursor:default}#poke:focus-visible{outline:4px solid #ffe566;outline-offset:3px}.actor.show-hint #poke{box-shadow:inset 0 0 0 4px #ffe950f2,0 0 0 6px #2a1a128c,0 0 22px 6px #ffe9508c;animation:ringPulse .8s steps(2) infinite}@keyframes ringPulse{50%{box-shadow:inset 0 0 0 4px #fffffff2,0 0 0 10px #2a1a1259,0 0 30px 10px #ffe95080}}.tap-hint{position:absolute;left:78%;top:48%;padding:1px 12px 3px;font-family:var(--font-display);font-size:clamp(1rem,1.7cqw,1.5rem);color:var(--ink);background:var(--yellow);border:3.5px solid var(--ink);border-radius:12px;box-shadow:0 3px 0 var(--ink);animation:tapBob .5s steps(2) infinite;pointer-events:none;white-space:nowrap}.tap-hint:before{content:"";position:absolute;left:-13px;top:50%;translate:0 -50%;border:8px solid transparent;border-right:10px solid var(--ink)}.tap-hint[hidden]{display:none}@keyframes tapBob{50%{transform:translate(6px)}}.thought{position:absolute;left:50%;bottom:100%;translate:-50% 0;margin-bottom:10px;width:max-content;max-width:min(230px,60cqw);padding:8px 14px 9px;background:#fff;border:4px solid var(--ink);border-radius:20px;box-shadow:0 4px 0 var(--ink);font-weight:700;line-height:1.15;text-align:center;z-index:6;pointer-events:none}.thought:before,.thought:after{content:"";position:absolute;left:50%;translate:-50% 0}.thought:before{bottom:-17px;border:10px solid transparent;border-top:14px solid var(--ink)}.thought:after{bottom:-11px;border:7px solid transparent;border-top:11px solid #fff}.thought.pop{animation:bubble .3s steps(4)}@keyframes bubble{0%{scale:.7}60%{scale:1.08}to{scale:1}}.stars,.flies{display:none;position:absolute;pointer-events:none}.actor.soiled .stars,.actor.soiled .flies{display:block}.stars{left:50%;top:-3%;width:90px;height:90px;margin-left:-45px;animation:spin 1.2s linear infinite}.stars span{position:absolute;color:#ffe34d;font-size:26px;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill}.stars span:nth-child(1){left:0;top:30px}.stars span:nth-child(2){right:0;top:4px}.stars span:nth-child(3){left:32px;bottom:0}.flies{left:28%;top:52%;width:70px;height:40px}.fly{position:absolute;width:12px;height:8px;background:var(--ink);border-radius:50%;animation:orbit .9s linear infinite}.fly:before{content:"";position:absolute;left:-2px;top:-6px;width:10px;height:6px;background:#ffffffd9;border-radius:50%}.fly.f2{animation-delay:-.45s}@keyframes orbit{0%{transform:rotate(0) translate(30px) rotate(0)}to{transform:rotate(360deg) translate(30px) rotate(-360deg)}}#fx,#floaters,#flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#fx{z-index:6}#flash{z-index:7;background:#fff;opacity:0}#floaters{z-index:8}#flash.on{animation:flash .45s steps(5)}@keyframes flash{0%{opacity:.9}to{opacity:0}}.puff{position:absolute;border-radius:58% 42% 52% 48%/52% 54% 46% 48%;border:4px solid #2f4d12;background:linear-gradient(#c6f566,#8ed441);box-shadow:inset -9px -8px #6aa82e,inset 7px 7px #ffffff59;animation:puff .95s steps(8,end) forwards}.puff.gross{border-color:#3d2810;background:linear-gradient(#b9c455,#7a5a2a);box-shadow:inset -9px -8px #5a3f1c,inset 7px 7px #ffffdc40;animation-name:puffGross}.puff.splat{animation-name:splatFall}@keyframes puff{0%{transform:translate(0) scale(.2);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(1.5);opacity:0}}@keyframes puffGross{0%{transform:translate(0) scale(.25) rotate(0);opacity:1}45%{transform:translate(calc(var(--dx) * .5),calc(var(--dy) * .5)) scale(1.1) rotate(16deg);opacity:.95}to{transform:translate(var(--dx),var(--dy)) scale(1.6) rotate(-12deg);opacity:0}}@keyframes splatFall{0%{transform:translate(0) scale(.3);opacity:1}to{transform:translate(calc(var(--dx) * .4),90px) scale(1.2);opacity:0}}.ring{position:absolute;border-radius:50%;border:8px solid #fff6a8;box-shadow:0 0 0 4px var(--ink),inset 0 0 0 4px var(--ink);animation:ringOut .5s steps(5,end) forwards}@keyframes ringOut{0%{transform:scale(.15);opacity:1}to{transform:scale(1);opacity:0}}.floater{position:absolute;font-family:var(--font-display);font-size:1.25rem;color:#fff;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;white-space:nowrap;--r: 0deg;animation:floatUp .8s steps(8,end) forwards}.floater.points{color:#ffe34d;font-size:1.15rem}.floater.hot{color:#fff;font-size:1.4rem}.floater.fart-word{color:#d8ff6a;font-size:2.1rem;-webkit-text-stroke-width:8px}.floater.bad{color:#ffb199;font-size:2.8rem;-webkit-text-stroke-width:9px}@keyframes floatUp{0%{transform:translate(-50%) rotate(var(--r)) scale(.5);opacity:0}20%{opacity:1;transform:translate(-50%,-10px) rotate(var(--r)) scale(1.2)}to{transform:translate(-50%,-76px) rotate(var(--r)) scale(1);opacity:0}}.stage.shake-1{animation:shake .32s linear}.stage.shake-2{animation:shake .42s linear}.stage.shake-3{animation:shakest .5s linear}@keyframes shake{20%{transform:translate(-4px,2px)}40%{transform:translate(5px,-3px)}60%{transform:translate(-3px,2px)}80%{transform:translate(3px,-1px)}}@keyframes shakest{15%{transform:translate(-9px,5px)}30%{transform:translate(10px,-6px)}50%{transform:translate(-7px,4px)}70%{transform:translate(8px,-4px)}85%{transform:translate(-4px,2px)}}.hintbar{position:absolute;left:50%;bottom:12px;translate:-50% 0;z-index:12;display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);pointer-events:none}#combo{flex:none;padding:4px 16px 6px;font-family:var(--font-display);font-size:1.15rem;color:var(--yellow);background:var(--ink);border:3px solid #fff;border-radius:999px;box-shadow:0 0 0 3px var(--ink)}#combo.hot{background:#e8381a;color:#fff;animation:comboHot .24s steps(2) infinite}@keyframes comboHot{50%{transform:scale(1.08) rotate(-2deg)}}#hint{padding:5px 18px 6px;font-weight:700;background:var(--paper);border:4px solid var(--ink);border-radius:999px;box-shadow:0 4px 0 var(--ink)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 50% 40%,#ffe2784d,#1c143cbd)}.overlay.hidden{display:none}.card{position:relative;width:min(560px,100%);max-height:min(94dvh,720px);overflow:auto;padding:26px 26px 22px;background:var(--paper);border:5px solid var(--ink);border-radius:30px;box-shadow:0 8px 0 var(--ink),0 26px 60px #0006;animation:cardIn .55s steps(7,end) both}@keyframes cardIn{0%{transform:translateY(40px) scale(.85);opacity:0}to{transform:none;opacity:1}}.kicker{display:inline-block;margin:0 0 8px;padding:2px 16px 4px;font-family:var(--font-display);font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--pink);border:3.5px solid var(--ink);border-radius:999px;box-shadow:0 3px 0 var(--ink);transform:rotate(-2deg)}.card h2{margin:4px 0 8px;font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,5.2vw,3rem);line-height:.96;color:#ffd23f;-webkit-text-stroke:7px var(--ink);paint-order:stroke fill;filter:drop-shadow(0 3px 0 var(--ink))}.card p{margin:0 0 12px;font-size:1.08rem;font-weight:500}.card .lede{font-weight:600}.steps{counter-reset:s;list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}.steps li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:12px;padding:7px 12px 7px 8px;background:#fff;border:3px solid var(--ink);border-radius:16px;font-weight:500;line-height:1.2}.steps li:before{content:counter(s);display:grid;place-items:center;width:32px;height:32px;font-family:var(--font-display);font-size:1.1rem;background:var(--yellow);border:3px solid var(--ink);border-radius:50%}.steps li:nth-child(2n):before{background:#9be15d}.big-score{font-family:var(--font-display);font-size:1.5rem;color:#c2410c}.btn{display:block;width:100%;padding:.6rem 1.3rem .8rem;font-family:var(--font-display);font-size:1.7rem;letter-spacing:.02em;color:var(--ink);background:linear-gradient(#ffe977,#ffbe2a);border:4.5px solid var(--ink);border-radius:999px;box-shadow:0 7px 0 var(--ink);cursor:pointer;transition:transform .08s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(5px);box-shadow:0 2px 0 var(--ink)}#start,#again{animation:btnBounce 1.1s steps(2) infinite}@keyframes btnBounce{50%{scale:1.03}}#end{background:none;pointer-events:none;place-items:end center;padding:0 10px 10px}#end .card{pointer-events:auto;width:min(900px,100%);max-height:none;overflow:visible;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 22px;padding:12px 18px 16px;border-radius:26px;animation:dockIn .5s steps(7,end) both}@keyframes dockIn{0%{transform:translateY(130%)}to{transform:none}}#end .end-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;margin-bottom:4px}#end .kicker{margin:0;font-size:.8rem}#end h2{margin:0;font-size:clamp(1.5rem,3.4vw,2.1rem);-webkit-text-stroke-width:5px}#end #endText{margin:0;font-size:1rem}#end .end-act{display:grid;gap:4px;justify-items:center;min-width:210px}#end .big-score{margin:0;font-size:1.05rem;text-align:center}#end .btn{width:auto;min-width:200px;font-size:1.4rem;padding:.4rem 1.4rem .6rem}.stamp{position:absolute;left:50%;top:clamp(150px,26%,300px);translate:-50% 0;rotate:-5deg;white-space:nowrap;pointer-events:none;font-family:var(--font-display);font-size:clamp(2.6rem,9vw,6rem);line-height:1;color:#ff4d4d;-webkit-text-stroke:10px var(--ink);paint-order:stroke fill;filter:drop-shadow(0 6px 0 var(--ink));animation:stampIn .45s steps(6,end) both,stampOut .6s 2.6s ease-in forwards}#end:not(.bad) .stamp{color:#6fd43a}@keyframes stampIn{0%{scale:3;opacity:0}60%{scale:.9;opacity:1}to{scale:1;opacity:1}}@keyframes stampOut{to{opacity:0;translate:-50% -24px}}body:has(#end:not(.hidden)) .hintbar{opacity:0}@media(max-height:640px)and (min-width:761px){#end #endText{display:none}}.brand .rankline{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.lvl-pill{flex:none}.lvl-pill{padding:0 8px;background:var(--yellow);color:var(--ink);border-radius:999px;font-family:var(--font-display);font-size:.78rem;letter-spacing:.04em}.btn[hidden]{display:none}.btn.alt{font-size:1.1rem;padding:.3rem 1rem .5rem;background:#fff;border-width:4px;box-shadow:0 4px 0 var(--ink);animation:none}#intro .btn.alt{margin-top:12px}#end .end-act{grid-template-columns:auto auto;gap:8px 10px}#end .big-score{grid-column:1 / -1}#end .btn{min-width:0;padding-left:1.1rem;padding-right:1.1rem}#end .btn.alt{font-size:1.1rem;padding:.35rem 1rem .5rem}.world.world2{display:none;left:0;translate:none;bottom:var(--raise, 0px);transition:bottom .5s steps(6,end)}.stage[data-level="2"]{background:#a8683a}.stage[data-level="2"] #world{display:none}.stage[data-level="2"] #world2{display:block}.bk{stroke:var(--ink);stroke-width:2.5}.nl{stroke:var(--ink);stroke-width:4;stroke-linejoin:round;stroke-linecap:round}#door2{transform-box:fill-box;transform-origin:left center;transition:transform .4s cubic-bezier(.3,1.3,.5,1)}#door2.open{transform:scaleX(.14)}#vacant2{left:92.1%;top:24.4%;z-index:3;padding:.1em .8em .15em;font-size:max(.7rem,1.15cqi)}#world2 .actor{left:calc(18% + var(--t) * 62%);bottom:6%;width:14%;rotate:3deg}#world2 .actor.entering{animation:enterRestroom .9s ease-in forwards}@keyframes enterRestroom{to{opacity:0;transform:translate(85%) scale(.7)}}.grandpa[data-expr=taunt] .expr-taunt,.grandpa[data-expr=embarrassed] .expr-embarrassed{display:inline}.expr-taunt .tongue{transform-box:fill-box;transform-origin:50% 0;animation:tongue .34s steps(2) infinite}@keyframes tongue{0%{transform:rotate(-7deg)}50%{transform:rotate(7deg) translateY(2px)}}.qmark{font-family:var(--font-display);fill:#ffd23f;stroke:var(--ink);stroke-width:7;paint-order:stroke fill}.grandpa[data-expr=embarrassed] #blush{opacity:.95}.grandpa[data-expr=embarrassed] #mustache{transform:translateY(2px)}.grandpa[data-expr=taunt] #mustache{transform:translateY(-2px)}#world2 .actor.soiled #seat{animation:none}#world2 .actor.soiled #head{animation:embarHead 1.2s steps(2,end) infinite}@keyframes embarHead{0%{transform:rotate(-7deg) translate(-4px)}50%{transform:rotate(-1deg) translate(4px)}}#world2 .actor.soiled .stars{display:none}.npc{position:absolute;pointer-events:none}.npc svg{display:block;width:100%;height:auto;overflow:visible}.npc.reader{left:2%;bottom:7.5%;width:12%;z-index:4}.npc.barista{left:27.5%;bottom:13%;width:24%;z-index:2}.npc.pair{left:56%;bottom:15.5%;width:22%;z-index:3}.steam{animation:steamUp 1.4s steps(4) infinite}@keyframes steamUp{0%{transform:translateY(4px);opacity:0}40%{opacity:.9}to{transform:translateY(-8px);opacity:0}}.n-react,.world2.react .n-calm{display:none}.world2.react .n-react{display:inline}.world2.react .npc svg{animation:npcJolt .16s steps(2) 7}@keyframes npcJolt{0%{transform:translateY(-5px) rotate(-1deg)}50%{transform:translateY(0) rotate(1deg)}}.world2.react .wave{transform-box:fill-box;transform-origin:50% 90%;animation:fan .22s steps(2) infinite}@keyframes fan{0%{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}.world2.react .pinch{animation:pinchShake .3s steps(2) infinite}@keyframes pinchShake{50%{translate:1px -1px}}.world2.react .whiff{animation:stinkRise .9s steps(4) infinite}.world2.react .dropmug{animation:mugDrop .6s steps(6) forwards}@keyframes mugDrop{to{transform:translate(8px,70px) rotate(70deg);opacity:.2}}.npc-bubble{position:absolute;display:none;padding:.05em .6em .18em;background:#fff;border:3.5px solid var(--ink);border-radius:16px;box-shadow:0 3px 0 var(--ink);font-family:var(--font-display);font-size:clamp(.8rem,1.9cqw,1.5rem);color:#c0392b;white-space:nowrap;translate:-50% 0;rotate:var(--br, -4deg)}.b-gross{left:68%;top:-4%;--br: 5deg;color:#4f9d1f}.b-omg{left:90%;top:4%;--br: -6deg}.b-ew{left:22%;top:-8%;--br: -5deg;color:#4f9d1f}.b-smell{left:80%;top:-9%;--br: 4deg}.npc-bubble.mild{left:60%;top:-6%;color:#6b5a8a;font-size:clamp(.7rem,1.4cqw,1.1rem)}.world2.react .npc-bubble:not(.mild){display:block;animation:bubblePop .35s steps(4) both}.world2.react .b-ew{animation-delay:.15s}.world2.react .b-omg{animation-delay:.3s}.world2.react .b-smell{animation-delay:.5s}.world2.sniff:not(.react) .npc-bubble.mild{display:block;animation:bubblePop .3s steps(3) both}@keyframes bubblePop{0%{scale:.2;opacity:0}70%{scale:1.15;opacity:1}to{scale:1;opacity:1}}.smell{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;background:radial-gradient(ellipse 44% 38% at var(--sx, 50%) 78%,rgba(150,214,60,.5),rgba(150,214,60,0) 70%);opacity:0;transition:opacity .8s}.world2.react .smell{opacity:1}@container stage (aspect-ratio < 1){.world{width:max(100cqw,188cqh);translate:-57% 0}}@media(max-width:760px){.hud{grid-template-columns:1fr auto;gap:8px;padding:8px 8px 0}.meters{grid-column:1 / -1;grid-row:2;padding:5px 8px 6px;gap:8px}.gauge{gap:5px}.gauge-label .name{font-size:.74rem}.gauge-label .pct{font-size:.85rem}.brand{padding:4px 12px 6px}.brand h1{font-size:1.5rem;-webkit-text-stroke-width:5px}.brand p{font-size:.74rem}.scores{gap:6px}.score-box{min-width:70px;padding:2px 8px}.score-box strong{font-size:1.25rem}.score-box span{font-size:.6rem}#mute{width:42px;font-size:1.1rem}.badge{width:26px;height:26px;border-width:2.5px;box-shadow:0 2px 0 var(--ink)}.badge svg{width:14px;height:14px}.meter{height:14px;border-width:3px}.gauge-label small{display:none}.gauge-label{font-size:.78rem}.hintbar{bottom:8px;gap:6px}#combo{font-size:.95rem;padding:3px 12px 5px}#hint{font-size:.82rem;padding:4px 12px 5px}.thought{font-size:.92rem;padding:6px 11px 7px}.card{padding:20px 18px 18px}#end .card{grid-template-columns:1fr;padding:10px 14px 14px}#end .end-act{grid-template-columns:1fr 1fr;align-items:center;justify-items:stretch;min-width:0}#end .big-score{text-align:left}#end .btn{min-width:0;font-size:1.1rem;padding:.3rem .6rem .5rem}#end .btn.alt{font-size:1rem}.rankline{gap:4px}#end #endText{font-size:.9rem}.steps li{padding:5px 10px 5px 6px;font-size:.95rem}}@media(max-height:560px){.steps{display:none}.card .lede{margin-bottom:14px}}@media(prefers-reduced-motion:reduce){.cloud,.sun-rays,.car svg{animation:none}.stamp{animation:none;opacity:.9}#end .card,.stage.shake-1,.stage.shake-2,.stage.shake-3{animation:none}}
