@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');

:root{color-scheme:dark;--ink:#081d23;--panel:#102a30;--line:#c2ded41a;--cream:#f2efe1;--muted:#8ba8a7;--gold:#e8c792;--mint:#a6d6c3;--green:#153c37;--orange:#e8c792}
*{box-sizing:border-box}[hidden]{display:none!important}html{min-height:100%;background:var(--ink)}
body{margin:0;min-width:320px;min-height:100vh;color:var(--cream);font-family:'DM Sans',sans-serif;background:radial-gradient(ellipse at 76% 0,#25423e45,transparent 52%),radial-gradient(ellipse at 4% 47%,#173d4645,transparent 45%),#081d23}
button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s}button,input{color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{cursor:not-allowed}a{color:inherit}button svg{width:17px;height:17px;flex-shrink:0}
.ambient-glow{position:absolute;top:-240px;right:10%;width:640px;height:500px;border-radius:50%;background:#95c7a210;filter:blur(80px);pointer-events:none;z-index:-1}
.site-header{max-width:1640px;margin:0 auto;padding:22px 4%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;gap:11px;align-items:center;color:var(--cream);text-decoration:none;font:500 25px/1 'Outfit',sans-serif;letter-spacing:-.8px;flex-shrink:0}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border:1px solid #d8d8b348;border-radius:50%;color:var(--gold);background:linear-gradient(140deg,#b6d0ba15,#b6d0ba00)}.brand-mark svg{width:29px;height:29px}.brand-subtitle{display:block;margin-top:7px;font:600 7px/1 'DM Sans',sans-serif;letter-spacing:2.2px;color:#9ab3aa}
.header-right{display:flex;align-items:center;gap:10px}.edition{font-size:8px;font-weight:500;letter-spacing:1.6px;color:#7f9c99;margin-right:17px}.mode-button,#sound{min-height:36px;border:1px solid #c0d6cc28;border-radius:30px;padding:9px 15px;background:#c6ded008;color:#dce5d9;font-size:10px;font-weight:600;white-space:nowrap}.mode-button:hover,#sound:hover{border-color:#d2d8b65c;background:#c6ded015}#sound{color:#a8c0b9}
main{max-width:1640px;padding:0 4%;margin:0 auto}.scene-intro{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:32px 2px 27px}.eyebrow{color:var(--gold);font-size:8px;font-weight:700;line-height:1.5;letter-spacing:2.1px}h1{font:400 clamp(29px,3.2vw,46px)/1.04 'Outfit',sans-serif;letter-spacing:-1.6px;margin:9px 0 10px}p{font-size:12px;line-height:1.65;color:var(--muted)}.scene-intro p{margin:0;font-size:12px;color:#a5bdb5}.scene-intro .round-intro{font-size:10px;margin-top:5px;color:#789694}
.journey{align-self:center;padding-right:2px}.journey-label{display:block;margin-bottom:12px;color:#698a88;font-size:7px;font-weight:600;letter-spacing:2px;text-align:right}#scene-chapters{display:flex;gap:9px;align-items:center}.scene-chapter{position:relative;display:flex;align-items:center;gap:7px;border:1px solid #a9c8b51b;border-radius:50px;padding:10px 12px;color:#678780;transition:color .6s,background .6s,border-color .6s}.scene-chapter i{width:5px;height:5px;border-radius:50%;background:currentColor}.scene-chapter b{font-size:9px;font-weight:500}.scene-chapter.active{background:#d6e3be0e;color:var(--gold);border-color:#dfcca84f}.scene-chapter.active i{box-shadow:0 0 11px #e8c79299}.scene-chapter.completed{color:#a6c7b2}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 247px;gap:20px;align-items:start}.game-panel{min-width:0;position:relative;border:1px solid #bcd7c426;border-radius:18px;overflow:hidden;background:#10292f;box-shadow:0 26px 70px -24px #0008,0 1px 0 #e2eec315 inset}.course-top,.course-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.course-top{min-height:43px;padding:12px 20px;border-bottom:1px solid #d0e2d00d;background:linear-gradient(115deg,#163238,#0f282e);font-size:9px}.hole-marker{display:flex;align-items:center;gap:8px;flex-shrink:0}.hole-marker b{font-weight:600;color:#d8dfcc;letter-spacing:1.3px}.live-dot{display:inline-block;height:5px;width:5px;border-radius:50%;background:#b6d29b;box-shadow:0 0 9px #c2d69a50}#course-tag{margin-left:auto;color:#7faaa0;text-align:right;font-size:8px;letter-spacing:1.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#restart-hole{flex-shrink:0;margin-left:10px;border:0;padding:3px 0 3px 14px;border-left:1px solid #a6c2ae26;background:none;color:#96b2a9;font-size:9px}#restart-hole:hover{color:var(--cream)}
.match-bar{min-height:61px;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#0c252a;border-bottom:1px solid #bed6c815}.turn-heading{min-width:100px}.match-bar .eyebrow{color:#78958c;font-size:6px;letter-spacing:1.7px}.match-bar h2{font:500 17px/1.2 'Outfit',sans-serif;margin:3px 0 0;overflow-wrap:anywhere}.player-chips{display:flex;gap:7px;min-width:0}.player-chip{display:flex;align-items:center;gap:7px;min-width:0;max-width:190px;padding:8px 11px;border:1px solid #c0d2bc15;border-radius:9px;background:#b7cfbf03;color:#8aa49d;font-size:10px}.player-chip.current{border-color:color-mix(in srgb,var(--player-color),transparent 65%);background:color-mix(in srgb,var(--player-color),transparent 94%);color:#e4e8d9}.player-chip>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-chip strong{font:500 18px/1 'Outfit',sans-serif;margin-left:8px;color:#e2e8d8}.ball-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:inset -2px -2px 3px #193b3555,0 1px 3px #0002}.peach{background:#f5ad79}.blue{background:#8ac9ef}
.canvas-wrap{position:relative;isolation:isolate;background:#163338;overflow:hidden;aspect-ratio:900/620}#game{display:block;width:100%;height:100%;object-fit:contain;touch-action:none;cursor:crosshair;position:relative;z-index:1}.has-3d #game{position:absolute;inset:0;width:100%;height:100%;background:transparent}#world-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}#ball-labels{position:absolute;inset:0;z-index:2;pointer-events:none}#ball-labels .ball-label{position:absolute;transform:translate(-50%,-100%);color:#fffbec;padding:5px 9px;border:1px solid #d8ead840;border-radius:6px;background:#102830d9;box-shadow:0 3px 12px #0002;font-size:9px;font-weight:600;white-space:nowrap;backdrop-filter:blur(8px)}#ball-labels .ball-label.active{border-color:#e9d5a675;color:#f9eac5}
#scene-loading{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#c7d7ca;background:radial-gradient(ellipse at 50% 40%,#284744,#0c282f);font-size:11px;letter-spacing:.2px}.loading-orbit{height:53px;width:53px;border:1px solid #d8dcb62e;border-radius:50%;display:grid;place-items:center;position:relative}.loading-orbit::before{content:'';position:absolute;inset:-1px;border:1px solid transparent;border-top-color:var(--gold);border-radius:50%;animation:orbit 1.6s linear infinite}.loading-orbit i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fffde8,#ddcda2 52%,#7d977e);box-shadow:0 0 30px #e8dd9f30}
.event-banner{position:absolute;z-index:5;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:11px;max-width:90%;width:max-content;padding:12px 17px;background:#102c30eb;backdrop-filter:blur(14px);border:1px solid #dacda656;border-radius:12px;box-shadow:0 8px 28px #071c2a55;pointer-events:none;animation:event-arrive .3s ease-out}#event-symbol{color:var(--gold);font-size:25px}#event-title{display:block;color:#f0debb;font-size:10px;font-weight:700;letter-spacing:1.1px}#event-copy{display:block;color:#b1c7bc;font-size:10px;margin-top:4px;line-height:1.4}#shot-feedback{position:absolute;z-index:3;top:26%;left:50%;transform:translateX(-50%);color:#fff2c8;font:500 clamp(23px,3vw,40px)/1 'Outfit',sans-serif;text-shadow:0 2px 24px #0a263c,0 0 35px #fff8cd66;text-align:center;pointer-events:none;letter-spacing:-.7px}.toast{position:absolute;z-index:3;bottom:17px;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;border:1px solid #e0e3be26;border-radius:30px;background:#0e2930dd;color:#e7e8d2;padding:10px 18px;font-size:10px;line-height:1.5;text-align:center;pointer-events:none;backdrop-filter:blur(10px);box-shadow:0 4px 20px #071c2a33;transition:opacity .5s}.toast.faded{opacity:0}
.course-bottom{padding:14px 20px;background:linear-gradient(120deg,#153139,#102a30);border-top:1px solid #b6cdba1c;font-size:10px;color:#96b5a9}.putt-instruction{display:flex;align-items:center;gap:8px}.putt-instruction b{color:#d5e0ce;font-weight:600}.mouse-icon{color:var(--gold);font-size:21px;line-height:1}.power{display:flex;align-items:center;gap:10px;font-size:7px;font-weight:600;letter-spacing:1.5px;color:#8fa9a0}.power>div{width:76px;height:4px;border-radius:4px;background:#c9dac91a;overflow:hidden}.power i{display:block;width:0;height:100%;border-radius:4px;background:linear-gradient(90deg,#aed9b5,#e6c18b,#e59774);box-shadow:0 0 9px #e8c79288}.ready{color:#b4caa0;font-size:9px}
.scene-toolbar{min-height:43px;padding:7px 13px 7px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #d1e2cb09;background:#0e272d}.scene-toolbar-caption{display:flex;align-items:center;gap:6px;color:#5e827d;font-size:8px;letter-spacing:.2px}.scene-toolbar-caption i{width:3px;height:3px;border-radius:50%;background:#73998a}.scene-actions{display:flex;align-items:center;gap:8px}.scene-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:29px;padding:5px 7px;color:#9db8ac;background:transparent;border:0;border-radius:6px;font-size:9px}.scene-actions button:hover,.scene-actions button[aria-pressed=true]{background:#d4dfc611;color:#ecdec1}.scene-actions svg{width:14px;height:14px}.toolbar-divider{width:1px;height:12px;background:#b3cdb41e}.quality-control{display:flex;align-items:center;gap:2px;font-size:8px;color:#62847d}.scene-actions #quality-toggle{color:#b9cbb8;font-size:8px;min-width:35px}
.round-panel{display:flex;flex-direction:column;align-self:stretch;min-width:0;border:1px solid #bbd5c01c;border-radius:18px;padding:23px 21px 19px;background:linear-gradient(150deg,#17313788,#102a3080);box-shadow:inset 0 1px #e0edcd06}.score-heading{display:flex;align-items:center;justify-content:space-between}.score-heading .eyebrow{color:#8fa99b;font-size:7px;letter-spacing:1.8px}.round-icon{color:#b5c3a6;font-size:23px;line-height:1}.round-panel h2{font:400 27px/1.12 'Outfit',sans-serif;letter-spacing:-.7px;margin:21px 0 0;color:#e8ead7}.round-panel>p{margin:11px 0 21px;font-size:11px;color:#88a59c}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:24px}.stats div{display:flex;flex-direction:column;gap:9px}.stats span{font-size:6px;font-weight:600;letter-spacing:1.4px;color:#78998e}.stats strong{color:#e9e8d2;font:400 33px/.9 'Outfit',sans-serif;font-variant-numeric:tabular-nums}.stats div:first-child strong{color:var(--gold)}
.scorecard-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:8px;margin-bottom:9px}.scorecard-label b{font-size:7px;font-weight:600;letter-spacing:1.2px;color:#a7bdad}.scorecard-label>span{color:#64897f;font-size:8px}.score-row{display:flex;align-items:center;gap:9px;border-bottom:1px solid #c7dfbc0b;padding:11px 0;color:#7b9a8d;font-size:10px}.score-row .num{color:#547e72;width:17px;font-size:8px}.score-row .value{margin-left:auto;font-weight:500;font-variant-numeric:tabular-nums}.score-row.active{color:#e3dbc0}.score-row.active .num{color:var(--gold)}.scorecard-total{display:flex;justify-content:space-between;gap:12px;padding-top:14px;font-size:9px;color:#6e9282}.scorecard-total b{font-size:9px;color:#c5ccb0;font-weight:500;text-align:right;overflow-wrap:anywhere}.duel-score-header,.duel-score-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:4px;border-bottom:1px solid #c7dfbc0c;padding:10px 0;font-size:10px;color:#8ba99a}.duel-score-header{font-size:8px;color:#5e8475}.duel-score-header b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duel-score-row b,.duel-score-header b{text-align:center;font-weight:500}.duel-score-row small{font-size:6px;margin-left:4px;color:#4e7668}.duel-score-row.active{color:#ebd9ac}.duel-score-row.active small{color:#9f986d}
.wild-note{display:flex;gap:11px;margin-top:23px;padding:13px 12px;border:1px solid #c4d6a31a;border-radius:11px;background:#bdd39c05}.wild-note-mark{color:#c4c799;font-size:19px;padding-top:1px}#round-mode{font-size:7px;font-weight:600;letter-spacing:1.2px;color:#b0be93}.wild-note p{margin:5px 0 0;color:#6f927c;font-size:9px;line-height:1.5}.tip{display:flex;gap:10px;margin-top:auto;padding-top:24px}.tip>span{color:#759a80;font-size:20px}.tip p{margin:0;color:#6c907d;font-size:10px}.text-button{padding:19px 0 0;background:none;border:0;color:#8aaa95;font-size:9px;text-align:left}.text-button:hover{color:#d4dbb8}
footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 1px 30px;color:#52766f;font-size:9px}footer a{text-decoration:none;color:#86a094;font-size:9px}footer a:hover{color:#d9d8b9}footer a>span{color:#577a6c}.keyboard-hint{display:flex;align-items:center;gap:5px;font-size:8px}.keyboard-hint i{margin:0 6px;font-style:normal}kbd{border:1px solid #a5c09d12;border-radius:4px;padding:3px 5px;font-family:inherit;font-size:7px;background:#b7cfb008}.footer-note{font:400 10px 'Outfit',sans-serif;letter-spacing:.2px}
.overlay{position:absolute;z-index:10;inset:0;display:grid;place-items:center;padding:20px;background:#09232a65;backdrop-filter:blur(6px)}.result-card{width:min(360px,100%);padding:31px;text-align:center;border:1px solid #efe4b83d;border-radius:20px;background:radial-gradient(ellipse at 50% 0,#3b5145,#183236 68%);box-shadow:0 20px 80px #081b2477;animation:card-arrive .5s ease-out}.result-emblem{width:55px;height:55px;display:grid;place-items:center;margin:0 auto 20px;border:1px solid #e4dbaf3d;border-radius:50%;color:#f0db9c;font-size:33px;background:#e8d9910a;box-shadow:0 0 30px #e8d9910a}.result-card .eyebrow{font-size:8px;color:#cccca1}.result-card h2{font:400 37px/1.06 'Outfit',sans-serif;letter-spacing:-1px;color:#f3e8ce;margin:12px 0 14px;overflow-wrap:anywhere}.result-card p{font-size:12px;color:#a2bbab;margin:0 0 24px;overflow-wrap:anywhere}.primary{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border:1px solid #f0dfb9;border-radius:9px;background:linear-gradient(115deg,#eedaaf,#d4b47c);color:#233a30;box-shadow:0 4px 17px #081c2a22,inset 0 1px #fff6d855;font-size:12px;font-weight:700}.primary>span{font-size:18px;font-weight:400}.primary:hover{background:linear-gradient(115deg,#fff0c9,#e5c38c);transform:translateY(-1px);box-shadow:0 5px 24px #b6c4a015}.primary:active{transform:translateY(1px)}
dialog{width:min(590px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;overflow:auto;padding:33px 33px 24px;border:1px solid #dbd5ae40;border-radius:24px;background:radial-gradient(ellipse at 100% 0,#40554370,transparent 55%),linear-gradient(155deg,#18363b,#0b252c);color:#e8ead7;box-shadow:0 35px 140px #00121fcc;scrollbar-width:thin;scrollbar-color:#47645a transparent}dialog::backdrop{background:#041b2599;backdrop-filter:blur(10px) saturate(.85)}#setup-form{position:relative}.close-dialog{position:absolute;right:-13px;top:-15px;z-index:2;display:grid;place-items:center;width:30px;height:30px;border:1px solid #c9dfbf1c;border-radius:50%;background:#cedcbd07;color:#91b29e;font-size:22px;line-height:1}.close-dialog:hover{color:#f1e1bb;background:#c4d4b815}dialog .eyebrow{position:relative;margin-top:4px;font-size:7px;letter-spacing:1.7px;color:#b5c69c}dialog h2{position:relative;font:400 40px/1.05 'Outfit',sans-serif;letter-spacing:-1.4px;margin:11px 0 0}.setup-intro{position:relative;font-size:11px;color:#96b3a5;margin:10px 0 24px}
.setup-art{position:absolute;right:6px;top:-2px;width:90px;height:90px;opacity:.9;pointer-events:none}.setup-orbit{position:absolute;top:29px;left:-8px;width:98px;height:38px;border:1px solid #dedbb13a;border-radius:50%;transform:rotate(-28deg)}.setup-orbit::after{content:'';position:absolute;top:-3px;right:16px;width:5px;height:5px;border-radius:50%;background:#e5d3a0;box-shadow:0 0 9px #e5d3a050}.setup-ball{position:absolute;top:23px;left:20px;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 34% 23%,#fff8dc,#ebdfb8 36%,#bec59f 65%,#43695a);box-shadow:inset -4px -5px 8px #183e3c50,0 6px 17px #06242d77,0 0 30px #d4dcac12}.setup-ball::after{content:'';position:absolute;inset:3px;border-radius:50%;background:radial-gradient(circle,#102f3d16 1px,#fff9df25 1.5px,transparent 2px);background-size:7px 7px;opacity:.8;transform:rotate(15deg)}.setup-spark{position:absolute;color:#d5d4a8}.spark-one{right:8px;top:9px;font-size:16px}.spark-two{left:4px;bottom:0;font-size:11px;opacity:.5}
.player-editors{display:grid;grid-template-columns:1fr 1fr;gap:13px}.player-editor{min-width:0;border:1px solid #c3d5b525;border-radius:14px;padding:15px;background:linear-gradient(140deg,#d1dabc07,#c3dbbf02)}.player-editor label{display:flex;align-items:center;gap:9px;margin:0 0 13px;font-size:11px;font-weight:500;color:#c4d4c3}.player-number{margin-left:auto;color:#476b5c;font:400 20px 'Outfit',sans-serif}.ball-preview{display:inline-block;flex-shrink:0;width:25px;height:25px;border-radius:50%;box-shadow:inset -2px -3px 5px #183e3b77,0 3px 6px #061d2844}.player-editor input{display:block;width:100%;min-height:40px;padding:10px 11px;border:1px solid #b4ccb32a;border-radius:7px;background:#08252b70;color:#e9e8d3;font-family:inherit;font-size:13px;transition:border-color .18s}.player-editor input:focus{outline:1px solid #c8c89d;outline-offset:2px}.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 8px;margin-top:18px}.colour-choice{justify-self:center;width:28px;height:28px;padding:0;display:grid;place-items:center;border:2px solid transparent;border-radius:50%;background:radial-gradient(circle at 30% 24%,#fffe 0,var(--ball) 45%,var(--ball) 70%,#193f3588 100%);box-shadow:inset -1px -2px 4px #163b3544,0 2px 5px #061d2a33;color:#153a37;font-size:15px;font-weight:700;outline-offset:4px}.colour-choice:hover:not(:disabled){transform:translateY(-2px)}.colour-choice[aria-pressed=true]{outline:1px solid #e9dfbc;outline-offset:4px;box-shadow:inset -1px -2px 4px #163b3544,0 0 12px #d5d8ac22}.colour-choice:disabled{opacity:.2;filter:grayscale(.4);box-shadow:none}.colour-name{display:block;font-size:8px;line-height:1.2;letter-spacing:1.3px;text-align:center;text-transform:uppercase;color:#8ca58e;margin-top:15px}
.mode-heading{margin:23px 0 10px;font-size:7px;font-weight:600;letter-spacing:1.4px;color:#8ca590}.round-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.round-options button{display:flex;align-items:center;gap:10px;padding:13px 12px;border:1px solid #c2d1af26;border-radius:10px;background:#becda307;text-align:left;color:#8da893}.round-options button:hover{border-color:#c2d1af70}.round-options button[aria-pressed=true]{background:linear-gradient(115deg,#a9bd8124,#a9bd810e);border-color:#b9c58f82;color:#e1ddbd}.mode-symbol{font-size:22px;color:#9faf85}.round-options .mode-text{display:block;flex:1;min-width:0}.round-options b{display:block;font-size:11px;font-weight:600}.round-options .mode-text>span{display:block;font-size:8px;margin-top:5px;line-height:1.35;color:#789a80}.round-options button[aria-pressed=true] .mode-text>span{color:#a4b48e}.round-options i{width:9px;height:9px;border:1px solid #7d9a76;border-radius:50%;flex-shrink:0}.round-options button[aria-pressed=true] i{background:#c4cf9c;box-shadow:inset 0 0 0 2px #28473e;border-color:#b2c18c}.wild-explainer{min-height:44px;margin:11px 0 0;color:#739480;font-size:9px;line-height:1.6}dialog .primary{margin-top:17px}.solo-button{display:block;width:100%;border:0;padding:17px 0 0;background:transparent;color:#6b907b;font-size:10px;text-align:center}.solo-button b{color:#b7c4a0;font-weight:500;margin-left:4px}.solo-button:hover b{color:#e5d9ae}.setup-note{margin:19px 0 0;text-align:center;font-size:6px;font-weight:500;letter-spacing:1.1px;color:#4c7360}.setup-note i{font-style:normal;margin:0 8px}
.game-panel:fullscreen{width:100vw;height:100dvh;border:0;border-radius:0;display:flex;flex-direction:column;background:#081d23}.game-panel:fullscreen .canvas-wrap{flex:1;min-height:0;aspect-ratio:auto}.game-panel:fullscreen .course-top,.game-panel:fullscreen .match-bar,.game-panel:fullscreen .course-bottom,.game-panel:fullscreen .scene-toolbar{flex-shrink:0}
@keyframes orbit{to{transform:rotate(360deg)}}@keyframes event-arrive{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes card-arrive{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}

@media(min-width:1600px){.game-layout{grid-template-columns:minmax(0,1fr) 270px;gap:24px}.round-panel{padding:25px}.round-panel h2{font-size:31px}.round-panel>p{font-size:12px}}
@media(max-width:1180px){.site-header,main{padding-left:3%;padding-right:3%}.game-layout{grid-template-columns:minmax(0,1fr) 220px;gap:15px}.round-panel{padding:20px 17px}.round-panel h2{font-size:25px}.edition{display:none}.scene-chapter{padding:9px 10px}#scene-chapters{gap:6px}.scene-intro{gap:25px}.ready{display:none}.match-bar{padding:10px 16px}.player-chip{max-width:150px;padding:8px 9px}.scene-toolbar-caption{font-size:7px}.duel-score-row small{display:none}}
@media(max-width:900px){.game-layout{grid-template-columns:minmax(0,1fr)}.round-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;padding:24px}.score-heading,.round-panel h2,.round-panel>p,.stats{grid-column:1}.score-heading .round-icon{display:none}.round-panel h2{margin-top:12px;font-size:27px}.round-panel>p{margin-bottom:17px;max-width:300px}.stats{padding:16px 0;margin-bottom:0;max-width:300px}.scorecard{grid-column:2;grid-row:1/6}.wild-note{grid-column:1;margin-top:16px;max-width:300px}.tip{grid-column:2;grid-row:6;padding-top:15px;align-self:start;margin-top:0}.text-button{grid-column:1/3;padding-top:16px}.course-top{padding:13px 20px}.scene-intro{padding:26px 2px 23px}.scene-intro p{font-size:11px}.scene-intro .round-intro{font-size:9px}.scene-toolbar-caption{font-size:8px}.ready{display:inline}.player-chip{max-width:200px}}
@media(max-width:640px){
  .site-header{padding:17px 4%;gap:12px}.brand{font-size:21px;gap:8px;letter-spacing:-.6px}.brand-mark{width:32px;height:32px}.brand-mark svg{width:25px;height:25px}.brand-subtitle{font-size:5px;letter-spacing:1.7px;margin-top:6px}.header-right{gap:6px}.mode-button,#sound{min-height:34px;padding:8px 10px;font-size:9px}main{padding:0 3%}
  .scene-intro{gap:12px;padding:24px 4px 20px;align-items:flex-start}.scene-intro h1{font-size:31px;letter-spacing:-1px;margin-top:7px;margin-bottom:8px}.scene-intro .eyebrow{font-size:6px;letter-spacing:1.7px}.scene-intro p{font-size:10px;line-height:1.5;max-width:290px}.scene-intro .round-intro{display:none}.journey{align-self:flex-start;margin-top:3px}.journey-label{display:none}#scene-chapters{gap:4px}.scene-chapter{width:6px;height:6px;padding:0;border:0;border-radius:50%;background:#6a958441}.scene-chapter i,.scene-chapter b{display:none}.scene-chapter.active{background:var(--gold);box-shadow:0 0 8px #e8c79255}.scene-chapter.completed{background:#a4c3a49c}
  .game-panel{border-radius:14px}.course-top{min-height:41px;padding:12px 13px;gap:8px}.hole-marker{gap:6px}.hole-marker b{font-size:8px;letter-spacing:1px}#course-tag{font-size:7px;letter-spacing:.8px}#restart-hole{padding-left:10px;margin-left:1px;font-size:8px}.match-bar{padding:10px 12px;gap:10px;min-height:60px}.turn-heading{min-width:0;max-width:32%;flex-shrink:0}.match-bar .eyebrow{font-size:5px;letter-spacing:1px}.match-bar h2{font-size:15px;margin-top:5px}.player-chips{gap:5px}.player-chip{max-width:138px;gap:5px;padding:8px 7px;font-size:8px;border-radius:7px}.player-chip strong{font-size:16px;margin-left:2px}.ball-swatch{width:8px;height:8px}
  .canvas-wrap{aspect-ratio:1/1}.course-bottom{padding:13px;gap:10px;font-size:9px}.putt-instruction{gap:6px}.mouse-icon{font-size:18px}.power{gap:6px;font-size:6px;letter-spacing:1px}.power>div{width:57px;height:4px}.ready{display:none}.scene-toolbar{padding:6px 8px 6px 13px;min-height:42px}.scene-toolbar-caption{font-size:7px}.scene-actions{gap:5px}.scene-actions button{padding:7px 5px;font-size:8px;min-height:32px;gap:5px}.quality-control{gap:0}.quality-control>span{display:none}.fullscreen-label{display:none}.toast{bottom:12px;padding:8px 13px;font-size:9px;max-width:92%}.event-banner{top:12px;max-width:92%;padding:10px 12px;gap:9px;border-radius:10px}#event-symbol{font-size:21px}#event-title{font-size:8px;letter-spacing:.8px}#event-copy{font-size:9px}#ball-labels .ball-label{font-size:8px;padding:4px 7px}
  .round-panel{padding:20px 17px;gap:0 22px;border-radius:14px}.round-panel h2{font-size:24px}.round-panel>p{font-size:10px;margin-top:8px}.stats{gap:5px;padding:15px 0}.stats span{font-size:5px;letter-spacing:1px}.stats strong{font-size:28px}.scorecard-label{gap:5px}.scorecard-label b{font-size:6px;letter-spacing:1px}.scorecard-label>span{font-size:7px}.score-row{font-size:9px;gap:5px;padding:11px 0}.score-row .num{width:14px;font-size:7px}.scorecard-total,.scorecard-total b{font-size:8px}.duel-score-header,.duel-score-row{grid-template-columns:24px 1fr 1fr;font-size:9px;gap:3px}.duel-score-header{font-size:7px}.wild-note{grid-column:1/3;max-width:none;margin-top:18px;padding:11px 12px;align-items:center}.wild-note>div{display:flex;gap:12px;align-items:center}#round-mode{font-size:6px;white-space:nowrap}.wild-note p{margin:0;font-size:8px}.tip{grid-column:1/3;grid-row:auto;padding-top:14px;gap:8px}.tip p{font-size:9px;line-height:1.5}.tip p br{display:none}.tip>span{font-size:16px}.text-button{font-size:8px;padding-top:13px}footer{padding:21px 4px 25px;gap:12px}footer a,.footer-note{font-size:8px}.keyboard-hint{display:none}
  .result-card{padding:25px;max-width:310px;border-radius:16px}.result-card h2{font-size:32px}.result-card p{font-size:11px}.result-emblem{width:46px;height:46px;margin-bottom:16px;font-size:28px}
  dialog{padding:28px 23px 23px;border-radius:20px;width:min(540px,calc(100% - 24px));max-height:calc(100dvh - 24px)}dialog h2{font-size:35px;letter-spacing:-1.1px}dialog .eyebrow{font-size:6px;letter-spacing:1.3px}.setup-intro{font-size:10px;margin-top:9px;margin-bottom:20px}.setup-art{right:-1px;width:65px;height:65px;top:-2px;transform:scale(.8);transform-origin:top right;opacity:.65}.player-editors{gap:11px}.player-editor{padding:12px;border-radius:11px}.player-editor label{font-size:10px;gap:7px;margin-bottom:11px}.player-editor input{font-size:16px;padding:10px;min-height:42px}.player-number{font-size:16px}.ball-preview{width:21px;height:21px}.palette{gap:13px 9px;margin-top:17px}.colour-choice{width:26px;height:26px}.colour-name{font-size:7px;margin-top:14px}.round-options{gap:9px}.round-options button{padding:12px 10px;gap:7px}.round-options b{font-size:10px}.round-options .mode-text>span{font-size:7px}.mode-symbol{font-size:20px}.round-options i{width:7px;height:7px}.mode-heading{margin-top:21px;font-size:6px}.wild-explainer{min-height:0;font-size:8px;line-height:1.6;margin-top:10px}dialog .primary{margin-top:15px;padding:14px 15px;font-size:11px;min-height:48px}.solo-button{padding-top:15px;font-size:9px}.setup-note{font-size:5px;letter-spacing:.9px;margin-top:17px}
}
@media(max-width:380px){.site-header{padding-left:3%;padding-right:3%}.brand{font-size:18px;gap:6px}.brand-mark{width:29px;height:29px}.brand-subtitle{font-size:4px;letter-spacing:1.4px}.mode-button,#sound{font-size:8px;padding:8px}.scene-intro h1{font-size:28px}.scene-intro p{font-size:9px}.scene-toolbar-caption{display:none}.scene-actions{width:100%;justify-content:flex-end}.scene-actions #view-toggle{margin-right:auto}dialog{padding:26px 17px 21px}dialog h2{font-size:32px}.setup-art{opacity:.35}.player-editor{padding:11px 9px}.player-editors{gap:8px}.player-editor label{gap:5px}.player-number{display:none}.palette{gap:12px 8px}.colour-choice{width:23px;height:23px}.round-options button{padding:11px 8px;gap:6px}.round-options b{font-size:9px}.round-options .mode-text>span{font-size:6px}.round-options i{display:none}.mode-symbol{font-size:18px}.setup-note i{margin:0 5px}}
.has-3d #game{opacity:0}
.canvas-wrap:focus-within{outline:2px solid #e8c79299;outline-offset:-2px}
.expanded-game{position:fixed;z-index:9999;inset:0;width:100vw;height:100dvh;border:0;border-radius:0;display:flex;flex-direction:column;background:#081d23}
.expanded-game .canvas-wrap{flex:1;min-height:0;aspect-ratio:auto!important}.expanded-game .course-top,.expanded-game .match-bar,.expanded-game .course-bottom,.expanded-game .scene-toolbar{flex-shrink:0}
.world-ball-label{position:absolute;transform:translate(-50%,-100%);max-width:170px;padding:5px 9px;border:1px solid #d1e1cb40;border-radius:6px;background:#092731df;color:#dfe7d7;font-size:9px;font-weight:500;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;box-shadow:0 3px 14px #05202c50;backdrop-filter:blur(8px);pointer-events:none}
.world-ball-label.is-active{border-color:color-mix(in srgb,var(--ball-color,#e8c792),transparent 25%);color:#fff3d0;box-shadow:0 3px 16px #05202c66,0 0 14px #e8c79212}
@media(max-width:640px){.canvas-wrap{aspect-ratio:900/620}.canvas-wrap.has-3d{aspect-ratio:1/1}.world-ball-label{font-size:8px;padding:4px 7px;max-width:130px}}
@media(max-height:500px){
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .course-top,
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .course-bottom{display:none}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .match-bar{height:38px;min-height:38px;padding:4px max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left));gap:12px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .turn-heading{max-width:40%}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .turn-heading .eyebrow{display:none}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .match-bar h2{font-size:14px;line-height:1.1;margin:0}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .player-chip{padding:5px 10px;font-size:9px;border-radius:6px;max-width:200px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .player-chip strong{font-size:16px;margin-left:5px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .scene-toolbar{height:34px;min-height:34px;padding:0 max(8px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .scene-actions button{min-height:32px;padding:4px 8px;font-size:9px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .canvas-wrap{flex:1;min-height:0;aspect-ratio:auto}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .toast{bottom:8px;padding:6px 12px;font-size:9px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .event-banner{top:8px;padding:7px 12px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .overlay{padding:12px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .result-card{max-width:360px;padding:20px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .result-emblem{display:none}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .result-card h2{font-size:28px;margin:8px 0 10px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .result-card p{font-size:10px;margin-bottom:15px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .result-card .primary{padding:10px 15px}
  #setup-dialog{max-height:calc(100dvh - 16px);margin:8px auto;overflow-y:auto;overscroll-behavior:contain;padding-top:25px;padding-bottom:20px}
  #setup-dialog h2{font-size:32px}
  #setup-dialog .setup-intro{margin-bottom:17px}
  #setup-dialog .setup-art{transform:scale(.8);transform-origin:top right}
}
/* The clubhouse: local groups and private online rooms. */
.play-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border:1px solid #b6ccb51f;border-radius:12px;background:#06242c70;margin-bottom:22px}
.play-mode-tabs button{min-height:51px;padding:10px 14px;border:1px solid transparent;border-radius:8px;background:transparent;color:#7da18d;text-align:left}
.play-mode-tabs button b{display:block;font-size:12px;font-weight:600}.play-mode-tabs button span{display:block;font-size:8px;margin-top:4px;color:#648b78}
.play-mode-tabs button[aria-pressed=true]{border-color:#c9d3a83c;background:linear-gradient(120deg,#b5c99a19,#a5c3a10b);color:#ede4c6}.play-mode-tabs button[aria-pressed=true] span{color:#a5bda1}
.play-mode-tabs+.mode-heading{margin-top:0}.setup-panel{margin-top:20px;padding-top:18px;border-top:1px solid #c0d2b51c}
.player-count-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.player-count-row label{display:block;color:#ccd9c2;font-size:11px;font-weight:600}.player-count-row>div>span{display:block;color:#6e947f;font-size:8px;line-height:1.5;margin-top:4px}
select{appearance:auto;font:inherit;border:1px solid #b4ccb33a;border-radius:7px;background:#0b2930;color:#e6e4ca;min-height:40px;padding:8px 11px;accent-color:var(--gold)}select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}select option{background:#123038;color:#e6e4ca}
#player-count{font-size:11px;flex-shrink:0;min-width:110px}#local-setup .primary{margin-top:19px}.online-intro{display:flex;align-items:flex-start;gap:12px;margin-bottom:19px}.online-orbit{color:#c9cc9f;font-size:29px;line-height:1;padding-top:2px}.online-intro b{font-size:12px;font-weight:500;color:#d6ddc5}.online-intro p{font-size:10px;line-height:1.6;margin:6px 0 0;color:#83a78e}.online-profile{display:grid;grid-template-columns:1.35fr 1fr;gap:12px}
.online-field label,.room-code-label{display:block;font-size:10px;font-weight:500;color:#a7bfa4;margin-bottom:8px}.online-field input,.online-field select,#room-code,#room-link{display:block;width:100%;min-width:0;min-height:43px;padding:11px 12px;border:1px solid #b4ccb32a;border-radius:7px;background:#08252b70;color:#e9e8d3;font-family:inherit;font-size:13px}.online-field input::placeholder,#room-code::placeholder{color:#547b68}.online-field select{padding:10px}
.online-divider{display:flex;align-items:center;gap:12px;margin:23px 0 17px;color:#587d6b;font-size:6px;letter-spacing:1.3px;text-align:center}.online-divider::before,.online-divider::after{content:'';flex:1;height:1px;background:#b3cfaa18}.join-room-row{display:flex;align-items:stretch;gap:10px}#room-code{flex:1;text-transform:uppercase;letter-spacing:2px;font-weight:600}#room-code::placeholder{text-transform:none;letter-spacing:.3px;font-weight:400}
.secondary-button{display:flex;align-items:center;justify-content:center;gap:14px;min-height:43px;flex-shrink:0;padding:11px 15px;border:1px solid #b5c59c55;border-radius:8px;background:#b5c59c0c;color:#c9d4af;font-size:11px;font-weight:500}.secondary-button:hover{border-color:#d2d6a98a;background:#b5c59c1a;color:#eee7c5}.secondary-button>span{font-size:16px}
.online-error{font-size:10px;line-height:1.5;color:#f0b19c;background:#bd755013;border:1px solid #d68d682b;border-radius:7px;padding:10px 12px;margin:15px 0 0}.online-error:empty{display:none}.online-footnote{font-size:8px;line-height:1.6;text-align:center;color:#5f8770;margin:17px 0 0}
.primary:disabled,.secondary-button:disabled{opacity:.4;transform:none;box-shadow:none}.primary:disabled:hover{background:linear-gradient(115deg,#eedaaf,#d4b47c)}
#room-dialog{max-width:490px}.room-lobby-heading h2{font-size:35px}.room-lobby-heading>p{color:#86a990;font-size:11px;margin:11px 0 23px}.room-invite{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border:1px solid #bacb9f35;border-radius:13px;padding:17px;background:radial-gradient(ellipse at 40% 0,#b2c08e10,transparent 75%),#061f2638}.room-invite-label{font-size:7px;letter-spacing:1.6px;color:#829c78}.room-invite #room-code-display{grid-row:2;grid-column:1/3;font:400 35px/1 'Outfit',sans-serif;letter-spacing:7px;color:#e7d6a8;text-align:center;margin:2px 0 9px;padding-left:7px}.room-invite #room-link{grid-row:3;grid-column:1/3;font-size:9px;min-height:34px;padding:8px 10px;color:#78967d;text-overflow:ellipsis;background:#08252b60}.room-invite #copy-room{grid-column:1/3;min-height:39px;font-size:10px;padding:9px 13px;background:#acbf8e0e}.room-roster-heading{display:flex;justify-content:space-between;margin:25px 0 12px;color:#7b9a7c;font-size:7px;letter-spacing:1.3px}.room-roster-heading>span:last-child{color:#567d65;letter-spacing:.2px;font-size:8px}
#room-players{list-style:none;padding:0;margin:0;display:grid;gap:8px}#room-players>li,.room-player{display:flex;align-items:center;gap:10px;min-height:46px;padding:11px 12px;border:1px solid #b7ceac1d;border-radius:9px;background:#b7ceac04;font-size:11px;color:#b6c9ad}#room-players .ball-swatch{width:13px;height:13px}.room-player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.room-player-meta,#room-players small{margin-left:auto;color:#5b866a;font-size:8px;flex-shrink:0}.room-player.is-you,.room-player.current{border-color:#c8d3a645;background:#b9cc9c0a}.room-player.is-you .room-player-meta{color:#c0c69c}
#room-status{font-size:10px;line-height:1.6;color:#93b392;margin:19px 0 0;text-align:center}#room-dialog #start-online{margin-top:17px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.online-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:5px 16px;background:#112e32;border-bottom:1px solid #b4ccaf20;color:#97b797;font-size:9px;flex-shrink:0}#online-status{min-width:0;line-height:1.4}.online-bar-actions{display:flex;align-items:center;gap:11px;flex-shrink:0}#online-room-label{font-size:8px;letter-spacing:1px;color:#668d74}.online-bar button{min-height:27px;padding:5px 8px;border:1px solid #b6c7a02a;border-radius:6px;background:#bdd5aa07;font-size:8px;color:#adc49e}.online-bar button:hover{border-color:#becba460;color:#e3dfbc}#online-leave{border-color:transparent;color:#6f967b}
.player-chips{display:grid;grid-template-columns:repeat(var(--player-count,2),minmax(0,1fr));flex:1;max-width:73%}.player-chip{max-width:none;width:100%}.player-chip strong{margin-left:auto}.duel-score-header,.duel-score-row{grid-template-columns:32px repeat(var(--player-count,2),minmax(0,1fr))}.duel-score-header>*,.duel-score-row>*{min-width:0}.duel-score-header b{text-overflow:ellipsis;overflow:hidden}.duel-score-row small{display:none}
@media(max-width:640px){
  .play-mode-tabs{margin-bottom:19px}.play-mode-tabs button{min-height:48px;padding:9px 11px}.play-mode-tabs button b{font-size:11px}.play-mode-tabs button span{font-size:8px}.setup-panel{margin-top:16px;padding-top:16px}.player-count-row{gap:10px;margin-bottom:14px}.player-count-row label{font-size:10px}.player-count-row>div>span{font-size:7px;max-width:180px}#player-count{min-width:95px;min-height:42px;font-size:12px;padding:9px}.online-intro{gap:10px;margin-bottom:17px}.online-intro b{font-size:11px}.online-intro p{font-size:9px}.online-orbit{font-size:26px}.online-profile{grid-template-columns:1.1fr 1fr;gap:10px}.online-field input,.online-field select,#room-code{font-size:16px;min-height:44px;padding:10px}.online-field label,.room-code-label{font-size:9px}.join-room-row{gap:8px}.secondary-button{font-size:10px;padding:10px 12px;gap:9px;min-height:44px}.online-divider{margin:20px 0 15px}.online-error{font-size:9px}.online-footnote{font-size:8px}
  .match-bar:has(.player-chip:nth-child(3)){flex-direction:column;align-items:stretch;gap:9px;padding-top:11px;padding-bottom:11px}.match-bar:has(.player-chip:nth-child(3)) .turn-heading{max-width:none;display:flex;align-items:center;gap:9px}.match-bar:has(.player-chip:nth-child(3)) h2{margin:0;font-size:14px}.match-bar:has(.player-chip:nth-child(3)) .player-chips{max-width:none;width:100%;gap:5px}.match-bar:has(.player-chip:nth-child(3)) .player-chip{font-size:8px;padding:8px 6px;gap:4px}.match-bar:has(.player-chip:nth-child(3)) .player-chip strong{font-size:14px}.online-bar{padding:6px 11px;gap:8px;font-size:8px}.online-bar-actions{gap:5px}#online-room-label{font-size:7px;letter-spacing:.5px}.online-bar button{padding:5px 6px;font-size:8px}
  .round-panel:has(.duel-score-header>:nth-child(4)){display:block}.round-panel:has(.duel-score-header>:nth-child(4)) .stats{max-width:none}.round-panel:has(.duel-score-header>:nth-child(4)) .scorecard{margin-top:23px}.round-panel:has(.duel-score-header>:nth-child(4)) .duel-score-header{font-size:9px}.round-panel:has(.duel-score-header>:nth-child(4)) .duel-score-row{font-size:11px;padding:12px 0}.round-panel:has(.duel-score-header>:nth-child(4)) .tip{margin-top:0}.round-panel:has(.duel-score-header>:nth-child(4)) .scorecard-label b{font-size:7px}
  #room-dialog{max-width:460px}.room-lobby-heading h2{font-size:31px}.room-lobby-heading>p{font-size:10px;margin-bottom:19px}.room-invite{padding:15px;gap:10px}.room-invite #room-code-display{font-size:32px;letter-spacing:6px}.room-invite #room-link{font-size:10px}.room-roster-heading{margin-top:21px}#room-players>li,.room-player{min-height:45px;font-size:10px}.room-player-meta,#room-players small{font-size:8px}#room-status{font-size:9px}
}
@media(max-height:500px){
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .match-bar:has(.player-chip:nth-child(3)){flex-direction:row;align-items:center;height:38px;min-height:38px;padding-top:4px;padding-bottom:4px;gap:12px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .match-bar .player-chips{max-width:73%;width:auto}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .online-bar{min-height:29px;height:29px;padding-top:2px;padding-bottom:2px;font-size:8px}
  :is(.game-panel:fullscreen,.game-panel.expanded-game) .online-bar button{min-height:25px;padding:3px 8px}
  #room-dialog{max-height:calc(100dvh - 16px);margin:8px auto;overflow-y:auto;overscroll-behavior:contain;padding-top:24px;padding-bottom:20px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

#room-dialog #close-room{top:12px;right:12px}

/* Nine chapters stay a quiet progress marker beside the scene, even on a phone. */
#scene-chapters{gap:5px}.scene-chapter{gap:5px;padding:9px}.scene-chapter b{font-size:8px}.journey{flex-shrink:0}
.mulligan-button{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:6px 10px;flex-shrink:0;border:1px solid #c8d1a945;border-radius:7px;background:#b5c5970b;color:#c7d0a9;font:500 9px 'DM Sans',sans-serif;white-space:nowrap}
.mulligan-button:hover:not(:disabled){border-color:#dbd6a87a;background:#c2cb9b1a;color:#f1e2bb}.mulligan-button:disabled{opacity:.36;cursor:not-allowed;background:transparent}.result-mulligan{display:flex;width:100%;margin-top:11px;min-height:36px;font-size:10px}.result-mulligan:disabled{opacity:.25}
@media(max-width:1100px){.scene-chapter{padding:8px 7px;gap:4px}#scene-chapters{gap:4px}.scene-chapter i{width:4px;height:4px}}
@media(max-width:900px){.scene-chapter{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#6a958441}.scene-chapter i,.scene-chapter b{display:none}.scene-chapter.active{background:var(--gold);box-shadow:0 0 8px #e8c79255}.scene-chapter.completed{background:#a4c3a49c}#scene-chapters{gap:7px}.journey-label{font-size:6px;letter-spacing:1.5px}}
@media(max-width:640px){#scene-chapters{gap:4px}.scene-chapter{width:5px;height:5px}.scene-intro-copy{min-width:0}.scene-toolbar{gap:7px;padding-left:9px;padding-right:6px}.mulligan-button{min-height:32px;padding:6px 7px;font-size:8px}.scene-actions{min-width:0;gap:3px}.scene-actions button{padding:6px 4px;gap:4px}.result-mulligan{font-size:10px;min-height:36px}.duel-score-header,.duel-score-row{padding-top:9px;padding-bottom:9px}}
@media(max-width:380px){.scene-actions{width:auto;margin-left:auto}.scene-actions #view-toggle{margin-right:0}.mulligan-button{padding:6px;font-size:7px}.scene-actions button{font-size:7px}.result-mulligan{font-size:9px}}
@media(max-height:500px){:is(.game-panel:fullscreen,.game-panel.expanded-game) .result-mulligan{min-height:30px;margin-top:8px;padding-top:5px;padding-bottom:5px;font-size:9px}:is(.game-panel:fullscreen,.game-panel.expanded-game) .mulligan-button{min-height:28px}}
@media(max-width:640px){#mulligan{display:block;max-width:42%;overflow:hidden;text-overflow:ellipsis}}
.overlay{overflow-y:auto}.result-card{max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#587762 transparent}#result-copy{white-space:pre-line}
.result-card:has(.result-scores:not([hidden])){width:min(410px,100%);max-width:410px;padding:25px}.result-card:has(.result-scores:not([hidden])) .result-emblem{display:none}.result-card:has(.result-scores:not([hidden])) h2{font-size:31px}.result-card:has(.result-scores:not([hidden])) #result-copy{margin-bottom:17px;font-size:10px}
.result-scores{margin:0 0 20px;text-align:left;border-top:1px solid #cdd9ad25}.hole-result-row{padding:12px 0;border-bottom:1px solid #cdd9ad18}.hole-result-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.hole-result-name{font-size:11px;color:#d9dfc5;min-width:0;overflow-wrap:anywhere}.hole-result-label{max-width:58%;font-size:11px;font-weight:600;color:#cad8b2;text-align:right;line-height:1.35}.score-under .hole-result-label{color:#f0d494}.score-over .hole-result-label{color:#d7b89a}.score-withdrawn .hole-result-name,.score-withdrawn .hole-result-label{color:#7c9d89}.score-assisted .hole-result-label{color:#a0c5ba}.hole-result-detail{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:5px;color:#8aa991;font-size:9px;line-height:1.4}.hole-result-detail b{flex-shrink:0;font-size:9px;font-weight:500;color:#d6d6ad}
@media(max-width:640px){.result-card:has(.result-scores:not([hidden])){padding:21px}.result-card:has(.result-scores:not([hidden])) h2{font-size:27px}.result-scores{margin-bottom:16px}.hole-result-row{padding:10px 0}.hole-result-heading{gap:9px}.hole-result-name,.hole-result-label{font-size:10px}.hole-result-detail,.hole-result-detail b{font-size:8px}}
@media(max-height:500px){.result-card:has(.result-scores:not([hidden])){padding:18px}.result-card:has(.result-scores:not([hidden])) h2{font-size:25px}.result-card:has(.result-scores:not([hidden])) #result-copy{margin-bottom:12px;font-size:9px}.hole-result-row{padding:8px 0}.hole-result-name,.hole-result-label{font-size:10px}.hole-result-detail{margin-top:3px;font-size:8px}.result-scores{margin-bottom:13px}}

/* Clubhouse: choose a destination before choosing your playing partners. */
.course-picker{margin:0 0 22px;min-width:0;padding:0;border:0}.course-picker legend{padding:0;margin-bottom:9px;font-size:8px;letter-spacing:1.4px;font-weight:700;color:#a5baab}
.course-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.course-option{position:relative;isolation:isolate;overflow:hidden;min-width:0;min-height:111px;padding:13px 15px 15px;display:flex;align-items:flex-end;text-align:left;border:1px solid #bed1ba32;border-radius:12px;background:#173335;color:#cfdacb}
.course-option::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(100deg,#102a2b 5%,#102a2bdd 29%,#102a2b59 75%,#102a2b22)}.course-art{position:absolute;z-index:-2;top:0;right:0;height:100%!important;width:auto!important;opacity:.9}.tour-option{background:linear-gradient(135deg,#3a5c61,#9f8799)}.sgc-option{background:linear-gradient(135deg,#285d4a,#a7b87e)}
.course-option-copy{position:relative;display:grid;gap:3px}.course-option-copy small{color:#d5d9b9;font-size:7px;letter-spacing:1.3px;font-weight:600}.course-option-copy b{font:500 21px/1.1 'Outfit',sans-serif;color:#fff3d8;letter-spacing:-.5px}.course-option-copy>span{font-size:10px;color:#c5d0be}.course-option i{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:16px;height:16px;border:1px solid #d9d9af61;border-radius:50%;background:#17382add;color:transparent;font:700 10px/1 sans-serif}
.course-option:hover{border-color:#c7d3b98a}.course-option[aria-pressed=true]{border-color:#eacb92;box-shadow:inset 0 0 0 1px #eacb9277}.course-option[aria-pressed=true] i{border-color:#e6c794;background:#e6c794;color:#24392f}
#setup-course-detail{margin:9px 0 0;color:#aec3ae;font-size:11px;line-height:1.5}#sgc-course-guide{display:inline-block;margin-top:3px;color:#dbc89b;font-size:10px;text-underline-offset:3px}
.journey.long-round #scene-chapters{display:grid;grid-template-columns:repeat(9,1fr);gap:4px}.journey.long-round .scene-chapter{justify-content:center;padding:5px 8px}.journey.long-round .journey-label{margin-bottom:6px}
.score-nine{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:9px 0 5px;color:#aebc99;border-bottom:1px solid #d7cea62b;font-size:7px;letter-spacing:1.2px;font-weight:600}.score-nine span{font-size:7px;letter-spacing:.5px;font-weight:400;color:#829f8a}
@media(max-width:900px){.journey.long-round .scene-chapter{padding:0}.journey.long-round #scene-chapters{gap:5px}}
@media(max-width:640px){.course-picker{margin-bottom:16px}.course-option{min-height:86px;padding:11px}.course-option-copy b{font-size:19px}.course-option-copy small{font-size:6px;letter-spacing:.9px}.course-option-copy>span{font-size:9px}#setup-course-detail{font-size:10px}.journey.long-round #scene-chapters{gap:4px}}
@media(max-height:500px){.course-option{min-height:76px}.course-picker{margin-bottom:15px}}
.score-distance{display:block;margin-top:3px;color:#8ea999;font-size:8px;font-weight:400;font-style:normal;line-height:1.1;white-space:nowrap}.duel-score-row .score-distance{font-size:7px;margin-top:2px;letter-spacing:-.15px}
.score-half-tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:5px 0 7px;padding:3px;border:1px solid #c2d4b526;border-radius:7px;background:#09262c}.score-half-tabs button{min-height:29px;padding:5px;border:0;border-radius:4px;color:#91ad98;background:transparent;font-size:9px}.score-half-tabs button[aria-pressed=true]{background:#d0d6ac26;color:#eee2bb}.show-outward .inward,.show-inward .outward{display:none}
.routing-map{margin:9px 0 5px;border:1px solid #a8c29d30;border-radius:8px;background:#0e282a66}.routing-map summary{padding:9px 12px;cursor:pointer;color:#d9ddc1;font-size:10px;font-weight:600}.routing-map summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}.routing-map summary::marker{color:#d8bc87}.routing-map figure{margin:0;padding:0 10px 9px}.routing-map img{display:block;width:100%;height:auto;border-radius:5px}.routing-map figcaption{font-size:8px;line-height:1.4;color:#91ab98;margin-top:5px}

/* The bag stays next to power so players can switch clubs without leaving the shot. */
.club-deck{gap:18px;padding:10px 16px}.club-bag,.club-options,.club-options button{display:flex;align-items:center}.club-bag{gap:10px;flex-shrink:0}.club-kicker{font-size:7px;font-weight:700;letter-spacing:1.4px;color:#a0b9a9}.club-options{gap:2px;padding:3px;border:1px solid #9fb9a633;border-radius:10px;background:#09262c}.club-options button{gap:5px;min-height:34px;padding:4px 9px;color:#a3b9ab;background:transparent;border:1px solid transparent;border-radius:7px;font:600 11px/1 'DM Sans',sans-serif}.club-options svg{width:23px;height:21px}.club-options kbd{margin-left:2px;font:500 8px/1 monospace;color:#9bb5a8}.club-options button[aria-pressed=true]{background:#dac9a123;color:#f4deb0;border-color:#cdbc8b55}.club-options button[aria-pressed=true] kbd{color:#dacaab}.club-options button:enabled:hover{background:#bbd0ac1a;border-color:#cfcba452}.club-options button:disabled{cursor:default;opacity:.55}.club-options button:disabled[aria-pressed=true]{opacity:.9}.club-guidance{display:grid;gap:3px;flex:1;min-width:0}.club-guidance b{color:#d1ddcc;font-weight:600;font-size:11px}.club-guidance span{font-size:10px;line-height:1.35;color:#95b1a4}.club-deck .ready{display:none}
@media(max-width:1100px){.club-deck{gap:12px}.club-kicker{display:none}.club-options kbd{display:none}}
@media(max-width:640px){.club-deck{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 9px;padding:7px 10px}.club-bag{grid-column:1;grid-row:1}.club-options button{min-height:40px;padding:5px 12px;font-size:11px}.club-guidance{grid-column:1/-1;grid-row:2;display:flex;align-items:baseline;gap:6px}.club-guidance b,.club-guidance span{font-size:9px}.club-deck .power{grid-column:2;grid-row:1;gap:5px}.club-deck .power>div{width:40px}}
@media(max-height:500px){:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-deck{display:flex;min-height:35px;gap:12px;padding:0 max(9px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));flex-shrink:0}:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-options{padding:0;border:0;background:transparent}:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-options button{min-height:32px;padding:2px 9px}:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-options kbd,:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-kicker{display:none}:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-guidance{display:block}:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-guidance b{display:none}:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-guidance span{font-size:9px}}

.terrain-read{display:flex;align-items:center;gap:clamp(14px,3vw,32px);padding:8px 18px;background:linear-gradient(115deg,#112d32,#10292e);border-top:1px solid #bad4bb17;font-variant-numeric:tabular-nums}.terrain-read>span{display:grid;gap:2px}.terrain-read small{color:#8ba899;font-size:7px;font-weight:600;letter-spacing:.8px}.terrain-read b{font-size:10px;font-weight:500;color:#d5e1cc}.terrain-read .terrain-profile{display:flex;align-items:center;gap:8px;margin-right:auto}.terrain-profile svg{width:22px;height:16px;color:#e2c99b}.terrain-profile b{color:#dfc99d}
@media(max-width:640px){.terrain-read{padding:6px 10px;gap:8px;justify-content:space-between}.terrain-read .terrain-profile{gap:5px;max-width:36%;margin:0}.terrain-profile svg{width:16px;flex-shrink:0}.terrain-read b{font-size:9px}.terrain-read small{font-size:6px;letter-spacing:.55px}}
@media(max-height:500px){:is(.game-panel:fullscreen,.game-panel.expanded-game) .terrain-read{padding:3px 12px;gap:15px;justify-content:center;flex-shrink:0}:is(.game-panel:fullscreen,.game-panel.expanded-game) .terrain-read>span{display:flex;align-items:center;gap:5px}:is(.game-panel:fullscreen,.game-panel.expanded-game) .terrain-profile{margin:0}:is(.game-panel:fullscreen,.game-panel.expanded-game) .terrain-read b{font-size:9px}}

.terrain-read{position:relative}.terrain-help summary{display:grid;place-items:center;width:25px;min-height:25px;border:1px solid #baceb642;border-radius:50%;color:#c8d9bd;font-size:11px;cursor:pointer;list-style:none}.terrain-help summary::-webkit-details-marker{display:none}.terrain-help summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.terrain-help[open] summary{border-color:#dcc48c;color:#edd5a1}.terrain-help>div{position:absolute;z-index:6;right:8px;bottom:calc(100% + 4px);width:min(268px,calc(100% - 16px));padding:13px 14px;border:1px solid #e1d09a55;background:#0f2b2ff5;border-radius:9px;box-shadow:0 8px 24px #051b1d55}.terrain-help>div b{font-size:12px;color:#e4d2a5}.terrain-help p{margin:5px 0 0;font-size:11px;line-height:1.5;color:#b2c8bb}
@media(max-height:500px){:is(.game-panel:fullscreen,.game-panel.expanded-game) .terrain-help summary{min-height:19px;width:19px}}

.green-reading{position:relative;display:flex;align-items:center;gap:14px;min-height:41px;padding:4px 15px;background:linear-gradient(115deg,#133135,#102a2e);border-top:1px solid #b9d4b91c;font-variant-numeric:tabular-nums}
.green-grid-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:5px 9px;border:1px solid #bad1bb47;border-radius:8px;background:#0c272c;color:#abbbad;white-space:nowrap;font-size:10px;font-weight:600}.green-grid-toggle svg{width:16px;height:16px}.green-grid-toggle b{display:inline-block;min-width:21px;font-size:8px;font-weight:600;line-height:1.5;text-align:center;border:1px solid currentColor;border-radius:8px}.green-grid-toggle[aria-pressed=true]{color:#d3e9cf;border-color:#a3ceae82;background:#9bccaa17}.green-grid-toggle:hover{border-color:#e2d6a2;color:#f0e8c9}
.grid-legend{display:flex;align-items:center;gap:7px;color:#a0b7a7;font-size:9px;line-height:1.3}.grid-legend i{display:block;width:14px;height:2px;position:relative;background:linear-gradient(90deg,transparent,#b6d3b5)}.grid-legend i::after{content:"";position:absolute;right:0;top:-1px;width:4px;height:4px;border-radius:50%;background:#efe4b7}
.green-reading .terrain-read{flex:1;gap:clamp(8px,2vw,24px);padding:0;border:0;background:none}.green-reading .terrain-read .terrain-profile{margin:0 auto 0 0}.green-reading .grid-help{margin-left:auto;flex-shrink:0}.grid-help>div{right:8px;bottom:calc(100% + 3px)}.green-reading:has(.terrain-read:not([hidden])) .grid-legend{display:flex}
@media(max-width:640px){.green-reading{min-height:45px;padding:4px 9px;gap:8px}.green-grid-toggle{min-height:40px;padding:5px 8px;gap:5px}.grid-legend{font-size:8px}.green-reading .terrain-read{justify-content:space-between}.green-reading:has(.terrain-read:not([hidden])){flex-wrap:wrap;row-gap:3px}.green-reading .terrain-read:not([hidden]){order:3;flex:1 0 100%;padding:2px 1px 4px;border-top:1px solid #b9d4b914}.green-reading .terrain-read .terrain-profile{margin:0}.green-reading:has(.terrain-read:not([hidden])) .grid-legend:not([hidden]){display:flex}.grid-help summary{min-width:30px;min-height:30px}}
@media(max-height:500px){:is(.game-panel:fullscreen,.game-panel.expanded-game) .green-reading{display:flex;flex-wrap:nowrap;min-height:30px;padding:1px 10px;gap:12px;flex-shrink:0}:is(.game-panel:fullscreen,.game-panel.expanded-game) .green-grid-toggle{min-height:28px;padding:3px 7px}:is(.game-panel:fullscreen,.game-panel.expanded-game) .green-reading .terrain-read{order:0;flex:1;min-width:0;border:0;padding:0;gap:8px}:is(.game-panel:fullscreen,.game-panel.expanded-game) .green-reading:has(.terrain-read:not([hidden])) .grid-legend{display:none}}

/* The longer course has a full-width invitation and a four-club bag. */
.fullbag-option{grid-column:1/-1;min-height:100px;background:linear-gradient(115deg,#214c45,#7f9e88)}
.fullbag-option .course-option-copy b{font-size:27px}.fullbag-option .course-option-copy small{color:#e7ca91}
.fullbag-course-guide{margin:12px 0 3px;padding:12px 14px;border:1px solid #bdd6b52b;border-radius:10px;background:#a4c8ad08}
.fullbag-course-guide p{margin:0 0 9px;font-size:11px;color:#a4beb1}.fullbag-course-guide b{color:#ead7b6;font-weight:600}
.fullbag-course-guide>div{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:10px;color:#bdcdbf}.fullbag-course-guide>div>span{display:inline-flex;align-items:center;gap:6px}
.carry-key{width:10px;height:10px;display:inline-block;border:1.5px solid #ffda96;border-radius:50%}.roll-key{display:inline-block;width:16px;height:0;border-top:2px dashed #a6e8cc}
.fullbag-course-guide small{display:block;margin-top:9px;font-size:9px;line-height:1.5;color:#87a698}
.club-deck.full-bag{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 16px;padding:12px 16px}
.full-bag .club-bag{grid-column:1/-1;grid-row:1;min-width:0}.full-bag .club-options{flex:1;min-width:0;gap:3px}.full-bag .club-options button{flex:1;justify-content:center;min-height:42px}
.full-bag .club-guidance{grid-column:1;grid-row:2}.full-bag .power{grid-column:2;grid-row:2}.full-bag .power>div{width:72px}
@media(max-width:640px){.fullbag-option{min-height:91px}.fullbag-option .course-option-copy b{font-size:25px}.club-deck.full-bag{padding:8px 9px;gap:8px}.full-bag .club-options{padding:3px;gap:0}.full-bag .club-options button{padding:4px;gap:4px;font-size:10px;min-height:44px}.full-bag .club-options svg{width:20px}.full-bag .club-guidance{display:grid;gap:2px}.full-bag .club-guidance b{font-size:10px}.full-bag .club-guidance span{font-size:9px}.full-bag .power>div{width:45px}}
@media(max-height:500px){:is(.game-panel:fullscreen,.game-panel.expanded-game) .club-deck.full-bag{display:flex;gap:10px;padding-top:4px;padding-bottom:4px}:is(.game-panel:fullscreen,.game-panel.expanded-game) .full-bag .club-bag{flex:1}:is(.game-panel:fullscreen,.game-panel.expanded-game) .full-bag .club-options button{padding:3px 5px;min-height:35px}:is(.game-panel:fullscreen,.game-panel.expanded-game) .full-bag .club-guidance{flex:1;min-width:90px}}
