:root{--ink:#16241b;--paper:#fcfaf4f0;--accent:#f0621c;--accent-ink:#b8460f;--sky-top:#a9d8ef;--sky-bottom:#e6f3f8;color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:linear-gradient(var(--sky-top), var(--sky-bottom));-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overflow:hidden}.app{height:100dvh;position:relative}.stage{z-index:0;touch-action:none;position:fixed;inset:0}.stage canvas{display:block}@property --wipe{syntax:"<angle>";inherits:false;initial-value:0deg}.loading{--wipe:0deg;z-index:20;text-align:center;color:#fff;isolation:isolate;-webkit-mask-image:conic-gradient(from 0deg, transparent var(--wipe), #000 var(--wipe));-webkit-mask-image:conic-gradient(from 0deg, transparent var(--wipe), #000 var(--wipe));mask-image:conic-gradient(from 0deg, transparent var(--wipe), #000 var(--wipe));background:#4f9a42;place-content:center;justify-items:center;gap:4px;padding:16px;display:grid;position:fixed;inset:0;overflow:hidden}.loading:before,.loading:after{content:"";pointer-events:none;position:absolute}.loading:before{z-index:-2;will-change:transform;background:repeating-linear-gradient(115deg,#4f9a42 0 64px,#5ba84d 64px 128px);animation:3.2s linear infinite loading-grass;inset:-128px}.loading:after{z-index:-1;background:radial-gradient(#0000 40%,#0a1e0c59 100%);inset:0}@keyframes loading-grass{to{transform:translate(116.01px,54.1px)}}.loading.is-done{pointer-events:none;animation:.7s ease-in-out forwards clock-wipe}.loading p{text-shadow:0 2px 10px #00000073;margin:0}.loading-to{letter-spacing:.22em;text-transform:uppercase;opacity:.9;font-size:15px;font-weight:600}.loading-name{letter-spacing:-.01em;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:clamp(34px,8vw,56px);line-height:1.05}@keyframes clock-wipe{to{--wipe:360deg}}@media (prefers-reduced-motion:reduce){.loading:before{will-change:auto;animation:none}.loading.is-done{opacity:0;animation:none}}.overlay{z-index:5;background:#0a1e1466;place-items:safe center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.menu-card{background:var(--paper);text-align:center;border-radius:18px;width:min(560px,100%);padding:30px 30px 24px;box-shadow:0 30px 80px #091e1459}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 4px;font-size:12px;font-weight:700}.brand{justify-content:center;align-items:center;gap:14px;display:flex}.brand-logo{flex:none;width:auto;height:64px}.menu-card h1{letter-spacing:-.01em;margin:0;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:44px;line-height:1.05}.lede{color:#4a5a4f;margin:8px 0 20px;font-size:16px}.courses{gap:12px;margin-bottom:16px;display:grid}.slides{margin:0 -6px;padding:4px 6px 0;overflow:hidden}.slide-track{width:200%;transition:transform .5s cubic-bezier(.65,0,.25,1);display:flex}.slide-track.at-hole{transform:translate(-50%)}.slide{box-sizing:border-box;flex:0 0 50%;padding:0 6px;transition:opacity .35s,transform .5s cubic-bezier(.65,0,.25,1)}.slide[aria-hidden=true]{opacity:0;transform:scale(.94)}@media (prefers-reduced-motion:reduce){.slide-track,.slide{transition:none}}.hole-tile.is-on{border-color:var(--accent)}.back-btn{margin-bottom:4px}.steps{justify-content:center;gap:8px;margin:14px 0 6px;display:flex}.steps span{background:#16241b33;border-radius:999px;width:8px;height:8px;transition:width .3s,background .3s}.steps span.is-on{background:var(--accent);width:22px}.menu .courses{grid-template-columns:1fr 1fr}.menu .golfer-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.menu .golfer-choices .hole-tile{aspect-ratio:1/1.8}.golfer-choices .hole-label .course-name{font-size:17px}.hole-tile{cursor:pointer;aspect-ratio:1;background:#cfe6f0;border:3px solid #0000;border-radius:16px;padding:0;transition:transform .15s,border-color .15s;position:relative;overflow:hidden;box-shadow:0 10px 30px #091e1433}.hole-tile:hover,.hole-tile:focus-visible{border-color:var(--accent);outline:none}.hole-tile:active{transform:scale(.97)}.hole-tile img,.hole-tile .hole-label{pointer-events:none;-webkit-user-drag:none}.menu .hole-tile,.menu .back-btn{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,.hole-tile,.pill{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.hole-tile img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hole-label{text-align:left;color:#fff;background:linear-gradient(#0000,#0a1e14d9);flex-direction:column;gap:2px;padding:26px 14px 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.hole-label .course-name{color:#fff;font-size:20px}.hole-label .course-sub{color:#ffffffd9;font-size:12px}.course-btn{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:#fff;border:2px solid #16241b1f;border-radius:14px;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px;transition:border-color .15s,transform .15s;display:flex}.course-btn:hover,.course-btn:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-1px)}.course-btn.sawgrass{background:linear-gradient(90deg,#fff 55%,#d8eefb)}.course-btn.rooftop{background:linear-gradient(90deg,#fff 55%,#eef0ea)}.course-name{font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:22px;font-weight:600}.course-sub{color:#4a5a4f;font-size:13px}.help{color:#4a5a4f;margin:0;font-size:13px}kbd{font:inherit;background:#fff;border:1px solid #16241b40;border-radius:5px;padding:1px 6px}.pill{background:var(--paper);min-height:40px;color:var(--ink);letter-spacing:.02em;cursor:pointer;border:1px solid #16241b24;border-radius:999px;padding:9px 14px;font:600 13px/1 ui-sans-serif,system-ui,sans-serif;box-shadow:0 4px 16px #0000001f}.hud-top{z-index:4;pointer-events:none;justify-content:space-between;align-items:center;gap:10px;display:flex;position:fixed;top:14px;left:14px;right:14px}.hud-top>*{pointer-events:auto}.hud-left{align-items:center;gap:8px;display:flex}.wide-toggle.is-on{background:var(--accent-ink,#b3401a);color:#fff;border-color:#0000}.score{cursor:default;align-items:baseline;gap:12px;display:flex}.score strong{color:var(--accent-ink);font-size:16px}.hole-name{font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:15px;font-weight:600}.message{z-index:4;color:#fff;pointer-events:none;text-align:center;background:#16241bb8;border-radius:10px;max-width:calc(100% - 32px);margin:0;padding:8px 14px;font-size:14px;position:fixed;top:64px;left:50%;transform:translate(-50%)}.hud-bottom{z-index:4;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;bottom:18px;left:14px;right:14px}.aim-btn{background:var(--paper);width:56px;height:56px;color:var(--ink);cursor:pointer;touch-action:none;border:none;border-radius:50%;font-size:18px;box-shadow:0 4px 16px #00000026}.wide-hint{color:#fff;text-align:center;background:#16241bb8;border-radius:12px;width:min(360px,60vw);margin:0;padding:12px 14px;font-size:14px}.swing-wrap{flex-direction:column;align-items:stretch;gap:8px;width:min(360px,60vw);display:flex}.meter{background:#ffffff8c;border-radius:999px;height:12px;overflow:hidden;box-shadow:inset 0 1px 3px #00000040}.meter-fill{background:linear-gradient(90deg,#7bd389,#f0c419 60%,#f0621c);border-radius:999px;height:100%;transition:width 50ms linear}.swing-btn{background:var(--accent);color:#fff;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;touch-action:none;border:none;border-radius:999px;padding:16px;font:700 16px/1 ui-sans-serif,system-ui,sans-serif;box-shadow:0 8px 24px #f0621c66}.is-putt .meter{position:relative;overflow:visible}.is-putt .meter-fill{background:linear-gradient(90deg,#b9e6a8,#3f9f4f)}.meter-target{background:#fff;border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:-5px;bottom:-5px;box-shadow:0 0 0 1.5px #1f4d2a}.is-putt .swing-btn{background:#2f8a45;box-shadow:0 8px 24px #2f8a4566}.swing-btn:active{transform:scale(.98)}.result .courses{margin-top:8px}@media (width<=720px){.menu-card{padding:24px 20px 20px}.menu-card h1{font-size:36px}.overlay.menu{place-items:stretch stretch;padding:8px}.menu .menu-card{box-sizing:border-box;flex-direction:column;min-height:calc(100dvh - 16px);padding:14px 12px 12px;display:flex}.brand-logo{height:48px}.menu .slides{flex:1;display:flex}.menu .slide-track{flex:none;width:200%}.menu .slide{flex-direction:column;display:flex}.menu .lede{margin:6px 0 10px}.menu .courses{flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr;gap:10px;margin-bottom:10px}.menu .hole-tile{aspect-ratio:auto;min-height:150px}.menu .golfer-choices{grid-template-rows:repeat(3,minmax(112px,1fr));grid-template-columns:1fr}.menu .golfer-choices .hole-tile{aspect-ratio:auto;min-height:112px}.golfer-choices .hole-label .course-name{font-size:22px}.menu .hole-tile img{object-position:50% 30%}.menu .golfer-choices .hole-tile img{object-position:50% 20%}.menu .back-btn{min-height:48px;font-size:15px}.hole-label{padding:22px 10px 9px}.hole-label .course-name{font-size:22px}.hole-label .course-sub{font-size:13px}.help{display:none}}@media (height<=500px) and (orientation:landscape){.menu-card{width:min(620px,100%);padding:14px 20px 12px}.eyebrow{display:none}.menu-card h1{font-size:26px}.brand-logo{height:32px}.lede{margin:4px 0 10px;font-size:14px}.menu .courses{grid-template-rows:1fr;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,440px);margin:0 auto 8px}.menu .golfer-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.menu .hole-tile{min-height:120px}.menu .golfer-choices .hole-label .course-name{font-size:15px}.steps{margin:8px 0 2px}.help{display:none}}@media (width<=480px){.hud-top{align-items:flex-start;gap:6px;top:10px;left:10px;right:10px}.hud-left{flex-wrap:wrap;gap:5px}.hud-top .pill{white-space:nowrap;padding:8px;font-size:11.5px}.hole-name{display:none}.message{text-align:center;max-width:calc(100vw - 32px);top:92px}}
