html,body{width:100%;height:100vh;height:100dvh;height:var(--app-height, 100dvh);margin:0;touch-action:none;overscroll-behavior:none}#app{width:100%;height:100%;margin:0;touch-action:none;overscroll-behavior:none}:root{color-scheme:only light;--transport-control-size: 46px}body{overflow:hidden;overscroll-behavior:none;background:#111;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;user-select:none;-webkit-user-select:none}button,input,select{font:inherit}.hidden{display:none!important}canvas{display:block;touch-action:none}.aim-minimap{position:fixed;z-index:4;top:max(var(--aim-minimap-toolbar-top, 0px),max(92px,calc(env(safe-area-inset-top) + 80px)));left:max(12px,env(safe-area-inset-left));width:min(323px,34vw);height:auto;box-sizing:border-box;border-radius:6px;box-shadow:0 6px 18px #0000003d;opacity:.75;pointer-events:none}.debug,.controls{position:fixed;z-index:5;padding:10px 12px;color:#f4f4f4;background:#000000ad;border:1px solid rgba(255,255,255,.08);border-radius:8px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.debug{position:fixed;top:44px;left:max(12px,env(safe-area-inset-left));max-width:min(560px,calc(100vw - 24px));font-size:12px;line-height:1.5;white-space:pre-wrap;pointer-events:none}.debug.collapsed{display:none}.controls{z-index:12;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:min(320px,calc(100vw - 48px));max-height:calc(100vh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;font-size:12px}.controls-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.controls-title{font-weight:700;font-size:14px}.collapse-button,.hud-button,.wide-control-button,.buttons button{color:#f5f5f5;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:7px}.collapse-button{padding:4px 8px}.wide-control-button{width:100%;margin:0;padding:8px 10px}.gate-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:-2px 0 10px}.gate-action-buttons .wide-control-button:disabled{opacity:.42}.gate-source-link{display:flex;align-items:center;justify-content:center;box-sizing:border-box;text-decoration:none;text-align:center}.gate-source-link.hidden{display:none}.controls-body{margin-top:10px}.controls.collapsed{width:auto}.controls.collapsed .controls-body{display:none}.controls label{display:block;margin-bottom:5px}.controls select{display:block;width:100%;margin-top:5px;padding:7px;color:#f5f5f5;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:6px}.profile-note{margin:0 0 10px;color:#bdbdbd;line-height:1.4}.calibration-settings{margin:0 0 12px;padding:8px;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:#ffffff09}.calibration-settings summary{padding:2px 0;cursor:pointer;color:#f1f1f1;font-weight:700;touch-action:manipulation}.calibration-settings[open] summary{margin-bottom:8px}.calibration-device-note{margin-bottom:8px;font-size:10px}.calibration-settings label{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px;margin-bottom:2px}.calibration-settings label span{color:#fff;font-variant-numeric:tabular-nums}.calibration-settings input[type=range]{grid-column:1 / -1;margin:2px 0 7px}.calibration-preview-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:3px 0 7px}.calibration-preview-buttons button{min-width:0;padding:7px 3px;color:#f5f5f5;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:7px;font-size:9px;touch-action:manipulation}.controls input[type=range]{width:100%;margin:0 0 12px}.buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.buttons button{padding:8px 7px}.buttons button:disabled{opacity:.42;cursor:default}.buttons.secondary{margin-top:8px}#camera-drag.active,#camera-view-toggle.active,#elevation-toggle.active,#move-balls.active,#chat-toggle.active{background:#67a8ff42;border-color:#8bbfff8c}canvas.move-balls{cursor:grab}canvas.dragging-ball{cursor:grabbing}#camera-reset{grid-column:auto}.quick-controls>.quick-button.camera-view-toggle{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0 8px;font-size:19px}.camera-view-toggle small{font-size:8px;font-weight:800;letter-spacing:-.2px}.slow-motion{margin-top:10px}.game-top-bar{display:flex;align-items:flex-start;justify-content:center;gap:8px;flex:0 0 auto}.automatic-cue-elevation-warning{position:fixed;z-index:10;top:max(70px,calc(env(safe-area-inset-top) + 58px));left:50%;max-width:min(92vw,620px);padding:7px 12px;box-sizing:border-box;transform:translate(-50%);border:1px solid rgba(240,202,122,.38);border-radius:999px;background:#071a16e6;box-shadow:0 7px 18px #00000047,inset 0 1px #ffffff0d;color:#fff0bd;font:800 11px/1.35 system-ui,-apple-system,sans-serif;text-align:center;pointer-events:none}.mechanical-scoreboard{position:relative;box-sizing:border-box;width:clamp(210px,23vw,274px);padding:7px;color:#f7ead3;background:linear-gradient(90deg,rgba(255,255,255,.14),transparent 12%,transparent 88%,rgba(0,0,0,.2)),repeating-linear-gradient(7deg,#ffffff09 0 1px,#46231209 1px 4px),linear-gradient(145deg,#b17a55,#75462e 58%,#9b6847);border:1px solid #c99a73;border-radius:3px;box-shadow:inset 0 0 0 2px #411f1159,inset 0 0 0 4px #f4cda71f,0 8px 24px #00000061;transition:width .16s ease}.mechanical-scoreboard.compact-score{width:164px;padding:5px}.mechanical-scoreboard[data-feedback=score]{animation:scoreboard-score .72s ease-out}.mechanical-scoreboard[data-feedback=turn]{animation:scoreboard-turn .62s ease-out}.mechanical-scoreboard[data-feedback=foul]{animation:scoreboard-foul .72s ease-out}@keyframes scoreboard-score{0%,to{transform:translateY(0);filter:brightness(1)}35%{transform:translateY(-3px) scale(1.035);filter:brightness(1.35)}}@keyframes scoreboard-turn{0%,to{transform:translate(0)}35%{transform:translate(3px)}65%{transform:translate(-2px)}}@keyframes scoreboard-foul{0%,to{transform:translate(0);filter:none}25%{transform:translate(-3px);filter:saturate(1.7)}55%{transform:translate(3px);filter:saturate(1.7)}}.shot-feedback{position:fixed;z-index:8;top:30%;left:50%;display:grid;min-width:min(280px,calc(100vw - 40px));padding:13px 24px 15px;box-sizing:border-box;transform:translate(-50%,calc(-50% - 14px)) scale(.94);opacity:0;pointer-events:none;text-align:center;color:#fff;background:linear-gradient(135deg,#090c0ed6,#16191bb3);border:1px solid rgba(255,255,255,.16);border-radius:14px;box-shadow:0 16px 42px #0000005c;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.shot-feedback.visible{animation:shot-feedback-in 1.85s ease both}.shot-feedback-eyebrow{font-size:10px;font-weight:700;letter-spacing:.18em;opacity:.72}.shot-feedback-title{margin:2px 0;font-family:system-ui,-apple-system,sans-serif;font-size:30px;line-height:1;text-shadow:0 3px 18px currentColor}.shot-feedback-detail{font-size:11px;opacity:.78}.shot-feedback-score{color:#ffd57b;border-color:#ffce6373}.shot-feedback-turn{color:#d9e7f0;border-color:#b3d7eb52}.shot-feedback-foul{color:#ff917d;border-color:#ff6f5775}.bot-planning-overlay{position:fixed;z-index:24;top:50%;left:50%;display:grid;place-items:center;gap:10px;min-width:112px;padding:18px 22px 16px;box-sizing:border-box;transform:translate(-50%,-50%);pointer-events:none;color:#f8f3e9;background:#080c0db8;border:1px solid rgba(255,255,255,.14);border-radius:16px;box-shadow:0 14px 42px #00000057;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.bot-planning-spinner{width:46px;height:46px;box-sizing:border-box;border:4px solid rgba(255,255,255,.17);border-top-color:#f4d28a;border-radius:50%;animation:bot-planning-spin .72s linear infinite}.bot-planning-label{font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:750;letter-spacing:.02em;white-space:nowrap}.bot-route-debug-overlay{position:fixed;z-index:25;top:10px;left:10px;max-width:min(560px,calc(100vw - 20px));max-height:min(48vh,420px);margin:0;padding:10px 12px;overflow:auto;box-sizing:border-box;pointer-events:none;color:#f8f3e9;background:#080c0ddb;border:1px solid rgba(244,210,138,.4);border-radius:8px;box-shadow:0 8px 24px #00000059;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap}.bot-route-debug-toggle{position:fixed;z-index:26;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));min-width:92px;min-height:44px;padding:8px 12px;color:#f8f3e9;border:1px solid rgba(244,210,138,.45);border-radius:999px;background:#080c0de6;box-shadow:0 6px 18px #0000004d;font:800 12px/1 system-ui,-apple-system,sans-serif}@media(max-width:700px){.bot-route-debug-overlay{top:calc(max(10px,env(safe-area-inset-top)) + 52px);left:max(10px,env(safe-area-inset-left));max-width:calc(100vw - max(20px,env(safe-area-inset-left)) - max(20px,env(safe-area-inset-right)));max-height:min(42vh,360px);pointer-events:auto;font-size:10px}}@keyframes bot-planning-spin{to{transform:rotate(360deg)}}@keyframes shot-feedback-in{0%{opacity:0;transform:translate(-50%,calc(-50% - 14px)) scale(.94)}14%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,calc(-50% + 7px)) scale(.985)}}.phase12-home-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.feature-overlay{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));box-sizing:border-box;overflow:auto;color:var(--ui-ivory);background:radial-gradient(circle at 50% 16%,rgba(31,105,87,.24),transparent 42%),#050b0de6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);touch-action:pan-y}.feature-card{width:min(680px,100%);max-height:min(780px,100%);overflow:auto;box-sizing:border-box;padding:26px;border:1px solid rgba(224,190,128,.28);border-radius:22px;background:linear-gradient(145deg,#1b2d2afa,#0b1818fa);box-shadow:0 28px 90px #00000085,inset 0 1px #ffffff0a;touch-action:pan-y}.feature-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid rgba(224,190,128,.15)}.help-header-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.feature-kicker{color:var(--ui-gold-soft);font-size:10px;font-weight:900;letter-spacing:.18em}.feature-card h2{margin:5px 0 0;font:800 clamp(25px,5vw,36px)/1.05 Georgia,serif;letter-spacing:-.035em}.feature-close,.feature-card button{min-height:42px;padding:9px 13px;color:var(--ui-ivory);background:#fff1;border:1px solid rgba(224,190,128,.22);border-radius:10px;font-weight:800;cursor:pointer}.feature-card button:disabled{opacity:.38;cursor:default}.feature-close{flex:0 0 42px;width:42px;padding:0}.help-step{min-height:280px;padding:30px 6px 22px;color:var(--ui-text);font:500 15px/1.75 system-ui,-apple-system,sans-serif;user-select:text;-webkit-user-select:text}.help-step h3{margin:0 0 17px;color:var(--ui-ivory);font:800 23px/1.2 Georgia,serif}.help-step p{margin:0 0 14px}.help-step ul{margin:0;padding-left:21px}.help-step li+li{margin-top:7px}.help-topic-hero{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;margin:0 0 18px;padding:14px 16px;border:1px solid rgba(224,190,128,.18);border-radius:14px;background:#ffffff09}.help-topic-hero>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e5c36c1c;font-size:25px}.help-topic-hero>p{margin:0;color:#f5ecd8d1;font-size:13px;line-height:1.55}.help-action-list{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:help-action}.help-action-list>li{position:relative;min-height:34px;padding:8px 10px 8px 44px;border-radius:10px;background:#ffffff06;line-height:1.55;counter-increment:help-action}.help-action-list>li:before{position:absolute;top:8px;left:9px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;content:counter(help-action);color:#25180a;background:var(--ui-gold-soft);font-size:11px;font-weight:900}.help-topic-note{margin-top:14px;padding:11px 13px;border-left:3px solid rgba(229,195,108,.68);border-radius:5px 10px 10px 5px;color:#f5ecd8c7;background:#e5c36c12;font-size:12px;line-height:1.55}.help-footer{display:grid;grid-template-columns:100px 1fr 100px;align-items:center;gap:12px;padding-top:18px;border-top:1px solid rgba(224,190,128,.15)}.help-progress{color:var(--ui-muted);text-align:center;font-size:12px;font-weight:800}.help-tutorial-replay{width:100%;margin:0 0 12px;color:#ffe8ad!important;border-color:#e5c36c6b!important;background:#e5c36c1a!important}.help-index-intro{margin-bottom:18px}.help-index-intro h3{margin-bottom:7px}.help-index-intro p{margin:0;color:var(--ui-muted);font-size:13px;line-height:1.55}.help-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.help-category-grid>button{display:grid;gap:4px;min-height:72px;padding:12px 13px;text-align:left}.help-category-grid strong{color:var(--ui-ivory);font-size:14px}.help-category-grid small{color:var(--ui-muted);font-size:10px;line-height:1.35}.help-topic-list{display:grid;gap:7px}.help-topic-list>button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;text-align:left}.help-topic-list>button span{color:var(--ui-gold-soft);font-size:20px}.feature-discovery{position:fixed;inset:0;z-index:96;pointer-events:none}.feature-discovery-focus{position:fixed;box-sizing:border-box;border:2px solid var(--ui-gold-soft);border-radius:12px;box-shadow:0 0 0 4px #e5c36c21,0 0 24px #e5c36c47;pointer-events:none}.feature-discovery-card{position:fixed;width:min(290px,calc(100vw - 20px));box-sizing:border-box;padding:13px 14px 11px;border:1px solid rgba(229,195,108,.38);border-radius:14px;color:var(--ui-ivory);background:#071815f7;box-shadow:0 16px 42px #0000006b;pointer-events:auto}.feature-discovery-card>strong{display:block;color:#ffe8ad;font-size:13px}.feature-discovery-card>p{margin:5px 0 10px;color:#f5ecd8c7;font-size:11px;line-height:1.45}.feature-discovery-actions{display:flex;justify-content:flex-end;gap:6px}.feature-discovery-actions button{min-height:30px;padding:5px 9px;border:1px solid rgba(229,195,108,.22);border-radius:8px;color:var(--ui-ivory);background:#ffffff0f;font-size:10px;font-weight:850}.feature-discovery-actions button:last-child{color:#2b1d08;background:#e5c36c}@media(max-width:560px){.help-category-grid{grid-template-columns:1fr}.help-category-grid>button{min-height:58px}}.interactive-tutorial-coach{position:fixed;inset:0;z-index:78;pointer-events:none}.interactive-tutorial-coach.hidden{display:none}.quick-controls.tutorial-game-controls-hidden>button,.quick-controls.tutorial-game-controls-hidden .practice-cue-toggle,.quick-controls.tutorial-game-controls-hidden .game-menu,.quick-controls.tutorial-game-controls-hidden .quick-elevation{display:none!important}.quick-controls.tutorial-game-controls-hidden.tutorial-camera-step>#camera-view-toggle{display:flex!important}.interactive-tutorial-focus,.interactive-tutorial-secondary-focus{position:fixed;box-sizing:border-box;border:3px solid #e5c36c;border-radius:14px;box-shadow:0 0 0 4px #e5c36c29,0 0 34px #e5c36c6b;pointer-events:none;animation:tutorial-focus-pulse 1.25s ease-in-out infinite alternate}.interactive-tutorial-focus.round,.interactive-tutorial-secondary-focus.round{border-radius:50%}.interactive-tutorial-secondary-focus{border-width:2px;opacity:.9}.interactive-tutorial-arrow{position:fixed;inset:0;width:100vw;height:100dvh;overflow:visible;pointer-events:none}.interactive-tutorial-arrow line{stroke:#e5c36c;stroke-width:2.5;stroke-linecap:round;filter:drop-shadow(0 2px 4px rgba(0,0,0,.42))}.interactive-tutorial-arrow .hidden{display:none}.tutorial-aim-drag{position:fixed;z-index:3;left:50%;top:58%;width:min(230px,58vw);height:74px;transform:translate(-50%,-50%);pointer-events:none}.tutorial-aim-drag-track{position:absolute;left:12px;right:12px;top:29px;height:3px;border-radius:999px;background:linear-gradient(90deg,#e5c36c2e,#e5c36cf2);box-shadow:0 2px 5px #00000059}.tutorial-aim-drag[data-direction=left] .tutorial-aim-drag-track{background:linear-gradient(270deg,#e5c36c2e,#e5c36cf2)}.tutorial-aim-drag-track:after{content:"›";position:absolute;right:-2px;top:50%;transform:translateY(-56%);color:#e5c36c;font-size:34px;font-weight:900;line-height:1}.tutorial-aim-drag[data-direction=left] .tutorial-aim-drag-track:after{content:"‹";left:-2px;right:auto}.tutorial-aim-drag-finger{position:absolute;left:12px;top:18px;width:24px;height:24px;border:3px solid #fff2c6;border-radius:50%;background:#e5c36c52;box-shadow:0 0 0 4px #00000038,0 4px 12px #00000061;animation:tutorial-aim-drag-right 1.5s ease-in-out infinite}.tutorial-aim-drag[data-direction=left] .tutorial-aim-drag-finger{left:auto;right:12px;animation-name:tutorial-aim-drag-left}.tutorial-aim-drag-label{position:absolute;left:50%;bottom:0;transform:translate(-50%);color:#fff0be;font-size:12px;font-weight:900;white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.7)}@keyframes tutorial-aim-drag-right{0%{transform:translate(0) scale(.92);opacity:.45}18%{opacity:1}72%{transform:translate(calc(min(230px,58vw) - 48px)) scale(1.04);opacity:1}to{transform:translate(calc(min(230px,58vw) - 48px)) scale(.95);opacity:0}}@keyframes tutorial-aim-drag-left{0%{transform:translate(0) scale(.92);opacity:.45}18%{opacity:1}72%{transform:translate(calc(48px - min(230px,58vw))) scale(1.04);opacity:1}to{transform:translate(calc(48px - min(230px,58vw))) scale(.95);opacity:0}}.tutorial-tip-drag{position:fixed;z-index:5;width:1px;height:1px;pointer-events:none}.tutorial-tip-drag-track{position:absolute;left:0;top:0;height:3px;border-radius:999px;transform-origin:left center;background:linear-gradient(90deg,#ffe49638,#ffcf58eb);box-shadow:0 2px 5px #00000061}.tutorial-tip-drag-track:after{content:"›";position:absolute;right:-5px;top:50%;transform:translateY(-55%);color:#ffcf58;font-size:25px;font-weight:900;line-height:1}.tutorial-tip-drag-finger{position:absolute;left:-11px;top:-11px;width:22px;height:22px;border:3px solid #fff2c6;border-radius:50%;background:#e5c36c57;box-shadow:0 0 0 3px #0000003d,0 4px 10px #0000006b;animation:tutorial-tip-drag-to-target 1.45s ease-in-out infinite}.tutorial-tip-drag-label{position:absolute;transform:translate(-50%);color:#fff0be;font-size:10px;font-weight:900;white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.72)}@keyframes tutorial-tip-drag-to-target{0%{transform:translate(0) scale(.92);opacity:.35}18%{opacity:1}72%{transform:translate(var(--tutorial-tip-dx),var(--tutorial-tip-dy)) scale(1.04);opacity:1}to{transform:translate(var(--tutorial-tip-dx),var(--tutorial-tip-dy)) scale(.96);opacity:0}}.interactive-tutorial-arrow marker path{fill:#e5c36c}.tutorial-control-locked{outline:2px solid rgba(141,217,189,.72);outline-offset:3px;box-shadow:0 0 0 3px #8dd9bd1a,0 0 18px #8dd9bd38}.interactive-tutorial-target-dot{position:fixed;z-index:2;width:20px;height:20px;box-sizing:border-box;transform:translate(-50%,-50%);border:3px solid #ffcf58;border-radius:50%;background:#ffcf582e;box-shadow:0 0 0 3px #04120fb8,0 0 18px #ffcf58b8;pointer-events:none}.interactive-tutorial-target-dot:before,.interactive-tutorial-target-dot:after{content:"";position:absolute;left:50%;top:50%;background:#ffcf58;transform:translate(-50%,-50%)}.interactive-tutorial-target-dot:before{width:28px;height:2px}.interactive-tutorial-target-dot:after{width:2px;height:28px}.interactive-tutorial-card{position:fixed;top:max(78px,calc(env(safe-area-inset-top) + 10px));left:50%;width:min(390px,calc(100vw - 24px));padding:14px 42px 14px 16px;box-sizing:border-box;transform:translate(-50%);color:#f8f0dc;border:1px solid rgba(229,195,108,.58);border-radius:15px;background:#081714f5;box-shadow:0 16px 44px #00000080;pointer-events:auto}.interactive-tutorial-progress{margin-bottom:4px;color:#d7b867;font-size:12px;font-weight:900;letter-spacing:.08em}.interactive-tutorial-title{display:block;margin-bottom:6px;font-size:19px}.interactive-tutorial-body{margin:0;color:#f8f0dce0;font-size:15px;line-height:1.55}.interactive-tutorial-live{margin-top:9px;color:#ffe39b;font-size:13px;font-weight:900}.interactive-tutorial-next{margin-top:12px;min-width:96px;min-height:38px;padding:0 18px;border:1px solid rgba(229,195,108,.52);border-radius:10px;color:#fff4d5;background:#e5c36c24;font-weight:900;pointer-events:auto}.interactive-tutorial-next.hidden{display:none}.interactive-tutorial-exit{position:absolute;top:8px;right:8px;width:36px;height:36px;padding:0;color:#f8f0dcb8;border:1px solid rgba(224,190,128,.2);border-radius:9px;background:#ffffff0d;pointer-events:auto}@keyframes tutorial-focus-pulse{0%{box-shadow:0 0 0 3px #e5c36c1f,0 0 20px #e5c36c40}to{box-shadow:0 0 0 5px #e5c36c33,0 0 38px #e5c36c85}}.in-game-coach{position:fixed;inset:0;z-index:72;pointer-events:none}.in-game-coach.hidden{display:none}.in-game-coach-focus{position:fixed;box-sizing:border-box;border:2px solid #e5c36c;border-radius:12px;box-shadow:0 0 0 3px #e5c36c29,0 0 28px #e5c36c5c;pointer-events:none}.in-game-coach-focus.round{border-radius:50%}.in-game-coach-arrow{position:fixed;inset:0;width:100vw;height:100dvh;overflow:visible;pointer-events:none}.in-game-coach-arrow line{stroke:#e5c36c;stroke-width:2.5;stroke-linecap:round;filter:drop-shadow(0 2px 4px rgba(0,0,0,.42))}.in-game-coach-arrow [data-coach-horizontal]{stroke-width:3.5}.in-game-coach-arrow .hidden{display:none}.in-game-coach-arrow marker path{fill:#e5c36c}.in-game-coach-card{position:fixed;width:min(320px,calc(100vw - 20px));padding:14px;box-sizing:border-box;color:#f8f0dc;background:#081714f5;border:1px solid rgba(229,195,108,.52);border-radius:14px;box-shadow:0 14px 42px #00000075;pointer-events:auto}.in-game-coach-progress{margin-bottom:5px;color:#d7b867;font-size:9px;font-weight:900;letter-spacing:.12em}.in-game-coach-title{display:block;font-size:15px}.in-game-coach-body{margin:7px 0 12px;color:#f2f0e5d1;font-size:12px;line-height:1.55}.in-game-coach-final{margin:2px 0 10px;padding-top:9px;border-top:1px solid rgba(229,195,108,.16);font-size:11px}.in-game-coach-final label{display:flex;align-items:center;gap:7px;cursor:pointer}.in-game-coach-final input{width:16px;height:16px}.in-game-coach-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.in-game-coach-actions button{min-height:36px;padding:6px 8px;color:#fff6df;background:#ffffff12;border:1px solid rgba(229,195,108,.28);border-radius:9px;font:inherit;font-size:10px;font-weight:850;pointer-events:auto;touch-action:manipulation}.in-game-coach-actions button[data-coach-action=next]{background:#c0913247;border-color:#e5c36c8f}.in-game-coach-actions button:disabled{opacity:.34}@media(max-width:760px){.in-game-coach-card{width:min(280px,calc(100vw - 16px));padding:11px;border-radius:12px}.in-game-coach-body{font-size:11px}.in-game-coach-actions button{min-height:34px;padding-inline:4px;font-size:9px}}.replay-library-card{width:min(820px,100%)}.replay-library-toolbar{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}.replay-library-toolbar button:first-child{color:#10261f;background:linear-gradient(180deg,#e8c987,#c99b53);border-color:#f0d99f}.feature-status{min-height:18px;margin:12px 2px;color:var(--ui-muted);font-size:11px}.feature-status.error{color:#ff9b8f}.replay-library-list{display:grid;gap:0;overflow:hidden;border:1px solid rgba(224,190,128,.15);border-radius:15px;background:#ffffff0b;box-shadow:inset 0 1px #ffffff09,0 10px 28px #00000024}.replay-library-empty{display:grid;place-items:center;min-height:190px;padding:20px;border:0;border-radius:0;color:var(--ui-muted);text-align:center;line-height:1.6}.replay-library-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,42%);align-items:center;gap:14px;min-height:72px;padding:12px 14px;border:0;border-radius:0;background:transparent}.replay-library-item+.replay-library-item{border-top:1px solid rgba(214,230,220,.1)}.replay-library-item.incompatible{background:#e17b600e}.replay-library-copy{display:grid;min-width:0;gap:4px}.replay-library-title-row{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px;align-items:center;gap:5px;min-width:0}.replay-library-title-row:has(.replay-library-title-input){grid-template-columns:minmax(0,1fr) auto auto}.replay-library-title-row .replay-library-title-input{min-width:0;height:36px;padding:5px 8px;font:inherit}.replay-library-title-row button{min-width:34px;min-height:34px;padding:5px 7px;white-space:nowrap}.replay-library-rename,.replay-library-edit-note{border-radius:50%}.replay-library-copy strong,.replay-library-copy span,.replay-library-copy small{min-width:0;line-height:1.3;overflow-wrap:anywhere}.replay-library-copy strong{color:var(--ui-ivory);font-size:14px}.replay-library-copy span{color:var(--ui-text);font-size:11px}.replay-library-copy small{color:#83d7ab;font-size:9px}.replay-library-item.incompatible small{color:#ff9b8f}.replay-library-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;width:100%;min-width:0;gap:6px}.replay-library-actions button{width:100%;min-width:0;min-height:48px;padding:7px 6px;font-size:10px;line-height:1.25;overflow-wrap:anywhere}.replay-library-actions .replay-library-practice-primary{color:#14261f;border-color:#ebcc8fb8;background:linear-gradient(180deg,#e8c987,#c99b53)}.replay-note-card{width:min(560px,100%)}.replay-note-input{width:100%;min-height:130px;max-height:44vh;margin-top:16px;padding:12px 13px;box-sizing:border-box;color:var(--ui-ivory);border:1px solid rgba(224,190,128,.24);border-radius:13px;background:#030d0c9e;font:500 14px/1.6 system-ui,-apple-system,sans-serif;resize:vertical;outline:none}.replay-note-input:focus{border-color:#ebcc8f8c}.replay-note-hint{margin:8px 2px 0;color:var(--ui-muted);font-size:11px}.replay-note-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.replay-note-save{color:#10261f;background:linear-gradient(180deg,#e8c987,#c99b53);border-color:#f0d99f}.replay-save-name-overlay{z-index:120}.replay-save-name-card{width:min(460px,100%)}.replay-save-name-input{width:100%;min-height:48px;margin-top:16px;padding:11px 13px;box-sizing:border-box;color:var(--ui-ivory);border:1px solid rgba(224,190,128,.24);border-radius:13px;background:#030d0c9e;font:600 15px/1.3 system-ui,-apple-system,sans-serif;outline:none}.replay-save-name-input:focus{border-color:#ebcc8f8c}.replay-save-name-error{margin:6px 2px 0;color:#ff9b8f;font-size:11px;font-weight:700}.replay-save-name-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px}.replay-save-name-primary{color:#10261f;background:linear-gradient(180deg,#e8c987,#c99b53);border-color:#f0d99f}.replay-save-name-cancel{width:100%;margin-top:8px}.replay-note-viewer{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));box-sizing:border-box;background:#040a0c3d;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.replay-note-viewer-card{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(520px,100%);max-height:min(62vh,100%);overflow:hidden;box-sizing:border-box;padding:16px 18px 18px;color:var(--ui-ivory);border:1px solid rgba(224,190,128,.3);border-radius:18px;background:linear-gradient(150deg,#162826c7,#071313d6);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);box-shadow:0 24px 70px #0000008c,inset 0 1px #ffffff0d}.replay-note-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid rgba(224,190,128,.16)}.replay-note-viewer-title{min-width:0;color:var(--ui-gold-soft);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;line-height:1.25;overflow-wrap:anywhere}.replay-note-viewer-close{flex:0 0 40px}.replay-note-viewer-body{margin:14px 0 0;min-height:0;overflow:auto;color:var(--ui-ivory);font:500 14px/1.7 system-ui,-apple-system,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text}.replay-note-viewer-body:focus-visible{outline:2px solid rgba(235,204,143,.6);outline-offset:4px;border-radius:8px}@media(max-width:520px){.replay-library-copy strong{font-size:13px}.replay-note-viewer{place-items:end center}.replay-note-viewer-card{max-height:min(72vh,100%)}.replay-note-input{max-height:40vh}}.replay-controls-dock{position:fixed;z-index:29;bottom:max(8px,calc(env(safe-area-inset-bottom) + 6px));left:50%;width:min(520px,calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 24px));transform:translate(-50%);transition:opacity .18s ease}.replay-controls-dock.is-idle{opacity:0;pointer-events:none}.replay-controls-dock.speed-open .replay-shot-hud-dock{opacity:0}.replay-controller{position:relative;display:grid;gap:2px;width:100%;padding:4px 9px;box-sizing:border-box;color:var(--ui-ivory);border:1px solid rgba(224,190,128,.32);border-radius:18px;background:linear-gradient(145deg,#132e27f5,#05120ff7);box-shadow:0 10px 30px #0000006b}.replay-viewer-title{min-width:0;color:#f5eed8d1;font-size:11px;font-weight:750;line-height:18px;text-align:center;overflow-wrap:anywhere}.replay-timeline-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0}.replay-timeline-row input{width:100%;min-width:0;margin:0;accent-color:#e5c36c;cursor:pointer;height:28px;touch-action:none}.replay-timeline-row output{min-width:76px;color:var(--ui-ivory);text-align:right;font-size:10px;font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap}.replay-speed-controller{position:absolute;bottom:calc(100% - 20px);left:50%;transform:translate(-50%);padding:4px;border:1px solid rgba(224,190,128,.32);border-radius:14px;background:#10291f;color:var(--ui-ivory)}.replay-speed-presets{display:flex;align-items:center;gap:5px}.replay-speed-presets button{min-width:48px;min-height:34px;padding:0 9px;color:var(--ui-text);border:1px solid rgba(208,228,216,.18);border-radius:999px;background:#ffffff12;font-size:11px;font-weight:850;cursor:pointer}.replay-speed-presets button[aria-pressed=true]{color:#fff1c9;border-color:#e5c36c94;background:#b5873a47}body.replay-viewer-active .controls,body.replay-viewer-active .quick-controls,body.replay-viewer-active .aim-minimap,body.replay-viewer-active .mobile-fine-controls,body.replay-viewer-active .mobile-precision-readout,body.replay-viewer-active .shot-feedback,body.replay-viewer-active .phase12-scene-badge,body.replay-viewer-active .multiplayer-game-status,body.replay-viewer-active .opponent-aim-badge,body.replay-viewer-active .chat-panel,body.replay-viewer-active .chat-toast,body.replay-viewer-active .bot-planning-overlay,body.replay-viewer-active .bot-route-debug-toggle,body.replay-viewer-active .bot-route-debug-overlay,body.highlight-viewer-active .replay-controller,body.highlight-viewer-active .replay-controls-dock,body.highlight-viewer-active .cue-hud,body.highlight-viewer-active .game-top-bar{display:none!important}.highlight-panel{position:fixed;z-index:40;top:max(14px,env(safe-area-inset-top));bottom:auto;left:50%;display:flex;align-items:center;gap:14px;width:max-content;max-width:min(94vw,760px);padding:10px 12px 10px 18px;transform:translate(-50%);border:1px solid rgba(229,195,108,.38);border-radius:16px;background:linear-gradient(180deg,#081e1af2,#04100ef2);box-shadow:0 16px 40px #00000073,inset 0 1px #ffffff0f;color:#f3ecdd}.highlight-panel.hidden{display:none}.highlight-copy{display:grid;flex:1 1 auto;gap:3px;min-width:0}.highlight-copy strong{font-size:14px;letter-spacing:.01em}.highlight-meta{display:flex;flex-wrap:wrap;gap:2px 8px;color:#b9c8c1;font-size:12px}.highlight-meta span+span:before{content:"· ";color:#7f8f88}.highlight-meta.hidden{display:none}.highlight-shot-row{display:flex;align-items:center;gap:10px;min-width:0}.highlight-shot-hud{position:relative;flex:0 0 72px;width:72px;height:25px;overflow:visible;pointer-events:none}.highlight-shot-hud>.ball-hud-stage{position:absolute;z-index:1;inset:0 auto auto 0;width:360px;height:124px;flex:none;margin:0;transform:scale(.2)!important;transform-origin:left top!important;pointer-events:none!important}.highlight-shot-hud.hidden{display:none}.highlight-shot-values{color:#d9c998;font-size:12px;font-variant-numeric:tabular-nums;white-space:normal}.highlight-shot-values.hidden{display:none}.highlight-close{flex:none}.highlight-transition{position:fixed;z-index:90;inset:0;overflow:hidden;perspective:1500px;background:#04100e;pointer-events:none}.highlight-transition.hidden{display:none}.highlight-flip{position:absolute;inset:0;transform-style:preserve-3d}.highlight-flip-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .38s cubic-bezier(.45,.05,.55,.95)}.highlight-flip-frame{display:block;width:100%;height:100%}.highlight-flip-front{transform:rotateY(0)}.highlight-flip-back{transform:rotateY(90deg)}.highlight-transition.flip-open .highlight-flip-front{transform:rotateY(-90deg);transition-timing-function:ease-in}.highlight-transition.flip-open .highlight-flip-back{transform:rotateY(0);transition-timing-function:ease-out;transition-delay:.38s}.highlight-bumper{position:absolute;inset:-18px;display:none}.highlight-transition.bumper .highlight-bumper{display:block;transform:translateY(-101%);background:linear-gradient(180deg,#11443a,#0a2b25 46%,#04120f)}.highlight-transition.bumper.bumper-in .highlight-bumper{transform:translateY(0);transition:transform .6s cubic-bezier(.22,.68,.28,1)}.highlight-bumper-brand{position:absolute;right:max(4vw,40px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:7px;opacity:0;transform:translateY(-48px)}.highlight-transition.bumper.bumper-in .highlight-bumper-brand{opacity:1;transform:translateY(0);transition:transform .76s cubic-bezier(.2,.8,.25,1) .3s,opacity .52s ease-out .3s}.highlight-bumper-icon{width:44px;height:44px}.highlight-bumper-word{color:#f6efdd;font-size:26px;font-weight:800;letter-spacing:-.02em}.highlight-bumper-lockup{display:flex;align-items:center;gap:10px}.highlight-bumper-credit{color:#f6efddb3;font-size:14px;font-weight:700;letter-spacing:.01em}.highlight-bumper-credit.hidden{display:none}@media(prefers-reduced-motion:reduce){.highlight-flip-face,.highlight-transition.bumper .highlight-bumper,.highlight-bumper-brand{transition-duration:1ms;transition-delay:0ms}}.hud-prompt-row{position:absolute;z-index:1;top:calc(100% + 8px);left:50%;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:calc(100vw - 24px);transform:translate(-50%);pointer-events:none}.hud-save-prompt{min-height:44px;padding:9px 15px;color:#fff4d2;border:1px solid rgba(229,195,108,.52);border-radius:999px;background:linear-gradient(180deg,#7e5720f5,#3f2a12f5);box-shadow:0 10px 30px #0000006b,inset 0 1px #ffffff1a;font-size:12px;font-weight:850;white-space:nowrap;cursor:pointer;touch-action:manipulation;pointer-events:auto;animation:replay-save-prompt-in .18s ease-out}.shot-save-prompt{border-color:#8dd9bd85;background:linear-gradient(180deg,#1e604af5,#0c2e23f5)}body.replay-viewer-active .hud-prompt-row{display:none!important}@keyframes replay-save-prompt-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.replay-controller-actions{display:flex;align-items:center;justify-content:center;gap:5px}body.replay-viewer-active .cue-hud{display:none!important}.replay-shot-hud-dock{--replay-ball-hud-width: 360px;--replay-ball-hud-height: 124px;--replay-ball-hud-rendered-width: 180px;--replay-ball-hud-rendered-height: 62px;position:relative;width:100%;height:calc(var(--replay-ball-hud-rendered-height) + 4px);pointer-events:none}body.replay-viewer-active .replay-shot-hud-dock>.ball-hud-stage{position:absolute!important;inset:auto auto 0 50%!important;height:var(--replay-ball-hud-height)!important;width:var(--replay-ball-hud-width)!important;margin:0!important;transform:translate(-50%) scale(.5)!important;transform-origin:bottom center!important;pointer-events:none!important}.replay-shot-hud-dock .tip-ball{pointer-events:none!important}.replay-shot-hud-dock>.stroke-speed-readout{position:absolute;top:auto;right:auto;bottom:calc(var(--replay-ball-hud-rendered-height) / 2 - 13px);left:calc(50% + var(--replay-ball-hud-rendered-width) / 2 + 8px);transform:none}.transient-notice{position:fixed;z-index:90;top:50%;left:50%;min-width:min(230px,calc(100vw - 40px));padding:14px 22px;box-sizing:border-box;transform:translate(-50%,-50%);color:#fff8df;text-align:center;border:1px solid rgba(229,195,108,.48);border-radius:14px;background:#081c16f5;box-shadow:0 16px 42px #0000007a;font-size:14px;font-weight:850;pointer-events:none;animation:transient-notice-in .16s ease-out}.transient-notice[data-tone=error]{color:#ffe5df;border-color:#ff7d6480}.transient-notice.has-action{display:grid;gap:12px;pointer-events:auto}.transient-notice button{min-height:38px;padding:7px 14px;color:#fff4d2;border:1px solid rgba(229,195,108,.45);border-radius:999px;background:#b5873a38;font:inherit;font-weight:800;cursor:pointer;touch-action:manipulation}@keyframes transient-notice-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}#app button.transport-control,#app button.panel-nav-button{display:grid;place-items:center;flex:0 0 var(--transport-control-size);width:var(--transport-control-size);height:var(--transport-control-size);min-width:var(--transport-control-size);min-height:var(--transport-control-size);box-sizing:border-box;padding:0;color:var(--ui-text);border:1px solid rgba(208,228,216,.18);border-radius:50%;background:#ffffff12;font-size:18px;line-height:1;font-weight:800;cursor:pointer;touch-action:manipulation}#app button.transport-control-primary{color:#f9e8bb;border-color:#e5c36c6b;background:#b5873a2e}.replay-controller [data-replay-control=speed]{overflow:hidden;font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:-.06em;white-space:nowrap}@media(hover:hover){.feature-card button:not(:disabled):hover{border-color:#ebcc8f85;background:#ebcc8f21}.replay-library-toolbar button:first-child:not(:disabled):hover{background:#ebcd8d}#app button.transport-control:not(:disabled):hover,#app button.panel-nav-button:not(:disabled):hover{border-color:#ebcc8f85;background:#ebcc8f21}.replay-speed-presets button:hover{border-color:#ebcc8f85;background:#ebcc8f21}}@media(max-width:760px){.replay-shot-hud-dock{--replay-ball-hud-width: 198px;--replay-ball-hud-height: 68px;--replay-ball-hud-rendered-width: 99px;--replay-ball-hud-rendered-height: 34px}.feature-overlay{place-items:stretch;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.feature-card{width:100%;max-height:none;min-height:100%;padding:18px 15px;border-radius:17px}.help-step{min-height:0;padding:24px 3px;font-size:14px}.help-footer{grid-template-columns:82px 1fr 82px;padding-bottom:2px}.replay-library-item{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.replay-library-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.replay-library-actions button{width:100%;min-height:48px}.replay-library-actions button:last-child{grid-column:1 / -1}.replay-controller{padding:4px 8px}}@media(max-width:380px){.replay-shot-hud-dock{--replay-ball-hud-width: 174px;--replay-ball-hud-height: 60px;--replay-ball-hud-rendered-width: 87px;--replay-ball-hud-rendered-height: 30px}.phase12-home-tools,.replay-library-toolbar{grid-template-columns:1fr}.feature-card-header{padding-bottom:14px}.feature-card h2{font-size:25px}}@media(prefers-reduced-motion:reduce){.shot-feedback.visible,.mechanical-scoreboard[data-feedback]{animation-duration:1ms}.bot-planning-spinner{animation:none}}.compact-score .scoreboard-top-bay{box-sizing:border-box;height:32px;padding:2px 7px;cursor:default}.compact-score .scoreboard-rack,.compact-score .scoreboard-bottom-bay{display:none}.scoreboard-top-bay{position:relative;display:flex;align-items:center;width:100%;height:27px;padding:2px 22px 2px 7px;color:#f7ead3;background:linear-gradient(180deg,#0003,#ffffff09),#4a2e21;border:1px solid rgba(38,18,10,.82);border-radius:1px;box-shadow:inset 0 3px 7px #0000006b,0 1px #ffffff24;cursor:pointer;touch-action:manipulation}.scoreboard-brand{display:inline-grid;place-items:center;min-width:36px;height:15px;padding:0 5px;color:#fff7ef;background:linear-gradient(#e45f55,#b72d2c);border:1px solid rgba(255,229,217,.78);border-radius:50%;box-shadow:0 1px 2px #0000006b;font-family:Georgia,serif;font-size:7px;font-weight:700;letter-spacing:.35px}.scoreboard-readout{display:flex;align-items:center;justify-content:center;gap:5px;margin-left:auto;font-variant-numeric:tabular-nums}.scoreboard-readout strong{min-width:13px;color:#fff8e9;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1;text-align:center;text-shadow:0 1px 2px #000}.score-divider{color:#fff0dc7a}.score-player-ball{width:8px;height:8px;border-radius:50%;box-shadow:inset -2px -2px 3px #00000038,0 0 0 1px #ffffff2e}.score-player-white{background:#f2eee2}.score-player-yellow{background:#f4cb35}.score-player-ball.active{box-shadow:inset -2px -2px 3px #00000038,0 0 0 2px #f26a32,0 0 8px #ff7436d9}.scoreboard-chevron{position:absolute;right:6px;top:7px;color:#fff4e280;font-size:10px;transition:transform .16s ease}.scoreboard-rack{position:relative;display:grid;gap:2px;margin-top:5px;padding:6px 4px;overflow:hidden;background:radial-gradient(ellipse at 50% 0,rgba(255,255,255,.07),transparent 65%),#3f281e;border:1px solid rgba(35,16,9,.78);box-shadow:inset 0 7px 12px #00000080,inset 0 -2px 4px #ffffff0d}.scoreboard-row{position:relative;display:flex;align-items:center;justify-content:center;height:13px}.scoreboard-row.active:after{content:"";position:absolute;inset:-1px 0;border:1px solid rgba(244,103,45,.5);box-shadow:inset 0 0 7px #f4672d29;pointer-events:none}.scoreboard-rod{position:absolute;z-index:0;left:2px;right:2px;top:50%;height:1px;background:linear-gradient(180deg,#f1eee6,#747270);box-shadow:0 1px 1px #000000a6}.scoreboard-beads{position:relative;z-index:1;display:flex;width:86%;height:11px}.score-bead{flex:1 1 0;min-width:0;height:100%;border-radius:42%;box-shadow:inset 1px 0 #ffffff6b,inset -1px 0 #0000002e,0 1px 1px #00000061;transition:transform .15s ease}.score-bead.counted{transform:translate(-7px)}.score-bead.uncounted{transform:translate(7px)}.score-bead-white{background:linear-gradient(90deg,#aaa89f,#fffefa 46%,#c7c5bc)}.score-bead-orange{background:linear-gradient(90deg,#a32c12,#f25b22 46%,#b83613)}.scoreboard-bottom-bay{height:14px;margin-top:5px;display:grid;place-items:center;color:#f1dabe80;background:#2c1810a6;border:1px solid rgba(37,17,10,.72);box-shadow:inset 0 3px 6px #0000005c;font-size:6px;letter-spacing:1.2px}.mechanical-scoreboard.collapsed{width:190px}.mechanical-scoreboard.collapsed .scoreboard-rack,.mechanical-scoreboard.collapsed .scoreboard-bottom-bay{display:none}.mechanical-scoreboard.collapsed .scoreboard-chevron{transform:rotate(180deg)}.undo-shot-button{position:relative;flex:0 0 auto;min-width:48px;min-height:44px;background:#080808c7;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.quick-controls{position:fixed;z-index:9;top:max(8px,env(safe-area-inset-top));left:50%;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;box-sizing:border-box;width:max-content;max-width:calc(100vw - 24px);padding:8px;transform:translate(-50%);color:#f4f4f4;background:#080808c2;border:1px solid rgba(255,255,255,.14);border-radius:14px;box-shadow:0 8px 24px #00000047;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.quick-button,.quick-step{min-height:48px;padding:0 15px;color:#f5f5f5;background:#ffffff17;border:1px solid rgba(255,255,255,.16);border-radius:10px;white-space:nowrap;touch-action:manipulation}.quick-controls>.quick-button{display:grid;place-items:center;padding:0 10px;font-size:28px;line-height:1}.quick-controls.phase12-home-options-open{z-index:81;top:0;left:0;display:block;width:100vw;max-width:none;height:100dvh;padding:0;transform:none;background:#050b11db;border:0;border-radius:0;box-shadow:none;pointer-events:auto;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.quick-controls.phase12-home-options-open>:not(.game-menu){display:none!important}.quick-controls.phase12-home-options-open .game-menu{position:fixed;z-index:1;top:50%;left:50%;width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 36px);transform:translate(-50%,-50%)}.chat-toggle,.taunt-replay-button,.robot-assist-button,.trajectory-button{position:relative}.robot-assist-button.charged,.undo-shot-button.charged{border-color:#e5c36cb8;background:linear-gradient(180deg,#c28b2661,#5b351257);box-shadow:0 0 22px #e5c36c3b}.robot-assist-charge{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:20px;height:18px;padding:0 4px;box-sizing:border-box;color:#fff;background:#7e6527;border:2px solid rgba(8,8,8,.94);border-radius:999px;font:800 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:none}.robot-assist-button.charged .robot-assist-charge,.undo-shot-button.charged .robot-assist-charge,.trajectory-button .trajectory-use-badge{min-width:18px;padding:0;background:#c98b18}.taunt-replay-button.charged{border-color:#ff7058ad;background:#9c2c2657;box-shadow:0 0 18px #ff4e3b38}.taunt-replay-charge{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;width:17px;height:17px;color:#fff;background:#d94937;border:2px solid rgba(8,8,8,.94);border-radius:50%;font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:none;opacity:.28}.taunt-replay-button.charged .taunt-replay-charge,.taunt-replay-button.armed .taunt-replay-charge{opacity:1}.taunt-replay-button.armed{border-color:#ffce54c7;background:#7e561066;box-shadow:0 0 20px #ffc9463d}.taunt-replay-button.armed .taunt-replay-charge{width:auto;min-width:22px;padding:0 4px;border-radius:999px;background:#c98b18}.chat-unread-badge{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;box-sizing:border-box;color:#fff;background:#e74c3c;border:2px solid rgba(8,8,8,.94);border-radius:999px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;font-weight:800;line-height:1;pointer-events:none}.chat-panel{position:fixed;z-index:20;top:max(70px,calc(env(safe-area-inset-top) + 60px));left:50%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:8px;width:min(430px,calc(100vw - 28px));height:min(360px,42dvh);padding:10px;box-sizing:border-box;transform:translate(-50%);color:#f7fbff;background:#0a1015eb;border:1px solid rgba(145,202,237,.24);border-radius:16px;box-shadow:0 18px 48px #0000007a;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.chat-panel.input-focused{top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));height:auto;max-height:none}.chat-header{display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:0 2px 3px}.chat-header strong{font-size:14px}.chat-header button,.chat-form button,.chat-quick-row button{color:#f8fbfd;background:#ffffff17;border:1px solid rgba(255,255,255,.14);border-radius:9px;touch-action:manipulation}.chat-header button{width:32px;height:32px;padding:0}.chat-messages{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 2px 8px;scrollbar-width:thin}.chat-message{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:5px 0}.chat-message.mine{align-items:flex-end}.chat-message-label{padding:0 5px;color:#e2f1fa8f;font-size:9px}.chat-message-bubble{max-width:82%;padding:7px 10px;white-space:pre-wrap;overflow-wrap:anywhere;color:#edf8ff;background:#538aab3d;border:1px solid rgba(131,191,226,.2);border-radius:12px 12px 12px 4px;font-size:12px;line-height:1.35}.chat-message.mine .chat-message-bubble{color:#fff8dd;background:#daae3238;border-color:#eecc613d;border-radius:12px 12px 4px}.chat-quick-row{display:flex;gap:5px;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.chat-quick-row::-webkit-scrollbar{display:none}.chat-quick-row button{flex:0 0 auto;min-height:32px;padding:0 10px;font-size:11px}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:6px}.chat-form input{min-width:0;height:40px;padding:0 11px;box-sizing:border-box;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:10px;outline:none;font-size:16px}.chat-form input:focus{border-color:#6bc9ffa8}.chat-form button{height:40px;padding:0;font-size:18px}.chat-panel.desktop-docked{top:var(--desktop-chat-top, max(58px, calc(env(safe-area-inset-top) + 12px) ));right:14px;left:auto;grid-template-rows:56px auto 36px;gap:5px;width:min(360px,calc(100vw - 28px));height:auto;padding:8px;transform:none;background:#0a1015c7;border-radius:12px;box-shadow:0 10px 30px #0000004d}.chat-panel.desktop-docked.input-focused{top:var(--desktop-chat-top, max(58px, calc(env(safe-area-inset-top) + 12px) ));right:14px;bottom:auto;height:auto}.chat-panel.desktop-docked .chat-header{display:none}.chat-panel.desktop-docked .chat-messages{height:56px;padding:0 2px;overflow-y:auto}.chat-panel.desktop-docked .chat-message{flex-direction:row;align-items:baseline;gap:5px;margin:2px 0}.chat-panel.desktop-docked .chat-message.mine{align-items:baseline}.chat-panel.desktop-docked .chat-message-label{flex:0 0 auto;padding:0;font-size:9px}.chat-panel.desktop-docked .chat-message-bubble,.chat-panel.desktop-docked .chat-message.mine .chat-message-bubble{max-width:calc(100% - 34px);padding:3px 7px;border-radius:8px;font-size:11px;line-height:1.25}.chat-panel.desktop-docked .chat-quick-row{justify-content:flex-end;gap:4px;padding:0}.chat-panel.desktop-docked .chat-quick-row button{min-width:32px;min-height:30px;padding:0 7px;font-size:16px}.chat-panel.desktop-docked .chat-form{grid-template-columns:minmax(0,1fr) 38px;gap:5px}.chat-panel.desktop-docked .chat-form input{height:36px;font-size:13px}.chat-panel.desktop-docked .chat-form button{height:36px}.taunt-replay-overlay{position:fixed;z-index:18;top:max(112px,calc(env(safe-area-inset-top) + 98px));left:50%;display:grid;justify-items:center;gap:3px;min-width:min(270px,calc(100vw - 40px));padding:12px 20px 14px;box-sizing:border-box;transform:translate(-50%);color:#fff4ed;background:linear-gradient(135deg,#450a0ee8,#140b14db);border:1px solid rgba(255,113,82,.52);border-radius:16px;box-shadow:0 16px 46px #0000006b,0 0 34px #ff48361f;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:none}.taunt-replay-kicker{color:#ffbaa3c7;font-size:9px;font-weight:900;letter-spacing:.22em}.taunt-replay-overlay strong{font-size:20px;line-height:1.1;text-shadow:0 2px 15px rgba(255,75,58,.34)}.taunt-replay-overlay span{font-size:10px;opacity:.72}.taunt-replay-overlay.result strong{transform:scale(1.08)}.cue-hud.taunt-replay-locked{opacity:.28;pointer-events:none}.chat-toast{position:fixed;z-index:19;top:max(72px,calc(env(safe-area-inset-top) + 62px));left:50%;max-width:min(340px,calc(100vw - 32px));padding:8px 12px;transform:translate(-50%);overflow:hidden;color:#eef9ff;background:#0b1922e6;border:1px solid rgba(121,197,238,.3);border-radius:11px;box-shadow:0 8px 24px #00000057;text-overflow:ellipsis;white-space:nowrap;font-size:11px;pointer-events:none}.game-mode-selectors{display:flex;align-items:stretch;gap:8px}.game-menu{position:absolute;top:calc(100% + 8px);left:50%;box-sizing:border-box;width:min(340px,calc(100vw - 24px));padding:10px;transform:translate(-50%);color:#f4f4f4;background:#0f0f0ff5;border:1px solid rgba(255,255,255,.16);border-radius:14px;box-shadow:0 14px 36px #0000007a;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);max-height:min(680px,calc(100dvh - 94px));overflow-y:auto;overscroll-behavior:contain}.game-menu .game-mode-selectors{display:grid;grid-template-columns:1fr;gap:7px}.game-menu .mode-selector,.game-menu .rule-selector{grid-template-columns:72px minmax(0,1fr)}.menu-button{width:100%;min-height:42px;margin-top:7px;color:#f5f5f5;background:#ffffff17;border:1px solid rgba(255,255,255,.16);border-radius:10px;touch-action:manipulation}.menu-button:disabled{opacity:.42;cursor:default}.game-options-panel{display:grid;gap:8px}.game-options-panel.hidden{display:none}.game-options-page{position:relative;display:grid;gap:8px}.game-options-page.hidden{display:none}.game-options-category{min-height:50px;margin-top:0;text-align:left;padding-inline:14px}.game-options-title{padding:2px 2px 4px;color:#f4f4f4;font-size:13px;font-weight:800}.game-options-note{margin:1px 4px 0;color:#ebf2eead;font-size:10px;line-height:1.35}.game-options-apply{color:#fff5c8;border-color:#f4d73561;background:#f4d73524}.game-option-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 12px;color:#f5f5f5;background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:10px}.game-option-row input[type=checkbox]{width:22px;height:22px;margin:0;accent-color:#f4d735}.game-option-row.disabled{opacity:.5;cursor:not-allowed}.game-option-row input[type=color]{width:48px;height:32px;padding:2px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#0000002e;cursor:pointer}.game-option-row select{min-width:138px;max-width:168px;padding:7px 28px 7px 9px}.game-volume-control{display:grid;grid-template-columns:minmax(96px,1fr) 48px;align-items:center;gap:8px;min-width:178px}.game-volume-control input[type=range]{width:100%;margin:0;accent-color:#f4d735}.game-volume-control output{color:#fff2a8;font-size:11px;font-variant-numeric:tabular-nums;text-align:right}.mobile-control-option-row{display:flex!important}#open-mobile-control-editor.mobile-control-option-row{display:block!important}.mobile-safe-area-probe{position:fixed;inset:0;z-index:-1;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);visibility:hidden;pointer-events:none}.mobile-control-editor{position:fixed;inset:0;z-index:80;pointer-events:none}.mobile-control-editor.hidden{display:none}.mobile-control-editor:before{content:"";position:absolute;inset:0;background:#0000002e;pointer-events:none}.mobile-control-editor-card{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));width:min(280px,calc(100vw - 104px));min-width:208px;padding:9px;box-sizing:border-box;border:1px solid rgba(229,195,108,.34);border-radius:12px;background:#05120ff5;color:#fff8e9;box-shadow:0 12px 38px #0000006b;pointer-events:auto}.mobile-control-editor-card header{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:grab;touch-action:none}.mobile-control-editor-card header:active{cursor:grabbing}.mobile-control-editor-card header div{min-width:0}.mobile-control-editor-card header strong{display:block;font-size:13px}.mobile-control-editor-card header small{display:block;margin-top:2px;color:#ebf2eead;font-size:8px}.mobile-control-editor-card button{min-height:34px;padding:5px 8px;border:1px solid rgba(255,255,255,.13);border-radius:8px;background:#ffffff12;color:#fff;font-weight:800;touch-action:manipulation}.mobile-control-editor-card button.active{border-color:#e5c36cb8;background:#e5c36c2e;color:#fff0b2}.mobile-control-editor-presets,.mobile-control-editor-targets,.mobile-control-editor-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.mobile-control-editor-presets button,.mobile-control-editor-targets button{flex:1 1 auto;font-size:9px}.mobile-control-editor-scale{display:grid;grid-template-columns:minmax(0,1fr) 34px 48px 34px;align-items:center;gap:4px;margin-top:7px}.mobile-control-editor-scale span{min-width:0;font-size:9px;font-weight:800}.mobile-control-editor-scale output{color:#fff0b2;font-size:10px;font-weight:900;text-align:center}.mobile-control-editor-scale button{min-height:32px;padding:0;font-size:18px}.mobile-control-editor-actions button{flex:1 1 96px;font-size:8px}.mobile-control-editor-card p{margin:7px 1px 0;color:#ebf2ee9e;font-size:7px;line-height:1.35}body.mobile-control-editor-active{touch-action:none;overscroll-behavior:none}body.mobile-control-layout-enabled .mobile-control-item{position:fixed!important;right:auto!important;bottom:auto!important;margin:0!important;transform:translate(-50%,-50%) scale(var(--mobile-control-scale, 1))!important;transform-origin:center center!important;z-index:30}body.mobile-control-layout-enabled .aim-minimap.mobile-control-item{z-index:4}body.mobile-control-editor-active .mobile-control-item{z-index:76!important;outline:1px dashed rgba(255,240,178,.58);outline-offset:4px;pointer-events:auto!important;touch-action:none!important}body.mobile-control-editor-active .mobile-control-item.mobile-control-selected{outline:3px solid rgba(244,215,53,.92);outline-offset:5px;filter:drop-shadow(0 0 10px rgba(244,215,53,.32))}body.mobile-control-editor-active .quick-controls>.quick-button,body.mobile-control-editor-active #camera-view-toggle,body.mobile-control-editor-active .mechanical-scoreboard,body.mobile-control-editor-active .practice-cue-toggle{opacity:.28;pointer-events:none!important}.multiplayer-menu-panel{margin-top:9px;padding:9px;background:#427aa41a;border:1px solid rgba(125,190,236,.22);border-radius:11px}.multiplayer-menu-title{margin-bottom:7px;color:#d9efff;font-size:11px;font-weight:700}.multiplayer-room-actions{display:grid;grid-template-columns:1fr 92px 58px;gap:5px}.multiplayer-session-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}.multiplayer-room-actions .menu-button,.multiplayer-session-actions .menu-button{min-height:38px;margin-top:0}#multiplayer-room-code{box-sizing:border-box;min-width:0;padding:0 8px;color:#fff;background:#20262a;border:1px solid rgba(255,255,255,.18);border-radius:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.multiplayer-session-actions{margin-top:5px}.multiplayer-status{min-height:28px;margin-top:7px;color:#e1f2fcc7;font-size:10px;line-height:1.4}.multiplayer-game-status{position:fixed;z-index:7;top:max(78px,calc(env(safe-area-inset-top) + 66px));left:50%;display:flex;align-items:center;justify-content:center;gap:7px;box-sizing:border-box;width:max-content;max-width:calc(100vw - 28px);padding:6px 7px 6px 12px;transform:translate(-50%);color:#dff3ff;background:#0c202dc7;border:1px solid rgba(125,190,236,.3);border-radius:999px;box-shadow:0 7px 22px #0000004d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:10px;line-height:1.25;text-align:center;pointer-events:none}.multiplayer-game-status-text{min-width:0;line-height:1.3;overflow-wrap:anywhere}.multiplayer-game-status.hidden{display:none}.connection-recovery-panel{position:fixed;z-index:22;top:50%;left:50%;box-sizing:border-box;width:min(430px,calc(100vw - 28px));padding:20px;transform:translate(-50%,-50%);color:#f6f0df;background:#091915f5;border:1px solid rgba(211,174,92,.48);border-radius:18px;box-shadow:0 24px 70px #0000008f;text-align:center}.connection-recovery-panel.hidden{display:none}.connection-recovery-kicker{color:#d7b56c;font-size:10px;font-weight:900;letter-spacing:.16em}.connection-recovery-panel strong{display:block;margin-top:8px;font-size:21px}.connection-recovery-panel p{margin:10px 0 0;color:#f6f0dfb8;font-size:13px;line-height:1.55}.connection-recovery-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.connection-recovery-actions.hidden{display:none}.connection-recovery-actions button{min-height:44px;border-radius:11px}.connection-recovery-actions button:first-child{grid-column:1 / -1}.phase12-resume-card{display:grid;gap:8px;margin:14px 0 18px;padding:14px;color:#f4ecd8;background:#d3ae5c17;border:1px solid rgba(211,174,92,.34);border-radius:14px;text-align:left}.phase12-resume-card span,.phase12-resume-card strong{display:block}.phase12-resume-card span{color:#d7b56c;font-size:10px;font-weight:900;letter-spacing:.12em}.phase12-resume-card strong{margin-top:3px;font-size:16px}.phase12-resume-card small{color:#f4ecd8b8}.phase12-resume-card em{color:#f4ecd88f;font-size:10px;font-style:normal}.phase12-resume-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.phase12-resume-actions button:first-child{grid-column:1 / -1}.opponent-aim-badge{position:fixed;z-index:8;top:max(118px,calc(env(safe-area-inset-top) + 104px));right:max(10px,env(safe-area-inset-right));display:flex;align-items:center;gap:7px;padding:6px 9px 6px 6px;color:#ddf7ff;background:#071f2bb8;border:1px solid rgba(101,216,255,.32);border-radius:999px;box-shadow:0 7px 20px #00000047;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:none}.opponent-aim-badge.hidden{display:none}.opponent-tip-ball{position:relative;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 38% 30%,#fff 0 9%,#eee8d7 54%,#aaa28a);border:1px solid rgba(255,255,255,.7);box-shadow:inset -4px -5px 8px #00000029}.opponent-tip-ball.yellow-cue{background:radial-gradient(circle at 38% 30%,#fff6b4 0 9%,#e8c43e 54%,#99701b);border-color:#ffe77bbf}.opponent-tip-cross{position:absolute;background:#23404a38}.opponent-tip-cross-x{left:15%;right:15%;top:50%;height:1px}.opponent-tip-cross-y{top:15%;bottom:15%;left:50%;width:1px}.opponent-tip-dot{position:absolute;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;background:#65d8ff;border:1px solid rgba(4,56,76,.86);box-shadow:0 0 0 1px #ffffffb8}.opponent-aim-copy{display:grid;gap:1px;min-width:76px}.opponent-aim-copy strong{font-size:9px;letter-spacing:.04em}.opponent-aim-copy span{color:#ddf7ffc7;font-size:8px;white-space:nowrap}.mode-selector{display:grid;grid-template-columns:auto minmax(112px,1fr);align-items:center;gap:7px;min-height:46px;padding:0 10px;color:#ffffffad;background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:10px;font-size:10px;white-space:nowrap}.mode-selector select{min-width:0;padding:7px 24px 7px 8px;color:#fff;background:#262626;border:1px solid rgba(255,255,255,.18);border-radius:7px}.rule-selector{grid-template-columns:auto minmax(160px,1fr)}.quick-button:disabled,.quick-step:disabled{opacity:.4}.quick-elevation{position:absolute;top:calc(100% + 8px);left:50%;display:flex;align-items:center;gap:8px;box-sizing:border-box;padding:10px;transform:translate(-50%);color:#f4f4f4;background:#0f0f0ff5;border:1px solid rgba(255,255,255,.16);border-radius:14px;box-shadow:0 14px 36px #0000007a;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.quick-elevation.hidden{display:none}.quick-elevation-slider{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:8px;min-width:250px;font-size:12px;white-space:nowrap}.quick-elevation-slider strong{text-align:right;font-size:14px}.quick-elevation-slider input[type=range]{grid-column:1 / -1;width:250px;height:28px;margin:0;touch-action:pan-x}.cue-hud{position:fixed;z-index:6;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;gap:18px;pointer-events:none}.cue-hud.hidden{display:none}.aim-trajectory-status{display:none!important}.cue-hud.multiplayer-input-locked .tip-panel,.cue-hud.multiplayer-input-locked .stroke-panel{opacity:.42}.cue-hud.multiplayer-input-locked .ball-hud-stage,.cue-hud.multiplayer-input-locked .tip-actions,.cue-hud.multiplayer-input-locked .stroke-panel{filter:grayscale(.45)}.ball-hud-target-readout{min-height:15px;margin:-2px 0 5px;color:#e7f2f7bd;font-size:10px;text-align:center}.ball-hud-row{display:flex;align-items:center;gap:8px}.ball-hud-stage{position:relative;flex:0 0 360px;width:360px;height:124px;margin:0;overflow:hidden}.ball-hud-object{--object-separation: 0;position:absolute;z-index:1;left:calc(120px + var(--object-separation) * 120px);top:2px;width:120px;height:120px;box-sizing:border-box;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 36% 30%,#fff7ad 0 8%,#f0c539 25%,#bd861b);border:2px solid rgba(255,231,123,.72);box-shadow:inset -14px -16px 24px #0000002e,0 3px 12px #00000052}.ball-hud-object.red-target{background:radial-gradient(circle at 36% 30%,#ffdada 0 8%,#c93636 25%,#781818);border-color:#ffb1b1c2}.ball-hud-object.white-target{background:radial-gradient(circle at 38% 30%,#fff 0 9%,#eee8d7 55%,#aaa28a);border-color:#ffffffc2}.ball-hud-object.actual-thickness-ghost{z-index:3;opacity:.51;border:2px dashed #000;box-shadow:none;filter:saturate(.86) brightness(1.08)}.ball-hud-object.hidden{display:none}body.debug-mode #ball-hud-object:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;background:repeating-linear-gradient(to right,transparent 0,transparent calc(12.5% - 1px),rgba(15,20,24,.55) calc(12.5% - 1px),rgba(15,20,24,.55) 12.5%)}.tip-panel,.stroke-panel{color-scheme:only light;pointer-events:auto;background:#080808bd;border:1px solid rgba(255,255,255,.13);border-radius:14px;padding:10px;box-shadow:0 10px 30px #00000047;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.tip-panel{width:440px;background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.stroke-panel{width:176px}.hud-label{margin-bottom:7px;font-size:12px;color:#f4f4f4;text-align:center}.tip-ball{position:absolute;z-index:2;left:120px;top:2px;width:120px;height:120px;box-sizing:border-box;margin:0;border-radius:50%;touch-action:none;background-color:#eee8d7;background-image:radial-gradient(circle at 38% 30%,#fffffffa 0 9%,#fff0 10%),radial-gradient(circle at 42% 37%,#fffdf2 0 18%,#e9e3cf 58%,#aaa28a);box-shadow:inset -14px -16px 24px #00000029,0 3px 12px #00000059;border:2px solid rgba(255,255,255,.6)}.tip-ball.yellow-cue{background-color:#e9c539;background-image:radial-gradient(circle at 38% 30%,#fffac2fa 0 9%,#fff0 10%),radial-gradient(circle at 42% 37%,#ffe978 0 18%,#d9aa25 58%,#8d6517);border-color:#ffe77bb8}.tip-cross{position:absolute;background:#2828282e;pointer-events:none}.tip-cross-x{left:12%;right:12%;top:50%;height:1px}.tip-cross-y{top:12%;bottom:12%;left:50%;width:1px}.tip-guide-rings,.tip-guide-rings i{position:absolute;border-radius:50%;pointer-events:none}.tip-guide-rings{inset:0}.tip-guide-rings i{border:1px solid rgba(39,48,52,.13)}.tip-miscue-ring{position:absolute;inset:18.4%;border:1px dashed rgba(154,67,33,.46);border-radius:50%;pointer-events:none}.tip-ball.tip-limit-hit .tip-miscue-ring{border-color:#ff5a4f;box-shadow:0 0 0 3px #ff463c40}.tutorial-hud-target-dot{position:absolute;z-index:3;width:18px;height:18px;box-sizing:border-box;transform:translate(-50%,-50%);border:2px solid #ffcf58;border-radius:50%;background:#ffcf581a;box-shadow:0 0 0 2px #222d2aa3,0 0 12px #ffcf58b8;pointer-events:none}.tutorial-hud-target-dot:before,.tutorial-hud-target-dot:after{content:"";position:absolute;left:50%;top:50%;background:#ffcf58;transform:translate(-50%,-50%)}.tutorial-hud-target-dot:before{width:24px;height:2px}.tutorial-hud-target-dot:after{width:2px;height:24px}.tip-ball.tutorial-tip-active .tip-dot{z-index:4;outline:2px solid rgba(39,92,168,.3);outline-offset:2px}@media(max-width:760px){body.tutorial-hud-tip .ball-hud-stage{overflow:visible}body.tutorial-hud-tip .ball-hud-object{display:none!important}body.tutorial-hud-tip .tip-ball{z-index:40;transform:scale(1.55);transform-origin:center bottom}}.tip-dot{position:absolute;left:50%;top:50%;width:var(--cue-tip-diameter-percent, 18.7%);height:var(--cue-tip-diameter-percent, 18.7%);box-sizing:border-box;border-radius:50%;transform:translate(-50%,-50%);background:#315ca8;border:0;box-shadow:0 2px 6px #0000006b;pointer-events:none}.tip-dot.miscue-zone{background:#f07a42;box-shadow:0 2px 7px #69120c85}.tip-actions{display:flex;flex:0 0 72px;width:72px;flex-direction:column;align-items:stretch;justify-content:center;gap:6px}.tip-actions .hud-button{flex:0 0 auto}.hud-button{width:100%;padding:7px}.stroke-pad{position:relative;width:150px;height:235px;margin:0 auto;overflow:hidden;touch-action:none;border-radius:12px;background:linear-gradient(180deg,#ffffff14,#ffffff06);border:1px solid rgba(255,255,255,.12)}.mobile-fine-controls{position:fixed;z-index:30;top:50%;left:50%;bottom:auto;display:none;align-items:center;gap:5px;min-height:42px;padding:0;transform:translate(-50%,-50%);border:0;border-radius:0;background:transparent;color:#fff8e9;box-shadow:none;pointer-events:none}body.touch-precision-controls-enabled .mobile-fine-controls{display:flex}.mobile-fine-controls strong{display:none}.mobile-tip-nudges,.mobile-aim-nudges{display:flex;gap:3px}.mobile-fine-controls.tutorial-fine-highlight button{border-color:#e5c36cb8;box-shadow:0 0 0 3px #e5c36c1f,0 0 14px #e5c36c47}body.touch-precision-controls-enabled .mobile-fine-controls.tutorial-fine-highlight{z-index:80}.mobile-fine-controls button{min-width:42px;min-height:42px;padding:0 8px;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:#071411b8;color:#fff;font-size:17px;font-weight:900;touch-action:none;pointer-events:auto}.mobile-aim-nudges button{min-width:78px;border-radius:999px;font-size:10px}.mobile-precision-readout{position:fixed;z-index:31;display:block;max-width:min(250px,calc(100vw - 20px));padding:7px 11px;transform:translate(-50%,-100%);border:1px solid rgba(240,202,122,.42);border-radius:999px;background:#04110eeb;color:#fff8e9;box-shadow:0 6px 18px #00000057;font-size:11px;font-weight:800;white-space:nowrap;pointer-events:none}.stroke-pad:before{content:"";position:absolute;left:50%;top:18px;bottom:18px;width:7px;transform:translate(-50%);border-radius:10px;background:#bc894f59}.stroke-zero{position:absolute;left:22px;right:22px;top:38%;height:1px;background:#ffffff42}.stroke-handle{position:absolute;left:50%;top:38%;width:68px;height:30px;display:grid;place-items:center;transform:translate(-50%);border-radius:15px;color:#fff;background:linear-gradient(180deg,#a77545,#6d462b);border:1px solid rgba(255,255,255,.28);box-shadow:0 4px 12px #0000005c;pointer-events:none;will-change:transform}.stroke-pad.active .stroke-handle{box-shadow:0 0 0 2px #ffffff2e,0 4px 12px #0000005c}.stroke-pad.multiplayer-turn-ready{border-color:#7dcdffb8;box-shadow:0 0 0 3px #50aae629,0 0 24px #3ca0e133}.stroke-guide{position:absolute;right:8px;bottom:8px;color:#ffffff6b;font-size:10px;line-height:1.25;text-align:right;pointer-events:none}@media(max-width:760px){.debug{max-width:calc(100vw - 24px);font-size:10px}.phase12-scene-badge{display:none}.multiplayer-game-status{top:max(62px,calc(env(safe-area-inset-top) + 52px));width:calc(100vw - 24px);max-width:430px;min-height:38px;padding:4px 5px 4px 10px;gap:5px;font-size:9px}.multiplayer-game-status-text{flex:1 1 auto;white-space:nowrap}.phase12-room-copy{min-height:30px;padding:4px 9px;font-size:8px}.controls{top:auto;bottom:calc(max(6px,env(safe-area-inset-bottom)) + 160px);width:min(280px,calc(100vw - 24px));font-size:11px}.controls:not(.collapsed){max-height:44vh}.quick-controls{top:max(8px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));width:auto;max-width:none;display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:3px;padding:5px;transform:none}.game-top-bar{display:contents}.mechanical-scoreboard{flex:1 1 auto;min-width:72px;width:auto;max-width:none;padding:4px}.mechanical-scoreboard.compact-score{flex:1 1 auto;min-width:72px;width:auto;max-width:none}.compact-score .scoreboard-top-bay{height:31px;padding:2px 6px}.scoreboard-top-bay{height:21px;padding-left:4px}.scoreboard-brand{min-width:27px;height:11px;padding:0 3px;font-size:5px}.scoreboard-readout{gap:3px}.scoreboard-readout strong{min-width:9px;font-size:10px}.score-player-ball{width:6px;height:6px}.scoreboard-chevron{top:4px}.scoreboard-rack{display:none}.scoreboard-row{height:9px}.scoreboard-beads{height:8px;width:90%}.scoreboard-bottom-bay{height:13px;margin-top:3px;font-size:7px;letter-spacing:.35px}.mechanical-scoreboard.collapsed{width:min(235px,calc(100vw - 112px))}.undo-shot-button{flex:0 0 clamp(32px,9.5vw,38px);width:clamp(32px,9.5vw,38px);min-width:0;min-height:40px;padding:0}.quick-button,.quick-step{min-width:0;min-height:40px;padding:0 6px;font-size:11px}.quick-controls>.quick-button{flex:0 0 clamp(32px,9.5vw,38px);width:clamp(32px,9.5vw,38px);padding:0;font-size:24px;line-height:1}.chat-unread-badge{top:-4px;right:-4px;min-width:16px;height:16px;padding:0 3px;font-size:8px}.chat-panel{top:max(61px,calc(env(safe-area-inset-top) + 53px));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));width:auto;height:min(38dvh,330px);transform:none}.chat-panel.input-focused{top:max(6px,env(safe-area-inset-top));bottom:max(6px,env(safe-area-inset-bottom));height:auto}.chat-toast{top:max(62px,calc(env(safe-area-inset-top) + 54px))}.game-mode-selectors{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.game-menu{left:0;right:0;width:auto;transform:none}.game-menu .game-mode-selectors{grid-template-columns:1fr}.mode-selector{grid-template-columns:auto minmax(0,1fr);min-height:40px;padding:0 7px}.mode-selector select{width:100%;padding:7px 22px 7px 7px}.rule-selector{grid-column:1 / -1}.quick-elevation{left:0;right:0;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:6px;width:100%;transform:none}.quick-elevation-slider{min-width:0;width:100%;font-size:10px}.quick-elevation-slider input[type=range]{width:100%;min-width:0}.cue-hud{left:max(4px,env(safe-area-inset-left));right:max(4px,env(safe-area-inset-right));bottom:max(6px,env(safe-area-inset-bottom));align-items:flex-end;justify-content:flex-start;gap:4px}.tip-panel{flex:0 0 268px;width:268px;min-height:92px;padding:0;box-sizing:border-box}.tip-panel .hud-label{margin-bottom:1px;line-height:1;font-size:8px}#tip-readout{display:inline;margin-left:2px;font-size:7px}.ball-hud-target-readout{min-height:10px;margin:0 0 1px;font-size:7px}.ball-hud-row{gap:4px}.ball-hud-stage{flex-basis:198px;width:198px;height:68px}.tip-ball,.ball-hud-object{width:66px;height:66px;top:1px}.tip-ball{left:66px}.ball-hud-object{left:calc(66px + var(--object-separation) * 66px)}.tip-actions{flex:0 0 58px;width:58px;gap:3px}.tip-panel .hud-button{min-height:24px;padding:2px;font-size:7px;line-height:1}.stroke-panel{flex:0 0 80px;width:80px;height:206px;margin-left:auto;padding:4px;box-sizing:border-box}.stroke-panel .hud-label{margin-bottom:3px;font-size:8px;line-height:1.15;white-space:normal}.stroke-pad{width:70px;height:180px;margin:0 auto}.stroke-pad:before{inset:10px auto 10px 50%;width:6px;height:auto;transform:translate(-50%)}.stroke-zero{inset:38% 10px auto;width:auto;height:1px}.stroke-handle{left:50%;top:38%;width:44px;height:28px;font-size:8px;transform:translate(-50%)}.stroke-guide{left:auto;right:4px;bottom:3px;font-size:7px;text-align:right;line-height:1.15;white-space:normal}.stroke-guide:after{content:none}.hud-label{font-size:8px}}@media(max-height:620px)and (orientation:landscape){.replay-controls-dock{width:min(800px,calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 24px))}.replay-controller{grid-template-columns:minmax(100px,1fr) auto;gap:12px}.replay-shot-hud-dock{--replay-ball-hud-width: 180px;--replay-ball-hud-height: 62px;--replay-ball-hud-rendered-width: 90px;--replay-ball-hud-rendered-height: 31px}.controls{bottom:calc(max(3px,env(safe-area-inset-bottom)) + 132px)}.controls:not(.collapsed){max-height:calc(100vh - 156px);width:260px}.cue-hud{bottom:max(3px,env(safe-area-inset-bottom))}.tip-panel{flex-basis:232px;width:232px;min-height:82px;padding:0}.ball-hud-row{gap:3px}.ball-hud-stage{flex-basis:180px;width:180px;height:62px}.tip-ball,.ball-hud-object{width:60px;height:60px}.tip-ball{left:60px}.ball-hud-object{left:calc(60px + var(--object-separation) * 60px)}.tip-actions{flex-basis:44px;width:44px;gap:2px}.tip-panel .hud-button{min-height:20px;padding:1px;font-size:6px}#tip-readout{font-size:6px}.stroke-panel{flex-basis:72px;width:72px;height:172px;padding:3px}.stroke-pad{width:64px;height:150px}.stroke-handle{width:40px;height:24px;font-size:7px}}.game-menu .game-mode-selectors,.game-menu .multiplayer-menu-panel{display:none}.phase12-scene-badge{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:28;max-width:46vw;padding:7px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#081219b8;color:#f0f8fbeb;font-size:11px;font-weight:800;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.phase12-room-copy{position:static;flex:0 0 auto;min-height:30px;padding:5px 10px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#0c3a52eb;color:#f5fbff;font:inherit;font-size:9px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px #0003;pointer-events:auto}.phase12-room-copy.hidden{display:none}.phase12-flow{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#050b11db;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f6fbff;overflow:auto}.phase12-flow.hidden{display:none}.phase12-card{width:min(560px,100%);max-height:100%;overflow:auto;padding:28px;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:#0c1923f5;box-shadow:0 24px 80px #0000007a;text-align:center}.phase12-card h1{margin:2px 0 8px;font-size:clamp(48px,11vw,84px);letter-spacing:-.06em}.phase12-card h2{margin:6px 0 20px;font-size:clamp(26px,5vw,38px)}.phase12-card p{color:#ebf5fab8}.phase12-kicker{font-size:11px;font-weight:800;letter-spacing:.18em;color:#a7ddefdb}.phase12-main-actions,.phase12-mode-grid,.phase12-footer-actions{display:grid;gap:12px;margin-top:22px}.phase12-main-actions,.phase12-home-play-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.phase12-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.phase12-footer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.phase12-footer-actions>:only-child{grid-column:1 / -1}.phase12-card button,.phase12-card input[type=text]{min-height:52px;border:1px solid rgba(255,255,255,.14);border-radius:14px;font:inherit}.phase12-card button{padding:11px 14px;background:#3397b9eb;color:#fff;font-weight:800;cursor:pointer}.phase12-card button:disabled{opacity:.42;cursor:default}.phase12-card button.phase12-secondary{background:#ffffff12}.phase12-wide{width:100%;margin-top:8px}.phase12-room-divider{display:flex;align-items:center;gap:10px;margin:18px 0 2px;color:#ebf5fa80;font-size:11px;font-weight:700}.phase12-room-divider:before,.phase12-room-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.phase12-room-join{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:14px}.phase12-room-join input{min-width:0;padding:0 15px;background:#00000040;color:#fff;text-transform:uppercase;letter-spacing:.12em}.phase12-online-actions{margin-top:10px}.phase12-public-status{margin:24px 0;padding:22px 14px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#00000029}.phase12-public-list{display:grid;gap:9px;margin-top:16px}.phase12-public-list button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;text-align:left}.phase12-public-list button small{color:#eff5f194;font-variant-numeric:tabular-nums;letter-spacing:.08em}.phase12-public-list button strong{color:var(--ui-gold-soft)}.phase12-handi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.phase12-handi-player{display:grid;gap:8px;padding:16px;border-radius:18px;background:#ffffff0e;border:1px solid rgba(255,255,255,.08)}.phase12-handi-player.mine{border-color:#60d2f299}.phase12-handi-player>strong{font-size:24px}.phase12-handi-player>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.phase12-handi-player>div button{min-height:42px;padding:4px;font-size:22px}.phase12-handi-player>div.phase12-handi-presets{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.phase12-handi-player>div.phase12-handi-presets button{min-width:0;min-height:38px;padding:4px 2px;font-size:13px}.phase12-bot-difficulty{display:flex;gap:8px}.phase12-bot-difficulty button{flex:1;min-height:36px;padding:6px 10px;border-radius:999px;font-size:13px}.phase12-bot-difficulty button:before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border:1px solid rgba(255,255,255,.58);border-radius:50%;vertical-align:-1px}.phase12-bot-difficulty button.active:before{border-color:#fff;background:#fff;box-shadow:inset 0 0 0 3px #147256}.phase12-handi-player>div.phase12-handi-heading{display:flex;grid-template-columns:none;align-items:baseline;justify-content:space-between;gap:8px;white-space:nowrap}.phase12-handi-heading strong{color:var(--ui-gold-soft);font-size:18px;font-variant-numeric:tabular-nums}.phase12-handi-player em{color:#8fe2ba;font-style:normal;font-size:12px;font-weight:800}.phase12-handi-player small{color:#ffffff8c}.phase12-rules{display:grid;gap:10px;margin-top:18px;padding:16px;border-radius:16px;background:#0003;text-align:left}.phase12-check{display:flex;align-items:center;gap:10px;min-height:36px;font-size:15px}.phase12-check input{width:21px;height:21px}.phase12-note{margin:14px 0 0;font-size:12px;line-height:1.5}.phase12-final-score{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.phase12-final-score>div{display:grid;gap:5px;padding:18px;border-radius:18px;background:#ffffff0f}.phase12-final-score strong{font-size:48px}.phase12-result-context{margin:6px 0 0;color:#ecf2e7b8}.phase12-result-statistics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}.phase12-result-statistics span{display:grid;gap:2px;padding:8px 4px;border-radius:10px;background:#0000002e;font-size:11px}.phase12-result-statistics strong{font-size:17px}.phase12-spinner{width:42px;height:42px;margin:4px auto 18px;border:4px solid rgba(255,255,255,.16);border-top-color:#6ad3f0f2;border-radius:50%;animation:phase12-spin .8s linear infinite}@keyframes phase12-spin{to{transform:rotate(360deg)}}@media(max-width:700px){.phase12-card{padding:20px 16px;border-radius:20px}.phase12-mode-grid,.phase12-home-play-actions{grid-template-columns:1fr}.phase12-handi-grid{grid-template-columns:1fr 1fr;gap:8px}.phase12-handi-player{padding:12px 8px}.phase12-handi-player>strong{font-size:19px}.phase12-bot-handi-grid{grid-template-columns:1fr}.phase12-main-actions button,.phase12-mode-grid button{min-height:58px}}:root{--ui-ink: #050907;--ui-felt-deep: #071b15;--ui-felt: #0d3b2d;--ui-felt-bright: #17664e;--ui-walnut: #5e3a24;--ui-brass: #c9a45b;--ui-ivory: #f4edda;--ui-panel: rgba(6, 17, 14, .94);--ui-panel-soft: rgba(10, 34, 27, .88);--ui-line: rgba(221, 229, 218, .16);--ui-line-strong: rgba(201, 164, 91, .52);--ui-text: #f3f4ef;--ui-muted: rgba(222, 228, 220, .64);--ui-mint: #94d7bb;--ui-green: #146149;--ui-green-bright: #208d69;--ui-gold: var(--ui-brass);--ui-gold-soft: #ead59e;--ui-danger: #e66b5b;color-scheme:only light}body{color:var(--ui-text);background:radial-gradient(ellipse at 50% -12%,rgba(33,103,77,.46),transparent 47%),linear-gradient(155deg,#07130f,#030605 60%,#090604);font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,select,input{transition:color .14s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease,opacity .14s ease}button:not(:disabled){cursor:pointer}button:not(:disabled):active{transform:translateY(1px) scale(.985)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ui-gold);outline-offset:2px}.debug,.controls,.quick-controls,.game-menu,.chat-panel,.multiplayer-game-status{border-color:var(--ui-line);background-color:var(--ui-panel);box-shadow:0 16px 40px #0006,inset 0 1px #ffffff0a;backdrop-filter:blur(18px) saturate(1.08);-webkit-backdrop-filter:blur(18px) saturate(1.08)}.controls{border-radius:16px;background:linear-gradient(150deg,#102a24f0,#05110ff0)}.controls-title{color:var(--ui-gold-soft);letter-spacing:-.02em}.profile-note{color:var(--ui-muted)}.calibration-settings{border-color:var(--ui-line);background:#ffffff09}.collapse-button,.hud-button,.wide-control-button,.buttons button,.quick-button,.quick-step,.menu-button,.chat-header button,.chat-form button,.chat-quick-row button{color:var(--ui-text);border-color:#d0e4d82b;background:linear-gradient(180deg,#ffffff1a,#ffffff0b)}@media(hover:hover){.collapse-button:not(:disabled):hover,.hud-button:not(:disabled):hover,.wide-control-button:not(:disabled):hover,.buttons button:not(:disabled):hover,.quick-button:not(:disabled):hover,.quick-step:not(:disabled):hover,.menu-button:not(:disabled):hover,.chat-header button:not(:disabled):hover,.chat-form button:not(:disabled):hover,.chat-quick-row button:not(:disabled):hover{color:#fff;border-color:#e5c36c75;background:linear-gradient(180deg,#e5c36c33,#8dd9bd1a);box-shadow:0 8px 18px #0003}}.quick-controls{top:max(12px,env(safe-area-inset-top));flex-wrap:nowrap;align-items:stretch;gap:6px;padding:6px;border:1px solid rgba(221,229,218,.16);border-radius:12px;background:linear-gradient(90deg,rgba(94,58,36,.3),transparent 10% 90%,rgba(94,58,36,.3)),linear-gradient(180deg,#0c1f19f7,#040c0af5);box-shadow:0 12px 34px #00000075,inset 0 1px #ffffff0d}.game-top-bar{display:contents}.quick-controls>.quick-button,.undo-shot-button{flex:0 0 48px;width:48px;min-width:48px;min-height:48px;padding:0;color:#f5f7f4;border-color:#dce7e029;background:radial-gradient(circle at 50% 15%,rgba(255,255,255,.12),transparent 48%),#ffffff0b;border-radius:8px;box-shadow:inset 0 1px #ffffff0b,0 3px 8px #00000038}#game-menu-toggle{color:var(--ui-gold-soft)}#camera-view-toggle.active,#elevation-toggle.active,#move-balls.active,#chat-toggle.active{color:#eafff7;border-color:#8dd9bd8a;background:linear-gradient(180deg,#26a67d57,#18765d38);box-shadow:0 0 20px #26a67d2b,inset 0 1px #ffffff14}.mechanical-scoreboard{flex:0 0 242px;width:242px;min-width:242px;align-self:stretch;padding:5px;color:#fff8e8;border-color:#9b7443;border-radius:8px;background:linear-gradient(90deg,rgba(255,255,255,.1),transparent 15%,transparent 85%,rgba(0,0,0,.24)),repeating-linear-gradient(4deg,#ffffff06 0 1px,#30160a09 1px 5px),linear-gradient(145deg,#765035,#3d261b 58%,#66432c);box-shadow:inset 0 0 0 2px #22120a7a,inset 0 0 0 4px #efcd9714,0 10px 28px #0000006b}.mechanical-scoreboard.compact-score{width:242px}.practice-cue-toggle{flex:0 0 48px;width:48px;min-width:48px;align-self:stretch;display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 14px;color:#f6dca2;border:1px solid #9b7443;border-radius:8px;background:radial-gradient(circle at 50% 0,rgba(229,195,108,.1),transparent 65%),linear-gradient(180deg,#281b15,#170f0c);box-shadow:inset 0 0 0 2px #22120a7a,0 10px 28px #0000006b;cursor:pointer;touch-action:manipulation}.practice-cue-toggle-balls{display:flex;align-items:center;gap:8px}.practice-cue-choice{flex:0 0 22px;width:22px;height:22px;aspect-ratio:1 / 1;border:1px solid rgba(0,0,0,.5);border-radius:50%;box-shadow:inset -4px -4px 6px #00000040,inset 3px 3px 5px #ffffffa6;opacity:.38;transform:scale(.82);transition:opacity .12s ease,transform .12s ease,box-shadow .12s ease}.practice-cue-choice-white{background:#f4f1e8}.practice-cue-choice-yellow{background:#e9c72e}.practice-cue-choice.active{opacity:1;transform:scale(1);box-shadow:inset -4px -4px 6px #00000040,inset 3px 3px 5px #ffffffa6,0 0 0 2px #d6a94a,0 0 10px #e1b149b3}.practice-cue-switch{color:#f6dca2b8;font-weight:900}.compact-score .scoreboard-top-bay{height:36px}.scoreboard-top-bay{color:#fff8e8;border-color:#140b07d9;background:radial-gradient(circle at 50% 0,rgba(229,195,108,.1),transparent 65%),linear-gradient(180deg,#281b15,#170f0c)}.scoreboard-brand{color:#2a1a0f;border-color:#f6dfa2;background:linear-gradient(180deg,#f1d88e,#b98334);border-radius:999px;box-shadow:inset 0 1px #ffffff8c,0 2px 5px #0006}.scoreboard-readout strong{color:#fffdf3;text-shadow:0 0 10px rgba(245,216,139,.24)}.score-player-ball.active{box-shadow:inset -2px -2px 3px #00000038,0 0 0 2px var(--ui-gold),0 0 10px var(--ui-gold)}.scoreboard-bottom-bay{color:#f6dcb29e}.game-menu{top:calc(100% + 10px);left:0;transform:none;padding:12px;max-height:min(720px,calc(100dvh - max(84px,env(safe-area-inset-top)) - 16px));overflow-y:auto;border-radius:12px;background:linear-gradient(155deg,#0e2721fa,#040f0dfa)}.quick-elevation{top:calc(100% + 10px);right:0;left:auto;transform:none;border-radius:12px;border-color:var(--ui-line);background:linear-gradient(155deg,#0c231cfa,#040e0cfa)}.menu-button{min-height:46px;border-radius:12px;font-weight:700}.game-options-category{position:relative;padding-right:42px}.game-options-category:after{position:absolute;top:50%;right:14px;content:"›";transform:translateY(-52%);color:#ebf5f057;font:400 24px/1 system-ui,sans-serif}.game-option-row,.mode-selector{border-color:var(--ui-line);background:#ffffff0b}.game-options-title,.multiplayer-menu-title{color:var(--ui-gold-soft)}.game-option-row input[type=checkbox]{accent-color:var(--ui-green-bright)}.multiplayer-menu-panel{border-color:#8dd9bd3b;background:#26a67d13}.multiplayer-game-status{color:#e9fff7;border-color:#8dd9bd4f;background:linear-gradient(135deg,#0a2d25e0,#051714e0)}.phase12-room-copy{color:#173128;border-color:#fff5d0ad;background:linear-gradient(180deg,var(--ui-gold-soft),#c99d49);box-shadow:0 5px 14px #0000003d}.opponent-aim-badge{color:#e5fff7;border-color:#8dd9bd4f;background:#061f1ad1}.chat-panel{border-color:#8dd9bd3d;background:linear-gradient(155deg,#0c251ff7,#04100ef7)}.chat-header{padding-bottom:7px;border-bottom:1px solid rgba(216,232,222,.09)}.chat-header strong{color:var(--ui-gold-soft);letter-spacing:.03em}.chat-message-bubble{color:#ecfff8;border-color:#8dd9bd2e;background:#247e6233}.chat-message.mine .chat-message-bubble{color:#fff9e7;border-color:#e5c36c3b;background:#ac7f2b38}.chat-form input{color:var(--ui-text);border-color:var(--ui-line);background:#00000038}.chat-form input:focus{border-color:#8dd9bda8;box-shadow:0 0 0 3px #26a67d1a}.chat-toast{color:#effff9;border-color:#8dd9bd47;background:#07231deb}.taunt-replay-button.charged{border-color:#e5c36cb8;background:linear-gradient(180deg,#c28b2661,#5b351257);box-shadow:0 0 22px #e5c36c3b}.taunt-replay-button.armed{border-color:#f4775cc2;background:linear-gradient(180deg,#ae372a66,#4b18155c);box-shadow:0 0 24px #f4563f40}.taunt-replay-overlay{color:#fff7e5;border-color:#e5c36c7a;background:linear-gradient(135deg,#4b1f14f0,#0a1f1aeb);box-shadow:0 20px 58px #0000007a,0 0 40px #e5c36c1a}.taunt-replay-kicker{color:var(--ui-gold)}.tip-panel,.stroke-panel{border-color:#d0e4d82b;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.tip-panel{background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}.tip-panel>.hud-label,.ball-hud-target-readout{display:none}.tip-ball,.tip-actions .hud-button{pointer-events:auto}.stroke-panel{background:linear-gradient(180deg,#0a1d184d,#030c0a4d);box-shadow:0 8px 22px #0000002e,inset 0 1px #ffffff0a}.cue-hud{display:grid;grid-template-columns:minmax(380px,460px) 176px;align-items:end;justify-content:space-between}.tip-panel{box-sizing:border-box;width:100%;border-radius:16px}.stroke-panel{box-sizing:border-box;border-radius:16px}.hud-label{color:var(--ui-gold-soft);font-weight:750;letter-spacing:.04em}.ball-hud-target-readout{color:var(--ui-muted)}.stroke-pad{border-color:#e5c36c26;background:linear-gradient(180deg,#e5c36c0e,#ffffff03);box-shadow:inset 0 8px 18px #00000014}.stroke-handle{color:#fff9ec;border-color:#ffefc457;background:linear-gradient(180deg,#b8864d,#644126);box-shadow:inset 0 1px #ffffff21,0 5px 14px #0006}.stroke-pad.multiplayer-turn-ready{border-color:#8dd9bdc2;box-shadow:0 0 0 3px #26a67d24,0 0 28px #26a67d33}.shot-feedback{border-color:#e5c36c40;background:linear-gradient(145deg,#091f1aeb,#050f0de0);box-shadow:0 18px 52px #0000006b,inset 0 1px #ffffff0f}.shot-feedback-title{font-weight:850;letter-spacing:-.04em}.phase12-flow{background:radial-gradient(ellipse at 50% 20%,rgba(31,105,78,.34),transparent 42%),linear-gradient(90deg,transparent 49.85%,rgba(201,164,91,.08) 50%,transparent 50.15%),radial-gradient(circle at 12% 90%,rgba(94,58,36,.26),transparent 34%),linear-gradient(145deg,#020a08ed,#020504fa);backdrop-filter:blur(18px) saturate(1.05);-webkit-backdrop-filter:blur(18px) saturate(1.05)}.phase12-card{position:relative;box-sizing:border-box;width:min(600px,100%);max-height:min(820px,calc(100dvh - max(36px,env(safe-area-inset-top)) - max(36px,env(safe-area-inset-bottom))));padding:34px;overflow:auto;border-color:#c9a45b4d;border-radius:18px;background:linear-gradient(90deg,rgba(94,58,36,.22),transparent 8% 92%,rgba(94,58,36,.22)),radial-gradient(ellipse at 50% 0,rgba(42,125,94,.18),transparent 52%),linear-gradient(160deg,#0c231cfb,#030c0afc);box-shadow:0 32px 100px #0000009e,inset 0 1px #ffffff0e,inset 0 0 0 5px #40271829;scrollbar-width:thin}.phase12-card:before{content:"";position:absolute;top:0;left:28px;right:28px;height:2px;background:linear-gradient(90deg,transparent,var(--ui-brass),transparent);opacity:.72}.phase12-home-card{box-sizing:border-box;width:min(760px,100%);padding:38px 42px 30px;text-align:left}.k2bil-root-ad-host{width:min(728px,calc(100vw - 24px));min-height:90px;pointer-events:auto}.k2bil-manual-ad{display:block;width:100%!important;min-width:120px;max-width:728px;min-height:90px}.phase12-flow.phase12-home-with-ad{grid-template-rows:auto auto;align-content:start;justify-items:center;gap:18px}.phase12-flow.phase12-home-with-ad .phase12-home-card{max-height:none;overflow:visible}.phase12-home-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;padding-bottom:25px;border-bottom:1px solid rgba(229,195,108,.14)}.phase12-home-brand{min-width:0}.phase12-home-brand h1{margin:6px 0 10px;font-size:clamp(48px,7vw,68px)}.phase12-home-brand p{max-width:440px;margin:0;font-size:13px;line-height:1.5}.phase12-home-header .phase12-language-select{display:grid;justify-items:end;gap:7px;margin:0 0 3px;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.phase12-home-header .phase12-language-select select{min-width:136px}.phase12-home-play-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.phase12-home-play-actions .phase12-home-play-card{--home-cue-color: #f4d735;--home-cue-tip-height: 0px;position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-content:center;align-items:center;justify-items:start;gap:12px;min-height:64px;padding:10px 14px;overflow:hidden;text-align:left}.phase12-home-play-actions .phase12-home-play-card:before{position:absolute;top:0;bottom:0;left:50px;width:12px;content:"";background:linear-gradient(90deg,#3aa6c8 0 4px,transparent 4px 7px,#3aa6c8 7px 11px,transparent 11px) top / 100% var(--home-cue-tip-height) no-repeat,linear-gradient(90deg,var(--home-cue-color) 0 4px,transparent 4px 7px,var(--home-cue-color) 7px 11px,transparent 11px);pointer-events:none}.phase12-home-play-actions .phase12-home-play-card:nth-child(-n+2){--home-cue-tip-height: 3px}.phase12-home-play-actions .phase12-home-play-card:nth-child(n+3){--home-cue-color: #8b5636}.phase12-home-play-actions .phase12-home-play-card:after{content:"›";color:#ebf5f057;font:400 25px/1 system-ui,sans-serif}.phase12-home-play-card>span{display:block;width:auto;height:auto;color:#f7e0a4b8;font-size:10px;font-weight:900;letter-spacing:.08em}.phase12-home-play-copy{display:grid;gap:1px;min-width:0;margin-left:18px}.phase12-home-play-copy>strong{font-size:17px;line-height:1.05;letter-spacing:-.02em}.phase12-home-play-copy>small{color:#ebf5f080;font-size:9px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.phase12-home-tools{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.phase12-home-tools .phase12-secondary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 10px;font-size:12px}.phase12-home-tools .phase12-secondary>span{color:var(--ui-gold-soft);font-size:14px}.phase12-home-tools .phase12-secondary>strong{font-weight:800}.phase12-home-support{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px;margin-top:16px}.phase12-home-support p{margin:0;color:#f1f7f3b8;font-size:12px;line-height:1.4}.phase12-home-support a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 14px;box-sizing:border-box;color:var(--ui-gold-soft);border:1px solid rgba(229,195,108,.45);border-radius:999px;background:#e5c36c14;font-size:12px;font-weight:800;text-decoration:none}.phase12-home-support a:hover,.phase12-home-support a:focus-visible{border-color:var(--ui-gold-soft);background:#e5c36c29}.phase12-home-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid rgba(214,230,220,.08)}.phase12-site-links{display:flex;flex-wrap:wrap;gap:12px}.phase12-site-links a{color:#f1f7f39e;font-size:10px;text-decoration:none}.phase12-site-links a:hover,.phase12-site-links a:focus-visible{color:var(--ui-gold-soft)}.phase12-home-footer .phase12-debug-entry{min-height:32px;padding:5px 10px;color:#f1f7f385;border-color:transparent;background:transparent;box-shadow:none;font-size:10px}.phase12-lessons-card{display:flex;flex-direction:column;width:min(620px,100%);overflow:hidden}.phase12-lessons-top{display:block;padding-right:52px}.phase12-lessons-top .phase12-kicker{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#app button.panel-nav-button.floating-back-button{font-size:26px;font-weight:400}.phase12-card .floating-back-button,.game-options-page .floating-back-button{position:absolute;z-index:2}.phase12-card .floating-back-button{top:22px;right:22px}.phase12-card>.floating-back-button+.phase12-kicker{padding-right:52px}.game-options-page .floating-back-button{top:0;right:0}.game-options-page .game-options-title{min-height:40px;padding-right:48px}.phase12-lessons-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.phase12-lessons-heading small{color:var(--ui-muted);white-space:nowrap}.phase12-lessons-card .phase12-lessons-heading{margin-top:4px}.phase12-lesson-list{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:18px 0;border:1px solid rgba(224,190,128,.15);border-radius:15px;background:#ffffff0b;box-shadow:inset 0 1px #ffffff09,0 10px 28px #00000024}.phase12-lesson-item{position:relative;min-width:0;margin:0}.phase12-lesson-item+.phase12-lesson-item:before{position:absolute;z-index:1;top:0;right:0;left:54px;height:1px;content:"";background:#d6e6dc1a}.phase12-card .phase12-lesson-row{display:grid;grid-template-columns:34px minmax(0,1fr) 20px 12px;align-items:center;gap:10px;width:100%;min-height:54px;padding:7px 14px 7px 10px;text-align:left;border:0;border-radius:0;background:transparent;box-shadow:none}.phase12-lesson-item.completed .phase12-lesson-row{background:linear-gradient(90deg,rgba(218,171,64,.055),transparent 48%)}.phase12-lesson-id{display:block;width:auto;height:auto;color:#f8dfa0;font-size:10px;font-weight:900;letter-spacing:-.01em;text-align:center}.phase12-lesson-title{font-size:13px;font-weight:750;line-height:1.3;overflow-wrap:anywhere}.phase12-lesson-status{display:grid;place-items:center;width:20px;height:20px}.phase12-lesson-complete-sticker{width:18px;height:18px;transform:rotate(7deg);pointer-events:none;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 8 61 37 92 38 67 57 76 88 50 70 24 88 33 57 8 38 39 37Z' fill='%23e3b64e' stroke='%23fff0a9' stroke-width='8' stroke-linejoin='round'/%3E%3C/svg%3E");filter:drop-shadow(0 1px 2px rgba(0,0,0,.38))}.phase12-lesson-chevron{color:#ebf5f057;font:400 25px/1 system-ui,sans-serif}@media(hover:hover)and (pointer:fine){.phase12-card .phase12-lesson-row:hover{background:#fff1}}.phase12-card .phase12-lesson-row:active{background:#ffffff16}.phase12-mode-grid button small{display:block;margin-top:4px;opacity:.58;font-size:9px}.lesson-practice-dock,.practice-robot-preview-dock{position:fixed;z-index:24;top:calc(env(safe-area-inset-top,0px) + 74px);left:50%;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:7px 8px 7px 12px;transform:translate(-50%);color:var(--ui-ivory);border:1px solid rgba(224,190,128,.34);border-radius:14px;background:#051411f0;box-shadow:0 9px 28px #00000061}.lesson-practice-dock.hidden,.practice-robot-preview-dock.hidden{display:none}.lesson-practice-copy,.practice-robot-preview-copy{display:grid;min-width:0;gap:2px}.lesson-practice-copy strong,.practice-robot-preview-copy strong,.practice-robot-preview-copy span{line-height:1.3;overflow-wrap:anywhere}.lesson-practice-goal,.lesson-practice-hint{overflow:visible;text-overflow:clip;white-space:normal;line-height:1.35}.lesson-practice-copy strong,.practice-robot-preview-copy strong{font-size:12px}.lesson-practice-copy span,.practice-robot-preview-copy span{color:var(--ui-gold-soft);font-size:9px}.lesson-practice-hint{color:var(--ui-mint)!important}.lesson-practice-actions,.practice-robot-preview-actions{display:flex;gap:5px}.lesson-practice-actions button,.practice-robot-preview-actions button{min-width:36px;min-height:36px;padding:5px;border-radius:10px}body.lesson-practice-active .quick-controls{z-index:25;top:calc(env(safe-area-inset-top,0px) + 8px);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;width:min(560px,calc(100vw - 16px));max-width:calc(100vw - 16px);padding:8px;pointer-events:auto;border:1px solid rgba(224,190,128,.34);border-radius:16px;background:linear-gradient(155deg,#091f19f7,#04110ef7);box-shadow:0 12px 34px #0000006b,inset 0 1px #ffffff0d}body.lesson-practice-active .quick-controls>#game-menu-toggle,body.lesson-practice-active .quick-controls>.game-top-bar,body.lesson-practice-active .quick-controls>#chat-toggle,body.lesson-practice-active .quick-controls>#move-balls,body.lesson-practice-active .quick-controls>#practice-robot,body.lesson-practice-active .quick-controls>#undo-shot,body.lesson-practice-active .quick-controls>.practice-cue-toggle,body.lesson-practice-active .quick-controls>.hud-prompt-row,body.lesson-practice-active #predict-trajectory-button{display:none!important}body.lesson-practice-active .lesson-practice-dock{position:static;z-index:auto;grid-column:1 / -1;grid-row:1;width:100%;max-width:none;min-width:0;box-sizing:border-box;padding:1px 0 8px;transform:none;border:0;border-bottom:1px solid rgba(224,190,128,.18);border-radius:0;background:transparent;box-shadow:none}body.lesson-practice-active .lesson-practice-copy{flex:1 1 auto}body.lesson-practice-active .lesson-practice-actions{flex:0 0 auto}body.lesson-practice-active .quick-controls>#camera-view-toggle{grid-column:1;grid-row:2;justify-self:start}body.lesson-practice-active .quick-controls>#elevation-toggle{grid-column:2;grid-row:2;justify-self:end}body.lesson-practice-active .quick-controls>.quick-elevation{top:calc(100% + 7px);width:100%}body.lesson-demo-active .cue-hud,body.lesson-demo-active .stroke-panel,body.lesson-demo-active .quick-elevation,body.lesson-demo-active .mobile-fine-controls{pointer-events:none}.phase12-lesson-result-card{width:min(560px,100%);text-align:center}.phase12-lesson-result-card>p{margin:8px 0 16px;color:var(--ui-gold-soft)}.lesson-result-evaluation{display:grid;gap:8px;margin:0 0 18px;text-align:left}.lesson-result-condition{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid rgba(214,230,220,.12);border-radius:10px;background:#ffffff09}.lesson-result-condition span{color:var(--ui-muted);font-size:11px}.lesson-result-condition strong{font-size:12px}.lesson-result-condition.passed strong{color:var(--ui-mint)}.lesson-result-condition.failed strong{color:#ff9b8f}.lesson-result-compare-title{margin-top:5px;color:var(--ui-gold-soft);font-size:11px;font-weight:800;letter-spacing:.02em}.lesson-result-compare-grid{overflow:hidden;border:1px solid rgba(214,230,220,.1);border-radius:12px;background:#00000029}.lesson-result-compare-row{display:grid;grid-template-columns:minmax(64px,.8fr) minmax(0,1.4fr) minmax(0,1.4fr);gap:8px;align-items:center;padding:9px 11px}.lesson-result-compare-row+.lesson-result-compare-row{border-top:1px solid rgba(214,230,220,.08)}.lesson-result-compare-row>span{color:var(--ui-muted);font-size:10px;font-weight:700}.lesson-result-compare-row small{min-width:0;color:var(--ui-muted);font-size:9px}.lesson-result-compare-row small strong{display:block;margin-top:2px;color:var(--ui-text);font-size:10px;line-height:1.3;overflow-wrap:anywhere}.phase12-lesson-result-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.phase12-lesson-result-actions button{min-width:0;padding-inline:9px}@media(max-width:760px){.phase12-lessons-heading{align-items:flex-start;flex-direction:column;gap:3px;padding-right:0}.phase12-lessons-top{padding-right:48px}.phase12-card .floating-back-button{top:14px;right:14px;font-size:24px}.lesson-practice-dock,.practice-robot-preview-dock{top:calc(env(safe-area-inset-top,0px) + 70px);width:calc(100vw - 16px);box-sizing:border-box}.lesson-practice-copy,.practice-robot-preview-copy{flex:1 1 auto}}@media(max-width:420px){.phase12-lesson-result-actions{grid-template-columns:1fr}.lesson-result-compare-row{grid-template-columns:58px minmax(0,1fr) minmax(0,1fr);padding-inline:8px}}.phase12-debug-rate-card{width:min(720px,100%)}.phase12-debug-rate-groups{display:grid;gap:12px;margin-top:20px;text-align:left}.phase12-debug-rate-group{padding:15px;border:1px solid rgba(205,226,213,.12);border-radius:12px;background:#0000002e}.phase12-debug-rate-group>strong{display:block;margin-bottom:11px;color:var(--ui-gold-soft)}.phase12-debug-rate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.phase12-debug-rate-field{display:grid;gap:6px;min-width:0;color:var(--ui-muted);font-size:12px;font-weight:750}.phase12-debug-rate-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px}.phase12-debug-rate-input-wrap input{box-sizing:border-box;width:100%;min-height:44px;padding:7px 9px;color:var(--ui-ivory);border:1px solid rgba(214,230,220,.2);border-radius:9px;background:#ffffff12;font:800 15px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-align:right}.phase12-debug-rate-input-wrap input:focus{border-color:var(--ui-brass);outline:none;box-shadow:0 0 0 3px #c9a45b1a}.phase12-debug-rate-input-wrap em{color:var(--ui-muted);font-style:normal;font-weight:800}.phase12-language-select{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;color:var(--ui-muted);font-size:13px;font-weight:700}.phase12-language-select select{min-height:38px;padding:6px 32px 6px 12px;color:var(--ui-ivory);border:1px solid rgba(214,230,220,.2);border-radius:9px;background:#ffffff12;font:inherit}.phase12-card h1{color:var(--ui-ivory);font-weight:900;line-height:.96;text-shadow:0 7px 36px rgba(201,164,91,.18)}.phase12-card h2{color:#f8fbf7;font-weight:850;letter-spacing:-.045em}.phase12-card p{color:var(--ui-muted)}.phase12-kicker{color:var(--ui-gold);letter-spacing:.28em}.phase12-main-actions,.phase12-mode-grid,.phase12-footer-actions{align-items:stretch;gap:10px}.phase12-card button{min-height:48px;border-color:#b7e2cf40;border-radius:10px;background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 42%),linear-gradient(145deg,#176c51,#0b4635);box-shadow:inset 0 1px #ffffff1a,0 7px 18px #00000040;text-shadow:0 1px 2px rgba(0,0,0,.22)}.phase12-card button.phase12-secondary{color:#f1f7f3c7;border-color:#d6e6dc24;background:#ffffff0e;box-shadow:none}.phase12-card .phase12-mode-grid>button,.phase12-card .phase12-main-actions:not(.phase12-home-play-actions)>button{position:relative;padding-right:38px;padding-left:38px;overflow:hidden;text-align:left}.phase12-card .phase12-mode-grid>button:before,.phase12-card .phase12-main-actions:not(.phase12-home-play-actions)>button:before{position:absolute;top:0;bottom:0;left:14px;width:12px;content:"";background:linear-gradient(90deg,#f4d735 0 4px,transparent 4px 7px,#f4d735 7px 11px,transparent 11px);pointer-events:none}.phase12-card .phase12-mode-grid>button:after,.phase12-card .phase12-main-actions:not(.phase12-home-play-actions)>button:after{position:absolute;top:50%;right:14px;content:"›";transform:translateY(-52%);color:#ebf5f057;font:400 25px/1 system-ui,sans-serif;pointer-events:none}.phase12-card>.phase12-secondary{display:block;width:100%;margin-top:12px}@media(hover:hover){.phase12-card button:not(:disabled):hover{border-color:#f4de9c80;background:linear-gradient(145deg,#2aa27f,#176d57);box-shadow:0 12px 28px #00000047,0 0 24px #26a67d21;transform:translateY(-2px)}.phase12-card button.phase12-secondary:not(:disabled):hover{background:#ffffff1a}}.phase12-handi-player{grid-template-rows:auto auto 44px auto;align-content:start;border-color:#cfe5d71f;background:linear-gradient(155deg,#fff1,#ffffff06);box-shadow:inset 0 1px #ffffff09}.phase12-handi-player>strong{min-height:29px;font-variant-numeric:tabular-nums}.phase12-handi-player>div{align-self:end}.phase12-bot-handi-grid .phase12-handi-player{grid-template-rows:auto 44px}.phase12-handi-player.mine{border-color:#8dd9bd94;box-shadow:0 0 0 1px #26a67d1f,0 12px 28px #0000002e}.phase12-handi-player>strong{color:var(--ui-gold-soft)}.phase12-handi-player em{color:var(--ui-mint)}.phase12-rules{border:1px solid rgba(205,226,213,.1);background:#0000002e}.phase12-room-join{align-items:stretch}.phase12-room-join input{box-sizing:border-box;border-color:#c9a45b3d;background:#00000047;outline:none}.phase12-room-join input:focus{border-color:var(--ui-brass);box-shadow:0 0 0 3px #c9a45b1a}.phase12-check input{accent-color:var(--ui-green-bright)}.phase12-final-score>div{border:1px solid rgba(206,228,214,.11);background:linear-gradient(145deg,#ffffff13,#ffffff07)}.phase12-final-score strong{color:var(--ui-gold-soft);text-shadow:0 4px 22px rgba(229,195,108,.15)}.phase12-result-card .phase12-final-replay{width:100%;min-height:44px;margin-top:12px}.phase12-result-card .phase12-final-replay+.phase12-footer-actions{margin-top:12px}.phase12-result-card{border-color:#e5c36c57;background:radial-gradient(circle at 50% 10%,rgba(229,195,108,.17),transparent 43%),linear-gradient(155deg,#1d291cfa,#06120ffa)}.phase12-spinner{border-color:#ffffff1f;border-top-color:var(--ui-gold)}@media(min-width:761px){body.mobile-control-layout-enabled .tip-panel{border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}body.mobile-control-layout-enabled .tip-panel>.hud-label,body.mobile-control-layout-enabled .ball-hud-target-readout{display:none}body.mobile-control-layout-enabled .ball-hud-stage,body.mobile-control-layout-enabled .tip-actions{pointer-events:auto}body.mobile-control-editor-active .cue-hud.hidden{display:grid!important}}@media(max-width:1024px)and (pointer:coarse){.quick-controls,.game-menu,.chat-panel,.multiplayer-game-status,.tip-panel,.stroke-panel,.replay-controller,.replay-speed-controller{backdrop-filter:none;-webkit-backdrop-filter:none}}@media(max-width:760px){.aim-minimap{top:max(var(--aim-minimap-toolbar-top, 0px),max(62px,calc(env(safe-area-inset-top) + 52px)));left:max(8px,env(safe-area-inset-left));width:min(56.1vw,255px);border-radius:4px}.aim-minimap.with-multiplayer-status{top:max(var(--aim-minimap-toolbar-top, 0px),max(106px,calc(env(safe-area-inset-top) + 96px)))}.quick-controls{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));width:auto;max-width:none;align-items:stretch;gap:4px;padding:0;transform:none;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:none}.quick-controls>.quick-button,.quick-controls .camera-view-toggle,.quick-controls .mechanical-scoreboard,.quick-controls .practice-cue-toggle,.quick-controls .game-menu,.quick-controls .quick-elevation,.quick-controls .hud-prompt-row,.quick-controls .phase12-room-copy{pointer-events:auto}.quick-controls>.quick-button,.undo-shot-button{flex:0 0 clamp(36px,10vw,42px);width:clamp(36px,10vw,42px);min-width:0;min-height:42px;border-radius:10px;font-size:22px}.camera-view-toggle{padding-inline:5px}.quick-controls>.quick-button.camera-view-toggle{padding-inline:6px;font-size:16px}.camera-view-toggle small{font-size:7px}.mechanical-scoreboard,.mechanical-scoreboard.compact-score,.practice-cue-toggle{flex:1 1 110px;width:auto;min-width:92px;max-width:none;padding:3px;border-radius:6px}.practice-cue-toggle{flex:0 0 42px;width:42px;min-width:42px;gap:0;padding:3px}.practice-cue-toggle-balls{gap:5px}.practice-cue-choice{flex-basis:18px;width:18px;height:18px}.compact-score .scoreboard-top-bay{height:34px;padding:2px 6px}.scoreboard-bottom-bay{display:none}.scoreboard-brand{min-width:26px;height:14px;font-size:5px}.scoreboard-readout strong{min-width:10px;font-size:11px}.game-menu{top:calc(100% + 7px);left:0;right:0;width:auto;transform:none;border-radius:16px}.quick-elevation{top:calc(100% + 7px);left:0;right:0;width:100%;transform:none}.chat-panel{border-radius:18px}.multiplayer-game-status{top:max(56px,calc(env(safe-area-inset-top) + 48px));left:max(10px,env(safe-area-inset-left));right:104px;width:auto;max-width:none;min-height:24px;justify-content:flex-start;padding:0;transform:none;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:8px;text-align:left}.mobile-precision-readout{position:fixed;z-index:31;display:block;max-width:min(250px,calc(100vw - 20px));padding:7px 11px;transform:translate(-50%,-100%);border:1px solid rgba(240,202,122,.42);border-radius:999px;background:#04110eeb;color:#fff8e9;box-shadow:0 6px 18px #00000057;font-size:11px;font-weight:800;white-space:nowrap;pointer-events:none}.cue-hud{display:grid;grid-template-columns:minmax(0,1fr) 80px;align-items:end;gap:5px;pointer-events:none}.tip-panel,.stroke-panel{pointer-events:none;border:0;background:transparent;box-shadow:none}.tip-panel{width:auto;min-width:0;padding:0;border-radius:0;filter:none}.stroke-panel{padding:0;border-radius:0;background:#030c0a4d}.tip-panel .hud-label,.ball-hud-target-readout,.stroke-panel .hud-label,.stroke-guide{display:none}.tip-ball,.tip-actions .hud-button,.stroke-pad{pointer-events:auto}.mobile-control-option-row{display:flex!important}#open-mobile-control-editor.mobile-control-option-row{display:block!important}body.mobile-control-layout-enabled .mobile-control-item{position:fixed!important;right:auto!important;bottom:auto!important;margin:0!important;transform:translate(-50%,-50%) scale(var(--mobile-control-scale, 1))!important;transform-origin:center center!important}body.mobile-control-layout-enabled .ball-hud-stage,body.mobile-control-layout-enabled .tip-actions,body.mobile-control-layout-enabled .stroke-panel,body.mobile-control-layout-enabled .mobile-fine-controls{z-index:30}body.mobile-control-editor-active .mobile-control-item{z-index:76!important;outline:1px dashed rgba(255,240,178,.58);outline-offset:4px;pointer-events:auto!important;touch-action:none!important}body.mobile-control-editor-active .mobile-control-item.mobile-control-selected{outline:3px solid rgba(244,215,53,.92);outline-offset:5px;filter:drop-shadow(0 0 10px rgba(244,215,53,.32))}body.mobile-control-editor-active .cue-hud.hidden{display:block!important}body.mobile-control-editor-active .mobile-fine-controls.hidden,body.mobile-control-editor-active .mobile-tip-nudges{display:flex!important}body.mobile-control-editor-active .mobile-aim-nudges{display:none!important}body.mobile-control-editor-active .quick-controls>.quick-button,body.mobile-control-editor-active #camera-view-toggle,body.mobile-control-editor-active .mechanical-scoreboard,body.mobile-control-editor-active .practice-cue-toggle{opacity:.28;pointer-events:none!important}}@media(max-width:700px){.phase12-flow{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.phase12-card{width:100%;max-height:calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)));padding:22px 16px;border-radius:20px;box-shadow:0 24px 72px #00000085,inset 0 1px #ffffff0e}.phase12-home-card{padding:28px 20px 22px}.phase12-home-header{grid-template-columns:1fr;justify-items:stretch;gap:14px;padding-bottom:20px;text-align:left}.phase12-home-brand h1{margin-block:7px 9px}.phase12-home-brand p{margin-inline:0}.phase12-home-header .phase12-language-select{display:flex;align-items:center;justify-content:space-between;justify-items:initial;gap:9px;margin:0}.phase12-home-play-actions{grid-template-columns:1fr}.phase12-home-play-actions .phase12-home-play-card{grid-template-columns:26px minmax(0,1fr) auto;align-content:center;align-items:center;gap:16px;min-height:62px;padding:12px 15px}.phase12-home-play-actions .phase12-home-play-card:nth-child(n){--home-cue-color: #f4d735;--home-cue-tip-height: 0px}.phase12-home-play-actions .phase12-home-play-card:first-child{--home-cue-tip-height: 3px}.phase12-home-play-actions .phase12-home-play-card:last-child{--home-cue-color: #8b5636}.phase12-home-play-copy>strong{font-size:16px}.phase12-home-play-copy>small{font-size:8px}.phase12-home-footer{justify-content:flex-end}.phase12-card h1{margin-top:8px;font-size:clamp(44px,14vw,58px)}.phase12-card h2{margin-bottom:16px}.phase12-card button{border-radius:9px}.phase12-card>.phase12-secondary{margin-top:10px}.phase12-main-actions,.phase12-mode-grid,.phase12-footer-actions{margin-top:16px;gap:8px}.phase12-handi-grid{gap:8px}.phase12-handi-player{grid-template-rows:auto auto 42px auto}.phase12-rules{margin-top:12px;padding:12px}.phase12-check{min-height:40px}.phase12-room-join{grid-template-columns:minmax(0,1fr) 104px;gap:8px}.phase12-room-join input{font-size:16px}.phase12-final-score{margin:16px 0;gap:8px}.phase12-final-score>div{min-width:0;padding:14px 8px}.phase12-final-score strong{font-size:42px}.phase12-result-statistics{grid-template-columns:repeat(2,minmax(0,1fr))}.phase12-result-statistics span{min-width:0;padding:7px 3px;line-height:1.2;overflow-wrap:anywhere}.phase12-result-statistics span:last-child{grid-column:1 / -1}.phase12-final-score .phase12-result-statistics strong{font-size:18px;line-height:1.1}}@media(max-width:380px){.quick-controls{left:max(5px,env(safe-area-inset-left));right:max(5px,env(safe-area-inset-right));gap:3px;padding:3px}.quick-controls>.quick-button,.undo-shot-button{flex-basis:clamp(34px,9.8vw,38px);width:clamp(34px,9.8vw,38px);min-height:40px;font-size:20px}.camera-view-toggle{min-width:40px;padding-inline:4px}.mechanical-scoreboard,.mechanical-scoreboard.compact-score{min-width:86px}.practice-cue-toggle{flex-basis:40px;width:40px;min-width:40px;padding-inline:3px}.compact-score .scoreboard-top-bay{height:32px;padding:2px 4px}.scoreboard-brand{display:none}.phase12-home-tools{grid-template-columns:1fr}.mobile-fine-controls strong{display:none}.cue-hud{grid-template-columns:minmax(0,1fr) 76px;gap:3px}.tip-panel{padding:3px}.ball-hud-stage{flex-basis:174px;width:174px;height:60px}.tip-ball,.ball-hud-object{width:58px;height:58px}.tip-ball{left:58px}.ball-hud-object{left:calc(58px + var(--object-separation) * 58px)}.tip-actions{flex-basis:52px;width:52px}.stroke-panel{width:76px;padding:3px}}@media(max-height:620px){.phase12-flow{align-items:start}.phase12-card{padding-block:18px}.phase12-home-card{padding-block:26px}}.stroke-pad{isolation:isolate;cursor:grab;border-color:#e5c36c47;background:radial-gradient(circle at 50% 15%,rgba(255,246,207,.03),transparent 24%),linear-gradient(180deg,#0c211b4d,#040e0c42);box-shadow:inset 0 1px #ffffff08,inset 0 -28px 42px #0000000f,0 10px 24px #0000001a}.stroke-panel .hud-label{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:2px}.stroke-panel{position:relative;pointer-events:auto;touch-action:none;cursor:grab}body.mobile-control-layout-enabled .stroke-panel.mobile-control-item{transform:translate(-50%,-50%)!important}@media(max-width:1024px)and (pointer:coarse){.stroke-panel{padding:0;border:0;background:transparent;box-shadow:none}.stroke-panel .hud-label{display:none}}.stroke-speed-readout{position:absolute;z-index:7;left:50%;top:-34px;display:grid;place-items:center;min-width:104px;min-height:27px;padding:0 11px;box-sizing:border-box;transform:translate(-50%);border:1px solid rgba(229,195,108,.3);border-radius:999px;color:#fff6dc;background:#051411e0;box-shadow:0 7px 18px #00000047,inset 0 1px #ffffff0d;font:800 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;white-space:nowrap;pointer-events:none}.stroke-speed-readout.hidden{display:none}.stroke-speed-readout.speed-soft{color:#8df0b6;border-color:#8df0b666}.stroke-speed-readout.speed-medium{color:#f5da7c;border-color:#f5da7c70}.stroke-speed-readout.speed-strong{color:#ff9382;border-color:#ff93827a}@media(hover:hover)and (pointer:fine){.stroke-panel:hover .stroke-handle:before{filter:brightness(1.12);box-shadow:0 0 0 1px #190d063d,0 0 12px #e5c36c3d}}.stroke-title{letter-spacing:.12em}#stroke-readout{display:none}.tutorial-stroke-gesture{position:absolute;z-index:8;inset:42px 5px 18px;display:grid;grid-template-columns:1fr 1fr;gap:2px;pointer-events:none}.tutorial-stroke-step{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;color:#ffe49a;text-shadow:0 2px 4px rgba(0,0,0,.72)}.tutorial-stroke-step b{display:grid;place-items:center;width:24px;height:24px;border:2px solid rgba(255,239,190,.92);border-radius:50%;color:#fff6dc;background:#be3e23f0;box-shadow:0 3px 9px #0000005c;font-size:13px;line-height:1}.tutorial-stroke-direction{display:block;margin-block:1px;color:#f4ca62;font-size:43px;font-weight:900;line-height:.9;filter:drop-shadow(0 2px 3px rgba(0,0,0,.55))}.tutorial-stroke-step small{max-width:100%;color:#fff0c3;font-size:8px;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.tutorial-stroke-step-pull{animation:tutorial-stroke-step-pulse 1.8s ease-in-out infinite}.tutorial-stroke-step-push{animation:tutorial-stroke-step-pulse 1.8s ease-in-out .9s infinite}.tutorial-stroke-gesture[data-phase=pull] .tutorial-stroke-step-push,.tutorial-stroke-gesture[data-phase=push] .tutorial-stroke-step-pull{opacity:.18;animation:none;transform:scale(.92)}.tutorial-stroke-gesture[data-phase=pull] .tutorial-stroke-step-pull,.tutorial-stroke-gesture[data-phase=push] .tutorial-stroke-step-push{opacity:1}@keyframes tutorial-stroke-step-pulse{0%,44%,to{opacity:.52;transform:scale(.96)}12%,30%{opacity:1;transform:scale(1.06)}}.stroke-panel.active{cursor:grabbing}.stroke-pad:before{z-index:0;top:24px;bottom:24px;width:6px;background:linear-gradient(180deg,#fff5d2b8,#cd9750c2 40%,#6f4524e0);box-shadow:0 0 0 1px #140b0559,0 0 12px #e5c36c1f}.stroke-contact-ball{position:absolute;z-index:3;top:8px;left:50%;width:30px;height:30px;box-sizing:border-box;transform:translate(-50%);border:1px solid rgba(255,255,255,.72);border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff 0 10%,transparent 11%),radial-gradient(circle at 42% 38%,#fffdf2 0 20%,#ded7c2 60%,#8e8879);box-shadow:inset -5px -6px 9px #0000002b,0 3px 10px #0000006b;pointer-events:none}.stroke-impact-caption{position:absolute;z-index:2;top:33px;right:8px;color:#f0d79994;font:750 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;pointer-events:none}.stroke-zero{z-index:2;left:14px;right:14px;top:38px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,239,196,.74) 20% 80%,transparent);box-shadow:0 0 9px #e5c36c24}.stroke-zero:after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;transform:translate(-50%,-50%);border:1px solid rgba(255,238,191,.52);border-radius:50%;background:#80552e;box-shadow:0 0 0 3px #e5c36c14}.stroke-handle{z-index:4;width:48px;height:0;display:block;border:0;background:transparent;box-shadow:none;transition:filter .12s ease}.stroke-handle:before{content:"";position:absolute;z-index:-1;left:50%;bottom:-66px;width:7px;height:calc(117px + var(--stroke-cue-extension, 0px));transform:translate(-50%);border-radius:5px 5px 2px 2px;background:linear-gradient(90deg,#6d431f,#d5a965 38% 62%,#5d351a);box-shadow:0 0 0 1px #190d0647,0 2px 7px #00000047}.stroke-handle:after{content:"";position:absolute;z-index:-1;left:50%;bottom:calc(100% + 51px + var(--stroke-cue-extension, 0px));width:8px;height:6px;transform:translate(-50%);border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,#56839a,#284c5b);box-shadow:0 0 0 1px #0a191f73}.stroke-pad[data-stroke-state=back] .stroke-handle:before{box-shadow:0 0 0 1px #190d063d,0 0 12px #e5c36c3d}.stroke-pad[data-stroke-state=forward] .stroke-handle:before{box-shadow:0 0 0 1px #190d063d,0 0 12px #8dd9bd61}.stroke-pad[data-stroke-state=fired] .stroke-contact-ball{animation:stroke-impact-pulse .52s ease-out}@keyframes stroke-impact-pulse{0%{transform:translate(-50%) scale(1);box-shadow:0 0 #ffefbbb3}40%{transform:translate(-50%) scale(1.08);box-shadow:0 0 0 13px #ffefbb1a}to{transform:translate(-50%) scale(1);box-shadow:0 0 0 22px #ffefbb00}}@media(max-width:760px){.cue-hud{grid-template-columns:minmax(0,1fr) 84px}.stroke-panel{width:84px;flex-basis:84px}.stroke-panel .hud-label{display:none}.stroke-speed-readout{top:-28px;min-width:78px;min-height:23px;padding-inline:7px;font-size:10px}.stroke-pad{width:78px}.tutorial-stroke-gesture{inset:34px 3px 14px;gap:0}.tutorial-stroke-step b{width:19px;height:19px;font-size:10px}.tutorial-stroke-direction{font-size:31px}.tutorial-stroke-step small{font-size:9px}.stroke-contact-ball{top:5px;width:20px;height:20px}.stroke-impact-caption{display:none}.stroke-pad:before{top:15px;bottom:12px;width:5px}.stroke-zero{left:8px;right:8px;top:25px}.stroke-zero:after{width:7px;height:7px}.stroke-handle{top:45.6px;width:40px;height:0}.stroke-handle:before{bottom:calc(-49px - var(--stroke-cue-extension, 0px));width:5px;height:calc(70px + var(--stroke-cue-extension, 0px))}.stroke-handle:after{bottom:calc(100% + 20px);width:7px;height:5px}}@media(max-width:380px){.cue-hud{grid-template-columns:minmax(0,1fr) 80px}.stroke-panel{width:80px;flex-basis:80px}.stroke-pad{width:74px}}@media(max-height:620px)and (orientation:landscape){.cue-hud{grid-template-columns:minmax(0,1fr) 76px}.stroke-panel{width:76px;flex-basis:76px}.stroke-pad{width:70px}.stroke-contact-ball{width:17px;height:17px}.stroke-zero{top:22px}.stroke-handle{top:38px;width:36px;height:0}.stroke-handle:before{bottom:calc(-41px - var(--stroke-cue-extension, 0px));height:calc(57px + var(--stroke-cue-extension, 0px))}.stroke-handle:after{bottom:calc(100% + 16px)}}@media(prefers-reduced-motion:reduce){button,select,input,.stroke-handle{transition-duration:1ms}.stroke-pad[data-stroke-state=fired] .stroke-contact-ball,.tutorial-aim-drag-finger,.tutorial-tip-drag-finger,.tutorial-stroke-step-pull,.tutorial-stroke-step-push{animation:none}}.stroke-diagnostics{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(440px,calc(100vw - 24px));max-height:42dvh;overflow:auto;box-sizing:border-box;z-index:100;padding:14px;border:1px solid #647568;border-radius:16px;background:#10251ff5;color:#fff;font-size:13px;pointer-events:auto}.stroke-diagnostics.hidden{display:none}.stroke-diagnostics p{margin:8px 0}.stroke-diagnostics output{display:block;margin-top:8px}.stroke-calibration-progress{margin:10px 0 4px;color:#f4d735;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.03em}.stroke-calibration-output{min-height:20px;color:#d9f7ea}.stroke-diagnostics button,.stroke-diagnostics select{min-height:40px;margin:4px 4px 0 0;padding:6px 10px;color:#fff;background:#304a40;border:1px solid #76887b;border-radius:8px}:root{--ui-surface-glass: rgba(7, 24, 19, .9);--ui-surface-raised: rgba(18, 48, 39, .76);--ui-control-rest: rgba(255, 255, 255, .065);--ui-control-hover: rgba(229, 195, 108, .14);--ui-control-active: rgba(38, 166, 125, .22);--ui-ring: rgba(235, 204, 143, .62);--ui-panel-shadow: 0 20px 52px rgba(0, 0, 0, .46), inset 0 1px rgba(255, 255, 255, .055);--ui-control-shadow: inset 0 1px rgba(255, 255, 255, .055), 0 4px 12px rgba(0, 0, 0, .18)}.game-menu,.controls,.chat-panel,.phase12-card,.replay-library-card,.replay-note-card,.replay-note-viewer-card{border-color:#dee8e129;background-color:var(--ui-surface-glass);box-shadow:var(--ui-panel-shadow)}.game-menu,.controls,.chat-panel{background-image:radial-gradient(circle at 16% 0%,rgba(53,130,101,.14),transparent 42%),linear-gradient(155deg,#0d2720f5,#040f0df7)}.collapse-button,.hud-button,.wide-control-button,.buttons button,.quick-button,.quick-step,.menu-button,.phase12-card button,.chat-header button,.chat-form button,.chat-quick-row button,.replay-controller button{box-shadow:var(--ui-control-shadow)}.menu-button,.game-option-row,.mode-selector,.phase12-card button{border-color:#dce7e026;background-color:var(--ui-control-rest)}.game-option-row,.mode-selector{box-shadow:inset 0 1px #ffffff09}.menu-button:disabled,.phase12-card button:disabled,.quick-button:disabled,.quick-step:disabled,.hud-button:disabled{filter:saturate(.55);box-shadow:none}#camera-view-toggle.active,#elevation-toggle.active,#move-balls.active,#chat-toggle.active,.robot-assist-button.charged,.undo-shot-button.charged,#predict-trajectory-button.active{box-shadow:0 0 0 1px #8dd9bd1f,0 8px 22px #0000003d,inset 0 1px #ffffff17}.stroke-speed-readout,.mobile-precision-readout,.chat-toast{border-color:#ebcc8f57;background:#051410e8;box-shadow:0 8px 22px #00000057,inset 0 1px #ffffff0d}@media(hover:hover)and (pointer:fine){.menu-button:not(:disabled):hover,.phase12-card button:not(:disabled):hover,.quick-button:not(:disabled):hover,.quick-step:not(:disabled):hover,.hud-button:not(:disabled):hover{border-color:#ebcc8f6b;background-color:var(--ui-control-hover);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff14,0 9px 22px #0000003d}.game-option-row:hover,.mode-selector:hover{border-color:#8dd9bd4d;background-color:#8dd9bd13}}.menu-button:not(:disabled):active,.phase12-card button:not(:disabled):active,.quick-button:not(:disabled):active,.quick-step:not(:disabled):active,.hud-button:not(:disabled):active{background-color:var(--ui-control-active);box-shadow:inset 0 2px 8px #0003}.game-option-row:focus-within,.mode-selector:focus-within{border-color:var(--ui-ring);box-shadow:0 0 0 3px #ebcc8f1a}.stroke-panel{border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}@media(prefers-reduced-motion:reduce){.menu-button,.phase12-card button,.quick-button,.quick-step,.hud-button{transition-duration:1ms}}.bot-match-undo-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));box-sizing:border-box;overflow:auto;color:var(--ui-ivory);background:#050b0de6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);touch-action:pan-y}.bot-match-undo-card{width:min(420px,100%);box-sizing:border-box;padding:24px;text-align:center;border:1px solid rgba(224,190,128,.28);border-radius:18px;background:linear-gradient(145deg,#1b2d2afa,#0b1818fa);box-shadow:0 28px 90px #00000085,inset 0 1px #ffffff0a}.bot-match-undo-title{margin:0;color:var(--ui-ivory);font:800 clamp(20px,4vw,26px)/1.15 Georgia,serif;letter-spacing:-.02em}.bot-match-undo-body{margin:12px 0 20px;color:var(--ui-text);font:500 15px/1.6 system-ui,-apple-system,sans-serif}.bot-match-undo-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bot-match-undo-actions button{min-height:46px;padding:10px 14px;color:var(--ui-ivory);background:#fff1;border:1px solid rgba(224,190,128,.22);border-radius:11px;font-weight:800;cursor:pointer}.bot-match-undo-confirm{color:var(--ui-ink);background:var(--ui-gold-soft);border-color:var(--ui-line-strong)}.bot-match-undo-actions button:focus-visible{outline:2px solid var(--ui-gold-soft);outline-offset:2px}body.highlight-viewer-active .highlight-shot-hud>.ball-hud-stage{position:absolute!important;z-index:1!important;inset:0 auto auto 0!important;display:block!important;width:360px!important;height:124px!important;flex:none!important;margin:0!important;transform:scale(.2)!important;transform-origin:left top!important;pointer-events:none!important}body.highlight-viewer-active .highlight-shot-hud .tip-ball,body.highlight-viewer-active .highlight-shot-hud .ball-hud-object{top:2px!important;width:120px!important;height:120px!important}body.highlight-viewer-active .highlight-shot-hud .tip-ball{left:120px!important}body.highlight-viewer-active .highlight-shot-hud .ball-hud-object{left:calc(120px + var(--object-separation) * 120px)!important}
