*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#052a55;font-family:Arial,sans-serif;color:#fff}#rotate{display:none;position:fixed;inset:0;z-index:999;background:#062c59}#rotate img{width:100%;height:100%;object-fit:cover}#bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;max-width:none;max-height:none}#game,#scene{position:fixed;inset:0;overflow:hidden}#board{position:absolute;left:18%;top:27%;width:64%;height:40%;pointer-events:none}#ball,#cup,.power{position:absolute;transform:translate(-50%,-50%);z-index:7}#ball{width:clamp(28px,3vw,58px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff,#e8edf3 50%,#9aa7b7);box-shadow:0 7px 10px #0008,0 0 0 2px #fff8;transition:left .68s cubic-bezier(.22,.7,.25,1),top .68s cubic-bezier(.22,.7,.25,1)}#cup{width:clamp(38px,4vw,70px);height:clamp(22px,2.4vw,40px);border-radius:50%;background:#111;box-shadow:inset 0 0 0 4px #fff,0 0 16px #ffd34f}#cup i{position:absolute;left:48%;bottom:40%;width:4px;height:55px;background:#f5d259}#cup i:after{content:"";position:absolute;left:4px;top:0;border-top:13px solid transparent;border-bottom:13px solid transparent;border-left:32px solid #d7192d}.power{width:clamp(42px,5vw,84px);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 4px 5px #0008)}header{position:absolute;inset:0 0 auto;height:16vh;display:flex;justify-content:center;padding:7px;background:linear-gradient(#001a3cbb,transparent);pointer-events:none}.logo{position:absolute;left:8px;top:4px;width:17vw;height:14vh;object-fit:contain}.hole,.score{background:#052e61e8;border:3px solid #e9b83f;border-radius:17px;text-align:center;padding:5px 20px;box-shadow:0 4px 10px #0007}.hole b{display:block;color:#ffd85a;font-size:clamp(18px,2.2vw,34px)}.hole span{font-weight:800}.score{position:absolute;right:12px;top:7px}.score b,.score span{display:block}.score b{color:#ffd85a}.score span{font-size:12px}#result{position:absolute;left:50%;top:17%;transform:translateX(-50%);padding:8px 18px;border-radius:30px;background:#061f42e8;border:2px solid #e8b942;font-weight:900;opacity:0;z-index:20;transition:.2s}#result.show{opacity:1}#inventory{position:absolute;left:8px;bottom:15vh;display:flex;gap:5px;z-index:20}#inventory img{width:54px;height:48px;object-fit:contain;opacity:.8}#inventory img.active{outline:3px solid #ffe06a;border-radius:50%;opacity:1}footer{position:absolute;left:0;right:0;bottom:0;height:14vh;min-height:70px;background:linear-gradient(transparent,#031a38 18%,#062c59);display:flex;justify-content:center;align-items:center;gap:1vw;z-index:30}footer button{border:2px solid #e6b83f;color:#fff;background:#063467;border-radius:15px;box-shadow:0 4px 10px #0007;font-weight:900}.mini{width:9vw;max-width:100px;height:8vh;min-height:46px;font-size:25px}.mini small{display:block;font-size:8px}#putt{width:min(30vw,380px);height:11vh;min-height:62px;border-radius:999px;border:5px solid #f2c64f;background:linear-gradient(#1472c8,#053c85);box-shadow:0 0 0 5px #05295a,0 0 24px #ffd75b99;position:relative}#putt strong{font-size:clamp(28px,4vw,56px);letter-spacing:2px;text-shadow:0 3px #001d45}#putt small{display:block;font-size:10px;color:#ffe690}#putt>span{position:absolute;left:50%;top:-22px;transform:translateX(-50%);font-size:30px;color:#ffd34e}#putt:disabled{filter:grayscale(.7);opacity:.6}#modal{position:absolute;inset:0;background:#00162be8;display:grid;place-items:center;z-index:100}#modal.hidden{display:none}#modal section{width:min(720px,84vw);max-height:80vh;overflow:auto;background:#062e5e;border:3px solid #e8b940;border-radius:20px;padding:20px}#close{float:right;background:none;border:0;color:white;font-size:28px}#modal h2{color:#ffd75b}table{width:100%;border-collapse:collapse}td,th{padding:6px;border-bottom:1px solid #ffffff22;text-align:left}@media(orientation:portrait){#rotate{display:block}#game{display:none}}

#rowPick{position:absolute;inset:0;z-index:120;background:#00162bd9;display:grid;place-items:center}
#rowPick.hidden{display:none}
#rowPick section{background:#062e5e;border:3px solid #e8b940;border-radius:20px;padding:18px 22px;text-align:center;box-shadow:0 12px 30px #0008}
#rowPick h3{margin:0 0 12px;color:#ffd75b}
#rowPick .row-buttons{display:flex;gap:10px}
#rowPick button{min-width:120px;min-height:54px;border:2px solid #e8b940;border-radius:14px;background:#07417e;color:#fff;font-weight:900}

/* V1.4 viewport lock */
html,body,#game,#scene{width:100%;height:100%;max-width:100vw;max-height:100dvh;overflow:hidden!important}#scene{contain:layout paint size}body{overscroll-behavior:none;touch-action:manipulation}.logo{display:none!important}

/* V1.6 BACKGROUND RESTORE + CLEAN UI */
.holecard{display:none!important}
.bottom-shot-hud{display:flex;align-items:center;justify-content:center;gap:8px;min-width:108px;height:46px;padding:4px 10px;border:2px solid #e8b940;border-radius:13px;background:#07356fe8;color:#fff;font-size:11px;font-weight:800;white-space:nowrap}.bottom-shot-hud b{color:#ffd75b;font-size:15px}
#bg{display:block!important;visibility:visible!important;opacity:1!important}
html,body,#game{overflow:hidden!important}

/* V1.7 remove legacy top-right score */
.hud{display:none!important}
.bottom-shot-hud{display:flex!important}

/* V1.9 — remove legacy top-right live score; bottom counter is the only visible score */
.hud{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.bottom-shot-hud{display:flex!important}

#modePick{position:fixed;inset:0;z-index:300;background:#031b38e8;display:grid;place-items:center}#modePick.hidden{display:none}
#modePick section{min-width:min(86vw,430px);padding:24px;border:3px solid #e8b940;border-radius:24px;background:#07356f;text-align:center;box-shadow:0 18px 45px #0009}
#modePick h2{margin:0 0 16px;color:#ffd75b}#modePick button{display:block;width:100%;min-height:58px;margin:10px 0;border:2px solid #e8b940;border-radius:15px;background:#1269b8;color:#fff;font-size:18px;font-weight:900}
#turnChip{position:absolute;left:50%;bottom:74px;transform:translateX(-50%);z-index:45;padding:5px 12px;border:2px solid #e8b940;border-radius:999px;background:#07356fe8;color:#fff;font-size:11px;font-weight:900;pointer-events:none}

/* V2.1 — baked artwork owns all top labels */
.holecard,.hud{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.bottom-shot-hud{display:flex!important;visibility:visible!important;opacity:1!important}

/* V2.2 — approved backgrounds own ALL top artwork on every hole */
#game>header{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
.bottom-shot-hud{display:flex!important;visibility:visible!important;opacity:1!important}

/* V2.3 collector cards */
#cardReveal,#collector{position:fixed;inset:0;z-index:500;background:#00152bea;display:grid;place-items:center;padding:14px}
#cardReveal.hidden,#collector.hidden{display:none}
#cardReveal section,#collector section{position:relative;max-width:min(92vw,620px);max-height:92dvh;overflow:auto;text-align:center;background:#062e5f;border:3px solid #e8b940;border-radius:22px;padding:14px;box-shadow:0 18px 50px #000a}
#cardReveal img{display:block;max-height:65dvh;max-width:100%;width:auto;margin:4px auto 10px;border-radius:12px}
#cardReveal h2,#collector h2,.card-kicker{color:#ffd75b}.card-kicker{font-weight:900;letter-spacing:.08em}
#cardClose,#collectorClose{position:absolute;right:8px;top:8px;z-index:2;width:38px;height:38px;border-radius:50%;border:2px solid #e8b940;background:#07356f;color:#fff;font-size:22px}
.card-actions{display:flex;gap:7px;justify-content:center;flex-wrap:wrap}.card-actions button,#cardsBtn{border:2px solid #e8b940;border-radius:999px;background:#1269b8;color:#fff;padding:9px 13px;font-weight:900}
#collectorGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.collect-card{position:relative}.collect-card img{width:100%;height:auto;border-radius:10px}.collect-card.locked img{filter:grayscale(1) brightness(.25)}.collect-card.locked:after{content:"LOCKED";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:1000;font-size:18px}

/* V2.4 absolutely no live overlays over baked hole artwork */
#game>header,header,.hole,.score,.holecard,.hud{
display:none!important;visibility:hidden!important;opacity:0!important;
width:0!important;height:0!important;overflow:hidden!important;pointer-events:none!important}
#legacyTopState{display:none!important}
.bottom-shot-hud{display:flex!important;visibility:visible!important;opacity:1!important}
