:root{color:#264d3b;font-synthesis:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#a8d6d3;font-family:ui-rounded,Nunito,Avenir Next,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{touch-action:none}body:after{z-index:1;pointer-events:none;content:"";background:radial-gradient(circle at 50% 42%,#0000 58%,#1e493617 100%),linear-gradient(#fff4cf08,#0000 38%,#183f2f0f);position:fixed;inset:0}[hidden]{display:none!important}button{color:inherit;font:inherit}canvas{outline:none;width:100%;height:100%;display:block}.loading{color:#fff8e7;letter-spacing:.02em;background:linear-gradient(#92cbd0,#dcebc4 70%,#fff3d6);place-content:center;justify-items:center;gap:.8rem;display:grid;position:fixed;inset:0}.loading__clover{font-size:4rem;animation:1.4s ease-in-out infinite bob}.hud{z-index:2;pointer-events:none;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));position:fixed;inset:0}.pill{top:max(1rem, env(safe-area-inset-top));color:#2b553f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#fff8e7e0;border:1px solid #ffffff8c;border-radius:999px;min-width:5.5rem;padding:.65rem .95rem;font-weight:800;position:absolute;box-shadow:0 8px 24px #244d3926}.counter{left:calc(max(1rem, env(safe-area-inset-left)) + 4.2rem);font-size:1.1rem}.back{pointer-events:auto;left:max(1rem, env(safe-area-inset-left));cursor:pointer;border:0;min-width:3rem;font-size:1.1rem}.counter.pop{animation:.36s ease-out pop}.timer{font-variant-numeric:tabular-nums;left:50%;translate:-50%}.mute{pointer-events:auto;right:max(1rem, env(safe-area-inset-right));cursor:pointer;border:0;min-width:3rem}.seed{right:max(1rem, env(safe-area-inset-right));bottom:max(.8rem, env(safe-area-inset-bottom));color:#264d3bb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fff8e794;border-radius:999px;padding:.35rem .6rem;font-size:.72rem;position:absolute}.prompt,.encouragement{left:50%;bottom:max(2.8rem, calc(env(safe-area-inset-bottom) + 2.5rem));color:#fff8e7;text-align:center;white-space:nowrap;background:#244d39bd;border-radius:999px;padding:.7rem 1rem;font-size:.85rem;font-weight:750;transition:opacity .18s;position:absolute;translate:-50%;box-shadow:0 8px 24px #1430232e}.prompt[hidden],.encouragement[hidden]{opacity:0}.mobile-controls{display:none}.joystick{left:max(1.2rem, env(safe-area-inset-left));bottom:max(1.2rem, env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;background:#fff8e73b;border:2px solid #ffffff85;border-radius:50%;width:7.5rem;height:7.5rem;position:absolute;box-shadow:inset 0 0 24px #fff3}.joystick__nub{background:#fff8e7c7;border-radius:50%;width:3.25rem;height:3.25rem;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 5px 14px #244d3938}.collect{right:max(1.3rem, env(safe-area-inset-right));bottom:max(1.7rem, env(safe-area-inset-bottom));color:#315c40;pointer-events:auto;touch-action:none;background:#ffd66be6;border:2px solid #fff9;border-radius:50%;width:5rem;height:5rem;font-size:1.85rem;font-weight:900;position:absolute;box-shadow:0 8px 22px #244d3938}.collect.ready{animation:1s ease-in-out infinite collect-ready}.title-overlay{z-index:20;background:linear-gradient(#92cbd0,#dcebc4 70%,#fff3d6);place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.title-card{text-align:center;background:#fff8e7eb;border:1px solid #ffffffad;border-radius:2rem;width:min(26rem,100%);padding:2.4rem 2rem;animation:.48s cubic-bezier(.2,.9,.2,1.1) card-in;box-shadow:0 24px 70px #244d3933}.title-card__clover{color:#e8b63f;margin:0;font-size:4.5rem;line-height:1}.title-card h1{color:#315c40;letter-spacing:-.01em;margin:.4rem 0 0;font-size:clamp(2.2rem,9vw,3.2rem)}.title-card__tagline{color:#56725f;margin:.6rem 0;font-size:.95rem}.title-card__seed{color:#56725f;margin:.5rem 0 1.2rem;font-size:.85rem}.title-card__seed strong{color:#315c40}.play{color:#315c40;cursor:pointer;letter-spacing:.02em;background:#ffd66b;border:0;border-radius:999px;padding:.9rem 3rem;font-size:1.15rem;font-weight:900;display:inline-block;box-shadow:0 7px #e8b94e}.play:focus-visible{outline-offset:3px;outline:3px solid #315c40}.play:active{translate:0 4px;box-shadow:0 3px #e8b94e}.title-mute{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));color:#2b553f;cursor:pointer;background:#fff8e7e0;border:0;border-radius:999px;min-width:3rem;padding:.65rem .95rem;font-size:1.1rem;position:absolute;box-shadow:0 8px 24px #244d3926}.title-mute:focus-visible{outline-offset:3px;outline:3px solid #315c40}.overlay{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#355e4842;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.card{text-align:center;background:#fff8e7;border:1px solid #ffffffad;border-radius:2rem;width:min(29rem,100%);padding:2.2rem;animation:.48s cubic-bezier(.2,.9,.2,1.1) card-in;box-shadow:0 24px 70px #244d3940}.card__clover{color:#e8b63f;margin:0;font-size:4rem;line-height:1}.card h1{color:#315c40;margin:.5rem 0 0;font-size:clamp(2rem,8vw,3rem)}.card p{color:#56725f;margin:.7rem 0}.result-time{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:900;color:#315c40!important}.replay,.share{color:#315c40;cursor:pointer;background:#ffd66b;border:0;border-radius:999px;margin-top:.6rem;padding:.85rem 1.5rem;font-weight:900;box-shadow:0 7px #e8b94e}.replay:focus-visible,.share:focus-visible,.mute:focus-visible,.back:focus-visible,.collect:focus-visible{outline-offset:3px;outline:3px solid #315c40}.replay:active,.share:active{translate:0 4px;box-shadow:0 3px #e8b94e}.share{background:#c9dec4;box-shadow:0 7px #a8c4a0}.share:active{box-shadow:0 3px #a8c4a0}.share.copied{background:#b8e6a8}@media (pointer:coarse),(width<=700px){.mobile-controls{display:block}.seed{left:50%;right:auto;bottom:max(.35rem, env(safe-area-inset-bottom));translate:-50%}.prompt,.encouragement{bottom:max(8.8rem, calc(env(safe-area-inset-bottom) + 8.2rem))}}@keyframes bob{50%{translate:0 -.4rem;rotate:7deg}}@keyframes pop{50%{color:#d99c22;scale:1.22}}@keyframes collect-ready{50%{scale:1.08;box-shadow:0 8px 30px #ffd66bb3}}@keyframes card-in{0%{opacity:0;scale:.82}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:1ms!important;animation-iteration-count:1!important}}.title-card__nick{color:#56725f;text-align:left;margin:1rem 0;font-size:.9rem;display:block}.nick-input{border:1px solid #c9dec4;border-radius:.8rem;width:100%;margin-top:.3rem;padding:.6rem .8rem;font-size:1rem}.title-card__actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1rem 0;display:flex}.title-card__actions .play{padding:.7rem 1.2rem;font-size:1rem}.join-row{justify-content:center;align-items:flex-start;gap:.5rem;margin:.8rem 0;display:flex}.join-code-field{flex-direction:column;align-items:center;gap:.15rem;display:flex}.join-code-label{color:#8aa090;letter-spacing:.05em;font-size:.72rem}.lobby-input{text-transform:uppercase;letter-spacing:.15em;text-align:center;border:1px solid #c9dec4;border-radius:.8rem;width:9.5rem;padding:.6rem .8rem;font-size:1.1rem}.lobby-input::placeholder{color:#8aa090;opacity:1;letter-spacing:.1em}.join-go{cursor:pointer;background:#ffd66b;border:0;border-radius:999px;padding:.6rem 1.2rem;font-weight:800}.title-card__hint{color:#56725f;margin-top:.8rem;font-size:.8rem}.lobby-overlay{z-index:20;background:linear-gradient(#92cbd0,#dcebc4 70%,#fff3d6);place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.lobby-card{text-align:center;background:#fff8e7eb;border:1px solid #ffffffad;border-radius:2rem;width:min(28rem,100%);padding:2rem;box-shadow:0 24px 70px #244d3933}.lobby-code-row{justify-content:center;align-items:center;gap:.6rem;margin:1rem 0;display:flex}.lobby-code{letter-spacing:.2em;color:#315c40;cursor:pointer;-webkit-user-select:all;user-select:all;font-size:2.4rem;font-weight:900}.copy-code{cursor:pointer;background:#c9dec4;border:0;border-radius:999px;padding:.4rem .8rem;font-weight:700}.lobby-seed{color:#56725f;font-size:.85rem}.player-list{text-align:left;background:#fff9;border-radius:1rem;min-height:4rem;margin:1rem 0;padding:.8rem}.player-row{background:#fffc;border-radius:.6rem;justify-content:space-between;margin-bottom:.4rem;padding:.4rem .6rem;display:flex}.lobby-actions{justify-content:center;gap:.6rem;margin:1rem 0;display:flex}.ready,.start{cursor:pointer;border:0;border-radius:999px;padding:.7rem 1.4rem;font-weight:800}.ready{background:#c9dec4}.ready.ready{background:#b8e6a8}.start{background:#ffd66b}.start:disabled{opacity:.5;cursor:not-allowed}.countdown{color:#315c40;margin:1rem 0;font-size:1.4rem;font-weight:900}.lobby-hint{color:#56725f;font-size:.8rem}.kuwahara-toggle{right:max(1rem, env(safe-area-inset-right));bottom:max(2.8rem, calc(env(safe-area-inset-bottom) + 2.6rem));color:#264d3bb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;cursor:pointer;background:#fff8e794;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.72rem;display:inline-flex;position:absolute}.leaderboard{top:max(4rem, calc(env(safe-area-inset-top) + 3.5rem));left:max(1rem, env(safe-area-inset-left));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#fff8e7e0;border-radius:1rem;min-width:10rem;padding:.6rem;position:absolute}.lb-entry{border-radius:.5rem;justify-content:space-between;padding:.3rem .5rem;font-size:.85rem;font-weight:700;display:flex}.lb-entry.me{background:#ffd66b}.result-list{text-align:left;margin:1rem 0}.result-row{background:#ffffffb3;border-radius:.8rem;justify-content:space-between;margin-bottom:.4rem;padding:.6rem .8rem;font-weight:700;display:flex}.result-row.winner{background:#ffd66b;border:2px solid #e8b94e}.result-row.me{outline:2px solid #315c40}.rematch{color:#315c40;cursor:pointer;background:#a8d6d3;border:0;border-radius:999px;margin-top:.6rem;padding:.85rem 1.5rem;font-weight:900;box-shadow:0 7px #8ab8b5}.spinner{vertical-align:-.12rem;border:2px solid #315c4047;border-top-color:#315c40;border-radius:50%;width:.9rem;height:.9rem;animation:.8s linear infinite spin;display:inline-block}.preview-loading{color:#56725f;justify-content:center;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.preview-empty{color:#56725f;margin:.4rem 0;font-size:.85rem}#toast-root{left:50%;bottom:max(1.2rem, env(safe-area-inset-bottom));z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:fixed;translate:-50%}.toast{color:#fff8e7;pointer-events:auto;background:#244d39f0;border:1px solid #fff9;border-radius:999px;align-items:center;gap:.7rem;max-width:min(90vw,26rem);padding:.7rem 1rem;font-size:.9rem;font-weight:700;animation:.2s ease-out toast-in;display:flex;box-shadow:0 12px 30px #1430233d}.toast--error{background:#8a3131f2}.toast--success{background:#315c40f2}.toast--leaving{opacity:0;transition:opacity .2s}.toast__action{color:#315c40;cursor:pointer;background:#ffd66b;border:0;border-radius:999px;flex-shrink:0;padding:.35rem .8rem;font-weight:800}.toast__action:focus-visible,.offline-banner__action:focus-visible{outline-offset:2px;outline:3px solid #fff8e7}.offline-banner{top:max(1rem, env(safe-area-inset-top));z-index:60;color:#fff8e7;background:#8a3131f0;border:1px solid #fff9;border-radius:999px;align-items:center;gap:.6rem;padding:.65rem 1rem;font-size:.9rem;font-weight:800;display:flex;position:fixed;left:50%;translate:-50%;box-shadow:0 12px 30px #1430233d}.offline-banner__spinner{border:2px solid #fff8e759;border-top-color:#fff8e7;border-radius:50%;width:.9rem;height:.9rem;animation:.8s linear infinite spin}.offline-banner__action{color:#315c40;cursor:pointer;background:#ffd66b;border:0;border-radius:999px;padding:.3rem .75rem;font-weight:800}.grace-banner{top:max(1rem, env(safe-area-inset-top));z-index:70;color:#fff8e7;background:#8a3131f0;border:1px solid #fff9;border-radius:999px;align-items:center;gap:.6rem;padding:.65rem 1rem;font-size:.9rem;font-weight:800;display:flex;position:fixed;left:50%;translate:-50%;box-shadow:0 12px 30px #1430233d}.grace-banner--expired{background:#405e3cf5}.grace-banner__action{color:#315c40;cursor:pointer;background:#ffd66b;border:0;border-radius:999px;padding:.3rem .75rem;font-weight:800}.rejoin-card{z-index:80;color:#315c40;text-align:center;background:#fff8e7;border:1px solid #fff9;border-radius:1.25rem;flex-direction:column;gap:.5rem;padding:1.25rem 1.5rem;display:flex;position:fixed;top:50%;left:50%;translate:-50% -50%;box-shadow:0 16px 40px #1430234d}.rejoin-card button{cursor:pointer;border:0;border-radius:999px;padding:.55rem 1rem;font-weight:800}.rejoin-card .rejoin-now{color:#315c40;background:#ffd66b}.rejoin-card .rejoin-fresh{color:#fff8e7;background:#8a3131}.host-badge{margin-left:.25rem}.join-hint{color:#8a3131;min-height:1.1rem;margin:.25rem 0 0;font-size:.8rem}.join-hint:empty{display:none}.title-card__privacy{color:#8aa090;margin:.6rem 0 0;font-size:.72rem}.join-go:disabled{opacity:.5;cursor:not-allowed}.player-row--empty{color:#56725f;justify-content:center;font-style:italic}.lb-row.me{background:#ffd66b;border-radius:.4rem;padding-left:.5rem}.result-note{color:#56725f;margin:.6rem 0 0;font-size:.85rem}.copy-code.copied{background:#b8e6a8}.nick-input:focus-visible,.lobby-input:focus-visible{outline-offset:2px;border-color:#315c40;outline:3px solid #315c40}.wait-overlay{z-index:55;background:#14302373;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.wait-overlay__card{color:#fff8e7;text-align:center;background:#244d39f5;border:1px solid #fff9;border-radius:1rem;flex-direction:column;align-items:center;gap:.6rem;max-width:min(90vw,22rem);padding:1.2rem 1.4rem;display:flex;box-shadow:0 12px 30px #1430233d}.wait-overlay__title{font-size:1rem}.wait-overlay__detail{font-variant-numeric:tabular-nums;min-height:1.2rem;font-size:.9rem}.wait-overlay__detail:empty{display:none}.wait-overlay__cancel{color:#315c40;cursor:pointer;background:#ffd66b;border:0;border-radius:999px;padding:.4rem 1rem;font-weight:800}.wait-overlay__cancel:focus-visible{outline-offset:2px;outline:3px solid #fff8e7}@keyframes spin{to{rotate:1turn}}@keyframes toast-in{0%{opacity:0;translate:0 .5rem}}
