:root{color-scheme:light;--ink:#102f27;--gold:#dcef9b;--paper:#f7f8f3;--muted:#53695e;--line:#cbd5cb}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,sans-serif}a{color:inherit}button,input,textarea{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}.skip{position:fixed;top:-100px;background:var(--gold);padding:12px;z-index:100}.skip:focus{top:0}.game-header{display:flex;align-items:center;justify-content:space-between;padding:8px max(20px,calc((100% - 1180px)/2));background:var(--ink);color:white;gap:12px;font-size:14px}.game-header a{text-decoration:none;padding:10px 0}.game-header span{font-size:12px;letter-spacing:1px}.game-header .quiet{color:white;border-color:#5a7869}main{max-width:1220px;margin:auto;padding:24px 20px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}h1,h2{font:400 40px/1.08 Georgia,serif;margin:0}h2{font-size:34px}.eyebrow{font-size:12px;font-weight:650;letter-spacing:1.5px;margin:0 0 12px}.mode{display:flex;border:1px solid var(--line);padding:4px;border-radius:8px}.mode button{border:0;background:transparent;padding:10px 16px;min-height:44px;color:var(--ink);border-radius:5px;font-weight:650}.mode button[aria-pressed=true]{background:var(--ink);color:white}.layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:40px;align-items:start}.board{background:var(--ink);color:white;border:1px solid #224f3b;border-radius:14px;overflow:hidden;width:100%;max-width:600px;justify-self:center}.scorebar{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;padding:12px 6px;font-size:14px}.scorebar span+span{border-left:1px solid #456451}.scorebar strong{display:block;font-size:22px;font-weight:600}.canvas-wrap{position:relative}canvas{display:block;width:100%;height:auto;aspect-ratio:1;touch-action:none;cursor:crosshair}canvas:focus-visible{outline-offset:-6px}.course-caption{padding:12px 18px;display:flex;justify-content:space-between;gap:12px;font-size:14px}.course-caption span{color:#d1dfcd}.controls{min-width:0}.course-note{margin:8px 0 26px}.course-note h2{font-size:40px}.shot-dock{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:20px;align-items:center}.shot-dock label,.fine-aim label{display:flex;justify-content:space-between;gap:16px;font-weight:600;font-size:14px}input[type=range]{width:100%;height:44px;margin:0;accent-color:#286140;cursor:pointer}input[type=range]::-webkit-slider-thumb{min-width:26px;min-height:26px}.range-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.primary,.quiet{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 15px;border-radius:6px;text-decoration:none;font-size:14px;font-weight:650}.primary{background:var(--gold);color:var(--ink);border:1px solid #a8bf6b}.shot-dock .primary{min-height:58px;font-size:18px}.primary:hover{background:#e7f5ba}.quiet{background:transparent;color:var(--ink);border:1px solid var(--line)}.quiet:hover{background:#7897731c}.status{background:#e5ecdf;border-left:3px solid #40643b;padding:12px 14px;margin:22px 0 12px;font-size:15px;min-height:68px}.instructions{font-size:14px;color:var(--muted)}.fine-aim{border-block:1px solid var(--line);margin:20px 0 14px}.fine-aim p{font-size:14px;color:var(--muted)}summary{cursor:pointer;padding:13px 0;min-height:48px;font-size:14px;font-weight:600}.utility{display:flex;gap:8px;flex-wrap:wrap}.utility .quiet{flex:1}.personal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0 12px}.personal span{font-size:12px;color:var(--muted);display:block}.personal strong{font:30px Georgia,serif;display:block;margin-top:7px}.small{font-size:12px;color:var(--muted)}footer{max-width:1220px;margin:auto;padding:12px 20px 24px;font-size:12px;color:var(--muted)}:focus-visible{outline:3px solid #936314;outline-offset:4px}.hole-intro,.celebration{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center;background:#102f27e8;color:white}.hole-intro strong{font:36px Georgia,serif}.hole-intro span{font-size:14px;letter-spacing:1px}.celebration{inset:auto 16px 20px;padding:18px;border-radius:7px;background:#102f27f0}.celebration span{color:var(--gold);font:30px Georgia,serif}.celebration strong{font-size:14px;font-weight:500}dialog{border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--paper);padding:28px;width:min(520px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#051b16b8}dialog h2{margin:12px 0 18px}dialog p{font-size:14px}.dialog-close{float:right;margin:0 0 15px 16px}.help-steps{padding-left:23px;clear:both}.help-steps li{margin:18px 0}.help-steps strong{display:block}.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.dialog-actions>*{flex:1}.round-result{display:flex;align-items:center;gap:24px;margin:20px 0}.round-result>strong{font:80px/1 Georgia,serif}.round-result span{font:38px Georgia,serif}.round-result small{display:block;color:var(--muted);font-size:12px}.score-table{width:100%;border-collapse:collapse;font-size:14px;clear:both}.score-table caption{text-align:left;padding:10px 0;font-size:12px;font-weight:700}.score-table th,.score-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:center}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table tbody tr.active{background:#e3ebd9}.score-table tfoot{font-weight:700}.score-table .under{font-weight:700;color:#235738}.score-table .over{color:#854126}#finish-actions>.primary{width:100%}textarea{width:100%;padding:12px;margin-top:10px;border:1px solid var(--line);border-radius:4px;resize:vertical;font-size:14px}#share-label{display:block;margin-top:15px;font-size:14px}@media(max-width:760px){.game-header{padding:4px 12px}.game-header span{display:none}.game-header .quiet{min-height:40px}main{padding:14px 12px}.heading{margin-bottom:12px;gap:10px}.heading h1{font-size:26px}.heading .eyebrow{display:none}.mode{padding:2px}.mode button{font-size:12px;padding:8px;min-height:40px}.layout{grid-template-columns:1fr;gap:12px}.board{max-width:min(460px,calc(100svh - 310px));min-width:240px}.scorebar{padding:7px 4px;font-size:12px}.scorebar strong{font-size:19px}.course-caption{padding:8px 12px;font-size:12px}.controls{width:100%;max-width:460px;justify-self:center}.course-note{margin:0}.course-note h2{display:none}.course-note .eyebrow{font-size:12px;margin:0 0 6px;letter-spacing:.8px}.shot-dock{gap:14px;grid-template-columns:minmax(0,1fr) 115px}.shot-dock .primary{min-height:54px}.status{min-height:0;margin:10px 0;padding:10px 12px;font-size:14px}.instructions{margin:8px 0}.fine-aim{margin:12px 0}.personal{margin-top:18px}footer{padding:8px 14px 20px}.hole-intro strong{font-size:28px}.celebration span{font-size:25px}}@media(max-width:360px){.heading{align-items:flex-start;flex-wrap:wrap}.board{max-width:min(100%,calc(100svh - 340px))}}@media(orientation:landscape) and (max-height:560px){.heading{margin-bottom:10px}.heading h1{font-size:26px}.heading .eyebrow{display:none}main{padding:10px 16px}.layout{grid-template-columns:minmax(230px,1fr) minmax(290px,1fr);gap:22px}.board{max-width:calc(100svh - 175px);min-width:210px}.course-note h2{display:none}.course-note{margin:0 0 8px}.scorebar{padding:5px}.course-caption{padding:7px 10px}.scorebar strong{font-size:18px}.status{margin:12px 0;min-height:0}.fine-aim{margin:10px 0}.personal{margin-top:14px}}@media(prefers-reduced-motion:no-preference){dialog[open]{animation:appear .18s ease-out}.celebration{animation:appear .24s ease-out}@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}}

.fine-aim input[type=number]{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:5px;margin-top:8px;font-size:16px}

.quick-help{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;background:#e6eddc;border:1px solid #cbd7bf;border-radius:6px;margin:0 0 14px;font-size:14px}.quick-help strong{font-weight:650}.quick-help .quiet{flex-shrink:0;background:var(--paper)}.personal-best #record-note{display:inline-block;background:var(--gold);padding:7px 12px;border-radius:4px;font-size:12px;letter-spacing:1px;font-weight:750}.score-table{margin-top:20px}#record-note:empty{display:none}.celebration[data-level=birdie]{border:1px solid #d7e79f;box-shadow:0 5px 20px #08251c44}.celebration[data-level=eagle]{border:2px solid #e9d89b;padding:22px}.celebration[data-level=ace]{border:2px solid #e9d89b;inset:22% 18px auto;padding:30px 18px;box-shadow:0 8px 28px #09281e66}.celebration[data-level=ace] span{font-size:42px}.celebration[data-level=eagle] span{font-size:36px}.celebration[data-level=ace]::before{content:'ONE SHOT. ALL THE WAY.';letter-spacing:2px;font-size:12px;color:#f0e6b8}.personal-best .round-result{color:#173f2b}.round-result{border-block:1px solid var(--line);padding:20px 0;margin:15px 0}.round-result>strong{font-size:88px}#score-title{font-size:36px}#score-dialog{padding:26px}#share-status:empty{display:none}@media(max-width:760px){.heading{flex-wrap:wrap}.heading h1{font-size:27px}.mode{margin-left:auto}.quick-help{font-size:12px;padding:8px 10px;gap:8px;margin-bottom:10px}.quick-help strong{display:block}.quick-help .quiet{font-size:12px;min-height:40px;padding:7px 10px}.board{max-width:min(460px,calc(100svh - 325px))}main:has(.quick-help:not([hidden])) .board{max-width:min(460px,calc(100svh - 393px))}.course-caption span{font-size:12px}.celebration[data-level=ace] span{font-size:30px}.celebration[data-level=ace]{padding:18px 12px}.celebration[data-level=eagle] span{font-size:28px}.round-result>strong{font-size:72px}#score-title{font-size:30px}}@media(max-width:360px){.heading h1{font-size:24px}.mode{margin-left:0}.board{min-width:190px;max-width:min(100%,calc(100svh - 350px))}main:has(.quick-help:not([hidden])) .board{max-width:calc(100svh - 410px);min-width:180px}.scorebar{font-size:12px;padding:4px}.scorebar strong{font-size:17px}.course-caption{font-size:12px;padding:6px 8px}.quick-help{margin-bottom:8px}.shot-dock .primary{min-height:48px}.status{padding:8px;margin:8px 0}}@media(orientation:landscape) and (max-height:560px){.quick-help{display:none}.board,main:has(.quick-help:not([hidden])) .board{max-width:calc(100svh - 175px);min-width:210px}.heading{flex-wrap:nowrap}.mode{margin-left:auto}}@media(prefers-reduced-motion:no-preference){.celebration[data-level=ace]{animation:ace .45s ease-out}.celebration[data-level=eagle]{animation:ace .3s ease-out}@keyframes ace{from{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}}

@media(max-width:360px){.heading{flex-wrap:nowrap;align-items:center;gap:8px}.heading h1{font-size:22px;max-width:120px;line-height:1.08}.heading .mode{flex:none;margin-left:auto}.mode button{padding:7px;min-height:40px}.course-caption span{display:none}.course-caption{min-height:30px}.celebration[data-level=ace]{inset:auto 8px 8px;padding:9px 6px;gap:4px}.celebration[data-level=ace]::before{display:none}.celebration[data-level=ace] span{font-size:21px;line-height:1.1}.celebration[data-level=ace] strong{font-size:12px}}

@media(min-width:361px) and (max-width:400px){.heading{flex-wrap:nowrap;align-items:center;gap:8px}.heading h1{font-size:24px;max-width:155px;line-height:1.08}.heading .mode{flex:none;margin-left:auto}}

@media(min-width:361px) and (max-width:400px) and (max-height:700px){.board{max-width:calc(100svh - 390px);min-width:200px}main:has(.quick-help:not([hidden])) .board{max-width:calc(100svh - 455px);min-width:200px}}

.game-guide{border-top:1px solid var(--line);margin-top:40px;padding-top:28px;max-width:760px}.game-guide h2{font-size:30px;line-height:1.2}.game-guide h3{font-size:18px;margin:24px 0 8px}.game-guide p{font-size:16px;line-height:1.7;color:var(--muted)}.game-guide a{text-underline-offset:3px}

/* Difficulty is a compact part of the game, using the existing green/gold palette. */
.start-screen{max-width:480px;margin:24px auto 40px;padding:32px;border:1px solid var(--line);border-top:4px solid var(--green,#173f2b);border-radius:12px;background:var(--paper);text-align:center;box-shadow:0 12px 36px #153d3910}
.start-screen h2{font:44px/1.1 Georgia,serif;margin:12px 0}.start-instruction{font-size:16px;color:var(--muted);margin:10px 0 24px}.difficulty-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;border-radius:8px;background:#e6eada;padding:5px}.difficulty-selector button{min-height:50px;border:2px solid transparent;border-radius:5px;background:transparent;color:#244533;font-size:14px;font-weight:750;letter-spacing:.8px}.difficulty-selector button[aria-pressed=true]{border-color:#173f2b;background:#173f2b;color:#fff;box-shadow:inset 0 -3px #e9d89b}.difficulty-selector button:focus-visible{outline:3px solid #94651d;outline-offset:2px}.start-screen h3{font:26px Georgia,serif;margin:26px 0 10px}#difficulty-description{font-size:16px;line-height:1.6;min-height:78px;margin:0 0 22px;color:var(--muted)}#play-daily{width:100%;min-height:54px}#start-note{line-height:1.5;margin:16px 0 0}#cancel-selection{margin-top:12px}#archived-rounds a{display:block;margin-top:8px}#choose-difficulty{font-size:14px;min-height:44px;flex-shrink:0}#mode-label{line-height:1.6}body:has(#start-screen:not([hidden])) .game-guide{margin-top:25px}.start-screen [hidden],#game-surface[hidden]{display:none!important}
@media(max-width:760px){.start-screen{margin:12px auto 24px;padding:24px 18px}.start-screen h2{font-size:36px}.heading{flex-wrap:wrap!important}.heading h1{max-width:none!important}#difficulty-description{min-height:78px}.heading .eyebrow{display:none}}

.share-tools{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.share-tools>*{flex:1 1 140px;min-height:44px;text-align:center}.share-channels summary{cursor:pointer;min-height:44px;padding:10px 0}.challenge-note{padding:12px;border-left:3px solid var(--ink);background:#e5edda}.share-tools a{text-decoration:none}#return-note{font-weight:650}#streak-detail{color:var(--muted)}

@media(max-width:380px){#score-dialog{padding:18px}.score-table{table-layout:fixed}.score-table th,.score-table td{padding:8px 4px;overflow-wrap:anywhere}}

/* A restrained clubhouse layer: daily proof and competition without interrupting play. */
.clubhouse-card{margin:18px 0;padding:16px;border:1px solid #bdcbbd;border-radius:9px;background:#fff;box-shadow:0 8px 24px #102f270a;text-align:left}.clubhouse-start{margin-top:4px}.clubhouse-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.clubhouse-head .eyebrow{margin:0 0 3px}.clubhouse-card .clubhouse-head h3{font:22px/1.2 Georgia,serif;margin:0}.clubhouse-head>span{flex-shrink:0;color:var(--muted);font-size:12px}.clubhouse-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:14px 0;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden}.clubhouse-stats>div{min-width:0;padding:10px;background:var(--paper)}.clubhouse-stats span{display:block;color:var(--muted);font-size:12px;line-height:1.25}.clubhouse-stats strong{display:block;margin-top:5px;font:26px/1 Georgia,serif}.leaderboard-peek{border-top:1px solid var(--line)}.leaderboard-peek summary{padding-bottom:4px}.leaderboard-list{list-style:none;counter-reset:place;margin:8px 0 4px;padding:0}.leaderboard-list li{counter-increment:place;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #e2e7e0;font-size:14px}.leaderboard-list li::before{content:counter(place);display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#e7ecd9;font-weight:750;font-size:12px}.leaderboard-list li:first-child::before{background:var(--gold)}.leaderboard-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-list li strong{font-size:13px;white-space:nowrap}.leader-context{margin:10px 0 4px;font-weight:650}.clubhouse-result{margin:18px 0}.clubhouse-result form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.clubhouse-result form>label{display:block;margin-bottom:8px;font-weight:650;font-size:14px}.leaderboard-submit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.leaderboard-submit input{min-width:0;width:100%;min-height:46px;padding:10px 12px;border:1px solid #aebdaf;border-radius:6px;background:#fff;color:var(--ink);font-size:16px}.leaderboard-submit input:focus{border-color:#315b43;outline:3px solid #d8e7af;outline-offset:1px}.submit-status{min-height:21px;margin:7px 0 0;font-size:14px;font-weight:650}.clubhouse-card .small{margin:7px 0 0}.clubhouse-start+#play-daily{margin-top:2px}
@media(max-width:520px){.clubhouse-card{padding:14px 12px}.clubhouse-head{align-items:center}.clubhouse-stats>div{padding:9px 7px}.clubhouse-stats strong{font-size:23px}.leaderboard-submit{grid-template-columns:1fr}.leaderboard-submit .quiet{width:100%}.leaderboard-list li{grid-template-columns:26px minmax(0,1fr);gap:7px}.leaderboard-list li strong{grid-column:2;font-weight:600;color:var(--muted);margin-top:-5px}.clubhouse-result{margin-inline:-4px}}
