:root{color:#432e43;background:#9ee3ff;font-family:Hiragino Maru Gothic ProN,Yu Gothic,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0;overflow-x:hidden}body{min-height:100svh}.hole-game{height:100svh;min-height:430px;padding:max(.35rem, env(safe-area-inset-top)) max(.35rem, env(safe-area-inset-right)) max(.35rem, env(safe-area-inset-bottom)) max(.35rem, env(safe-area-inset-left));background:linear-gradient(#9ee3ff 0 22%,#a9df83 22% 100%);grid-template-rows:auto minmax(0,1fr);display:grid}.hole-tools{z-index:2;justify-content:space-between;gap:.35rem;display:flex}.hole-tools__group{gap:.35rem;display:flex}.tool{color:#432e43;touch-action:manipulation;background:#fffdf4;border:3px solid #fff;border-radius:50%;place-items:center;min-width:3rem;min-height:3rem;padding:.25rem;font-size:1.35rem;text-decoration:none;display:grid;box-shadow:0 4px #6ba857}.tool:focus-visible{outline-offset:2px;outline:4px solid #1a4f91}.playfield{touch-action:none;background:#8fd168;border:4px solid #ffffffd9;border-radius:1.25rem;min-height:0;margin-top:.35rem;position:relative;overflow:hidden;box-shadow:inset 0 -30px 70px #3d743829}canvas{touch-action:none;background:#8fd168;width:100%;height:100%;display:block}.status{z-index:2;opacity:0;pointer-events:none;background:#ffffffe0;border-radius:999px;margin:0;padding:.3rem .75rem;font-weight:900;transition:opacity .2s;position:absolute;top:.4rem;left:50%;transform:translate(-50%)}.status[data-show=true]{opacity:1}.goal-replay{z-index:3;color:#52352b;touch-action:manipulation;background:#ffcf4f;border:5px solid #fff;border-radius:50%;width:5.5rem;height:5.5rem;font-size:3rem;font-weight:900;display:none;position:absolute;bottom:10%;left:50%;transform:translate(-50%);box-shadow:0 7px #ba7929}.goal-replay[data-show=true]{place-items:center;display:grid}.goal-replay:focus-visible{outline-offset:3px;outline:5px solid #174f92}@media (height<=520px){.tool{min-width:2.6rem;min-height:2.6rem;font-size:1.1rem}}@media (prefers-reduced-motion:reduce){.status{transition:none}}
