:root{color-scheme:light;--ink:#272727;--paper:#ebebeb;--muted:#626662;--accent:#ed512e;--line:rgba(37,37,37,.16)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}body{background:#ddd;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;-webkit-tap-highlight-color:transparent}button,input,a,select{touch-action:manipulation}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.35}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.icon-button{width:44px;height:44px;display:grid;place-items:center;color:var(--ink);background:transparent;border-radius:5px}.icon-button:hover,.nudge:hover{background:#ddd}.icon-button svg{width:22px;height:22px}.icon-button.muted .sound-waves{opacity:.18}.eyebrow{font-size:12px;letter-spacing:1.8px;color:var(--muted)}
.putting-shell,.arcade-shell{max-width:1400px;margin:auto;background:var(--paper);min-height:100svh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.putting-shell{display:flex;flex-direction:column;height:100svh;min-height:690px}.module-header{display:flex;align-items:center;gap:24px;flex:none;min-height:86px;padding:15px 4%;border-bottom:1px solid var(--line)}.games-link{display:flex;align-items:center;gap:9px;font-size:14px;min-height:44px}.module-name{font-size:12px;font-weight:550;letter-spacing:2px;line-height:1.35;margin:0}.module-name>span{display:flex;align-items:center;gap:8px;font-size:25px;font-weight:750;letter-spacing:-1px}.module-name i{display:block;width:6px;height:6px;border-radius:50%;background:var(--accent)}.header-actions{display:flex;margin-left:auto}.hole-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 4%;flex:none}.hole-picker{display:flex;align-items:center;gap:20px;min-width:0}.hole-picker label{font-size:12px;letter-spacing:1px;color:var(--muted);white-space:nowrap}.hole-picker select{border:0;background:transparent;color:var(--ink);font-size:16px;min-height:40px;max-width:100%;padding:0 20px 0 0}.progress{display:flex;gap:7px}.progress i{width:7px;height:7px;display:block;border-radius:50%;background:#bfc0bc}.progress i.cleared{background:var(--accent)}.progress i.current{outline:1px solid var(--ink);outline-offset:3px}
.putting-stage{position:relative;display:flex;flex:1;min-height:290px;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 50%,#e3e4e0,#e9e9e7 70%);overflow:hidden}.course-heading{position:absolute;top:18px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.4px;color:var(--muted);pointer-events:none;z-index:1}.course-heading #difficulty{color:#aa3c20}.canvas-wrap{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;padding:14px 0 4px}.canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;user-select:none}.course-caption{width:100%;padding:3px 4% 13px;text-align:center;flex:none}.course-caption p{font-size:14px;line-height:1.4;margin:0 0 5px}.course-caption>span{font-size:11px;letter-spacing:1.5px;color:var(--muted)}.putting-deck{padding:12px 4% 10px;border-top:1px solid var(--line);flex:none}.shot-message{font-size:14px;line-height:1.4;min-height:24px;color:#545953;margin-bottom:6px}.shot-message.success{color:#a33d22}.shot-controls{display:flex;gap:38px;max-width:590px}.slider-panel{flex:1;min-width:0}.control-label{display:flex;justify-content:space-between;gap:5px;font-size:12px;letter-spacing:1px}.control-label output{letter-spacing:0;color:var(--muted);font-variant-numeric:tabular-nums}.range-row{display:flex;align-items:center;gap:8px}.nudge{width:32px;height:40px;background:transparent;color:#656865;flex:none;font-size:19px}.range-row input{min-width:0;width:100%;height:40px;margin:0;accent-color:var(--ink);cursor:ew-resize;touch-action:none;-webkit-appearance:none;appearance:none;background:transparent}.range-row input::-webkit-slider-runnable-track{height:2px;background:#b7bbb5}.range-row input::-webkit-slider-thumb{appearance:none;background:var(--paper);border:2px solid var(--ink);width:19px;height:19px;border-radius:50%;margin-top:-8px}.range-row input::-moz-range-track{height:2px;background:#b7bbb5}.range-row input::-moz-range-thumb{background:var(--paper);border:2px solid var(--ink);width:16px;height:16px;border-radius:50%}.putt-actions{display:flex;align-items:center;gap:18px}.retry-button{display:flex;align-items:center;gap:10px;min-height:48px;background:transparent;color:var(--ink);font-size:24px;padding:0 10px 0 0}.retry-button span{font-size:14px}.control-tip{font-size:12px;line-height:1.5;color:var(--muted);margin-left:auto}.putt-button,.primary{background:var(--ink);color:#f5f5f5;display:flex;align-items:center;justify-content:space-between;gap:24px;border-radius:5px;min-height:56px;padding:0 22px;font-size:15px}.putt-button{min-width:160px;font-weight:650;letter-spacing:1px}.putt-button>span:last-child,.primary>span{font-size:24px;font-weight:400}.putt-button:hover:not(:disabled),.primary:hover{background:#454545}.module-footer{padding:2px 4% 10px;font-size:11px;letter-spacing:1px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex:none}
.putt-overlay{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:18px;text-align:center;background:rgba(233,234,230,.88);backdrop-filter:blur(7px);overflow:auto}.putt-overlay h2{font-size:clamp(32px,4vw,54px);line-height:1.08;font-weight:450;letter-spacing:-2px;margin:12px 0}.putt-overlay p{font-size:14px;line-height:1.5;color:var(--muted);margin:12px 0}.putt-overlay .eyebrow{color:#a33d22}.result-number{font-size:52px;letter-spacing:-3px;font-weight:350;line-height:1.1;margin-top:18px}.putt-overlay .primary{min-width:210px;margin:22px auto 0}.text-button{min-height:44px;background:transparent;font-size:14px;color:var(--ink)}.putt-overlay .result-best{font-size:12px;margin:0}.putt-overlay .result-card{max-width:400px}
@media(min-width:900px){.putting-deck{position:relative;padding-right:350px;min-height:128px}.putt-actions{position:absolute;right:4%;top:37px}.control-tip{display:none}.putting-stage{min-height:350px}.canvas-wrap{padding:3px 0}.course-caption{position:absolute;width:240px;text-align:left;left:4%;bottom:22px}.course-caption p{font-size:16px}.course-heading{top:30px}.module-footer{padding-bottom:15px}}
@media(max-width:600px){.module-header{gap:16px;min-height:76px;padding-block:10px}.module-name>span{font-size:22px}.module-name{font-size:11px;letter-spacing:1.5px}.games-link{font-size:13px;gap:5px}.hole-bar{gap:10px;padding-block:6px}.hole-picker{display:block;flex:1}.hole-picker label{font-size:11px;display:block;margin-bottom:1px}.hole-picker select{min-height:32px;font-size:15px}.progress{padding-right:4px;gap:6px}.progress i{width:6px;height:6px}.course-heading{top:8px;font-size:10px;letter-spacing:1px}.canvas-wrap{padding-top:21px;padding-bottom:0}.course-caption{padding-bottom:9px}.course-caption p{font-size:13px}.course-caption>span{font-size:10px}.shot-controls{gap:18px}.range-row{gap:0}.nudge{width:28px;min-height:44px}.putting-deck{padding-top:10px}.shot-message{font-size:13px}.putt-button{min-height:53px;min-width:143px}.module-footer{font-size:10px}.result-number{font-size:42px;margin-top:12px}.putt-overlay .primary{margin-top:16px}}
@media(max-width:350px){.module-header{gap:10px}.module-name>span{font-size:20px}.module-name{font-size:10px}.games-link span{display:none}.games-link{width:28px;font-size:19px}.control-tip{display:none}.putt-button{margin-left:auto}.hole-picker select{max-width:218px}.progress{gap:5px}}
@media(max-height:590px) and (orientation:landscape){.putting-shell{display:grid;grid-template-columns:1fr 260px;grid-template-rows:62px 1fr;min-height:350px;height:100svh}.module-header{grid-column:1 / -1;min-height:0;height:62px;padding-block:3px}.hole-bar{grid-column:2;grid-row:2;align-self:start;padding:10px 18px;display:block;z-index:2}.hole-picker{display:block}.hole-picker label{display:block;font-size:11px}.hole-picker select{font-size:15px;min-height:35px;max-width:225px}.progress{margin-top:8px}.putting-stage{grid-column:1;grid-row:2;min-height:0;border-right:1px solid var(--line)}.course-heading{font-size:10px;top:8px}.canvas-wrap{padding:10px 0 4px}.course-caption{padding:2px 12px 6px}.course-caption p{font-size:12px}.course-caption>span{display:none}.putting-deck{grid-column:2;grid-row:2;align-self:end;border:0;padding:0 18px 10px}.shot-message{font-size:12px;min-height:32px}.shot-controls{gap:14px}.control-label{font-size:10px}.range-row .nudge{width:20px}.putt-actions{gap:10px}.control-tip{display:none}.retry-button{font-size:21px}.putt-button{min-width:120px;min-height:44px;font-size:13px;padding-inline:15px}.module-footer{display:none}.putt-overlay{padding:10px}.putt-overlay h2{font-size:30px;margin:6px 0}.putt-overlay p{margin:6px 0;font-size:12px}.result-number{font-size:30px;margin:0}.putt-overlay .eyebrow{font-size:10px}.putt-overlay .primary{min-height:40px;margin-top:9px}.text-button{min-height:35px;font-size:12px}.putt-overlay .result-best{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.range-row #power::-webkit-slider-runnable-track{height:4px;background:linear-gradient(to right,var(--accent) 0 var(--strength,45%),#b7bbb5 var(--strength,45%) 100%);border-radius:2px}.range-row #power::-webkit-slider-thumb{margin-top:-7px}.range-row #power::-moz-range-track{height:4px;background:#b7bbb5;border-radius:2px}.range-row #power::-moz-range-progress{height:4px;background:var(--accent);border-radius:2px}
.arcade-shell{padding:30px 7%;display:flex;flex-direction:column}.arcade-top{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:50px;border-bottom:1px solid var(--line);padding-bottom:20px;font-size:12px;letter-spacing:1.5px}.arcade-top strong{font-size:18px;letter-spacing:-.5px;font-weight:700}.arcade-heading{font-size:clamp(40px,7vw,82px);letter-spacing:-3px;font-weight:450;line-height:1.03;margin:50px 0 36px}.game-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.game-choice{display:flex;flex-direction:column;min-height:310px;padding:28px 0;gap:16px}.game-choice:first-child{border-right:1px solid var(--line);padding-right:40px}.game-choice:last-child{padding-left:40px}.game-choice:hover h2{color:#a83a21}.game-choice .game-number{font-size:12px;letter-spacing:1.5px;color:var(--muted)}.game-choice h2{font-size:clamp(33px,5vw,64px);font-weight:450;letter-spacing:-2px;line-height:1.02;margin:10px 0}.game-choice p{font-size:16px;color:var(--muted);line-height:1.5;max-width:280px;margin:0}.game-choice .play-link{display:flex;justify-content:space-between;align-items:center;margin-top:auto;font-size:14px;padding-top:18px}.play-link span{font-size:28px;color:var(--accent)}.arcade-bottom{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px;color:var(--muted);padding:24px 0;margin-top:auto}
@media(max-width:650px){.arcade-shell{padding:20px 7%;padding-top:max(20px,env(safe-area-inset-top))}.arcade-top{font-size:10px;letter-spacing:1px}.arcade-heading{font-size:47px;letter-spacing:-2px;margin:30px 0}.game-list{grid-template-columns:1fr}.game-choice{min-height:220px;gap:8px}.game-choice:first-child{border-right:0;border-bottom:1px solid var(--line);padding:22px 0}.game-choice:last-child{padding:22px 0}.game-choice h2{font-size:36px;letter-spacing:-1.5px;margin:7px 0}.game-choice p{font-size:14px;max-width:100%}.game-choice .play-link{padding-top:6px}.arcade-bottom{font-size:10px;gap:15px}}
.game-list{grid-template-columns:repeat(3,minmax(0,1fr))}.game-list .game-choice{padding:28px 28px;border-right:1px solid var(--line)}.game-list .game-choice:first-child{padding-left:0}.game-list .game-choice:last-child{padding-right:0;border-right:0}.game-list .game-choice h2{font-size:clamp(32px,4.1vw,58px)}
@media(max-width:800px){.game-list{grid-template-columns:1fr}.game-list .game-choice{padding:22px 0;min-height:205px;border-right:0;border-bottom:1px solid var(--line)}.game-list .game-choice:last-child{border-bottom:0}.game-list .game-choice h2{font-size:36px}}

.game-list{grid-template-columns:repeat(2,minmax(0,1fr))}.game-list .game-choice{padding:28px;border-bottom:1px solid var(--line)}.game-list .game-choice:nth-child(odd){padding-left:0;border-right:1px solid var(--line)}.game-list .game-choice:nth-child(even){padding-right:0;border-right:0}.game-list .game-choice:nth-last-child(-n+2){border-bottom:0}.offline-panel{display:flex;gap:24px;justify-content:space-between;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}.offline-panel strong{font-size:20px;font-weight:500}.offline-panel p{font-size:13px;color:var(--muted);line-height:1.5;margin:8px 0 0}.offline-panel .primary{font-size:13px;white-space:nowrap}
@media(max-width:800px){.game-list{grid-template-columns:1fr}.game-list .game-choice:nth-child(n){padding:22px 0;border-right:0;border-bottom:1px solid var(--line)}.game-list .game-choice:last-child{border-bottom:0}.offline-panel{align-items:flex-start;flex-direction:column;gap:16px}.offline-panel .primary{width:100%;justify-content:center}}
