:root{--k-ink:#15324a;--k-ink-soft:#456377;--k-cream:#fff8ec;--k-paper:#fffdf8;--k-sand:#f6e2b8;--k-sun:#ffc23a;--k-sun-deep:#e08a12;--k-coral:#ff6a55;--k-coral-deep:#d13d33;--k-lagoon:#1fc3c0;--k-lagoon-deep:#0b8a93;--k-sea:#0d6f9a;--k-leaf:#3cb15b;--k-leaf-deep:#23803d;--k-night:#0c2236;--k-accent:var(--k-leaf);--k-accent-deep:var(--k-leaf-deep);--k-accent-ink:#fff;--k-display:"Fraunces", "Georgia", serif;--k-body:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--k-display-axes:"SOFT" 100, "WONK" 0, "opsz" 96;--k-r-s:12px;--k-r-m:18px;--k-r-l:28px;--k-r-pill:999px;--k-lift:0 1px 0 #fff9 inset, 0 10px 30px #0c22362e, 0 2px 6px #0c22361f;--k-float:0 24px 60px #0c223647, 0 6px 16px #0c223629;--k-glass:#fffaf0db;--k-glass-dark:#0c22369e;--k-ease:cubic-bezier(.2, .9, .25, 1.15);--k-ease-out:cubic-bezier(.16, 1, .3, 1);--k-fast:.14s;--k-med:.28s;--k-slow:.52s}.k-root,.k-root *{box-sizing:border-box}.k-root{font-family:var(--k-body);color:var(--k-ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.k-display{font-family:var(--k-display);font-variation-settings:var(--k-display-axes);letter-spacing:-.01em;font-weight:900}.k-btn{--b:var(--k-accent);--bd:var(--k-accent-deep);--bi:var(--k-accent-ink);appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:var(--k-r-m);min-height:56px;font-family:var(--k-display);font-variation-settings:var(--k-display-axes);letter-spacing:.005em;color:var(--bi);background:linear-gradient(180deg, color-mix(in srgb, var(--b) 78%, #fff) 0%, var(--b) 55%, color-mix(in srgb, var(--b) 88%, var(--bd)) 100%);box-shadow:0 2px 0 #ffffff73 inset, 0 6px 0 var(--bd), 0 14px 26px color-mix(in srgb, var(--bd) 45%, transparent);text-shadow:0 2px 0 color-mix(in srgb, var(--bd) 70%, transparent);transition:transform var(--k-fast) var(--k-ease-out), box-shadow var(--k-fast) var(--k-ease-out), filter var(--k-fast);border:0;justify-content:center;align-items:center;gap:10px;padding:0 26px;font-size:21px;font-weight:800;display:inline-flex;transform:translateY(0)}.k-btn:hover{filter:brightness(1.05)}.k-btn:active,.k-btn.is-pressed{box-shadow:0 2px 0 #ffffff59 inset, 0 1px 0 var(--bd), 0 4px 10px color-mix(in srgb, var(--bd) 40%, transparent);transform:translateY(5px)}.k-btn:focus-visible{box-shadow:0 2px 0 #ffffff73 inset, 0 6px 0 var(--bd), 0 0 0 5px color-mix(in srgb, var(--k-sun) 70%, transparent);outline:none}.k-btn:disabled{filter:grayscale(.7)opacity(.6);cursor:default}.k-btn.sun{--b:var(--k-sun);--bd:var(--k-sun-deep);--bi:#4a2a00;text-shadow:0 1px #ffffff80}.k-btn.coral{--b:var(--k-coral);--bd:var(--k-coral-deep);--bi:#fff}.k-btn.lagoon{--b:var(--k-lagoon);--bd:var(--k-lagoon-deep);--bi:#fff}.k-btn.cream{--b:var(--k-paper);--bd:#e6d3ad;--bi:var(--k-ink);text-shadow:none}.k-btn.big{border-radius:22px;min-height:66px;padding:0 34px;font-size:25px}.k-btn.small{min-height:44px;box-shadow:0 2px 0 #ffffff73 inset, 0 4px 0 var(--bd), 0 8px 16px color-mix(in srgb, var(--bd) 40%, transparent);border-radius:14px;padding:0 16px;font-size:17px}.k-btn.small:active{transform:translateY(3px)}.k-btn.wide{width:100%}.k-icon{appearance:none;cursor:pointer;touch-action:manipulation;width:46px;height:46px;color:var(--k-ink);background:var(--k-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform var(--k-fast) var(--k-ease-out);border:0;border-radius:50%;place-items:center;display:grid;box-shadow:0 3px #e2cfa6,0 8px 18px #0c223633}.k-icon:active{transform:translateY(3px);box-shadow:0 0 #e2cfa6,0 4px 10px #0c223633}.k-icon svg{width:22px;height:22px}.k-chip{border-radius:var(--k-r-pill);background:var(--k-glass);min-height:40px;color:var(--k-ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;align-items:center;gap:8px;padding:6px 14px;font-size:15px;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 3px #e2cfa6e6,0 8px 20px #0c22362e}.k-chip .k-chip-label{letter-spacing:.12em;text-transform:uppercase;color:var(--k-ink-soft);font-size:11px;font-weight:900}.k-chip .k-chip-big{font-family:var(--k-display);font-variation-settings:var(--k-display-axes);font-size:20px;font-weight:900}.k-chip.dark{background:var(--k-glass-dark);color:#fff;box-shadow:0 8px 20px #00000040}.k-chip.dark .k-chip-label{color:#ffffffb3}.k-chip.accent{background:var(--k-accent);color:var(--k-accent-ink);box-shadow:0 3px 0 var(--k-accent-deep), 0 8px 20px #0c223633}.k-shell{padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.k-screen{width:min(460px,100%);max-height:100%;animation:k-rise var(--k-slow) var(--k-ease-out) both;flex-direction:column;display:flex}.k-screen.wide{width:min(760px,100%)}@keyframes k-rise{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:none}}@keyframes k-pop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}@keyframes k-fade{0%{opacity:0}to{opacity:1}}.k-stack{gap:14px;display:grid}.k-row{align-items:center;gap:12px;display:flex}.k-row.center{justify-content:center}.k-row.wrap{flex-wrap:wrap}.k-card{background:var(--k-paper);border-radius:var(--k-r-l);box-shadow:var(--k-float);padding:22px;position:relative;overflow:hidden}.k-card.glass{background:var(--k-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.k-card h2,.k-sheet h2{font-family:var(--k-display);font-variation-settings:var(--k-display-axes);margin:0 0 4px;font-size:30px;font-weight:900;line-height:1.05}.k-card .k-sub,.k-sheet .k-sub{color:var(--k-ink-soft);margin:0 0 16px;font-size:15px;font-weight:700}.k-scrim{animation:k-fade var(--k-med) both;z-index:40;background:#0c22366b;position:fixed;inset:0}.k-sheet{z-index:41;overscroll-behavior:contain;background:var(--k-paper);border-radius:var(--k-r-l) var(--k-r-l) 0 0;width:min(520px,100%);max-height:88dvh;padding:14px 22px max(22px, env(safe-area-inset-bottom));animation:k-sheet var(--k-slow) var(--k-ease-out) both;position:fixed;bottom:0;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 -20px 60px #0c22364d}.k-sheet:before{content:"";background:#e7d8bb;border-radius:3px;width:44px;height:5px;margin:0 auto 14px;display:block}@keyframes k-sheet{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}@media (width>=700px) and (height>=560px){.k-sheet{border-radius:var(--k-r-l);padding-bottom:24px;animation-name:k-dialog;bottom:50%;transform:translate(-50%,50%)}.k-sheet:before{display:none}@keyframes k-dialog{0%{opacity:0;transform:translate(-50%,54%)scale(.96)}to{opacity:1;transform:translate(-50%,50%)}}}.k-close{position:absolute;top:12px;right:12px}.k-setting{border-radius:var(--k-r-m);background:var(--k-cream);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;font-weight:800;display:flex}.k-setting small{color:var(--k-ink-soft);margin-top:2px;font-size:13px;font-weight:700;display:block}.k-toggle{appearance:none;cursor:pointer;width:58px;height:34px;transition:background var(--k-med);background:#d9cdb6;border:0;border-radius:17px;flex:none;position:relative;box-shadow:inset 0 2px 4px #0c22362e}.k-toggle:after{content:"";width:28px;height:28px;transition:transform var(--k-med) var(--k-ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 3px 8px #0c22364d}.k-toggle[aria-checked=true]{background:var(--k-accent)}.k-toggle[aria-checked=true]:after{transform:translate(24px)}.k-seg{background:#eadfc8;border-radius:14px;flex:none;gap:4px;padding:4px;display:inline-flex}.k-seg button{appearance:none;cursor:pointer;font:800 14px var(--k-body);color:var(--k-ink-soft);background:0 0;border:0;border-radius:10px;padding:8px 12px}.k-seg button[aria-pressed=true]{color:var(--k-ink);background:#fff;box-shadow:0 2px 6px #0c22362e}.k-range{appearance:none;background:linear-gradient(90deg, var(--k-accent) var(--v,50%), #ddd0b6 var(--v,50%));border-radius:5px;outline:none;width:140px;height:10px}.k-range::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:26px;height:26px;box-shadow:0 3px 8px #0c223659}.k-range::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:26px;height:26px;box-shadow:0 3px 8px #0c223659}.k-score{border-collapse:separate;border-spacing:3px;font-variant-numeric:tabular-nums;width:100%}.k-score th,.k-score td{text-align:center;border-radius:8px;min-width:26px;padding:7px 2px;font-size:14px;font-weight:800}.k-score th{color:var(--k-ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.k-score th[scope=row]{text-align:left;padding-left:8px}.k-score td{background:var(--k-cream)}.k-score td.total{background:var(--k-ink);color:#fff}.k-score td.now{box-shadow:0 0 0 3px var(--k-sun) inset}.k-score .k-mark{place-items:center;width:26px;height:26px;display:inline-grid}.k-score .k-mark.under{background:var(--k-coral);color:#fff;border-radius:50%}.k-score .k-mark.under2{background:var(--k-sun);color:#4a2a00;box-shadow:0 0 0 3px var(--k-coral);border-radius:50%}.k-score .k-mark.over{color:var(--k-sea);background:#cfe6ef;border-radius:6px}.k-score .k-mark.over2{background:var(--k-sea);color:#fff;border-radius:6px}@media (width<=420px){.k-score{border-spacing:2px}.k-score th,.k-score td{border-radius:6px;min-width:0;padding:6px 0;font-size:13px}.k-score th{letter-spacing:.04em;font-size:10px}.k-score th[scope=row]{padding-left:2px}.k-score .k-mark{width:22px;height:22px}}.k-big-result{font-family:var(--k-display);font-variation-settings:var(--k-display-axes);color:var(--k-accent-deep);margin:4px 0 8px;font-size:clamp(44px,12vw,76px);font-weight:900;line-height:.95}.k-stat{border-radius:var(--k-r-m);background:var(--k-cream);text-align:center;flex:1;align-content:center;align-self:stretch;gap:2px;padding:12px 14px;display:grid}.k-stat b{font-family:var(--k-display);font-variation-settings:var(--k-display-axes);font-size:26px;font-weight:900}.k-stat span{letter-spacing:.1em;text-transform:uppercase;color:var(--k-ink-soft);font-size:11px;font-weight:900}.k-sound-chip{top:var(--k-sound-top,calc(max(14px, env(safe-area-inset-top)) + 64px));z-index:60;border-radius:var(--k-r-pill);cursor:pointer;background:var(--k-ink);color:#fff;font:800 14px var(--k-body);animation:k-pop var(--k-slow) var(--k-ease) both;border:0;align-items:center;gap:8px;padding:10px 16px;display:inline-flex;position:fixed;left:50%;translate:-50%;box-shadow:0 10px 26px #0c223659}.k-sound-chip svg{width:18px;height:18px}.k-burst{font-family:var(--k-display);font-variation-settings:var(--k-display-axes);color:#fff;text-align:center;-webkit-text-stroke:0;text-shadow:0 4px 0 var(--k-accent-deep), 0 10px 30px #0c223673;animation:k-pop .6s var(--k-ease) both;font-weight:900;line-height:.9}@media (prefers-reduced-motion:reduce){.k-root *,.k-root :before,.k-root :after{transition-duration:1ms!important;animation-duration:1ms!important}}:root{--k-accent:#2fb565;--k-accent-deep:#1b7c41;--k-accent-ink:#fff}html,body{background:#8fdcec}.app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:fixed;inset:0;overflow:hidden}.stage{width:100%;height:100%;display:block;position:absolute;inset:0}.grow{flex:1}.veil{pointer-events:none;background:linear-gradient(#fff6de8c 0%,#fff6de00 30% 55%,#0c324659 100%);position:absolute;inset:0}.topbar{padding:max(12px, env(safe-area-inset-top)) 14px 0;z-index:5;align-items:center;gap:10px;display:flex;position:absolute;top:0;left:0;right:0}.wordmark{font-family:var(--k-display);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 144;letter-spacing:-.035em;color:#fff7df;background:linear-gradient(#fffaf0 15%,#ffe39a 60%,#ffc23a 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 5px #e2841c)drop-shadow(0 7px #b65e0e)drop-shadow(0 22px 30px #0c223666);-webkit-background-clip:text;background-clip:text;align-items:center;margin:0;font-size:clamp(76px,23vw,156px);font-weight:900;line-height:.9;display:inline-flex}.wordmark.small{filter:drop-shadow(0 3px #e2841c)drop-shadow(0 8px 14px #0c223640);margin-bottom:6px;font-size:46px}.o-ball{background:radial-gradient(circle at 34% 30%,#fff 0 12%,#0000 32%),radial-gradient(circle at 60% 66%,#00000014 0 2px,#0000 3px) 0 0/.11em .11em,radial-gradient(circle at 38% 34%,#fff 0%,#f4efe4 45%,#cfc6b4 100%);border-radius:50%;width:.66em;height:.66em;margin:0 .035em;display:inline-block;position:relative;top:.04em}.tagline{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.22em;text-transform:uppercase;color:#fff;background:#0c32468c;border-radius:999px;margin:14px 0 0;padding:7px 16px;font-size:13px;font-weight:900}.menu{padding:calc(max(12px, env(safe-area-inset-top)) + 70px) 16px max(20px, env(safe-area-inset-bottom));text-align:center;animation:k-rise var(--k-slow) var(--k-ease-out) both;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.menu>.wordmark{margin-top:4vh}.menu .tagline{margin-top:14px}.menu-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:min(440px,100%);box-shadow:var(--k-float);background:#fffaf0cc;border-radius:30px;gap:14px;margin-top:auto;padding:18px;display:grid}.menu-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.menu-grid .k-btn{padding:0 10px;font-size:17px}@media (width>=900px) and (height>=600px){.menu{justify-content:center;gap:26px}.menu-card{margin-top:20px}}@media (height<=520px) and (orientation:landscape){.menu{flex-direction:row;justify-content:space-around;padding-top:60px}.menu>.wordmark{margin:0;font-size:84px}.menu .tagline{display:none}.menu-card{gap:10px;width:min(420px,55vw);margin:0;padding:14px}.menu-card .k-btn.big{min-height:54px}.menu-card .k-btn{min-height:46px}}.panel-wrap{padding:calc(max(12px, env(safe-area-inset-top)) + 62px) 14px max(14px, env(safe-area-inset-bottom));place-items:center;display:grid;position:absolute;inset:0}.panel{width:min(640px,100%);max-height:100%;animation:k-rise var(--k-slow) var(--k-ease-out) both;flex-direction:column;padding:18px;display:flex}.panel-head{align-items:flex-start;gap:14px;display:flex}.panel-head .k-sub{margin-bottom:10px}.panel-body{overscroll-behavior:contain;margin:0 -6px;padding:4px 6px 8px;overflow:auto}.section{letter-spacing:.14em;text-transform:uppercase;color:var(--k-ink-soft);margin:14px 0 8px;font-size:12px}.course-card{background:var(--k-cream);border-radius:22px;gap:10px;padding:16px;display:grid}.course-card h3{margin:0;font-size:28px}.course-card p{color:var(--k-ink-soft);margin:0;font-weight:700}.course-art{background:linear-gradient(#4fb6ec 0%,#9fe0f3 55%,#5fe3d6 56%,#22a6c4 100%);border-radius:16px;height:120px;position:relative;overflow:hidden}.course-art .sun{background:radial-gradient(circle,#fff8d6 0 40%,#ffd76a 70%,#ffd76a00 72%);border-radius:50%;width:54px;height:54px;position:absolute;top:14px;right:28px}.course-art .isle{background:radial-gradient(at 50% 30%,#6fd35a 0 55%,#f6e2b8 58%);border-radius:50% 50% 40% 40%;height:34px;position:absolute;bottom:18px;left:12%;right:30%;box-shadow:0 6px #0000000f}.course-art .palm{transform-origin:bottom;background:#9a6a3c;border-radius:3px;width:6px;height:52px;position:absolute;bottom:44px;left:34%;transform:rotate(8deg)}.course-art .palm:after{content:"";background:radial-gradient(#2f9e48 0 60%,#0000 62%);border-radius:50%;width:50px;height:22px;position:absolute;top:-16px;left:-22px;box-shadow:14px 6px 0 -4px #3bb357,-12px 8px 0 -5px #2a8a40}.facts span{background:#fff;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800}.hole-names{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.hole-names li{background:#fff;border-radius:12px;align-items:baseline;gap:8px;padding:7px 10px;font-size:14px;font-weight:800;display:flex}.hole-names li b{color:var(--k-accent-deep)}.hole-names li em{color:var(--k-ink-soft);margin-left:auto;font-size:12px;font-style:normal}.hole-pick{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.hole-btn{appearance:none;cursor:pointer;text-align:left;background:var(--k-cream);color:var(--k-ink);font:800 15px var(--k-body);transition:transform var(--k-fast) var(--k-ease-out);border:0;border-radius:18px;gap:2px;padding:12px 14px;display:grid;box-shadow:0 4px #e6d3ad,0 10px 18px #0c22361a}.hole-btn:active{transform:translateY(3px);box-shadow:0 1px #e6d3ad}.hole-btn b{color:var(--k-accent-deep);font-size:30px;line-height:1}.hole-btn em{color:var(--k-ink-soft);font-size:13px;font-style:normal}.swatches{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;display:grid}.pick{appearance:none;cursor:pointer;background:var(--k-cream);color:var(--k-ink);font:800 14px var(--k-body);transition:transform var(--k-fast) var(--k-ease-out), box-shadow var(--k-fast);border:0;border-radius:18px;justify-items:center;gap:6px;padding:14px 8px 12px;display:grid}.pick small{color:var(--k-ink-soft);text-align:center;font-size:12px;font-weight:700}.pick.on{box-shadow:0 0 0 3px var(--k-accent), 0 10px 22px #0c223624;background:#fff}.pick{position:relative}.pick.locked{cursor:default}.pick.locked .swatch,.pick.locked .trail-chip{filter:saturate(.75)opacity(.6)}.pick.locked:after{content:"";background:var(--k-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2' fill='white'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / 13px no-repeat;border-radius:50%;width:24px;height:24px;position:absolute;top:10px;right:10px;box-shadow:0 3px 8px #0c223640}.swatch{background:radial-gradient(circle at 34% 30%, #fffffff2 0 10%, transparent 30%), radial-gradient(circle at 40% 36%, var(--c) 0%, var(--c) 45%, var(--s) 100%);border-radius:50%;display:block;box-shadow:0 8px 14px #0c223638}.trail-chip{border-radius:7px;width:86px;height:14px;margin:20px 0;display:block;box-shadow:0 4px 10px #0c223626}.achievements{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.achievements li{background:var(--k-cream);border-radius:16px;grid-template-columns:34px 1fr;align-items:center;column-gap:10px;padding:10px 12px;display:grid}.achievements li small{color:var(--k-ink-soft);grid-column:2;font-weight:700}.achievements .medal{color:#fff;background:#e8dcc4;border-radius:50%;grid-row:span 2;place-items:center;width:34px;height:34px;font-size:18px;display:grid}.achievements li.got .medal{background:radial-gradient(circle at 35% 30%,#ffe28a,#f0a51c);box-shadow:0 4px 10px #e08a1273}.board{font-variant-numeric:tabular-nums;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:grid}.board li{background:var(--k-cream);border-radius:14px;grid-template-columns:36px 1fr auto auto 32px;align-items:center;gap:10px;padding:10px 12px;font-weight:800;display:grid}.board li.me{box-shadow:0 0 0 2px var(--k-sun) inset;background:#fff3c4}.board .rank{background:#fff;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.board li:first-child .rank{background:var(--k-sun)}.board .par{color:var(--k-accent-deep);text-align:right;min-width:30px}.flagbtn,.pencil{appearance:none;cursor:pointer;color:var(--k-ink-soft);background:0 0;border:0;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.flagbtn svg,.pencil svg{width:16px;height:16px}.name-line{justify-content:center;align-items:center;gap:2px;display:inline-flex;font-size:20px!important}.name-input{width:100%;font:900 18px var(--k-body);text-align:center;color:var(--k-ink);box-shadow:0 0 0 2px var(--k-accent) inset;background:#fff;border:0;border-radius:10px;padding:6px}.bad{color:var(--k-coral-deep)!important}.k-sub.board-note{background:var(--k-cream);text-align:center;border-radius:16px;margin:16px 0 0;padding:16px}.game{position:absolute;inset:0}.app:has(.game){--k-sound-top:calc(max(10px, env(safe-area-inset-top)) + 106px)}.play-layer{z-index:1;cursor:grab;position:absolute;inset:0}.phase-swing .play-layer{cursor:grabbing}.hud-top,.hud-row2{z-index:3;pointer-events:none;flex-wrap:nowrap;align-items:center;gap:8px;padding:0 12px;display:flex;position:absolute;left:0;right:0}.hud-top>*,.hud-row2>*{pointer-events:auto}.hud-top{top:max(10px, env(safe-area-inset-top))}.hud-row2{top:calc(max(10px, env(safe-area-inset-top)) + 54px)}.hud-row2 .k-chip{min-height:36px;padding:5px 12px}.hud-row2 .k-chip-big{font-size:17px}.unit{color:var(--k-ink-soft);font-size:12px;font-weight:800}.wind-arrow{background:var(--k-lagoon);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;display:inline-grid}.wind-arrow svg{width:16px;height:16px}.lie{font-size:14px;font-weight:900}.lie-sand,.lie-beach{color:#b6801c}.lie-rough{color:#2e7d32}.lie-green,.lie-fairway,.lie-tee{color:var(--k-accent-deep)}.score-pill{min-width:30px;height:24px;color:var(--k-ink);font:900 13px var(--k-body);font-variant-numeric:tabular-nums;background:#e9e2cf;border-radius:999px;place-items:center;padding:0 7px;display:inline-grid}.score-pill.under{background:var(--k-coral);color:#fff}.score-pill.over{background:var(--k-ink);color:#fff}.hud-help{display:contents}@media (width<=420px){.hud-help{display:none}.hud-top .k-chip{gap:6px;padding:5px 10px}.hud-top .k-chip-big{font-size:17px}.hud-row2{gap:6px}.hud-row2 .k-chip{gap:6px;padding:4px 10px}}.minimap{z-index:3;right:12px;top:calc(max(10px, env(safe-area-inset-top)) + 104px);pointer-events:none;border-radius:16px;width:84px;max-height:42vh;position:absolute;overflow:hidden;box-shadow:0 0 0 4px #fffaf0e6,0 10px 24px #0c22364d}.map-holder,.map-img{width:100%;height:100%;display:block}.map-over{width:100%;height:100%;position:absolute;inset:0}.map-ball,.map-pin{border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute}.map-ball{background:#fff;box-shadow:0 0 0 2px #15324a,0 0 8px #ffffffe6}.map-pin{background:#ff4f45;box-shadow:0 0 0 2px #fff}@media (width>=800px){.minimap{width:120px}}.hud-bottom{z-index:3;left:0;right:0;bottom:max(14px, env(safe-area-inset-bottom));pointer-events:none;justify-content:center;align-items:flex-end;gap:12px;padding:0 12px;display:flex;position:absolute}.hud-bottom>*{pointer-events:auto}.club-pick{background:var(--k-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:22px;align-items:center;gap:4px;padding:6px;display:flex;box-shadow:0 4px #e2cfa6,0 12px 26px #0c223640}.club-arrow{appearance:none;cursor:pointer;background:var(--k-accent);color:#fff;width:46px;height:52px;box-shadow:0 3px 0 var(--k-accent-deep);border:0;border-radius:16px;place-items:center;display:grid}.club-arrow:active{box-shadow:0 1px 0 var(--k-accent-deep);transform:translateY(2px)}.club-arrow:disabled{cursor:default;background:#d9cdb6;box-shadow:0 3px #bfb196}.club-arrow svg{width:22px;height:22px}.club-name{text-align:center;min-width:128px;line-height:1.1;display:grid}.club-name b{font-size:22px}.club-name span{color:var(--k-ink-soft);font-size:12px;font-weight:800}.spin-btn{appearance:none;cursor:pointer;background:var(--k-glass);color:var(--k-ink);font:900 11px var(--k-body);letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:0;border-radius:20px;justify-items:center;gap:2px;padding:6px 8px 5px;display:grid;box-shadow:0 4px #e2cfa6,0 12px 26px #0c223640}.face,.spin-face{background:radial-gradient(circle at 36% 32%,#fff 0%,#f1ece2 50%,#cfc6b4 100%);border-radius:50%;display:block;position:relative;box-shadow:0 4px 10px #0c223633}.face{width:42px;height:42px}.face i,.spin-face i{background:var(--k-coral);border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;box-shadow:0 0 0 3px #ff6a554d}.spin-pad{z-index:6;right:12px;bottom:calc(max(14px, env(safe-area-inset-bottom)) + 84px);width:230px;animation:k-pop var(--k-med) var(--k-ease) both;padding:14px;position:absolute}.spin-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.spin-head b{font-family:var(--k-display);flex:1;font-size:20px}.linkish{appearance:none;background:var(--k-cream);font:800 13px var(--k-body);color:var(--k-ink);cursor:pointer;border:0;border-radius:10px;padding:6px 10px}.small-x{width:34px;height:34px}.small-x svg{width:16px;height:16px}.spin-face{touch-action:none;cursor:crosshair;width:200px;height:200px}.spin-face i{width:22px;height:22px;margin:-11px 0 0 -11px}.spin-face .lbl{letter-spacing:.1em;text-transform:uppercase;color:var(--k-ink-soft);font-size:11px;font-weight:900;position:absolute}.lbl.t{top:10px;left:50%;transform:translate(-50%)}.lbl.b{bottom:10px;left:50%;transform:translate(-50%)}.lbl.l{top:50%;left:10px;transform:translateY(-50%)}.lbl.r{top:50%;right:10px;transform:translateY(-50%)}.swing-hint{z-index:2;left:50%;bottom:calc(max(14px, env(safe-area-inset-bottom)) + 86px);background:var(--k-glass-dark);color:#fff;white-space:nowrap;pointer-events:none;animation:k-rise var(--k-slow) var(--k-ease-out) both;border-radius:999px;padding:10px 16px;font-size:15px;font-weight:800;position:absolute;translate:-50%}.meter{z-index:4;pointer-events:none;width:34px;position:fixed}.meter-track{background:#0c2236b8;border-radius:17px;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 0 4px #fffaf0e6,0 10px 24px #0c223659}.meter-fill{transform-origin:bottom;background:linear-gradient(#ff8a3d,#ffd03f 30%,#2fb565);height:100%;position:absolute;bottom:0;left:0;right:0}.meter-fill.sweet{background:linear-gradient(#fff6b0,#ffd03f 30%,#2fb565)}.meter-fill.over{background:linear-gradient(#ff4f45,#ff8a3d)}.meter-sweet{z-index:2;background:#ffffff47;position:absolute;left:0;right:0;box-shadow:inset 0 0 0 2px #ffffffe6}.meter-over{z-index:2;background:repeating-linear-gradient(135deg,#ff6a558c 0 5px,#ff6a5540 5px 10px);position:absolute;top:0;left:0;right:0}.meter-line{z-index:2;background:#fff;height:3px;position:absolute;bottom:0;left:-2px;right:-2px}.meter-acc{z-index:3;background:#15324a;border-radius:2px;height:4px;position:absolute;left:-4px;right:-4px}.meter-pct{font:900 16px var(--k-body);color:#fff;text-shadow:0 2px 8px #0c223699;position:absolute;top:-32px;left:50%;transform:translate(-50%)}.meter-lean{transform-origin:top;background:#fff;border-radius:2px;width:4px;height:26px;margin-left:-2px;position:absolute;bottom:-38px;left:50%;box-shadow:0 0 8px #fffc}.toast{z-index:5;pointer-events:none;animation:toast 1.5s var(--k-ease) both;font-size:clamp(34px,10vw,60px);position:absolute;top:30%;left:0;right:0}.toast.big{text-shadow:0 5px #e2841c,0 8px #b65e0e,0 20px 40px #0c223673;font-size:clamp(52px,16vw,110px);animation-duration:2.4s;top:24%}@keyframes toast{0%{opacity:0;transform:scale(.6)translateY(20px)}14%{opacity:1;transform:scale(1.08)}24%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-24px)}}.intro{z-index:4;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.intro-card{text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--k-float);animation:k-pop .6s var(--k-ease) both;background:#fffaf0db;border-radius:30px;max-width:calc(100% - 32px);padding:22px 30px}.intro-no{background:var(--k-accent);color:#fff;border-radius:999px;padding:4px 14px;font-size:16px;display:inline-block}.intro-card h2{margin:10px 0 4px;font-size:clamp(34px,10vw,54px);line-height:1}.intro-card p{color:var(--k-ink-soft);margin:0;font-weight:800}.overlay{z-index:8;padding:max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));animation:k-fade var(--k-med) both;background:#0c223647;place-items:center;display:grid;position:absolute;inset:0}.result-card{text-align:center;width:min(560px,100%);max-height:100%;animation:k-rise var(--k-slow) var(--k-ease-out) both;padding:20px 18px;overflow:auto}.result-card .k-big-result small{color:var(--k-ink-soft);font-size:.45em}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--k-ink-soft);margin:0;font-size:12px;font-weight:900}.card-scroll{margin:0 -6px 14px;padding:0 6px;overflow-x:auto}.card-scroll .k-score{min-width:300px}.unlock{background:radial-gradient(circle at 30% 30%,#fff3c4,#ffd76a);border-radius:999px;margin:-4px auto 12px;padding:8px 14px;font-weight:900;display:inline-block;box-shadow:0 6px 14px #e08a1259}.end-card .wordmark.small{justify-content:center}.howto{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (width<=520px){.howto{grid-template-columns:1fr}.demo .scene{height:112px}}.demo{background:var(--k-cream);border-radius:20px;gap:8px;margin:0;padding:10px;display:grid}.demo figcaption{text-align:center;gap:2px;display:grid}.demo figcaption b{font-family:var(--k-display);font-size:19px}.demo figcaption span{color:var(--k-ink-soft);font-size:13px;font-weight:700}.scene{background:linear-gradient(#7fd0ef 0 45%,#6fcf58 45% 100%);border-radius:14px;height:130px;position:relative;overflow:hidden}.d-ball{background:radial-gradient(circle at 35% 30%,#fff,#d6cfc1);border-radius:50%;width:18px;height:18px;position:absolute;bottom:26px;left:calc(50% - 9px);box-shadow:0 3px 4px #0003}.d-finger{background:#ffffffe6;border-radius:50%;width:26px;height:26px;position:absolute;box-shadow:0 0 0 6px #ffffff59,0 4px 10px #0c22364d}.d-flag{width:3px;height:40px;animation:pan 2.6s var(--k-ease-out) infinite;background:#fff;position:absolute;top:22px;left:50%}.d-flag:after{content:"";border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:18px solid #ff4f45;position:absolute;top:0;left:3px}.demo-aim .d-finger{animation:swipe 2.6s var(--k-ease-out) infinite;top:60%;left:30%}@keyframes swipe{0%,10%{opacity:0;transform:translate(0)}20%{opacity:1}70%{opacity:1;transform:translate(80px)}85%,to{opacity:0;transform:translate(80px)}}@keyframes pan{0%,20%{transform:translate(-60px)}70%,to{transform:translate(0)}}.demo-swing .d-finger{animation:pull 2.4s var(--k-ease-out) infinite;bottom:22px;left:calc(50% - 13px)}.demo-swing .d-ball{animation:2.4s infinite fly}.d-pull{background:#fffc;width:4px;height:0;position:absolute;bottom:34px;left:calc(50% - 2px)}.d-meter{background:#0c223666;border-radius:6px;width:12px;height:90px;position:absolute;bottom:14px;right:14px;overflow:hidden}.d-meter i{transform-origin:bottom;background:linear-gradient(#ffd03f,#2fb565);animation:2.4s infinite fill;position:absolute;inset:0}@keyframes pull{0%{opacity:0;transform:translateY(-20px)}12%{opacity:1;transform:translateY(-20px)}50%{opacity:1;transform:translateY(18px)}56%,to{opacity:0;transform:translateY(18px)}}@keyframes fill{0%,12%{transform:scaleY(0)}50%{transform:scaleY(.95)}56%,to{transform:scaleY(0)}}@keyframes fly{0%,52%{transform:translate(0)scale(1)}75%{transform:translateY(-70px)scale(.6)}92%{opacity:1;transform:translateY(-64px)scale(.35)}to{opacity:0;transform:translateY(-64px)scale(.35)}}.d-wind{color:#fff;text-shadow:0 2px 6px #0c223666;font-size:24px;animation:2.4s ease-in-out infinite gust;position:absolute;top:14px;left:14px}@keyframes gust{0%,to{transform:translate(0)}50%{transform:translate(14px)}}.d-face{background:radial-gradient(circle at 36% 32%,#fff,#cfc6b4);border-radius:50%;width:46px;height:46px;position:absolute;top:16px;right:16px}.d-face i{background:#ff6a55;border-radius:50%;width:10px;height:10px;animation:2.4s ease-in-out infinite dot;position:absolute;top:18px;left:18px}@keyframes dot{0%,to{transform:translate(0)}33%{transform:translate(-12px)}66%{transform:translateY(12px)}}.d-curve{border-radius:0 0 0 100%;width:80px;height:70px;position:absolute;bottom:20px;left:30%;transform:scaleX(-1);box-shadow:-4px 4px 0 -1px #fffffff2}.keys{text-align:center;color:var(--k-ink-soft);margin:14px 0 0;font-size:13px;font-weight:800}kbd{background:var(--k-cream);min-width:24px;font:900 12px var(--k-body);color:var(--k-ink);border-radius:6px;margin:0 2px;padding:2px 6px;display:inline-block;box-shadow:0 2px #e2cfa6}@media (pointer:coarse){.keys{display:none}}@media (width>=900px) and (aspect-ratio>=1){.swing-hint{bottom:auto;top:calc(max(10px, env(safe-area-inset-top)) + 4px)}}@media (height<=500px) and (orientation:landscape){.swing-hint{left:max(12px, env(safe-area-inset-left));bottom:calc(max(12px, env(safe-area-inset-bottom)) + 4px);white-space:normal;border-radius:16px;max-width:210px;padding:8px 12px;font-size:13px;translate:none}.result-card{width:min(760px,100%);padding:12px 18px}.result-card .k-big-result{margin:0 0 2px;font-size:40px}.result-card .k-score th,.result-card .k-score td{padding:3px 2px}.result-card .unlock{margin:6px auto}.result-card .k-stack{grid-template-columns:1fr 1fr;align-items:center;gap:10px}.result-card .k-stack .k-row:empty{display:none}}
