:root{--panel-bg: rgba(20, 32, 24, .55);--panel-fg: #f4f7f2;--accent: #ff6a3d}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#9fd3f0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--panel-fg);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#app,#app canvas{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}#hud{position:fixed;inset:0;pointer-events:none;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.panel{background:var(--panel-bg);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:10px;padding:8px 12px;display:inline-block}#stripe{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;gap:4px}.chip{display:flex;align-items:center;gap:5px;height:32px;padding:0 10px;border-radius:9px;background:#101e28b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-weight:800;font-size:15px;white-space:nowrap}.chip svg{width:18px;height:18px;fill:#8fd0ff;flex:none}.chip .lbl{font-size:10px;letter-spacing:.06em;opacity:.7}.chip.score{background:#ff6a3de6}#minimap-wrap{position:absolute;top:max(52px,calc(env(safe-area-inset-top) + 42px));left:max(12px,env(safe-area-inset-left));padding:4px;border-radius:12px;background:#101e28b8}#minimap{display:block;width:104px;height:140px;border-radius:8px}#top-right{position:absolute;right:max(12px,env(safe-area-inset-right));top:max(52px,calc(env(safe-area-inset-top) + 42px));display:flex;flex-direction:column;align-items:flex-end;gap:8px}.icon-row{display:flex;gap:6px}.icon-btn{pointer-events:auto;width:44px;height:44px;border:0;border-radius:11px;display:grid;place-items:center;background:#101e28b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;box-shadow:0 2px #00000040}.icon-btn svg{width:24px;height:24px;fill:#fff}.icon-btn:active{transform:translateY(1px)}.btn{pointer-events:auto;border:0;border-radius:10px;padding:10px 14px;font:inherit;font-weight:600;font-size:14px;color:#fff;background:var(--accent);box-shadow:0 2px 8px #0003;cursor:pointer}.btn:active{transform:translateY(1px)}.btn-ghost{background:var(--panel-bg);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:6px 12px;font-size:13px}.btn-small{padding:4px 10px;font-size:11px;opacity:.8}.btn-ghost.on{outline:2px solid #ffee55;opacity:1}#wind{display:flex;align-items:center;gap:8px;padding:6px 10px}#wind-arrow{fill:#ffcf4a;transition:transform .4s ease;flex:none}#wind-speed{font-weight:800;font-size:14px}#wind-desc{font-size:11px;opacity:.85}#debug-panel[hidden]{display:none}#debug-stats{margin:4px 0 0;font:11px/1.35 ui-monospace,Menlo,monospace;white-space:pre-wrap}.dbg-title{font-weight:700}#toast{position:absolute;top:max(52px,calc(env(safe-area-inset-top) + 42px));left:50%;transform:translate(-50%);max-width:calc(100% - 260px);min-width:120px;text-align:center}#toast[hidden]{display:none}#info-main{font-weight:800;font-size:16px}#info-sub{font-size:12px;opacity:.85;margin-top:2px}#info-sub:empty{display:none}.controls{pointer-events:auto;display:flex;flex-direction:column;gap:6px;font-size:12px;width:170px}.controls label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px}.controls output{font-weight:700}.controls input[type=range]{width:100%;margin:2px 0 0;accent-color:var(--accent);touch-action:pan-x}#hand-btn{pointer-events:auto;position:absolute;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));min-height:44px;padding:8px 14px;border:0;border-radius:999px;background:#101e28d1;color:#fff;font:inherit;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 2px #00000040}#hand-btn[aria-pressed=true]{background:#ff6a3d}#aim-stick{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:116px;height:116px;border-radius:50%;background:#101e2861;border:2px solid rgba(255,255,255,.4);pointer-events:auto;touch-action:none;z-index:4}#aim-stick[hidden]{display:none}#aim-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#ffffffeb;box-shadow:0 2px 8px #00000047}#disc-bar{position:absolute;left:50%;transform:translate(-50%);bottom:max(12px,env(safe-area-inset-bottom));display:flex;gap:8px;pointer-events:auto}.disc-card{width:92px;border:0;border-radius:14px;padding:8px 6px 7px;font:inherit;color:#fff;background:linear-gradient(180deg,#3aa6e0,#1f6fa8);box-shadow:0 3px #164e78,0 6px 14px #00000040;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:transform .12s ease}.disc-card img{width:62px;height:62px;border-radius:50%;display:block;box-shadow:0 2px 4px #00000059}.disc-card .name{font-weight:900;font-size:13px;letter-spacing:.02em;text-transform:uppercase;line-height:1}.disc-card .nums{font-size:10px;opacity:.9;font-weight:600}.disc-card[aria-checked=true]{transform:translateY(-6px);outline:3px solid #fff}.disc-card[aria-checked=false]{filter:saturate(.6) brightness(.85)}.disc-card:disabled{cursor:default;opacity:.6}#basket-marker{position:fixed;left:0;top:0;display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:3;transform:translate(-50%,-100%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}#basket-marker[hidden]{display:none}#bm-dist{font-weight:900;font-size:18px;color:#fff;-webkit-text-stroke:1px rgba(10,30,50,.6);line-height:1}#basket-marker svg{width:24px;height:30px;fill:#2e8fd8}#basket-marker.edge svg{fill:#ff6a3d}#scorecard{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:#0a140e73;z-index:10}#scorecard[hidden]{display:none}#scorecard .card{width:min(520px,100%);max-height:calc(100% - 20px);overflow-y:auto;background:#fbfcf8;color:#1d2a1f;border-radius:14px;padding:18px 16px 16px;box-shadow:0 10px 40px #0000004d}#scorecard h2{margin:0 0 4px;font-size:22px}#scorecard .sc-msg{margin:0 0 12px;font-size:14px;color:#4d5d50}.sc-table-wrap{overflow-x:auto}#scorecard table{width:100%;border-collapse:collapse;font-size:14px;text-align:center}#scorecard th,#scorecard td{padding:6px 4px;border-bottom:1px solid #e3e8df}#scorecard th:first-child{text-align:left;color:#6b7a6e;font-weight:600}#scorecard tr.head th{color:#6b7a6e;font-weight:600}#scorecard tbody.sc-gap tr.head th{padding-top:14px}#scorecard td.tot-label{text-align:right;color:#6b7a6e;font-size:12px}#scorecard table{font-size:13px}#scorecard td.cur,#scorecard th.cur{background:#eef5e6}#scorecard td.under{color:#b2361b;font-weight:700}#scorecard td.over{color:#2a5d9c}#scorecard .sc-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}#scorecard .sc-actions .btn{position:static}#scorecard .sc-actions .btn-ghost{color:#1d2a1f;background:#e7ece2;backdrop-filter:none}#throw-ring{position:fixed;left:0;top:0;width:112px;height:112px;border-radius:50%;background:center / cover no-repeat;box-shadow:0 0 0 4px #ffffffeb,0 10px 24px #00000059;pointer-events:none;z-index:6}#throw-ring[hidden]{display:none}#throw-ring.dragging{box-shadow:0 0 0 4px #5ed6ccf2,0 12px 28px #0006}#throw-band{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}#throw-band .power-arc{fill:none;stroke:#ffffffe0;stroke-width:3;stroke-linecap:round}#throw-band .power-arc.outer{stroke-width:4;stroke:#fffffff2}#throw-band .aim-cone{filter:blur(1.2px)}#throw-angle{position:fixed;top:calc(max(10px,env(safe-area-inset-top)) + 46px);left:50%;transform:translate(-50%);z-index:7;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}#throw-angle[hidden]{display:none}.shot-orb{width:54px;height:54px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 6px 16px #00000047}.shot-orb svg{width:30px;height:30px;display:block}.shot-name{font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55)}.shot-power{font-weight:800;font-size:13px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55)}body.is-dragging #disc-bar,body.is-dragging #top-right,body.is-dragging #hand-btn,body.is-dragging #aim-stick{visibility:hidden;pointer-events:none}body.is-dragging #toast{top:calc(max(10px,env(safe-area-inset-top)) + 132px)}@media(max-width:560px){.chip{height:28px;padding:0 7px;font-size:13px}.chip svg{width:15px;height:15px}#minimap{width:84px;height:112px}#toast{top:calc(max(52px,calc(env(safe-area-inset-top) + 42px)) + 128px);max-width:calc(100% - 40px)}#info-main{font-size:14px}.controls{width:140px}#disc-bar{left:max(12px,env(safe-area-inset-left));transform:none;gap:6px}.disc-card{width:70px;padding:6px 4px;border-radius:12px}.disc-card img{width:46px;height:46px}.disc-card .name{font-size:11px}.disc-card .nums{font-size:9px}#throw-ring{width:92px;height:92px}#hand-btn{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 96px)}#aim-stick{width:96px;height:96px}#aim-knob{width:40px;height:40px;margin:-20px 0 0 -20px}.shot-orb{width:46px;height:46px}.shot-orb svg{width:26px;height:26px}}@media(max-height:500px){#aim-stick{width:84px;height:84px}#hand-btn{bottom:max(8px,env(safe-area-inset-bottom));min-height:40px}.shot-orb{width:44px;height:44px}#throw-angle{top:calc(max(6px,env(safe-area-inset-top)) + 36px)}body.is-dragging #toast{top:calc(max(6px,env(safe-area-inset-top)) + 112px)}}body.builder-on #hud,body.builder-on #basket-marker{display:none!important}#builder{position:fixed;inset:0;z-index:30;pointer-events:none;color:#f4f7f2;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#builder[hidden]{display:none!important}#builder-top{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));display:flex;flex-wrap:wrap;gap:6px;align-items:center;pointer-events:none}#builder-top strong{font-size:15px;margin-right:4px}#builder-count{font-size:13px;opacity:.8}.builder-text,#builder-vert button,#builder-selected button,.builder-kind{pointer-events:auto;border:0;border-radius:999px;min-height:40px;padding:8px 12px;background:#101e28d1;color:#fff;font:inherit;font-weight:700;font-size:13px;cursor:pointer}.builder-text.on,.builder-kind.on{background:#ff6a3d}.builder-done{background:#e7ece2;color:#1d2a1f}.builder-file{display:inline-flex;align-items:center}#builder-hint{position:absolute;top:calc(max(8px,env(safe-area-inset-top)) + 52px);left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));margin:0;font-size:13px;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.45)}#builder-palette{position:absolute;left:0;right:0;bottom:max(8px,env(safe-area-inset-bottom));display:flex;gap:6px;overflow-x:auto;padding:0 max(8px,env(safe-area-inset-right)) 2px max(8px,env(safe-area-inset-left));pointer-events:auto;-webkit-overflow-scrolling:touch}.builder-kind{flex:none}#builder-selected{position:absolute;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:calc(max(8px,env(safe-area-inset-bottom)) + 56px);display:flex;gap:6px;overflow-x:auto;pointer-events:auto}#builder-selected[hidden]{display:none!important}#builder-selected-label{display:none;align-self:center;font-weight:700;font-size:13px;padding:0 4px}#builder-selected.basket #builder-selected-label{display:inline}#builder-selected.basket button{display:none}#builder-stick{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:calc(max(8px,env(safe-area-inset-bottom)) + 112px);width:104px;height:104px;border-radius:50%;background:#101e2866;border:2px solid rgba(255,255,255,.35);pointer-events:auto;touch-action:none}#builder-knob{position:absolute;left:31px;top:31px;width:42px;height:42px;border-radius:50%;background:#ffffffe6}#builder-vert{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:calc(max(8px,env(safe-area-inset-bottom)) + 112px);display:flex;flex-direction:column;gap:8px;pointer-events:none}#builder-vert button{min-width:64px}@media(max-width:560px){#builder-hint{display:none}#builder-stick{width:92px;height:92px}#builder-knob{left:25px;top:25px}}
