:root{color:#163129;font-synthesis:none;text-rendering:optimizelegibility;--cream:#f5e7c8;--paper:#fff6df;--ink:#163129;--coral:#d35e45;--coral-dark:#a94036;--moss:#718f63;background:#152822;font-family:ui-rounded,Hiragino Maru Gothic ProN,Yu Gothic,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:#152822;min-width:320px;min-height:100svh;overflow-x:hidden}button{font:inherit}button:focus-visible,[role=button]:focus-visible{outline-offset:4px;outline:3px solid #f6c65b}.app-shell{min-height:100svh;padding:max(0px, env(safe-area-inset-top)) max(0px, env(safe-area-inset-right)) max(0px, env(safe-area-inset-bottom));place-items:center;display:grid}.screen{background:var(--cream);border:1px solid #f5e7c84d;width:min(100vw,510px);height:min(100svh,920px);min-height:560px;position:relative;overflow:hidden;box-shadow:0 22px 70px #00000059}.screen:before{content:"";pointer-events:none;opacity:.11;mix-blend-mode:multiply;z-index:10;background-image:repeating-linear-gradient(0deg,#0000 0 3px,#16312959 3px 4px);position:absolute;inset:0}.brand-mark{letter-spacing:.05em;color:var(--ink);white-space:nowrap;font-family:Courier New,monospace;font-size:clamp(.55rem,2.4vw,.74rem)}.brand-mark span{color:var(--coral)}.tutorial-screen{text-align:center;flex-direction:column;justify-content:space-between;padding:clamp(2rem,9vh,5rem) clamp(2rem,9vw,4rem) clamp(2.2rem,8vh,4.2rem);display:flex}.tutorial-copy{justify-items:center;gap:1rem;display:grid}.eyebrow{letter-spacing:.14em;color:var(--moss);margin:0;font-family:Courier New,monospace;font-size:.52rem}.result-kicker{color:var(--paper);background:var(--coral-dark);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);letter-spacing:.2em;margin:.1rem 0 .25rem;padding:.38rem .7rem .3rem;font-family:Courier New,monospace;font-size:clamp(.7rem,3.2vw,.88rem);font-weight:900;line-height:1}.tutorial-screen h1{letter-spacing:.08em;margin:.6rem 0 .25rem;font-size:clamp(2rem,9vw,3rem)}.tutorial-screen p{margin:0;font-size:clamp(1rem,4.4vw,1.25rem);line-height:1.85}.tutorial-screen strong{color:var(--coral-dark);font-weight:700}.tutorial-snail{background:var(--paper);border:3px solid var(--ink);width:102px;height:102px;box-shadow:7px 7px 0 var(--ink);place-items:center;margin:.3rem 0;display:grid;overflow:hidden}.tutorial-snail img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;display:block}.tutorial-prompt{color:var(--coral-dark);margin-top:.4rem!important}.primary-button,.secondary-button{cursor:pointer;touch-action:manipulation;border:0;min-height:58px;padding:.85rem 1.6rem;transition:transform .12s,box-shadow .12s,background-color .12s}.primary-button{color:var(--paper);background:var(--coral);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);letter-spacing:.1em;font-weight:700}.secondary-button{color:var(--ink);border:3px solid var(--ink);letter-spacing:.1em;background:0 0;font-weight:700;box-shadow:4px 4px #16312940}.primary-button:hover,.secondary-button:hover{transform:translate(-1px,-1px)}.primary-button:active,.secondary-button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.start-button{align-self:center;width:min(100%,290px);font-size:1.1rem}.game-screen{background:var(--cream);flex-direction:column;display:flex}.game-header{z-index:3;justify-content:space-between;align-items:center;padding:1.15rem 1.2rem .65rem;display:flex}.game-actions{align-items:center;gap:.35rem;display:flex}.icon-button{cursor:pointer;width:46px;height:46px;color:var(--ink);background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);touch-action:manipulation;place-items:center;font-size:1.25rem;display:grid}.icon-button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.best-score{color:var(--moss);z-index:3;padding:0 1.35rem;font-size:.9rem}.best-score strong{color:var(--ink);font-size:1rem}.tap-zone{isolation:isolate;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;flex-direction:column;flex:1;justify-content:space-between;align-items:center;min-height:0;padding:.55rem .9rem 1.15rem;display:flex;position:relative}.canvas-wrap{z-index:0;opacity:.93;pointer-events:none;position:absolute;inset:0}.snail-canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.count-lockup{z-index:2;border:3px solid var(--ink);pointer-events:none;background:#fff6dfd1;justify-items:center;margin-top:auto;margin-bottom:1.2rem;padding:.8rem 1.2rem 1rem;animation:.12s ease-out count-settle;display:grid;position:relative;box-shadow:6px 6px #163129e6}.count-number{max-width:calc(100vw - 42px);color:var(--coral-dark);text-align:center;word-break:break-all;font-family:Courier New,monospace;font-weight:700;line-height:1.18;display:block;overflow:hidden}.count-unit{letter-spacing:.15em;margin-top:.45rem;font-size:1.25rem}.tap-hint{z-index:2;color:var(--ink);opacity:.76;pointer-events:none;margin:auto 0 .3rem;font-size:.84rem;position:relative}.game-footnote{z-index:3;text-align:center;opacity:.52;pointer-events:none;margin:0;font-size:.62rem;position:absolute;bottom:.6rem;left:0;right:0}.flash{z-index:4;pointer-events:none;opacity:0;background:#fff;position:absolute;inset:0}.is-exploding .flash{animation:.2s ease-out fail-flash}.is-exploding .count-lockup{opacity:0;transition:opacity .1s}.result-screen{flex-direction:column;padding:1.15rem 1.3rem 2.4rem;display:flex;overflow-y:auto}.result-header{justify-content:space-between;align-items:center;display:flex}.result-content{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:.8rem 0;display:flex}.result-number{max-width:100%;color:var(--coral-dark);overflow-wrap:anywhere;margin:.85rem 0 .45rem;font-family:Courier New,monospace;font-size:clamp(2rem,11vw,4.1rem);font-weight:700;line-height:1.3}.result-titleline{margin:0;font-size:clamp(1rem,4.3vw,1.3rem);font-weight:700;line-height:1.75}.result-message{max-width:18rem;min-height:3.8em;color:var(--coral-dark);margin:1.35rem 0 1rem;font-size:1.15rem;line-height:1.75}.rarity{color:var(--moss);margin:0;font-size:.88rem;line-height:1.7}.rarity strong{color:var(--ink);font-size:1.03rem}.new-best{color:var(--paper);background:var(--coral);margin:.85rem 0 0;padding:.35rem .75rem;font-size:.95rem;font-weight:700;transform:rotate(-2deg)}.result-best{color:var(--moss);margin:.9rem 0 0;font-size:.78rem}.result-actions{gap:.8rem;width:min(100%,310px);margin:0 auto;display:grid}.result-actions button{width:100%}.toast{z-index:30;bottom:max(1.4rem, env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 2rem);color:var(--paper);background:var(--ink);border:2px solid var(--paper);box-shadow:4px 4px 0 var(--coral);text-align:center;padding:.75rem 1rem;font-size:.82rem;position:fixed;left:50%;transform:translate(-50%)}@keyframes count-settle{0%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes fail-flash{0%{opacity:.8}to{opacity:0}}@media (width>=620px){.screen{border-width:3px;border-color:var(--ink);border-radius:8px;height:min(100svh - 3rem,920px)}.app-shell{padding:1.5rem}}@media (height<=680px){.screen{min-height:0}.game-header{padding-top:.7rem}.tutorial-screen{gap:.6rem;padding-top:1.2rem;padding-bottom:1.5rem}.tutorial-copy{gap:.5rem}.tutorial-snail{width:72px;height:72px;font-size:3.3rem}.tutorial-screen p{line-height:1.55}.result-screen{padding:.75rem 1rem 1rem}.result-content{padding:.45rem 0}.result-number{margin:.4rem 0 .2rem;font-size:clamp(2rem,10vw,3.2rem)}.result-message{min-height:0;margin:.55rem 0 .45rem}.result-best{margin-top:.4rem}.result-actions{gap:.55rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
