.fart-root{position:fixed;inset:0;overflow:hidden;background:#0a0611;color:#f4e3c4;font-family:var(--font-body),"Baloo 2",sans-serif;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;z-index:140}.fart-root:after{content:"";position:absolute;inset:-50%;pointer-events:none;opacity:.05;background-image:repeating-conic-gradient(#fff 0 .0001%,transparent .0002% .05%);background-size:7px 9px;animation:fart-grain .9s steps(3) infinite;z-index:5}@keyframes fart-grain{0%{transform:translate(0)}50%{transform:translate(2%,1%)}to{transform:translate(-1%,2%)}}.fart-stage,.fart-void{position:absolute;inset:0}.fart-void{background:radial-gradient(ellipse at 50% 60%,#140b1e 0,#0a0611 65%)}.fart-speck{position:absolute;width:3px;height:3px;border-radius:50%;background:#f4e3c4;animation:fart-speck-twinkle 4s ease-in-out infinite}@keyframes fart-speck-twinkle{0%,to{opacity:.08}50%{opacity:.4}}.fart-lone-eye{animation:fart-eye-open 1.4s ease-out both;filter:drop-shadow(0 0 22px rgba(183,214,58,.6))}@keyframes fart-eye-open{0%{transform:scaleY(.02);opacity:0}40%{transform:scaleY(.06);opacity:1}55%{transform:scaleY(.02)}to{transform:scaleY(1);opacity:1}}.fart-sd{position:absolute;transition:transform .9s cubic-bezier(.34,1.3,.5,1),opacity .8s ease;will-change:transform}.fart-sd-inner{position:relative;width:100%;height:100%;animation:fart-float 4.2s ease-in-out infinite;transform-origin:50% 88%}@keyframes fart-float{0%,to{transform:translateY(0) scale(1.025,.975)}28%{transform:translateY(-9px) scale(.965,1.04)}50%{transform:translateY(-2px) scale(1.01,.995)}64%{transform:translateY(2px) scale(1.045,.955)}82%{transform:translateY(-3px) scale(.985,1.015)}}.fart-sd img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.fart-sd-emote,.fart-sd-stature{width:100%;height:100%;transform-origin:50% 95%}.fart-sd-stature{transition:transform .7s cubic-bezier(.3,1.5,.5,1)}.emote-puff{animation:fart-e-puff 1.6s cubic-bezier(.3,1.3,.5,1) both}@keyframes fart-e-puff{0%{transform:scale(1)}22%{transform:scale(.9,1.13) translateY(-4px)}62%{transform:scale(.93,1.09) translateY(-3px)}80%{transform:scale(1.06,.95)}to{transform:scale(1)}}.emote-deflate{animation:fart-e-deflate 1.8s ease-out both}@keyframes fart-e-deflate{0%{transform:scale(1)}55%{transform:scale(1.08,.9) translateY(3px)}72%{transform:scale(1.04,.95) translateY(2px)}84%{transform:scale(1.07,.92) translateY(3px)}to{transform:scale(1)}}.emote-smoosh{animation:fart-e-smoosh 1.9s cubic-bezier(.35,1.2,.5,1) both}@keyframes fart-e-smoosh{0%{transform:scale(1) translateY(0)}28%{transform:scale(1.42,1.5) translateY(5%)}44%{transform:scale(1.62,1.3) translateY(8%)}72%{transform:scale(1.6,1.32) translateY(8%)}to{transform:scale(1) translateY(0)}}.emote-startle{animation:fart-e-startle .9s cubic-bezier(.3,1.6,.5,1) both}@keyframes fart-e-startle{0%{transform:scale(1) translate(0)}12%{transform:scale(.8,1.24) translate(2px,-12px)}32%{transform:scale(1.12,.9) translate(7px,2px)}50%{transform:scale(.94,1.07) translate(4px,-2px)}68%{transform:scale(1.05,.96) translate(1px)}to{transform:scale(1) translate(0)}}.emote-wince{animation:fart-e-wince .3s ease-out both}@keyframes fart-e-wince{0%{transform:scale(1)}38%{transform:scale(1.13,.85) translateY(2px)}to{transform:scale(1)}}.emote-gulp{animation:fart-e-gulp .95s ease-in-out both}@keyframes fart-e-gulp{0%{transform:scale(1)}18%{transform:scale(1.06,.94)}40%{transform:scale(.88,1.16) translateY(-5px)}62%{transform:scale(1.17,.83) translateY(5px)}80%{transform:scale(.96,1.05)}to{transform:scale(1)}}.emote-impact{animation:fart-e-impact .85s cubic-bezier(.3,1.6,.5,1) both}@keyframes fart-e-impact{0%{transform:scale(1.38,.6) translateY(7%)}30%{transform:scale(.84,1.17) translateY(-4%)}55%{transform:scale(1.12,.9) translateY(2%)}76%{transform:scale(.95,1.04)}to{transform:scale(1)}}.emote-toot-lean{animation:fart-e-toot 2.1s ease-in-out both;transform-origin:22% 96%}@keyframes fart-e-toot{0%{transform:skewX(0) rotate(0) scale(1)}22%{transform:skewX(-7deg) rotate(-7deg) scale(1.02,.96)}58%{transform:skewX(-8deg) rotate(-8deg) scale(1.02,.96) translateY(-2px)}72%{transform:skewX(3deg) rotate(2deg) scale(1.07,.93)}86%{transform:skewX(-1deg) rotate(-1deg) scale(.98,1.02)}to{transform:skewX(0) rotate(0) scale(1)}}.emote-push-react{animation:fart-e-push .7s cubic-bezier(.3,1.6,.5,1) both}@keyframes fart-e-push{0%{transform:translate(0) scale(1)}32%{transform:translate(var(--push-dx,8px),var(--push-dy,0)) scale(1.08,.92)}64%{transform:translate(calc(var(--push-dx, 8px) * -.25)) scale(.96,1.04)}to{transform:translate(0) scale(1)}}.fart-sd-inner.sd-frozen{animation:none}.fart-sd-inner.sd-trembling{animation:fart-float 4.2s ease-in-out infinite,fart-e-tremble .09s linear infinite}@keyframes fart-e-tremble{0%,to{margin-left:0;margin-top:0}25%{margin-left:1.3px;margin-top:-.8px}50%{margin-left:-1.1px;margin-top:.9px}75%{margin-left:.8px;margin-top:.5px}}.fart-sd-inner.sd-showman{animation:fart-e-showman 2.3s ease-in-out infinite}@keyframes fart-e-showman{0%,to{transform:translateX(-6px) rotate(-2deg) scale(1.01,.99)}24%{transform:translateX(0) rotate(0) scale(.99,1.02) translateY(-4px)}50%{transform:translateX(7px) rotate(2.2deg) scale(1.01,.99)}74%{transform:translateX(0) rotate(0) scale(.99,1.02) translateY(-4px)}}.fart-sd.pose-lean-in .fart-sd-inner{transform:scale(1.12) translateY(3%);animation:none}.fart-sd.pose-point .fart-sd-inner{animation:fart-e-accuse 2.6s cubic-bezier(.3,1.4,.5,1) forwards}@keyframes fart-e-accuse{0%{transform:scale(1) translateX(0) rotate(0)}14%{transform:scale(1.2,.94) translateX(9%) rotate(-6deg)}55%{transform:scale(1.17,.95) translateX(8%) rotate(-5.5deg)}to{transform:scale(1.05,.99) translateX(3%) rotate(-3deg)}}.fart-sd.pose-faceplant .fart-sd-inner{animation:fart-e-faceplant-twitch 2.6s ease-in-out both}@keyframes fart-e-faceplant-twitch{0%,55%{transform:rotate(0)}63%{transform:rotate(2.2deg) translateX(2px)}70%{transform:rotate(-1.2deg)}77%{transform:rotate(1.6deg) translateX(1px)}84%,to{transform:rotate(0)}}.fart-sd.pose-recoil .fart-sd-inner{transform:scale(1.05,.92) translateX(3%) rotate(3deg);animation:none}.fart-sd.pose-lie{transform:rotate(-84deg) translateY(18%)}.fart-sd.pose-sit{transform:rotate(0deg)}.fart-sd.pose-stand .fart-sd-inner{transform:scale(.97,1.06)}.fart-sd.pose-faceplant{transform:rotate(101deg) translateY(6%)}.fart-sd.pose-raise-finger .fart-sd-inner{transform:rotate(-4deg) scale(1.02)}.fart-sd.sd-jelly .fart-sd-inner{animation:fart-jelly .7s ease-out,fart-float 4.2s ease-in-out .7s infinite}@keyframes fart-jelly{0%{transform:scale(1.15,.85)}35%{transform:scale(.92,1.1)}65%{transform:scale(1.05,.96)}to{transform:scale(1)}}.fart-sd.sd-blast{animation:fart-blast-off .9s cubic-bezier(.5,-.2,.9,.6) both}@keyframes fart-blast-off{0%{transform:translate(0) rotate(0)}to{transform:translate(90vw,-110vh) rotate(2turn);opacity:.4}}.fart-sd.sd-slip{animation:fart-slip .7s cubic-bezier(.3,1.4,.6,1) both}@keyframes fart-slip{0%{transform:rotate(0) translateY(0)}30%{transform:rotate(-14deg) translateY(-9vh)}to{transform:rotate(-96deg) translateY(4vh)}}.fart-eye{position:absolute;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 45% 40%,#f5f7e4 0,#e7edcb 60%,#d5e0af 100%);border:3px solid #a8cc2e;box-shadow:inset 0 0 6px rgba(40,60,8,.35),0 0 4px rgba(20,30,4,.5)}.fart-pupil{width:52%;height:55%;top:24%;background:radial-gradient(circle at 50% 48%,#141a08 0 46%,#0e1406 50%,#b7d63a 53%,#8fb32a 100%);box-shadow:0 0 3px rgba(20,26,8,.5);transition:transform .35s cubic-bezier(.4,1.4,.6,1),width .3s,height .3s}.fart-pupil,.fart-pupil:after{position:absolute;left:24%;border-radius:50%}.fart-pupil:after{content:"";width:26%;height:24%;top:18%;background:hsla(0,0%,100%,.9)}.fart-lid{position:absolute;left:-6%;width:112%;height:102%;background:linear-gradient(#69a41f,#7fb52a);border-bottom:3px solid #2c4a08;transition:transform .22s ease;z-index:2}.fart-lid-top{top:0;transform:translateY(-101%)}.fart-lid-bottom{bottom:0;transform:translateY(101%);border-bottom:none;border-top:3px solid #2c4a08}.fart-cloud{position:absolute;transition:transform 1.1s cubic-bezier(.35,1.2,.5,1),opacity .8s ease,left 1.3s ease,top 1.3s ease;will-change:transform;filter:drop-shadow(0 0 18px rgba(126,217,87,.35))}.fart-cloud-inner{animation:fart-cloud-bob 3.6s ease-in-out infinite}.fart-drift{animation:fart-drift 7s ease-in-out infinite alternate}.fart-drift-lag{animation:fart-drift 7s ease-in-out .55s infinite alternate}@keyframes fart-drift{0%{margin-left:0}45%{margin-left:-6vw}to{margin-left:7vw}}@keyframes fart-cloud-bob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(2deg)}}.fart-cloud.cloud-flying{animation:fart-cloud-fly 1.15s ease-in-out both}@keyframes fart-cloud-fly{0%{transform:translate(0) scale(1);opacity:1}40%{transform:translate(var(--fly-x,60vw),var(--fly-y,-20vh)) scale(.7);opacity:0}60%{transform:translate(var(--fly-x,60vw),var(--fly-y,-20vh)) scale(.7);opacity:0}to{transform:translate(0) scale(1);opacity:1}}.fart-arm{transform-origin:30% 45%;animation:fart-arm-grab 1.6s ease-in-out infinite}.fart-arm-right{transform-origin:78% 45%;animation-delay:-.8s}@keyframes fart-arm-grab{0%,to{transform:rotate(-4deg)}50%{transform:rotate(5deg) translateY(2px)}}.fart-cloud.cloud-snapback{animation:fart-cloud-snap .7s cubic-bezier(.3,2,.4,1) both}@keyframes fart-cloud-snap{0%{transform:translate(-38vw,-6vh) scaleX(1.6)}55%{transform:translate(6vw) scaleX(.8)}to{transform:translate(0) scaleX(1)}}.fart-nose{position:absolute;right:-30%;top:12%;transition:right 1s cubic-bezier(.3,1.2,.5,1)}.fart-nose.nose-in{right:4%}.fart-nose.nose-in .fart-nose-inner{animation:fart-nose-sniff 1.1s ease-in-out infinite}@keyframes fart-nose-sniff{0%,to{transform:scale(1)}30%{transform:scale(1.07,.95) translateX(-6px)}60%{transform:scale(.96,1.05)}}.fart-source-label{position:absolute;transform:translate(-50%,-130%);background:rgba(126,217,87,.14);border:2px solid #7ed957;border-radius:14px 18px 15px 17px;color:#b7f39a;font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:.8rem;letter-spacing:.12em;padding:.4rem .7rem;animation:fart-label-pop .4s cubic-bezier(.3,2,.4,1) both;white-space:nowrap;z-index:30}.fart-source-label:after{content:"";position:absolute;left:50%;bottom:-12px;transform:translateX(-50%);border:7px solid transparent;border-top-color:#7ed957}@keyframes fart-label-pop{0%{transform:translate(-50%,-130%) scale(0)}to{transform:translate(-50%,-130%) scale(1)}}.fart-show{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 20%,rgba(255,194,75,.12),transparent 55%),repeating-linear-gradient(90deg,#23103a 0 46px,#2c1548 46px 92px);animation:fart-show-pop .5s cubic-bezier(.3,1.8,.4,1) both;transform-origin:50% 100%}@keyframes fart-show-pop{0%{transform:scale(.001) rotate(8deg)}70%{transform:scale(1.06) rotate(-2deg)}to{transform:scale(1) rotate(0)}}.fart-show-sign{position:absolute;top:max(3.5rem,calc(env(safe-area-inset-top, 0px) + 2.6rem));left:50%;transform:translateX(-50%) rotate(-2.5deg);font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:clamp(1.6rem,6.5vw,3.2rem);color:#ffc24b;text-shadow:3px 3px 0 #0d0703,-2px 2px 0 #0d0703,2px -2px 0 #0d0703,6px 7px 0 rgba(226,62,78,.55);animation:fart-sign-swing 3.4s ease-in-out infinite;white-space:nowrap;z-index:12}@keyframes fart-sign-swing{0%,to{transform:translateX(-50%) rotate(-2.5deg)}50%{transform:translateX(-50%) rotate(1.6deg)}}.fart-starburst{position:absolute;z-index:1;animation:fart-burst-spin 24s linear infinite;opacity:.5}@keyframes fart-burst-spin{to{transform:rotate(1turn)}}.fart-podium{position:absolute;bottom:0;width:min(46vw,260px);height:min(24vh,190px);background:linear-gradient(#8c5a2b,#6b421d);border:4px solid #0d0703;border-bottom:none;border-radius:18px 22px 0 0;z-index:11}.fart-podium:after{content:"🥭 NAME THAT SMELL";position:absolute;inset:18% 8% auto 8%;text-align:center;font-family:var(--font-display),"Luckiest Guy",sans-serif;color:#ffc24b;font-size:clamp(.6rem,2.4vw,.95rem);letter-spacing:.08em;border:3px solid #0d0703;border-radius:12px 14px 13px 15px;background:#23103a;padding:.45rem .2rem}.fart-bowtie{position:absolute;z-index:3;animation:fart-bowtie-in .5s cubic-bezier(.3,2,.4,1) both}@keyframes fart-bowtie-in{0%{transform:scale(0) rotate(-120deg)}to{transform:scale(1) rotate(0)}}.fart-confetti{position:absolute;width:10px;height:14px;top:-20px;animation:fart-confetti-fall 2.8s ease-in both;z-index:13}@keyframes fart-confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(105vh) rotate(660deg);opacity:.6}}.fart-bag{position:absolute;z-index:12;transition:transform .5s cubic-bezier(.3,1.6,.4,1)}.fart-bag.bag-in{animation:fart-bag-drop .6s cubic-bezier(.3,1.5,.5,1) both}@keyframes fart-bag-drop{0%{transform:translateY(-70vh) rotate(-14deg)}70%{transform:translateY(3vh) rotate(5deg)}to{transform:translateY(0) rotate(0)}}.fart-bag.bag-shake{animation:fart-bag-shake .5s ease-in-out infinite}@keyframes fart-bag-shake{0%,to{transform:translateX(0) rotate(0)}25%{transform:translateX(-6px) rotate(-4deg)}75%{transform:translateX(6px) rotate(4deg)}}.fart-bag.bag-glow{filter:drop-shadow(0 0 26px rgba(255,194,75,.8))}.fart-bag.bag-peek{transform:rotate(-9deg) scale(1.04,.97)}.fart-bag.bag-fart{animation:fart-bag-toot .5s ease-out}@keyframes fart-bag-toot{0%{transform:scale(1)}30%{transform:scale(1.14,.82)}60%{transform:scale(.92,1.1)}to{transform:scale(1)}}.fart-bag.bag-slam{animation:fart-bag-slam .35s ease-out both}@keyframes fart-bag-slam{0%{transform:scale(1.05,1.2)}to{transform:scale(1.05,.75)}}.fart-bag.bag-legs{animation:fart-bag-run 1.4s ease-in .35s both}@keyframes fart-bag-run{0%{transform:translateX(0) rotate(0)}15%{transform:translateX(-3vw) rotate(-6deg)}to{transform:translateX(120vw) rotate(10deg)}}.fart-heart{position:absolute;font-size:2rem;animation:fart-heart-float 1.6s ease-out both;z-index:14}@keyframes fart-heart-float{0%{transform:translateY(0) scale(0);opacity:0}30%{transform:translateY(-16px) scale(1.2);opacity:1}to{transform:translateY(-70px) scale(.9);opacity:0}}.fart-stalls{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 90%,#1c1030 0,#0a0611 70%)}.fart-stalls:before{content:"";position:absolute;left:0;right:0;bottom:16vh;height:3px;background:linear-gradient(90deg,transparent,rgba(126,217,87,.35),transparent)}.fart-stall{position:absolute;bottom:16vh;width:min(26vw,168px);height:min(34vh,270px);animation:fart-stall-rise 1s cubic-bezier(.3,1.4,.5,1) both;transform-origin:50% 100%}@keyframes fart-stall-rise{0%{transform:translateY(105%)}80%{transform:translateY(-3%)}to{transform:translateY(0)}}.fart-stall-door{position:absolute;inset:0;border:4px solid #0d0703;border-radius:46% 46% 8px 8px/22% 22% 8px 8px;transition:transform .6s ease,box-shadow .6s ease,filter .6s ease;transform-origin:0 50%}.fart-stall-plaque{position:absolute;top:14%;left:50%;transform:translateX(-50%) rotate(-2deg);width:84%;text-align:center;font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:clamp(.62rem,2.1vw,.95rem);letter-spacing:.07em;color:#f4e3c4;background:rgba(13,7,3,.55);border:3px solid #0d0703;border-radius:12px 15px 13px 16px;padding:.4rem .15rem}.fart-stall-knob{position:absolute;right:10%;top:52%;width:12px;height:12px;border-radius:50%;background:#ffc24b;border:3px solid #0d0703}.fart-stall.rattling{animation:fart-stall-rattle .4s ease-in-out 2}@keyframes fart-stall-rattle{0%,to{transform:translateX(0)}25%{transform:translateX(-5px) rotate(-1deg)}75%{transform:translateX(5px) rotate(1deg)}}.fart-stall.ballooning .fart-stall-door{animation:fart-stall-balloon 2.4s ease-in both}@keyframes fart-stall-balloon{0%{transform:scale(1);border-radius:46% 46% 8px 8px/22% 22% 8px 8px}to{transform:scale(1.55,1.4);border-radius:50%}}.fart-stall.glowing .fart-stall-door{box-shadow:0 0 34px rgba(255,194,75,.65),inset 0 0 22px rgba(255,194,75,.3);animation:fart-door-breathe 2.4s ease-in-out infinite}@keyframes fart-door-breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.35)}}.fart-stall.opened .fart-stall-door{transform:perspective(700px) rotateY(-104deg)}.fart-warm-light{position:absolute;inset:4% 6%;border-radius:42% 42% 8px 8px/20% 20% 8px 8px;background:radial-gradient(circle at 50% 40%,#ffd98a 0,#ff9d2e 55%,#e0631b 100%);opacity:0;transition:opacity 1.2s ease;filter:blur(2px)}.fart-stall.glowing .fart-warm-light,.fart-stall.opened .fart-warm-light{opacity:.9}.fart-explosion{position:absolute;font-size:clamp(4rem,18vw,9rem);animation:fart-explode-star .7s cubic-bezier(.2,1.8,.4,1) both;z-index:20;filter:drop-shadow(0 0 30px rgba(255,194,75,.8))}@keyframes fart-explode-star{0%{transform:scale(0) rotate(-40deg)}60%{transform:scale(1.35) rotate(10deg)}to{transform:scale(1) rotate(0)}}.fart-tp{position:absolute;top:-12vh;width:26px;height:34px;background:#f4efe2;border:3px solid #0d0703;border-radius:6px 8px 7px 9px;animation:fart-tp-fall 3.4s ease-in both;z-index:19}@keyframes fart-tp-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(120vh) rotate(540deg);opacity:.8}}.fart-monkey{position:absolute;z-index:13;transition:transform .8s ease}.fart-monkey.monkey-thrown{animation:fart-monkey-arc 1s cubic-bezier(.3,.9,.6,1.4) both}@keyframes fart-monkey-arc{0%{transform:translate(-16vw,-40vh) rotate(-260deg);opacity:0}to{transform:translate(0) rotate(0);opacity:1}}.fart-monkey.monkey-walkoff{animation:fart-monkey-strut 2.4s ease-in both}@keyframes fart-monkey-strut{0%{transform:translateX(0) rotate(0)}20%{transform:translateX(8vw) rotate(4deg) translateY(-8px)}40%{transform:translateX(20vw) rotate(-3deg)}60%{transform:translateX(38vw) rotate(4deg) translateY(-8px)}to{transform:translateX(120vw) rotate(0)}}.fart-field{position:absolute;inset:0;background:linear-gradient(#1a0f2e,#241543 55%,#1d1426);animation:fart-field-in 1.6s ease both}@keyframes fart-field-in{0%{opacity:0}to{opacity:1}}.fart-field-ground{position:absolute;left:-12%;right:-12%;bottom:-9vh;height:36vh;background:linear-gradient(#3d2711,#241608);border-radius:50% 50% 0 0/60% 60% 0 0;border-top:5px solid #0d0703}.fart-bush{position:absolute;border-radius:48% 52% 46% 54%/55% 50% 50% 45%;background:radial-gradient(circle at 40% 30%,#2f5d1c,#1d3d11);border:4px solid #0d0703}.fart-bush .mango-dot{position:absolute;width:16%;height:18%;border-radius:55% 45% 60% 40%;background:radial-gradient(circle at 35% 30%,#ffc24b,#ff9d2e 70%);border:2.5px solid #0d0703}.fart-judge{position:absolute;animation:fart-judge-in .7s cubic-bezier(.3,1.7,.4,1) both}@keyframes fart-judge-in{0%{transform:scale(0) rotate(30deg)}to{transform:scale(1) rotate(0)}}.fart-judge-inner{animation:fart-judge-bob 3s ease-in-out infinite}@keyframes fart-judge-bob{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-3px)}}.fart-ground-bag{position:absolute;z-index:9}.fart-black{position:absolute;inset:0;background:#000}.fart-reflect-card{width:min(92vw,460px);touch-action:manipulation;background:rgba(20,12,34,.9);border:3px solid #7ed957;border-radius:26px 20px 28px 18px/20px 26px 18px 28px;padding:1.1rem 1.2rem calc(1.1rem + env(safe-area-inset-bottom, 0px) * .3);box-shadow:0 0 40px rgba(126,217,87,.14)}.fart-reflect-input{width:100%;min-height:5.2rem;resize:none;background:rgba(0,0,0,.45);border:2.5px solid rgba(126,217,87,.4);border-radius:14px 18px 15px 17px;color:#f4e3c4;font-family:inherit;font-size:1rem;padding:.7rem .8rem;outline:none;-moz-user-select:text;user-select:text;-webkit-user-select:text}.fart-reflect-input:focus-visible{border-color:#7ed957;box-shadow:0 0 0 3px rgba(126,217,87,.25)}.fart-plane{position:absolute;left:50%;top:62%;z-index:25;animation:fart-plane-fly 2.4s cubic-bezier(.4,0,.6,1) both;filter:drop-shadow(0 0 16px rgba(126,217,87,.7))}@keyframes fart-plane-fly{0%{transform:translate(-50%) rotate(0) scale(1);opacity:0}15%{transform:translate(-50%,-4vh) rotate(-8deg) scale(1);opacity:1}to{transform:translate(26vw,-80vh) rotate(14deg) scale(.4);opacity:0}}.fart-dialogue{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 1.1rem);transform:translateX(-50%);width:min(92vw,620px);z-index:40;text-align:center;pointer-events:none}.fart-speaker{display:inline-block;font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:.72rem;letter-spacing:.22em;color:#7ed957;margin-bottom:.35rem;text-shadow:2px 2px 0 #0d0703}.fart-line{font-size:clamp(1.05rem,4.2vw,1.35rem);line-height:1.45;font-weight:600;color:#f7ecd8;text-shadow:0 2px 8px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.9);min-height:3.2em}.fart-line.muffled{color:#b9a8d6;font-style:italic;opacity:.85}.fart-cue{position:absolute;left:50%;transform:translateX(-50%);bottom:100%;margin-bottom:.5rem;font-size:.78rem;letter-spacing:.06em;color:#9ac97e;background:rgba(13,7,3,.65);border:2px solid rgba(126,217,87,.35);border-radius:999px;padding:.2rem .75rem;white-space:nowrap;animation:fart-cue-in .3s ease both}@keyframes fart-cue-in{0%{opacity:0;transform:translateX(-50%) translateY(6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.fart-tap-hint{font-size:.7rem;letter-spacing:.2em;color:hsla(39,69%,86%,.4);margin-top:.5rem;animation:fart-speck-twinkle 2.6s ease-in-out infinite}.fart-title-card{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem;z-index:45;background:rgba(5,3,9,.82);animation:fart-field-in .6s ease both}.fart-title-card h2{font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:clamp(1.5rem,6.4vw,2.7rem);color:#ffc24b;text-shadow:3px 3px 0 #0d0703,6px 7px 0 rgba(126,217,87,.35);line-height:1.25;max-width:17ch}.fart-title-card p{margin-top:.9rem;font-size:clamp(1rem,4vw,1.35rem);color:#d9c8f2;font-weight:600;max-width:30ch}.fart-btn{position:relative;font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:clamp(.95rem,3.6vw,1.15rem);letter-spacing:.05em;color:#241102;--btn-hi:#ffd98a;--btn-lo:#e0631b;--btn-edge:#8a3c0c;--btn-glow:rgba(255,194,75,.45);background:radial-gradient(ellipse 120% 70% at 50% -12%,hsla(0,0%,100%,.55),hsla(0,0%,100%,0) 55%),linear-gradient(172deg,var(--btn-hi) 0,var(--btn-lo) 100%);border:2px solid hsla(0,0%,100%,.35);border-radius:44% 56% 52% 48%/58% 44% 56% 42%;padding:.85rem 1.4rem;min-height:52px;min-width:64px;cursor:pointer;transition:transform .12s cubic-bezier(.3,1.8,.5,1),box-shadow .12s ease,filter .2s ease;box-shadow:0 6px 0 var(--btn-edge),0 10px 22px var(--btn-glow),0 0 0 2px rgba(13,7,3,.85),inset 0 2px 6px hsla(0,0%,100%,.55),inset 0 -8px 14px rgba(70,25,4,.35);text-shadow:0 1px 0 hsla(0,0%,100%,.35);animation:fart-btn-wobble 5.2s ease-in-out infinite;touch-action:manipulation}.fart-btn:nth-child(2n){animation-delay:-1.7s;border-radius:55% 45% 47% 53%/45% 57% 43% 55%}.fart-btn:nth-child(3n){animation-delay:-3.1s;border-radius:48% 52% 58% 42%/52% 46% 54% 48%}@keyframes fart-btn-wobble{0%,to{transform:rotate(-1.1deg)}50%{transform:rotate(1.3deg) translateY(-2px)}}.fart-btn:hover{filter:brightness(1.12) saturate(1.1)}.fart-btn:active{transform:translateY(5px) scale(.97,.94);box-shadow:0 1px 0 var(--btn-edge),0 3px 10px var(--btn-glow),0 0 0 2px rgba(13,7,3,.85),inset 0 2px 8px rgba(70,25,4,.45)}.fart-btn:focus-visible{outline:3px solid #7ed957;outline-offset:4px}.fart-btn.btn-green{--btn-hi:#c4f39a;--btn-lo:#57b32e;--btn-edge:#2c6414;--btn-glow:rgba(126,217,87,.45);color:#0d2402}.fart-btn.btn-purple{--btn-hi:#d3b5ff;--btn-lo:#7d4ee8;--btn-edge:#452587;--btn-glow:rgba(154,108,255,.5);color:#f2eaff;text-shadow:0 1px 2px rgba(20,6,31,.6)}.fart-btn.btn-ghost{--btn-hi:#2c1c4a;--btn-lo:#140c22;--btn-edge:#07030e;--btn-glow:rgba(126,217,87,.25);background:radial-gradient(ellipse 120% 70% at 50% -12%,rgba(126,217,87,.25),rgba(126,217,87,0) 55%),linear-gradient(172deg,var(--btn-hi) 0,var(--btn-lo) 100%);border-color:rgba(126,217,87,.5);color:#d9f7c4;text-shadow:0 0 8px rgba(126,217,87,.5)}.fart-choice-panel{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom, 0px) + 1rem);transform:translateX(-50%);width:min(94vw,560px);display:flex;flex-direction:column;gap:.65rem;z-index:42;animation:fart-choice-in .45s cubic-bezier(.3,1.5,.5,1) both}@keyframes fart-choice-in{0%{opacity:0;transform:translateX(-50%) translateY(30px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.fart-choice-prompt{text-align:center;font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:clamp(1.2rem,5vw,1.7rem);color:#7ed957;text-shadow:2px 3px 0 #0d0703;margin-bottom:.2rem}.fart-choice-grid{display:flex;flex-direction:column;gap:.65rem}@media (min-width:640px){.fart-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}}.fart-hold-ring{position:absolute;z-index:30;display:flex;align-items:center;justify-content:center}.fart-hold-word{position:absolute;font-family:var(--font-display),"Luckiest Guy",sans-serif;color:hsla(39,69%,86%,.9);text-shadow:2px 2px 0 #0d0703;animation:fart-word-rise 1.4s ease both;white-space:nowrap}@keyframes fart-word-rise{0%{opacity:0;transform:translateY(14px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.fart-hud{right:calc(env(safe-area-inset-right, 0px) + .6rem)}.fart-hud,.fart-hud-left{position:absolute;top:calc(env(safe-area-inset-top, 0px) + .6rem);display:flex;gap:.45rem;z-index:50}.fart-hud-left{left:calc(env(safe-area-inset-left, 0px) + .6rem)}.fart-chip{background:rgba(13,7,3,.7);border:2.5px solid rgba(126,217,87,.5);border-radius:46% 54% 50% 50%/55% 45% 55% 45%;color:#cfe8b8;font-size:1rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s ease}.fart-chip:active{transform:scale(.88)}.fart-chip:focus-visible{outline:3px solid #7ed957;outline-offset:2px}.fart-chip.text-chip{width:auto;padding:0 .8rem;font-size:.72rem;letter-spacing:.12em;font-family:var(--font-display),"Luckiest Guy",sans-serif}.fart-settings{position:absolute;top:calc(env(safe-area-inset-top, 0px) + 3.6rem);right:calc(env(safe-area-inset-right, 0px) + .6rem);width:min(86vw,300px);background:rgba(16,9,28,.96);border:3px solid #7ed957;border-radius:22px 18px 24px 16px;padding:1rem;z-index:55;display:flex;flex-direction:column;gap:.8rem;animation:fart-choice-in .3s ease both;transform:none}@keyframes fart-settings-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fart-settings label{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.9rem;color:#e7dcc8}.fart-settings input[type=range]{accent-color:#7ed957;width:130px}.fart-toggle{width:52px;height:28px;border-radius:999px;border:2.5px solid #0d0703;background:#3a2c52;position:relative;cursor:pointer;transition:background .2s ease;flex-shrink:0}.fart-toggle:after{content:"";position:absolute;top:1px;left:2px;width:20px;height:20px;border-radius:50%;background:#f4e3c4;border:2px solid #0d0703;transition:transform .18s cubic-bezier(.3,1.6,.5,1)}.fart-toggle[aria-checked=true]{background:#7ed957}.fart-toggle[aria-checked=true]:after{transform:translateX(23px)}.fart-toggle:focus-visible{outline:3px solid #7ed957;outline-offset:2px}.fart-end{position:absolute;inset:0;touch-action:pan-y;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:calc(env(safe-area-inset-top, 0px) + 1rem) 1rem calc(env(safe-area-inset-bottom, 0px) + 1rem);z-index:44;background:radial-gradient(ellipse at 50% 30%,#1c1030 0,#0a0611 70%);overflow-y:auto}.fart-end-card{width:min(94vw,430px);background:rgba(20,12,34,.85);border:3.5px solid #ffc24b;border-radius:28px 20px 26px 22px/22px 28px 20px 26px;padding:1rem 1.1rem;text-align:center;box-shadow:0 0 34px rgba(255,194,75,.15)}.fart-end-title{font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:clamp(1.3rem,5.6vw,1.9rem);color:#ffc24b;text-shadow:3px 3px 0 #0d0703}.fart-gate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;text-align:center;padding:1.5rem;z-index:58;background:radial-gradient(ellipse at 50% 55%,#120a20 0,#050309 70%)}.fart-gate h1{font-family:var(--font-display),"Luckiest Guy",sans-serif;font-size:clamp(1.7rem,7.5vw,3.1rem);color:#7ed957;text-shadow:3px 3px 0 #0d0703,6px 7px 0 rgba(255,194,75,.3);line-height:1.2;max-width:14ch}.fart-rm *,.fart-rm :after,.fart-rm :before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}@media (prefers-reduced-motion:reduce){.fart-root *,.fart-root :after,.fart-root :before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}