:root{--felt: #23b558;--felt-deep: #0c7a38;--cream: #fff9ee;--ink: #1b3a26;--flag: #ff4f3f;--sun: #ffd34d;--shadow: 0 4px 0 rgb(0 0 0 / .22)}*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}body{font-family:Fredoka,system-ui,sans-serif;color:var(--ink);background:repeating-linear-gradient(100deg,#ffffff0f 0,#ffffff0f 42px,#0000000d 42px,#0000000d 84px),linear-gradient(165deg,var(--felt),var(--felt-deep));background-attachment:fixed;min-height:100dvh}.page{max-width:480px;margin:0 auto;padding:16px 14px calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.page.center{justify-content:center;min-height:100dvh}.logo{text-align:center;font-weight:700;font-size:clamp(2.4rem,13vw,3.4rem);letter-spacing:.02em;color:var(--cream);text-shadow:3px 3px 0 var(--ink);margin-top:10px;-webkit-user-select:none;user-select:none}.logo span{display:inline-block}.logo span:nth-child(odd){transform:rotate(-4deg) translateY(-2px)}.logo span:nth-child(2n){transform:rotate(3deg) translateY(2px)}.logo-ball{animation:bounce 2.2s ease-in-out infinite;margin:0 .15em}.logo.small{font-size:3rem;text-shadow:none}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px) rotate(8deg)}}.tagline{text-align:center;color:var(--cream);font-size:1.05rem;margin-top:-8px}.card{background:var(--cream);border:3px solid var(--ink);border-radius:18px;box-shadow:var(--shadow);padding:14px;display:flex;flex-direction:column;gap:10px}.card h2{font-size:1.15rem;font-weight:600}.field{display:flex;flex-direction:column;gap:4px;font-size:.85rem;font-weight:500}input,select{font:inherit;color:inherit;background:#fff;border:2.5px solid var(--ink);border-radius:12px;padding:10px 12px;width:100%;min-width:0}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.row{display:flex;gap:10px;align-items:flex-end}.grow{flex:1}.holes-field{width:84px}.code-input{width:110px;text-align:center;font-size:1.4rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.emoji-row{display:flex;flex-wrap:wrap;gap:6px}.emoji-btn{font-size:1.5rem;background:#fff;border:2.5px solid transparent;border-radius:12px;padding:4px 7px;cursor:pointer;transition:transform .1s}.emoji-btn.picked{border-color:var(--ink);background:var(--sun);transform:scale(1.15) rotate(-6deg)}button{font-family:inherit;cursor:pointer;touch-action:manipulation}.big-btn{font-size:1.15rem;font-weight:600;color:var(--cream);background:var(--flag);border:3px solid var(--ink);border-radius:14px;padding:12px;box-shadow:var(--shadow);transition:transform .08s,box-shadow .08s}.big-btn:active{transform:translateY(4px);box-shadow:none}.big-btn.quiet{background:var(--cream);color:var(--ink)}.big-btn:disabled{opacity:.55;cursor:not-allowed}.error{color:var(--flag);font-weight:500;font-size:.9rem}.hint{font-size:.9rem;opacity:.8}.game-header{display:flex;align-items:center;gap:10px}.game-title{flex:1;min-width:0;text-align:center}.game-title h1{color:var(--cream);font-size:1.35rem;font-weight:600;text-shadow:2px 2px 0 rgb(0 0 0 / .25);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip{font-size:1rem;font-weight:600;background:var(--cream);border:2.5px solid var(--ink);border-radius:999px;padding:6px 12px;box-shadow:var(--shadow)}.chip:active{transform:translateY(3px);box-shadow:none}.code-chip{padding:2px 12px;background:var(--sun)}.live-pill{align-self:center;font-size:.75rem;font-weight:500;color:var(--cream);background:#00000040;border-radius:999px;padding:2px 12px}.live-pill.live:before{content:"●";color:#7dff9e;margin-right:5px;animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.35}}.standings{display:flex;gap:8px;overflow-x:auto;padding:2px;scrollbar-width:none}.standing-chip{flex-shrink:0;font-size:.85rem;font-weight:500;background:var(--cream);border:2px solid var(--ink);border-radius:999px;padding:4px 10px}.hole-nav{display:flex;align-items:center;gap:12px}.nav-btn{font-size:1.3rem;color:var(--ink);background:var(--sun);border:3px solid var(--ink);border-radius:14px;padding:10px 16px;box-shadow:var(--shadow)}.nav-btn:active{transform:translateY(4px);box-shadow:none}.nav-btn:disabled{opacity:.4}.flag{position:relative;width:74px;height:58px;flex-shrink:0}.flag:before{content:"";position:absolute;left:4px;top:0;width:5px;height:100%;background:var(--cream);border-radius:3px;box-shadow:2px 2px #0003}.flag-num{position:absolute;left:9px;top:2px;width:62px;height:40px;background:var(--flag);clip-path:polygon(0 0,100% 50%,0 100%);color:var(--cream);font-size:1.5rem;font-weight:700;display:flex;align-items:center;padding-left:12px;transform-origin:left center;animation:wave 3s ease-in-out infinite}@keyframes wave{0%,to{transform:skewY(0)}50%{transform:skewY(-4deg)}}.hole-label{flex:1;color:var(--cream);font-size:1.2rem;font-weight:600;text-shadow:2px 2px 0 rgb(0 0 0 / .25)}.hole-label small{display:block;font-size:.8rem;font-weight:400;opacity:.85}.players{display:flex;flex-direction:column;gap:10px}.player-row{flex-direction:row;align-items:center;gap:8px;padding:10px 12px}.player-row.me{background:#fff3cf}.order-badge{font-size:.8rem;font-weight:700;color:var(--cream);background:var(--ink);border-radius:999px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.player-emoji{font-size:1.5rem}.player-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name small{display:block;font-size:.72rem;font-weight:400;opacity:.7}.move-btns{display:flex;flex-direction:column;gap:2px}.move-btn{font-size:.7rem;background:none;border:none;padding:1px 4px;color:var(--ink);opacity:.6}.stepper{display:flex;align-items:center;gap:6px}.step-btn{font-size:1.4rem;font-weight:600;width:42px;height:42px;color:var(--ink);background:var(--sun);border:2.5px solid var(--ink);border-radius:50%;box-shadow:0 3px #00000038;display:flex;align-items:center;justify-content:center}.step-btn:active{transform:translateY(3px);box-shadow:none}.step-btn:disabled{opacity:.35}.score-box{position:relative;width:40px;text-align:center}.score-num{display:inline-block;font-size:1.6rem;font-weight:700;animation:pop .25s ease-out}@keyframes pop{0%{transform:scale(1.6)}70%{transform:scale(.9)}to{transform:scale(1)}}.ace{position:absolute;top:-14px;left:50%;translate:-50% 0;font-size:.62rem;font-weight:700;color:var(--cream);background:var(--flag);border-radius:999px;padding:1px 7px;animation:ace-pop .4s cubic-bezier(.2,2.2,.4,1);white-space:nowrap}@keyframes ace-pop{0%{transform:scale(0) rotate(-20deg)}to{transform:scale(1) rotate(0)}}.invite-hint{text-align:center;color:var(--cream);opacity:1;text-shadow:1px 1px 0 rgb(0 0 0 / .3)}.table-scroll{overflow-x:auto}.scorecard table{border-collapse:collapse;font-size:.85rem;white-space:nowrap}.scorecard th,.scorecard td{border:1.5px solid color-mix(in srgb,var(--ink) 30%,transparent);padding:5px 8px;text-align:center;min-width:30px}.scorecard th{background:#0000000d;cursor:pointer}.scorecard th:first-child,.scorecard td:first-child{text-align:left;position:sticky;left:0;background:var(--cream);max-width:120px;overflow:hidden;text-overflow:ellipsis}.scorecard .current{background:var(--sun)}.total-cell{font-weight:700}.modal-veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}.modal{width:100%;max-width:340px;text-align:center;animation:modal-in .25s cubic-bezier(.2,1.6,.4,1)}@keyframes modal-in{0%{transform:scale(.7);opacity:0}}.qr{width:100%;aspect-ratio:1;border-radius:8px;background:#fff}.loading{color:var(--cream);font-size:1.3rem;font-weight:600;text-align:center;animation:pulse 1.5s infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
