:root{--ink:#3a2a26;--paper:#fff8ea;--sand:#e8d1a4;--teal:#2c98a0;--teal-deep:#1c6f86;--coral:#e8735a;--sun:#ffcf5a;--font:"Nunito", "Quicksand", ui-rounded, "SF Pro Rounded", "Segoe UI Rounded", "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif;--pop:cubic-bezier(.3, 1.5, .5, 1);--glide:cubic-bezier(.45, .05, .3, 1)}*{box-sizing:border-box}html,body,#root{background:var(--sand);width:100%;height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;margin:0;overflow:hidden}.app{touch-action:none;position:fixed;inset:0}button{font:inherit;color:inherit}:focus-visible{outline:4px solid var(--sun);outline-offset:4px}.scene{width:100%;height:100%;display:block;position:absolute;inset:0}.edge-grab{fill:none;stroke:#0000;stroke-width:120px;pointer-events:stroke;cursor:grab}.is-dragging .edge-grab,.is-dragging{cursor:grabbing}.foam{fill:none;stroke:#fffdf3;stroke-width:6px;stroke-opacity:.92;stroke-linecap:round;stroke-dasharray:46 12 20 9;animation:7s linear infinite foam}.foam-soft{stroke-width:3px;stroke-opacity:.5;stroke-dasharray:22 16;animation-duration:11s}@keyframes foam{to{stroke-dashoffset:-174px}}.caustics{animation:16s ease-in-out infinite alternate drift}@keyframes drift{to{transform:translate(70px,46px)}}.pool-glint{animation:4.5s ease-in-out infinite alternate glint}@keyframes glint{0%{opacity:.35}to{opacity:1}}.c-btn{cursor:pointer;outline:none}.c-hit{fill:#0000}.c-pos{transition:transform 1.5s var(--glide)}.c-seastar .c-pos{transition-duration:2.4s}.c-crab .c-pos{transition:transform 1.25s cubic-bezier(.55,0,.35,1)}.c-face{transition:transform 2.4s var(--glide)}.c-seastar.is-out .c-face{transform:rotate(30deg)}.c-pop{transition:transform .45s var(--pop)}.is-selected .c-pop{transform:scale(1.2)}@media (hover:hover){.creature:hover:not(.is-selected) .c-pop{transform:scale(1.06)}}.creature:active .c-pop{transform:scale(.94)}.c-focus{fill:none;stroke:var(--sun);stroke-width:6px;opacity:0}.c-btn:focus-visible .c-focus{opacity:1}.c-ping{fill:none;stroke:#fffdf0;stroke-width:5px;opacity:0;animation:1.5s ease-out .35s ping}@keyframes ping{0%{opacity:.95;transform:scale(.6)}to{opacity:0;transform:scale(1.55)}}.c-glow{fill:#fff9e11f;stroke:#fffbe8;stroke-width:3.5px;stroke-dasharray:7 11;stroke-linecap:round;opacity:.9;animation:18s linear infinite halo,.8s ease-out fade-in}@keyframes halo{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}.c-badge{animation:badge .55s var(--pop)}.c-badge circle{fill:var(--coral);stroke:var(--ink);stroke-width:3px}.c-badge path{fill:none;stroke:#fff;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}@keyframes badge{0%{transform:scale(0)rotate(-40deg)}}.an-tent{transition:transform .9s cubic-bezier(.5,-.3,.4,1.2),opacity .7s}.an-sway{animation:5.5s ease-in-out infinite alternate sway}@keyframes sway{0%{transform:rotate(-5deg)scale(.97)}to{transform:rotate(6deg)scale(1.02)}}.an-disc{transition:transform .7s,opacity .5s}.an-blob{opacity:0;transition:transform .6s,opacity .4s;transform:scale(.5)}.is-closed .an-tent{opacity:0;transform:scale(.12)rotate(50deg)}.is-closed .an-sway{animation:none}.is-closed .an-disc{opacity:0;transform:scale(.3)}.is-closed .an-blob{opacity:1;transition:transform .75s var(--pop) .3s, opacity .3s ease .25s;transform:scale(1)}.bn-cirri{transition:opacity .35s;animation:1.7s ease-in-out infinite alternate kick}@keyframes kick{0%{transform:scale(1)}to{transform:scale(.45,.8)}}.bn-door{transition:transform .35s;transform:scaleY(0)}.is-closed .bn-cirri{opacity:0;transition:transform .45s,opacity .35s;animation:none;transform:scale(0)}.is-closed .bn-door{transition:transform .5s var(--pop) .35s;transform:scale(1)}.lp-foot,.lp-shadow{transition:transform .6s,opacity .5s}.is-closed .lp-foot{opacity:0;transform:scale(.88)}.is-closed .lp-shadow{transform:translate(-4px,-5px)scale(.92)}.c-limpet.is-out .c-face{animation:.5s ease-out 1.4s clamp}@keyframes clamp{40%{transform:scale(.9)}}.ms-top{transition:transform .5s cubic-bezier(.5,-.4,.4,1.5);transform:translateY(-6px)}.ms-bot{transition:transform .5s cubic-bezier(.5,-.4,.4,1.5);transform:translateY(6px)}.ms-flesh{transition:opacity .4s .2s}.is-closed .ms-top,.is-closed .ms-bot{transform:translate(0)}.is-closed .ms-flesh{opacity:0}.ss-body{transition:transform 2.4s var(--glide)}.is-closed .ss-body{transform:scale(.86)}.c-seastar:not(.is-out) .ss-body{animation:6s ease-in-out infinite alternate breathe}@keyframes breathe{to{transform:scale(1.03)rotate(3deg)}}.cb-leg{transition:transform .3s}.is-moving .cb-leg{animation:.16s linear infinite alternate scuttle}.is-moving .cb-leg.odd{animation-direction:alternate-reverse}@keyframes scuttle{0%{transform:rotate(-16deg)}to{transform:rotate(16deg)}}.creature-art.still *,.creature-art.still{transition:none!important;animation:none!important}.is-resting .scene *,.is-resting .card *{animation-play-state:paused!important}.reduce .scene *,.reduce .card *,.reduce .tally *,.reduce .celebrate *{transition:none!important;animation:none!important}.reduce .scene .pose{transition:opacity .6s!important}.reduce .c-ping{display:none}.sticker{background:var(--paper);border:3px solid var(--ink);border-radius:22px;box-shadow:0 6px #3a2a2638}.hud-title{background:var(--paper);border:3px solid var(--ink);pointer-events:none;border-radius:24px 30px 26px 22px;max-width:min(460px,34vw);padding:14px 24px 16px;position:absolute;top:22px;left:26px;transform:rotate(-1.2deg);box-shadow:0 6px #3a2a2638}.hud-title h1{letter-spacing:-.01em;margin:0;font-size:clamp(26px,2.5vw,46px);font-weight:900;line-height:1.02}.hud-title p{color:#6b5148;margin:6px 0 0;font-size:clamp(16px,1.1vw,21px);font-weight:700}.hud-badge{pointer-events:none;flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;top:22px;right:26px}.hud-badge strong{background:var(--coral);color:#fff;border:3px solid var(--ink);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:4px 14px;font-size:15px}.hud-badge span{color:#6b5148;background:#fff8eae6;border-radius:10px;padding:3px 10px;font-size:13px;font-weight:700}.motion-toggle{cursor:pointer;background:#fff8eaeb;border:2px solid #3a2a268c;border-radius:999px;align-items:center;gap:10px;min-height:48px;padding:6px 16px 6px 8px;font-size:16px;font-weight:800;display:flex;position:absolute;top:98px;right:26px}.motion-toggle .sw{background:#c9b79b;border-radius:999px;width:40px;height:24px;transition:background .2s;position:relative}.motion-toggle .sw:after{content:"";border:2px solid var(--ink);box-sizing:border-box;background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px}.motion-toggle[aria-pressed=true] .sw{background:var(--teal)}.motion-toggle[aria-pressed=true] .sw:after{transform:translate(16px)}.tally{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%)}.tally ol{background:var(--paper);border:3px solid var(--ink);border-radius:999px;gap:8px;margin:0;padding:8px 12px;list-style:none;display:flex;box-shadow:0 6px #3a2a2638}.tally li{background:#f3e7cf;border:2.5px dashed #b9a487;border-radius:50%;place-items:center;width:58px;height:58px;display:grid}.tally li .shell-icon{opacity:.45;width:30px;height:30px}.tally li svg{width:52px;height:52px}.tally li.got{border:2.5px solid var(--ink);background:#bfe6df}.tally li{position:relative}.tally li.new{animation:slot .6s var(--pop)}@keyframes slot{0%{transform:scale(.7)translateY(6px)}45%{transform:scale(1.3)rotate(-6deg)}70%{transform:scale(.95)rotate(3deg)}}.tally li.new:after{content:"";border:4px dotted var(--sun);opacity:0;border-radius:50%;animation:.8s ease-out burst;position:absolute;inset:-4px}@keyframes burst{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.8)rotate(40deg)}}.flight{z-index:7;pointer-events:none;border:3px solid var(--ink);opacity:0;background:#bfe6df;border-radius:50%;place-items:center;width:60px;height:60px;display:grid;position:fixed;top:-30px;left:-30px;box-shadow:0 8px 16px #1e140a40}.flight svg{width:54px;height:54px}.tally p{background:#fff8eaeb;border-radius:999px;margin:0;padding:4px 16px;font-size:clamp(17px,1.15vw,22px);font-weight:900}.tally.is-done ol{background:#ffe7a6}.shell-icon path:first-child{fill:#f0b48e;stroke:var(--ink);stroke-width:1.6px;stroke-linejoin:round}.shell-icon path+path{fill:none;stroke:var(--ink);stroke-width:1.2px;stroke-linecap:round;opacity:.6}.tide{pointer-events:none;height:150px;position:absolute;bottom:0;left:0;right:0}.tide-rail{left:var(--rail-l);width:calc(var(--rail-r) - var(--rail-l));background:linear-gradient(90deg, #5cc2b9, var(--teal-deep));border:3px solid var(--ink);pointer-events:auto;cursor:pointer;touch-action:none;border-radius:999px;height:20px;position:absolute;bottom:40px;overflow:visible}.tide-rail:before{content:"";position:absolute;inset:-22px -8px}.tide-fill{pointer-events:none;background:repeating-linear-gradient(135deg,#e9d3a6 0 8px,#dcc18f 8px 14px);border-radius:999px 0 0 999px;position:absolute;top:0;bottom:0;left:0}.tide-end{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none;background:#fff8eae6;border-radius:999px;padding:3px 10px;font-size:15px;font-weight:900;position:absolute;bottom:76px}.tide-end.high{left:-6px}.tide-end.low{right:-6px}.tide-handle{pointer-events:auto;cursor:grab;touch-action:none;z-index:2;border-radius:24px;height:84px;position:absolute;bottom:14px;left:0}.is-dragging .tide-handle{cursor:grabbing}.tide-body{transition:transform .25s var(--pop);display:block;position:absolute;inset:0}.is-dragging .tide-body{transform:scale(1.05)translateY(-3px)}.tide-wave{filter:drop-shadow(0 6px #3a2a2640);width:100%;height:100%;position:absolute;inset:0}.tide-wave path{fill:var(--teal);stroke:var(--ink);stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.tide-handle.at-low .tide-wave path{fill:var(--coral)}.tide-handle.is-refilling{cursor:default}.tide-handle.is-refilling .tide-wave path{fill:var(--teal-deep)}.tide-handle.is-refilling .arrow{animation:1.2s ease-in-out infinite alternate drift-left}@keyframes drift-left{to{transform:translate(-6px)}}.reduce .tide-handle.is-refilling .arrow{animation:none}.tide-notch{left:calc(50% + var(--notch) - 10px);border-left:10px solid #0000;border-right:10px solid #0000;border-bottom:14px solid var(--ink);width:0;height:0;position:absolute;top:-14px}.tide-text{color:#fff;text-align:center;text-shadow:0 2px #3a2a268c;justify-content:center;align-items:center;gap:10px;font-size:clamp(18px,1.35vw,25px);font-weight:900;line-height:1.05;display:flex;position:absolute;inset:18px 10px 6px}.arrow{font-size:1.3em;display:inline-block}.tide-handle.invite .tide-body{animation:2.6s ease-in-out infinite nudge}@keyframes nudge{0%,45%,to{transform:translate(0)}60%{transform:translate(26px)}75%{transform:translate(4px)}85%{transform:translate(12px)}}.reduce .tide-handle.invite .tide-body{animation:none}.card{z-index:5;background:var(--paper);border:3px solid var(--ink);transform-origin:var(--origin-x) var(--tail-y);animation:card-in .45s var(--pop);border-radius:28px;outline:none;padding:20px 24px 16px;position:absolute;box-shadow:0 10px #3a2a2633,0 24px 60px #1e140a38}@keyframes card-in{0%{opacity:0;transform:scale(.55)}}.reduce .card{animation:.3s fade-in}.card-tail{top:calc(var(--tail-y) - 14px);background:var(--paper);border:3px solid var(--ink);border-radius:4px;width:28px;height:28px;position:absolute;transform:rotate(45deg)}.card.from-left .card-tail{border-top-color:#0000;border-right-color:#0000;left:-16px}.card.from-right .card-tail{border-bottom-color:#0000;border-left-color:#0000;right:-16px}.card-close{border:3px solid var(--ink);cursor:pointer;background:#fff;border-radius:50%;place-items:center;width:56px;height:56px;display:grid;position:absolute;top:12px;right:12px}.card-close svg{width:24px;height:24px;stroke:var(--ink);stroke-width:3.5px;stroke-linecap:round}.card-close:active{transform:scale(.92)}.card-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep);flex-wrap:wrap;align-items:center;gap:10px;margin:4px 60px 6px 0;font-size:16px;font-weight:900;display:flex}.found-chip{background:var(--coral);color:#fff;letter-spacing:.04em;border:2px solid var(--ink);border-radius:999px;align-items:center;gap:6px;padding:3px 12px 3px 6px;font-size:14px;display:inline-flex;position:absolute;top:-12px;left:-10px;transform:rotate(-6deg);box-shadow:0 3px #3a2a2640}.found-chip .shell-icon{width:22px;height:22px}.found-chip.is-new{animation:stamp .6s var(--pop) .25s backwards}@keyframes stamp{0%{opacity:0;transform:scale(2.2)rotate(-18deg)}}.card-title{animation:.4s title-in}@keyframes title-in{0%{opacity:0;transform:translateY(6px)}}.card.is-changed .card-eyebrow{color:var(--coral)}.card-reveal{border:3px solid var(--ink);background:var(--sun);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:60px;margin:6px 0 4px;font-size:21px;font-weight:900;animation:1.8s ease-in-out infinite reveal-bob;display:flex;box-shadow:0 5px #3a2a264d}.card-reveal .cap-icon{width:28px;height:28px;stroke:var(--ink)}.card-reveal:active{transform:translateY(3px);box-shadow:0 2px #3a2a264d}@keyframes reveal-bob{50%{transform:translateY(-3px)}}.card.is-high .card-eyebrow{color:#6b5148}.card-title{letter-spacing:-.01em;margin:0 56px 12px 0;font-size:clamp(26px,2vw,36px);font-weight:900;line-height:1.08}.card-body{margin:12px 0 8px;font-size:clamp(18px,1.2vw,22px);font-weight:650;line-height:1.4}.card-prompt{border:2px dashed var(--teal);color:var(--teal-deep);background:#d6f0eb;border-radius:16px;align-items:center;gap:10px;margin:10px 0 6px;padding:10px 16px;font-size:19px;font-weight:900;display:flex}.card-prompt svg{fill:none;width:40px;height:20px;stroke:var(--teal);stroke-width:3px;stroke-linecap:round;flex:none}.card-review{color:#8a7266;margin:8px 0 0;font-size:13px;font-style:italic}.loop-wrap{position:relative}.loop{flex-direction:column;align-items:stretch;gap:8px;display:flex}.loop.loop-pair{flex-direction:row;align-items:center}.steps{background:#efe2c8;border:2px solid #3a2a2640;border-radius:18px;flex-basis:100%;align-items:stretch;padding:4px;display:flex}.step{color:#8a7266;opacity:.6;border-radius:14px;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:16px;font-weight:900;line-height:1.1;transition:background .4s,color .4s,opacity .4s;display:flex}.step small{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.step .cap-icon{flex:none}.step.on{opacity:1;color:var(--ink)}.step.wet.on{background:#c6ebe4}.step.dry.on{background:#ffe6a0}.step-arrow{color:#8a7266;align-self:center;padding:0 4px;font-weight:900}.mini{flex:1;margin:0}.mini>svg{aspect-ratio:220/144;border:3px solid var(--ink);background:var(--sand);border-radius:18px;width:100%;max-height:190px;display:block}.cap-icon{fill:none;width:22px;height:22px;stroke:var(--teal);stroke-width:2.6px;stroke-linecap:round}.cap-icon.sun{stroke:#e0a020}.cap-icon.sun circle{fill:var(--sun)}.mini-water{opacity:.5;transition:transform 1.1s cubic-bezier(.6,0,.3,1)}.mini-foam{opacity:.85;transition:transform 1.1s cubic-bezier(.6,0,.3,1)}.mini.is-dry .mini-water,.mini.is-dry .mini-foam{transform:translate(226px)}.mini-extra{transition:opacity .6s .5s}.mini.is-wet .mini-extra{transition-delay:0s;opacity:0!important}.loop-pair{flex-wrap:wrap}.loop-pair .mini>svg{max-height:120px}.loop-arrow{fill:none;width:30px;stroke:var(--ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;flex:none}.veil{opacity:0;pointer-events:none;background:#d9efe9;transition:opacity .38s;position:absolute;inset:0}.veil.on{opacity:.7}.celebrate{z-index:6;text-align:center;background:var(--paper);border:3px solid var(--ink);animation:celebrate-in .55s var(--pop);pointer-events:none;border-radius:32px;padding:26px 40px 28px;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px #3a2a2633,0 30px 80px #1e140a40}@keyframes celebrate-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}}.celebrate h2{margin:12px 0 4px;font-size:clamp(30px,2.6vw,48px);font-weight:900}.celebrate p{color:#6b5148;margin:0;font-size:clamp(18px,1.3vw,24px);font-weight:700}.celebrate-shells{justify-content:center;gap:10px;display:flex}.celebrate-shells span{border:3px solid var(--ink);width:72px;height:72px;animation:hop .7s var(--pop) backwards;background:#bfe6df;border-radius:50%;place-items:center;display:grid}.celebrate-shells svg{width:64px;height:64px}@keyframes hop{0%{opacity:0;transform:translateY(30px)scale(.3)}}.toast{z-index:6;background:var(--paper);border:3px solid var(--ink);pointer-events:none;border-radius:999px;padding:12px 24px;font-size:22px;font-weight:900;animation:.4s fade-in;position:absolute;bottom:120px;left:50%;transform:translate(-50%)}.error-state{text-align:center;background:var(--sand);place-content:center;justify-items:center;gap:8px;padding:40px;display:grid;position:fixed;inset:0}.error-state h1{margin:0;font-size:40px}.error-state p{margin:0 0 16px;font-size:22px}.error-state button{border:3px solid var(--ink);background:var(--teal);color:#fff;cursor:pointer;border-radius:999px;min-height:64px;padding:0 32px;font-size:22px;font-weight:900}@media (width<=1280px){.hud-title p{display:none}.hud-title{padding:10px 18px 12px}.tally li{width:46px;height:46px}.tally li svg{width:42px;height:42px}.tally ol{gap:6px;padding:6px 10px}.motion-toggle{font-size:14px}}@media (height<=820px){.card{padding:14px 20px 12px}.card-title{margin-bottom:8px}.mini>svg{max-height:150px}.card-body{margin:8px 0 6px;font-size:18px;line-height:1.32}.card-prompt{margin:6px 0 4px;padding:8px 14px}.card-review{margin-top:4px}}@media (width<=860px){.hud-badge span{display:none}.motion-toggle{top:70px}}.reduce .tally li:after{display:none}
