:root{--black: #07080a;--panel: rgba(10, 12, 14, .78);--panel-solid: #0e1013;--line: rgba(212, 175, 55, .35);--gold: #d4af37;--gold-2: #f3d27a;--gold-3: #8a6420;--silver: #c9ccd2;--text: #f2f0ea;--muted: #a7a59c;--green: #3fae5a;--red: #e0563f;--cond: "Barlow Condensed", "Arial Narrow", sans-serif;--body: "Barlow", system-ui, sans-serif;--serif: "Cinzel", Georgia, serif;--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--black);color:var(--text);font-family:var(--body);overflow:hidden;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}.hidden{display:none!important}#app{position:fixed;inset:0;user-select:none;-webkit-user-select:none}#viewport{position:absolute;inset:0;touch-action:none}#viewport canvas{display:block;width:100%;height:100%}#swing-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}#labels{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.lbl{position:absolute;left:0;top:0;transform:translate(-50%,-100%);white-space:nowrap;font-family:var(--cond);font-weight:600;font-size:14px;letter-spacing:.04em;padding:3px 8px;border-radius:6px;background:#08090bc7;border:1px solid var(--line);color:var(--gold-2)}.lbl small{color:var(--muted);font-weight:500;margin-right:4px}.lbl.pin{color:#fff}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 30px #00000059}.sub{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}#audio-panel{z-index:15}.audio-inner{width:min(560px,calc(100% - 24px));padding:16px 18px;background:var(--panel-solid);max-height:90vh;overflow:auto}.sliders{display:grid;gap:10px}.sliders label{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:12px;font-family:var(--cond);font-size:16px;text-align:left}.sliders label.mute{grid-template-columns:auto 1fr}.sliders input[type=range]{accent-color:var(--gold);width:100%}.tracks{display:grid;gap:6px}.track{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid #23252a;background:#121418;text-align:left}.track.on{border-color:var(--gold)}.track .tt{font-family:var(--cond);font-size:17px}.track .td{font-size:12px;color:var(--muted)}.track button{margin-left:auto}.start-audio{margin-top:10px}.screen{position:absolute;inset:0;z-index:10;display:grid;place-items:center;overflow:auto;background:radial-gradient(ellipse at 50% 20%,#19160c8c,#000000eb)}.start-inner{width:min(980px,100%);padding:24px 16px 30px;text-align:center}.brand-logo{width:min(620px,92%);height:auto;filter:drop-shadow(0 8px 24px rgba(212,175,55,.28))}.loading-crown{width:96px;height:96px;filter:drop-shadow(0 4px 16px rgba(212,175,55,.4));animation:glow 2.4s ease-in-out infinite}@keyframes glow{50%{filter:drop-shadow(0 4px 26px rgba(243,210,122,.7))}}.res-logo{width:220px;height:auto;margin-bottom:4px}.logo h1{font-family:var(--serif);font-weight:800;font-size:clamp(40px,8vw,76px);margin:4px 0 0;letter-spacing:.04em;line-height:1}.silver{background:linear-gradient(180deg,#fff,#9ea3ab);-webkit-background-clip:text;background-clip:text;color:transparent}.goldtxt{background:linear-gradient(180deg,#f6e09a,#c9a24a 55%,#8a6420);-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{font-family:var(--cond);letter-spacing:.5em;color:#e9e4d4;margin-top:8px;font-size:clamp(12px,2.4vw,18px)}.start-section{margin-top:22px}.label{font-family:var(--cond);color:var(--gold-2);letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}.golfer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.golfer{position:relative;border:1px solid #2a2a2a;border-radius:12px;overflow:hidden;background:#0f1012;padding:0 0 8px;transition:transform .15s,border-color .15s}.golfer:hover{transform:translateY(-2px)}.golfer.on{border-color:var(--gold);box-shadow:0 0 0 2px #d4af3759}.golfer .pic{height:96px;background-size:cover;background-position:25% 15%;background-color:#fff}.golfer .nm{font-family:var(--cond);font-size:16px;margin-top:6px}.golfer .num{position:absolute;top:6px;right:6px;font-family:var(--cond);font-weight:700;font-size:14px;color:#111;background:var(--gold-2);border-radius:6px;padding:0 6px}.golfer .sw{display:flex;justify-content:center;gap:4px;margin-top:4px}.golfer .sw i{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.3)}.start-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:22px 0 12px}.name-input{display:block;margin:0 auto 14px;width:min(320px,100%);padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:#0e1013;color:#fff;font-family:var(--cond);font-size:18px;text-align:center}.best{margin-top:10px;font-family:var(--cond);color:var(--muted)}.foot{margin-top:18px;font-size:12px;color:var(--muted)}.foot a{color:var(--gold-2)}.results-inner{width:min(860px,calc(100% - 24px));padding:22px;background:var(--panel-solid);text-align:center;max-height:92vh;overflow:auto}.res-title{font-family:var(--serif);font-size:clamp(34px,7vw,58px);margin:0}.res-sub{font-family:var(--cond);font-size:20px;color:var(--muted)}.res-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:16px 0}.res-stats .m{background:#121418;border:1px solid #23252a;border-radius:10px;padding:8px}.coach{text-align:left;margin:14px 0;padding:12px;border-radius:10px;border:1px solid var(--line);background:#d4af370f}.coach b{color:var(--gold-2);font-family:var(--cond);letter-spacing:.08em}.res-actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.loading{position:absolute;inset:0;z-index:20;display:grid;place-content:center;justify-items:center;gap:14px;background:#050505;font-family:var(--cond);letter-spacing:.1em;color:var(--gold-2)}.spinner{width:42px;height:42px;border-radius:50%;border:3px solid #2a2a2a;border-top-color:var(--gold);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#hud{position:absolute;inset:0;pointer-events:none;z-index:4}#hud>*{pointer-events:auto}.k{font-family:var(--cond);font-size:12px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.icon-btn{min-width:40px;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:#0e1013d1;font-family:var(--cond);font-size:15px;letter-spacing:.04em;backdrop-filter:blur(6px)}.icon-btn:active,.icon-btn.on{border-color:var(--gold);color:var(--gold-2)}.icon-btn.round{width:42px;height:42px;padding:0;border-radius:50%}.icon-btn.wide{padding:0 14px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#0f1013e6}.seg button{border:0;background:transparent;padding:5px 10px;font-family:var(--cond);font-size:14px;color:var(--muted)}.seg button.on{background:linear-gradient(180deg,#e7c766,#b8902f);color:#111;font-weight:600}.seg.big button{padding:10px 16px;font-size:17px}.gold-btn{border:0;border-radius:10px;padding:10px 20px;background:linear-gradient(180deg,#f3d27a,#c9a24a 55%,#8a6420);color:#111;font-family:var(--cond);font-weight:700;font-size:18px;letter-spacing:.05em;box-shadow:0 6px 20px #d4af3740}.gold-btn.big{padding:14px 40px;font-size:22px}.gold-btn:disabled{opacity:.5}.hud-brand{position:absolute;top:12px;left:14px;display:flex;flex-direction:column;gap:8px}.hud-logo{width:210px;height:auto;filter:drop-shadow(0 3px 10px rgba(0,0,0,.6))}.quick{display:flex;gap:6px;flex-wrap:wrap}.quick .icon-btn{height:32px;font-size:13px;padding:0 10px}.hole-card{position:absolute;top:12px;right:14px;width:300px;padding:10px 12px;font-family:var(--cond)}.hole-row{display:flex;align-items:baseline;gap:8px;font-size:20px;border-bottom:1px solid var(--line);padding-bottom:6px}.hole-row b{color:#fff;margin-right:6px}.hole-row #hud-len{margin-left:auto;color:var(--gold-2)}.player-row{display:flex;align-items:center;gap:10px;padding:8px 0 6px}.avatar{width:40px;height:40px;border-radius:50%;border:2px solid var(--gold);display:grid;place-items:center;font-family:var(--cond);font-weight:700;font-size:18px;color:#111;flex:none}.who{min-width:0}.who .name{font-size:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-chip{margin-left:auto;font-weight:700;font-size:26px;min-width:50px;text-align:center;padding:0 10px;border-radius:8px;background:linear-gradient(180deg,#1a1c20,#0b0c0e);border:1px solid var(--line)}.score-chip.under{color:#ff6b5a}.topin-row{display:flex;align-items:baseline;gap:8px}.topin-row b{font-size:22px;color:#fff}.topin-row .lie{margin-left:auto;font-size:13px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.tracker{position:absolute;right:14px;top:162px;bottom:120px;width:300px;padding:10px 12px;display:flex;flex-direction:column;overflow:hidden;transition:opacity .3s}.tracker.idle{opacity:.9}.tracker-head{display:flex;align-items:center;gap:10px;color:var(--gold-2);border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:6px}.crest{width:34px;height:auto}.tracker-head .t1{font-family:var(--serif);font-weight:700;font-size:16px;letter-spacing:.1em}.tracker-head .t2{font-family:var(--cond);font-size:13px;letter-spacing:.2em;color:#fff}.tracker-club{margin-left:auto;font-family:var(--cond);color:var(--muted)}.tracker-result{font-family:var(--cond);font-size:16px;font-weight:600;color:#fff;min-height:20px}.tracker-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:6px;overflow:auto}.m .k{font-size:12px;letter-spacing:.06em}.m .v{font-family:var(--cond);font-size:24px;font-weight:600;line-height:1.05}.m .v small{font-size:13px;color:var(--muted);font-weight:500;margin-left:2px}.m.big .v{font-size:32px;color:#fff}.m.sm .v{font-size:18px}.tracker-foot{margin-top:6px;font-size:12px;color:var(--muted);border-top:1px solid rgba(255,255,255,.08);padding-top:6px}.tracker-foot b{color:var(--gold-2);font-weight:600}.tracker-next{width:100%;margin-top:8px}.minimap{margin-top:auto;align-self:center;width:120px;height:230px;border-radius:10px;border:1px solid var(--line);flex:none}.hud-bl{position:absolute;left:14px;bottom:calc(14px + var(--safe-b));display:flex;flex-direction:column;gap:8px}.info-box{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;min-width:170px;text-align:left}.info-box .v{font-family:var(--cond);font-size:22px;font-weight:600;color:#fff}.info-box .v small{font-size:14px;color:var(--gold-2);margin-left:4px}.wind-arrow{width:30px;height:30px;fill:var(--gold-2);transition:transform .3s;flex:none}.club-wrap{position:relative}.club-box{cursor:pointer;width:100%}.club-icon{width:30px;height:30px;color:var(--gold-2);flex:none}.club-list{position:absolute;left:0;bottom:calc(100% + 6px);display:flex;flex-direction:column;padding:6px;gap:4px}.club-btn{display:flex;justify-content:space-between;gap:14px;align-items:baseline;min-width:180px;padding:8px 10px;border-radius:8px;border:1px solid transparent;background:transparent;text-align:left;font-family:var(--cond);font-size:18px}.club-btn small{color:var(--muted);font-size:13px}.club-btn.on{background:linear-gradient(90deg,#d4af3747,#d4af370d);border-color:var(--gold);color:var(--gold-2)}.hud-bc{position:absolute;left:50%;transform:translate(-50%);bottom:calc(14px + var(--safe-b));width:min(640px,calc(100% - 640px));min-width:380px;display:flex;align-items:center;gap:10px}.power-badge{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#20232a,#0a0b0d);border:2px solid var(--gold);box-shadow:0 0 16px #d4af374d;font-family:var(--cond);font-weight:700;font-size:20px;color:#fff}.power-wrap{flex:1;min-width:0}.power-bar{position:relative;height:18px;border-radius:9px;background:#0a0c0ed9;border:1px solid var(--line);overflow:hidden}.power-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#2f9e4f,#9bd34a 55%,#f3d27a 82%,#e0563f)}.power-100{position:absolute;top:0;bottom:0;left:calc(100% / 1.12);width:2px;background:#fffc}.impact-line{position:absolute;top:-2px;bottom:-2px;left:4%;width:3px;background:var(--gold);box-shadow:0 0 8px var(--gold);display:none}.meter-marker{position:absolute;top:-2px;bottom:-2px;width:4px;background:#fff;display:none;box-shadow:0 0 6px #fff}.power-bar.meter .impact-line,.power-bar.meter-down .meter-marker{display:block}.power-head{display:flex;gap:10px;align-items:baseline;margin-top:4px;font-family:var(--cond)}.power-head #power-title{color:var(--gold-2);letter-spacing:.18em;font-size:13px;flex:none}.hint{font-size:12px;color:#ffffffbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px #000}.swing-btn{flex:none;height:56px;width:86px;border-radius:14px;border:1px solid var(--gold);background:radial-gradient(circle at 50% 30%,#3a2f12,#0d0d0d);color:var(--gold-2);font-family:var(--serif);font-weight:700;letter-spacing:.08em}.swing-btn.hot{background:radial-gradient(circle at 50% 30%,#f3d27a,#8a6420);color:#111}.opts{position:absolute;bottom:calc(100% + 8px);right:0;padding:10px;display:grid;gap:8px}.opt-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cam-bar{position:absolute;right:14px;bottom:calc(14px + var(--safe-b));display:flex;gap:6px}.cam{display:flex;flex-direction:column;align-items:center;gap:4px;width:96px;padding:6px 6px 7px;border-radius:10px;border:1px solid var(--line);background:#0c0e11d1;font-family:var(--cond);font-size:12px;letter-spacing:.06em}.cam.active{border-color:var(--gold);color:var(--gold-2);box-shadow:0 0 0 1px #d4af3759}.cam-ico{width:80px;height:44px;border-radius:6px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.08)}.cam-ico.player{background-image:linear-gradient(180deg,#8fb2d6 0 45%,#4f8c3a 45%)}.cam-ico.ball{background-image:radial-gradient(circle at 70% 35%,#fff 0 3px,transparent 4px),linear-gradient(160deg,transparent 40%,#f3d27a 41% 43%,transparent 44%),linear-gradient(180deg,#8fb2d6 0 60%,#4f8c3a 60%)}.cam-ico.course{background-image:radial-gradient(ellipse at 60% 30%,#7ccf58 0 10%,transparent 11%),linear-gradient(170deg,#4f8c3a 0 60%,#1d4a66 60%)}.shot-banner{position:absolute;left:50%;top:20%;transform:translate(-50%);text-align:center;padding:16px 26px;border-radius:14px;background:#08090bd1;border:1px solid var(--gold)}.banner-title{font-family:var(--serif);font-size:34px;color:var(--gold-2);letter-spacing:.06em}.banner-sub{font-family:var(--cond);font-size:18px;color:#fff;margin:4px 0 12px}.drawer{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100% - 24px));max-height:80vh;overflow:auto;padding:14px;z-index:6;background:var(--panel-solid)}.drawer-head{display:flex;justify-content:space-between;align-items:center;color:var(--gold-2);font-family:var(--cond);font-size:18px;letter-spacing:.08em;margin-bottom:8px}table.shots{width:100%;border-collapse:collapse;font-family:var(--cond);font-size:15px}table.shots th{color:var(--muted);font-weight:500;text-align:right;padding:4px 6px;border-bottom:1px solid var(--line)}table.shots td{text-align:right;padding:5px 6px;border-bottom:1px solid rgba(255,255,255,.06)}table.shots th:first-child,table.shots td:first-child,table.shots th:nth-child(2),table.shots td:nth-child(2){text-align:left}.toast{position:absolute;left:50%;top:86px;transform:translate(-50%);padding:10px 16px;border-radius:10px;background:#08090be6;border:1px solid var(--gold);font-family:var(--cond);font-size:17px;max-width:90vw;text-align:center}@media (min-width: 901px) and (max-height: 780px){.tracker{top:156px;bottom:100px}.minimap{width:90px;height:172px}.m .v{font-size:20px}.m.big .v{font-size:26px}.cam-ico{height:32px;width:64px}.cam{width:78px}.hud-logo{width:170px}}@media (max-width: 900px){.hud-logo{width:130px}.quick .icon-btn{height:30px;font-size:12px;padding:0 8px}.hole-card{width:auto;max-width:56vw;right:8px;top:8px;padding:6px 10px}.hole-row{font-size:15px}.player-row{padding:4px 0}.avatar{width:30px;height:30px;font-size:14px}.who .name{font-size:14px}.score-chip{font-size:18px;min-width:38px}.topin-row b{font-size:17px}.tracker{top:auto;bottom:calc(150px + var(--safe-b));right:8px;width:min(320px,calc(100% - 16px));max-height:46vh;padding:8px 10px}.tracker.idle{opacity:0;pointer-events:none}.minimap{display:none}.m .v{font-size:19px}.m.big .v{font-size:24px}.hud-brand{top:8px;left:8px;max-width:150px}.hud-bl{left:8px;bottom:calc(84px + var(--safe-b));flex-direction:row}.info-box{min-width:0;padding:6px 10px 6px 8px}.info-box .v{font-size:17px}.hud-bc{left:8px;right:8px;transform:none;width:auto;min-width:0;bottom:calc(8px + var(--safe-b))}.power-badge{width:48px;height:48px;font-size:15px}.swing-btn{height:46px;width:70px}.cam-bar{right:8px;bottom:auto;top:128px;flex-direction:column}.cam{width:70px;padding:4px;font-size:10px}.cam-ico,.hint{display:none}}@media (max-width: 900px) and (max-height: 520px){.tracker{bottom:64px;top:112px;right:8px;width:260px;max-height:none}.cam-bar{top:auto;bottom:70px;right:276px;flex-direction:row}}
