:root{--ink:#3b2f4a;--cream:#fffaf2}*{box-sizing:border-box}html,body{background:#ffe2c4;height:100%;margin:0;overflow:hidden}#game{position:fixed;inset:0}.hud{color:var(--ink);pointer-events:none;flex-wrap:wrap;align-items:center;gap:12px;font-family:"Baloo 2",system-ui,sans-serif;display:flex;position:fixed;top:16px;left:16px;right:16px}.hud h1{margin:0;font-size:34px;line-height:1}.meter{flex-direction:column;align-items:flex-end;margin-left:auto;line-height:1;display:flex}.meter-height{color:var(--cream);text-shadow:0 3px #3b2f4a59;font-size:44px;font-weight:800}.meter-best{color:var(--cream);text-shadow:0 2px #3b2f4a66;font-size:16px;font-weight:700}.fps{color:var(--ink);opacity:.7;pointer-events:none;font:700 12px system-ui,sans-serif;position:fixed;top:2px;right:16px}.help{color:var(--ink);pointer-events:none;text-align:center;background:#fffaf2b8;border-radius:16px;padding:8px 18px;font-family:"Baloo 2",system-ui,sans-serif;font-size:14px;font-weight:600;position:fixed;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 3px #3b2f4a26}.help p{margin:0}.card{z-index:5;background:var(--cream);width:min(420px,100vw - 32px);color:var(--ink);text-align:center;border-radius:28px;padding:22px 26px 24px;font-family:"Baloo 2",system-ui,sans-serif;animation:.35s cubic-bezier(.34,1.56,.64,1) card-in;position:fixed;left:50%;box-shadow:0 6px #3b2f4a2e,0 18px 40px #3b2f4a2e}.card-center{top:50%;transform:translate(-50%,-50%)}.card-top{padding:14px 20px 16px;top:84px;transform:translate(-50%)}.card[hidden]{display:none}.card h2{color:var(--player-a);margin:0 0 4px;font-size:40px;font-weight:800;line-height:1.05}.card h3{margin:0;font-size:22px;font-weight:800;line-height:1.2}.card p{opacity:.85;margin:6px 0 0;font-size:17px;font-weight:600}.card p.small{opacity:.7;margin-top:14px;font-size:14px}.card a{color:inherit;font-weight:800}.card button{cursor:pointer;color:var(--cream);background:var(--player-a);border:0;border-radius:999px;margin-top:16px;padding:10px 28px;font:800 20px "Baloo 2",system-ui,sans-serif;transition:transform 80ms,box-shadow 80ms;box-shadow:0 5px #3b2f4a47}.card button:hover{transform:translateY(-1px)}.card button:active{transform:translateY(4px);box-shadow:0 1px #3b2f4a47}.choices{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.choices button+button{background:var(--player-b)}.link-row{align-items:center;gap:8px;margin-top:10px;display:flex}.link-row input{min-width:0;color:var(--ink);background:#fff;border:2px solid #3b2f4a24;border-radius:999px;flex:1;padding:9px 14px;font:600 15px "Baloo 2",system-ui,sans-serif}.link-row button{background:var(--player-b);margin-top:0;padding:8px 18px;font-size:16px}@keyframes card-in{0%{opacity:0;scale:.9}}.partner-dot{opacity:.75;align-items:center;gap:6px;margin-top:4px;font-size:14px;font-weight:700;display:flex}.partner-dot:before{content:"";border:3px solid var(--player-b);box-sizing:border-box;border-radius:50%;width:12px;height:12px}.partner-dot.on{opacity:1}.partner-dot.on:before{background:var(--player-b)}.bubble{z-index:4;pointer-events:none;color:var(--ink);background:var(--cream);white-space:nowrap;transform-origin:50% 100%;border-radius:999px;padding:4px 14px;font:800 20px "Baloo 2",system-ui,sans-serif;animation:1.8s ease-out forwards bubble-life;position:fixed;top:0;left:0;translate:-50% -100%;box-shadow:0 4px #3b2f4a33}.bubble[hidden]{display:none}.bubble-0{border:3px solid var(--player-a)}.bubble-1{border:3px solid var(--player-b)}.bubble.heart{color:#ff5c8a;font-size:24px}.hrt{color:#ff5c8a;font-family:system-ui,sans-serif}@keyframes bubble-life{0%{opacity:0;scale:.4}12%{opacity:1;scale:1.15}20%{scale:1}80%{opacity:1}to{opacity:0}}.bubble.saved{font-size:24px}.talk{z-index:6;pointer-events:none;text-align:center;width:max-content;max-width:240px;color:var(--ink);background:var(--cream);transform-origin:50% 100%;border-radius:18px;padding:6px 14px;font:700 17px/1.2 "Baloo 2",system-ui,sans-serif;transition:opacity .25s;animation:.3s cubic-bezier(.34,1.56,.64,1) talk-in;position:fixed;top:0;left:0;translate:-50% -100%;box-shadow:0 4px #3b2f4a33}.talk[hidden]{display:none}.talk.out{opacity:0}.talk:after{content:"";left:clamp(16px, calc(50% + var(--tail-dx,0px)), calc(100% - 16px));background:var(--cream);border-radius:0 0 4px;width:14px;height:14px;position:absolute;bottom:-11px;translate:-50%;rotate:45deg}.talk-0{border:3px solid var(--player-a)}.talk-1{border:3px solid var(--player-b)}.talk-0:after{border:solid var(--player-a);border-width:0 3px 3px 0}.talk-1:after{border:solid var(--player-b);border-width:0 3px 3px 0}@keyframes talk-in{0%{opacity:0;scale:.5}}.talk-big{border-radius:24px;max-width:336px;padding:8px 20px;font-size:24px}.talk-big:after{left:clamp(24px, calc(50% + var(--tail-dx,0px)), calc(100% - 24px));width:20px;height:20px;bottom:-15px}.talk-tiny{border-width:2px;border-radius:12px;max-width:150px;padding:3px 9px 4px;font-size:10.2px}.talk-tiny:after{left:clamp(12px, calc(50% + var(--tail-dx,0px)), calc(100% - 12px));border-width:0 2px 2px 0;width:9px;height:9px;bottom:-7px}.scene-card{z-index:5;pointer-events:none;text-align:center;width:min(640px,100vw - 48px);color:var(--cream);text-shadow:0 2px #3b2f4a73,0 6px 28px #3b2f4a8c;font:800 clamp(26px,4.4vw,44px)/1.25 "Baloo 2",system-ui,sans-serif;animation:.6s ease-out scene-in;position:fixed;top:50%;left:50%;translate:-50% -50%}.scene-card[hidden]{display:none}.scene-card-top{width:max(240px,min(520px,100vw - 360px));font-size:clamp(20px,2.8vw,30px);top:11vh;translate:-50%}@keyframes scene-in{0%{opacity:0}}.scene-hint{z-index:5;pointer-events:none;color:var(--cream);opacity:.6;text-shadow:0 1px #3b2f4a80;font:700 14px "Baloo 2",system-ui,sans-serif;position:fixed;bottom:20px;left:50%;translate:-50%}.scene-hint[hidden]{display:none}body:has(.scene-hint:not([hidden])) .help{visibility:hidden}.toast{z-index:4;pointer-events:none;background:var(--ink);color:var(--cream);border-radius:999px;padding:5px 18px;font:800 16px "Baloo 2",system-ui,sans-serif;animation:.3s cubic-bezier(.34,1.56,.64,1) tip-in;position:fixed;top:74px;left:50%;transform:translate(-50%);box-shadow:0 3px #00000040}.toast[hidden]{display:none}.meter-hearts{color:var(--cream);text-shadow:0 2px #3b2f4a66;margin-top:6px;font-size:22px;font-weight:800}.tip{z-index:4;text-align:center;max-width:calc(100vw - 32px);color:var(--ink);background:var(--cream);pointer-events:none;border-radius:999px;padding:8px 22px;font:800 19px "Baloo 2",system-ui,sans-serif;animation:.3s cubic-bezier(.34,1.56,.64,1) tip-in;position:fixed;top:22px;left:50%;transform:translate(-50%);box-shadow:0 4px #3b2f4a33}.tip[hidden]{display:none}@keyframes tip-in{0%{opacity:0;translate:0 -12px}}.camp{pointer-events:none}.card .camp-time{opacity:.65;margin-top:0;font-size:15px}.camp ul,.results ul{text-align:left;margin:12px 0 0;padding:0;list-style:none}.camp li,.results li{align-items:baseline;gap:10px;margin-top:6px;font-size:16px;font-weight:600;line-height:1.3;display:flex}.camp li b,.results li b{font-weight:800}.card p.results-numbers{margin-top:10px;font-size:18px;font-weight:800}.card p.results-best{opacity:.65;margin-top:2px;font-size:15px}.camp-who{flex:none;gap:3px;display:inline-flex}.who{vertical-align:-1px;border-radius:50%;width:12px;height:12px;display:inline-block}.who-0{background:var(--player-a)}.who-1{background:var(--player-b)}.card p.camp-hearts{white-space:pre;margin-top:12px;font-size:16px;font-weight:800}.prompt{z-index:4;pointer-events:none;white-space:nowrap;color:var(--ink);background:var(--cream);border-radius:999px;align-items:center;gap:8px;padding:4px 14px 4px 5px;font:800 19px "Baloo 2",system-ui,sans-serif;display:flex;position:fixed;top:0;left:0;translate:-50% calc(-100% - 6px);box-shadow:0 4px #3b2f4a33}.prompt[hidden]{display:none}.prompt-0{border:3px solid var(--player-a)}.prompt-1{border:3px solid var(--player-b)}.prompt kbd{text-align:center;min-width:30px;color:var(--cream);background:var(--ink);border-radius:10px;padding:0 8px;font:800 20px/30px "Baloo 2",system-ui,sans-serif;animation:.9s ease-in-out infinite key-press;box-shadow:0 3px #00000059}@keyframes key-press{0%,60%,to{transform:translateY(0);box-shadow:0 3px #00000059}75%{transform:translateY(2px);box-shadow:0 1px #00000059}}.listen{color:var(--ink);padding:28px 16px 40px;font-family:"Baloo 2",system-ui,sans-serif;position:fixed;inset:0;overflow-y:auto}.listen-col{max-width:760px;margin:0 auto}.listen h1{color:var(--cream);text-shadow:0 3px #3b2f4a59;margin:0;font-size:40px;font-weight:800}.listen h2{margin:26px 0 8px;font-size:22px;font-weight:800}.listen-how{opacity:.85;margin-top:4px;font-size:16px;font-weight:600}.listen-muted{background:var(--player-a);color:var(--cream);border-radius:999px;margin:8px 0 0;padding:4px 16px;font-weight:800;display:inline-block}.listen-muted[hidden]{display:none}.listen-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.listen-row{background:var(--cream);border-radius:20px;align-items:center;gap:14px;padding:10px 14px;display:flex;box-shadow:0 4px #3b2f4a24}.listen-what{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.listen-what b{font-size:18px;font-weight:800}.listen-what span{opacity:.8;font-size:15px;font-weight:600}.listen-source{opacity:.6;overflow-wrap:anywhere;font-size:13px;font-weight:700}.listen button{cursor:pointer;width:44px;height:44px;color:var(--cream);background:var(--player-b);border:0;border-radius:50%;flex:none;font:800 20px "Baloo 2",system-ui,sans-serif;transition:transform 80ms,box-shadow 80ms;box-shadow:0 4px #3b2f4a40}.listen button:active{transform:translateY(3px);box-shadow:0 1px #3b2f4a40}.listen button:disabled{opacity:.35;cursor:default}.listen-marks{gap:8px;display:flex}.listen .listen-mark{color:var(--ink);background:#3b2f4a1f}.listen .listen-ok[aria-pressed=true]{color:var(--cream);background:#4fbf7a}.listen .listen-no[aria-pressed=true]{color:var(--cream);background:#e0566f}.listen-count{text-align:center;margin-top:22px;font-size:18px;font-weight:800}@media (width<=520px){.listen-row{flex-wrap:wrap}.listen-what{flex-basis:calc(100% - 58px)}.listen-marks{margin-left:58px}}.meter-cup{color:var(--cream);text-shadow:0 2px #3b2f4a66;margin-top:4px;font-size:16px;font-weight:800}.meter-cup[hidden]{display:none}.bubble.cup{color:#b07a00;font-size:24px}.clay-word{white-space:nowrap;letter-spacing:0;align-items:baseline;gap:.02em;font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;line-height:1;display:inline-flex}.clay-letter{color:var(--c);background:radial-gradient(circle at 32% 24%, #fffc 0 12%, #fff0 40%), linear-gradient(175deg, #ffffff38, #3b2f4a14), var(--c);-webkit-text-fill-color:transparent;-webkit-text-stroke:.025em var(--c-dark);filter:drop-shadow(0 .06em 0 var(--c-dark)) drop-shadow(0 .04em 0 var(--c-dark)) drop-shadow(0 .14em .16em #3b2f4a66);transform:translateY(var(--lift)) rotate(var(--tilt));-webkit-background-clip:text;background-clip:text;display:inline-block}.clay-hud{font-size:34px}.clay-title{font-size:clamp(56px,10vw,120px)}.clay-title .clay-letter{will-change:transform;animation:3s ease-in-out infinite clay-wobble;animation-delay:calc(var(--i) * -.27s)}@keyframes clay-wobble{0%,to{transform:translateY(var(--lift)) rotate(var(--tilt)) scale(1)}50%{transform:translateY(calc(var(--lift) - .03em)) rotate(var(--tilt)) scale(1.04, .97)}}@media (prefers-reduced-motion:reduce){.clay-title .clay-letter{animation:none}}.title-screen{z-index:5;pointer-events:none;color:var(--ink);text-align:center;flex-direction:column;justify-content:space-between;align-items:center;padding:clamp(18px,6vh,56px) 16px clamp(12px,3vh,24px);font-family:"Baloo 2",system-ui,sans-serif;display:flex;position:fixed;inset:0}.title-screen[hidden]{display:none}.title-top,.title-bottom{pointer-events:auto;flex-direction:column;align-items:center;max-width:100%;display:flex}.title-top{animation:.6s cubic-bezier(.34,1.56,.64,1) title-drop}.title-bottom{animation:.5s cubic-bezier(.34,1.56,.64,1) title-rise}.title-name{margin:0;line-height:1}.title-tagline,.title-strip,.title-friend-head,.credit{background:#fffaf2d1;border-radius:999px;box-shadow:0 3px #3b2f4a1f}.title-tagline{margin:14px 0 0;padding:4px 18px;font-size:clamp(15px,1.8vw,20px);font-weight:700;line-height:1.3}.title-panel{flex-direction:column;align-items:center;display:flex}.title-friend-head{margin:0 0 14px;padding:2px 18px;font-size:24px;font-weight:800}.title-buttons{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 16px;display:flex}.clay-pill{--pill:#9de8c8;--pill-lip:#6ea28c;cursor:pointer;color:var(--ink);background:radial-gradient(ellipse at 30% 18%, #ffffff8c, #fff0 55%), var(--pill);box-shadow:inset 0 3px 0 #ffffff80, inset 0 -4px 0 #3b2f4a1a, 0 6px 0 var(--pill-lip), 0 12px 22px #3b2f4a38;border:0;border-radius:999px;align-items:center;gap:10px;padding:11px 28px 13px;font:800 clamp(19px,2.1vw,23px) "Baloo 2",system-ui,sans-serif;transition:transform .1s,box-shadow .1s;display:inline-flex}.clay-pill.main{--pill:#ff7a6b;--pill-lip:#b3554b;padding:13px 34px 15px;font-size:clamp(22px,2.6vw,28px)}.clay-pill:hover{transform:translateY(-2px)rotate(-1deg)}.clay-pill:active{box-shadow:inset 0 3px 0 #ffffff80, inset 0 -4px 0 #3b2f4a1a, 0 2px 0 var(--pill-lip), 0 4px 10px #3b2f4a38;transform:translateY(4px)scale(1.03,.94)}.clay-pill:focus-visible,.title-back:focus-visible,.credit a:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.clay-pill kbd,.title-back kbd{background:#3b2f4a24;border-radius:8px;padding:3px 8px;font:800 .68em/1 "Baloo 2",system-ui,sans-serif}.title-back{cursor:pointer;color:var(--ink);background:#fffaf2d1;border:0;border-radius:999px;margin-top:14px;padding:4px 14px;font:700 15px "Baloo 2",system-ui,sans-serif}.title-strip{margin:16px 0 0;padding:5px 18px;font-size:15px;font-weight:700}.credit{margin:10px 0 0;padding:3px 14px;font-size:13px;font-weight:600;display:inline-block}.credit a{color:inherit;font-weight:800}.card .credit{box-shadow:none;opacity:.75;background:0 0;margin-top:12px}@keyframes title-drop{0%{opacity:0;translate:0 -24px}}@keyframes title-rise{0%{opacity:0;translate:0 24px}}@media (prefers-reduced-motion:reduce){.title-top,.title-bottom{animation:none}}body.menu-open .hud,body.menu-open .scene-card,body.menu-open .card.camp,body.menu-open .toast,body.menu-open .help,body.menu-open .tip,body.menu-open .prompt,body.menu-open .talk,body.menu-open .bubble,body.menu-open .scene-hint{visibility:hidden}.title-name .clay-letter{transition:scale .15s}.title-name .clay-letter:hover{scale:1.06}.clay-title .clay-letter.squish{animation:.45s cubic-bezier(.34,1.56,.64,1) clay-squish}.clay-title.jelly .clay-letter{animation:.9s ease-out both clay-jelly;animation-delay:calc(var(--i) * 50ms)}@keyframes clay-squish{0%{scale:1}30%{scale:1.25 .7}60%{scale:.9 1.12}to{scale:1}}@keyframes clay-jelly{0%{translate:0;scale:1}20%{translate:0 .1em;scale:1.3 .7}45%{translate:0 -.25em;scale:.85 1.2}70%{translate:0;scale:1.08 .94}to{translate:0;scale:1}}.confetti{z-index:7;pointer-events:none;position:fixed;top:22vh;left:50%}.confetti span{background:var(--c);border-radius:45% 55% 50% 40%;width:12px;height:9px;animation:1.4s cubic-bezier(.2,.7,.4,1) both confetti-fly;position:absolute;box-shadow:inset 0 -2px #3b2f4a2e}@keyframes confetti-fly{0%{opacity:1;transform:translate(0)rotate(0)scale(.4)}35%{transform:translate(calc(var(--dx) * .6), var(--rise)) rotate(calc(var(--spin) * .4)) scale(1);opacity:1}to{transform:translate(var(--dx), var(--fall)) rotate(var(--spin)) scale(1);opacity:0}}@media (prefers-reduced-motion:reduce){.clay-title .clay-letter.squish,.clay-title.jelly .clay-letter{animation:none}}@media (width<=520px){.title-buttons{flex-wrap:nowrap;gap:10px}.title-buttons:has(>:nth-child(3)){flex-wrap:wrap}.clay-pill,.clay-pill.main{gap:6px;padding:9px 14px 11px;font-size:16px}.title-strip{padding:4px 14px;font-size:13px}.credit{font-size:12px}}
