/* DIRTY FRISBEE · original arcade art direction, built on Mando.
   Presentation only: existing inputs, physics, scores and multiplayer remain intact. */
:root{--df-ink:#172d48;--df-blue:#1a4c70;--df-orange:#f5662c;--df-yellow:#ffd35d;--df-cream:#fff5d3;--df-muted:#b6cbd7;--df-line:#172d4829}
/* Landing: the cabinet marquee. */
body.dirty-frisbee-lobby{color-scheme:light;background:#fff5d3;color:var(--df-ink);font-family:"Arial",ui-sans-serif,system-ui,sans-serif;overflow-x:hidden}
.dirty-frisbee-lobby::before{background:radial-gradient(circle at 18% 15%,#f9d97e45,transparent 38%),repeating-linear-gradient(120deg,transparent 0 32px,#e7b34908 32px 34px);z-index:-1}
.dirty-frisbee-lobby a{text-decoration:none}
.dirty-frisbee-lobby button,.dirty-frisbee-lobby input{font:inherit}
.dirty-frisbee-lobby :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid #1374a6;outline-offset:4px}
.df-skip{position:fixed;z-index:100;top:12px;left:12px;transform:translateY(-160%);padding:15px;background:var(--df-ink);color:var(--df-cream);border:2px solid var(--df-orange)}
.df-skip:focus{transform:none}
.dirty-frisbee-lobby>.df-header{height:82px;min-height:82px;padding:0 clamp(20px,4vw,72px);background:var(--df-ink);color:var(--df-cream);border:0;border-bottom:5px solid var(--df-orange);position:relative;z-index:3}
.df-header .brand{display:flex;align-items:center;gap:8px;letter-spacing:-.5px;font-style:italic;font-size:20px;white-space:nowrap}
.df-header .brand svg{width:42px;height:42px;color:var(--df-yellow);flex:none}
.df-header .brand .df-wordmark{display:block;margin:0;color:inherit;font-size:inherit;letter-spacing:inherit;font-weight:900}
.df-header nav{gap:30px;align-items:center;font-size:11px;letter-spacing:1px;font-weight:800;color:var(--df-cream)}
.df-header nav>a:not(.df-header-play){padding:16px 0}
.df-header nav>a:hover{color:var(--df-yellow)}
.df-header .df-header-play{min-height:42px;display:flex;align-items:center;justify-content:center;gap:22px;padding:0 17px;background:var(--df-yellow);color:var(--df-ink);border:2px solid var(--df-yellow);border-radius:3px;transform:skew(-6deg)}
.df-header .df-header-play:hover{background:var(--df-orange);color:var(--df-ink);border-color:var(--df-orange)}
.dirty-frisbee-lobby main.lobby-page{display:block;max-width:1600px;width:100%;height:auto;min-height:0;margin:auto;padding:0 clamp(20px,4vw,72px) 30px}
.dirty-frisbee-lobby .df-hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:0;align-items:center;max-width:none;margin:0;padding:54px 0 46px;min-height:580px}
.df-hero-copy{position:relative;z-index:2}
.df-ticket{display:inline-flex;gap:12px;align-items:center;padding:8px 11px;background:var(--df-ink);color:var(--df-cream);font-weight:800;font-size:10px;line-height:1.2;letter-spacing:1.4px;transform:rotate(-2deg)}
.df-ticket span{color:var(--df-yellow);font-size:13px}
.dirty-frisbee-lobby .df-hero h1{grid-column:auto;margin:25px 0 22px;color:var(--df-ink);font-family:Impact,"Arial Black","Arial",sans-serif;font-style:italic;font-weight:900;font-size:clamp(66px,7.7vw,120px);line-height:.86;letter-spacing:-3.5px;text-transform:uppercase;transform:rotate(-3deg);transform-origin:left center;text-shadow:4px 5px 0 var(--df-orange)}
.df-hero h1>span{display:block}
.df-hero h1>span:first-child{color:var(--df-orange);text-shadow:4px 5px 0 var(--df-ink)}
.df-title-dot{color:var(--df-orange)}
.dirty-frisbee-lobby .df-hero .df-tagline{grid-column:auto;grid-row:auto;margin:26px 0 23px;max-width:none;color:var(--df-ink);font-size:19px;line-height:1.4;letter-spacing:-.4px;font-weight:700}
.df-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.df-start{display:flex;gap:37px;align-items:center;min-height:64px;padding:16px 23px;border:3px solid var(--df-ink);border-radius:4px;background:var(--df-orange);box-shadow:5px 5px 0 var(--df-ink);font-size:17px;font-weight:900;letter-spacing:1px;transform:rotate(-1deg);transition:transform .15s,box-shadow .15s}
.df-start>span{font-size:25px;line-height:1}
.df-start:hover{background:var(--df-yellow);transform:translate(2px,2px) rotate(-1deg);box-shadow:3px 3px 0 var(--df-ink)}
.df-browse{display:flex;gap:11px;align-items:center;min-height:44px;font-size:12px;line-height:1.4;font-weight:700;border-bottom:2px solid var(--df-ink)}
.dirty-frisbee-lobby .df-hero .df-quick-note{grid-column:auto;grid-row:auto;font-size:10px;line-height:1.6;color:#52626a;margin:18px 0 0;max-width:none}
.df-hero-art{position:relative;min-width:0;margin:0 -28px 0 -40px;transform:rotate(1deg);isolation:isolate}
.df-hero-art img{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 0 #172d480b)}
.df-sticker{position:absolute;z-index:2;right:7%;top:0;display:grid;place-content:center;width:103px;height:103px;transform:rotate(13deg);background:var(--df-orange);color:var(--df-cream);border:3px solid var(--df-ink);border-radius:50%;font:italic 900 19px/.98 Impact,"Arial Black",sans-serif;text-align:center;box-shadow:4px 4px 0 var(--df-ink)}
.df-art-label{position:absolute;bottom:1%;right:15%;display:flex;align-items:center;gap:8px;background:var(--df-ink);color:var(--df-cream);padding:10px 13px;font-size:10px;font-weight:800;letter-spacing:1px;transform:rotate(-5deg)}
.df-live-dot{width:7px;height:7px;border-radius:50%;background:var(--df-orange);box-shadow:0 0 0 3px #f5662c25}
.df-how{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 30px;background:var(--df-ink);color:var(--df-cream);border-top:5px solid var(--df-orange);border-radius:3px}
.df-how-label{font-size:12px;font-weight:900;line-height:1.35;letter-spacing:.6px;color:var(--df-yellow)}
.df-how>div{display:flex;align-items:center;gap:11px}
.df-how b{font:italic 900 34px/1 Impact,"Arial Black",sans-serif;color:var(--df-orange)}
.df-how div>span{font-size:13px;font-weight:900;letter-spacing:1px;line-height:1.35}
.df-how small{display:block;font-size:10px;line-height:1.5;font-weight:400;letter-spacing:0;color:#c2d0d8}
.df-key-hint{font-size:8px;line-height:1.7;color:#c2d0d8;letter-spacing:.6px;padding-left:20px;border-left:1px solid #fff5d33b}
.df-assist-note{font-size:10px;color:#52626a;margin:10px 0 0;text-align:right}
.df-select-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:53px 0 24px;scroll-margin-top:25px}
.dirty-frisbee-lobby .eyebrow{color:#b54721;font-size:10px;font-weight:800;letter-spacing:1.7px}
.df-select-heading h2{font:italic 900 clamp(29px,3vw,43px)/1 Impact,"Arial Black",sans-serif;letter-spacing:-.5px;margin:10px 0 0}
.df-select-heading p{font-size:12px;line-height:1.6;color:#52626a;margin:0 0 2px}
/* Retain the real course carousel and lobby, with the course in the lead. */
.dirty-frisbee-lobby .lobby-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:stretch;min-height:0}
.dirty-frisbee-lobby .course-browser{order:0;min-width:0;display:flex;flex-direction:column;min-height:510px}
.dirty-frisbee-lobby .mp-lobby{order:1;min-width:0;margin:0;padding:22px 19px 16px;display:flex;flex-direction:column;border:2px solid var(--df-ink);border-top:7px solid var(--df-orange);border-radius:5px;background:#ffedb2;box-shadow:5px 5px 0 #172d4814;scroll-margin-top:24px;color:var(--df-ink)}
.dirty-frisbee-lobby .mp-lobby-heading{gap:8px;align-items:start;flex-wrap:wrap;margin-bottom:18px}
.dirty-frisbee-lobby .mp-lobby-heading h2{font:italic 900 27px/1.1 Impact,"Arial Black",sans-serif;letter-spacing:-.4px;margin:7px 0 0;color:var(--df-ink)}
.dirty-frisbee-lobby .mp-connection{padding:5px 7px;border:1px solid #172d4833;border-radius:3px;font-size:9px;background:#fff5d3;color:#52626a}
.dirty-frisbee-lobby .mp-connection.is-live{color:#145b43;background:#bfe4c7;border-color:#719b7e}
.dirty-frisbee-lobby .mp-self{padding:12px 10px;gap:8px;background:#fff7dd;border:1px solid #172d4833;border-radius:4px}
.dirty-frisbee-lobby .mp-player-label strong,.dirty-frisbee-lobby .mp-player-name{color:var(--df-ink);font-size:12px}
.dirty-frisbee-lobby .mp-player-label small{font-size:10px;color:#52626a}
.dirty-frisbee-lobby .mp-self .mp-button{flex:none;padding:8px;min-height:40px;font-size:10px}
.dirty-frisbee-lobby .mp-help,.dirty-frisbee-lobby .mp-privacy{color:#52626a;font-size:11px;line-height:1.65}
.dirty-frisbee-lobby .mp-lobby h3{color:var(--df-ink);font-size:12px;font-weight:800}
.dirty-frisbee-lobby .mp-list-hint{display:none}
.dirty-frisbee-lobby .mp-list{display:grid;grid-template-columns:1fr;gap:8px}
.dirty-frisbee-lobby .mp-lobby-scroll{flex:1;max-height:390px;overflow-y:auto;scrollbar-color:#c3b580 transparent;padding-right:3px;overscroll-behavior:contain}
.dirty-frisbee-lobby .mp-empty{font-size:11px;line-height:1.7;color:#52626a;padding:16px 12px;border:1px dashed #172d4840;border-radius:3px;background:#fff5d380}
.dirty-frisbee-lobby .mp-player-row,.dirty-frisbee-lobby .mp-invite-row,.dirty-frisbee-lobby .mp-member{border:1px solid #172d482e;background:#fff5d3;border-radius:3px;padding:10px;gap:8px;color:var(--df-ink)}
.dirty-frisbee-lobby .mp-avatar{background:var(--df-ink);color:var(--df-yellow);border-radius:3px;font-size:13px;width:32px;height:32px}
.dirty-frisbee-lobby .mp-badge,.dirty-frisbee-lobby .mp-count{color:var(--df-ink);border:0;background:#ffd35d;font-size:10px}
.dirty-frisbee-lobby .mp-text-button{color:#9b3b1b;font-weight:700;min-height:44px}
.dirty-frisbee-lobby .mp-notice{color:#52626a;font-size:11px;line-height:1.6;margin-top:12px}
.dirty-frisbee-lobby .mp-notice.is-error{color:#9b301a}
.dirty-frisbee-lobby .mp-button{border:2px solid var(--df-ink);background:var(--df-orange);color:var(--df-ink);border-radius:4px;min-height:44px;font-size:12px;font-weight:800;box-shadow:2px 2px 0 var(--df-ink)}
.dirty-frisbee-lobby .mp-button:hover:not(:disabled){background:var(--df-yellow)}
.dirty-frisbee-lobby .mp-button.mp-secondary{background:#fff5d3;box-shadow:none}
.dirty-frisbee-lobby .mp-button:disabled{opacity:.55}
.dirty-frisbee-lobby .course-carousel{min-width:0;flex:1;display:flex;flex-direction:column;outline-offset:5px}
.dirty-frisbee-lobby .course-controls{display:flex;justify-content:flex-end;gap:8px;margin:0 0 12px;min-height:44px}
.dirty-frisbee-lobby .course-selection{order:-1;text-align:left;min-width:0;flex:1;margin-right:auto;font-size:12px;font-weight:800;color:var(--df-ink);text-transform:uppercase;letter-spacing:.5px}
.dirty-frisbee-lobby .course-controls button,.dirty-frisbee-lobby .hole-controls button{min-width:44px;width:44px;height:44px;background:var(--df-cream);color:var(--df-ink);border:2px solid var(--df-ink);border-radius:3px;font:26px/1 Arial,sans-serif}
.dirty-frisbee-lobby .course-controls button:hover:not(:disabled){background:var(--df-yellow)}
.dirty-frisbee-lobby .course-viewport{flex:1;min-height:0;overflow:hidden;padding:0;border:2px solid var(--df-ink);border-radius:5px;background:var(--df-ink);box-shadow:5px 5px 0 #172d4814}
.dirty-frisbee-lobby .course-grid{height:100%;gap:20px}
.dirty-frisbee-lobby .course-slide{flex:0 0 100%;height:auto;opacity:1;min-height:0}
.dirty-frisbee-lobby .course-browser .course{min-height:420px;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.9fr);grid-template-rows:minmax(245px,1fr) auto;border:0;border-radius:0;box-shadow:none;background:var(--df-ink);color:var(--df-cream);transform:none}
.dirty-frisbee-lobby .course-browser .course-art{grid-column:1;grid-row:1;height:100%;min-height:245px;padding-bottom:57px;border-right:1px solid #fff5d32b;background:#193c46}
.dirty-frisbee-lobby .course-browser .london .course-art{padding-bottom:0}
.dirty-frisbee-lobby .course-art:after{background:linear-gradient(0deg,#172d4822,transparent 30%,#172d4888);pointer-events:none}
.dirty-frisbee-lobby .course-browser .course-art canvas{width:100%;height:100%}
.dirty-frisbee-lobby .course-browser .location{left:14px;top:16px;font-size:8px;letter-spacing:1px;color:#fff5d3;max-width:calc(100% - 28px);line-height:1.5}
.dirty-frisbee-lobby .course-browser .hole{right:14px;bottom:66px;font:italic 900 62px/1 Impact,"Arial Black",sans-serif;color:#fff5d38c;letter-spacing:-1px}
.dirty-frisbee-lobby .course-browser .london .hole{bottom:15px}
.dirty-frisbee-lobby .hole-controls{min-height:57px;padding:6px 9px;background:#11233b;border-top:1px solid #fff5d32b}
.dirty-frisbee-lobby .hole-controls button{background:#223f5d;border-color:#617187;color:var(--df-cream);width:40px;min-width:40px;height:44px}
.dirty-frisbee-lobby .hole-controls button:hover{background:var(--df-orange);color:var(--df-ink);border-color:var(--df-orange)}
.dirty-frisbee-lobby .hole-controls span{font-size:10px;color:var(--df-cream)}
.dirty-frisbee-lobby .course-browser .card-body{grid-column:2;grid-row:1/3;min-width:0;overflow:visible;padding:26px 22px;display:flex;flex-direction:column;justify-content:center;align-content:initial}
.dirty-frisbee-lobby .card-body>.eyebrow{color:var(--df-yellow);font-size:8px;font-weight:700;letter-spacing:1px;line-height:1.5}
.dirty-frisbee-lobby .course-browser .card-body>h2{font:italic 900 clamp(28px,2.6vw,40px)/1 Impact,"Arial Black",sans-serif;margin:9px 0 15px;color:var(--df-cream);letter-spacing:-.5px}
.dirty-frisbee-lobby .course-browser .layout{font-size:10px;line-height:1.7;color:#b6cbd7;min-height:0;margin:0 0 18px}
.dirty-frisbee-lobby .course-browser .stats{gap:15px;border-top:1px solid #fff5d32b;padding-top:15px;margin-bottom:20px;font-size:8px;color:#b6cbd7}
.dirty-frisbee-lobby .stats b{font-size:20px;font-weight:800;color:var(--df-cream)}
.dirty-frisbee-lobby .course-browser .mp-course-start{order:6;margin:0;min-height:50px;background:var(--df-orange);color:var(--df-ink);border:2px solid #fff5d3;border-radius:3px;box-shadow:3px 3px 0 #fff5d32e;font-size:12px;text-transform:uppercase;letter-spacing:.6px;font-weight:900}
.dirty-frisbee-lobby .course-browser .mp-course-start:hover:not(:disabled){background:var(--df-yellow)}
.dirty-frisbee-lobby .course-browser .progress{order:7;color:#b6cbd7;font-size:10px;line-height:1.65;margin-top:14px}
.dirty-frisbee-lobby .course-browser .play-link{order:5;background:transparent;color:var(--df-cream);border:1px solid #fff5d34a;border-radius:3px;min-height:44px;font-size:11px;margin:10px 0 0;padding:10px}
.dirty-frisbee-lobby .course-browser .round-link,.dirty-frisbee-lobby .course-browser .mp-course-note{display:none}
.dirty-frisbee-lobby .course-browser .course-low-scores{grid-column:1;grid-row:2;height:auto;min-height:130px;border-top:1px solid #fff5d32b;border-right:1px solid #fff5d32b;background:#11233b;padding:15px}
.dirty-frisbee-lobby .low-scores-heading h3{font-size:12px;color:var(--df-yellow);text-transform:uppercase;letter-spacing:.6px}
.dirty-frisbee-lobby .low-scores-heading>span,.dirty-frisbee-lobby .low-score-status,.dirty-frisbee-lobby .low-score-note,.dirty-frisbee-lobby .low-score-rank{color:#b6cbd7}
.dirty-frisbee-lobby .low-score-name,.dirty-frisbee-lobby .low-score-total{color:var(--df-cream)}
.dirty-frisbee-lobby .low-score-relative{color:var(--df-yellow)}
.dirty-frisbee-lobby .low-score-row{border-color:#fff5d320}
.dirty-frisbee-lobby .low-score-retry{background:#223f5d;color:var(--df-cream);border-color:#617187;border-radius:3px;font-size:11px}
.dirty-frisbee-lobby .course-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:15px;flex:none}
.dirty-frisbee-lobby .course-tabs button{min-height:46px;min-width:0;padding:9px 8px;background:transparent;color:var(--df-ink);border:1px solid #172d4860;border-radius:3px;font-size:10px;font-weight:700;line-height:1.3;white-space:normal}
.dirty-frisbee-lobby .course-tabs button[aria-pressed=true]{background:var(--df-ink);color:var(--df-cream);border-color:var(--df-ink);box-shadow:inset 0 -3px 0 var(--df-orange)}
.dirty-frisbee-lobby .course-hint{display:block;font-size:10px;color:#52626a;text-align:left;margin:11px 0 0;line-height:1.5}
.dirty-frisbee-lobby .lobby-footer{display:flex;align-items:center;gap:30px;justify-content:space-between;border-top:2px solid var(--df-ink);margin:42px 0 0;padding:24px 0 0;position:relative;color:#52626a;font-size:10px;min-height:0}
.dirty-frisbee-lobby .lobby-footer-caption{display:block;color:#52626a;line-height:1.7;font-size:10px}
.dirty-frisbee-lobby .lobby-footer-caption strong{color:var(--df-ink);font-style:italic;letter-spacing:.4px;font-size:14px;font-weight:900}
.dirty-frisbee-lobby .course-notes{margin-left:auto;width:auto}
.dirty-frisbee-lobby .course-notes summary{color:var(--df-ink);min-height:44px;font-size:11px;gap:15px}
.dirty-frisbee-lobby .course-notes-content{position:absolute;z-index:10;right:0;bottom:65px;width:min(680px,100%);max-height:60dvh;overflow:auto;padding:22px;background:#fff5d3;border:2px solid var(--df-ink);border-radius:4px;box-shadow:6px 6px 0 #172d4826;color:#52626a;font-size:11px;line-height:1.7}
.dirty-frisbee-lobby .course-notes-content p{max-width:none}
.dirty-frisbee-lobby .mp-dialog{color-scheme:dark;color:var(--df-cream);background:var(--df-ink);border:3px solid var(--df-orange);border-radius:6px;box-shadow:8px 8px 0 #0004}
.dirty-frisbee-lobby .mp-dialog .eyebrow{color:var(--df-yellow)}
.dirty-frisbee-lobby .mp-dialog h2{font:italic 900 30px/1.1 Impact,"Arial Black",sans-serif;color:var(--df-cream)}
.dirty-frisbee-lobby .mp-dialog p,.dirty-frisbee-lobby .mp-dialog small{color:#c2d0d8}
/* Gameplay: cabinet instrumentation. Geometry and positioning stay with Mando. */
body.course-overlay-play{--df-panel:#172d48f5;--df-border:#ffe3a994;color-scheme:dark;background:var(--df-ink)}
.course-overlay-play button{font-weight:700}
.course-overlay-play :is(button,a,input,select):focus-visible{outline:3px solid var(--df-yellow);outline-offset:3px}
.course-overlay-play .hole-title{filter:drop-shadow(0 2px 3px #14263bbb)}
.course-overlay-play .hole-title h1{font-family:Impact,"Arial Black",sans-serif;font-style:italic;font-weight:900;letter-spacing:.2px;color:var(--df-cream);text-shadow:2px 2px 0 #10233f}
.course-overlay-play .hole-title h1 span{color:var(--df-yellow);border-color:var(--df-orange)}
.course-overlay-play .hole-title .eyebrow{color:var(--df-yellow)}
.course-overlay-play .hole-title p{color:var(--df-cream)}
.course-overlay-play :is(.course-menu-button,.course-overlay-button,.advanced-toggle,.map-button,.camera-controls,.lean-hud,.shot-planner,.shot-conditions,.shot-form-tray button,.course-turn-cue,.gesture-hud,.scorecard){background:var(--df-panel);color:var(--df-cream);border-color:var(--df-border);border-radius:5px;box-shadow:3px 4px 0 #14263b30}
.course-overlay-play .course-menu-button{border:2px solid var(--df-ink);background:var(--df-yellow);color:var(--df-ink);text-transform:uppercase;letter-spacing:.5px;box-shadow:3px 3px 0 #172d4880}
.course-overlay-play .course-overlay-button[data-mode="scored"]{background:#172d48f5;border-color:var(--df-orange)}
.course-overlay-play :is(.course-overlay-button strong,.course-overlay-button[data-mode="scored"] strong){color:var(--df-yellow);font-style:italic;font-weight:900}
.course-overlay-play :is(.overlay-eyebrow,.course-overlay-button small,.stance-cue,.planner-heading,.selected-disc-stats,.planner-flight-summary,.planner-ribbon-hint,#plannerReleaseHint,.lean-clearance-note,.lean-fine){color:#c4d3e0}
.course-overlay-play .map-button span{background:#172d48;color:var(--df-cream);letter-spacing:.6px}
.course-overlay-play .camera-controls button{color:#d1dde5;background:#172d48;border-color:#60758a;border-radius:4px}
.course-overlay-play .camera-controls button[aria-pressed=true]{color:var(--df-ink);background:var(--df-yellow);border-color:var(--df-yellow)}
.course-overlay-play :is(.shot-form-options button[aria-checked=true],.lean-options button[aria-pressed=true]){background:var(--df-yellow);color:var(--df-ink);border-color:var(--df-yellow)}
.course-overlay-play :is(.lean-options button,#leanFindClear,#plannerSuggest,.planner-aim-row button){background:#244968;color:var(--df-cream);border-color:#7892a3;border-radius:4px}
.course-overlay-play .planner-settings label{color:#c4d3e0}
.course-overlay-play .planner-settings output{color:var(--df-yellow);font-weight:800}
.course-overlay-play input[type=range]{accent-color:var(--df-orange)}
.course-overlay-play .shot-planner{border-top:4px solid var(--df-orange)}
.course-overlay-play #throw{min-height:54px;border:2px solid #ffe9aa;border-radius:5px;background:var(--df-orange);color:#13283e;font-size:18px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;box-shadow:0 4px 0 #9c3b20,0 7px 16px #0003;transition:background-color .12s,transform .12s,box-shadow .12s}
.course-overlay-play #throw:hover:not(:disabled){background:var(--df-yellow)}
.course-overlay-play #throw:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #9c3b20}
.course-overlay-play #throw:disabled{opacity:.62}
.course-overlay-play .shot-power-heading{background:var(--df-ink);padding:7px 8px;color:var(--df-yellow);text-shadow:none;border-radius:3px;font-size:10px;font-weight:900;letter-spacing:1px}
.course-overlay-play .shot-power-rail #plannerMeter,.course-overlay-play .shot-power-rail #plannerMeter[data-stage=power]{background:repeating-linear-gradient(0deg,transparent 0 16px,#172d4840 16px 20px),linear-gradient(to top,#e77b2c 0%,#f8b836 44%,#ffdf63 80%,#fff0a5);border:3px solid #fff0b3;border-radius:6px;box-shadow:0 0 0 4px #172d48,4px 7px 0 #172d4840}
.course-overlay-play .shot-power-rail #plannerMeter[data-stage=timing]{background:repeating-linear-gradient(0deg,transparent 0 16px,#172d4840 16px 20px),linear-gradient(to top,#3d6482,#719f9d 50%,#b5d78c);border-radius:6px}
.course-overlay-play .shot-power-rail #plannerMeter .planner-perfect-zone{background:#fff4c4a3;border:2px solid #fff9de;box-shadow:0 0 0 2px #172d4870;border-radius:3px}
.course-overlay-play .shot-power-rail #plannerNeedle{background:#fff9e4;border-color:#172d48;border-radius:2px;box-shadow:0 0 0 2px #172d48,0 3px 6px #0006}
.course-overlay-play .shot-power-rail #plannerTimingValue{background:var(--df-ink);color:var(--df-yellow);border:2px solid #ffe3a994;border-radius:4px;font-weight:900}
.course-overlay-play .shot-power-rail #plannerMeter[data-stage=power]::before,.course-overlay-play .shot-power-rail #plannerMeter[data-stage=power]::after{color:var(--df-cream);text-shadow:0 2px 2px var(--df-ink),1px 0 2px var(--df-ink)}
.course-overlay-play .course-turn-cue{border-width:2px;color:var(--df-cream)}
.course-overlay-play .course-turn-cue[data-urgency=urgent]{background:#79351e;border-color:var(--df-orange);color:#fff0b8}
.course-overlay-play .controls{background:#172d48fa;border-left:3px solid var(--df-orange);color:var(--df-cream)}
.course-overlay-play .controls-heading h2{font-family:Impact,"Arial Black",sans-serif;font-style:italic;letter-spacing:.5px}
.course-overlay-play .controls :is(p,small,label){color:#c4d3e0}
.course-overlay-play .controls button,.course-overlay-play .controls select{background:#244968;color:var(--df-cream);border-color:#7892a3;border-radius:4px}
.course-overlay-play :is(dialog,.veil>div){background:var(--df-ink);border:3px solid var(--df-yellow);border-radius:7px;box-shadow:8px 8px 0 #0d203840;color:var(--df-cream)}
.course-overlay-play dialog::backdrop{background:#10233dcc;backdrop-filter:blur(4px)}
.course-overlay-play :is(dialog h2,.veil h2){font-family:Impact,"Arial Black",sans-serif;font-style:italic;font-weight:900;letter-spacing:.5px;color:var(--df-yellow)}
.course-overlay-play :is(dialog p,dialog small,.veil p,.veil small){color:#c4d3e0}
.course-overlay-play :is(dialog .primary,.veil .primary){min-height:48px;background:var(--df-orange);color:var(--df-ink);border:2px solid var(--df-yellow);border-radius:4px;font-weight:900}
.course-overlay-play :is(dialog button,dialog a){border-radius:4px}
.course-overlay-play :is(.course-menu-actions>a,.course-menu-actions>button,.course-menu-actions .mando-gamertag-button){background:#244968;color:var(--df-cream);border-color:#7892a3}
.course-overlay-play #finished{background:#10233dbb;backdrop-filter:blur(5px)}
.course-overlay-play #finished>div{border:4px solid var(--df-ink);border-top:11px solid var(--df-orange);background:var(--df-yellow);color:var(--df-ink);padding:34px 30px;box-shadow:8px 8px 0 #172d48;max-width:min(480px,calc(100vw - 36px));transform:rotate(-2deg);animation:df-result-in .35s cubic-bezier(.2,1.5,.6,1)}
.course-overlay-play #finished .eyebrow{font-size:11px;font-weight:900;letter-spacing:2px;color:#9b3b1b}
.course-overlay-play #finishScore{font-size:clamp(44px,7vw,74px);line-height:1;margin:15px 0;color:var(--df-ink);text-shadow:2px 3px 0 #fff5d3}
.course-overlay-play #finished p,.course-overlay-play #finished small{color:#384858}
.course-overlay-play #finished .primary{background:var(--df-ink);color:var(--df-cream);border-color:var(--df-ink);min-height:52px;font-size:14px;box-shadow:3px 3px 0 var(--df-orange)}
.course-overlay-play #finished a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;color:var(--df-ink);font-weight:800}
.course-overlay-play .hole-boot{background:#172d48;color:var(--df-cream)}
.course-overlay-play .hole-boot-copy{background:#172d48ed;border:2px solid var(--df-yellow);border-radius:5px}
.course-overlay-play .hole-boot-copy strong{font-family:Impact,"Arial Black",sans-serif;font-size:30px;font-style:italic;color:var(--df-yellow)}
.course-overlay-play .hole-boot-copy p{color:#c4d3e0}
.course-overlay-play .hole-boot-copy a{color:var(--df-yellow)}
@keyframes df-result-in{from{opacity:0;transform:rotate(-5deg) scale(.85)}to{opacity:1;transform:rotate(-2deg) scale(1)}}
@media(max-width:1150px){
 .df-header nav{gap:20px}.dirty-frisbee-lobby .df-hero{min-height:520px;padding:45px 0}.df-hero-actions{gap:18px}.df-start{gap:24px}.df-browse{font-size:11px}.df-how{padding:20px;gap:18px}.df-key-hint{display:none}
 .dirty-frisbee-lobby .lobby-layout{grid-template-columns:minmax(0,1fr) 285px;gap:20px}.dirty-frisbee-lobby .course-browser .course{grid-template-columns:minmax(0,1fr) minmax(205px,.9fr)}.dirty-frisbee-lobby .course-browser .card-body{padding:22px 16px}.dirty-frisbee-lobby .course-browser .stats{gap:11px}.dirty-frisbee-lobby .stats b{font-size:18px}
}
@media(max-width:900px){
 .dirty-frisbee-lobby>.df-header{padding:0 24px;height:74px;min-height:74px}.df-header nav{gap:18px}.df-header nav>a:not(.df-header-play){display:none}.df-header .brand{font-size:18px}.df-header .brand svg{width:35px;height:35px}
 .dirty-frisbee-lobby main.lobby-page{padding-left:24px;padding-right:24px}.dirty-frisbee-lobby .df-hero{min-height:470px;padding:40px 0}.dirty-frisbee-lobby .df-hero h1{font-size:clamp(64px,9vw,82px)}.df-ticket{font-size:8px;letter-spacing:1px;gap:8px}.dirty-frisbee-lobby .df-hero .df-tagline{font-size:17px}.df-hero-actions{gap:15px}.df-start{font-size:14px;min-height:56px;padding:13px 18px}.df-sticker{width:86px;height:86px;font-size:17px;right:1%}.df-art-label{font-size:8px;padding:8px;bottom:2%;right:12%}
 .dirty-frisbee-lobby .lobby-layout{grid-template-columns:minmax(0,1fr);gap:26px}.dirty-frisbee-lobby .course-browser{min-height:470px}.dirty-frisbee-lobby .course-browser .course{grid-template-columns:minmax(0,1.1fr) minmax(245px,1fr);min-height:380px}.dirty-frisbee-lobby .course-browser .card-body{padding:28px}.dirty-frisbee-lobby .course-browser .card-body>h2{font-size:35px}.dirty-frisbee-lobby .course-browser .course-art{min-height:240px}.dirty-frisbee-lobby .mp-lobby{padding:25px;max-height:none}.dirty-frisbee-lobby .mp-lobby-heading{align-items:center}.dirty-frisbee-lobby .mp-lobby-scroll{max-height:340px}.dirty-frisbee-lobby .mp-self .mp-button{min-height:44px;font-size:11px}.dirty-frisbee-lobby .mp-player-label strong{font-size:13px}.dirty-frisbee-lobby .mp-lobby .mp-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dirty-frisbee-lobby .mp-empty{grid-column:1/-1}.dirty-frisbee-lobby .mp-self{padding:13px}.dirty-frisbee-lobby .mp-lobby-heading h2{font-size:30px}
 .df-select-heading{margin-top:39px}.df-select-heading h2{font-size:33px}.dirty-frisbee-lobby .course-tabs button{font-size:11px}.dirty-frisbee-lobby .course-browser .progress{font-size:11px}
}
@media(max-width:620px){
 .dirty-frisbee-lobby>.df-header{height:65px;min-height:65px;padding:0 18px;border-bottom-width:4px}.df-header .brand{font-size:15px;gap:4px}.df-header .brand svg{width:32px}.df-header .df-header-play{font-size:9px;padding:0 11px;min-height:37px;gap:14px}.dirty-frisbee-lobby main.lobby-page{padding:0 18px 25px}
 .dirty-frisbee-lobby .df-hero{grid-template-columns:1fr;padding:36px 0 22px;min-height:0}.df-hero-copy{max-width:none}.df-ticket{font-size:8px;padding:7px 9px}.dirty-frisbee-lobby .df-hero h1{font-size:clamp(74px,18vw,107px);line-height:.86;letter-spacing:-2.5px;margin:25px 0 21px;max-width:100%}.dirty-frisbee-lobby .df-hero .df-tagline{font-size:18px;line-height:1.35;margin:21px 0 22px}.dirty-frisbee-lobby .df-hero .df-quick-note{font-size:9px;margin-top:16px;line-height:1.5}.df-start{font-size:14px;min-height:55px;gap:24px;padding:13px 17px}.df-browse{font-size:11px;gap:10px}.df-hero-actions{gap:20px}.df-hero-art{margin:8px 0 -3px 0;max-width:500px;width:100%;align-self:center;justify-self:center}.df-hero-art img{max-height:345px}.df-sticker{right:5%;top:3%;width:82px;height:82px;font-size:16px}.df-art-label{bottom:3%;right:20%;font-size:8px}
 .df-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:16px 13px;gap:17px 12px;border-top-width:4px}.df-how-label{grid-column:1/-1;font-size:10px;letter-spacing:1px}.df-how-label br{display:none}.df-how>div{align-items:start;gap:7px}.df-how b{font-size:26px}.df-how div>span{font-size:10px;letter-spacing:.3px}.df-how small{font-size:8px;line-height:1.4;max-width:70px;margin-top:4px}.df-assist-note{font-size:9px;text-align:left}
 .df-select-heading{display:block;margin:35px 0 23px}.df-select-heading h2{font-size:31px;line-height:1.05}.df-select-heading p{font-size:11px;margin-top:12px;line-height:1.5}.df-select-heading p br{display:none}.dirty-frisbee-lobby .eyebrow{font-size:9px}
 .dirty-frisbee-lobby .course-browser{min-height:0}.dirty-frisbee-lobby .course-browser .course{display:flex;flex-direction:column;min-height:0}.dirty-frisbee-lobby .course-browser .course-art{flex:none;min-height:0;height:242px;order:0;border-right:0}.dirty-frisbee-lobby .course-browser .course-art canvas{height:100%}.dirty-frisbee-lobby .course-browser .hole{bottom:65px;font-size:58px}.dirty-frisbee-lobby .course-browser .location{font-size:8px;top:17px;left:17px}.dirty-frisbee-lobby .course-browser .card-body{flex:1;order:1;padding:23px 20px}.dirty-frisbee-lobby .course-browser .card-body>h2{font-size:34px;margin:9px 0 12px}.dirty-frisbee-lobby .course-browser .layout{font-size:10px;margin-bottom:15px}.dirty-frisbee-lobby .course-browser .stats{font-size:9px;gap:20px;margin-bottom:17px}.dirty-frisbee-lobby .stats b{font-size:22px}.dirty-frisbee-lobby .course-browser .mp-course-start{font-size:12px;min-height:50px}.dirty-frisbee-lobby .course-browser .progress{font-size:10px;line-height:1.6}.dirty-frisbee-lobby .course-browser .course-low-scores{order:2;min-height:0;padding:17px 20px;border-right:0}.dirty-frisbee-lobby .course-low-scores .low-score-status{max-width:none}.dirty-frisbee-lobby .low-score-note{font-size:9px;line-height:1.6}.dirty-frisbee-lobby .course-tabs{gap:6px}.dirty-frisbee-lobby .course-tabs button{font-size:9px;padding:9px 5px}.dirty-frisbee-lobby .course-selection{font-size:11px;letter-spacing:0}.dirty-frisbee-lobby .course-hint{font-size:9px;margin-top:11px}.dirty-frisbee-lobby .mp-lobby{padding:20px 16px}.dirty-frisbee-lobby .mp-lobby .mp-list{grid-template-columns:1fr}.dirty-frisbee-lobby .mp-lobby h3{font-size:12px}.dirty-frisbee-lobby .mp-lobby-scroll{max-height:360px}.dirty-frisbee-lobby .mp-help,.dirty-frisbee-lobby .mp-privacy{font-size:11px}
 .dirty-frisbee-lobby .lobby-footer{align-items:start;flex-direction:column;gap:12px;margin-top:32px;padding-top:20px}.dirty-frisbee-lobby .course-notes{margin-left:0;width:100%}.dirty-frisbee-lobby .course-notes-content{bottom:60px;padding:18px;font-size:10px}.dirty-frisbee-lobby .course-notes summary{font-size:10px}
 .course-overlay-play #throw{min-height:49px;font-size:15px}.course-overlay-play #finished>div{padding:28px 21px}.course-overlay-play #finishScore{font-size:52px}
}
@media(max-width:360px){
 .dirty-frisbee-lobby>.df-header{padding:0 13px}.df-header .brand{font-size:13px}.df-header .brand svg{width:27px}.df-header .df-header-play{padding:0 9px;gap:8px;font-size:8px}.dirty-frisbee-lobby main.lobby-page{padding-left:14px;padding-right:14px}.dirty-frisbee-lobby .df-hero h1{font-size:71px}.df-hero-actions{gap:13px}.df-start{gap:19px;padding:12px 14px;font-size:13px}.df-browse{font-size:10px;gap:5px}.df-how{padding:15px 10px;gap:15px 9px}.df-how b{font-size:23px}.df-how>div{gap:5px}.df-how div>span{font-size:9px}.df-how small{font-size:8px}.df-sticker{width:72px;height:72px;font-size:15px}.df-select-heading h2{font-size:28px}.dirty-frisbee-lobby .course-tabs button{font-size:8px}.dirty-frisbee-lobby .course-browser .card-body{padding:21px 17px}.dirty-frisbee-lobby .course-browser .stats{gap:15px}.dirty-frisbee-lobby .mp-lobby{padding:18px 12px}.dirty-frisbee-lobby .mp-self{padding:10px 8px}.dirty-frisbee-lobby .mp-self .mp-button{font-size:10px;padding:7px}
}
@media(prefers-reduced-motion:reduce){
 .dirty-frisbee-lobby *, .dirty-frisbee-lobby *::before,.dirty-frisbee-lobby *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
 .df-start:hover{transform:rotate(-1deg)}.course-overlay-play #throw,.course-overlay-play #finished>div{animation:none;transition:none}
}
/* Dynamic identity and phone controls keep the same visual language. */
.dirty-frisbee-lobby button.mando-gamertag-button{background:#244968;border-color:#7892a3;color:var(--df-cream);border-radius:3px;font-size:10px;max-width:150px;min-height:42px}
:is(.dirty-frisbee-lobby,.course-overlay-play) #mandoGamertagDialog{background:var(--df-ink);color:var(--df-cream);border:3px solid var(--df-yellow);border-radius:6px;box-shadow:8px 8px 0 #0004}
:is(.dirty-frisbee-lobby,.course-overlay-play) #mandoGamertagDialog h2{font:italic 900 31px/1.1 Impact,"Arial Black",sans-serif;letter-spacing:.3px;color:var(--df-yellow)}
:is(.dirty-frisbee-lobby,.course-overlay-play) #mandoGamertagDialog p,:is(.dirty-frisbee-lobby,.course-overlay-play) #mandoGamertagDialog label{color:#d1dde5}
:is(.dirty-frisbee-lobby,.course-overlay-play) #mandoGamertagDialog input{border:2px solid #7892a3;border-radius:4px;background:#0f233b;color:var(--df-cream)}
:is(.dirty-frisbee-lobby,.course-overlay-play) #mandoGamertagDialog button{background:var(--df-orange);color:var(--df-ink);border:2px solid var(--df-yellow);border-radius:4px;font-weight:900}
:is(.dirty-frisbee-lobby,.course-overlay-play) #mandoGamertagDialog button[type=button]{color:var(--df-cream);background:#244968;border-color:#7892a3}
.course-overlay-play.mobile-course :is(.mobile-topbar,.mobile-dock,.mobile-phase-cue){background:var(--df-ink);color:var(--df-cream);border-color:#ffe3a994;border-radius:5px}
.course-overlay-play.mobile-course .mobile-topbar{border-bottom:3px solid var(--df-orange)}
.course-overlay-play.mobile-course .mobile-course-title{font-style:italic;font-weight:900;color:var(--df-yellow)}
.course-overlay-play.mobile-course .mobile-course-stats{color:#c4d3e0}
.course-overlay-play.mobile-course .mobile-tool{color:var(--df-cream);background:#244968;border:1px solid #7892a3;border-radius:4px;font-weight:700}
.course-overlay-play.mobile-course .mobile-dock{border-top:3px solid var(--df-orange)}
.course-overlay-play.mobile-course .mobile-dock #throw{min-height:48px;font-size:16px}
.course-overlay-play .shot-click-feedback{background:var(--df-ink);border:2px solid var(--df-orange);color:var(--df-cream);border-radius:4px;font-weight:700}
@media(max-width:900px){.dirty-frisbee-lobby>.df-header.mando-gamertag-header{align-items:center}.df-header nav{column-gap:10px}.dirty-frisbee-lobby .df-header button.mando-gamertag-button{max-width:125px;font-size:9px}}
@media(max-width:620px){
 .dirty-frisbee-lobby>.df-header.mando-gamertag-header{display:grid;grid-template-columns:1fr auto;gap:8px 12px;height:auto;min-height:65px;padding-top:10px;padding-bottom:10px}
 .df-header.mando-gamertag-header nav{display:contents}.df-header.mando-gamertag-header .brand{grid-column:1;grid-row:1}.df-header.mando-gamertag-header .df-header-play{grid-column:2;grid-row:1}
 .dirty-frisbee-lobby .df-header button.mando-gamertag-button{grid-column:1/-1;justify-self:start;max-width:100%;font-size:9px;min-height:30px;padding:6px 9px;border-color:#fff5d344;background:transparent}
}
@media(max-height:560px) and (orientation:landscape){.course-overlay-play.mobile-course .mobile-dock #throw{min-height:44px;font-size:15px}}

/* Shot cinema is a presentation state, not a game-state override. Do not set
   hidden on any planning node: setup restores the app's own exact visibility. */
body.course-overlay-play:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) :is(
 .hole-title,.shot-conditions,.camera-controls,.camera-travel-hint,
 .lean-hud,.edge-lean,.course-left-overlays,#courseDiscRack,.collection-open-button,
 #shotFormTray,#shotFormOptions,.planner-heading,.selected-disc-stats,
 .planner-flight-summary,.planner-settings,.planner-ribbon-hint,.plan-ribbon-handles,
 .shot-values,#plannerSuggest,#advancedControls:not([data-open="true"]),.advanced-toggle,.lie-marker,.scene-bottom,
 .course-turn-cue,#mpTurnOverlay,#mpTurnAnnouncement,.mobile-topbar,.mobile-tools,
 .mobile-camera-row,.mobile-phase-cue,#shotClickFeedback,#finished,.round-finish
){display:none!important}
/* During the two timing clicks, leave only the existing meter and release
   action. The same real button moves into the phone dock; no cloned controls. */
body.course-overlay-play[data-arcade-shot-phase="timing"]:not(.mobile-course) #shotPlanner{
 left:auto;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));
 width:min(260px,calc(100% - 32px));padding:0;gap:6px;border:0;background:transparent;box-shadow:none;grid-template-columns:minmax(0,1fr)
}
body.course-overlay-play[data-arcade-shot-phase="timing"] .planner-release-row{margin:0}
body.course-overlay-play[data-arcade-shot-phase="timing"] #plannerReleaseHint{
 margin:0;padding:6px 8px;border-radius:4px;background:#172d48de;color:var(--df-cream);font-size:10px;line-height:1.35
}
body.course-overlay-play[data-arcade-shot-phase="timing"]:not(.mobile-course) #shotPowerRail{
 right:94px;bottom:calc(116px + env(safe-area-inset-bottom,0px))
}
body.course-overlay-play[data-arcade-shot-phase="timing"]:not(.mobile-course) #plannerMeter{
 height:clamp(90px,calc(100dvh - 260px),440px);min-height:0
}
body.course-overlay-play[data-arcade-shot-phase="timing"] .df-announcer{display:none!important}
/* A live flight includes the cinematic landing tail, even when authoritative
   multiplayer state already says ready. Nothing here can reopen the HUD. */
body.course-overlay-play[data-arcade-shot-phase="flight"] :is(
 #shotPlanner,#shotPowerRail,.planner-timing,.planner-release-row,#plannerReleaseHint,
 .gesture-hud,.mobile-dock,.mobile-meter-slot,.mobile-cancel,.release-result,
 .performance-hud,.performance-overlay,.perf-hud,.debug-hud,.debug-overlay,
 #performanceHud,#perfHud,#debugHud
){display:none!important}
/* Menu remains small, keyboard reachable and a full 44 px touch target on
   every layout. The phone's usual full-width top bar is not needed in cinema. */
body.course-overlay-play:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) #pause,
body.course-overlay-play #arcadeSkipFlight:not([hidden]){
 position:fixed;display:inline-flex!important;align-items:center;justify-content:center;z-index:8;
 top:calc(10px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));
 min-width:44px;min-height:44px;width:auto;padding:8px 12px;margin:0;border:1px solid #fff5d34d;border-radius:5px;
 background:#172d48b8;color:var(--df-cream);box-shadow:none;font:700 11px/1.2 system-ui,sans-serif;letter-spacing:.03em;touch-action:manipulation
}
body.course-overlay-play #arcadeSkipFlight:not([hidden]){left:auto;right:calc(12px + env(safe-area-inset-right,0px))}
body.course-overlay-play #arcadeSkipFlight[hidden]{display:none!important}
body.course-overlay-play:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) #pause kbd{display:none}
body.course-overlay-play.mobile-course:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]){--mobile-top:0px;--mobile-bottom:0px}
body.course-overlay-play.mobile-course:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) .play>#scene{top:0;height:100%!important}
body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] .mobile-dock{
 left:auto;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));
 width:min(310px,calc(100% - 24px));height:auto;min-height:0;padding:0;gap:6px;border:0;background:transparent;box-shadow:none
}
body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] .mobile-cancel:not([hidden]){
 top:calc(10px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));bottom:auto;
 min-height:44px;min-width:44px;background:#172d48b8;border-color:#fff5d34d;font-size:11px
}
body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] #shotPowerRail{
 left:calc(18px + env(safe-area-inset-left,0px));right:auto;bottom:calc(120px + env(safe-area-inset-bottom,0px));visibility:visible
}
body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] #plannerMeter{
 height:clamp(64px,calc(100dvh - 250px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)),440px);min-height:0
}
@media(max-height:400px) and (orientation:landscape){
 body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] #shotPowerRail{bottom:calc(12px + env(safe-area-inset-bottom,0px))}
 body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] #plannerMeter{height:clamp(64px,calc(100dvh - 140px),220px)}
}
body.course-overlay-play[data-arcade-shot-phase="timing"][data-input-mode="planner"] .gesture-hud{display:none!important}

/* Live map stays visible during timing and flight; no predicted path. */
body.course-overlay-play:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) .map-stack{
 display:block!important;position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));
 width:clamp(104px,16vw,186px);max-width:30vw;z-index:6;pointer-events:none
}
body.course-overlay-play:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) .map-stack .map-button{
 display:block!important;width:100%;padding:0;border:2px solid #fff5d388;border-radius:8px;overflow:hidden;pointer-events:auto;min-height:44px
}
body.course-overlay-play:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) .map-stack .map-button canvas{
 display:block!important;width:100%;height:clamp(84px,18vh,150px)
}
body.course-overlay-play:is([data-arcade-shot-phase="timing"],[data-arcade-shot-phase="flight"]) .map-stack .map-button>span{display:none}
body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] #shotPowerRail{display:flex!important}
body.course-overlay-play.mobile-course[data-arcade-shot-phase="timing"] .mobile-cancel:not([hidden]),
body.course-overlay-play #arcadeSkipFlight:not([hidden]){right:auto;left:calc(70px + env(safe-area-inset-left,0px))}
#paused:has(#arcadeRenderFault)>:not(#arcadeRenderFault){display:none!important}
#arcadeRenderFault{padding:16px;border:2px solid #ff8c42;background:#fff5d3;color:#231b24;border-radius:12px;position:relative;z-index:20}
#arcadeRenderFault p{color:inherit;font-weight:700}#arcadeRenderFault button{min-height:44px;min-width:88px;background:#fb6326;color:#231b24}
