/* Large, high-contrast type and a fixed play surface for comfortable touch play. */
body{font-size:18px;color:#203a43}button,input,select{font:inherit}button{touch-action:manipulation}button:focus-visible,[tabindex]:focus-visible{outline:3px solid #eaab23;outline-offset:3px}.icon-button{min-width:46px;min-height:46px}button svg{flex-shrink:0}.primary,.secondary{min-height:56px;font-size:19px;padding:14px 22px}.full{font-size:19px}.nav-item{font-size:19px;min-height:58px}.side-label,.side-footer,.side-footer small{font-size:13px}.side-caddy strong{font-size:19px}.side-caddy p,.side-caddy button{font-size:16px}.topbar{height:82px}.breadcrumbs{font-size:16px}.beta{font-size:13px}.profile{font-size:16px}
.hero{min-height:370px}.hero h1{font-size:44px;line-height:1.3}.hero p{font-size:19px;line-height:1.8;color:#405d6b}.hero-link{font-size:18px;min-height:48px}.hero .eyebrow{font-size:15px;letter-spacing:.3px}.hero .hero-plpak{height:310px}.hero-note,.weather{font-size:15px}.intro-strip b,.intro-strip i{font-size:16px}.intro-strip{gap:20px;flex-wrap:wrap}.eyebrow,.section-heading .small{font-size:14px;letter-spacing:.5px}.section-heading h2{font-size:28px;line-height:1.4}.section-heading p,.page-heading p{font-size:18px;line-height:1.7;color:#4e6874}.selected-count{font-size:16px;padding:10px 13px}.course-grid{gap:18px}.card-title h3{font-size:23px}.card-body{padding:20px}.card-body>p{font-size:17px;line-height:1.6;color:#506b77;white-space:normal;min-height:55px}.card-meta,.card-meta strong{font-size:15px}.course-letter,.course-tag{font-size:14px}.selection-check{width:29px;height:29px}.round-route small{font-size:16px}.round-route>div>div{font-size:20px;flex-wrap:wrap}.route-total{font-size:16px}.start-button{font-size:20px;min-width:230px}.resume-banner{font-size:18px}.home-bottom{font-size:15px}.page-heading h1{font-size:36px}.info-panel h3{font-size:24px}.info-panel p{font-size:18px}.pill{font-size:15px}
.modal{max-width:580px;padding:34px}.modal h2{font-size:29px;line-height:1.4;word-break:keep-all;margin-right:22px}.modal>p,.modal .fine-print,.fine-print,.modal p.fine-print{font-size:17px;line-height:1.8;color:#466573}.modal .eyebrow{font-size:14px}.modal-close{width:46px;height:46px}.field,.field input,.field select,select,.check-field{font-size:18px}.field input,select{min-height:52px}.check-field input{width:23px;height:23px}.mode-card b{font-size:21px}.mode-card small{font-size:16px;line-height:1.5}.local-note{font-size:16px;line-height:1.6}.name-grid{gap:15px}.warning-text,.wrong-text,.correct-text{font-size:17px;line-height:1.7}.text-button{font-size:18px;min-height:50px}.guide-steps strong{font-size:20px}.guide-steps small{font-size:17px;line-height:1.7}.guide-steps>div>b{font-size:22px}.quiz-caddy p{font-size:18px;line-height:1.8;color:#36596a}.quiz-question{font-size:23px;line-height:1.6}.quiz-answers button{font-size:19px;min-height:60px;line-height:1.5}.quiz-answers button>span{flex-shrink:0}.mini-holes small,.mini-holes span{font-size:15px}.mini-holes b{font-size:18px}.detail-stats{font-size:17px}.detail-stats b{font-size:30px}.hole-results{font-size:20px}.hole-results strong{font-size:30px}.hole-results small,.final-ranks small{font-size:17px}.final-ranks{font-size:21px}.score-tables h3{font-size:19px}th,td{font-size:16px;padding:14px 12px}.source-note,.source-note a{font-size:16px;line-height:1.8}.rules-grid{gap:18px}.rule-card h3{font-size:24px}.rule-card p{font-size:18px;min-height:90px;line-height:1.7;color:#4d6975}.rule-card .pill,.rule-link{font-size:16px}.learning-banner h3{font-size:24px}.learning-banner p{font-size:17px}.record-stats span{font-size:17px}.record-stats b{font-size:36px}.record-name{font-size:21px}.record-name small{font-size:16px}.record-list strong{font-size:30px}.diff{font-size:20px}.empty-state h3{font-size:26px}.empty-state p{font-size:18px}.mobile-nav button{font-size:16px;min-height:60px}#toast{font-size:18px;max-width:calc(100vw - 28px);bottom:26px;z-index:300}
.game-shell{height:100vh;height:100dvh;min-height:530px;max-width:1280px;padding:0 20px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden}.game-shell .game-header{height:70px;min-height:70px;gap:12px}.game-header small{font-size:16px;color:#426070}.game-header h1{font-size:23px;line-height:1.2}.game-header h1 strong{font-size:30px}.game-header h1 span{font-size:18px;margin-left:10px}.game-header-right{margin-left:auto;gap:8px}.game-header-right .icon-button{width:46px}.game-shell .game-progress{margin:6px 0 10px;gap:4px}.game-progress span{height:5px}.game-status{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:18px;padding:0 14px 10px;flex-shrink:0;max-width:680px;width:100%;margin:0 auto}.game-status>div{display:flex;flex-direction:column;min-width:0}.game-status small{font-size:16px;color:#405b68;line-height:1.4}.turn-summary small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.game-status strong{font-size:29px;font-weight:800;line-height:1.25;color:#207b47}.game-status strong span{font-size:18px;margin-left:4px}.game-status em{font-size:14px;color:#99521b;font-style:normal}.game-shell .game-layout{display:flex;flex-direction:column;gap:0;flex:1;min-height:0}.game-shell .field-area{flex:1;min-height:140px;border-radius:16px;background:#9eb985;display:block}.game-shell .map-wrapper{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;display:block;padding:18px 0 24px}.map-wrapper #course-map{touch-action:pan-y}.game-shell .field-top{top:10px;left:13px;right:13px;font-size:16px;align-items:flex-start}.field-top>span{background:#f6ffe8e6;padding:8px 10px;border-radius:9px;color:#234b35}.field-top button{font-size:16px;min-height:44px;padding:8px 12px;color:#244e39;background:#f8fff1f2;border:1px solid #bed3ab}.game-shell .map-legend{font-size:14px;bottom:9px;left:13px;padding:7px 9px;background:#faffefd9;color:#294e36}.legend-ob{border:2px solid white!important;background:#6c805c;box-shadow:0 0 0 1px #42623e}.caddy-radio{position:absolute;bottom:10px;right:12px;display:flex;align-items:center;gap:8px;max-width:425px;width:47%;padding:6px 12px 6px 5px;background:#f8fcffff;color:#304e5a;border:1px solid #d8e9ec;border-radius:13px;box-shadow:0 3px 12px #243d3020;text-align:left;font-size:16px;line-height:1.5}.caddy-radio .mascot{width:42px;height:55px;object-fit:contain;flex-shrink:0}.caddy-radio>span{min-width:0;display:flex;gap:7px;align-items:baseline}.caddy-radio b{color:#228b46;flex-shrink:0}.caddy-radio>span>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.caddy-radio>svg{flex-shrink:0}.joystick-dock{flex-shrink:0;padding:10px 10px max(10px,env(safe-area-inset-bottom));background:#f3fafc;text-align:center;position:relative}.stick-instruction{font-size:21px;font-weight:800;color:#213c47;line-height:1.5}.joystick-console{display:grid;grid-template-columns:120px 180px 120px;gap:25px;align-items:center;justify-content:center;margin:6px auto 0}.joystick{position:relative;width:180px;height:180px;touch-action:none;user-select:none;cursor:grab;border-radius:50%;border:3px solid #ccdccb;background:radial-gradient(circle at center,#e1eddc 0 31%,#f6fff1 32% 50%,transparent 51%),conic-gradient(#30964c var(--charge,0%),#dbe9d7 0);box-shadow:inset 0 2px 10px #345f331c,0 3px 0 #cfddca;outline-offset:4px;-webkit-tap-highlight-color:transparent}.joystick:before{content:'';position:absolute;inset:12px;border:1px dashed #92ad89;border-radius:50%}.stick-thumb{position:absolute;width:60px;height:60px;left:calc(50% - 30px);top:calc(50% - 30px);display:grid;place-items:center;background:linear-gradient(#42ac5e,#218044);border:4px solid #fff;border-radius:50%;color:#fff;box-shadow:0 5px 9px #1c573d4d;transform:translate(var(--stick-x,0px),var(--stick-y,0px));transition:transform .14s,box-shadow .14s;pointer-events:none}.dragging .stick-thumb{transition:none;box-shadow:0 7px 18px #1c573d70}.dragging{cursor:grabbing;border-color:#2d9550}.cancel-shot .stick-thumb{background:#6e8682}.stick-axis{position:absolute;left:20px;right:20px;height:1px;top:50%;background:#99b19155}.stick-axis.y{transform:rotate(90deg)}.stick-north{position:absolute;top:9px;left:calc(50% - 7px);color:#68845d;font-size:15px}.stick-side{display:flex;flex-direction:column;align-items:center;gap:10px}.shot-mode{font-size:16px;font-weight:700;color:#326342;background:#e2f0d9;padding:6px 9px;border-radius:8px;white-space:nowrap}.shot-mode.putting{color:#286478;background:#dcedf4}.stick-help{font-size:16px;color:#405f6d;display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;white-space:nowrap}.stick-readout{display:flex;flex-direction:column;align-items:center;gap:3px;color:#365c65;font-size:17px}.stick-readout strong{font-size:36px;line-height:1.15;color:#237e42}.stick-readout strong small{font-size:18px;margin-left:2px}.stick-readout>b{font-size:23px;color:#274d45}.power-meter{width:88px;height:8px;border-radius:6px;background:#d4e4cc;overflow:hidden;margin:5px 0 8px}.power-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#77b247,#269749 75%,#e7a229);transition:width .06s}.stick-caption{font-size:16px;color:#46626d;line-height:1.5;margin:5px 0 0}.joystick-dock .relief-button{font-size:15px;color:#755535;display:block;text-align:center;padding:4px 12px;min-height:36px;width:auto;margin:0 auto}.unavailable{opacity:.5;cursor:default}.dock-action{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);z-index:3;min-width:250px;box-shadow:0 4px 24px #23443444}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.aim-line{animation:aim-flow 1.2s linear infinite}.active-ball-ring{animation:ball-pulse 1.7s ease-in-out infinite}.event-modal{max-width:440px!important;text-align:center;border:3px solid #d7e8c7;box-shadow:0 20px 80px #152e3a44}.shot-event{padding:4px 0}.shot-event .event-symbol{display:grid;place-items:center;width:88px;height:88px;margin:0 auto 14px;border-radius:50%;background:#e4f1d4;color:#248844}.shot-event h2{font-size:46px;margin:0 0 16px;color:#208844}.shot-event p{font-size:22px;line-height:1.6;color:#264850;margin:0 0 12px;word-break:keep-all}.shot-event>strong{display:block;font-size:20px;line-height:1.6;color:#376748;margin-bottom:24px;word-break:keep-all}.shot-event>small{display:block;font-size:15px;color:#566f78;margin-top:12px}.shot-event.ob .event-symbol{background:#fff0df;color:#c15324}.shot-event.ob h2{color:#ba481f}.shot-event.water .event-symbol{background:#dff1fa;color:#286e9a}.shot-event.cup .event-symbol{animation:cup-celebrate .7s ease-out}.event-modal .modal-close{top:12px;right:12px}
@keyframes aim-flow{to{stroke-dashoffset:-3.2}}@keyframes ball-pulse{50%{opacity:.4}}@keyframes cup-celebrate{0%{transform:scale(.3) rotate(-20deg)}65%{transform:scale(1.15) rotate(8deg)}100%{transform:scale(1)}}
@media(max-width:1100px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:36px}.hero .hero-plpak{height:270px}.hero-text{padding:28px}.hero .eyebrow{font-size:14px}.rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero p{font-size:18px}.hero-link{font-size:17px}}
@media(max-width:760px){.topbar{height:72px;padding:0 16px}.breadcrumbs{font-size:15px;gap:6px}.breadcrumbs>span:first-of-type{display:none}.beta,.breadcrumbs>strong~span{display:none}.top-actions .icon-button{width:44px}.top-actions .brand-avatar{width:34px!important;height:34px!important}.hero{display:block;min-height:0;overflow:hidden}.hero-text{padding:25px 24px 8px;position:relative}.hero h1{font-size:35px;letter-spacing:-1px}.hero .eyebrow{font-size:14px}.hero p{font-size:18px;max-width:none;margin-top:18px}.hero-link{font-size:17px;max-width:none;gap:8px;margin:10px 0}.hero-art{height:175px;position:relative;margin:0!important;width:100%}.hero .hero-plpak{height:185px;left:44%;right:auto;bottom:0;max-width:none}.hero-scenery{mask-image:linear-gradient(180deg,transparent,#000 30%)}.hero-note{display:none}.intro-strip{padding:20px 0;justify-content:flex-start;gap:12px}.intro-strip b{font-size:16px}.intro-strip>span{gap:8px}.intro-strip svg{width:20px}.course-grid,.rules-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}.section-heading h2{font-size:27px}.section-heading p{font-size:18px}.section-heading .small{font-size:14px}.card-title h3{font-size:24px}.card-body>p{font-size:18px;min-height:0;margin-top:10px}.card-cover{aspect-ratio:2.2}.card-meta,.card-meta strong{font-size:16px}.course-letter,.course-tag{font-size:15px}.card-body{padding:20px}.round-route>div>div{font-size:18px;gap:12px;justify-content:center}.round-icon{display:none}.round-route small{font-size:16px}.start-button{font-size:20px;min-height:58px}.home-bottom{font-size:15px}.resume-banner{font-size:18px}.mobile-nav button{font-size:16px;gap:5px;padding:7px 10px}.page-heading h1{font-size:31px}.page-heading p{font-size:18px}.learning-banner h3{font-size:21px}.learning-banner p{font-size:17px}.rule-card h3{font-size:23px}.rule-card p{font-size:18px;min-height:0}.rule-card .pill,.rule-link{font-size:16px}.source-note{font-size:16px}.record-stats{grid-template-columns:1fr}.record-stats>div{flex-direction:row;justify-content:space-around}.record-stats span{font-size:17px}.record-name{font-size:18px}.record-name small{font-size:15px}.record-list>div{gap:9px;flex-wrap:wrap}.records-panel h2{font-size:25px}.modal-backdrop{padding:12px}.modal{padding:32px 22px 24px;max-height:94dvh}.modal h2{font-size:27px}.modal>p,.modal .fine-print,.modal p.fine-print{font-size:17px}.modal .eyebrow{font-size:14px}.mode-card small{font-size:16px}.guide-steps strong{font-size:20px}.guide-steps small{font-size:17px}.quiz-caddy p{font-size:18px}.quiz-question{font-size:22px}.quiz-answers button{font-size:19px}.game-shell{padding:0 10px}.game-shell .game-header{height:64px;min-height:64px;gap:5px}.game-header h1{font-size:20px}.game-header h1 strong{font-size:27px}.game-header h1 span{font-size:16px;margin-left:6px}.game-header small{font-size:15px}.game-header-right{gap:0}.game-header-right .icon-button{width:44px}.game-header-right>.icon-button:last-child{display:none}.game-shell .game-progress{margin:3px 0 8px}.game-status{padding:0 8px 8px;gap:10px}.game-status strong{font-size:26px}.game-status strong span{font-size:16px}.game-status small{font-size:15px}.game-status em{font-size:13px}.game-shell .field-area{border-radius:13px;min-height:130px}.game-shell .field-top{font-size:15px;top:7px;left:8px;right:8px}.field-top button{font-size:15px;min-height:40px;padding:6px 10px}.field-top>span{padding:7px}.game-shell .map-legend{font-size:13px;left:8px;bottom:7px}.caddy-radio{width:46px;height:49px;bottom:6px;right:7px;border-radius:50%;padding:0;justify-content:center}.caddy-radio .mascot{width:33px;height:45px}.caddy-radio>span,.caddy-radio>svg{display:none}.joystick-dock{padding:8px 0 max(6px,env(safe-area-inset-bottom))}.stick-instruction{font-size:19px}.joystick-console{grid-template-columns:86px 168px 82px;gap:8px;margin-top:4px}.joystick{width:168px;height:168px}.stick-side{gap:4px}.shot-mode{font-size:15px;padding:5px 7px}.stick-help{font-size:15px;min-height:43px;gap:3px}.stick-help svg{width:18px}.stick-readout{font-size:16px}.stick-readout strong{font-size:34px}.stick-readout>b{font-size:22px}.power-meter{width:72px}.stick-caption{font-size:14px;margin-top:3px}.joystick-dock .relief-button{font-size:14px;min-height:32px;padding:2px 5px}.shot-event h2{font-size:42px}.shot-event p{font-size:22px}.shot-event>strong{font-size:20px}#toast{font-size:18px;bottom:90px}}
@media(max-width:370px){.breadcrumbs{font-size:14px}.top-actions .brand-avatar{display:none}.game-shell{padding:0 7px}.joystick-console{grid-template-columns:76px 156px 76px;gap:6px}.joystick{width:156px;height:156px}.stick-instruction{font-size:18px}.stick-help{font-size:14px}.shot-mode{font-size:14px}.game-header h1 span{font-size:15px}.game-status strong{font-size:24px}}
@media(max-height:740px) and (min-width:371px) and (max-width:760px){.joystick-console{grid-template-columns:86px 146px 82px}.joystick{width:146px;height:146px}.stick-caption{margin-top:1px}.game-shell .game-header{height:59px;min-height:59px}.game-status{padding-bottom:5px}.joystick-dock{padding-top:5px}}
@media(max-height:520px) and (orientation:landscape){.game-shell{min-height:340px;padding:0 12px}.game-shell .game-header{height:52px;min-height:52px}.game-status{position:absolute;right:24px;top:8px;width:280px;padding:0;gap:12px}.game-status small{font-size:14px}.game-status strong{font-size:22px}.game-header-right{margin-right:300px}.game-shell .game-progress{margin:1px 0 6px}.game-shell .game-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:10px}.game-shell .field-area{height:100%}.joystick-console{grid-template-columns:78px 148px 74px;gap:7px}.joystick{width:148px;height:148px}.joystick-dock{align-self:end;padding:5px 0}.stick-instruction{font-size:17px}.stick-caption{font-size:14px}.stick-help,.shot-mode{font-size:14px}.caddy-radio{display:none}.game-shell .field-top>span{display:none}.game-shell .field-top{justify-content:flex-end}.game-shell .map-legend{font-size:12px}}
@media(prefers-reduced-motion:reduce){.aim-line,.active-ball-ring,.shot-event.cup .event-symbol{animation:none}.stick-thumb,.power-meter i{transition:none}}

.card-body>p,.side-caddy p,.side-caddy strong,.side-caddy button{word-break:keep-all}.side-caddy button{font-size:15px;gap:4px}.game-shell .field-top>span,.game-shell .field-top button{box-shadow:0 1px 4px #20352615}

/* Text-free PlayPark symbol. Corner clipping is supplied by the UI. */
.brand-avatar{border-radius:22%}

/* Elevation stays readable above the map without shrinking the joystick. */
.terrain-readout{position:absolute;z-index:2;top:64px;left:13px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#f8fff0f2;color:#244d36;border:1px solid #bfd2a5;border-radius:10px;padding:8px 11px;text-align:left;box-shadow:0 2px 6px #29482b15;max-width:calc(100% - 26px)}.terrain-readout span{font-size:16px}.terrain-readout strong{font-size:17px}.game-shell .map-legend{display:flex;flex-direction:column;gap:3px}.terrain-key{font-size:14px}.terrain-key:before{display:none}.ob-resume-marker{pointer-events:none}
@media(max-width:760px){.terrain-readout{top:53px;left:8px;padding:5px 8px;gap:0}.terrain-readout span{font-size:14px}.terrain-readout strong{font-size:15px}.game-shell .map-legend{padding:4px 7px;font-size:13px;gap:1px}.terrain-key{font-size:13px}}
@media(max-height:740px) and (max-width:760px){.terrain-readout{top:7px;left:8px;max-width:calc(100% - 125px)}.game-shell .field-top>span{visibility:hidden}}
@media(max-height:520px) and (orientation:landscape){.terrain-readout{top:8px;left:8px}.terrain-readout span{font-size:14px}.terrain-readout strong{font-size:15px}}
