@font-face{font-family:Josefin Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./josefin-sans-latin-600-normal-DXjG1Gv0.woff2)format("woff2"),url(./josefin-sans-latin-600-normal-CcMFZ0n5.woff)format("woff")}@font-face{font-family:Josefin Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./josefin-sans-latin-700-normal-dFmzeJn3.woff2)format("woff2"),url(./josefin-sans-latin-700-normal-DDiyraUl.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(./atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff")}:root{--ink:#1f3b2d;--ink2:#2c5440;--mist:#eef2ea;--mist2:#dfe7dc;--water:#6fd0e6;--deep:#1f6f8a;--blossom:#ef7f9a;--pollen:#f4d35e;--moss:#4f7a37;--title:"Josefin Sans", system-ui, sans-serif;--text:"Atkinson Hyperlegible", system-ui, sans-serif;--top:env(safe-area-inset-top,0px);--bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--ink);-webkit-tap-highlight-color:transparent;height:100%;margin:0;overflow:hidden}body{font:400 16px/1.45 var(--text);color:var(--ink);-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.game{position:fixed;inset:0}.stage{position:absolute;inset:0}.stage canvas{display:block}.game.art .hud,.game.art .bar,.game.art .tip,.game.art .banner{display:none}.pebble{min-width:54px;height:54px;color:var(--ink);font:700 17px/1 var(--text);background:linear-gradient(165deg,#f7f9f4 0%,#d6ddd1 58%,#bfc8ba 100%);border:0;border-radius:48% 52% 46% 54%/56% 50% 50% 44%;justify-content:center;align-items:center;gap:8px;padding:0 14px;transition:transform 90ms,box-shadow 90ms;display:inline-flex;position:relative;box-shadow:inset 0 2px #fffc,inset 0 -5px #1f3b2d29,0 4px 10px #0a191252}.pebble:nth-of-type(2n){border-radius:54% 46% 52% 48%/48% 56% 44% 52%}.pebble:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #ffffffb3,inset 0 -2px #1f3b2d29,0 2px 5px #0a19124d}.pebble:disabled{opacity:.45;cursor:default}.pebble.small{min-width:44px;height:44px;padding:0 10px}.pebble.big{height:60px;padding:0 26px;font-size:19px}.pebble.go{background:linear-gradient(165deg, #ffc2d0 0%, var(--blossom) 60%, #d9637f 100%);color:#3b1420}.pebble.share{background:linear-gradient(165deg, #c9f1fa 0%, var(--water) 60%, #43a9c4 100%);color:#0d3a47}.pebble .price,.pebble em{background:var(--pollen);min-width:22px;height:22px;color:var(--ink);font:700 12px/22px var(--text);border-radius:11px;padding:0 5px;font-style:normal;position:absolute;top:-6px;right:-6px;box-shadow:0 1px 3px #0000004d}.pebble em{background:var(--ink);color:var(--mist)}.pebble .cost{opacity:.85;align-items:center;gap:3px;font-size:14px;display:inline-flex}.pebble.pour{min-width:150px;height:66px;font:700 21px/1 var(--title);letter-spacing:.06em;text-transform:uppercase;background:linear-gradient(165deg, #d4f6fd 0%, var(--water) 55%, #38a3c0 100%);color:#0b3340;padding:0 26px;box-shadow:inset 0 3px #ffffffbf,inset 0 -6px #0d3a4740,0 6px 14px #0a191261}.pebble.pour svg{fill:#ffffff8c;width:26px;height:26px}.pebble.pour.on{background:linear-gradient(165deg, #fff3c2 0%, var(--pollen) 60%, #d9b33c 100%);color:#3d3207}.pebble.call{animation:1.2s ease-in-out infinite call}@keyframes call{50%{transform:scale(1.07)}}.hud{z-index:5;padding:calc(10px + var(--top)) 12px 0;pointer-events:none;align-items:flex-start;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.hud>*{pointer-events:auto}.hud .level{min-width:0;color:var(--mist);text-align:center;border-top:3px solid var(--water);background:#1f3b2de0;border-radius:8px 8px 22px 22px;flex:1;justify-items:center;gap:1px;padding:7px 10px 8px;display:grid;box-shadow:0 3px 10px #0003}.hud .side{justify-items:end;gap:8px;display:grid}.hud .level b{font:700 19px/1.05 var(--title);letter-spacing:.04em}.hud .level small{color:#b9cdbd;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.hud .strip{gap:3px;margin-top:4px;display:flex}.hud .strip i{background:#eef2ea33;border-radius:50% 50% 50% 0;width:8px;height:8px;transform:rotate(-45deg)}.hud .strip i.on{background:var(--blossom)}.hud .strip i.now{box-shadow:inset 0 0 0 2px var(--pollen);background:0 0}.hud .home{background:var(--water);color:#0b3340;font:700 13px var(--text);border:0;border-radius:10px;margin-top:4px;padding:3px 10px}.chip{height:44px;color:var(--mist);font:700 17px var(--text);background:#1f3b2ddb;border:0;border-radius:22px;align-items:center;gap:6px;padding:0 12px;display:inline-flex;box-shadow:0 3px 10px #0003}.coin{background:radial-gradient(circle at 35% 35%, #fff2b0 0 18%, var(--pollen) 19% 62%, #c79a16 63%);border-radius:50%;width:18px;height:18px;display:inline-block;box-shadow:inset 0 0 0 1.5px #a37d0e}.coin.big{vertical-align:-4px;width:28px;height:28px}.bar{z-index:5;padding:0 10px calc(16px + var(--bottom));justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;bottom:0;left:0;right:0}.tip{left:50%;top:calc(108px + var(--top));z-index:4;opacity:0;pointer-events:none;text-align:center;width:min(80vw,440px);transition:opacity .25s,transform .25s;position:absolute;transform:translate(-50%,-8px)}.tip.show{opacity:1;transform:translate(-50%)}.tip span{color:var(--ink);background:#eef2eaf2;border-radius:16px;padding:9px 15px;font-size:15px;line-height:1.35;display:inline-block;box-shadow:0 3px 12px #0000002e}.numbers{left:12px;right:12px;top:calc(150px + var(--top));z-index:4;color:var(--ink);text-shadow:0 0 3px #fff;pointer-events:none;font:12px/1.3 ui-monospace,monospace;display:none;position:absolute}.numbers.show{display:block}.banner{z-index:6;min-width:220px;max-width:92vw;color:var(--mist);text-align:center;opacity:0;visibility:hidden;pointer-events:none;background:#1f3b2deb;border-radius:26px;justify-items:center;gap:2px;padding:14px 24px 15px;transition:opacity .28s,transform .28s,visibility .28s;display:grid;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)scale(.96)}.banner.show{opacity:1;visibility:visible;transform:translate(-50%,-50%)scale(1)}.banner b{font:700 32px/1.1 var(--title);letter-spacing:.05em}.banner small{color:#b9cdbd;font-size:14px}.banner small.light{color:var(--water)}.banner small.surprise{color:var(--pollen);font-weight:700}.banner .dots{gap:6px;margin-top:6px;display:flex}.banner .dots i{background:var(--water);border-radius:50%;width:8px;height:8px;animation:.9s ease-in-out infinite dot}.banner .dots i:nth-child(2){animation-delay:.15s}.banner .dots i:nth-child(3){animation-delay:.3s}@keyframes dot{50%{opacity:.5;transform:translateY(-5px)}}.toast{left:50%;bottom:calc(150px + var(--bottom));z-index:7;background:var(--ink);max-width:90vw;color:var(--mist);text-align:center;opacity:0;pointer-events:none;border-radius:16px;padding:10px 16px;font-size:15px;transition:opacity .2s,transform .2s;position:absolute;transform:translate(-50%,10px);box-shadow:0 4px 14px #00000040}.toast.show{opacity:1;transform:translate(-50%)}.guide{z-index:6;pointer-events:none;opacity:0;width:0;height:0;transition:opacity .25s;position:absolute;top:0;left:0}.guide.show{opacity:1}.guide .finger{border:4px solid var(--pollen);border-radius:50%;width:52px;height:52px;animation:1.1s ease-out infinite ring;position:absolute;top:-26px;left:-26px;box-shadow:0 0 0 3px #1f3b2d80}@keyframes ring{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.35)}}.overlay{z-index:10;background:#101f178c;place-items:center;padding:18px;display:none;position:absolute;inset:0}.overlay.show{display:grid}.card{background:var(--mist);width:min(100%,420px);max-height:calc(100% - 20px);color:var(--ink);text-align:center;border-radius:6px 6px 22px 22px;padding:34px 22px 22px;position:relative;overflow:auto;box-shadow:0 16px 40px #00000059}.card:before{content:"";background:radial-gradient(circle at 10px 18px, var(--mist) 0 8px, transparent 8.5px) 0 0 / 20px 18px repeat-x, var(--blossom);height:18px;position:absolute;top:0;left:0;right:0}.card h2.logo{margin:2px auto 0}.card h2.logo img{width:min(260px,70%);height:auto;margin:0 auto;display:block}.card h2{font:700 26px/1.15 var(--title);letter-spacing:.04em;margin:6px 0 4px}.card .sub{color:#4c6656;margin:0 0 10px}.card .facts{color:var(--deep);margin:8px 0;font-weight:700}.card .row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px;display:flex}.card .row.col{flex-direction:column;align-items:stretch;gap:10px}.card .row.col .pebble{width:100%}.card .link{color:#4c6656;background:0 0;border:0;margin-top:12px;font-size:15px;text-decoration:underline}.card .x{background:var(--mist2);width:40px;height:40px;font:700 24px/1 var(--text);border:0;border-radius:50%;position:absolute;top:24px;right:10px}.card .small{color:#5d7465;margin:14px 0 0;font-size:13px}.card .small a{color:inherit}.card .earned{font:700 22px var(--text);align-items:center;gap:6px;margin:6px 0 0;display:inline-flex}.card .dewline{color:var(--deep);margin:4px 0;font-weight:700}.soon{background:var(--pollen);border-radius:8px;margin-left:6px;padding:1px 7px;font-size:12px}.card .list{text-align:left;gap:6px;margin-top:10px;display:grid}.card .item{background:#fff;border:0;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-weight:700;display:flex;box-shadow:0 1px 3px #1f3b2d1f}.card .item b{color:#87998c;font-size:14px;display:inline-flex}.card .item b.on{color:var(--deep)}.card .item:disabled{opacity:.6}.card .lab{align-items:center;gap:8px;margin-top:12px;display:flex}.card .lab input{border:2px solid var(--mist2);width:110px;height:44px;font:700 16px var(--text);border-radius:12px;padding:0 10px}.card .lab span{color:#5d7465;font-size:12px}.card .doc{text-align:left;font-size:15px}.card .doc h3{font:700 17px var(--title);margin:14px 0 4px}.medal{background:radial-gradient(circle at 34% 30%,#ffffffe6 0 9%,#0000 10%),radial-gradient(circle,#fbfdf8 0 58%,#d3dccf 60% 68%,#a9b8a5 70%);border-radius:50%;width:92px;height:92px;margin:2px auto 4px;position:relative;box-shadow:0 6px 14px #0003}.medal i{background:radial-gradient(circle, var(--pollen) 0 16%, transparent 17%), conic-gradient(from 0deg, var(--blossom) 0 14%, transparent 14% 20%, var(--blossom) 20% 34%, transparent 34% 40%, var(--blossom) 40% 54%, transparent 54% 60%, var(--blossom) 60% 74%, transparent 74% 80%, var(--blossom) 80% 94%, transparent 94%);border-radius:50%;position:absolute;inset:20px;-webkit-mask:radial-gradient(circle,#000 0 70%,#0000 71%);mask:radial-gradient(circle,#000 0 70%,#0000 71%)}.medal.dew:after{content:"";background:radial-gradient(circle at 35% 30%, #fff 0 20%, var(--water) 22%);width:14px;height:18px;box-shadow:-54px 46px 0 -3px var(--water), -18px 58px 0 -5px var(--water);border-radius:50%/60% 60% 40% 40%;position:absolute;top:10px;right:8px}.leafmark{background:var(--mist2);width:60px;height:60px;color:var(--deep);border-radius:50%;place-items:center;margin:2px auto 0;display:grid}.leafmark svg{width:32px;height:32px}.beds{flex-wrap:wrap;justify-content:center;gap:5px;max-width:260px;margin:10px auto;display:flex}.beds i{background:var(--mist2);border-radius:50% 50% 50% 0;width:14px;height:14px;transform:rotate(-45deg)}.beds i.on{background:var(--blossom)}.beds i.new{animation:.6s ease-out .3s both bloomdot}@keyframes bloomdot{0%{transform:rotate(-45deg)scale(0)}to{transform:rotate(-45deg)scale(1)}}.lesson{text-align:left;align-items:center;gap:14px;margin:12px 0;display:flex}.lesson h3{font:700 18px var(--title);margin:0 0 2px}.lesson p{margin:0;font-size:15px}.pic{width:66px;height:66px;box-shadow:inset 0 0 0 2px var(--mist2);background:#fff;border-radius:16px;flex:none;position:relative;overflow:hidden}.pic-hill{background:linear-gradient(#fff 0 22%,#7fa35a 22% 42%,#b7ad98 42% 50%,#7fa35a 50% 70%,#b7ad98 70% 78%,#6fd0e6 78%)}.pic-hill:after{content:"›  ›  ›";font:700 12px/1 var(--text);color:var(--ink);text-align:center;position:absolute;top:38px;left:0;right:0}.pic-turn:before{content:"";background:#e6e1d3;border-radius:50%;position:absolute;inset:12px;box-shadow:inset 0 -3px #0000001a}.pic-turn:after{content:"";background:var(--water);border-radius:3px;width:6px;height:27px;position:absolute;top:12px;left:30px;box-shadow:9px 21px #0000}.pic-count{background:var(--ink);place-items:center;display:grid}.pic-count span{font:700 30px var(--text);color:var(--water)}.pic-leak:before{content:"";background:#7fa35a;height:30px;position:absolute;top:0;left:0;right:0}.pic-leak:after{content:"";background:var(--blossom);width:14px;height:18px;box-shadow:0 16px 0 -4px var(--blossom);border-radius:50%/60% 60% 40% 40%;position:absolute;top:26px;left:26px}.pic-up:before{content:"↑";font:700 34px var(--text);color:var(--moss);place-items:center;display:grid;position:absolute;inset:0}.pic-junction:before{content:"";background:var(--water);border-radius:3px;width:6px;height:54px;position:absolute;top:6px;left:30px}.pic-junction:after{content:"";background:var(--water);border-radius:3px;width:30px;height:6px;position:absolute;top:30px;left:30px}.pic-gate{background:radial-gradient(circle,#e6e1d3 0 46%,#8f5d38 47% 56%,#0000 57%)}.pic-gate:after{content:"→";font:700 30px var(--text);color:#c99a12;place-items:center;display:grid;position:absolute;inset:0}.pic-arrow:before{content:"↓";font:700 38px var(--text);color:#c99a12;place-items:center;display:grid;position:absolute;inset:0}.hillside{text-align:left;gap:6px;margin-top:8px;display:grid}.terrace{background:#fff;border-radius:12px 12px 4px 4px;padding:9px 12px;box-shadow:inset 0 -5px #b7ad98}.terrace.done{background:linear-gradient(#e9f3df,#fff)}.terrace .tname{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.terrace .tname b{font:700 16px var(--title)}.terrace .tname small{color:#5d7465;white-space:nowrap;font-size:12px}.terrace .tbeds{gap:3px;margin:5px 0 4px;display:flex}.terrace .tbeds i{background:var(--mist2);border-radius:4px;flex:1;height:8px}.terrace .tbeds i.on{background:var(--blossom)}.bar .pair{flex:1;justify-content:flex-end;gap:10px;max-width:120px;display:flex}.bar .pair:last-child{justify-content:flex-start}@media (width>=700px){.hud{justify-content:center;padding-left:20px;padding-right:20px}.hud .level{flex:0 360px}}@media (prefers-reduced-motion:reduce){.pebble.call,.guide .finger,.banner .dots i,.beds i.new{animation:none}}.stage:after{content:"";pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,#0000 55%,#14261c47 100%);position:absolute;inset:0}
