:root{--cyan:#59ffd4;--gold:#ffd166;--coral:#ff5d6c;--blue:#8fb4ff;--ink:#05060f;--panel:#0a0e20cc;--panel-border:#8fb4ff4d;--text:#eef3ff;--text-dim:#93a4c9;--font-display:"Audiowide", "Avenir Next", system-ui, sans-serif;--font-ui:"Nunito", "Avenir Next", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--font-ui);-webkit-user-select:none;user-select:none;overflow:hidden}#app{position:fixed;inset:0}#scene{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#vignette{pointer-events:none;z-index:5;background:radial-gradient(#0000 55%,#02030999 100%);position:absolute;inset:0}.hidden{display:none!important}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}#hud{z-index:20;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:14px;left:16px;right:16px}.hud-left,.hud-right{pointer-events:auto;align-items:center;gap:12px;display:flex}.hud-hole{font-family:var(--font-display);letter-spacing:1.5px;text-shadow:0 0 16px #8fb4ff80;font-size:clamp(13px,2vw,17px)}.hud-strokes{letter-spacing:2px;color:var(--text-dim);margin-top:2px;font-size:12px;font-weight:800}.hud-total{font-family:var(--font-display);letter-spacing:1.5px;color:var(--gold);text-shadow:0 0 14px #ffd16680;font-size:13px}.icon-btn{background:var(--panel);border:1.5px solid var(--panel-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.icon-btn svg{width:19px;height:19px;stroke:var(--text);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.icon-btn.off{opacity:.4}#tip{z-index:22;text-align:center;background:var(--panel);border:1.5px solid var(--panel-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;max-width:min(620px,92vw);padding:12px 26px;font-size:15px;font-weight:700;animation:.4s tipIn;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}@keyframes tipIn{0%{opacity:0;transform:translate(-50%,10px)}}#result{z-index:30;text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.result-label{font-family:var(--font-display);letter-spacing:6px;color:#fff;text-shadow:0 0 34px #59ffd4e6;font-size:clamp(44px,9vw,92px);animation:1.9s cubic-bezier(.16,1,.3,1) forwards resultIn}#result.bad .result-label{text-shadow:0 0 34px #ff5d6ce6;color:#ffd7db}.result-sub{letter-spacing:3px;color:var(--text-dim);font-size:clamp(13px,2.2vw,17px);font-weight:800;animation:1.9s cubic-bezier(.16,1,.3,1) 50ms backwards resultIn}@keyframes resultIn{0%{opacity:0;transform:scale(.6)}14%{opacity:1;transform:scale(1.04)}22%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(1.04)}}#menu{z-index:50;background:radial-gradient(#05060f4d,#05060fcc);justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.menu-inner{text-align:center;width:min(560px,94vw);animation:.7s cubic-bezier(.16,1,.3,1) menuIn}@keyframes menuIn{0%{opacity:0;transform:translateY(26px)}}.logo{font-family:var(--font-display);letter-spacing:4px;color:#fff;text-shadow:0 0 34px #8fb4ffa6;font-size:clamp(44px,10vw,88px);line-height:1}.logo-golf{background:linear-gradient(120deg, var(--cyan), var(--blue));color:#0000;filter:drop-shadow(0 0 20px #59ffd480);-webkit-background-clip:text;background-clip:text}.logo-tag{letter-spacing:4px;color:var(--text-dim);margin:12px 0 22px;font-size:clamp(10px,1.7vw,13.5px);font-weight:800}.how{flex-direction:column;gap:9px;margin-bottom:24px;font-size:15px;font-weight:700;display:flex}.how b{color:var(--cyan);margin-right:4px}.go-btn{font-family:var(--font-display);letter-spacing:3px;color:#04231c;background:linear-gradient(120deg, var(--cyan), #a8ffe8);border-radius:16px;padding:15px 52px;font-size:18px;transition:transform .14s;box-shadow:0 0 34px #59ffd480,0 8px 24px #00000073}.go-btn:hover{transform:scale(1.05)}.go-btn:active{transform:scale(.97)}.go-btn.small{padding:12px 36px;font-size:14px}.menu-footer{flex-direction:column;align-items:center;gap:8px;margin-top:24px;display:flex}.menu-best{font-family:var(--font-display);letter-spacing:1.5px;color:var(--gold);font-size:12.5px}.menu-credit{letter-spacing:1px;color:#93a4c98c;font-size:11px;font-weight:700}.modal{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#03040bbd;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.modal-card{text-align:center;border:1.5px solid var(--panel-border);background:linear-gradient(165deg,#0d142cf7,#060914f7);border-radius:24px;width:min(460px,94vw);padding:30px 34px;animation:.5s cubic-bezier(.34,1.56,.64,1) cardIn;box-shadow:0 0 60px #59ffd424,0 30px 60px #0009}@keyframes cardIn{0%{opacity:0;transform:scale(.86)translateY(18px)}}.modal-card h2{font-family:var(--font-display);letter-spacing:4px;margin-bottom:14px;font-size:24px}.card-rows{flex-direction:column;gap:6px;max-height:42vh;display:flex;overflow-y:auto}.card-row{text-align:left;background:#ffffff0a;border-radius:10px;align-items:center;gap:10px;padding:7px 12px;font-size:13.5px;font-weight:700;display:flex}.card-row span{flex:1}.card-row b{font-family:var(--font-display);color:var(--cyan);font-size:15px}.card-row i{color:var(--text-dim);font-size:11px;font-style:normal}.card-total{font-family:var(--font-display);letter-spacing:1.5px;color:var(--gold);margin:14px 0 4px;font-size:15px}.modal-btns{justify-content:center;margin-top:12px;display:flex}@media (prefers-reduced-motion:reduce){.result-label,.result-sub{animation-duration:1.2s}}
