@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#122d26;--panel:#1b382f;--line:#365147;--text:#f3eee1;--muted:#b3c2b4;--gold:#e8c88c;--ink:#213a2e;--font:'DM Sans',sans-serif;--display:'Barlow Condensed',sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font:14px var(--font);min-width:320px}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.topbar{height:57px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;align-items:center;gap:10px;font:600 21px var(--display);letter-spacing:1.4px;white-space:nowrap}.brand b{font-weight:500;color:var(--muted)}.hsg{border:1px solid #b69b6755;border-radius:4px;font:700 11px var(--font);color:var(--gold);padding:7px 5px;letter-spacing:0}.round-status{display:flex;align-items:center;gap:17px}.round-status span{font-size:10px;letter-spacing:1.6px;color:var(--muted)}.round-status strong{font:600 24px var(--display);color:var(--gold)}nav{display:flex;gap:3px}nav button{border:0;background:transparent;color:var(--muted);padding:11px 8px;border-radius:5px;font-size:11px}nav button:hover{background:#ffffff0b;color:var(--text)}.rotate-tip{display:none}.game{display:grid;grid-template-columns:160px minmax(0,1fr) 244px;gap:15px;padding:18px;max-width:1500px;height:calc(100dvh - 57px);min-height:420px;margin:auto}.golfer-card{background:linear-gradient(140deg,#f8f0dd,#e5e1cd);color:var(--ink);border:1px solid #e9dfc2;border-radius:9px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 9px 20px #0003;min-height:0}.card-cap{padding:8px 6px;background:#dfd1ad;color:#385040;text-align:center;letter-spacing:1.2px;font-size:7px}.golfer-name{font:600 39px/.9 var(--display);padding:14px 12px 12px}.golfer-name span{display:block;font:500 7px var(--font);letter-spacing:1px;margin-top:9px;color:#697360}.card-stripe{background:#254a39;color:#e8dfc8;display:flex;justify-content:space-between;font-size:7px;padding:6px 10px;letter-spacing:.8px}.shot-table{flex:1;padding:7px 10px;display:flex;align-items:center}.shot-table table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.shot-table th{font-size:7px;color:#6a745f;font-weight:500;padding-bottom:5px;text-align:right;letter-spacing:.6px}.shot-table th:first-child,.shot-table td:first-child{text-align:left}.shot-table td{font-size:11px;text-align:right;border-top:1px solid #38504022;padding:4px 0}.shot-table tr.selected{background:#dfc284;font-weight:700}.card-note{font-size:8px;line-height:1.5;padding:8px 11px;border-top:1px solid #38504022;color:#546047}.course-panel{display:flex;flex-direction:column;min-width:0;min-height:0;gap:10px}.hole-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow{font-size:8px;letter-spacing:1.6px;color:var(--muted)}.hole-heading h1{font:600 30px/.95 var(--display);margin:5px 0 0;letter-spacing:.3px}.hole-numbers{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}.hole-numbers b{font:600 20px var(--display);color:var(--gold)}.hole-numbers span{font-size:9px;letter-spacing:1px;color:var(--muted)}.map-wrap{position:relative;flex:1;min-height:160px;overflow:hidden;border-radius:10px;border:1px solid #54725a;background:#335c43;box-shadow:inset 0 0 25px #0001}.map-wrap svg{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.map-tip{position:absolute;bottom:11px;left:12px;font-size:7px;letter-spacing:1.2px;color:#e8e6c9;background:#183b2ac9;padding:5px 7px;border-radius:4px;pointer-events:none}.aim-flag{position:absolute;right:10px;top:10px;border:1px solid #d8e1b93b;border-radius:5px;background:#173b2ac9;color:#f1eed7;padding:8px 10px;font-size:9px;min-height:32px}.bag-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.bag-heading>span:last-child{font-size:9px;color:var(--muted)}.club-bag{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.club{border:1px solid #4b6256;background:#223d31;color:#e9ecdc;border-radius:6px;min-width:0;padding:8px 2px;min-height:52px;display:flex;flex-direction:column;align-items:center;gap:4px}.club b{font:600 17px var(--display)}.club span{font-size:8px;color:#bfceba}.club[aria-pressed=true]{background:var(--gold);border-color:#f5dbad;color:#263b2d;box-shadow:0 2px 0 #8a784e}.club[aria-pressed=true] span{color:#40523e}.club:disabled{opacity:.28}.club:hover:not(:disabled){border-color:var(--gold)}.shot-console{background:#1a382f;border:1px solid #395648;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}.console-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.lie{font-size:8px;letter-spacing:1px;color:#c8d3be;border:1px solid #68806555;padding:4px 7px;border-radius:4px}.distance{display:flex;align-items:baseline;gap:8px}.distance strong{font:600 49px/.95 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-1px}.distance>span{color:var(--muted);font-size:8px;letter-spacing:.8px}.dice{display:flex;justify-content:space-between;gap:9px;padding-top:4px}.dice>div>span{display:block;font-size:7px;text-align:center;color:var(--muted);letter-spacing:.7px;margin-top:9px}.die{position:relative;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px;padding:9px;width:53px;height:53px;border-radius:10px;box-shadow:inset 1px 1px 0 #fff6,0 4px 0 #0003,0 8px 14px #0003;transform:rotate(-5deg)}.die.cream{background:linear-gradient(140deg,#fbf6e8,#d8d5c5)}.die.gold{background:linear-gradient(140deg,#f1d79f,#b9904e);transform:rotate(6deg)}.pip{background:#25392c;width:100%;height:100%;border-radius:50%;opacity:0}.pip.on{opacity:1}.die.initial:after{content:'?';position:absolute;inset:0;display:grid;place-items:center;font:600 29px var(--display);color:#40523e}.dice-result{font-size:8px;letter-spacing:.8px;color:var(--gold);min-height:15px}.current-play{flex:1;min-height:0}.current-play h2{font:600 24px/1.05 var(--display);margin:0 0 7px}.current-play p{font-size:11px;line-height:1.5;color:#bdcbbb;margin:0}.shot-preview{font-size:9px;color:var(--muted);line-height:1.3}.roll-button,.primary{min-height:46px;padding:12px 9px;border-radius:7px;border:1px solid #f7dca7;background:var(--gold);color:#24392d;font-size:12px;font-weight:700;box-shadow:0 3px 0 #8d7445}.roll-button:hover,.primary:hover{background:#f2d8a8}.roll-button:disabled{opacity:.6}.rolling .die{animation:roll .38s ease-in-out}@keyframes roll{40%{transform:translateY(-7px) rotate(15deg)}100%{transform:rotate(-5deg)}}dialog{background:#19392e;color:var(--text);border:1px solid #678064;border-radius:14px;padding:23px;max-width:570px;width:calc(100% - 32px);max-height:85dvh;box-shadow:0 25px 80px #000a}dialog::backdrop{background:#061a13bd;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-head h2{font:600 28px var(--display);margin:0}.dialog-head button{background:transparent;border:0;color:var(--muted);font-size:28px;min-width:44px;min-height:44px}dialog p,dialog li{font-size:12px;line-height:1.6;color:#c5d1be}dialog li{padding:4px 0}dialog ol{padding-left:22px}dialog b{color:var(--gold)}.practice-note{background:#102a20;border-radius:6px;padding:11px;font-size:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.secondary{padding:12px;border:1px solid #6e806c;background:transparent;color:var(--text);border-radius:6px}#score-table table{width:100%;border-collapse:collapse;margin:15px 0;font-size:12px}#score-table th,#score-table td{padding:11px 6px;border-bottom:1px solid #4d6757;text-align:right}#score-table th:first-child,#score-table td:first-child{text-align:left}#score-table th{color:var(--muted);font-weight:500}#score-table .total{font-weight:700;color:var(--gold)}#toast{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);max-width:90vw;background:#f3dfb4;color:#19392a;padding:11px 15px;border-radius:7px;font-size:12px;z-index:20}
@media(min-width:1100px){.game{grid-template-columns:180px minmax(0,1fr) 280px;padding:24px;gap:22px}.golfer-name{font-size:48px;padding:18px 15px}.shot-table td{font-size:13px;padding:5px 0}.card-note{font-size:9px}.shot-console{padding:22px;gap:19px}.die{width:63px;height:63px;padding:11px;gap:4px}.current-play h2{font-size:29px}.current-play p{font-size:13px}.shot-preview{font-size:11px}.hole-heading h1{font-size:36px}.hole-numbers b{font-size:24px}.distance strong{font-size:62px}.club{min-height:61px}.club b{font-size:20px}.club span{font-size:10px}}
@media(max-height:500px) and (orientation:landscape){.topbar{height:43px;padding:0 13px}.brand{font-size:17px;gap:7px}.hsg{font-size:9px;padding:5px}.round-status{gap:12px}.round-status span{font-size:8px}.round-status strong{font-size:21px}nav button{font-size:9px;padding:9px 6px}.game{height:calc(100dvh - 43px);min-height:0;grid-template-columns:128px minmax(0,1fr) 207px;padding:10px;gap:10px}.card-cap{font-size:6px;padding:5px}.golfer-name{font-size:30px;padding:10px 9px 8px}.golfer-name span{font-size:6px;margin-top:6px}.card-stripe{font-size:6px;padding:4px 7px}.shot-table{padding:4px 8px}.shot-table th{font-size:6px;padding-bottom:3px}.shot-table td{font-size:9px;padding:2px 0}.card-note{font-size:7px;padding:5px 8px;line-height:1.3}.course-panel{gap:7px}.eyebrow{font-size:6px;letter-spacing:1px}.hole-heading h1{font-size:23px;margin-top:3px}.hole-numbers b{font-size:17px}.hole-numbers span{font-size:8px}.hole-numbers{gap:1px}.map-wrap{min-height:100px;border-radius:7px}.map-tip{font-size:6px;bottom:8px;left:8px}.aim-flag{font-size:8px;padding:6px 7px;top:7px;right:7px;min-height:28px}.bag-heading>span:last-child{font-size:7px}.club-bag{gap:4px}.club{padding:6px 1px;min-height:43px;gap:3px;border-radius:4px}.club b{font-size:14px}.club span{font-size:6px}.shot-console{padding:11px;gap:8px;border-radius:7px}.lie{font-size:7px;padding:3px 5px}.distance strong{font-size:37px}.distance>span{font-size:7px}.dice{gap:7px;padding-top:2px}.die{height:44px;width:44px;gap:3px;padding:7px;border-radius:9px}.dice>div>span{font-size:6px;margin-top:7px}.dice-result{font-size:7px;min-height:10px}.current-play h2{font-size:21px;margin-bottom:5px}.current-play p{font-size:10px;line-height:1.4}.shot-preview{font-size:8px}.roll-button{min-height:41px;padding:10px 6px;font-size:11px}}
@media(max-width:740px) and (orientation:landscape){.game{grid-template-columns:110px minmax(0,1fr) 185px;gap:8px;padding:8px}.brand>span:last-child{display:none}.brand{gap:0}.topbar{gap:7px}nav{gap:0}nav button{font-size:9px;padding:8px 5px}.golfer-name{font-size:26px}.card-note{font-size:6px}.shot-console{padding:9px}.die{width:40px;height:40px;padding:7px;gap:2px}.hole-heading h1{font-size:20px}.club-bag{gap:2px}.club b{font-size:12px}.club span{font-size:6px}.bag-heading>span:last-child{display:none}.aim-flag{font-size:7px}.current-play h2{font-size:19px}}
@media(max-height:350px) and (orientation:landscape){.game{padding:7px;gap:8px;grid-template-columns:104px minmax(0,1fr) 180px}.golfer-name{font-size:24px;padding:7px 8px}.golfer-name span{font-size:5px;margin-top:4px}.card-cap{font-size:5px;padding:4px}.card-stripe{font-size:5px;padding:3px 5px}.shot-table{padding:3px 7px}.shot-table td{font-size:8px;padding:1px 0}.shot-table th{font-size:5px;padding-bottom:2px}.card-note{font-size:6px;padding:4px 6px}.shot-console{padding:8px;gap:6px}.distance strong{font-size:29px}.dice{padding:0;gap:8px;justify-content:flex-start}.die{width:35px;height:35px;padding:6px;gap:2px;border-radius:7px}.dice>div>span{font-size:5px;margin-top:5px}.dice-result{font-size:6px}.current-play h2{font-size:17px;margin-bottom:4px}.current-play p{font-size:9px;line-height:1.3}.shot-preview{font-size:7px}.roll-button{min-height:38px;padding:8px;font-size:10px}.course-panel{gap:5px}.hole-heading h1{font-size:19px}.hole-numbers b{font-size:15px}.club{min-height:38px;padding:5px 1px}.club b{font-size:12px}.map-tip{font-size:5px;padding:4px}.eyebrow{font-size:5px}.lie{font-size:6px}.club span{font-size:5px}}
@media(orientation:portrait){.topbar{height:auto;min-height:60px;flex-wrap:wrap;padding:10px 14px;gap:8px}.brand{font-size:18px}.round-status{gap:12px}.round-status span{font-size:8px}.round-status strong{font-size:20px}nav{width:100%;justify-content:space-between}nav button{padding:8px 3px;font-size:10px}.rotate-tip{display:flex;align-items:center;gap:8px;background:#294638;color:#e1d1ab;padding:10px 13px;font-size:10px}.rotate-tip button{background:transparent;border:0;color:#d4d9c5;font-size:22px;min-width:30px;margin-left:auto}.game{height:auto;min-height:0;display:grid;grid-template-columns:105px minmax(0,1fr);gap:10px;padding:12px}.course-panel{grid-column:1/-1;grid-row:1}.map-wrap{height:260px;flex:none}.hole-heading h1{font-size:27px}.club{min-height:46px}.club b{font-size:13px}.club span{font-size:6px}.club-bag{gap:3px}.bag-heading>span:last-child{font-size:8px}.golfer-card{grid-column:1;grid-row:2}.golfer-name{font-size:25px;padding:10px 8px}.card-cap{font-size:5px}.golfer-name span{font-size:5px}.card-stripe{font-size:5px;padding:5px}.shot-table{padding:5px 6px}.shot-table td{font-size:9px;padding:3px 0}.shot-table th{font-size:5px}.card-note{font-size:6px;padding:6px}.shot-console{grid-column:2;grid-row:2;padding:12px;gap:11px}.die{width:42px;height:42px;padding:7px;gap:2px}.dice{gap:7px}.dice>div>span{font-size:5px}.current-play h2{font-size:22px}.current-play p{font-size:10px}.distance strong{font-size:40px}.shot-preview{font-size:8px}.dice-result{font-size:7px}.eyebrow{font-size:6px}.map-tip{font-size:6px}.aim-flag{font-size:8px}.card-note{line-height:1.4}.club span{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Foursome edition */
.golfer-name{border-left:5px solid #a37646}.golfer-name.long-name{font-size:32px}.player-attributes{display:flex;justify-content:space-between;gap:3px;padding:0 10px 8px;font-size:6px;letter-spacing:.5px;color:#5b6a50}.player-attributes span{display:flex;flex-direction:column;gap:3px}.player-attributes b{font-size:13px;color:#2b4533;letter-spacing:0}.foursome-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.turn-chip{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 8px;background:#1c3c2f;border:1px solid #4d675544;border-radius:6px}.turn-chip.active{background:#2d4b35;border-color:var(--player-color)}.player-dot{display:grid;place-items:center;width:18px;height:18px;flex:none;border-radius:50%;background:var(--player-color);color:#193d29;font-size:9px;font-weight:700}.turn-chip>div{min-width:0;display:flex;flex-direction:column;gap:3px}.turn-chip b{font:600 15px/1 var(--display);color:#edf0dc;white-space:nowrap}.turn-chip>div>span{font-size:7px;color:#b6c8b0;letter-spacing:.4px}.choose-note{grid-column:1/-1;font-size:10px;color:var(--muted)}.round-status strong{font-size:21px;white-space:nowrap}#score-table td:first-child{white-space:nowrap}#score-table td i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.reference-links a{color:#e7c98b}.setup-dialog{width:min(940px,calc(100% - 28px));max-width:none;padding:20px;max-height:92dvh;background:radial-gradient(ellipse at top left,#2b4937,#142e25 80%)}.setup-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.setup-heading h2{font:600 33px/1 var(--display);margin:5px 0 0}.setup-heading .eyebrow{font-size:7px;color:#ddc28e}.setup-heading .secondary{font-size:11px;padding:8px 12px}.setup-intro{margin:9px 0 14px;font-size:12px;color:#c0ceba}.golfer-roster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.roster-card{position:relative;display:flex;flex-direction:column;min-width:0;text-align:left;min-height:120px;padding:10px;border:1px solid #657a5e;border-top:4px solid var(--golfer-tone);border-radius:7px;background:linear-gradient(140deg,#f5eedc,#dce1ca);color:#243e2b;box-shadow:0 4px 9px #0002}.roster-card:hover:not(:disabled){transform:translateY(-2px)}.roster-card:disabled{opacity:.45}.roster-card[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 0 2px #e8c88c70;background:linear-gradient(140deg,#fff1ce,#e8deb8);opacity:1}.roster-top{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:9px}.roster-top>span{font:600 18px var(--display);color:var(--golfer-tone)}.roster-top em{font-style:normal;font-size:7px;letter-spacing:.5px;color:#6b765c}.roster-card>b{font:600 23px/.98 var(--display);margin-bottom:12px;min-height:42px}.roster-stats{display:flex;justify-content:space-between;gap:4px;margin-top:auto;font-size:6px;color:#6a735b;letter-spacing:.4px}.roster-stats span{display:flex;flex-direction:column;gap:3px}.roster-stats strong{font-size:11px;color:#324a34}.setup-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:17px}.setup-footer>div{display:flex;flex-direction:column;gap:5px}.setup-footer b{font-size:12px;color:#e9d3a2}.setup-footer span{font-size:9px;color:#aabc9f}.setup-footer .primary{min-width:220px}.setup-footer .primary:disabled{opacity:.45;box-shadow:none;cursor:default}.setup-dialog button:focus-visible{outline:3px solid #fff0cc;outline-offset:2px}
@media(max-height:500px) and (orientation:landscape){.golfer-name.long-name{font-size:22px}.player-attributes{padding:0 7px 5px;font-size:5px;gap:2px}.player-attributes b{font-size:10px}.foursome-strip{gap:4px}.turn-chip{padding:5px 6px;gap:5px}.player-dot{height:14px;width:14px;font-size:7px}.turn-chip b{font-size:12px}.turn-chip>div>span{font-size:6px}.turn-chip>div{gap:2px}.round-status strong{font-size:17px}.round-status span{font-size:7px}.setup-dialog{padding:14px;max-height:94dvh}.setup-heading h2{font-size:26px;margin-top:3px}.setup-heading .eyebrow{font-size:6px}.setup-intro{font-size:10px;margin:6px 0 9px}.golfer-roster{gap:8px}.roster-card{min-height:84px;padding:7px;border-top-width:3px}.roster-top{margin-bottom:5px}.roster-top>span{font-size:13px}.roster-top em{font-size:6px}.roster-card>b{font-size:18px;min-height:31px;margin-bottom:7px}.roster-stats{font-size:5px}.roster-stats strong{font-size:9px}.roster-stats span{gap:2px}.setup-footer{margin-top:11px}.setup-footer .primary{min-height:40px;padding:9px;font-size:11px;min-width:200px}.setup-footer b{font-size:10px}.setup-footer span{font-size:8px}}
@media(max-height:350px) and (orientation:landscape){.golfer-name.long-name{font-size:19px}.golfer-name{padding-top:6px;padding-bottom:6px}.player-attributes{padding-bottom:4px;font-size:5px}.player-attributes b{font-size:9px}.turn-chip{padding:4px 3px;gap:4px}.turn-chip b{font-size:10px}.turn-chip>div>span{font-size:5px}.player-dot{width:12px;height:12px;font-size:6px}.foursome-strip{gap:3px}.round-status strong{font-size:14px}.setup-dialog{padding:10px}.setup-heading h2{font-size:23px}.setup-intro{font-size:9px;margin:4px 0 7px}.roster-card{min-height:67px;padding:5px}.roster-card>b{font-size:15px;min-height:25px;margin-bottom:4px}.roster-top{margin-bottom:3px}.roster-top>span{font-size:11px}.roster-top em{font-size:5px}.roster-stats strong{font-size:8px}.roster-stats span{gap:1px}.setup-footer{margin-top:8px}.setup-footer .primary{min-height:35px;font-size:10px}.golfer-roster{gap:6px}.setup-heading .secondary{font-size:9px;padding:5px 10px}}
@media(orientation:portrait){.golfer-name.long-name{font-size:18px}.player-attributes{padding:0 6px 6px;font-size:5px}.player-attributes b{font-size:9px}.turn-chip{gap:4px;padding:5px}.turn-chip b{font-size:12px}.turn-chip>div>span{font-size:6px}.player-dot{height:13px;width:13px;font-size:7px}.foursome-strip{gap:4px}.round-status strong{font-size:15px}.setup-dialog{padding:17px;max-height:92dvh}.setup-heading h2{font-size:31px}.setup-intro{font-size:11px;line-height:1.5}.golfer-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.roster-card{min-height:98px;padding:8px}.roster-card>b{font-size:21px;min-height:36px;margin-bottom:8px}.roster-top{margin-bottom:6px}.roster-top>span{font-size:15px}.setup-footer{flex-wrap:wrap;margin-top:14px;gap:12px}.setup-footer .primary{width:100%;min-width:0}.setup-footer span{font-size:8px}#score-table td:first-child{white-space:normal}.setup-heading .secondary{font-size:10px;padding:7px}.roster-stats strong{font-size:10px}}
.roster-card>b{color:#243e2b}
@media(max-height:500px) and (orientation:landscape){.golfer-name{font-size:26px;line-height:.95;padding:8px 8px}.golfer-name span{margin-top:4px;line-height:1.1}.player-attributes{font-size:5px;line-height:1.1;padding-bottom:4px}.player-attributes b{font-size:9px;line-height:1.1}.player-attributes span{gap:2px}.card-stripe{padding:3px 6px;line-height:1.1}.shot-table{padding:3px 8px;min-height:0}.shot-table td{font-size:9px;line-height:1.05;padding:1px 0}.shot-table th{font-size:6px;line-height:1.1;padding-bottom:2px}.card-note{font-size:7px;line-height:1.2;padding:5px 7px;flex:none}}
@media(max-height:350px) and (orientation:landscape){.card-cap{line-height:1.1;padding:4px}.golfer-name{font-size:23px;padding:6px 7px}.golfer-name.long-name{font-size:19px}.player-attributes{padding-bottom:3px}.player-attributes b{font-size:8px}.card-stripe{font-size:5px;line-height:1.1;padding:3px 5px}.shot-table{padding:2px 6px}.shot-table td{font-size:8px;line-height:1.05;padding:.5px 0}.shot-table th{font-size:5px}.card-note{font-size:6px;padding:4px 6px;line-height:1.1}}

/* Volcano Bay: a full-round scorecard that stays readable on a phone. */
#score-table{overflow:auto;max-height:53dvh}#score-table table{min-width:460px;margin:0}#score-table th,#score-table td{padding:8px 5px}#score-table thead{position:sticky;top:0;background:#19392e;z-index:1}#score-table tbody th{font-size:10px}#score-table th small{display:block;font-size:7px;letter-spacing:.5px;color:#a8bdab;margin-top:3px}#score-table .current-hole{background:#274a39}#score-table tfoot{color:var(--gold);font-weight:700}.hole-heading .eyebrow{font-size:8px;letter-spacing:.7px}

@media(orientation:landscape){#score-dialog{padding:14px}#score-dialog .dialog-head h2{font-size:24px}#score-dialog .dialog-head button{min-height:32px}#score-table{max-height:calc(85dvh - 150px)}#score-summary{font-size:9px;line-height:1.3;margin:9px 0}#score-dialog>.primary{min-height:34px;padding:8px 12px}}

/* Sunlit Volcano Bay artwork and a spacious course tour. */
body{background:radial-gradient(ellipse at 50% 0,#24483a 0,#102c25 70%)}.topbar{background:#102e27bd}.map-wrap{border-color:#819b64;box-shadow:0 8px 24px #041c2340,inset 0 0 0 1px #e7edbd22}.map-tip{background:#173f36d9;color:#f2f4d7}.aim-flag{background:#16483ee6;border-color:#cbdcad55;backdrop-filter:blur(4px)}.course-tour{position:absolute;right:9px;bottom:8px;border:1px solid #eff1ca55;background:#133c34e8;backdrop-filter:blur(4px);color:#fff4ce;font-size:9px;padding:7px 9px;min-height:30px;border-radius:5px;box-shadow:0 3px 8px #102c2930}.course-tour span{font-size:12px;margin-left:3px}.course-tour:hover{background:#2c5e45}.shot-console{background:linear-gradient(155deg,#25483a,#15372e);box-shadow:0 8px 24px #021c1926}.hole-heading h1{text-shadow:0 2px 5px #071b2433}.ocean-ripple{animation:water-breathe 7s ease-in-out infinite}.lava-surface{animation:lava-breathe 5s ease-in-out infinite}@keyframes water-breathe{50%{opacity:.1;transform:translateY(2px)}}@keyframes lava-breathe{50%{filter:brightness(1.13)}}
#tour-dialog{width:min(1120px,calc(100% - 28px));max-width:none;padding:16px;max-height:94dvh;background:linear-gradient(135deg,#224b3c,#12372e)}#tour-dialog[open]{display:flex;flex-direction:column;gap:10px}.tour-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.tour-heading h2{font:600 30px/1 var(--display);margin:4px 0 0}.tour-close{min-height:40px;min-width:40px;font-size:28px;color:#dce8c3;background:none;border:0}.tour-map-wrap{height:min(56dvh,490px);min-height:140px;border:1px solid #8aa56c;border-radius:9px;overflow:hidden;background:#3d793d;box-shadow:0 8px 25px #051e2538}.tour-map-wrap svg{display:block;width:100%;height:100%}.tour-controls{display:flex;align-items:center;justify-content:space-between;gap:10px}.tour-controls button{min-width:115px;min-height:40px;padding:9px}.tour-controls button:disabled{opacity:.3}.tour-controls>span{text-align:center;font-size:11px;letter-spacing:1px;color:#e5ebc9}.tour-note{margin:0;font-size:9px;color:#adc6af;text-align:center}
@media(max-height:500px) and (orientation:landscape){.course-tour{font-size:8px;padding:5px 7px;min-height:27px}#tour-dialog{padding:12px}#tour-dialog[open]{gap:6px}.tour-heading h2{font-size:24px;margin:0}.tour-heading .eyebrow{font-size:6px}.tour-close{min-height:30px;min-width:32px;font-size:24px}.tour-map-wrap{height:calc(94dvh - 118px)}.tour-controls button{min-height:34px;padding:7px 10px;min-width:90px;font-size:10px}.tour-controls>span{font-size:9px}.tour-note{font-size:7px}}
@media(max-height:350px) and (orientation:landscape){.course-tour{font-size:7px;padding:4px 6px;right:6px;bottom:6px;min-height:25px}.course-tour span{font-size:10px}.tour-map-wrap{min-height:130px}.tour-heading h2{font-size:21px}.tour-controls>span{font-size:8px;letter-spacing:.5px}}
@media(orientation:portrait){#tour-dialog{padding:12px}.tour-heading h2{font-size:26px}.tour-map-wrap{height:280px}.tour-controls button{min-width:75px;font-size:10px}.tour-controls>span{font-size:9px;letter-spacing:.2px}}
@media(prefers-reduced-motion:reduce){.ocean-ripple,.lava-surface{animation:none}}

.home-link{color:inherit;text-decoration:none}.home-link:focus-visible{outline:2px solid #efc66e;outline-offset:3px}
