@font-face{font-family:Manrope;src:url('/fonts/manrope.woff2') format('woff2');font-display:swap;font-weight:200 900}
:root{font-family:Manrope,system-ui,sans-serif;color:oklch(.97 .025 95);background:oklch(.31 .05 174);font-synthesis:none;-webkit-font-smoothing:antialiased;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default}button{touch-action:manipulation}button:active{transform:scale(.96)}[hidden]{display:none!important}#game{position:relative;isolation:isolate;width:100%;height:100svh;min-height:700px;overflow:hidden;background:oklch(.45 .06 173)}#world,.vignette{position:absolute;inset:0;width:100%;height:100%}#world{touch-action:none}.vignette{pointer-events:none;background:linear-gradient(180deg,oklch(.2 .04 174/.68),transparent 36%,transparent 61%,oklch(.22 .05 173/.95));z-index:1}.topbar{position:absolute;top:max(18px,env(safe-area-inset-top));left:22px;right:22px;display:flex;justify-content:space-between;align-items:center;z-index:8}.brand{color:inherit;text-decoration:none;font-weight:850;letter-spacing:-1px;font-size:24px;display:flex;align-items:center;gap:5px}.brand-symbol{display:inline-grid;place-items:center;background:oklch(.91 .16 94);border-radius:6px;color:oklch(.25 .06 172);width:16px;height:27px;font-size:23px;font-style:italic;margin-right:3px}.brand-dot{font-size:10px;align-self:flex-start;margin:5px 0}.top-actions{display:flex;gap:8px}.icon-button{border:1px solid oklch(1 0 0/.23);background:oklch(.25 .05 172/.65);border-radius:50%;width:43px;height:43px;font-size:21px;font-weight:800}.intro{position:absolute;z-index:2;top:94px;left:16px;right:16px;text-align:center;pointer-events:none}.eyebrow{font-size:10px;font-weight:850;letter-spacing:1.65px;color:oklch(.9 .15 91)}h1{font-family:Impact,'Arial Black',sans-serif;position:relative;font-size:clamp(75px,20vw,104px);font-style:italic;letter-spacing:-4px;line-height:.96;transform:rotate(-5deg);margin:15px 0 8px;text-shadow:0 6px 0 oklch(.23 .05 173),3px 0 oklch(.23 .05 173),-3px 0 oklch(.23 .05 173)}h1>span:not(.title-bug){color:oklch(.9 .16 90)}.title-bug{font-size:40px;position:absolute;top:-13px;transform:rotate(25deg);color:oklch(.83 .15 37);margin-left:-6px}.tagline{font-weight:600;font-size:14px;letter-spacing:.5px;margin:17px 0}.camp-label{position:absolute;top:40%;left:22px;z-index:2;font-size:8px;font-weight:800;letter-spacing:1.4px;writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;gap:8px;color:oklch(.91 .04 106/.8)}.camp-label>span:last-child{display:none}.live-dot{width:6px;height:6px;border-radius:50%;background:oklch(.9 .15 95)}.bottom-panel{position:absolute;bottom:max(45px,calc(env(safe-area-inset-bottom) + 26px));left:20px;right:20px;max-width:500px;margin:auto;z-index:5}.choose-label{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.1px;font-weight:850;margin-bottom:10px;color:oklch(.89 .04 111)}#best-label{opacity:.75}.characters{display:flex;gap:7px;margin-bottom:13px}.character{position:relative;display:flex;flex:1;align-items:center;flex-direction:column;gap:7px;padding:10px 4px;border:1px solid oklch(1 0 0/.15);border-radius:14px;background:oklch(.26 .05 175/.8);min-width:0}.character.selected{border-color:oklch(.9 .15 95);background:oklch(.39 .055 168)}.character b{display:block;font-size:11px;letter-spacing:-.4px}.character small{display:none}.character i{display:none;position:absolute;top:5px;right:6px;color:oklch(.9 .15 95);font-size:10px}.character.selected i{display:block}.portrait{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;font-size:20px;font-weight:900;background:oklch(.81 .09 59);color:oklch(.35 .08 41);border:2px solid oklch(1 0 0/.1)}.auntie{background:oklch(.64 .15 42);color:oklch(.95 .01 90)}.grandpa{background:oklch(.85 .015 95);color:oklch(.37 .05 170)}.primary{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;border:0;border-radius:17px;background:oklch(.9 .16 92);color:oklch(.25 .055 171);padding:19px 23px;min-height:65px;font-weight:900;letter-spacing:.2px;box-shadow:0 5px 0 oklch(.62 .11 89),0 8px 24px oklch(.15 .02 170/.2);font-size:16px;user-select:none;-webkit-user-select:none}.primary>span:last-child{font-size:27px;line-height:1}.start-hint{text-align:center;font-size:10px;line-height:1.5;color:oklch(.87 .025 150);margin:15px 0 0}footer{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:15px;right:15px;text-align:center;font-size:8px;letter-spacing:.2px;color:oklch(.8 .025 160);z-index:4}.bubble{position:absolute;z-index:4;left:50%;top:33%;transform:translateX(-50%) rotate(3deg);background:oklch(.97 .024 95);color:oklch(.26 .04 173);padding:10px 15px;border-radius:14px 14px 14px 3px;font-size:12px;font-weight:850;max-width:280px;width:max-content;text-align:center;box-shadow:0 3px 0 oklch(.22 .04 170/.25);pointer-events:none}.bubble:after{content:'';position:absolute;bottom:-8px;left:30%;border-width:9px 9px 0 0;border-style:solid;border-color:oklch(.97 .024 95) transparent transparent transparent}.hud{position:absolute;z-index:3;top:87px;left:23px;right:23px;max-width:480px;margin:auto}.score-row{display:flex;justify-content:space-between;align-items:center}.micro,.wave>span{display:block;font-size:9px;font-weight:850;letter-spacing:1.2px}.score-row strong{font-size:34px;font-weight:850;line-height:1.35;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.wave{text-align:right}.wave strong{font-size:24px}.itch-row{display:flex;justify-content:space-between;margin:8px 0;font-size:9px;font-weight:850;letter-spacing:1px}.itch-row strong{color:oklch(.91 .15 93)}.itch-meter{height:12px;border-radius:20px;background:oklch(.15 .025 170/.55);padding:3px;box-shadow:inset 0 1px 2px oklch(0 0 0/.2)}.itch-meter i{display:block;border-radius:20px;width:0;height:100%;background:oklch(.8 .16 144);transition:width .12s linear}.playing .bubble{top:27%;font-size:11px}.targets{position:absolute;inset:0;z-index:3;pointer-events:none}.bite-target{position:absolute;border:2px solid oklch(.99 .01 85);border-radius:50%;width:52px;height:52px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;display:grid;place-items:center;background:oklch(.64 .21 27/.88);font-weight:900;font-size:17px;pointer-events:auto;transform:translate(-50%,-50%);padding:0}.bite-target.bleeding{background:oklch(.43 .19 26)}.bite-target:active{transform:translate(-50%,-50%) scale(.96)}.play-panel{bottom:max(43px,calc(env(safe-area-inset-bottom) + 24px))}.target-line{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:850;margin-bottom:9px}.target-line>b{color:oklch(.9 .16 95);font-size:22px;letter-spacing:-1px}.play-panel{pointer-events:none;max-width:390px}.soothe-status{display:flex;align-items:center;justify-content:center;gap:14px;padding:13px 15px;border-radius:16px;background:oklch(.24 .045 173/.85);border:1px solid oklch(.9 .15 95/.2)}.soothe-text b{display:block;font-size:12px;color:oklch(.93 .15 94)}.soothe-text small{display:block;font-size:10px;line-height:1.5;margin-top:3px}.bite-target.treating{background:linear-gradient(0deg,oklch(.54 .13 159) var(--relief,0%),oklch(.32 .075 159) 0)}.bite-countdown{display:none;position:absolute;bottom:calc(100% + 16px);left:50%;transform:translateX(-50%);background:oklch(.95 .06 110);color:oklch(.25 .06 170);border-radius:8px;padding:5px 9px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}.treating .bite-countdown{display:block}
.stick-mini{display:block;height:37px;width:17px;background:oklch(.97 .01 90);border-radius:6px;border-bottom:8px solid oklch(.6 .025 170);box-shadow:1px 2px 3px oklch(0 0 0/.2);transform:rotate(15deg)}.stick-mini:before{content:'';display:block;width:5px;height:10px;border-radius:3px;background:oklch(.47 .1 165);margin:7px auto}.wave-banner{position:absolute;top:42%;left:20px;right:20px;text-align:center;font-size:28px;font-family:Impact,sans-serif;letter-spacing:1px;z-index:6;color:oklch(.95 .15 95);text-shadow:0 3px 0 oklch(.2 .04 172);pointer-events:none}.popup{position:absolute;z-index:6;font-weight:900;font-size:21px;color:oklch(.94 .16 95);text-shadow:0 2px 0 oklch(.25 .05 170);pointer-events:none;animation:float 1s ease-out forwards}@keyframes float{from{transform:translate(-50%,0);opacity:1}to{transform:translate(-50%,-65px);opacity:0}}.result-panel{position:absolute;z-index:7;left:20px;right:20px;top:30%;max-width:430px;margin:auto;text-align:center;padding:26px 23px;border-radius:24px;background:oklch(.24 .045 173/.97);border:1px solid oklch(.9 .15 95/.45);box-shadow:0 20px 80px oklch(.1 .03 170/.4)}h2{font-family:Impact,'Arial Black',sans-serif;font-size:38px;letter-spacing:-.5px;line-height:1.05;margin:14px 0;color:oklch(.92 .15 93)}.result-panel>p{font-size:12px;line-height:1.5}.result-stats{display:flex;justify-content:space-around;margin:22px 0}.result-stats strong{display:block;font-size:26px;font-weight:850}.result-stats span{font-size:8px;letter-spacing:.6px}.text-button{display:block;margin:17px auto 6px;border:0;background:none;padding:7px 12px;min-height:40px;text-decoration:underline;font-size:12px}.product-link{display:block;font-size:11px;color:oklch(.9 .16 95);margin-top:10px;padding:10px}dialog{color:oklch(.96 .025 95);background:oklch(.25 .045 174);border:1px solid oklch(.9 .12 94/.35);border-radius:24px;padding:32px 24px;max-width:440px;width:calc(100% - 36px);max-height:90svh;box-shadow:0 10px 80px oklch(0 0 0/.5)}dialog::backdrop{background:oklch(.12 .025 172/.8);backdrop-filter:blur(7px)}dialog ol{padding-left:20px;font-size:12px;line-height:1.6}dialog li{margin-bottom:12px}dialog p{font-size:12px;line-height:1.6}dialog .fine{font-size:10px;opacity:.72}.close{position:absolute;right:10px;top:8px;background:none;border:0;font-size:27px;width:40px;height:40px}.load-error{position:absolute;inset:0;background:oklch(.25 .04 172);z-index:12;padding:25vh 30px;text-align:center}.load-error .primary{max-width:300px;margin:25px auto}
@media(min-width:700px){#game{min-height:760px}.topbar{left:40px;right:40px;top:27px}.brand{font-size:28px}.intro{top:100px}h1{font-size:124px}.eyebrow{font-size:11px}.tagline{font-size:15px}.bottom-panel{max-width:470px}.character{flex-direction:row;justify-content:flex-start;text-align:left;padding:12px 8px;gap:8px}.character small{display:block;font-size:8px;line-height:1.4;margin-top:2px;opacity:.75}.portrait{flex-shrink:0}.choose-label{font-size:10px}.camp-label{writing-mode:initial;transform:none;top:auto;bottom:35px;left:40px;font-size:9px}.camp-label>span:last-child{display:inline;margin-left:13px;opacity:.55}.bubble{top:35%}footer{right:35px;left:auto;bottom:35px;max-width:250px;text-align:right}.hud{top:90px}.playing .bubble{top:28%}.start-hint{font-size:11px}}
@media(max-height:750px) and (max-width:699px){#game{min-height:640px}.intro{top:79px}h1{font-size:77px;margin-top:12px}.tagline{margin-top:12px}.eyebrow{font-size:8px}.character{padding:7px 3px;gap:4px}.portrait{width:26px;height:26px;font-size:16px}.bottom-panel{bottom:39px}.primary{min-height:57px;padding:16px 20px}.bubble{top:34%}.start-hint{margin-top:11px}.playing .bubble{top:29%}.hud{top:75px}.score-row strong{font-size:27px}}
@media(max-height:560px) and (min-width:700px){#game{height:100svh;min-height:420px}.intro{left:25px;right:auto;width:300px;top:100px}h1{font-size:80px}.intro .eyebrow{font-size:8px}.bottom-panel{right:20px;left:auto;width:320px;bottom:40px}.hud{left:30px;right:auto;width:270px;top:95px}.bubble,.playing .bubble{top:26%;left:53%}.camp-label{display:none}.result-panel{top:20%;left:auto;right:25px;width:390px}.result-panel h2{font-size:28px}.result-stats{margin:10px 0}.result-panel{padding:15px 20px}.character small{display:none}footer{right:auto;left:25px;text-align:left}.start-panel{bottom:65px}.result-panel .product-link{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.popup{opacity:1}.intro h1{transform:none}}
.mascot-card{position:absolute;right:18px;top:45%;z-index:2;display:flex;align-items:center;gap:9px;max-width:128px;flex-direction:column;transform:rotate(5deg);pointer-events:none}.mascot-portrait{position:relative;overflow:hidden;width:77px;height:77px;border-radius:16px;border:3px solid oklch(.91 .15 94);box-shadow:0 4px 0 oklch(.22 .04 170/.4);background:oklch(.4 .015 100)}.mascot-portrait img{position:absolute;top:-58.1%;left:0;width:100%;height:auto;max-width:none}.mascot-card>div:last-child{text-align:center;text-shadow:0 1px 4px oklch(.15 .04 170)}.mascot-card span{display:block;font-size:8px;font-weight:900;letter-spacing:1px;color:oklch(.93 .15 94)}.mascot-card b{display:block;font-size:9px;margin-top:4px}.mascot-card small{display:block;font-size:8px;margin-top:3px;opacity:.85}@media(min-width:700px){.mascot-card{top:43%;right:calc(50% - 315px);max-width:180px;gap:10px}.mascot-portrait{width:122px;height:122px;border-radius:22px;border-width:4px}.mascot-card span{font-size:10px}.mascot-card b{font-size:12px}.mascot-card small{font-size:10px}}@media(max-height:750px) and (max-width:699px){.mascot-card{top:43%;right:12px;max-width:105px}.mascot-portrait{width:62px;height:62px}.mascot-card b{font-size:8px}.mascot-card small{display:none}}@media(max-height:560px) and (min-width:700px){.mascot-card{display:none}}
#game:not(.playing)>.bubble{top:42%;max-width:235px;font-size:11px}h2,p{text-wrap:pretty}@media(max-height:750px) and (max-width:699px){#game:not(.playing)>.bubble{top:43%;font-size:10px;max-width:210px}.mascot-card{right:9px}.mascot-card b{max-width:100px}}

@media(max-width:699px){.playing .bubble{top:auto;bottom:190px}}@media(max-height:750px) and (max-width:699px){.playing .bubble{bottom:157px}}

body{overscroll-behavior:none}.pwa-row{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:12px;min-height:16px}.install-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:5px 12px;border:1px solid oklch(.91 .15 94/.5);border-radius:999px;background:oklch(.25 .05 173/.9);font-size:11px;font-weight:850;white-space:nowrap}.install-pill img{border-radius:7px}.install-pill>span{font-size:18px}.offline-status{font-size:9px;font-weight:650;color:oklch(.87 .035 160)}.offline-ready:before{content:'●';margin-right:5px;color:oklch(.84 .17 144);font-size:8px}.install-dialog{margin:auto auto 0;border-radius:24px 24px 0 0;padding-bottom:max(24px,env(safe-area-inset-bottom));max-height:88svh}.install-logo{display:block;border-radius:18px;margin:0 0 18px}.install-dialog h2{font-size:32px}.install-dialog li{padding:5px 0}.install-dialog .text-button{margin-bottom:0}@media(min-width:700px){.install-dialog{margin:auto;border-radius:24px}}@media(display-mode:standalone){.topbar{left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right))}}

/* The campsite is a touch control surface, including labels beneath a held finger. */
#game, #game *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* Use fills for interaction feedback; never draw outlines or rings around controls. */
#game, #game *{outline:0 none!important;outline-offset:0!important;-webkit-tap-highlight-color:transparent}
#game button{border-color:transparent;box-shadow:none}
#game button:focus-visible, #game a:focus-visible{filter:brightness(1.18)}
