[hidden]{display:none!important}:root{--paper:#f6f0e4;--ink:#1d1a17;--accent:#c2412d;--card:#fffaf0;--gold:#f2c43c;--green:#5c9a4f;--hud:54px}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#e9e2c8;margin:0;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif;overflow:hidden}canvas#cv{width:100%;height:100%;display:block;position:fixed;inset:0}button{font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--ink);cursor:pointer;min-height:44px;box-shadow:2px 2px 0 var(--ink);touch-action:manipulation;border-radius:999px;padding:8px 16px;font-size:16px;transition:transform 80ms}button:active{box-shadow:none;transform:translate(2px,2px)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#fff;padding:10px 28px;font-size:20px;font-weight:800}button.primary.wide{width:100%;margin:4px 0 8px}button.daily{background:var(--gold);font-weight:800}button.friends{background:#cfe8c2;font-weight:800}button.link{box-shadow:none;background:0 0;border:0;min-height:44px;text-decoration:underline}button.round{flex:none;place-items:center;width:44px;height:44px;padding:0;font-size:18px;display:grid}.hud{top:max(6px, env(safe-area-inset-top));z-index:3;align-items:center;gap:6px;display:flex;position:fixed;left:8px;right:8px}.hud.demo>:not(#mute){visibility:hidden}.hole-info{background:var(--card);border:2px solid var(--ink);border-radius:14px;flex:auto;min-width:0;max-width:560px;margin-right:auto;padding:3px 10px;line-height:1.1}.hole-info b{white-space:nowrap;text-overflow:ellipsis;font-size:16px;display:block;overflow:hidden}.hole-info small{opacity:.8;white-space:nowrap;font-size:13px;font-weight:700}.strokes{background:var(--card);border:2px solid var(--ink);border-radius:14px;flex-direction:column;align-items:center;min-width:56px;padding:2px 8px;line-height:1.05;display:flex}.strokes b{font-variant-numeric:tabular-nums;font-size:22px}.strokes small{opacity:.75;font-size:11px}.strokes.bump{animation:.3s ease-out bump}@keyframes bump{40%{transform:scale(1.2)rotate(-4deg)}}#mute.off{opacity:.5;text-decoration:line-through}@media (width<=400px){.hud{gap:4px;left:5px;right:5px}button.round{width:40px;height:44px}.strokes{min-width:48px;padding:2px 5px}}.chips{left:8px;right:8px;top:calc(max(6px, env(safe-area-inset-top)) + 52px);z-index:3;flex-wrap:nowrap;justify-content:center;gap:5px;display:flex;position:fixed}.chip{background:var(--card);border:2px solid var(--ink);border-radius:999px;flex:0 auto;grid-template-columns:30px auto auto;align-items:center;gap:4px;max-width:49%;padding:2px 10px 2px 3px;font-size:14px;font-weight:800;transition:transform .2s,opacity .2s;display:grid;position:relative}.chip.small{grid-template-columns:24px auto auto;padding-right:7px;font-size:13px}.chip.small img{width:24px!important;height:24px!important}.chip img{object-fit:contain;flex:none;width:30px;height:30px}.chip .nm{white-space:nowrap;text-overflow:ellipsis;max-width:110px;overflow:hidden}@media (width<=400px){.chips .chip:nth-child(n+3) .nm{max-width:52px}}.chip .sc{font-variant-numeric:tabular-nums;opacity:.8;margin-left:2px}.chip.turn{box-shadow:0 0 0 3px var(--gold), 2px 2px 0 var(--ink);transform:scale(1.08)}.chip.turn img{animation:.8s ease-in-out infinite hop}.chip.away{opacity:.5}.chip.away:after{content:"reconnecting…";background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.chip.gone{opacity:.35;text-decoration:line-through}.chip.done .sc:after{content:" ✓"}.chip .emo{pointer-events:none;font-size:26px;animation:1.6s ease-out forwards emo;position:absolute;top:-6px;left:50%}@keyframes emo{0%{opacity:0;transform:translate(-50%,10px)scale(.3)}15%{opacity:1;transform:translate(-50%)scale(1.3)}to{opacity:0;transform:translate(-50%,40px)scale(1)}}@keyframes hop{50%{transform:translateY(-3px)rotate(-6deg)}}.banner{z-index:4;pointer-events:none;text-align:center;position:fixed;top:30%;left:0;right:0}.banner b{color:#fff;-webkit-text-stroke:3px var(--ink);text-shadow:4px 4px 0 var(--ink);font-size:clamp(34px,10vw,64px);font-weight:900;display:block}.banner small{background:var(--ink);color:#fff;border-radius:999px;max-width:90vw;margin-top:6px;padding:4px 14px;font-size:16px;font-weight:800;display:inline-block}.banner.show{animation:1.6s ease-out forwards banner}@keyframes banner{0%{opacity:0;transform:scale(.3)rotate(-8deg)}12%{opacity:1;transform:scale(1.12)rotate(2deg)}20%{transform:scale(1)rotate(0)}80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}.bottom{left:8px;right:8px;bottom:calc(max(4px, env(safe-area-inset-bottom)) + 16px);z-index:3;pointer-events:none;align-items:flex-end;gap:8px;display:flex;position:fixed}.caddie{flex:auto;align-items:flex-end;gap:6px;min-width:0;display:flex}.caddie img{object-fit:contain;transform-origin:50% 100%;filter:drop-shadow(1px 3px #1d1a1740);flex:none;width:52px;height:56px}.caddie img.hop{animation:.6s ease-out chop}.caddie img.shake{animation:.5s ease-out cshake}.caddie img.spin{animation:1s ease-out cspin}@keyframes chop{30%{transform:translateY(-14px)scale(.9,1.12)}60%{transform:translateY(0)scale(1.12,.88)}}@keyframes cshake{20%,60%{transform:rotate(-12deg)}40%,80%{transform:rotate(12deg)}}@keyframes cspin{50%{transform:translateY(-24px)rotate(180deg)}to{transform:rotate(360deg)}}.caddie p{background:var(--card);border:2px solid var(--ink);border-radius:14px 14px 14px 4px;max-width:300px;margin:0 0 18px;padding:6px 10px;font-size:14px;font-weight:700;line-height:1.25;box-shadow:2px 2px #1d1a174d}.caddie p.pop{animation:.3s cubic-bezier(.3,1.6,.5,1) say}@keyframes say{0%{opacity:0;transform:scale(.6)}}.emotes{pointer-events:auto;flex:none;gap:3px;margin-bottom:14px;display:flex}.emotes button{width:44px;height:44px;box-shadow:1px 1px 0 var(--ink);padding:0;font-size:21px}@media (width<=520px){.emotes{right:6px;bottom:calc(max(4px, env(safe-area-inset-bottom)) + 120px);flex-direction:column;margin:0;position:fixed}.emotes button{width:44px;height:44px}.caddie p{max-width:calc(100vw - 80px);font-size:14px}.caddie img{width:46px;height:50px}}.side{z-index:2;border:2px solid var(--ink);width:230px;box-shadow:4px 4px 0 var(--ink);background:#fffaf0f0;border-radius:18px;max-height:calc(100vh - 150px);padding:10px 12px;font-size:14px;position:fixed;top:76px;right:14px;overflow:auto}.side h4{margin:0 0 4px;font-size:16px}.side ol{gap:2px;margin:4px 0;padding:0;list-style:none;display:grid}.side li{border-radius:8px;justify-content:space-between;gap:6px;padding:2px 6px;display:flex}.side li.now{background:#fff1c9;font-weight:800}.side li span:last-child{font-variant-numeric:tabular-nums}.side .who{align-items:center;gap:6px;margin-top:6px;display:flex}.side .who img{object-fit:contain;width:42px;height:42px}.side a{color:var(--accent);font-weight:800}.screen{z-index:6;touch-action:pan-y;background:#e9e2c8e0;grid-template-columns:minmax(0,1fr);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:hidden auto}.screen.see-through{background:#e9e2c873}.screen.clear{background:#1d1a172e}.card{background:var(--card);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);text-align:center;border-radius:22px;width:100%;min-width:0;max-width:460px;padding:20px;animation:.35s cubic-bezier(.3,1.4,.5,1) card-in}.card.wide-card{max-width:560px}@keyframes card-in{0%{opacity:0;transform:translateY(24px)scale(.94)}}.card h1{letter-spacing:1px;margin:0;font-size:clamp(50px,14vw,80px);line-height:.88}.card h2{margin:0 0 6px;font-size:28px}.card h3{margin:14px 0 6px;font-size:17px}.sub{margin:10px 0;font-size:16px;line-height:1.4}.small{opacity:.8;font-size:14px;line-height:1.35}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:6px 0;display:flex}.small-row{justify-content:space-between}.col{flex-direction:column;align-items:stretch;gap:10px;margin-top:10px;display:flex}.title-best{opacity:.85;margin:8px 0 0;font-size:15px;font-weight:700}.title-best:empty{display:none}.golfer-row{justify-content:center;align-items:flex-end;gap:4px;min-height:92px;margin:4px 0 10px;display:flex}.golfer-row img{object-fit:contain;transform-origin:50% 100%;width:auto;max-width:30%;height:84px;animation:1.3s ease-in-out infinite alternate bob}.golfer-row img:nth-child(2){height:96px;animation-delay:.2s}.golfer-row img:nth-child(3){animation-delay:.4s}@keyframes bob{0%{transform:translateY(0)rotate(-4deg)scale(1)}to{transform:translateY(-8px)rotate(4deg)scale(.97,1.04)}}.chip-btn{align-items:center;gap:6px;padding:3px 14px 3px 4px;font-weight:800;display:flex}.chip-btn img{object-fit:contain;width:36px;height:36px}.stars-total{margin:0 0 8px;font-weight:800}.course-list{text-align:left;gap:12px;margin:8px 0 14px;display:grid}.course{border:2px solid var(--ink);background:#fff;border-radius:18px;padding:10px 12px;position:relative;overflow:hidden}.course.garden{background:linear-gradient(135deg,#eef7e3,#d7ecc6)}.course.swamp{background:linear-gradient(135deg,#e3ece0,#c4d9cf)}.course.night{color:#fff;background:linear-gradient(135deg,#2a3157,#1f2442)}.course.locked{opacity:.85}.course .top{align-items:center;gap:10px;display:flex}.course .top img{object-fit:contain;flex:none;width:56px;height:56px;animation:1.4s ease-in-out infinite alternate bob}.course h3{margin:0;font-size:20px}.course p{margin:2px 0;font-size:14px;line-height:1.3}.course .meta{font-size:14px;font-weight:800}.holes{grid-template-columns:repeat(9,1fr);gap:3px;margin:8px 0;display:grid}.holes button{min-height:44px;box-shadow:1px 1px 0 var(--ink);color:var(--ink);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:2px 0;font-size:13px;font-weight:800;line-height:1.05;display:flex}.holes button small{letter-spacing:-1px;color:#b8860b;font-size:9px}.course .go{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.course .go button.primary{padding:8px 18px;font-size:17px}.course .lock{font-weight:800}.mp-tabs,.seg{flex-wrap:wrap;justify-content:center;gap:6px;margin:8px 0;display:flex}.tab,.seg button{box-shadow:1px 1px 0 var(--ink);font-weight:700}.tab.on,.seg button.on{background:var(--ink);color:#fff}.local-players{gap:6px;margin:8px 0;display:grid}.lp{align-items:center;gap:6px;display:flex}.lp button.pick{border-radius:14px;flex:none;width:52px;height:52px;padding:2px}.lp button.pick img{object-fit:contain;width:100%;height:100%}.lp input{min-width:0;font:inherit;border:2px solid var(--ink);-webkit-user-select:text;user-select:text;touch-action:manipulation;background:#fff;border-radius:12px;flex:1;min-height:44px;padding:6px 10px;font-size:17px}.lp .dot{border:2px solid var(--ink);border-radius:50%;flex:none;width:14px;height:14px}.golfer-grid{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px;margin:10px 0;display:grid}.golfer-grid button{border-radius:14px;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;height:104px;padding:4px;font-size:10px;font-weight:700;line-height:1.1;display:flex;position:relative}.golfer-grid button img{object-fit:contain;flex:1;max-width:100%;min-height:0}.golfer-grid button.sel{box-shadow:0 0 0 3px var(--gold), 2px 2px 0 var(--ink);background:#fff1c9}.golfer-grid button.locked{background:#efe7d6}.golfer-grid button.locked .q{opacity:.4;flex:1;place-items:center;font-size:34px;font-weight:900;display:grid}.golfer-grid button .tee{color:var(--accent);font-size:9px;font-weight:900;position:absolute;top:3px;right:4px}.golfer-shop{min-height:24px;margin:4px 0 10px;font-weight:700}.golfer-shop a{color:var(--accent);font-weight:800}.steps{text-align:left;flex-direction:column;gap:8px;margin:8px 0 14px;display:flex}.steps>div{background:#f3ead8;border-radius:14px;align-items:center;gap:10px;padding:6px 10px;animation:.4s cubic-bezier(.3,1.4,.5,1) both card-in;display:flex}.steps p{margin:0;font-size:15px;line-height:1.35}.pics{flex:0 0 64px;justify-content:center;align-items:center;gap:1px;height:52px;font-size:28px;font-weight:900;display:flex}.pics img{object-fit:contain;max-width:60px;max-height:50px;animation:1s ease-in-out infinite alternate bob}.hole-card{max-width:360px}.word{color:var(--accent);margin:0;font-size:46px;font-weight:900;line-height:1}.word.ace{color:#d18a00;animation:.6s cubic-bezier(.3,1.8,.5,1) wordpop}@keyframes wordpop{0%{transform:scale(.3)rotate(-12deg)}}.he-sub{margin:6px 0;font-size:17px;font-weight:700}.he-stars{justify-content:center;gap:6px;min-height:0;font-size:38px;display:flex}.he-stars span{color:#d8cfb8;-webkit-text-stroke:2px var(--ink);display:inline-block}.he-stars span.got{color:var(--gold);animation:.5s cubic-bezier(.3,1.8,.5,1) both wordpop}.he-players{gap:4px;margin:6px 0;display:grid}.he-players div{justify-content:center;align-items:center;gap:6px;font-size:16px;font-weight:800;display:flex}.he-players img{object-fit:contain;width:30px;height:30px}.sc-wrap{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;margin:8px 0;overflow-x:auto}.sc{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.sc th,.sc td{border:1.5px solid var(--ink);text-align:center;min-width:26px;padding:4px 3px}.sc th{background:#f3ead8;font-size:12px}.sc td.name{text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-weight:800;overflow:hidden}.sc td.name img{object-fit:contain;vertical-align:middle;width:22px;height:22px;margin-right:3px}.sc td.tot{background:#fff1c9;font-weight:900}.sc td.u{background:#dff0d4}.sc td.o{background:#f8ddd5}.sc td.ace{background:#ffe58a;font-weight:900}.sc tr.par td{opacity:.75;font-size:12px}@media (width<=480px){.sc{font-size:13px}.sc th,.sc td{min-width:20px;padding:3px 1px}.sc td.name{max-width:72px}.sc td.name img{width:18px;height:18px}}.sc td.now{outline:3px solid var(--gold);outline-offset:-3px}.big{font-variant-numeric:tabular-nums;margin:0;font-size:52px;font-weight:900;line-height:1.05}.re-sub{margin:2px 0 8px;font-weight:700}.medals{justify-content:center;gap:8px;margin:4px 0 12px;display:flex}.medal{border:2px solid var(--ink);opacity:.45;background:#efe7d6;border-radius:14px;width:72px;padding:4px 0}.medal span{font-size:28px;line-height:1.1;display:block}.medal small{font-size:10px;font-weight:800}.medal.ever{opacity:.7}.medal.got{opacity:1;background:#fff1c9}.share{margin:10px 0}.share pre{white-space:pre-wrap;-webkit-user-select:text;user-select:text;background:#f3ead8;border-radius:12px;margin:0 0 6px;padding:8px;font:14px/1.4 ui-monospace,Menlo,monospace}.met{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.met div{border:2px solid var(--ink);background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 4px;font-size:12px;line-height:1.15;animation:.4s cubic-bezier(.3,1.4,.5,1) both card-in;display:flex}.met div.mine{background:#fff1c9}.met img{object-fit:contain;width:auto;max-width:100%;height:64px}.met a{color:var(--accent);padding:4px 0;font-size:13px;font-weight:800}.shop-all{color:var(--ink);margin-top:12px;padding:8px 0;font-weight:800;display:block}.tut{z-index:5;pointer-events:none;position:fixed;inset:0}.tut-card{right:8px;top:calc(max(6px, env(safe-area-inset-top)) + 54px);pointer-events:auto;position:absolute}.tut-card button.link{background:var(--ink);color:var(--paper);border-radius:999px;min-height:36px;padding:4px 14px;font-size:14px;text-decoration:none}.caddie p.coach{background:var(--ink);color:var(--paper);max-width:340px;font-size:16px}.tut-hand{border:4px solid var(--accent);background:#c2412d33;border-radius:50%;width:46px;height:46px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #c2412d1f}.tut-hand.drag{animation:1.8s ease-in-out infinite tdrag}@keyframes tdrag{0%,15%{translate:0;scale:1}25%{scale:.8}70%{translate:0 var(--dy,90px);scale:.8}85%,to{translate:0 var(--dy,90px);opacity:0;scale:1.1}}.credit{bottom:max(1px, env(safe-area-inset-bottom));text-align:center;z-index:4;pointer-events:none;font-size:12px;position:fixed;left:0;right:0}.credit a{color:var(--ink);pointer-events:auto;background:#fffaf0b3;border-radius:8px;padding:2px 6px;font-weight:700}body.night .credit a{color:var(--ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
