@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{font-family:'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#273b32;background:#f7f8f2;font-synthesis:none;--green:#205b42;--lime:#e4ecc5;--muted:#82897f;--line:#e8ebe1;--cream:#f7f8f2}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{border:0;background:none}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,svg:focus-visible{outline:3px solid #d0a344;outline-offset:4px}button{transition:background .15s,transform .15s,box-shadow .15s}button:active:not(:disabled){transform:translateY(1px)}a{color:var(--green)}h1,h2,h3,p{margin:0}svg{flex-shrink:0;vertical-align:middle}small{font-size:12px}i,em{font-style:normal}.sidebar{width:225px;background:#fcfcf8;position:fixed;left:0;top:0;bottom:0;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:35px 22px 24px}.brand{display:flex;align-items:center;gap:11px;padding:0 11px;text-align:left;font-size:27px;font-weight:800;letter-spacing:-1.5px;color:var(--green)}.brand-icon{height:45px;width:38px;display:grid;place-items:center}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:-1px;color:#7b8c7f;font-weight:500}.side-label{font-size:8px;letter-spacing:1.8px;color:#9b9e90;margin:43px 14px 16px}.sidebar nav{display:grid;gap:8px}.nav-item{display:flex;gap:15px;align-items:center;text-align:left;padding:16px 17px;border-radius:9px;font-size:14px;font-weight:600;color:#798278}.nav-item:hover{background:#f0f3e7}.nav-item.active{background:#eaf0df;color:var(--green)}.new-dot{margin-left:auto;width:5px;height:5px;background:#527947;border-radius:100%}.side-caddy{margin-top:auto;padding:0 10px;text-align:center}.side-caddy .mascot{width:96px;margin-bottom:7px}.side-caddy strong{display:block;font-size:13px}.side-caddy p{font-size:11px;line-height:1.9;color:#919589;margin-top:8px}.side-caddy button{font-size:10px;margin-top:17px;color:#697e62;border-bottom:1px solid #e7eadd;padding-bottom:10px;display:inline-flex;align-items:center;gap:6px}.side-footer{margin-top:37px;font-size:9px;text-align:center;color:#888f81}.status-dot{display:inline-block;width:5px;height:5px;background:#80a771;border-radius:100%;margin-right:3px}.side-footer small{display:block;font-size:6px;letter-spacing:.6px;margin-top:9px;color:#a7ad9f}.workspace{margin-left:225px}.topbar{height:84px;padding:0 43px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fbfcf7}.breadcrumbs{font-size:11px;color:#8a9286;display:flex;gap:15px;align-items:center}.breadcrumbs strong{color:#4f5d51;font-weight:500}.beta{font-size:8px;letter-spacing:1px;background:#e9eeda;border:1px solid #e0e6ce;color:#6e825a;padding:3px 7px;border-radius:4px}.top-actions{display:flex;align-items:center;gap:15px}.icon-button{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid transparent;border-radius:50%;color:#66715f}.icon-button:hover{background:#edf1e4}.muted-line{position:absolute;width:24px;height:2px;background:#8d7564;transform:rotate(-45deg)}.avatar{background:#e7eed9;border:3px solid #f3f5eb;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:12px;font-weight:700;color:#4b6b42;margin-left:6px}.profile{font-size:11px;color:#586453}#main{max-width:1440px;margin:auto;padding:32px 42px 20px}.hero{border:1px solid #e2e7d1;border-radius:18px;display:grid;grid-template-columns:1fr 1.1fr;min-height:316px;overflow:hidden;position:relative;background:#edf1d9}.hero-text{padding:35px 0 29px 35px;position:relative;z-index:1}.eyebrow{font-size:10px;letter-spacing:1.2px;font-weight:600;color:#688456;display:flex;align-items:center;gap:7px}.eyebrow i{width:5px;height:5px;border-radius:50%;background:#6c8e53}.hero h1{font-size:37px;line-height:1.4;letter-spacing:-1.6px;font-weight:800;margin:17px 0 15px;white-space:nowrap;color:#25543c}.hero h1 em{color:#517c46}.hero p{font-size:12px;line-height:1.9;color:#7c8b70}.hero-link{padding:0;display:inline-flex;gap:9px;align-items:center;font-size:10px;font-weight:600;margin-top:23px;color:#47663e}.hero-art{position:relative;min-width:0}.hero-art>.scene{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 19%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 19%)}.weather{position:absolute;top:24px;right:25px;background:#fffdf5b8;border:1px solid #fff7df;padding:7px 11px;border-radius:20px;display:flex;align-items:center;gap:7px;font-size:9px;color:#697555;backdrop-filter:blur(8px)}.weather svg{color:#9a9a54}.hero-note{position:absolute;top:60px;left:30%;transform:rotate(-9deg);font-size:14px;letter-spacing:2px;color:#536f42;font-weight:800}.hero-note span{font-size:25px;vertical-align:super;margin-left:5px}.intro-strip{display:flex;align-items:center;justify-content:space-around;border-bottom:1px solid var(--line);padding:21px 0 22px;gap:10px}.intro-strip>span{display:flex;align-items:center;gap:9px;font-size:10px;color:#8f9983}.intro-strip b{color:#5a6e51;font-size:10px;font-weight:500}.intro-strip i{color:#9a9f90;font-size:9px;margin-left:0}.intro-strip svg{color:#81956a}.course-section{margin-top:30px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:19px}.section-heading .small{font-size:8px;letter-spacing:1.8px;color:#9aab86;margin-bottom:6px}.section-heading h2{font-size:20px;font-weight:700;letter-spacing:-.7px}.section-heading p{font-size:11px;color:#979e90;margin-top:6px}.selected-count{font-size:10px;border:1px solid #dde5d0;border-radius:20px;padding:8px 12px;color:#99a18e;white-space:nowrap;align-self:flex-end}.selected-count b{color:#5f7c43;margin-right:4px}.course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.course-card{min-width:0;border:1.5px solid #e5e8df;background:#fffefb;border-radius:12px;overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.course-card:hover{transform:translateY(-3px);box-shadow:0 6px 15px #29473109}.course-card.selected{border-color:#709157;box-shadow:0 0 0 1px #70915710}.card-cover{width:100%;display:block;padding:0;aspect-ratio:1.67;position:relative;overflow:hidden;text-align:left}.scene{display:block;width:100%;height:100%}.course-letter{position:absolute;top:13px;left:13px;font-size:8px;letter-spacing:1.1px;font-weight:700;color:#3e5a3d;background:#fffff577;padding:5px 7px;border-radius:4px}.selection-check{position:absolute;right:11px;top:11px;width:21px;height:21px;border-radius:50%;background:#ffffffcc;border:1px solid #fafff1;display:grid;place-items:center}.selected .selection-check{background:#5f8050;border-color:#5f8050;color:white}.course-tag{position:absolute;left:12px;bottom:11px;color:#52654a;background:#fffef1e3;padding:4px 7px;border-radius:4px;font-size:8px}.card-body{padding:14px 13px 10px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:5px}.card-title button{padding:0;text-align:left}.card-title h3{font-size:14px;font-weight:700;letter-spacing:-.5px}.difficulty{display:flex;gap:3px;align-items:flex-end}.difficulty i{width:3px;background:#e7e9df;border-radius:1px;height:5px}.difficulty i:nth-child(2){height:8px}.difficulty i:nth-child(3){height:11px}.difficulty .filled{background:var(--course-color)}.card-body>p{font-size:8.5px;color:#a0a395;line-height:1.8;margin-top:6px;white-space:nowrap;letter-spacing:-.2px}.card-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eff0e8;margin-top:12px;padding-top:10px;min-height:29px;color:#9a9d8e;font-size:8px;letter-spacing:.5px}.card-meta i{padding:0 5px}.card-meta strong{color:#67834c;font-size:9px;letter-spacing:0;font-weight:500}.card-meta button{padding:0 2px;color:#8c967e}.round-bar{margin-top:24px;background:#eef2e5;border:1px solid #e0e7d3;border-radius:12px;padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:15px}.round-route{display:flex;align-items:center;gap:13px}.round-icon{width:41px;height:41px;display:grid;place-items:center;border-radius:10px;background:#e1e9d1;color:#738c58}.round-route small{font-size:8px;color:#99a188;display:block;margin-bottom:4px}.round-route>div>div{display:flex;align-items:center;gap:14px;font-size:12px;color:#5b6e4e}.round-route button{padding:0;color:#9daa90;display:grid;place-items:center}.route-total{font-size:9px;letter-spacing:.4px;color:#92a17f;margin-left:10px}.route-total i{margin:0 6px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:15px;background:#225d43;color:#fffef1;border-radius:8px;padding:15px 23px;font-size:12px;font-weight:600;box-shadow:0 3px 6px #234e3310;min-height:47px}.primary:hover:not(:disabled){background:#154b33;box-shadow:0 4px 10px #245b4420}.start-button{min-width:206px}.start-button svg{margin-left:12px}.home-bottom{display:flex;justify-content:space-between;align-items:center;padding:17px 1px;color:#a5ac9b;font-size:8px}.home-bottom span,.home-bottom button{display:flex;gap:6px;align-items:center}.home-bottom button{font-size:8px;color:#a0a991}.resume-banner{width:100%;display:flex;align-items:center;gap:10px;background:#e4efdd;border:1px solid #d6e4c9;padding:14px;border-radius:8px;margin-top:20px;color:#4c7445;font-size:11px;text-align:left}.resume-banner span{flex:1}.resume-banner b{margin-right:10px}.mobile-nav{display:none}.page-heading{padding:22px 0 31px}.page-heading h1{font-size:31px;letter-spacing:-1px;margin-top:13px}.page-heading p{font-size:13px;line-height:1.8;color:#8d9786;margin-top:10px}.atlas .course-card{margin-top:10px}.info-panel{display:flex;gap:25px;align-items:center;padding:36px;background:#eaf0dd;border-radius:13px;margin-top:35px;color:#55734c}.info-panel h3{font-size:17px}.info-panel p{font-size:12px;color:#819074;line-height:1.9;margin-top:8px}.pill{display:inline-block;font-size:10px;color:#89957b;background:#f0f3e8;padding:5px 8px;border-radius:5px;white-space:nowrap}.record-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px}.record-stats>div{padding:24px;background:#fffef9;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:1fr auto;gap:4px;color:#789568}.record-stats b{font-size:34px;color:#2c6447;grid-column:2;grid-row:1/3}.record-stats b small{font-size:15px;color:#a8b396;font-weight:400}.record-stats span{font-size:11px;color:#929d84;margin-top:10px}.records-panel{background:#fffefb;border:1px solid var(--line);border-radius:14px;padding:27px}.records-panel select{max-width:250px}.empty-state{text-align:center;padding:25px 0 35px}.empty-state .mascot{width:125px}.empty-state h3{font-size:18px;margin:15px 0 8px}.empty-state p{color:#95a18c;font-size:12px;margin-bottom:25px}.rank-number{display:grid;place-items:center;width:33px;height:33px;font-size:16px;font-weight:700;color:#7c8a6e;background:#edf2e3;border-radius:50%}.rank-number.first{color:#997b34;background:#f5edd2}.record-list>div{display:flex;align-items:center;gap:20px;padding:18px 5px;border-top:1px solid var(--line)}.record-name{flex:1;font-size:13px}.record-name small{display:block;color:#a7ae9d;font-size:10px;margin-top:5px}.record-list strong{font-size:24px}.record-list strong small{font-size:11px;color:#909b84;font-weight:400}.diff{min-width:40px;font-size:15px;color:#67854d;text-align:right}.learning-banner{display:flex;align-items:center;gap:25px;background:#eaf0dd;border:1px solid #e0e8cf;border-radius:14px;padding:12px 30px;margin-bottom:28px}.learning-banner .mascot{width:100px}.learning-banner>div{flex:1}.learning-banner h3{font-size:18px}.learning-banner p{color:#829477;font-size:12px;margin:7px 0 15px}.learning-banner>b{font-size:35px;color:#50734a}.learning-banner>b small{font-size:17px;color:#9fae8d}.learning-progress{background:#dce6cd;height:5px;border-radius:8px;max-width:360px;overflow:hidden}.learning-progress span{display:block;background:#71915a;height:100%;border-radius:8px}.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.rule-card{padding:23px;text-align:left;background:#fffefb;border:1px solid var(--line);border-radius:12px}.rule-card:hover{border-color:#9eaf8a;background:#fcfdf5}.rule-number{color:#abb997;font-size:13px;letter-spacing:1px}.rule-card .pill{float:right;font-size:9px}.rule-card .pill.learned{color:#5f8046;background:#eaf0df}.rule-card h3{font-size:15px;margin:23px 0 10px}.rule-card p{font-size:11px;line-height:1.9;color:#8b9582;min-height:65px}.rule-link{margin-top:20px;display:flex;justify-content:space-between;font-size:10px;color:#658351}.source-note{margin:25px 0;font-size:10px;line-height:1.9;color:#a2aa98}.source-note a{white-space:nowrap;color:#7b8d69}.modal-backdrop{position:fixed;inset:0;z-index:90;background:#1b382c60;backdrop-filter:blur(5px);padding:24px;display:grid;place-items:center;animation:fade-in .15s ease}.modal{position:relative;background:#fffef8;border:1px solid #f4f5eb;border-radius:20px;box-shadow:0 22px 85px #102e3430;padding:36px;width:min(100%,490px);max-height:90dvh;overflow:auto;overscroll-behavior:contain}.modal.wide{width:min(100%,690px)}.modal-close{position:absolute;top:13px;right:13px;background:#f4f5eb;z-index:3}.modal .eyebrow{font-size:9px;letter-spacing:1.3px;margin:8px 28px 12px 0}.modal h2{font-size:24px;letter-spacing:-.8px;line-height:1.4;margin-bottom:13px}.modal h2 small{font-size:13px;color:#8b9b7c}.modal>p{font-size:12px;color:#8b9580;line-height:1.9}.full{width:100%;margin-top:14px}.text-button{padding:10px;font-size:12px;color:#80956d;min-height:42px}.secondary{border:1px solid #dce4ce;background:#f0f4e7;padding:14px;border-radius:8px;font-size:12px;color:#70845c}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:23px 0}.mode-card{display:flex;flex-direction:column;gap:8px;align-items:center;border:1px solid #e3e8d8;border-radius:10px;padding:19px 8px;color:#7c8a6d}.mode-card.active{background:#eaf1de;border:1.5px solid #7d975f;color:#49713e}.mode-card b{font-size:14px}.mode-card small{font-size:9px;color:#8e9e7e}.name-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.name-grid:has(>.field:only-child){grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#8a977d;margin:10px 0}.field input,select{min-height:44px;width:100%;border:1px solid #dfe5d4;background:#fafcf4;border-radius:7px;padding:10px 12px;color:#4c6942;font-size:12px}.check-field{display:flex;align-items:center;gap:8px;font-size:11px;margin:15px 0;color:#748768}.check-field input{accent-color:#527843;width:17px;height:17px}.local-note{display:flex;gap:7px;align-items:flex-start;font-size:10px;color:#899b7a;line-height:1.8;background:#f2f5ea;padding:12px;border-radius:6px}.modal p.fine-print,.fine-print{font-size:10px;color:#9ca590;line-height:1.9;margin:17px 0 7px}.warning-text{color:#b08246!important;font-size:10px!important;margin-top:12px}.detail-cover{height:190px;border-radius:12px;overflow:hidden;margin:10px 0 24px}.detail-stats{display:flex;gap:30px;margin:22px 0;color:#95a18b;font-size:11px}.detail-stats b{font-size:23px;color:#587549;margin-right:4px}.mini-holes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mini-holes button{display:flex;flex-direction:column;text-align:left;border:1px solid #e6eadb;border-radius:8px;padding:12px;gap:5px;background:#f7f9ee}.mini-holes button:hover{background:#e9f0dc}.mini-holes small{color:#a2b48d;font-size:9px}.mini-holes b{font-size:12px}.mini-holes span{font-size:10px;color:#8a9b79;display:flex;justify-content:space-between;align-items:center}.preview-map{height:350px;background:#b5cb8a;border-radius:12px;overflow:hidden;display:flex;justify-content:center}.preview-map svg{height:100%;max-width:100%}.quiz-caddy{display:flex;align-items:center;gap:15px;padding:12px 14px;margin:19px 0;border-radius:12px;background:#eef3e3}.quiz-caddy .mascot{width:90px;flex-shrink:0}.quiz-caddy p{font-size:12px;line-height:1.9;color:#6b835a}.guide-steps{display:grid;gap:22px;margin:26px 0}.guide-steps>div{display:flex;gap:15px;align-items:flex-start}.guide-steps>div>b{font-size:14px;color:#9eaf85;border-bottom:1px solid #bac8a5;padding-bottom:5px}.guide-steps strong{font-size:12px;display:block;color:#5d7650}.guide-steps small{font-size:10px;display:block;line-height:1.9;color:#97a08b;margin-top:4px}.quiz-question{font-size:15px;margin:25px 0 16px}.quiz-answers{display:grid;gap:10px}.quiz-answers button{text-align:left;display:flex;align-items:center;gap:12px;border:1px solid #dde5d0;border-radius:8px;padding:14px;font-size:12px}.quiz-answers button>span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#eef2e4;color:#879873;font-size:10px}.quiz-answers button.correct{border-color:#6e9552;background:#e9f3da;opacity:1}.quiz-answers button.wrong{border-color:#ceaa8a;background:#fff4e9}.correct-text,.wrong-text{font-size:11px;line-height:1.9;margin:16px 0;color:#62864d}.wrong-text{color:#ad7a4d}.correct-text svg{margin-right:5px}.result-mascot,.rule-mascot{text-align:center;margin:10px 0}.result-mascot svg{width:110px}.rule-mascot svg{width:100px}.hole-results{margin:20px 0}.hole-results>div{display:flex;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.hole-results>div>span{margin-left:auto;color:#819369;font-size:11px}.hole-results strong{font-size:25px}.hole-results small{font-size:11px;font-weight:400;color:#92a080}.final-ranks>div{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.final-ranks b{font-size:13px;flex:1}.final-ranks strong{font-size:27px}.final-ranks small{font-size:11px;font-weight:400;color:#8b9a7a}.final-ranks em{font-size:14px;min-width:30px;text-align:right;color:#76905c}.score-tables h3{font-size:13px;color:#6e855c;margin:24px 0 13px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}th,td{padding:12px 9px;text-align:center;border-bottom:1px solid #e4e9d7}thead{color:#7b8e68;background:#f2f6e9}th:first-child{text-align:left}.par-row{color:#a1ac92;background:#fbfcf5}.under{color:#408756;background:#edf5e2}.game-shell{max-width:1440px;margin:auto;padding:0 30px 25px}.game-header{height:87px;display:flex;align-items:center;gap:19px;border-bottom:1px solid var(--line)}.game-header small{font-size:10px;color:#94a186}.game-header h1{font-size:16px;letter-spacing:1px;color:#658355;font-weight:500;margin-top:6px}.game-header h1 strong{font-size:25px;color:#365e3e;margin-left:3px}.game-header h1 span{font-size:12px;letter-spacing:0;color:#9ba68f;margin-left:15px}.game-header h1 i{margin:0 8px}.game-header-right{margin-left:auto;display:flex;align-items:center;gap:15px;font-size:21px;color:#547949}.game-progress{display:flex;gap:5px;margin:15px 0}.game-progress span{height:4px;flex:1;border-radius:3px;background:#e4e9d9}.game-progress span.done{background:#90aa70}.game-progress span.current{background:#386b46}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:25px}.field-area{background:#abc481;border:1px solid #99b173;position:relative;border-radius:17px;overflow:hidden;min-height:580px;display:flex;align-items:center;justify-content:center;flex-direction:column}.field-top{position:absolute;top:17px;left:20px;right:20px;display:flex;justify-content:space-between;font-size:11px;color:#476441;z-index:2;pointer-events:none}.field-top>span{display:flex;align-items:center;gap:5px;font-weight:500}.field-top button{padding:7px 10px;border-radius:6px;background:#f2f9dcbe;color:#607a4c;font-size:9px;pointer-events:auto}.field-top button svg{margin-right:4px}.map-wrapper{width:100%;height:calc(100dvh - 180px);min-height:570px;max-height:800px;display:flex;justify-content:center;align-items:center}.map-wrapper svg{width:100%;height:100%;touch-action:none;user-select:none}.map-legend{position:absolute;left:20px;bottom:19px;background:#f4f9ddba;display:flex;gap:12px;padding:7px 10px;border-radius:5px;pointer-events:none;font-size:8px;color:#73845c}.map-legend span{display:flex;align-items:center;gap:4px}.map-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.legend-fairway{background:#ccdf96}.legend-sand{background:#ecd9aa}.legend-ob{border:1px dashed #fff;background:#aac481}.map-hint{position:absolute;right:17px;bottom:20px;font-size:9px;color:#698453;pointer-events:none}.map-hint svg{margin-right:5px}.game-panel{background:#fffef8;border:1px solid var(--line);border-radius:15px;padding:21px;height:fit-content}.player-strip{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:20px;border-bottom:1px solid var(--line)}.player-chip{padding:7px 9px;border:1px solid #e8ecdF;border-radius:6px;display:flex;align-items:center;gap:6px;color:#98a38b}.player-chip.active{background:#eef3e1;border-color:#c9d9b5;color:#567747}.player-chip>span{width:9px;height:9px;border-radius:50%;border:1px solid #b4beaa}.player-chip>b{font-size:10px;font-weight:500;max-width:90px;overflow:hidden;text-overflow:ellipsis}.player-chip>small{font-size:9px}.shot-heading{margin:23px 0}.shot-heading .eyebrow{font-size:9px}.shot-heading h2{font-size:17px;margin-top:9px;font-weight:500;letter-spacing:-.5px}.shot-heading h2>b{font-size:33px;font-weight:700}.shot-heading h2>span{float:right;font-size:10px;margin-top:16px;padding:4px 8px;background:#eef2e4;border-radius:4px;color:#8ba077}.shot-stats{display:grid;grid-template-columns:1fr 1fr;background:#f4f6ed;border:1px solid #edf0e4;border-radius:10px;padding:15px 17px;margin-bottom:24px}.shot-stats>div+div{border-left:1px solid #e3e8d7;padding-left:20px}.shot-stats small{display:block;color:#99a48b;font-size:9px;margin-bottom:4px}.shot-stats b{font-size:25px;color:#507743}.shot-stats em{font-size:12px;font-weight:400;color:#91a380}.penalty{display:block;font-size:8px;color:#b98a51;margin-top:4px}.control-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#708760}.control-label button{font-size:9px;color:#91a07e;padding:5px 0}.control-label button svg{margin-right:3px}.power-label{margin-top:21px}.control-label strong{color:#59813e;font-size:14px}.shot-controls input[type=range]{width:100%;margin:14px 0 0;accent-color:#5f8349;cursor:pointer;height:17px}#power{appearance:none;-webkit-appearance:none;height:9px;border-radius:10px;background:linear-gradient(to right,#93af6f var(--fill,40%),#e9eddc var(--fill,40%))}#power::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;border:3px solid #fffef6;background:#638348;box-shadow:0 1px 5px #53723c55}.range-captions{display:flex;justify-content:space-between;color:#9fac8e;font-size:9px;margin-top:8px}.expected{display:flex;justify-content:space-between;margin:16px 0;color:#a2ad92;font-size:9px}.expected b{font-size:11px;font-weight:500;color:#819768}.shot-button{width:100%;min-height:52px;font-size:18px;font-weight:600}.shot-button>span{margin-left:auto;font-size:9px;letter-spacing:2px;font-weight:400;color:#a5c294}.relief-button{padding:12px 0 0;font-size:9px;width:100%;display:flex;justify-content:space-between;color:#a6af96}.relief-button span{color:#b29772}.caddy-game{display:flex;gap:10px;margin:23px -5px 0;padding:16px 6px 0;border-top:1px solid var(--line);align-items:flex-start}.caddy-game .mascot{width:70px;margin-top:9px}.caddy-game>div{flex:1}.caddy-game>div>span{font-size:8px;color:#9dab8c}.caddy-game>div>span b{font-size:11px;color:#638447;margin-left:4px}.caddy-game p{font-size:11px;line-height:1.9;margin-top:5px;color:#758866;word-break:keep-all}.caddy-game button{font-size:8px;color:#8da579;margin:10px 0 0;padding:0}.game-fine{color:#acb59c;font-size:8px;line-height:1.8;margin-top:17px;text-align:center}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,15px);padding:13px 22px;max-width:90vw;width:max-content;background:#274f3e;color:#fcffed;font-size:12px;line-height:1.7;border-radius:10px;box-shadow:0 5px 20px #173d2925;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200}#toast.show{opacity:1;transform:translate(-50%,0)}@keyframes fade-in{from{opacity:0}to{opacity:1}}
@media(min-width:1550px){#main{padding:42px 55px}.hero{min-height:365px}.hero-text{padding:42px}.hero h1{font-size:44px}.hero p{font-size:14px}.hero-link{font-size:12px}.course-section{margin-top:37px}.section-heading{margin-bottom:23px}.card-title h3{font-size:17px}.card-body>p{font-size:10px}.card-body{padding:18px}.card-meta{font-size:10px}.card-meta strong{font-size:11px}.card-cover{aspect-ratio:1.65}.round-bar{padding:22px;margin-top:29px}.round-route>div>div{font-size:14px}.course-tag{font-size:10px}.intro-strip b{font-size:12px}.intro-strip i{font-size:11px}}
@media(max-width:1200px){.sidebar{width:190px;padding:30px 16px}.workspace{margin-left:190px}.brand{font-size:24px;gap:4px}.side-label{font-size:7px;letter-spacing:1.4px}.nav-item{font-size:13px;gap:12px}#main{padding:25px}.topbar{padding:0 25px}.hero-text{padding-left:25px}.hero h1{font-size:32px}.hero p{font-size:10px}.hero{min-height:293px}.hero-link{font-size:9px}.course-grid{gap:10px}.card-body{padding:12px 10px}.card-title h3{font-size:12px}.card-body>p{font-size:7.5px}.course-tag{font-size:7px}.card-meta{font-size:7px}.route-total{display:none}.game-layout{grid-template-columns:minmax(0,1fr) 305px}.game-panel{padding:18px}.map-hint{display:none}.rules-grid{gap:12px}.rule-card{padding:18px}.rule-card h3{font-size:13px}.rule-card p{font-size:10px}}
@media(max-width:1000px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card-body{padding:16px}.card-title h3{font-size:17px}.card-body>p{font-size:10px}.card-meta{font-size:9px}.course-tag{font-size:9px}.hero{grid-template-columns:1.15fr 1fr}.hero h1{font-size:28px}.hero-text{padding:28px 0 27px 24px}.hero p{font-size:10px}.hero .eyebrow{font-size:8px}.hero-note{display:none}.weather{font-size:7px;padding:6px;right:13px;top:14px}.intro-strip{gap:15px;justify-content:space-between}.intro-strip i{display:none}.intro-strip b{font-size:8px}.intro-strip>span{gap:5px}.section-heading h2{font-size:18px}.selected-count{font-size:9px;padding:7px}.round-route>div>div{font-size:10px;gap:8px}.round-icon{display:none}.start-button{min-width:170px;font-size:11px;padding:12px 16px;gap:8px}.start-button svg{margin:0}.rules-grid{grid-template-columns:repeat(2,1fr)}.rule-card h3{font-size:15px}.rule-card p{font-size:11px}.learning-banner{padding:12px 20px;gap:15px}.learning-banner .mascot{width:80px}.learning-banner h3{font-size:15px}.learning-banner p{font-size:10px}.record-stats{gap:12px}.record-stats>div{padding:18px}.record-stats b{font-size:28px}.record-stats span{font-size:9px}.records-panel{padding:20px}.records-panel .section-heading{align-items:flex-start;flex-direction:column}.records-panel select{width:100%;max-width:none}.page-heading h1{font-size:27px}}
@media(max-width:760px){.sidebar{display:none}.workspace{margin-left:0}.topbar{height:67px;padding:0 20px}.breadcrumbs{gap:10px;font-size:10px}.profile{display:none}.top-actions{gap:4px}.top-actions .avatar{width:31px;height:31px;margin-left:9px}.top-actions>.icon-button:first-child{display:none}#main{padding:20px 18px 100px}.hero{grid-template-columns:1.15fr 1fr;min-height:275px;border-radius:14px}.hero-text{padding:28px 0 24px 24px}.hero h1{font-size:29px;letter-spacing:-1.4px}.hero p{font-size:10px}.hero-link{font-size:9px;margin-top:21px}.hero .eyebrow{font-size:8px;letter-spacing:.3px}.hero-art .scene{mask-image:linear-gradient(90deg,transparent,#000 30%)}.weather{display:none}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;z-index:20;background:#fcfdf8f5;backdrop-filter:blur(12px);border-top:1px solid #e7ebdc;padding:8px 17px max(10px,env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:60px;padding:6px 10px;color:#9ca88e;font-size:9px}.mobile-nav button.active{color:#315f40}.intro-strip{padding:18px 2px;gap:5px}.intro-strip>span{gap:4px}.intro-strip b{font-size:9px}.intro-strip svg{width:16px}.course-section{margin-top:25px}.section-heading{gap:7px;align-items:flex-end}.section-heading h2{font-size:18px;letter-spacing:-.8px}.section-heading p{font-size:10px;line-height:1.7}.section-heading .small{font-size:7px;letter-spacing:1.3px}.selected-count{font-size:8px;padding:6px 8px}.course-grid{gap:13px}.card-title h3{font-size:15px}.card-body{padding:13px 12px}.card-body>p{font-size:8px}.card-meta{font-size:8px;margin-top:10px}.course-letter{font-size:7px;top:10px;left:10px}.selection-check{width:19px;height:19px;top:9px;right:9px}.course-tag{font-size:8px;bottom:9px;left:9px}.round-bar{padding:17px;gap:15px;flex-direction:column;margin-top:21px}.round-route{width:100%;justify-content:center}.round-icon{display:grid;width:35px;height:35px}.round-route small{font-size:9px}.round-route>div>div{font-size:13px;gap:15px}.start-button{width:100%;font-size:13px;min-height:48px}.start-button svg{margin-left:15px}.home-bottom{justify-content:center;font-size:8px}.home-bottom button{display:none}.resume-banner{font-size:10px;line-height:1.8}.resume-banner b{display:block}.page-heading{padding:14px 0 25px}.page-heading h1{font-size:26px}.page-heading p{font-size:11px}.info-panel{padding:25px;gap:15px}.info-panel h3{font-size:15px}.info-panel p{font-size:10px}.record-stats{gap:9px}.record-stats>div{padding:16px 11px;display:flex;flex-direction:column;align-items:center;gap:5px}.record-stats svg{width:20px}.record-stats b{font-size:30px}.record-stats b small{font-size:12px}.record-stats span{font-size:8px;margin-top:0}.record-list>div{gap:12px}.records-panel{padding:19px 14px}.records-panel h2{font-size:17px}.record-name{font-size:11px}.record-list strong{font-size:23px}.record-name small{font-size:9px}.diff{font-size:12px;min-width:26px}.learning-banner{gap:11px;padding:15px}.learning-banner .mascot{width:69px}.learning-banner h3{font-size:14px}.learning-banner>b{font-size:26px}.learning-banner>b small{font-size:12px}.learning-banner p{font-size:9px;line-height:1.8}.rule-card{padding:18px 15px}.rule-card h3{font-size:13px;margin-top:18px}.rule-card p{font-size:10px;line-height:1.9;min-height:78px}.rule-card .pill{font-size:7px;padding:4px 5px}.rule-link{font-size:9px}.source-note{font-size:9px}.modal-backdrop{padding:16px}.modal{padding:30px 23px;border-radius:17px;max-height:90dvh}.modal h2{font-size:22px}.modal>p{font-size:11px}.modal .eyebrow{font-size:8px}.guide-steps strong{font-size:11px}.guide-steps small{font-size:9px}.mode-card small{font-size:8px}.modal .fine-print{font-size:9px}.detail-cover{height:145px}.detail-stats{gap:20px}.detail-stats b{font-size:21px}.quiz-caddy{gap:10px;padding:12px 10px}.quiz-caddy .mascot{width:75px}.quiz-caddy p{font-size:11px}.quiz-question{font-size:14px}.quiz-answers button{font-size:11px}.game-shell{padding:0 13px 20px}.game-header{height:74px;gap:8px}.game-header h1{font-size:12px}.game-header h1 strong{font-size:22px}.game-header h1 span{font-size:10px;margin-left:7px}.game-header small{font-size:9px}.game-header-right{gap:2px;font-size:17px}.game-header-right>span{display:none}.game-header-right .icon-button{width:31px}.game-progress{gap:3px;margin:12px 0}.game-layout{grid-template-columns:1fr;gap:13px}.field-area{min-height:0;border-radius:13px}.map-wrapper{height:46dvh;min-height:290px;max-height:490px}.field-top{top:12px;left:13px;right:13px;font-size:9px}.field-top button{font-size:8px;padding:6px 8px}.map-legend{bottom:10px;left:10px;font-size:7px;gap:9px;padding:6px 8px}.game-panel{padding:17px;border-radius:13px;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.player-strip{grid-column:1/-1;padding-bottom:12px;gap:5px}.player-chip{font-size:9px;padding:6px 8px}.shot-heading{grid-column:1;margin:15px 0 12px}.shot-heading h2{font-size:13px;margin-top:4px;white-space:nowrap}.shot-heading h2>b{font-size:29px}.shot-heading h2>span{font-size:8px;float:none;margin-left:7px;padding:3px 5px}.shot-heading .eyebrow{font-size:8px}.shot-stats{grid-column:2;margin:14px 0 12px;padding:10px 11px;gap:9px}.shot-stats>div+div{padding-left:10px}.shot-stats b{font-size:21px;white-space:nowrap}.shot-stats small{font-size:7px}.shot-stats em{font-size:9px}.shot-controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.control-label{grid-column:1;grid-row:1;font-size:10px}.control-label button{font-size:8px}.power-label{grid-column:2;margin:0}.shot-controls input#angle{grid-column:1;grid-row:2;margin-top:9px}.shot-controls input#power{grid-column:2;grid-row:2;margin-top:13px}.range-captions{grid-column:2;grid-row:3;font-size:7px;margin-top:3px}.expected{grid-column:1;grid-row:3;margin:2px 0 12px;font-size:7px;gap:5px;align-items:center}.expected b{font-size:9px}.shot-button{grid-column:1/-1;min-height:49px;margin-top:9px}.relief-button{grid-column:1/-1;font-size:8px;min-height:32px}.caddy-game{grid-column:1/-1;margin:15px 0 0;padding-top:13px;gap:12px}.caddy-game .mascot{width:59px;margin-top:0}.caddy-game p{font-size:10px;margin-top:2px}.caddy-game button{font-size:8px;margin-top:5px}.game-fine{grid-column:1/-1;font-size:7px;margin:10px 0 0}.game-panel>.primary{grid-column:1/-1}.penalty{font-size:7px}.score-tables h3{font-size:12px}th,td{padding:10px 8px;font-size:10px}#toast{bottom:90px;font-size:11px}}
@media(max-width:420px){.hero{min-height:265px;grid-template-columns:1.5fr 1fr}.hero h1{font-size:27px}.hero-text{padding-left:19px;z-index:2}.hero-art{margin-left:-110px}.hero-art .scene{mask-image:linear-gradient(90deg,transparent,transparent 15%,#000 60%)}.hero-link{font-size:8px;gap:4px}.hero p{font-size:9px}.hero .eyebrow{font-size:7px}.hero-note{display:none}.section-heading h2{font-size:16px}.section-heading p{font-size:9px}.card-title h3{font-size:13px}.card-body>p{font-size:7px}.card-meta{font-size:7px}.card-meta strong{font-size:8px}.difficulty{gap:2px}.intro-strip b{font-size:8px}.intro-strip svg{width:14px}.card-cover{aspect-ratio:1.5}.topbar{padding:0 15px}.breadcrumbs{font-size:9px;gap:8px}.beta{font-size:7px}.learning-banner h3{font-size:12px}.learning-banner p{font-size:8px}.rule-card h3{font-size:12px}.rule-card p{font-size:9px}.rule-card{padding:15px 12px}.shot-heading h2{font-size:12px}.shot-heading h2>b{font-size:25px}.shot-heading h2>span{font-size:7px;margin-left:4px}.game-header h1 i{margin:0 4px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Mobile labels remain readable on the compact two-column course layout. */
@media(max-width:760px){
 .top-actions>.icon-button:first-child{display:inline-grid}
 .card-title h3{font-size:15px}.card-body>p{font-size:10px;white-space:normal;word-break:keep-all;min-height:34px;line-height:1.7}.card-meta{font-size:9px}.card-meta strong{font-size:10px}
 .intro-strip b{font-size:9px}.course-tag{font-size:9px}.card-cover{aspect-ratio:1.55}
 .map-wrapper{height:38dvh;min-height:280px;max-height:410px}
 .caddy-game{grid-row:3;margin:10px 0 13px;padding-top:10px}.caddy-game p{font-size:12px;line-height:1.8}.caddy-game>div>span{font-size:10px}.caddy-game button{font-size:10px}
 .shot-controls{grid-row:4}.control-label{font-size:12px}.control-label button{font-size:10px}.range-captions{font-size:9px}.expected{font-size:9px}.expected b{font-size:10px}.relief-button{font-size:10px}.game-fine{font-size:9px}
 .player-chip>b{font-size:11px}.player-chip>small{font-size:10px}.shot-heading .eyebrow{font-size:10px}.shot-stats small{font-size:9px}
}

/* Home identity and records navigation */
.guest-name{border:0;background:none;padding:0;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}.guest-name span{font-size:12px;color:#397a55}
.record-tabs{display:flex;gap:6px;margin:0 0 20px;padding:5px;background:#e8efe9;border-radius:14px;max-width:480px}.record-tabs button{flex:1;border:0;background:transparent;border-radius:10px;padding:12px 8px;font:inherit;font-size:14px;font-weight:700;color:#56675b;cursor:pointer}.record-tabs button[aria-selected="true"]{background:#fff;color:#19613d;box-shadow:0 2px 7px #183c1814}.records-ranking{max-width:760px}.records-ranking .season-board{background:#fff;border-radius:18px;overflow:hidden}.records-ranking .season-table-wrap{max-height:65vh}
/* 1.2.3: five destinations, aligned home sections and compact music. */
.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-help{display:flex;align-items:center;gap:6px;min-height:44px;padding:8px 12px;border:1px solid #dce9ed;border-radius:12px;background:#fff;color:#174b91;font-size:14px}.music-page{max-width:960px;margin:auto}.music-page-controls{display:flex;gap:10px;margin:16px 0}.music-track-list{border:0;padding-top:0}.music-track-list button{min-height:54px}.album-player.album-compact{grid-template-columns:40px minmax(0,1fr) auto;gap:12px;padding:12px 16px;box-shadow:none}.album-compact .album-disc{width:40px;height:40px;font-size:22px}.album-compact .album-controls{grid-column:auto;display:flex}.album-compact .album-controls .album-play{width:auto;min-width:72px;font-size:14px}.album-compact .album-open{display:grid;place-items:center;width:44px;min-width:44px;min-height:44px;padding:8px}.album-compact .album-open::before{content:none!important}.album-compact .album-now strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}.album-compact .album-now small{font-size:12px}.home-topline{margin-bottom:16px}.home-topline+.album-player{margin:0 0 16px}.intro-strip{padding-block:16px}.course-section{margin-top:20px}.home-bottom{padding-block:16px}.consent-choice-note{font-size:13px;line-height:1.6;color:#526354}
@media(max-width:760px){.mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-inline:6px;gap:0}.mobile-nav button{min-width:0;padding:6px 2px;font-size:12px;min-height:48px}.album-player.album-compact{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px}.album-compact .album-disc{display:none}.album-compact .album-controls{gap:6px;grid-column:2}.album-compact .album-controls .album-play{min-width:64px;width:64px;padding:4px}.album-compact .album-open{width:44px;min-width:44px}.home-topline{margin-bottom:12px}.home-topline+.album-player{margin-bottom:12px}.intro-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-block:14px}.intro-strip>span{justify-content:center;min-width:0}.intro-strip b{font-size:10px}.course-section{margin-top:12px}}
.album-compact .album-controls button::before{content:none!important}

/* Playpark poster palette: Sky #cae9f1 · Navy #1e2838 · Grass #9dc759. */
:root{--green:#228b46;--lime:#b7d964;--muted:#75858d;--line:#e0ebed;--cream:#f3fafc;color:#1e2838;background:#f3fafc}
.sidebar{background:#1e2838;border-color:#1e2838;padding-top:24px}.brand{justify-content:center;padding:0}.brand-lockup{width:117px;height:auto;display:block;object-fit:contain}.side-label{color:#8399ad;margin-top:20px;letter-spacing:1.4px}.nav-item{color:#b7c6d7}.nav-item:hover{background:#2b3b4e;color:white}.nav-item.active{background:#2ba457;color:white;box-shadow:0 4px 13px #0002}.new-dot{background:#ffe873}.side-caddy strong{color:#fff}.side-caddy p{color:#a7bbcd}.side-caddy button{color:#b7de7e;border-color:#354658}.side-footer{color:#a2b4c5}.side-footer small{color:#7d91a6}.status-dot{background:#9fd769}.side-caddy .mascot{width:104px;margin:0 auto 15px}.mascot{height:auto;object-fit:contain;display:block}.topbar{background:#fff;border-color:#dce9ed}.breadcrumbs{color:#77909c}.breadcrumbs strong{color:#263a4e}.beta{background:#e7f4e1;color:#43843e;border-color:#d3e8c8;font-size:8px}.brand-avatar{padding:0;object-fit:contain;border:0;border-radius:9px;background:none}.icon-button{color:#587184}.icon-button:hover{background:#e8f4f8}.profile{color:#5d7486}
.hero{background:#cae9f1;border-color:#b9dee8;min-height:328px}.hero-text{padding:34px 0 28px 35px}.hero .eyebrow{color:#497983}.hero .eyebrow i{background:#27944a}.hero h1{color:#1e2838;font-weight:900}.hero h1 em{color:#228b46}.hero p{color:#537487}.hero-link{color:#1b7350}.hero-art{isolation:isolate}.hero-scenery{position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 22%)}.hero-scenery .scene{height:100%;width:100%;object-fit:cover}.hero-scenery:before{content:'';position:absolute;left:30%;top:21%;width:75px;height:20px;background:#fff;border-radius:50px;box-shadow:22px -9px 0 1px white,39px 0 0 0 white;opacity:.85;z-index:1}.hero-plpak{position:absolute;left:44%;right:auto;transform:translateX(-50%);bottom:9px;height:274px;width:auto;max-width:64%;object-fit:contain;z-index:2;filter:drop-shadow(0 10px 5px #35562822)}.weather{top:19px;right:21px;z-index:3;background:#fffdf4de;color:#48768a;border-color:#effbff}.weather svg{color:#d6a329}.hero-note{top:71px;right:8%;left:auto;color:#337847;font-size:11px;z-index:2;transform:rotate(-9deg)}.hero-note span{color:#f1b735}
.eyebrow{color:#5c9174}.intro-strip{border-color:#deeaec}.intro-strip>span{color:#5f8c9b}.intro-strip b{color:#536e80}.intro-strip i{color:#879da9}.intro-strip svg{color:#379152}.section-heading .small{color:#70a4a8}.section-heading h2{color:#253a4c}.section-heading p{color:#7b929e}.selected-count{border-color:#cde3d1;color:#789282;background:#fff}.selected-count b{color:#228b46}.course-card{background:#fff;border-color:#dbe8ea}.course-card.selected{border-color:#41a655;box-shadow:0 0 0 1px #41a65514}.selected .selection-check{background:#299c4f;border-color:#299c4f}.card-title h3{color:#283e4d}.card-body>p{color:#7d939c}.course-letter{color:#27516a;background:#ffffffac}.course-tag{color:#3d673e;background:#fffdebdc}.card-meta{border-color:#e8efee;color:#899eaa}.card-meta strong{color:#29924b}.difficulty i:not(.filled){background:#e1eaed}.round-bar{background:#ecf6e5;border-color:#d6e8c7}.round-icon{background:#d9ebc4;color:#43893e}.round-route small{color:#849678}.round-route>div>div{color:#3d6945}.route-total{color:#7b9671}.primary{background:#228b46;box-shadow:0 4px 10px #208f4419}.primary:hover:not(:disabled){background:#197c3b;box-shadow:0 5px 15px #208f4430}.home-bottom{color:#8ba0aa}.home-bottom button{color:#738f9c}.resume-banner{background:#e9f6ed;border-color:#c9e6d2;color:#2d804b}
.page-heading h1{color:#21384b}.page-heading p{color:#7b93a2}.info-panel{background:#dff1f6;color:#377b94}.info-panel p{color:#608997}.pill{background:#edf5f7;color:#678392}.record-stats>div,.records-panel,.rule-card{background:white;border-color:#dfe9ec}.record-stats b{color:#29844a}.record-stats>div{color:#49a25c}.record-stats span{color:#7e919c}.record-name small{color:#879cac}.rank-number{background:#e9f4e1;color:#52864d}.rank-number.first{background:#fff3bd;color:#9b8019}.diff{color:#29924a}.learning-banner{background:#e1f2f7;border-color:#cbe4eb}.learning-banner h3{color:#2e627b}.learning-banner p{color:#68909f}.learning-banner>b{color:#2e9662}.learning-progress{background:#c1e3d5}.learning-progress span{background:#37a45c}.rule-card:hover{background:#f5fcfd;border-color:#89bbcb}.rule-card p{color:#78929f}.rule-number{color:#88b5bd}.rule-card h3{color:#284256}.rule-link{color:#2b8a4d}.rule-card .pill.learned{background:#e4f4df;color:#438638}.source-note{color:#7e98a5}.source-note a{color:#448092}
.modal{background:#fff;border-color:#e3eff2}.modal h2{color:#213d52}.modal>p{color:#708d9d}.modal-close{background:#edf5f8}.mode-card{color:#6e8b9a;border-color:#dce8ec}.mode-card.active{background:#e8f5e3;border-color:#49a44e;color:#31823d}.mode-card small{color:#7e988c}.field{color:#648293}.field input,select{color:#2e654b;background:#f6fbfc;border-color:#d7e7ec}.local-note{background:#edf7fa;color:#61899b}.secondary{background:#eef7e8;border-color:#d1e5c6;color:#548647}.check-field{color:#708a8c}.check-field input{accent-color:#299448}.quiz-caddy{background:#e8f5f8}.quiz-caddy p{color:#4c8194}.quiz-answers button{border-color:#d9e8ee}.quiz-answers button>span{color:#5797a1;background:#e8f5f8}.quiz-answers button.correct{background:#e6f7df;border-color:#46a444}.text-button{color:#4a9165}.mini-holes button{background:#f0f9fb;border-color:#d7e9ef}.mini-holes button:hover{background:#e6f3dc}.mini-holes b{color:#3b765c}.detail-stats b{color:#2d8950}.result-mascot .mascot{width:110px;margin:auto}.rule-mascot .mascot{width:100px;margin:auto}.empty-state .mascot{margin:auto}.guide-steps strong{color:#336a6f}.guide-steps small{color:#78939e}.guide-steps>div>b{color:#7cabae;border-color:#b7d9d9}
.game-header{border-color:#d9e8ec}.game-header h1,.game-header h1 strong{color:#266f46}.game-header h1 span,.game-header small{color:#6a8b9b}.game-header-right{color:#278d49}.game-progress span{background:#dbe9ed}.game-progress span.done{background:#8cc95a}.game-progress span.current{background:#248e46}.field-area{background:#7aba47;border-color:#6eaa45}.field-top{color:#326546}.field-top button{background:#f4ffe7dc;color:#548244}.game-panel{background:#fff;border-color:#dce9ed}.player-strip{border-color:#e3edef}.player-chip{border-color:#dce9ed;color:#758f9d}.player-chip.active{background:#e9f5e0;border-color:#b6d998;color:#3f833d}.shot-heading h2{color:#25453e}.shot-heading h2>span{background:#e7f3de;color:#56853a}.shot-stats{background:#edf7fa;border-color:#deedf1}.shot-stats b{color:#277e56}.shot-stats small{color:#74929e}.control-label{color:#537d8d}.control-label button{color:#3b8b9c}.control-label strong{color:#258a44}.shot-controls input[type=range]{accent-color:#329345}#power{background:linear-gradient(to right,#74bc4c var(--fill,40%),#e3efdd var(--fill,40%))}#power::-webkit-slider-thumb{background:#299444}.range-captions,.expected{color:#7c949c}.expected b{color:#4a9073}.caddy-game{border-color:#dfebec}.caddy-game>div>span{color:#83a09d}.caddy-game>div>span b{color:#238b47}.caddy-game p{color:#5b7c8b}.caddy-game button{color:#3c9271}.game-fine{color:#8ba2aa}.game-fine br{line-height:1.7}.map-hint{color:#386943}.modal p.fine-print,.fine-print{color:#859da8}#toast{background:#223d4f}.mobile-nav{background:#ffffffef;border-color:#d9e9ed}.mobile-nav button{color:#90a5ae}.mobile-nav button.active{color:#258b47}
@media(min-width:1550px){.hero-plpak{height:315px}.hero{min-height:375px}}
@media(max-width:1200px){.brand-lockup{width:108px}.hero-plpak{height:251px}.hero-note{right:8%;left:auto}.hero{min-height:302px}.hero-text{padding-left:25px}}
@media(max-width:1000px){.hero-plpak{height:245px;max-width:80%}.hero-note{display:none}}
@media(max-width:760px){.hero{min-height:293px;grid-template-columns:1.1fr 1fr}.hero-text{padding:26px 0 23px 22px}.hero-art{margin-left:-55px}.hero-plpak{height:218px;max-width:85%;bottom:5px}.hero-scenery{mask-image:linear-gradient(90deg,transparent,#000 65%)}.hero-scenery:before{display:none}.hero h1{font-size:29px}.hero p{font-size:10px;max-width:212px}.hero-link{font-size:9px;position:relative;z-index:5}.hero .eyebrow{font-size:8px}.breadcrumbs{gap:8px}.beta{font-size:7px;padding:3px 5px}.top-actions .icon-button{width:30px}.brand-avatar{margin-left:4px!important;width:29px!important;height:29px!important;border-radius:8px}.hero-art .weather{display:none}.card-body>p{color:#66838f}.caddy-game{background:#eef8fb;border-radius:9px;padding:12px;border:1px solid #dcedf1}.caddy-game .mascot{width:66px}.game-panel .caddy-game{margin-left:-3px;margin-right:-3px}.side-caddy .mascot{width:105px}}
@media(max-width:420px){.hero{grid-template-columns:1.4fr 1fr;min-height:284px}.hero-text{padding-left:18px}.hero h1{font-size:27px;letter-spacing:-1.3px}.hero p{font-size:9px;max-width:188px}.hero .eyebrow{font-size:7px;letter-spacing:0}.hero-link{font-size:8px;max-width:184px;gap:5px}.hero-plpak{height:208px;max-width:100%;bottom:3px}.hero-art{margin-left:-81px}.hero-scenery{mask-image:linear-gradient(90deg,transparent,transparent 25%,#000 76%)}.topbar{padding:0 14px}.breadcrumbs{gap:6px;font-size:8px}.profile{display:none}}

/* 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}}

/* Shared viewport and safe-area dimensions for mobile browsers and installed apps. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--viewport-height:100vh;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@supports(height:100dvh){:root{--viewport-height:100dvh}}
#app,.workspace,#main,.game-header>div,.game-status>div,.stick-side,.stick-readout,.field,.mode-card,.quiz-caddy p,.guide-steps span,.record-name,.learning-banner>div{min-width:0}
button,input,select{max-width:100%}input,select{min-width:0}.primary,.secondary,.text-button{white-space:normal;overflow-wrap:anywhere}.hero h1{white-space:normal;word-break:keep-all}.hero-link{flex-wrap:wrap;text-align:left}.intro-strip>span{flex-wrap:wrap}.intro-strip i{margin-left:0}.card-meta{flex-wrap:wrap;gap:6px}.resume-banner span,.hole-results b,.final-ranks b{min-width:0;overflow-wrap:anywhere}.detail-stats{flex-wrap:wrap;gap:12px 24px}.info-panel{flex-wrap:wrap}.info-panel>div{flex:1 1 180px}.source-note a{white-space:normal;overflow-wrap:anywhere}
.modal-backdrop{padding:calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left));height:var(--viewport-height);bottom:auto;overflow:hidden}
.modal{width:min(100%,580px);max-width:100%;max-height:calc(var(--viewport-height) - var(--safe-top) - var(--safe-bottom) - 24px);min-height:0;overflow:auto;scroll-padding-block:54px 20px;overflow-wrap:break-word}
.modal.wide{width:min(100%,690px)}.modal h2{padding-right:16px;margin-right:20px}.mode-options,.name-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-card{overflow-wrap:anywhere}.quiz-caddy{display:grid;grid-template-columns:minmax(48px,75px) minmax(0,1fr)}.quiz-caddy .mascot{width:100%;max-width:75px}.check-field{align-items:flex-start}.check-field input{flex-shrink:0}.mini-holes{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-holes button{min-width:0}.table-scroll{max-width:100%;-webkit-overflow-scrolling:touch}.hole-results>div,.final-ranks>div{flex-wrap:wrap}.shot-event h2{font-size:clamp(30px,8vw,46px);padding:0;margin-right:0}.shot-event>strong{overflow-wrap:anywhere}.dock-action{min-width:0;width:min(92%,310px)}
.game-shell{height:var(--viewport-height);min-height:0;width:100%;padding:var(--safe-top) max(12px,var(--safe-right)) var(--safe-bottom) max(12px,var(--safe-left));overflow:auto;overscroll-behavior:contain}
.game-shell .game-header{flex-shrink:0}.game-header h1{letter-spacing:0}.game-header-right{flex-shrink:0}.game-shell .game-layout{min-height:0}.game-shell .field-area{min-height:140px}.game-shell .map-wrapper{min-height:0}.joystick-dock{min-width:0;padding:8px 0 6px}.joystick-console{--stick-size:clamp(128px,42vw,180px);grid-template-columns:minmax(0,1fr) var(--stick-size) minmax(0,1fr);gap:clamp(4px,2vw,16px);width:min(100%,480px);margin:4px auto 0}.joystick{width:var(--stick-size);height:var(--stick-size);max-width:none}.stick-side{gap:4px}.stick-help{white-space:normal;flex-wrap:wrap;gap:3px;line-height:1.3;min-height:44px;font-size:16px;padding:3px 0;width:100%}.stick-help svg{width:18px}.shot-mode{white-space:normal;word-break:keep-all;font-size:16px;padding:5px 6px;line-height:1.3}.power-meter{width:min(100%,88px)}.stick-readout{font-size:16px}.stick-readout strong{font-size:clamp(28px,8vw,36px)}.stick-readout>b{font-size:clamp(19px,5.6vw,23px)}.stick-caption{font-size:15px;line-height:1.4}.joystick-dock .relief-button{max-width:100%;min-height:44px;font-size:15px;line-height:1.4;padding:4px 2px}.stick-instruction{font-size:clamp(18px,4.8vw,21px);line-height:1.4}
@media(max-width:1024px){
 .topbar{height:auto;min-height:72px;gap:8px;padding:calc(8px + var(--safe-top)) max(12px,var(--safe-right)) 8px max(12px,var(--safe-left));display:grid;grid-template-columns:minmax(0,1fr) auto}.breadcrumbs{display:block;font-size:15px;line-height:1.4}.breadcrumbs>strong{display:block;font-size:16px}.breadcrumbs>span{display:none}.top-actions{gap:3px}.top-actions .icon-button{flex-shrink:0;min-width:44px;min-height:44px;width:44px}.profile{display:none}
}
@media(max-width:760px){
 #main{padding:16px max(12px,var(--safe-right)) calc(100px + var(--safe-bottom)) max(12px,var(--safe-left))}.hero-text{padding:22px 20px 8px}.hero h1{font-size:clamp(30px,8.5vw,35px)}.hero .eyebrow{flex-wrap:wrap;line-height:1.5}.hero p{overflow-wrap:break-word}.hero p br{display:none}.hero-link{font-size:17px;line-height:1.6}.round-bar{padding:14px 12px}.round-route>div>div{gap:6px 10px}.start-button{min-width:0}.mobile-nav{padding:5px max(8px,var(--safe-right)) calc(6px + var(--safe-bottom)) max(8px,var(--safe-left));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}.mobile-nav button{min-width:0;font-size:16px}.learning-banner{flex-wrap:wrap;gap:12px}.learning-banner>div{flex:1 1 160px}.learning-banner>b{margin-left:auto}.record-stats>div{flex-wrap:wrap}.records-panel select{max-width:100%}.modal{padding:30px 18px 20px}.mode-card b{font-size:20px}.mode-card small{font-size:16px;word-break:keep-all}.mini-holes{gap:8px}.mini-holes button{padding:10px}.game-header h1{font-size:20px}.game-header h1 span{font-size:15px;margin-left:4px}.game-header small{font-size:15px}.game-shell .game-header{gap:4px;height:62px;min-height:62px}.game-header-right .icon-button{width:44px;min-width:44px}.game-status{padding:0 4px 5px;gap:8px}.game-status small{font-size:15px}.game-status strong{font-size:25px}.game-status strong span{font-size:15px;margin-left:2px}.game-status em{font-size:14px}.game-shell .game-progress{margin:3px 0 7px}.stick-side{gap:3px}.terrain-readout{max-width:calc(100% - 24px)}
}
@media(max-width:400px){.name-grid{grid-template-columns:1fr}.mini-holes{grid-template-columns:repeat(2,minmax(0,1fr))}.quiz-caddy{grid-template-columns:1fr}.quiz-caddy .mascot{width:65px;justify-self:center}.mode-options{gap:8px}.mode-card{padding:14px 5px}.game-header h1 span{display:block;margin-left:0;font-size:14px}.game-shell .game-header{height:74px;min-height:74px}.game-header h1{margin-top:0;line-height:1.2}.game-status strong{font-size:23px}.game-status strong span{font-size:14px}.game-status{gap:5px}.stick-help,.shot-mode{font-size:15px}.stick-readout{font-size:15px}}
@media(max-height:700px) and (orientation:portrait){
 .game-shell .game-header{height:58px;min-height:58px}.game-header small{line-height:1.2}.game-header h1 strong{font-size:24px}.game-shell .field-area{min-height:110px}.joystick-console{--stick-size:clamp(128px,38vw,146px);margin-top:2px}.joystick-dock{padding:4px 0}.stick-caption{font-size:14px;margin-top:2px}.stick-help{min-height:44px}.joystick-dock .relief-button{min-height:40px;font-size:14px}.terrain-readout{top:7px;left:8px;max-width:calc(100% - 122px)}.game-shell .field-top>span{visibility:hidden}.game-shell .map-legend{font-size:12px;padding:3px 5px}.terrain-key{font-size:12px}.caddy-radio{width:42px;height:44px}.game-shell .map-wrapper{padding:42px 0 36px}
}
/* In landscape the score sits above the controls, leaving the course unobstructed. */
@media(max-height:540px) and (orientation:landscape){
 .game-shell{--dock-width:clamp(220px,40vw,340px);display:grid;grid-template-columns:minmax(0,1fr) var(--dock-width);grid-template-rows:54px 10px minmax(0,1fr);column-gap:10px;min-height:0;padding:var(--safe-top) max(8px,var(--safe-right)) var(--safe-bottom) max(8px,var(--safe-left));overflow:auto}
 .game-shell .game-header{grid-column:1;grid-row:1;min-width:0;height:54px;min-height:0;gap:2px}.game-header h1{margin-top:0;font-size:19px}.game-header h1 strong{font-size:24px}.game-header h1 span{font-size:14px}.game-header small{font-size:14px}.game-header-right{margin:0 0 0 auto}.game-header-right>.icon-button:last-child{display:none}.game-shell .game-status{grid-column:2;grid-row:1/3;position:static;right:auto;top:auto;width:100%;max-width:none;margin:0;padding:3px 2px;gap:4px;align-self:center;grid-template-columns:1.1fr 1fr .7fr}.game-status small{font-size:14px;line-height:1.2}.game-status strong{font-size:22px;line-height:1.2}.game-status strong span{font-size:13px;margin-left:1px}.game-status em{font-size:12px}.game-shell .game-progress{grid-column:1;grid-row:2;margin:1px 0 4px}.game-shell .game-layout{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:minmax(0,1fr) var(--dock-width);gap:10px;min-height:0}.game-shell .field-area{height:100%;min-height:150px}.game-shell .map-wrapper{padding:45px 0 32px}.joystick-dock{align-self:stretch;overflow:auto;padding:3px 0;min-height:0}.joystick-console{--stick-size:clamp(116px,19vw,144px);gap:4px}.stick-help{font-size:14px;min-height:40px}.shot-mode{font-size:14px;padding:4px 2px}.stick-help svg{display:none}.stick-side{gap:0}.stick-instruction{font-size:17px;line-height:1.25}.stick-readout{font-size:14px;gap:1px}.stick-readout strong{font-size:28px}.stick-readout>b{font-size:19px}.power-meter{margin:3px 0;height:6px}.stick-caption{font-size:14px;margin-top:2px;line-height:1.3}.joystick-dock .relief-button{font-size:13px;min-height:36px;padding:2px}.game-shell .field-top{top:6px;right:6px;left:auto}.game-shell .field-top>span{display:none}.game-shell .field-top button{font-size:14px;padding:5px 7px;min-height:38px}.terrain-readout{top:6px;left:6px;padding:4px 6px;max-width:calc(100% - 114px)}.terrain-readout span{font-size:13px}.terrain-readout strong{font-size:14px}.game-shell .map-legend{left:6px;bottom:4px;font-size:12px;gap:0;padding:3px 5px}.terrain-key{font-size:12px}.caddy-radio{display:none}
}
@media(max-height:540px) and (orientation:landscape) and (max-width:700px){.game-header h1 span{display:none}.game-header small{font-size:13px}.game-header .icon-button{min-width:40px;width:40px}.game-shell .map-legend{right:6px}.game-shell .terrain-key{display:none}.terrain-readout span{display:none}.terrain-readout{top:6px;max-width:calc(100% - 108px)}.terrain-readout strong{font-size:13px}.game-shell .map-wrapper{padding:42px 0 26px}}
@media(max-width:760px) and (orientation:portrait){.game-header>div:not(.game-header-right){flex:1}.game-header small{display:block;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-header h1{line-height:1.2;margin-top:1px;white-space:nowrap}.game-header h1 strong{font-size:25px}.game-header h1 span{display:inline;font-size:14px;margin-left:4px}}
@media(max-width:760px) and (orientation:portrait){.game-shell .game-header{height:auto;min-height:58px;padding-block:4px}.game-header h1{white-space:normal}.game-header h1 span{display:inline-block}}
@media(max-height:540px) and (orientation:landscape){.game-shell{--dock-width:clamp(250px,40vw,340px)}}
.modal-backdrop{top:var(--viewport-top,0px)}
/* Senior-friendly quiz library and feedback. */
.quiz-library{padding:24px;background:#fff;border:1px solid #dbe5d5;border-radius:20px;margin:24px 0 32px}.quiz-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.quiz-filters .field{font-size:18px}.quiz-filters select{font-size:19px;min-height:52px;width:100%}.quiz-practice-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.quiz-practice-actions>button{flex:1 1 220px;min-height:56px;font-size:19px}.quiz-local-note,.quiz-reassurance{font-size:17px;line-height:1.7;color:#526354}.quiz-local-note{margin-bottom:0}.quiz-meta{display:flex;flex-wrap:wrap;gap:10px;margin:0 30px 20px 0}.quiz-meta .eyebrow{font-size:16px;line-height:1.6}.quiz-meta .pill{font-size:16px;white-space:normal}.quiz-panel h2.quiz-question{font-size:clamp(24px,5.8vw,30px);line-height:1.5;margin:0 0 16px;padding:0}.quiz-answers button{align-items:center;font-size:20px;line-height:1.6;text-align:left;padding:16px;gap:12px;min-height:70px}.quiz-answers button b{font-weight:600;min-width:0;overflow-wrap:anywhere}.quiz-answers button>span{flex-shrink:0}.quiz-answers button:disabled{opacity:1}.quiz-answers button.correct{border:2px solid #29774d;background:#e7f4dd;color:#17452f}.quiz-answers button.wrong{border:2px solid #b34934;background:#fff1ed;color:#803221}.quiz-explanation{margin-top:22px;border-top:1px solid #dbe5d5;padding-top:20px}.quiz-explanation>strong{font-size:23px;display:block}.quiz-correct-answer{font-size:20px;font-weight:700;line-height:1.7}.quiz-explanation .quiz-caddy{background:#f1f6ec;border-radius:16px;padding:14px;gap:14px;align-items:center}.quiz-explanation .quiz-caddy p{font-size:19px;line-height:1.8;margin:0}.quiz-review-note{font-size:17px;line-height:1.6}.quiz-panel #quiz-feedback:focus{outline:none}.quiz-level{font-size:16px;margin-left:10px;color:#526354}.rules-grid .rule-card{display:block;text-align:left;min-width:0}.rules-grid .rule-card h3{font-size:21px;line-height:1.65;overflow-wrap:anywhere;margin:18px 0}.quiz-more{margin-top:24px;min-height:54px;font-size:19px}.quiz-session-result{display:grid;text-align:center;gap:10px;margin:24px 0}.quiz-session-result b{font-size:44px;color:#286244}.quiz-session-result span{font-size:19px}.source-note{font-size:16px;line-height:1.9}.quiz-skip{font-size:18px;min-height:48px}
@media(max-width:400px){.quiz-filters{grid-template-columns:1fr;gap:12px}.quiz-library{padding:18px 14px}.quiz-answers button{font-size:19px;padding:14px 10px;gap:9px}.quiz-panel h2.quiz-question{font-size:24px}.quiz-explanation .quiz-caddy{grid-template-columns:1fr}.quiz-practice-actions>button{flex-basis:100%}}
.setup-modal [data-action="start"]{position:sticky;bottom:-12px;z-index:3;min-height:58px;margin-top:16px;box-shadow:0 -4px 0 8px #fffef8,0 5px 18px #173b3733}.setup-modal [data-action="start"]:disabled{box-shadow:0 -4px 0 8px #fffef8}

/* Information gets its own rows; no guidance is painted over the playable map. */
.game-shell .field-area{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
.field-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;background:#eff6e7;padding:4px 8px;z-index:1}
.game-shell .field-toolbar .field-top{position:static;inset:auto;grid-column:2;grid-row:1;display:flex;align-items:center;gap:8px}
.game-shell .field-toolbar .terrain-readout{position:static;inset:auto;grid-column:1;grid-row:1;max-width:100%;min-width:0;border:0;box-shadow:none;background:transparent;padding:2px 0;min-height:44px;justify-content:center}
.field-toolbar .terrain-readout span,.field-toolbar .terrain-readout strong{font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.game-shell .map-wrapper{position:relative;inset:auto;height:100%;padding:3px 0!important;width:100%;min-height:0;overflow:hidden}
.game-shell #course-map{height:100%;width:100%;display:block}
.field-footer{display:flex;align-items:center;gap:8px;justify-content:space-between;background:#eff6e7;padding:2px 8px;min-height:44px}
.game-shell .field-footer .map-legend{position:static;inset:auto;max-width:100%;background:transparent;padding:0;flex-shrink:1}
.field-footer .caddy-radio{position:static;inset:auto;display:flex;max-width:52%;width:auto;height:auto;min-height:44px;border-radius:10px;padding:0 8px;box-shadow:none}
.field-footer .caddy-radio .mascot{height:42px;width:30px}.field-footer .caddy-radio>span{display:flex;line-height:1.4}.field-footer .caddy-radio>span>span{-webkit-line-clamp:1;font-size:16px}.field-footer .caddy-radio>svg{display:none}
@media(max-width:760px){.field-toolbar{gap:5px;padding:2px 6px}.game-shell .field-toolbar .field-top>span{display:none}.field-toolbar .terrain-readout span,.field-toolbar .terrain-readout strong{font-size:14px}.game-shell .field-toolbar .field-top button{font-size:14px;padding:4px 6px;min-height:44px}.field-footer{padding:0 6px;gap:6px}.field-footer .caddy-radio{max-width:95px;flex-shrink:0;padding:0 5px}.field-footer .caddy-radio>span>span{display:none}.field-footer .caddy-radio>span b{font-size:15px}.field-footer .caddy-radio .mascot{height:36px;width:27px}.game-shell .field-footer .map-legend{font-size:12px;gap:1px}.game-shell .field-footer .terrain-key{font-size:12px}}
@media(max-height:540px) and (orientation:landscape){.field-toolbar .terrain-readout span{display:none}.field-toolbar .terrain-readout strong{font-size:14px}.game-shell .field-footer .terrain-key{display:none}.field-footer .caddy-radio>span>span{display:none}.field-footer .caddy-radio{max-width:90px}.field-footer .caddy-radio .mascot{width:26px;height:34px}.game-shell .field-toolbar .field-top>span{display:none}}
/* Cumulative history and readable PNG scorecards share the PlayPark palette. */
.record-player-picker{max-width:400px}.record-player-picker select,.analysis-panel select{min-height:52px;font-size:18px;width:100%}.record-local-note,.chart-caption{font-size:16px;line-height:1.7;color:#506452}.record-local-note{margin:14px 0 28px}.cumulative-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cumulative-stats>div{display:flex;flex-direction:column!important;align-items:flex-start;gap:8px;background:#fff;padding:22px;border:1px solid #dce8d5;border-radius:16px}.cumulative-stats b{font-size:38px;color:#246442}.cumulative-stats span{font-size:18px;margin:0}.analysis-panel,.history-panel{margin-top:26px;padding:26px;border-radius:20px}.analysis-panel .field{max-width:620px}.analysis-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:16px}.analysis-columns>div{min-width:0}.analysis-panel h3{font-size:21px;line-height:1.5;margin:22px 0 16px}.score-trend{width:100%;height:auto;display:block;background:#f5f9f0;border-radius:14px;padding:12px 0}.analysis-insight{font-size:19px;line-height:1.7;padding:16px;background:#edf5e4;border-radius:12px;color:#285139}.half-stats,.par-analysis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.half-stats>div,.par-analysis>div{display:flex;flex-direction:column;gap:7px;background:#f4f8ef;padding:18px;border-radius:12px}.half-stats b,.par-analysis b{font-size:32px;color:#205e3d}.half-stats span,.par-analysis span{font-size:17px;line-height:1.5}.par-analysis{grid-template-columns:repeat(3,minmax(0,1fr))}.score-distribution>div{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:17px;margin:14px 0}.distribution-track{grid-column:1/-1;height:10px;background:#edf2e8;border-radius:6px;overflow:hidden}.distribution-track i{height:100%;display:block;background:#338852;border-radius:6px}.history-panel .record-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;padding:20px 0}.history-panel .record-name b{font-size:19px;line-height:1.5;overflow-wrap:anywhere}.history-panel .record-name small{font-size:16px;line-height:1.6;white-space:normal}.history-panel .record-list>div>strong{white-space:nowrap;font-size:30px}.history-panel .record-list .secondary{font-size:17px;padding:10px 14px}.scorecard-preview{display:block;width:100%;height:auto;border:1px solid #d2e1c8;border-radius:10px}.scorecard-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.scorecard-actions>button{flex:1;min-width:130px}.scorecard-actions>button[hidden]{display:none}.image-save-help{line-height:1.7}
@media(max-width:760px){.cumulative-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cumulative-stats>div{padding:16px 12px;align-items:flex-start;justify-content:center}.cumulative-stats b{font-size:34px}.cumulative-stats span{font-size:16px}.analysis-panel,.history-panel{padding:20px 14px}.analysis-columns{grid-template-columns:1fr;gap:4px}.analysis-panel h2,.history-panel h2{font-size:25px;line-height:1.5}.history-panel .record-list>div{grid-template-columns:minmax(0,1fr) auto;gap:12px}.history-panel .record-list button{grid-column:1/-1;width:100%;min-height:48px}.par-analysis{gap:7px}.par-analysis>div{padding:14px 8px}.par-analysis span{font-size:15px}.par-analysis b{font-size:28px}.scorecard-actions{position:sticky;bottom:-20px;background:#fff;padding:12px 0;z-index:1}}
.leaderboard-panel{margin-top:26px}.leaderboard-panel .record-list>div{display:flex;gap:14px;align-items:center;padding:16px 0}.leaderboard-panel .record-name{flex:1}.leaderboard-panel .record-name b{font-size:19px}.leaderboard-panel .record-name small{font-size:16px}.leaderboard-panel .record-list strong{font-size:28px}.leaderboard-panel .secondary{font-size:17px;padding:10px 14px}
@media(max-width:760px){.leaderboard-panel .record-list>div{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:8px}.leaderboard-panel .record-list button{grid-column:2/-1;width:100%}}

/* Name every finished hole result; keep unfinished cells empty of result labels. */
.scorecard-scroll-hint{font-size:17px;line-height:1.6;color:#506452}
.score-tables .table-scroll{border:1px solid #d8e3d0;border-radius:10px}
.score-tables table{min-width:100%;width:max-content}
.score-tables th:first-child{min-width:100px;max-width:180px;white-space:normal;overflow-wrap:anywhere}
.score-tables .scorecard-hole-cell{min-width:100px;padding:12px 10px;white-space:normal;vertical-align:middle}
.scorecard-strokes{display:block;font-size:23px;line-height:1.4;font-weight:800}
.scorecard-result{display:block;font-size:17px;line-height:1.45;font-weight:600;margin-top:5px;max-width:90px;word-break:keep-all}
.score-tables .scorecard-hole-cell.under{color:#21653c;background:#edf5e4}
.score-tables .scorecard-hole-cell.over{color:#984326;background:#fff0e8}
.score-tables .scorecard-hole-cell.even{color:#203c31;background:#f1f5ef}
.score-tables .scorecard-hole-cell.pending{color:#718078;background:#fff}
.score-tables .scorecard-half-total{font-size:23px;font-weight:800;min-width:64px}

.score-tables th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 #d8e3d0}
.score-tables thead th:first-child,.score-tables .par-row th:first-child{background:#eaf2e3}

/* The 9-column scorecard remains a table on wide screens. Phones read one hole at a time. */
.scorecard-mobile{display:none}
@media(max-width:760px){
 .scorecard-modal{padding:24px 18px 20px}
 .scorecard-modal .eyebrow{font-size:12px;letter-spacing:.12em}
 .scorecard-modal h2{font-size:26px;line-height:1.3;margin:8px 54px 18px 0;padding:0}
 .scorecard-modal .scorecard-scroll-hint,.scorecard-modal .score-tables{display:none}
 .scorecard-modal .scorecard-mobile{display:grid;gap:10px}
 .scorecard-mobile-half{border:1px solid #d6e6ef;border-radius:16px;overflow:hidden;background:#fff}
 .scorecard-mobile-half>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:64px;padding:12px 16px;list-style:none;cursor:pointer;background:#f0f7fb;color:#22465f}
 .scorecard-mobile-half>summary::-webkit-details-marker{display:none}
 .scorecard-mobile-half>summary:focus-visible{outline:3px solid #1d68b2;outline-offset:-3px}
 .scorecard-mobile-half>summary>span:first-child{min-width:0;display:grid;gap:2px}
 .scorecard-mobile-half>summary strong{font-size:19px;line-height:1.3}
 .scorecard-mobile-half>summary small{font-size:14px;line-height:1.45;color:#526d7d;overflow-wrap:anywhere}
 .scorecard-mobile-chevron{width:11px;height:11px;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s;margin-right:4px}
 .scorecard-mobile-half[open] .scorecard-mobile-chevron{transform:rotate(225deg)}
 .scorecard-mobile-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px 12px;border-bottom:1px solid #e4edf1;background:#fbfdfe}
 .scorecard-mobile-par{grid-column:1/-1;font-size:14px;font-weight:700;color:#557182}
 .scorecard-mobile-total{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;min-width:0;padding:7px 9px;border-radius:8px;background:#ecf4f9;font-size:14px}
 .scorecard-mobile-total:nth-child(2):last-child{grid-column:1/-1}
 .scorecard-mobile-total b{font-weight:600;overflow-wrap:anywhere}
 .scorecard-mobile-total strong{color:#195f96;white-space:nowrap}
 .scorecard-mobile-holes{list-style:none;padding:10px 12px 14px;margin:0;display:grid;gap:8px}
 .scorecard-mobile-hole{border:1px solid #dce8ee;border-radius:12px;overflow:hidden;background:#fff}
 .scorecard-mobile-hole-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;background:#f5f9fb;color:#24465c}
 .scorecard-mobile-hole-head strong{font-size:19px;line-height:1.2}
 .scorecard-mobile-hole-head span{font-size:14px;font-weight:700;color:#5b7180}
 .scorecard-mobile-player{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:8px 12px;border-top:1px solid #eaf0f2;font-size:16px}
 .scorecard-mobile-name{min-width:0;overflow-wrap:anywhere;font-weight:600}
 .scorecard-mobile-mark{display:flex;align-items:baseline;justify-content:flex-end;gap:8px;white-space:nowrap}
 .scorecard-mobile-mark strong{font-size:22px;line-height:1.2}
 .scorecard-mobile-mark small{font-size:14px;margin-left:2px}
 .scorecard-mobile-mark em{font-size:15px;font-weight:700}
 .scorecard-mobile-player.under .scorecard-mobile-mark{color:#176b40}
 .scorecard-mobile-player.over .scorecard-mobile-mark{color:#a44932}
 .scorecard-mobile-player.even .scorecard-mobile-mark{color:#265268}
 .scorecard-mobile-pending{font-size:15px;color:#81919a}
 .scorecard-modal .fine-print{margin:14px 0 16px;font-size:14px;line-height:1.5}
 .scorecard-modal>.primary{min-height:52px;font-size:17px}
}
@media(max-width:360px){.scorecard-mobile-totals{grid-template-columns:1fr}}
/* Compact whole-row scorecard links and fixed-size history pages. */
.score-trend-scroll{max-width:100%;overflow-x:auto;border-radius:14px;background:#f5f9f0;overscroll-behavior-x:contain}
.score-trend-scroll .score-trend{padding:0;max-width:none;height:auto;min-height:180px}
.history-panel .record-list .history-row{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:10px;width:100%;min-height:64px;padding:10px 0;border-bottom:1px solid #d8e5ec;text-align:left;border-radius:0}
.history-row:hover{background:#f0f7fb}.history-row .record-name{min-width:0}.history-panel .history-row .record-name b{display:block;font-size:14px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-panel .history-row .record-name small{display:block;font-size:12px;line-height:1.5}.history-panel .history-row .history-score{font-size:23px;line-height:1.1;white-space:nowrap;text-align:right}.history-panel .history-row .history-growth{display:block;padding:0;margin:4px 0 0;background:none;font-size:11px;line-height:1.3}.history-chevron{font-size:22px;color:#6a8799}.history-pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:16px;font-size:14px}.history-pagination button{min-height:44px;padding:8px 16px}.history-pagination span{font-variant-numeric:tabular-nums}
/* Visual personal report; score and archived reward calculations stay unchanged. */
.record-summary{margin:20px 0}.record-summary .cumulative-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.record-summary .cumulative-stats>div{position:relative;padding:18px;gap:6px;background:linear-gradient(145deg,#fff,#f0f7f3);border-color:#d9e8e0}.record-summary .cumulative-stats svg{color:#358164}.record-summary .cumulative-stats b{font-size:32px}.record-summary .cumulative-stats span{font-size:14px}.record-summary-footer{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 22px;margin-top:12px;font-size:13px;color:#5c7367}.report-count{font-size:13px;color:#5c7367;white-space:nowrap}.analysis-panel .section-heading,.history-panel .section-heading{flex-direction:row;align-items:center;justify-content:space-between}.distribution-visual{display:grid;grid-template-columns:160px minmax(0,1fr);gap:14px;align-items:center}.distribution-visual svg{max-width:100%;height:auto}.distribution-legend>div{display:flex;align-items:center;gap:7px;margin:12px 0;font-size:13px}.distribution-legend i{width:8px;height:8px;border-radius:50%;flex:none}.distribution-legend b{margin-left:auto}.empty-record-icon{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 16px;border-radius:50%;background:#e4f2e8;color:#25885d}.analysis-panel h2,.history-panel h2{font-size:22px}.analysis-panel h3{font-size:17px}.analysis-insight{font-size:15px;padding:12px}.analysis-panel .field select{font-size:15px;min-height:48px}.chart-caption{font-size:13px}.half-stats b,.par-analysis b{font-size:26px}.half-stats span,.par-analysis span{font-size:13px}.half-stats svg,.par-analysis svg{display:none}.growth-help{margin-top:20px}
@media(max-width:760px){.record-summary .cumulative-stats{gap:8px}.record-summary .cumulative-stats>div{padding:12px 9px;align-items:flex-start}.record-summary .cumulative-stats b{font-size:28px}.record-summary .cumulative-stats span{font-size:12px}.distribution-visual{grid-template-columns:140px minmax(0,1fr);gap:10px}.analysis-panel,.history-panel{padding:18px 14px;margin-top:18px}.history-panel .record-list>div{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:14px 0}.history-panel .record-name b{font-size:15px}.history-panel .record-name small{font-size:12px}.history-panel .record-list>div>strong{font-size:26px}.history-panel .record-list button{min-height:44px;font-size:14px}.history-panel .history-growth{font-size:12px}}
#records-panel .growth-profile{gap:12px;padding:18px;border-radius:18px}#records-panel .growth-badge{width:58px;height:58px}#records-panel .growth-badge b{font-size:25px}#records-panel .growth-identity p{font-size:13px}#records-panel .growth-identity h2{font-size:22px}#records-panel .growth-balance span{font-size:13px}#records-panel .growth-balance strong{font-size:30px}#records-panel .growth-progress p{font-size:13px}#records-panel .growth-context{display:none}
@media(max-width:760px){#records-panel .growth-profile{grid-template-columns:58px minmax(0,1fr);gap:10px 12px}#records-panel .growth-balance{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:8px 0 0;border-top:1px solid #ffffff26}#records-panel .growth-progress{grid-column:1/-1}#records-panel .growth-progress p{margin-top:6px}#records-panel .growth-track{height:9px}}

/* A single course stage with controls resting in the camera's safe margins. */
.game-shell.immersive-game{display:flex;flex-direction:column;height:var(--viewport-height);min-height:0;max-width:1600px;overflow:hidden;padding:var(--safe-top) max(8px,var(--safe-right)) var(--safe-bottom) max(8px,var(--safe-left));background:#edf6e6;gap:0}
.immersive-game .game-header{height:auto;min-height:60px;padding:4px 4px;flex-shrink:0;gap:6px}.immersive-game .game-header h1{font-size:20px}.immersive-game .game-header h1 strong{font-size:26px}.immersive-game .game-header h1 span{font-size:15px}.immersive-game .game-header small{font-size:15px}.immersive-game .game-header-right{margin:0 0 0 auto;gap:0}.immersive-game .game-header-right>.icon-button:last-child{display:inline-flex}.immersive-game .game-header .icon-button{width:44px;min-width:44px;min-height:44px}.immersive-game .game-progress{margin:1px 4px 6px;flex-shrink:0}.immersive-game .game-status{position:static;max-width:800px;width:100%;grid-template-columns:1.3fr 1fr .7fr;gap:12px;margin:0 auto;padding:0 8px 8px;flex-shrink:0}.immersive-game .game-status small{font-size:15px}.immersive-game .game-status strong{font-size:25px}.immersive-game .game-status strong span{font-size:15px}.immersive-game .game-layout{display:block!important;position:relative;flex:1;min-height:0;width:100%;height:auto;gap:0}
.game-shell.immersive-game .field-area{display:block;position:absolute;inset:0;min-height:0;height:100%;width:100%;border-radius:18px;background:var(--course-grass,#a8c782);overflow:hidden}.game-shell.immersive-game .map-wrapper{position:absolute;inset:0;width:100%;height:100%;padding:0!important;min-height:0;max-height:none}.game-shell.immersive-game #course-map{touch-action:none;user-select:none;cursor:grab;display:block;width:100%;height:100%}.game-shell.immersive-game #course-map:active{cursor:grabbing}
.immersive-game .field-toolbar{position:absolute;top:8px;left:10px;right:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:0;background:transparent;pointer-events:none;z-index:2}.immersive-game .field-toolbar>*{pointer-events:auto}.immersive-game .field-toolbar .terrain-readout{position:static;display:flex;flex:0 1 auto;min-width:0;max-width:calc(100% - 142px);min-height:44px;padding:6px 9px;border:1px solid #c5d7b7;background:#f5faedee;box-shadow:0 2px 6px #32562412;border-radius:12px;justify-content:center;gap:0}.immersive-game .terrain-readout span,.immersive-game .terrain-readout strong{display:block;font-size:15px;line-height:1.4}.map-tools{display:flex;gap:4px;align-items:center;flex-shrink:0}.map-tools button{min-width:40px;min-height:44px;border-radius:12px;background:#f5faedf5;color:#254c35;border:1px solid #bfd3b0;font-size:25px;font-weight:700;line-height:1}.map-tools button[data-action="zoom"]{font-size:16px;min-width:50px;padding:4px 6px}
.immersive-game .joystick-dock{position:absolute;right:16px;bottom:16px;z-index:3;display:block;min-height:0;width:auto;padding:0;background:transparent;overflow:visible;align-self:auto}.immersive-game .joystick-console{display:flex;flex-direction:column;gap:5px;width:auto;max-width:none;margin:0;--stick-size:clamp(130px,36vw,166px)}.immersive-game .joystick{width:var(--stick-size);height:var(--stick-size);flex-shrink:0;border:3px solid #eaf5dce6;box-shadow:0 3px 18px #264b3a26,inset 0 1px 7px #43674c20;background:radial-gradient(circle at center,#e4f2d9ee 0 31%,#f4fce4de 32% 50%,transparent 51%),conic-gradient(#2c9250 var(--charge,0%),#d9eacddc 0)}.immersive-game .stick-thumb{width:60px;height:60px;left:calc(50% - 30px);top:calc(50% - 30px)}.immersive-game .stick-readout{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:7px;background:#f8fff1eb;color:#2a6540;border:1px solid #c2d8ae;border-radius:20px;padding:2px 15px;min-height:38px;box-shadow:0 2px 5px #32502410}.immersive-game .stick-readout strong{font-size:25px;line-height:1.2}.immersive-game .stick-readout strong small{font-size:16px}.immersive-game .stick-readout>span:not(.sr-only){font-size:16px}.immersive-game .stick-instruction{font-size:18px}
.immersive-game .dock-action{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(88%,330px);min-width:0;z-index:4}.help-actions{display:grid;gap:10px;margin:22px 0}.game-shell .sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:400px){.immersive-game .game-header{min-height:62px}.immersive-game .game-header h1 span{display:block;margin:0;font-size:14px}.immersive-game .game-header h1{font-size:18px}.immersive-game .game-header small{font-size:14px}.immersive-game .game-status{gap:8px;padding-bottom:5px}.immersive-game .game-status small{font-size:14px}.immersive-game .game-status strong{font-size:23px}.immersive-game .terrain-readout span,.immersive-game .terrain-readout strong{font-size:14px}.immersive-game .joystick-dock{right:10px;bottom:12px}.immersive-game .field-toolbar{left:8px;right:8px;gap:5px}.immersive-game .field-toolbar .terrain-readout{max-width:calc(100% - 134px);padding:5px 6px}.map-tools{gap:3px}.map-tools button{min-width:38px}}
@media(max-height:700px) and (orientation:portrait){.immersive-game .joystick-console{--stick-size:130px}.immersive-game .joystick-dock{bottom:10px;right:12px}.immersive-game .field-toolbar .terrain-readout span{display:none}.immersive-game .game-header{min-height:56px}.immersive-game .game-status{padding-bottom:4px}}
@media(orientation:landscape) and (max-height:540px){.game-shell.immersive-game{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.8fr);grid-template-rows:54px 7px minmax(0,1fr);column-gap:12px}.immersive-game .game-header{grid-column:1;grid-row:1;min-height:0;height:54px;padding:0;gap:2px}.immersive-game .game-header h1{font-size:19px}.immersive-game .game-header h1 span{display:none}.immersive-game .game-header small{font-size:14px}.immersive-game .game-status{grid-column:2;grid-row:1;padding:2px 0;align-self:center;gap:4px}.immersive-game .game-status small{font-size:14px}.immersive-game .game-status strong{font-size:23px}.immersive-game .game-status strong span{font-size:14px}.immersive-game .game-progress{grid-column:1/-1;grid-row:2;margin:0 0 3px}.immersive-game .game-layout{grid-column:1/-1;grid-row:3}.immersive-game .joystick-console{--stick-size:128px}.immersive-game .joystick-dock{right:16px;bottom:10px}.immersive-game .field-toolbar{right:182px;left:8px;top:6px}.immersive-game .field-toolbar .terrain-readout span{display:none}.immersive-game .field-toolbar .terrain-readout strong{font-size:14px}.immersive-game .stick-readout{min-height:34px}.immersive-game .stick-readout strong{font-size:22px}}
@media(orientation:landscape) and (max-height:360px){.immersive-game .game-status strong{font-size:21px}.immersive-game .game-header .icon-button{min-width:40px;width:40px}.immersive-game .game-header-right{gap:0}}

/* Ground grid: fixed screen-width lines stay legible while pinching the map. */
.terrain-grid path,.terrain-flow path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.terrain-grid-edge{stroke:#305b3c;stroke-width:2.2px;opacity:.36}.terrain-grid-line{stroke:#f4ffdc;stroke-width:1px;opacity:.78}
.terrain-grid-major .terrain-grid-edge{stroke-width:3px;opacity:.42}.terrain-grid-major .terrain-grid-line{stroke-width:1.4px;opacity:.9}
.terrain-flow-track{stroke:#2c5839;stroke-width:1.5px;opacity:.58}
.terrain-flow-dot{fill:#fffde4;stroke:#204e36;stroke-width:1px;vector-effect:non-scaling-stroke;transform-box:view-box;transform-origin:0 0;animation:terrain-downhill var(--flow-duration) linear var(--flow-delay) infinite}
@keyframes terrain-downhill{0%{transform:translate(calc(-1 * var(--flow-x)),calc(-1 * var(--flow-y)));opacity:0}15%,85%{opacity:1}100%{transform:translate(var(--flow-x),var(--flow-y));opacity:0}}
@media(prefers-reduced-motion:reduce){.terrain-flow-dot{animation:none;transform:translate(calc(.65 * var(--flow-x)),calc(.65 * var(--flow-y)))}}
.terrain-key{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0;font-size:18px;font-weight:700;color:#315438}.terrain-key i{width:110px;height:22px;border-radius:6px;border:1px solid #759453;background:linear-gradient(90deg,#74974e,#d6e4a0)}

/* Mesh is transparent and all boundary decoration sits below the ball and cup layers. */
.ob-fence{pointer-events:none}.ob-fence-shadow{fill:none;stroke:#173c31;stroke-width:1.2;opacity:.17}
.ob-fence-panel{fill:#244e45;opacity:.22}.ob-fence-mesh{opacity:.85}
.ob-fence-rail{fill:none;stroke:#365851;stroke-width:1.35px;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.ob-boundary-line{fill:none;stroke:#fff7df;stroke-width:1.6px;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.ob-stake-body{fill:none;stroke:#d62f37;stroke-width:3.4px;vector-effect:non-scaling-stroke;stroke-linecap:round}
.ob-stake-cap{fill:none;stroke:#ffe5da;stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linecap:round}

/* Stake color describes the crossing rule; mesh exists only on solid net sections. */
.ob-stake-outline{fill:none;stroke:#314a49;stroke-width:5px;vector-effect:non-scaling-stroke;stroke-linecap:round}.stake-white .ob-stake-body{stroke:#fffdf0}.stake-white .ob-stake-cap{stroke:#dce8e7}.boundary-red{stroke:#e0494b;stroke-width:2px}.boundary-white{stroke:#fffdf0}.impact-ring{fill:none;stroke:#fff9ad;stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none}

/* High-contrast mouse locator for desktop aiming and joystick dragging. */
@media (hover:hover) and (pointer:fine){.game-shell.immersive-game .field-area,.game-shell.immersive-game #course-map,.game-shell.immersive-game .joystick,.game-shell.immersive-game .joystick.dragging{cursor:url('../assets/ui/aim-cursor.svg') 16 16,crosshair}}

/* Two-column lobby: brand and navigation share the normal document scroll. */
/* Reference-inspired title face, bundled so Android/iOS/desktop use the same lettering. */
.app-shell{position:relative;display:grid;grid-template-columns:calc(260px + var(--safe-left)) minmax(0,1fr);min-height:100vh;min-height:100dvh}
.app-shell .sidebar{position:static;inset:auto;width:auto;min-width:0;align-self:stretch;padding:calc(28px + var(--safe-top)) 20px calc(24px + var(--safe-bottom)) calc(20px + var(--safe-left));overflow:visible}
.app-shell .workspace{margin-left:0;min-width:0;padding-top:var(--safe-top);padding-right:var(--safe-right)}
.app-brand{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:0 0 24px;flex-shrink:0;text-align:left;color:#fff;border-bottom:1px solid #354658}
.app-shell .sidebar nav{flex-shrink:0;margin-top:24px}
.app-shell .side-caddy{margin-top:32px;padding:0 6px}
@media(max-width:1200px) and (min-width:761px){.app-shell{grid-template-columns:calc(220px + var(--safe-left)) minmax(0,1fr)}.app-shell .sidebar{padding-right:14px;padding-left:calc(14px + var(--safe-left))}.app-brand{gap:8px}}
.help-page{max-width:1100px;margin:auto}.help-return{margin-top:22px;gap:10px;display:inline-flex;align-items:center;min-height:52px}
.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}.help-column{display:flex;flex-direction:column;gap:22px;min-width:0}
.help-card{background:#fff;border:1px solid #dce9ed;border-radius:20px;padding:28px;min-width:0}
.help-card h2,.help-about h2{font-size:26px;line-height:1.4;color:#21384b;margin-bottom:20px}
.help-card h3{font-size:21px;line-height:1.5;margin:24px 0 10px;color:#336a6f}.help-card h3:first-of-type{margin-top:0}
.help-card p{font-size:19px;line-height:1.85;color:#476373}.help-card p+p{margin-top:16px}.help-card .secondary{margin-top:24px;min-height:56px;font-size:19px}
.help-card .guide-steps{margin:0}.help-card .guide-steps>div{gap:16px;align-items:flex-start}.help-card .guide-steps strong{font-size:21px;line-height:1.5}.help-card .guide-steps small{display:block;font-size:19px;line-height:1.85;color:#476373;margin-top:8px}.help-card .guide-steps>div>b{font-size:21px;flex-shrink:0}
.help-card .help-note{border-top:1px solid #dce9ed;padding-top:16px;color:#526354}
.help-about{border-top:1px solid #cddde0;margin-top:36px;padding:28px 0 12px}.help-about dl{margin:0;display:grid;gap:16px}.help-about dl>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;font-size:18px;line-height:1.6}.help-about dt{color:#526777}.help-about dd{margin:0;font-weight:600;overflow-wrap:anywhere}.help-about a{color:#176b5a;text-decoration:underline;text-underline-offset:3px}.help-about a:focus-visible{outline:3px solid #e0ac00;outline-offset:3px;border-radius:3px}
@media(min-width:960px){.help-about dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;row-gap:18px}.help-about dl>div{grid-template-columns:minmax(112px,140px) minmax(0,1fr)}}
@media(max-height:740px) and (min-width:761px){.side-caddy{display:none}}
@media(max-width:1100px){.help-grid{display:flex;flex-direction:column;gap:22px}.help-column{display:contents}.help-grid [aria-labelledby="help-play"]{order:1}.help-grid [aria-labelledby="help-course"]{order:2}.help-grid [aria-labelledby="help-records"]{order:3}.help-grid [aria-labelledby="help-growth"]{order:4}.help-grid [aria-labelledby="help-sound"]{order:5}.help-grid .launch-legal{order:6}.help-grid .help-card:not([aria-labelledby]):not(.launch-legal){order:7}}
@media(max-width:760px){.app-shell{display:block}.app-shell .workspace{padding:0}.app-shell .sidebar{display:flex;background:transparent;border:0;padding:calc(12px + var(--safe-top)) max(12px,var(--safe-right)) 0 max(12px,var(--safe-left))}.app-shell .sidebar nav,.app-shell .side-caddy{display:none}.app-brand{gap:12px;width:fit-content;padding:0;border:0;color:#1e2838}.mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-nav button{font-size:16px;min-height:56px;padding-inline:0}.help-card{padding:24px 20px}.help-card h2,.help-about h2{font-size:25px}.help-about dl>div{grid-template-columns:120px minmax(0,1fr);gap:12px}.help-card .guide-steps>div{gap:12px}.help-card .guide-steps>div>b{width:30px;height:30px;line-height:30px}.help-return{width:100%;justify-content:center}}

.music-toggle{min-height:54px;font-size:19px;line-height:1.5}.music-toggle[aria-pressed="false"]{background:#eef2f3;color:#455d69;border-color:#ccd9dd}

/* Course selection must be distinct from green course art, with text as well as color. */
.course-section .course-card{border:3px solid #d4dfe3;transition:border-color .15s,box-shadow .15s}
.course-section .course-card.selected{border-color:#233b5b;background:#fff7dc;box-shadow:0 0 0 2px #f0bf4f,0 5px 14px #233b5b18}
.course-section .course-card.selected .card-body{background:#fff7dc}
.course-section .selection-check{width:36px;height:36px;top:12px;right:12px;border:2px solid #758697;background:#fffffff2;border-radius:10px}
.course-section .selected .selection-check{width:44px;height:44px;border:2px solid #fff;background:#ffdc65;color:#172d49;box-shadow:0 2px 8px #182b4530}
.course-section .selected .selection-check svg{width:28px;height:28px;stroke-width:3}
.course-selection-banner{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;min-height:46px;padding:9px 14px;background:#233b5b;color:#fff;font-size:18px;line-height:1.4;font-weight:700;letter-spacing:0}
.course-selection-banner b{color:#ffdf79;font-size:18px}.course-selection-banner>span{white-space:nowrap}
.course-section .selected .course-tag{display:none}
.course-section .selected .card-meta{border-color:#decf9b}.course-section .selected .card-meta strong{font-size:18px;color:#233b5b;font-weight:800}
.course-section .selected-count{border:2px solid #233b5b;background:#fff7dc;color:#233b5b;font-size:18px}.course-section .selected-count b{color:#233b5b}
@media(max-width:400px){.course-selection-banner{padding:8px 12px}.course-section .selection-check{top:10px;right:10px}}
@media(forced-colors:active){.course-section .course-card.selected{border-color:Highlight;outline:2px solid Highlight}.course-selection-banner{border-top:2px solid Highlight}}

/* One symbol and wordmark treatment for the game and administrator pages. */
@font-face{font-family:'Park Player Title';src:url('../assets/fonts/Belleza-Regular.ttf?v=a88eb0fdf4e7') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.park-player-brand{display:flex;align-items:center;gap:10px}
.park-player-brand .park-player-symbol{display:block;width:44px;height:44px;flex-shrink:0;border-radius:11px;object-fit:contain}
.park-player-brand .park-player-wordmark{display:inline-block;font-family:'Park Player Title',Georgia,serif;font-size:34px;line-height:1.2;font-weight:400;letter-spacing:-.3px;-webkit-text-stroke:.18px currentColor;white-space:nowrap}
@media(max-width:1200px) and (min-width:761px){.park-player-brand{gap:8px}.park-player-brand .park-player-symbol{width:40px;height:40px}.park-player-brand .park-player-wordmark{font-size:30px}}
@media(max-width:760px){.park-player-brand{gap:12px}}

.help-settings-actions{display:grid;gap:10px;margin-top:20px}.help-settings-actions>.secondary{min-width:0;margin:0}.help-page #help-title:focus{outline:none}

.help-admin-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0 24px;padding:19px 22px;border:1px solid #c8dfed;border-radius:18px;background:#f4f9fd}
.help-admin-entry>div{display:grid;gap:3px}.help-admin-entry strong{font-size:20px;color:#1b3c58}.help-admin-entry span{font-size:16px;line-height:1.5;color:#526777}
.help-admin-link{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:10px 18px;border-radius:12px;border:1px solid #1765a9;color:#175786;text-decoration:none;font-size:17px;font-weight:700;white-space:nowrap}
.help-admin-link:hover{background:#e3f1fa}.help-admin-link:focus-visible{outline:3px solid #e0ac00;outline-offset:3px}
@media(max-width:600px){.help-admin-entry{flex-direction:column;align-items:stretch;padding:18px}.help-admin-link{width:100%}}

.home-topline{display:flex;align-items:stretch;gap:12px}
.home-topline .account-strip{flex:1;min-width:0}
.home-share-button{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;flex-shrink:0;min-width:126px;height:80px;min-height:54px;margin-bottom:20px;padding:10px 18px;border:1px solid #a9cce4;border-radius:16px;background:#e8f4fc;color:#174b91;font-size:18px;font-weight:800;box-shadow:0 7px 20px #174b9112}
.home-share-button:hover{background:#d8edfb}
/* Inside the PlayPark app WebView this replaces the share button (sharing stays in the pause menu) and returns to the app. */
.home-close-button{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;flex-shrink:0;min-width:96px;height:80px;min-height:54px;margin-bottom:20px;padding:10px 18px;border:1px solid #c5cfdb;border-radius:16px;background:#fff;color:#1e2838;font-size:18px;font-weight:800;box-shadow:0 7px 20px #1e283812}
.home-close-button:hover{background:#f2f5f8}
@media(max-width:760px){.home-topline{display:block}.home-share-button,.home-close-button{position:absolute;z-index:2;top:calc(12px + var(--safe-top));right:max(12px,var(--safe-right));min-width:94px;height:44px;min-height:44px;margin:0;padding:7px 12px;border-radius:12px;font-size:15px}.home-close-button{min-width:64px}}
@media(max-width:350px){.park-player-brand{gap:8px}.park-player-brand .park-player-wordmark{font-size:29px}.home-share-button{min-width:88px;padding-inline:8px;font-size:14px}.home-close-button{min-width:56px;padding-inline:8px;font-size:14px}}

/* Guidance occupies the existing camera margin; only its text moves. */
.immersive-game .stage-note{position:absolute;left:12px;right:auto;bottom:22px;display:flex;flex-direction:column;align-items:stretch;gap:5px;width:min(440px,calc(100% - 215px));max-width:none;height:auto;min-height:44px;padding:9px 10px;z-index:2;background:#f8fff0f5;border:1px solid #c6d9b6;border-radius:16px;box-shadow:0 3px 12px #28473312;text-align:left}
.immersive-game .stage-note>.caddy-heading{display:flex;align-items:center;gap:9px;min-width:0}
.caddy-face{position:relative;display:block;width:44px;height:44px;flex-shrink:0;overflow:hidden;border-radius:50%;background:#e4f0d3;isolation:isolate;animation:plpak-nod 4.8s ease-in-out infinite;transform-origin:50% 80%}
.caddy-face .caddy-portrait{position:absolute;display:block;width:178%;max-width:none;height:auto;left:-32%;top:-5%;object-fit:contain;pointer-events:none;user-select:none;clip-path:polygon(16% 28%,17% 17%,24% 10%,33% 4%,43% 3%,55% 6%,64% 5%,72% 6%,74% 10%,70% 14%,76% 23%,76% 31%,72% 37%,64% 42%,48% 44%,35% 42%,25% 37%)}
.immersive-game .stage-note .caddy-name{display:flex;align-items:center;gap:5px;font-size:18px;line-height:1.4;font-weight:700;color:#236840;white-space:nowrap}.caddy-name svg{width:16px;height:16px}
.immersive-game .stage-note>.caddy-copy-window{display:block;min-width:0;width:100%;overflow:hidden;font-size:18px;line-height:1.6;white-space:nowrap}
.caddy-copy-text{display:block;width:max-content;max-width:none;padding-right:3px;white-space:nowrap;overflow:visible;color:#264b37;text-align:left;transform:translateX(0)}
.stage-note:focus-visible .caddy-face,.stage-note:hover .caddy-face{animation-play-state:paused}
.caddy-detail-heading{display:flex;align-items:center;gap:16px;margin-bottom:24px}.caddy-detail-heading .caddy-face{width:64px;height:64px;animation:none}.modal .caddy-detail-heading h2{margin:0;padding:0}.modal .caddy-full-message{font-size:22px;line-height:1.9;color:#264b37;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 28px}
@keyframes plpak-nod{0%,38%,100%{transform:translateY(0) rotate(0)}48%{transform:translateY(-2px) rotate(-5deg)}60%{transform:translateY(0) rotate(4deg)}72%{transform:translateY(-1px) rotate(-2deg)}84%{transform:translateY(0) rotate(0)}}
@media(max-width:400px){.immersive-game .stage-note{left:10px;bottom:18px;width:calc(100% - 173px);padding:8px}.caddy-face{width:40px;height:40px}}
@media(max-height:700px) and (orientation:portrait){.immersive-game .stage-note{width:calc(100% - 165px);bottom:15px}}
@media(orientation:landscape) and (max-height:540px){.immersive-game .stage-note{left:auto;right:12px;bottom:auto;top:8px;width:154px;display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:7px;row-gap:0;padding:6px}.immersive-game .stage-note>.caddy-heading{display:contents}.immersive-game .stage-note .caddy-face{grid-column:1;grid-row:1/3;width:36px;height:36px;align-self:center}.immersive-game .stage-note .caddy-name{grid-column:2;grid-row:1;font-size:16px}.immersive-game .stage-note>.caddy-copy-window{grid-column:2;grid-row:2;font-size:18px}}
@media(orientation:landscape) and (max-height:360px){.immersive-game .stage-note .caddy-name{display:none}.immersive-game .stage-note>.caddy-copy-window{grid-row:1/3;align-self:center}}
@media(prefers-reduced-motion:reduce){.caddy-face{animation:none}.caddy-copy-text{transform:none!important}}

/* Large type, explicit level labels and high-contrast progress for older players. */
.growth-profile{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:28px;border-radius:24px;background:#233b5b;color:#fff;margin:20px 0;box-shadow:0 6px 18px #233b5b14}
.growth-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border:3px solid #fff0a5;border-radius:50%;background:#ffe380;color:#233b5b;flex-shrink:0;line-height:1}
.growth-badge small{font-size:17px;font-weight:800;letter-spacing:1px}.growth-badge b{font-size:40px;margin-top:5px}
.growth-identity{min-width:0}.growth-identity p{margin:0 0 8px;font-size:18px;color:#e2ebf6;overflow-wrap:anywhere}.growth-identity h2{font-size:30px;margin:0;color:#fff;line-height:1.4}
.growth-balance{display:flex;flex-direction:column;gap:7px}.growth-balance>span{font-size:18px;color:#e2ebf6}.growth-balance strong{font-size:42px;color:#ffe380;line-height:1.2;overflow-wrap:anywhere}.growth-balance small{font-size:24px}
.growth-progress{grid-column:1/-1;min-width:0}.growth-track{height:16px;background:#102641;border-radius:20px;overflow:hidden;border:1px solid #61748f}.growth-track>span{display:block;height:100%;background:#ffe380;border-radius:20px}.growth-progress p{font-size:19px;line-height:1.7;margin:12px 0 0;overflow-wrap:anywhere}.growth-progress p.growth-context{font-size:17px;color:#dde7f5;margin-top:5px}
.growth-help{padding:20px 24px;margin:0 0 28px;border-radius:18px}.growth-help>summary,.growth-levels>summary{font-size:19px;line-height:1.6;font-weight:700;cursor:pointer;min-height:48px;align-content:center;color:#233b5b}.growth-help summary:focus-visible,.growth-levels summary:focus-visible{outline:3px solid #233b5b;outline-offset:4px;border-radius:4px}
.growth-guide p{font-size:18px;line-height:1.8;color:#40546b}.growth-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.growth-rules>div{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#f1f5fa;border-radius:12px;padding:16px}.growth-rules dt{font-size:18px}.growth-rules dd{margin:0;font-size:22px;font-weight:800;color:#233b5b;white-space:nowrap}.growth-levels{margin-top:18px}.growth-levels ol{list-style:none;padding:0;margin:8px 0}.growth-levels li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid #dce4ed;font-size:18px;line-height:1.6}.growth-levels li b{white-space:nowrap}
.growth-board{margin:24px 0 32px;padding:24px;border-radius:20px}.growth-board h2{font-size:26px;line-height:1.5}.growth-board>p{font-size:17px;line-height:1.7;color:#52647a}.growth-board ol{padding:0;margin:0;list-style:none}.growth-board li{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px 0;border-top:1px solid #dce4ed}.growth-place{color:#233b5b;font-size:28px}.growth-place small{font-size:16px;margin-left:4px}.growth-person{display:flex;flex-direction:column;min-width:0;gap:6px;overflow-wrap:anywhere}.growth-person>b{font-size:20px}.growth-person>span{font-size:17px;color:#52647a;line-height:1.6}.growth-board li>strong{font-size:26px;color:#233b5b;overflow-wrap:anywhere}.growth-board li>strong small{font-size:18px}
.history-growth{display:block;margin-top:8px;font-size:19px;color:#233b5b;background:#fff2bc;border-radius:8px;padding:5px 8px;line-height:1.5;text-align:center}
.round-growth{margin:24px 0;padding:22px;background:#f1f5fa;border:1px solid #cfdae7;border-radius:16px}.round-growth>h3{font-size:24px;margin:0 0 16px;line-height:1.5;color:#233b5b}.round-growth-player{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:18px 0}.round-growth-player+.round-growth-player{border-top:1px solid #cbd6e4}.round-growth .growth-badge{width:58px;height:58px;border-width:2px}.round-growth .growth-badge small{font-size:13px}.round-growth .growth-badge b{font-size:27px;margin-top:2px}.round-growth-name{display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere}.round-growth-name>b{font-size:20px}.round-growth-name>span{font-size:17px;line-height:1.6;color:#40546b}.growth-earned{font-size:30px;color:#233b5b;white-space:nowrap}.growth-earned small{font-size:19px}.round-growth p{font-size:18px;line-height:1.8;margin:0;grid-column:1/-1;color:#40546b}.round-growth p.growth-level-up{padding:12px 14px;background:#ffe380;color:#233b5b;border-radius:10px;font-weight:800}.round-growth p.growth-save-warning{margin-bottom:12px;color:#903e16}
@media(max-width:760px){.growth-profile{padding:22px 18px;gap:16px;grid-template-columns:auto minmax(0,1fr);border-radius:20px}.growth-identity h2{font-size:28px}.growth-badge{width:74px;height:74px}.growth-badge b{font-size:34px}.growth-balance{grid-column:1/-1;border-top:1px solid #ffffff33;padding-top:18px}.growth-balance strong{font-size:42px}.growth-help,.growth-board{padding:18px 14px}.growth-rules{grid-template-columns:1fr}.growth-board li{grid-template-columns:36px minmax(0,1fr);gap:10px}.growth-board li>strong{grid-column:2;font-size:25px}.round-growth{padding:18px 14px}.round-growth-player{grid-template-columns:auto minmax(0,1fr)}.growth-earned{grid-column:1/-1;font-size:34px}.round-growth>h3{font-size:23px}.history-growth{font-size:18px}}

/* Keep locked course previews legible; the padlock and labels communicate access. */
.course-card.is-locked .card-cover>svg{filter:saturate(.3)}
.course-card.is-locked{border:3px solid #8996a6;background:#f6f8fa}.course-card.is-locked .card-body{background:#f6f8fa}
.course-lock-badge{position:absolute;left:14px;right:14px;bottom:14px;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:12px;background:#233b5b;color:#fff;padding:12px;min-height:56px;font-size:19px;line-height:1.5;box-shadow:0 2px 8px #12213b30}
.course-lock-badge svg,.course-access-note>svg{flex-shrink:0}.course-lock-badge b{font-size:19px}
.course-access-note{display:flex;gap:10px;align-items:center;padding:12px;margin:16px 0;border-radius:12px;background:#e4eaf2;color:#233b5b;line-height:1.6;font-size:18px}.course-access-note>span{display:flex;flex-direction:column;gap:3px;min-width:0}.course-access-note.available{background:#eef3e1}.course-access-note b{font-size:18px}.course-access-note span span{font-size:17px;overflow-wrap:anywhere}
.course-player-panel{margin:0 0 28px;background:#fff;border:2px solid #233b5b;border-radius:20px;padding:24px;min-width:0}.course-player-picker{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.course-player-picker .field{flex:1;min-width:0;max-width:430px;margin:0;font-size:18px}.course-player-picker select{width:100%;min-height:52px;font-size:19px}.course-player-picker button{font-size:18px;min-height:52px}.course-player-growth{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:18px 0 12px;font-size:19px;color:#233b5b}.course-player-growth>strong{font-size:27px}.course-player-growth>span{font-size:18px;margin-left:auto;background:#fff0b7;padding:7px 12px;border-radius:10px;color:#233b5b}.course-player-panel .course-next-unlock{font-size:19px;line-height:1.7;color:#233b5b;background:#eef3f9;border-radius:12px;padding:14px;margin:4px 0 14px}.course-player-panel .course-player-hint{font-size:17px;line-height:1.8;color:#4d6379;margin:0;word-break:keep-all;overflow-wrap:anywhere}
.setup-course-access{margin:18px 0;padding:16px;border-radius:14px;background:#eef3f9;color:#233b5b}.setup-course-access p{font-size:18px;line-height:1.7;margin:0 0 8px;overflow-wrap:anywhere}.setup-course-access p.setup-lock-warning{font-weight:700;color:#914619}.setup-course-access .secondary{margin-top:10px}.course-detail-requirement{font-size:19px;line-height:1.8;color:#233b5b}
.course-unlock-guide ul{padding:0;list-style:none}.course-unlock-guide li{padding:14px 0;border-bottom:1px solid #d5e0e9;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:19px}.course-unlock-guide li span{white-space:nowrap}.round-growth p.growth-course-unlocked{background:#e0ecd0;color:#254c38;border:1px solid #b6c998;border-radius:12px;padding:14px;font-size:19px;word-break:keep-all}
@media(max-width:760px){.course-player-panel{padding:18px 14px}.course-player-picker{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.course-player-picker .field{max-width:none}.course-player-picker button{width:100%}.course-player-growth{gap:10px 12px}.course-player-growth>span{margin-left:0}.course-lock-badge{left:10px;right:10px;font-size:18px;gap:8px;padding:10px}.course-lock-badge b{font-size:18px}.course-unlock-guide li{font-size:18px}}

/* Strong edges survive bright greens, sand, terrain grids and every camera zoom. */
#aim-layer,#balls-layer,#trail-layer{pointer-events:none}
#course-map .cup-rim{vector-effect:non-scaling-stroke;stroke-width:2px}
#course-map .aim-outline,#course-map .aim-line,#course-map .shot-trail-outline,#course-map .shot-trail{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
#course-map .aim-outline{stroke:#17283d;stroke-width:7px;opacity:.95}
#course-map .aim-line{stroke:#ffdf48;stroke-width:3px;stroke-dasharray:none;animation:none;opacity:1}
.aim-chevron-outline,.aim-chevron{fill:none;stroke-linecap:round;stroke-linejoin:round}.aim-chevron-outline{stroke:#17283d;stroke-width:6}.aim-chevron{stroke:#ffdf48;stroke-width:3}
.aim-target-outline{fill:none;stroke:#17283d;stroke-width:6}.aim-target-ring{fill:none;stroke:#ffdf48;stroke-width:3}
#course-map .active-ball-ring-outline{fill:none;stroke:#17283d;stroke-width:5}
#course-map .active-ball-ring{fill:none;stroke:#ffdf48;stroke-width:2.5;animation:none;opacity:1}
.ball-rim{fill:#fff;stroke:#fff;stroke-width:3}.ball-body{stroke:#17283d;stroke-width:2.2}
#course-map .shot-trail-outline{stroke:#17283d;stroke-width:5px;opacity:.65}
#course-map .shot-trail{stroke:#fff;stroke-width:2.5px;opacity:.95}

/* A compact information line leaves the course most of the screen. */
.game-shell.immersive-game{max-width:none;padding:var(--safe-top) max(4px,var(--safe-right)) var(--safe-bottom) max(4px,var(--safe-left));display:flex;flex-direction:column}
.game-shell.immersive-game .game-header{display:flex;align-items:center;gap:6px;min-height:48px;height:48px;padding:0 4px;flex-shrink:0}
.immersive-game .hole-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1;min-width:0;white-space:nowrap;color:#233b5b}
.immersive-game .hole-heading .course-title{display:flex;align-items:center;gap:6px;flex:1;min-width:0;font-size:19px;line-height:1.4;white-space:nowrap}
.immersive-game .course-half{font-size:15px;color:#516778;font-weight:500}.immersive-game .course-title b{font-size:19px;white-space:nowrap}
.immersive-game .hole-heading h1{display:flex;align-items:baseline;gap:2px;font-size:18px;line-height:1.2;margin:0;white-space:nowrap;color:#233b5b}
.immersive-game .hole-heading h1 strong{font-size:25px}.immersive-game .hole-par,.immersive-game .hole-length{font-size:18px;line-height:1.3;white-space:nowrap}
.game-shell.immersive-game .game-progress{margin:0 5px 3px;height:4px;min-height:4px}.game-shell.immersive-game .game-progress span{height:4px}
.game-shell.immersive-game .field-area{border-radius:12px}.immersive-game .field-toolbar{top:6px;left:6px;right:6px}.immersive-game .joystick-dock{right:10px;bottom:10px}.immersive-game .stage-note{left:8px;bottom:10px}
#course-map[data-view-axis="horizontal"] #course-world text:not(.flag-number){transform-box:fill-box;transform-origin:center;transform:rotate(-90deg)}
@media(max-width:360px){.immersive-game .hole-heading{gap:7px}.immersive-game .hole-heading .course-title{gap:4px}.immersive-game .course-title b{font-size:16px}.immersive-game .course-half{font-size:13px}.immersive-game .hole-heading h1{font-size:16px}.immersive-game .hole-heading h1 strong{font-size:22px}.immersive-game .hole-par,.immersive-game .hole-length{font-size:16px}.game-shell.immersive-game .game-header{padding:0 2px;gap:2px}}
@media(orientation:landscape) and (max-height:540px){.game-shell.immersive-game{display:flex;flex-direction:column}.immersive-game .field-toolbar{right:174px;top:6px}.immersive-game .stage-note{left:auto;right:8px;top:6px;bottom:auto}.game-shell.immersive-game .game-layout{width:100%;flex:1}.immersive-game .hole-heading{justify-content:flex-start}.immersive-game .hole-heading .course-title{flex:0 1 auto}}


/* Match status to the joystick column, leaving only hole metadata above the map. */
.game-shell.immersive-game .joystick-dock{--dock-size:clamp(130px,36vw,166px);width:max(154px,var(--dock-size));display:flex;flex-direction:column;align-items:center;gap:7px}
.immersive-game .joystick-console{--stick-size:var(--dock-size);align-items:center}
.game-shell.immersive-game .game-status{display:flex;flex-direction:column;position:static;align-items:stretch;gap:3px;width:100%;max-width:none;min-height:0;margin:0;padding:8px 10px;border:1px solid #c7d8b7;border-radius:15px;background:#f8fff1f5;color:#244633;box-shadow:0 3px 10px #254b3214;flex-shrink:0}
.game-shell.immersive-game .game-status>div{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;min-width:0;gap:5px}
.game-shell.immersive-game .game-status .turn-summary{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding-bottom:5px;margin-bottom:2px;border-bottom:1px solid #dbe6d0}
.game-shell.immersive-game .game-status small{font-size:14px;line-height:1.4;color:#496153;white-space:nowrap}
.game-shell.immersive-game .game-status .turn-summary small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-shell.immersive-game .game-status strong{font-size:23px;line-height:1.2;white-space:nowrap;color:#235b39;font-variant-numeric:tabular-nums}
.game-shell.immersive-game .game-status strong span{font-size:14px;margin-left:3px}.game-shell.immersive-game .game-status .turn-summary strong{font-size:25px}
.pause-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.pause-tools button{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;min-height:52px;font-size:18px}
@media(max-height:700px) and (orientation:portrait){.game-shell.immersive-game .joystick-dock{--dock-size:130px}}
@media(orientation:landscape) and (max-height:540px){.game-shell.immersive-game .joystick-dock{--dock-size:128px;gap:5px}.immersive-game .field-toolbar{right:174px}.immersive-game .stage-note{left:8px;right:auto;top:auto;bottom:10px;width:min(310px,calc(100% - 180px))}.game-shell.immersive-game .game-status{padding:6px 9px;gap:2px}.game-shell.immersive-game .game-status strong{font-size:22px}.game-shell.immersive-game .game-status .turn-summary strong{font-size:23px}}
@media(orientation:landscape) and (max-height:360px){.game-shell.immersive-game .joystick-dock{--dock-size:112px;gap:4px;bottom:7px}.game-shell.immersive-game .game-status{padding:5px 9px;gap:1px}.game-shell.immersive-game .game-status .turn-summary{flex-direction:row;align-items:center;padding-bottom:3px;margin-bottom:1px;gap:5px}.game-shell.immersive-game .game-status .turn-summary small{min-width:0;flex:1}.game-shell.immersive-game .game-status .turn-summary strong{flex-shrink:0}.game-shell.immersive-game .game-status strong,.game-shell.immersive-game .game-status .turn-summary strong{font-size:21px}.immersive-game .stick-readout{min-height:28px;padding:1px 12px}.immersive-game .stick-readout strong{font-size:20px}}

/* Hole results have one score focal point, a contained caddy, and fixed actions. */
.modal.hole-result-modal{width:min(100%,560px);max-width:560px;padding:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #dce6df;border-radius:24px;background:#fffefa;color:#243d50}
.hole-result-modal .modal-close{top:12px;right:12px;background:#f0f4ef;flex-shrink:0}
.hole-result-scroll{padding:26px 26px 12px;min-height:0;overflow:auto;overscroll-behavior:contain;scroll-padding-block:60px 16px}
.hole-result-heading{padding-right:48px;margin-bottom:18px}
.hole-result-heading>p{margin:0 0 7px;font-size:17px;font-weight:600;line-height:1.5;color:#516557;overflow-wrap:anywhere}
.hole-result-heading>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hole-result-modal .hole-result-heading h2{font-size:30px;letter-spacing:-.7px;line-height:1.3;margin:0;padding:0;color:#243d50}
.hole-result-progress{font-size:15px;white-space:nowrap;color:#526754;border:1px solid #dce5d9;border-radius:20px;padding:4px 9px;font-variant-numeric:tabular-nums}
.hole-result-heading .hole-result-meta{display:flex;gap:14px;margin:9px 0 0;font-size:17px;font-weight:500;color:#506375}.hole-result-meta span+span{border-left:1px solid #cedbd0;padding-left:14px}
.hole-result-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(118px,42%);align-items:center;gap:6px;background:#edf4e7;border:1px solid #dbe8d2;border-radius:20px;min-height:186px;padding:15px 15px 15px 22px;isolation:isolate}
.hole-result-hero.under{background:#fff4cc;border-color:#f0dfa7}.hole-result-hero.over{background:#edf3f7;border-color:#d9e5ed}.hole-result-hero.together{background:#edf4e7;min-height:128px;padding-block:10px}.together .hole-result-character{height:116px}.together .hole-team-count{font-size:46px}.together .hole-score-label{font-size:25px}
.hole-result-highlight{min-width:0}.hole-score-label{display:block;font-size:28px;font-weight:800;line-height:1.25;letter-spacing:-.5px;color:#24613d;word-break:keep-all;overflow-wrap:anywhere}.under .hole-score-label{color:#795713}.over .hole-score-label{color:#355879}
.hole-score-value,.hole-team-count{font-variant-numeric:tabular-nums;font-size:72px;font-weight:800;line-height:1.08;letter-spacing:-2px;margin:6px 0;color:#243d50;white-space:nowrap}
.hole-score-value small{font-size:24px;letter-spacing:0;margin-left:7px;font-weight:600}.hole-team-count{font-size:60px}.hole-team-count small{font-size:19px;letter-spacing:0;margin-left:7px;font-weight:600}
.hole-result-highlight .hole-score-context{font-size:16px;line-height:1.5;margin:8px 0 0;color:#52616b;word-break:keep-all}
.hole-result-character{position:relative;display:grid;place-items:center;height:168px;min-width:0}.hole-result-character:before{content:'';position:absolute;width:90%;aspect-ratio:1;max-height:150px;border-radius:50%;background:#ffffff80;z-index:-1}
.hole-result-character .mascot{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px #34533715)}
.hole-result-summary{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:18px 0 0;padding:18px 0;border-block:1px solid #e0e6dd}.hole-result-summary>div{min-width:0;padding:0 14px}.hole-result-summary>div:first-child{padding-left:0;border-right:1px solid #e0e6dd}.hole-result-summary>div:last-child{padding-right:0}
.hole-result-summary dt{font-size:16px;color:#546578;line-height:1.4;margin-bottom:6px}.hole-result-summary dd{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 9px;margin:0}.hole-result-summary dd strong{font-size:29px;line-height:1.3;white-space:nowrap;color:#243d50}.hole-result-summary small,.hole-player-score small{font-size:17px;font-weight:500;margin-left:4px}.penalty-included{font-size:15px;color:#58685c}.result-delta{font-size:16px;line-height:1.2;padding:3px 8px;border-radius:7px;background:#eaf1e3;color:#2f573d;font-weight:700;font-variant-numeric:tabular-nums}
.hole-player-heading{display:flex;justify-content:space-between;gap:8px;margin-top:20px;padding:0 3px 9px;font-size:15px;color:#596b72;border-bottom:1px solid #dce5db}
.hole-player-results{list-style:none;padding:0;margin:0}.hole-player-results li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:5px 12px;padding:11px 2px;border-bottom:1px solid #e2e8e0}
.hole-player-name{display:flex;align-items:center;gap:8px;min-width:0;grid-column:1;grid-row:1}.hole-player-name b{font-size:20px;line-height:1.4;overflow-wrap:anywhere;min-width:0}.hole-player-number{display:grid;place-items:center;width:25px;height:25px;flex-shrink:0;border-radius:50%;background:#e9efdf;color:#4b664c;font-size:14px;font-weight:700}
.hole-player-score{display:flex;flex-direction:column;align-items:flex-end;grid-column:2;grid-row:1/3;gap:2px}.hole-player-score strong{font-size:30px;line-height:1.05;font-variant-numeric:tabular-nums;white-space:nowrap}.hole-player-score>span{font-size:14px;color:#385b43;background:#edf3e7;border-radius:6px;padding:3px 7px;white-space:nowrap}
.hole-player-total{display:flex;gap:4px 12px;flex-wrap:wrap;font-size:15px;line-height:1.5;color:#5a6974;grid-column:1;grid-row:2}
.hole-result-message{font-size:17px;line-height:1.65;color:#42624e;margin:18px 0 5px;word-break:keep-all;overflow-wrap:anywhere}.hole-result-message b{display:inline-block;color:#245f3b;margin-right:9px;font-size:16px}
.hole-result-actions{flex-shrink:0;padding:14px 26px 16px;background:#fffefa;border-top:1px solid #e6ece1;box-shadow:0 -5px 15px #24412605;display:grid;gap:5px}.hole-result-actions .primary{min-height:54px;font-size:21px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:12px}.hole-result-actions .text-button{min-height:44px;font-size:17px;margin:0;display:flex;justify-content:center;align-items:center;gap:8px;color:#466451}
.event-mascot{position:relative;width:156px;height:156px;margin:0 auto 8px}.event-mascot .mascot{width:100%;height:100%;object-fit:contain}.shot-event .event-mascot .event-symbol{position:absolute;left:0;bottom:3px;width:42px;height:42px;border:3px solid #fff;margin:0;background:#e5f2da;animation:none}.shot-event.ob .event-mascot .event-symbol{color:#ad4b27;background:#fff0df}.shot-event.water .event-mascot .event-symbol{background:#e3f1f8;color:#286e9a}
.mascot-reaction[data-pose="celebrate"]{animation:plpak-cheer 700ms ease-out 2;transform-origin:50% 90%}.mascot-reaction[data-pose="praise"]{animation:plpak-approve 1000ms ease-in-out;transform-origin:50% 85%}.mascot-reaction[data-pose="encourage"]{animation:plpak-encourage 1200ms ease-in-out;transform-origin:50% 90%}
@keyframes plpak-cheer{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-7px) rotate(-3deg)}70%{transform:translateY(-2px) rotate(2deg)}}
@keyframes plpak-approve{0%,100%{transform:rotate(0)}40%{transform:rotate(-4deg)}75%{transform:rotate(2deg)}}
@keyframes plpak-encourage{0%,100%{transform:rotate(0)}35%{transform:rotate(3deg)}70%{transform:rotate(-2deg)}}
@media(max-width:400px){.hole-result-scroll{padding:22px 17px 10px}.hole-result-modal .hole-result-heading h2{font-size:27px}.hole-result-heading>div{gap:8px}.hole-result-heading{padding-right:36px}.hole-result-progress{font-size:14px;padding:4px 7px}.hole-result-hero{padding:14px;grid-template-columns:minmax(0,1fr) minmax(100px,42%);min-height:165px}.hole-result-character{height:146px}.hole-score-value{font-size:60px}.hole-score-label{font-size:25px}.hole-team-count{font-size:49px}.hole-team-count small{font-size:17px}.hole-score-context{font-size:16px}.hole-result-actions{padding:12px 17px 12px}.hole-player-name b{font-size:19px}.hole-player-results li{gap:6px 8px}.hole-result-summary dd{gap:4px 7px}}
@media(max-height:650px){.hole-result-scroll{padding-top:20px}.hole-result-heading{margin-bottom:13px}.hole-result-heading>p{margin-bottom:4px}.hole-result-heading .hole-result-meta{margin-top:6px}.hole-result-hero{min-height:130px;padding-block:10px}.hole-result-character{height:126px}.hole-score-value{font-size:53px;margin:4px 0}.hole-score-label{font-size:25px}.hole-result-summary{margin-top:12px;padding-block:12px}.hole-result-message{margin-top:12px}.event-mascot{width:110px;height:110px}.shot-event h2{margin-bottom:8px}.shot-event>strong{margin-bottom:14px}}
@media(min-width:540px) and (max-height:540px){.hole-result-actions{grid-template-columns:1fr 1fr;align-items:center;gap:12px;padding:10px 20px}.hole-result-actions .primary{min-height:48px;font-size:19px}}
@media(prefers-reduced-motion:reduce){.mascot-reaction[data-pose]{animation:none}}

.venue-picker{margin:16px 0 26px}.venue-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.venue-picker-heading h2{font-size:26px;margin:0}.venue-picker-heading>span{font-size:17px;color:#526478}.venue-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.venue-tile{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:5px;overflow:hidden;border:2px solid #cdd9d4;border-radius:16px;background:white;color:#24384b;text-align:left;padding:0 0 14px;min-width:0}.venue-tile .venue-scenery{display:block;width:100%;height:78px;object-fit:cover;margin-bottom:5px}.venue-tile>small,.venue-tile>b,.venue-tile>span:not(.venue-check){padding:0 12px;line-height:1.5;overflow-wrap:anywhere}.venue-tile>small{font-size:15px;color:#536578}.venue-tile>b{font-size:18px}.venue-tile>span:not(.venue-check){font-size:15px}.venue-tile.is-selected{border:3px solid #223955;background:#f0f4f7;box-shadow:0 0 0 2px #ffdd75}.venue-check{position:absolute;top:8px;right:8px;width:27px;height:27px;border-radius:50%;background:white;border:1px solid #8b9ba9;display:grid;place-items:center;font-size:19px;font-weight:900}.is-selected>.venue-check{background:#ffdc71;color:#223955;border-color:#223955}.venue-mobile-picker{display:none}.venue-overview{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,1.4fr);align-items:center;gap:24px;background:var(--venue-light);border:1px solid #d0ddd6;border-radius:22px;overflow:hidden;margin:0 0 24px}.venue-overview>.venue-scenery{width:100%;height:auto;align-self:stretch;min-height:200px}.venue-overview>div{padding:22px 24px 22px 0;min-width:0}.venue-region{font-size:17px;color:var(--venue-color);font-weight:700}.venue-overview h2{font-size:30px;margin:8px 0 10px;color:#23384b}.venue-overview p{font-size:18px;line-height:1.7;margin:8px 0}.venue-traits{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:12px 0}.venue-traits li{background:#ffffffc9;color:#314c42;border-radius:8px;padding:5px 9px;font-size:16px}.venue-counts{display:flex;flex-wrap:wrap;gap:8px 18px;color:#263e50}.venue-counts span{font-size:17px}.venue-courses-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:26px 0 18px}.venue-courses-heading h2{font-size:25px;margin:0}.venue-courses-heading p{font-size:18px;line-height:1.6;margin:8px 0 0}.course-difficulty{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:700;color:#36546d;margin:6px 0 12px}.course-difficulty .difficulty{display:flex;flex-shrink:0}.card-venue-label{font-size:16px;color:#4c6270;margin:0 0 5px;line-height:1.5}.course-unlock-guide details{margin:10px 0;padding:12px;border:1px solid #cdd9d4;border-radius:12px}.course-unlock-guide summary{font-size:18px;font-weight:700;cursor:pointer;line-height:1.6}.course-unlock-guide li small{display:block;font-size:15px;font-weight:400;color:#526478}.round-route small.round-venue-name{font-size:16px;font-weight:700;line-height:1.5}.venue-overview h2:focus-visible{outline:3px solid #253b5a;outline-offset:3px}
@media(max-width:1100px) and (min-width:701px){.venue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.venue-overview{gap:16px}.venue-overview h2{font-size:27px}}
@media(max-width:700px){.venue-grid{display:none}.venue-mobile-picker{display:flex;flex-direction:column;font-size:18px;margin:0;gap:8px}.venue-mobile-picker select{width:100%;min-width:0;min-height:54px;font-size:17px;border:2px solid #233b5b;border-radius:12px;background:white;color:#233b5b;padding:10px 32px 10px 12px}.venue-picker-heading{align-items:flex-start}.venue-picker-heading h2{font-size:23px}.venue-picker-heading>span{font-size:15px}.venue-overview{grid-template-columns:1fr;gap:0;border-radius:16px}.venue-overview>.venue-scenery{height:115px;min-height:0;width:100%;object-fit:cover}.venue-overview>div{padding:14px 16px 18px}.venue-overview h2{font-size:26px}.venue-overview p{font-size:18px}.venue-traits li{font-size:15px}.venue-courses-heading{display:block}.venue-courses-heading h2{font-size:23px}.venue-courses-heading .selected-count{display:inline-block;margin-top:12px}.card-title h3{font-size:24px}.course-difficulty{font-size:17px}.venue-counts{gap:4px 12px}.round-route small.round-venue-name{font-size:15px}.venue-picker{margin-bottom:18px}}

.volcanic-rocks .course-rock>circle{fill:#4c5957;stroke:#283b39}.volcanic-rocks .course-rock>path:first-of-type{fill:#88918a}.volcanic-rocks .course-rock>path:nth-of-type(2){stroke:#4c625b}

/* Keep course-preview navigation in reach while browsing the map. */
.modal.hole-preview-modal{padding:0;display:flex;flex-direction:column;overflow:hidden;background:#fffefa}
.hole-preview-header{flex-shrink:0;padding:22px 58px 14px 20px}
.hole-preview-modal .hole-preview-header .eyebrow{margin:0 0 8px;font-size:15px;letter-spacing:0;line-height:1.5}
.hole-preview-modal .hole-preview-header h2{margin:0;padding:0;font-size:28px;line-height:1.25}
.hole-preview-header h2 small{display:block;font-size:18px;margin-top:6px;line-height:1.4}
.hole-preview-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 18px 14px}
.hole-preview-body .preview-map{height:clamp(220px,calc(var(--viewport-height) - 300px),350px)}
.hole-preview-actions{flex-shrink:0;border-top:1px solid #dfe7db;padding:12px 18px 10px;background:#fffefa}
.hole-preview-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}
.hole-preview-navigation button{min-width:0;min-height:54px;padding:12px 8px;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
.hole-preview-navigation button:disabled{opacity:1;color:#7c858a;background:#edf0ec;border:1px solid #dfe3dc;box-shadow:none}
.hole-preview-position{font-size:17px;color:#506574;white-space:nowrap;font-variant-numeric:tabular-nums}
.hole-preview-position b{font-size:24px;color:#243d50}
.hole-preview-actions .text-button{margin-top:6px;min-height:44px;font-size:17px;color:#405e50}
@media(max-width:360px){.hole-preview-actions{padding-inline:12px}.hole-preview-navigation{gap:7px}.hole-preview-position{font-size:15px}.hole-preview-navigation button{gap:2px}}
@media(min-width:600px) and (max-height:500px){.modal.hole-preview-modal{width:min(100%,760px);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1fr);grid-template-rows:auto 1fr}.hole-preview-header{grid-column:2;grid-row:1;padding-top:18px}.hole-preview-body{grid-column:1;grid-row:1/3;padding:12px;height:100%}.hole-preview-body .preview-map{height:100%;min-height:220px}.hole-preview-actions{grid-column:2;grid-row:2;align-self:end}}

/* A selected round can start without scrolling past every course card. */
.quick-round-start{position:fixed;z-index:25;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));width:min(440px,calc(100vw - 40px));display:flex;align-items:center;gap:14px;padding:12px 14px;border:2px solid #203958;border-radius:16px;background:#fff9e5;box-shadow:0 10px 30px #1b304344}
.quick-round-summary{display:grid;gap:3px;min-width:0;flex:1;color:#243b52;font-size:15px;line-height:1.35}
.quick-round-summary b{font-size:17px}
.quick-round-summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-round-start .primary{flex-shrink:0;min-height:54px;padding:12px 15px;background:#203958;font-size:18px;font-weight:800}
.quick-round-start .primary:hover{background:#102945}
.app-shell:has(.quick-round-start) #main{padding-bottom:115px}
@media(max-width:760px){.quick-round-start{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(82px + env(safe-area-inset-bottom));width:auto;gap:10px;padding:10px}.quick-round-summary{font-size:14px}.quick-round-summary b{font-size:16px}.quick-round-start .primary{min-height:54px;font-size:17px}.app-shell:has(.quick-round-start) #main{padding-bottom:195px}}
@media(max-width:360px){.quick-round-summary span{font-size:13px}.quick-round-start .primary{font-size:16px;padding:10px}}

.quick-round-start.is-unavailable{border-color:#b9cad5;background:#f1f6f9;box-shadow:0 8px 24px #1b304322}
.quick-round-start.is-unavailable .quick-round-summary b{color:#263f52}
.quick-round-start.is-unavailable .quick-round-summary span{white-space:normal;overflow:visible;text-overflow:clip;color:#526b7b;line-height:1.45}
.quick-round-start.is-unavailable .primary:disabled{opacity:1;background:#cbd9e2;color:#405a6b;box-shadow:none;cursor:not-allowed}

.account-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 20px;padding:14px 18px;background:#eef1e9;border:1px solid #d7dfd1;border-radius:16px}.account-strip>div{display:flex;gap:9px;align-items:center;flex-wrap:wrap;min-width:0}.account-strip b{font-size:18px}.account-strip small{color:#53604e;font-size:15px}.account-strip .secondary{flex-shrink:0;font-size:17px;min-height:46px}.plan-badge{display:inline-flex;padding:5px 11px;background:#d7e8cd;color:#284936;border-radius:7px;font-size:16px;font-weight:800}.plan-badge.plus{background:#26354e;color:#ffe3a2}.member-test-panel,.member-plan,.member-collection,.member-customize{padding:26px;background:#fffef8;border:1px solid #d9dfd1;border-radius:20px;margin:0 0 24px}.member-test-panel{background:#edf3f7;border-color:#c1d2df}.member-test-panel h2,.member-plan h2,.member-collection h2,.member-customize h2,.premium-review h2{font-size:25px;margin:0 0 14px;line-height:1.4}.member-test-panel p,.member-plan li,.member-plan p,.member-collection p,.member-customize p,.premium-review p{font-size:18px;line-height:1.7}.profile-choices,.card-style-choices,.member-style-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.chosen{border:2px solid #273b57!important;background:#fff0bf!important;color:#233853!important;box-shadow:0 0 0 2px #273b5720}.profile-choices .secondary{min-height:54px;flex:1 1 160px}.test-controls{margin-top:20px;border-top:1px solid #c1d2df;padding-top:18px}.test-controls summary{font-size:19px;font-weight:700;cursor:pointer;padding:8px}.test-controls .field{margin:14px 0;max-width:480px}.test-controls select{width:100%;min-height:52px}.membership-plans{display:grid;grid-template-columns:1fr 1fr;gap:22px}.member-plan .plan-badge{margin-bottom:18px}.member-plan ul{padding-left:22px;display:grid;gap:14px}.member-plan.featured{border:2px solid #b99043;background:linear-gradient(150deg,#fffaf0,#f5edda)}.member-venue-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.member-venue-list article{display:flex;align-items:center;gap:10px;padding:16px;background:#f1f5ec;border-radius:12px;min-width:0}.member-venue-list article>div{flex:1;min-width:0}.member-venue-list b,.member-venue-list span:not(.pass-symbol){display:block}.member-venue-list b{font-size:18px}.member-venue-list div span{font-size:16px;line-height:1.6;margin-top:4px}.member-venue-list button{font-size:16px;min-height:48px;padding:9px 12px;flex-shrink:0}.pass-symbol{font-size:25px;color:#667264}.pass-symbol.open{color:#285b46}.member-style-grid .ball-style{display:flex;align-items:center;gap:10px;min-height:60px}.ball-style span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid #32425c;color:#725b37;font-size:22px}.member-test-note{font-size:16px;line-height:1.6;color:#566151;padding-bottom:24px}.venue-membership-label{display:block!important;font-size:15px!important;line-height:1.5!important;color:#344760!important;font-weight:750}.venue-membership-summary{font-size:17px;line-height:1.6;color:#31475c}.course-lock-badge{max-width:calc(100% - 20px);white-space:normal!important}.course-lock-badge b{font-size:17px;line-height:1.45}.review-holes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.review-holes article{padding:20px;background:#f7f0df;border:1px solid #ddc995;border-radius:15px;min-width:0}.review-holes article>span{font-size:16px}.review-holes h3{font-size:25px;margin:12px 0}.review-holes h3 small{font-size:16px}.review-holes dl{margin:0}.review-holes dl div{display:flex;gap:8px;justify-content:space-between;margin:9px 0}.review-holes dt{font-size:16px}.review-holes dd{margin:0;font-weight:800;font-size:19px}.premium-review .plan-badge{margin-bottom:16px}.premium-review{margin-top:24px}.member-test-panel button,.member-customize button{white-space:normal}.member-venue-list,.membership-plans,.review-holes{min-width:0}@media(max-width:1000px){.member-venue-list{grid-template-columns:1fr}.review-holes{grid-template-columns:1fr}.membership-plans{grid-template-columns:1fr}.member-plan{margin-bottom:0}.membership-plans{margin-bottom:24px}}@media(max-width:540px){.account-strip{padding:12px;gap:8px;align-items:flex-start}.account-strip>div{gap:6px}.account-strip .secondary{max-width:120px;padding:10px;font-size:16px}.account-strip b{font-size:16px}.account-strip small{font-size:14px}.member-test-panel,.member-plan,.member-collection,.member-customize{padding:18px}.profile-choices{flex-direction:column}.profile-choices .secondary{flex:auto}.member-style-grid,.card-style-choices{display:grid;grid-template-columns:1fr}.member-venue-list article{flex-wrap:wrap;padding:14px}.member-venue-list article>div{min-width:140px}.member-venue-list button{margin-left:auto}.member-test-panel select{font-size:17px}.member-plan h2{font-size:23px}.account-strip{margin-bottom:16px}}

.player-portrait{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-setup{margin:20px 0}.profile-setup h3{font-size:22px;margin:0 0 8px}.profile-setup>p{font-size:17px;line-height:1.6}.profile-editor{border:1px solid #ced8c8;border-radius:16px;background:#f4f7ef;padding:16px;margin:14px 0;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.profile-editor-heading{display:flex;gap:12px;align-items:center;flex:1 1 200px;min-width:0}.profile-editor-heading b{font-size:18px;overflow-wrap:anywhere}.setup-portrait{width:50px;height:50px;flex-shrink:0;border:2px solid #294f47;border-radius:50%;overflow:hidden}.avatar-choices{display:flex;gap:8px;flex-wrap:wrap;max-width:100%}.avatar-choice{padding:3px;width:48px;height:48px;border:2px solid transparent;border-radius:50%;background:#e0e8d6;cursor:pointer}.avatar-choice[aria-pressed=true]{border-color:#213a58;box-shadow:0 0 0 3px #e9bd51}.profile-upload{position:relative;overflow:hidden;display:inline-flex;align-items:center;min-height:48px;font-size:17px}.profile-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.profile-upload:focus-within{outline:3px solid #1e5492;outline-offset:3px}.player-badges{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.profile-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible;opacity:.9}.ball-profile{position:absolute;left:0;top:0;width:68px;height:62px;display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;will-change:transform}.ball-profile[hidden]{display:none}.profile-face{display:block;position:relative;width:36px;height:36px;border:2px solid var(--player-color);border-radius:50%;background:#fff;box-shadow:0 1px 4px #14273944}.profile-number{position:absolute;right:-6px;bottom:-2px;display:grid;place-items:center;background:var(--player-color);color:#fff;border:1.5px solid #fff;border-radius:50%;width:18px;height:18px;font-size:12px;line-height:1}.profile-name{font-family:'Noto Sans KR',sans-serif;font-weight:750;font-size:14px;line-height:20px;max-width:68px;padding:0 4px;border-radius:4px;background:#fffef3f5;color:#193949;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--player-color)}.is-active .profile-face{outline:2px solid #ffdf48;outline-offset:1px}.is-active .profile-name{background:#22354b;color:#fff}.plus-profile .profile-face{border-color:#d7a747;box-shadow:0 0 0 2px #23344c,0 0 11px #f7d36c90}.plus-profile .profile-number{background:#a47727}.plus-profile .profile-name{border-color:#d7a747}.flag-number{pointer-events:none}@media(max-width:420px){.profile-editor{padding:12px;gap:12px}.profile-editor-heading{flex-basis:100%}.avatar-choice{width:44px;height:44px}.avatar-choices{gap:7px}.profile-upload{padding:9px 13px}}

.round-player-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.round-player-list>div{display:flex;gap:10px;align-items:center;min-width:0;padding:9px;border-radius:12px;background:#edf3e7}.round-player-list b{font-size:17px;overflow-wrap:anywhere}.round-player-list .player-portrait{width:40px;height:40px;flex-shrink:0}

.player-badges[hidden]{display:none}.profile-stance{position:relative;display:flex;justify-content:center;width:68px;height:38px;flex-shrink:0;transform-origin:50% 90%}.profile-stance:after{content:'';position:absolute;bottom:0;left:19px;width:30px;height:4px;background:#233a3c24;border-radius:50%;z-index:-1}.profile-club{position:absolute;right:1px;top:6px;width:14px;height:31px;transform-origin:35% 15%;opacity:0}.is-active .profile-club{opacity:1}.profile-swing .profile-club{opacity:1;animation:profile-club-swing 160ms ease-in-out both}.profile-swing .profile-face{animation:profile-address 160ms ease-in-out both}.profile-arriving .profile-stance{animation:profile-arrive 420ms ease-out both}.profile-arriving .profile-name{animation:profile-name-in 420ms ease-out both}@keyframes profile-club-swing{0%{transform:rotate(0)}40%{transform:rotate(-38deg)}100%{transform:rotate(28deg)}}@keyframes profile-address{40%{transform:rotate(-5deg)}100%{transform:rotate(3deg)}}@keyframes profile-arrive{0%{opacity:0;transform:translate(var(--walk-x,0px),var(--walk-y,8px)) rotate(-4deg)}40%{opacity:.8;transform:translate(0,-3px) rotate(3deg)}75%{transform:translate(0,1px) rotate(-2deg)}100%{opacity:1;transform:translate(0,0) rotate(0)}}@keyframes profile-name-in{0%,30%{opacity:0}100%{opacity:1}}@media(prefers-reduced-motion:reduce){.profile-swing .profile-club,.profile-swing .profile-face,.profile-arriving .profile-stance,.profile-arriving .profile-name{animation:none!important}}

@media(max-width:360px){.game-shell.immersive-game.tee-waiting .joystick-dock{right:4px}}

.avatar-frame{position:relative;display:grid;place-items:center;overflow:hidden;background:#deece4;flex-shrink:0}
.avatar-art{display:block;width:100%;height:100%;object-fit:contain;border-radius:0;pointer-events:none}
.avatar-art[src$='/plpak.webp']{position:absolute;left:50%;top:2%;width:175%;height:auto;max-width:none;transform:translateX(-50%)}

.consent-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#0d2635,#1d6846)}.consent-card{width:min(100%,680px);background:#fffdf4;border-radius:28px;padding:clamp(24px,5vw,46px);box-shadow:0 24px 80px #071a2299;color:#172b35}.consent-card img{display:block;margin-bottom:14px}.consent-card h1{font-size:clamp(27px,5vw,40px);line-height:1.2;margin:8px 0 16px}.consent-card p,.consent-card li{font-size:clamp(17px,2.4vw,20px);line-height:1.55}.consent-card ul{padding-left:1.5em;background:#edf5ed;border-radius:16px;padding-top:16px;padding-bottom:16px}.consent-card li+li{margin-top:7px}.consent-card .consent-note{font-size:clamp(15px,2vw,17px);color:#3e5054}.consent-card button{min-height:56px;font-size:19px}.consent-card #consent-feedback{min-height:1.5em;color:#a03327;text-align:center}

.cpu-mode-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.cpu-opponent{margin:12px 0 20px;padding:16px;border:2px solid #c9d8b7;border-radius:17px;background:#f3f8e9}
.cpu-opponent-heading{display:flex;align-items:center;gap:13px;margin-bottom:14px}
.cpu-opponent-portrait{display:block;width:58px;height:58px;flex:none;overflow:hidden;border:2px solid #315778;border-radius:50%;background:#fff}
.cpu-opponent-heading>div{flex:1;min-width:0}
.cpu-opponent-heading b{font-size:21px;color:#203d52}
.cpu-opponent-heading p{font-size:16px;line-height:1.5;color:#425d52}
.cpu-label{align-self:flex-start;padding:5px 9px;border-radius:20px;background:#243e5b;color:#fff;font-size:14px;font-weight:800}
.cpu-opponent .field{max-width:300px}
.cpu-opponent select{min-height:52px;font-size:19px}
.cpu-turn .joystick{opacity:.45;pointer-events:none}
.cpu-turn .stick-readout{background:#243e5b;color:#fff}
@media(max-width:620px){.cpu-mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}.cpu-mode-options [data-mode="2"]{grid-column:1/-1}.cpu-opponent{padding:13px}.cpu-opponent-heading{flex-wrap:wrap}.cpu-label{margin-left:auto}}

/* Free launch follows the original main visual system.
   Preserve the existing course and venue artwork; only soften surfaces and align text. */
:root{--cream:#f6fbfd;--line:#dcebef;background:#f6fbfd}
body{background:#f6fbfd}
.app-shell:not(.plus-member) .sidebar{background:#253448;border-color:#253448}
.app-shell:not(.plus-member) .app-brand{border-bottom-color:#41556a}
.app-shell:not(.plus-member) .nav-item:hover{background:#34475d}
.app-shell:not(.plus-member) .nav-item.active{background:#2f9b57}
.app-shell:not(.plus-member) .hero{background:#d8eef5;border-color:#c4e3eb}
.app-shell:not(.plus-member) .hero h1{color:#1e2838}
.app-shell:not(.plus-member) .hero p{color:#426476}
.primary{background:#2f9b57;box-shadow:0 4px 10px #2f9b5723}
.primary:hover:not(:disabled){background:#258a4b;box-shadow:0 5px 15px #258a4b30}
.account-strip.launch-account{background:#fff;border:1px solid #d8e8eb;border-radius:18px;box-shadow:0 7px 20px #2534480d}
.launch-account .plan-badge{background:#fff0bd;color:#244455;font-size:15px;font-weight:800;padding:7px 12px}
.launch-account b{color:#203b50;font-size:19px}
.launch-account small{font-size:15px;line-height:1.5;color:#4b6975}
.launch-app-login{display:inline-flex;align-items:center;justify-content:center;min-height:48px;font-size:15px;text-decoration:none}
.course-grid .course-card{display:flex;flex-direction:column}
.course-grid .course-card .card-cover{flex:none}
.course-grid .course-card .card-body{display:flex;flex:1;flex-direction:column;align-items:stretch}
.course-grid .course-card .card-meta{margin-top:auto}
.consent-screen{min-height:100dvh;padding:20px;background:#eaf5f8}
.consent-card{max-height:96dvh;overflow:auto;border:1px solid #d4e7eb;border-radius:24px;box-shadow:0 20px 60px #263b4930}
.consent-card h1{color:#203b50}
.consent-card>p{color:#426476}
.terms-scroll{max-height:min(31vh,290px);overflow:auto;overscroll-behavior:contain;margin:18px 0;padding:16px 18px;border:1px solid #d6e7eb;border-radius:16px;background:#f7fbfc}
.terms-scroll h2{margin:8px 0;font-size:19px;line-height:1.45;color:#245a50}
.terms-scroll p{margin:7px 0 18px;font-size:16px;line-height:1.7;color:#405c68}
.launch-check{display:flex;align-items:flex-start;gap:12px;margin:8px 0;padding:12px 10px;font-size:17px;line-height:1.5;cursor:pointer}
.launch-check input{width:25px;height:25px;flex:none;margin:1px 0 0;accent-color:#2f9b57}
.launch-check b{margin-right:6px;color:#a2532f}
.launch-ad{max-width:900px;min-height:120px;margin:180px auto 30px;padding:18px 22px;border-top:1px solid #d5e5e9;text-align:center}
.launch-ad>span{display:block;margin-bottom:14px;color:#607783;font-size:13px;letter-spacing:.12em}
@media(max-width:760px){
 .app-shell:not(.plus-member) .sidebar{background:transparent;border:0}
 .app-shell:not(.plus-member) .app-brand{color:#1e2838;border:0}
 .account-strip.launch-account{align-items:flex-start}
 .launch-account small{font-size:14px}
 .launch-app-login{font-size:14px;padding:8px 10px}
 .consent-card{padding:22px}
 .terms-scroll{max-height:28vh}
 .terms-scroll p{font-size:15px}
}
@media(max-width:420px){
 .consent-card{padding:18px}
 .launch-check{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.hero-note{animation:none}.primary,.course-card{transition:none}}
/* App login is a separate, readable step from the guest status strip. */
.launch-account .launch-app-login{white-space:nowrap;color:#244d36;background:#edf7e8;border-color:#cfe4c6;font-size:16px;font-weight:700;padding:12px 17px}
.app-login-code{text-align:center;color:#233e4b}
.app-login-code .app-code-brand{position:relative;width:236px;height:57px;margin:0 auto 18px;overflow:hidden}
.app-login-code .app-code-brand img{position:absolute;top:-11px;left:0;display:block;width:236px;height:auto;clip-path:inset(0 76% 0 0)}
.app-login-code .app-code-brand-ink{position:absolute;top:-11px;left:0;width:236px;height:70px;background:#1b2d35;-webkit-mask-image:url('../assets/brand/playpark-consent-logo.png');mask-image:url('../assets/brand/playpark-consent-logo.png');-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:236px 70px;mask-size:236px 70px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;clip-path:inset(0 0 0 24%)}
.app-login-code h2{margin:10px 0 12px;font-size:28px;line-height:1.3}
.app-login-code>p{font-size:17px;line-height:1.6;color:#476373}
.app-code-digits{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:25px 0 22px}
.app-code-digits span{display:grid;place-items:center;min-width:0;min-height:64px;border:2px solid #bad9c9;border-radius:12px;background:#f5fbf7;color:#193b32;font-size:clamp(25px,7vw,40px);font-weight:800;font-variant-numeric:tabular-nums}
.app-code-pending{padding:16px 18px;border:1px solid #e5d8b6;border-radius:14px;background:#fffaf0;text-align:left}
.app-code-pending strong{font-size:17px;color:#725720}
.app-code-pending p{margin-top:5px;font-size:15px;line-height:1.65;color:#635b48}
.app-login-code>.primary{margin-top:22px;min-height:54px;font-size:17px}
@media(max-width:760px){.account-strip.launch-account{flex-wrap:wrap}.launch-account .launch-app-login{width:100%;max-width:none;min-height:52px;font-size:16px}}
@media(max-width:390px){.app-code-digits span{min-height:50px;border-radius:9px}.app-login-code h2{font-size:25px}.app-login-code .app-code-brand{width:202px;height:49px;margin-bottom:14px}.app-login-code .app-code-brand img{top:-9px;width:202px}.app-login-code .app-code-brand-ink{top:-9px;width:202px;height:60px;-webkit-mask-size:202px 60px;mask-size:202px 60px}}
@media(max-width:340px){.app-login-code .app-code-brand{width:170px;height:41px}.app-login-code .app-code-brand img{top:-8px;width:170px}.app-login-code .app-code-brand-ink{top:-8px;width:170px;height:51px;-webkit-mask-size:170px 51px;mask-size:170px 51px}}
/* Legal text is compact; required and optional choices remain easy to tap. */
.terms-scroll{max-height:min(39vh,360px)}
.terms-scroll .terms-version{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.03em;color:#648072}
.terms-scroll .legal-section+ .legal-section{border-top:1px solid #e3edef;padding-top:12px}
.terms-scroll .legal-section h2{margin:4px 0 7px;font-size:16px;line-height:1.4;color:#245a50}
.terms-scroll .legal-section p{margin:0 0 10px;font-size:14px;line-height:1.7;color:#405c68;word-break:keep-all}
.launch-check small{display:block;margin-top:5px;font-size:13px;line-height:1.5;font-weight:400;color:#58717a}
.consent-card>.primary{min-height:54px;font-size:17px}
.launch-legal-details{margin:20px 0}
.launch-legal-details summary{cursor:pointer;font-weight:700}
.launch-legal-details .legal-section{margin-top:16px}
.launch-legal-details .legal-section h3{font-size:17px;line-height:1.5;color:#245a50}
.launch-legal-details .legal-section p{margin:7px 0 10px;font-size:14px;line-height:1.7;color:#476373}
.legal-preferences{display:grid;gap:10px;margin-top:16px}
.legal-preferences .secondary{margin:0;min-height:50px}
@media(max-width:760px){.terms-scroll{max-height:32vh}.terms-scroll .legal-section p{font-size:13px}.launch-check small{font-size:12px}}
/* Keep the first-run choices in one viewport; the full terms open separately. */
.consent-screen{height:100dvh;min-height:0;overflow:hidden;padding:clamp(8px,2vh,20px)}
.consent-card{max-height:100%;overflow:hidden;display:flex;flex-direction:column;gap:clamp(5px,.9vh,9px);padding:clamp(12px,2vh,24px)}
.consent-heading{display:flex;align-items:center;gap:clamp(10px,2vw,18px);min-width:0;flex:none}
.consent-heading-copy{min-width:0}
.consent-card .consent-heading .consent-logo{display:block;width:clamp(68px,11vh,102px);height:auto;max-height:clamp(72px,12vh,107px);object-fit:contain;flex:none;margin:0;border-radius:10px}
.consent-card .consent-heading .eyebrow{font-size:12px;letter-spacing:.08em;color:#42755b}
.consent-card .consent-heading h1{margin:2px 0 4px;font-size:clamp(20px,3.6vw,30px);line-height:1.2;word-break:keep-all}
.consent-card .consent-heading .consent-intro{margin:0;font-size:clamp(13px,2.1vw,15px);line-height:1.35;color:#426476;word-break:keep-all}
.consent-terms{flex:none}
.consent-terms summary{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:7px 12px;border:1px solid #d6e7eb;border-radius:11px;background:#f7fbfc;color:#245a50;font-size:14px;font-weight:700;cursor:pointer;list-style:none}
.consent-terms summary::-webkit-details-marker{display:none}
.consent-terms summary::after{content:'›';font-size:22px;line-height:1}
.consent-terms .terms-close{display:none}
.consent-terms[open]{position:fixed;inset:12px;z-index:1000;display:flex;flex-direction:column;width:min(680px,calc(100vw - 24px));height:calc(100dvh - 24px);margin:auto;padding:clamp(12px,3vw,24px);border:1px solid #d4e7eb;border-radius:20px;background:#fffdf4;box-shadow:0 0 0 100vmax #071a22ad,0 16px 48px #071a2250}
.consent-terms[open] summary{flex:none;min-height:48px}
.consent-terms[open] summary::after{content:'×'}
.consent-terms[open] .terms-read{display:none}
.consent-terms[open] .terms-close{display:inline}
.consent-terms[open] .terms-scroll{flex:1;min-height:0;max-height:none;margin:12px 0 0;overflow:auto}
.consent-card .launch-check{flex:none;gap:9px;margin:0;padding:clamp(5px,.8vh,10px) 6px;font-size:clamp(14px,2.2vw,16px);line-height:1.32}
.consent-card .launch-check input{width:22px;height:22px;margin:0}
.consent-card .launch-check small{margin-top:2px;font-size:clamp(11px,1.9vw,12px);line-height:1.35}
.consent-card>.primary{flex:none;min-height:48px;font-size:16px}
.consent-card #consent-feedback{flex:none;min-height:0;margin:0;font-size:13px;line-height:1.25}
@media(max-height:470px){.consent-screen{height:auto;min-height:100dvh;overflow:auto}.consent-card{max-height:none;overflow:visible}}
/* The phone version uses the same quiet full-screen structure as the PlayPark app. */
@media(max-width:760px){
 .consent-screen{display:block;background:#fff;padding:env(safe-area-inset-top) max(20px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(20px,env(safe-area-inset-left))}
 .consent-card{width:100%;max-width:none;height:100%;max-height:none;padding:20px 0 18px;border:0;border-radius:0;background:#fff;box-shadow:none}
 .consent-card .consent-heading .consent-logo{width:clamp(72px,11vh,96px);max-height:100px}
 .consent-card .consent-heading h1{margin:0 0 6px}
 .consent-terms summary{border-color:#e1e9e8;background:#f7faf8}
 .consent-card .launch-check{padding:9px 4px;border-bottom:1px solid #edf1ef}
 .consent-card>.primary{margin-top:auto;border-radius:12px}
 .consent-terms[open]{background:#fff}
}

/* First-use consent follows the PlayPark app's scenic login and bottom-sheet language. */
.consent-screen{position:relative;isolation:isolate;display:flex;align-items:flex-end;justify-content:center;width:100%;height:100dvh;min-height:0;overflow:hidden;padding:0;background:linear-gradient(180deg,#73bfe2 0%,#a7def0 53%,#b9dfa9 100%)}
.consent-screen .consent-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.consent-screen .consent-scene::after{content:"";position:absolute;inset:0;background:#122b3b28}
.consent-screen .consent-cloud{position:absolute;width:42px;height:17px;border-radius:50%;background:#fffde9e8;filter:blur(2px);box-shadow:12px -8px 0 3px #fffde9dd,-11px -3px 0 -2px #fffde9bb}
.consent-screen .consent-cloud-one{top:27%;left:10%}
.consent-screen .consent-cloud-two{top:31%;right:11%;transform:scale(.8)}
.consent-screen .consent-hill{position:absolute;left:-15%;width:130%;border-radius:50% 50% 0 0}
.consent-screen .consent-hill-back{bottom:18%;height:31%;background:#6fae78;transform:rotate(-6deg)}
.consent-screen .consent-hill-front{bottom:-11%;height:47%;background:linear-gradient(150deg,#a7c853,#4c9c59);transform:rotate(5deg)}
.consent-screen .consent-mascot{position:absolute;bottom:20%;left:64%;z-index:1;display:block;width:auto;height:min(52vh,480px);max-width:78vw;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 10px 14px #22533a52)}
.consent-screen .consent-card{position:relative;z-index:2;display:flex;flex-direction:column;gap:0;width:min(100%,520px);max-width:none;max-height:80dvh;margin:0;padding:20px 22px max(20px,env(safe-area-inset-bottom));overflow:hidden;border:0;border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -12px 36px #0c2b3940;color:#202a2c}
.consent-screen .consent-heading{display:block;margin:0 0 8px}
.consent-screen .consent-heading h1{margin:0 0 5px;color:#1a2224;font-size:clamp(21px,3.6vw,25px);font-weight:800;line-height:1.25;letter-spacing:-.035em}
.consent-screen .consent-heading .consent-intro{margin:0;color:#53646c;font-size:13px;line-height:1.35}
.consent-screen .consent-terms{margin:0}
.consent-screen .consent-terms summary{min-height:43px;padding:7px 2px;border:0;border-bottom:1px solid #e5e9e7;border-radius:0;background:#fff;color:#26373d;font-size:14px;font-weight:700}
.consent-screen .consent-terms summary::after{color:#7a95ae}
.consent-screen .consent-terms summary b,.consent-screen .launch-check b{margin-right:4px;color:#a67900;font-size:12px;font-weight:800}
.consent-screen .consent-card .launch-check{display:flex;align-items:flex-start;gap:9px;margin:0;padding:8px 2px;border-bottom:1px solid #e7ebe9;color:#253238;font-size:clamp(12px,2.5vw,14px);font-weight:600;line-height:1.35}
.consent-screen .consent-card .launch-check input{width:19px;height:19px;flex:none;margin:0;accent-color:#c89400}
.consent-screen .consent-card .launch-check small{display:block;margin:2px 0 0;color:#65747a;font-size:11px;font-weight:400;line-height:1.25}
.consent-screen .consent-optional{border-top:5px solid #f4f6f4}
.consent-screen .consent-optional .launch-check:last-child{border-bottom:0}
.consent-screen .consent-card>.primary{min-height:49px;margin:10px 0 0;border:0;border-radius:7px;background:#d4a500;box-shadow:none;color:#1a2528;font-size:16px;font-weight:800}
.consent-screen .consent-card>.primary:hover:not(:disabled){background:#bf9400;box-shadow:none}
.consent-screen .consent-card #consent-feedback{min-height:0;margin:0;color:#9b342a;font-size:12px;text-align:center}
.consent-screen .consent-card #consent-feedback:not(:empty){margin-top:5px}
.consent-screen .consent-terms[open]{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;width:100%;height:100dvh;max-width:none;margin:0;padding:0;background:#fff;border:0;border-radius:0;box-shadow:0 0 0 100vmax #10222b99}
.consent-screen .consent-terms[open] summary{position:relative;display:grid;place-items:center;min-height:54px;padding:8px 45px;border-bottom:1px solid #e7e9e9;font-size:15px;color:#202a2c;text-align:center}
.consent-screen .consent-terms[open] summary::after{position:absolute;left:17px;top:11px;content:"‹";font-size:30px;line-height:1}
.consent-screen .consent-terms[open] .terms-scroll{flex:1;min-height:0;max-height:none;margin:0;padding:18px clamp(18px,5vw,36px) max(18px,env(safe-area-inset-bottom));overflow:auto;border:0;border-radius:0;background:#fff}
.consent-screen .terms-scroll .legal-section h2{color:#26373d}
@media(max-width:760px){.consent-screen{display:flex;padding:0;background:linear-gradient(180deg,#73bfe2,#a7def0 53%,#b9dfa9)}.consent-screen .consent-card{width:100%;height:auto;max-height:80dvh;padding:18px max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));border-radius:20px 20px 0 0;background:#fff;box-shadow:0 -12px 36px #0c2b3940}.consent-screen .consent-card .launch-check{padding:8px 2px}.consent-screen .consent-card>.primary{margin-top:10px}.consent-screen .consent-terms[open]{background:#fff}}
@media(max-height:650px){.consent-screen .consent-card{padding-top:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.consent-screen .consent-heading{margin-bottom:2px}.consent-screen .consent-heading h1{font-size:20px}.consent-screen .consent-heading .consent-intro{font-size:12px}.consent-screen .consent-terms summary{min-height:36px}.consent-screen .consent-card .launch-check{padding:5px 2px;font-size:12px}.consent-screen .consent-card .launch-check small{font-size:10px}.consent-screen .consent-card>.primary{min-height:43px;margin-top:5px}}
@media(max-height:470px){.consent-screen{height:100dvh;min-height:0;overflow:hidden}.consent-screen .consent-card{max-height:100dvh;overflow:auto}.consent-screen .consent-terms[open]{overflow:hidden}}
/* Desktop uses centered dialogs; phones keep the PlayPark bottom-sheet flow. */
.consent-screen .consent-terms-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:43px;margin:0;padding:7px 2px;border:0;border-bottom:1px solid #e5e9e7;border-radius:0;background:#fff;color:#26373d;font-size:14px;font-weight:700;text-align:left;cursor:pointer}
.consent-screen .consent-terms-trigger b{margin-right:4px;color:#a67900;font-size:12px;font-weight:800}
.consent-screen .consent-terms-trigger>span:last-child{color:#7a95ae;font-size:24px;line-height:1}
.consent-screen .consent-terms-dialog{width:min(760px,calc(100vw - 48px));max-width:none;max-height:min(82dvh,760px);margin:auto;padding:0;overflow:hidden;border:0;border-radius:20px;background:#fff;color:#26373d;box-shadow:0 24px 80px #08253466}
.consent-screen .consent-terms-dialog[open]{display:flex;flex-direction:column}
.consent-screen .consent-terms-dialog::backdrop{background:#0c2433a8}
.consent-screen .consent-terms-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;padding:12px 22px;border-bottom:1px solid #e2e9e8;background:#fff}
.consent-screen .consent-terms-header h2{margin:0;color:#1b2c31;font-size:19px;line-height:1.35;word-break:keep-all}
.consent-screen .consent-terms-close{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:76px;min-height:42px;padding:7px 11px;border:1px solid #d5e2e0;border-radius:10px;background:#f7faf8;color:#294047;font-size:15px;font-weight:700;cursor:pointer}
.consent-screen .consent-terms-close span{font-size:24px;font-weight:400;line-height:1}
.consent-screen .consent-terms-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 28px 28px}
.consent-screen .consent-terms-content .terms-version{margin:0 0 16px;color:#58717a;font-size:12px;font-weight:700}
.consent-screen .consent-terms-content .legal-section+ .legal-section{margin-top:16px;padding-top:16px;border-top:1px solid #e3edef}
.consent-screen .consent-terms-content .legal-section h2{margin:0 0 9px;color:#26373d;font-size:17px;line-height:1.4}
.consent-screen .consent-terms-content .legal-section p{margin:0 0 11px;color:#405c68;font-size:14px;line-height:1.7;word-break:keep-all}
@media(min-width:761px){
 .consent-screen{align-items:center}
 .consent-screen .consent-card{width:min(540px,calc(100vw - 48px));max-height:calc(100dvh - 48px);padding:28px 32px;border:1px solid #e0e9e6;border-radius:24px;box-shadow:0 24px 70px #0c2b3966}
 .consent-screen .consent-heading{margin-bottom:14px}
 .consent-screen .consent-heading h1{font-size:26px}
 .consent-screen .consent-card .launch-check{padding:12px 2px;font-size:15px}
 .consent-screen .consent-card .launch-check small{font-size:12px}
 .consent-screen .consent-card>.primary{min-height:54px;margin-top:15px}
 .consent-screen .consent-mascot{left:80%;bottom:7%;height:min(70vh,640px);max-width:42vw}
}
@media(max-width:760px){
 .consent-screen .consent-terms-dialog{position:fixed;inset:auto 0 0 0;width:100%;height:min(90dvh,820px);max-height:none;margin:0;border-radius:22px 22px 0 0}
 .consent-screen .consent-terms-header{min-height:59px;padding:10px max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left))}
 .consent-screen .consent-terms-header h2{font-size:17px}
 .consent-screen .consent-terms-content{padding:15px max(18px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}
}
@media(max-height:650px){.consent-screen .consent-terms-trigger{min-height:36px}}@keyframes consent-sheet-rise{from{opacity:.85;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.consent-screen .consent-card,.consent-screen .consent-terms-dialog[open]{animation:consent-sheet-rise .24s ease-out both}}
@media(prefers-reduced-motion:reduce){.consent-screen .consent-card,.consent-screen .consent-terms-dialog[open]{animation:none}}
/* The supplied transparent wordmark sits on the consent sheet, with dark ink on white. */
.consent-screen .consent-brand{position:relative;flex:none;width:236px;height:57px;margin:0 auto 10px;overflow:hidden;background:transparent}
.consent-screen .consent-brand img{position:absolute;top:-11px;left:0;display:block;width:236px;height:auto;clip-path:inset(0 76% 0 0)}
.consent-screen .consent-brand-ink{position:absolute;top:-11px;left:0;width:236px;height:70px;background:#1b2d35;-webkit-mask-image:url('../assets/brand/playpark-consent-logo.png');mask-image:url('../assets/brand/playpark-consent-logo.png');-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:236px 70px;mask-size:236px 70px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;clip-path:inset(0 0 0 24%)}
.consent-screen .consent-check-all{display:flex;align-items:center;gap:10px;min-height:45px;margin:0;padding:7px 2px;border-bottom:1px solid #e1e8e5;color:#22343a;cursor:pointer}
.consent-screen .consent-check-all input{width:21px;height:21px;flex:none;margin:0;accent-color:#c89400}
.consent-screen .consent-check-all strong{display:block;font-size:15px;line-height:1.3}
.consent-screen .consent-check-all small{display:block;margin-top:2px;color:#64757c;font-size:11px;line-height:1.3}
@media(max-width:760px){.consent-screen .consent-brand{width:202px;height:49px;margin-bottom:6px}.consent-screen .consent-brand img{top:-9px;width:202px}.consent-screen .consent-brand-ink{top:-9px;width:202px;height:60px;-webkit-mask-size:202px 60px;mask-size:202px 60px}}
@media(max-height:650px){.consent-screen .consent-brand{width:178px;height:43px;margin-bottom:3px}.consent-screen .consent-brand img{top:-8px;width:178px}.consent-screen .consent-brand-ink{top:-8px;width:178px;height:53px;-webkit-mask-size:178px 53px;mask-size:178px 53px}.consent-screen .consent-check-all{min-height:34px;padding:4px 2px}.consent-screen .consent-check-all small{display:none}}
@media(max-width:760px) and (max-height:650px){.consent-screen .consent-mascot{bottom:42%}}

/* Keep actions outside the scrollable content, including short Android WebViews. */
.consent-screen{height:var(--viewport-height,100dvh)}
.consent-screen .consent-card{max-height:calc(var(--viewport-height,100dvh) - env(safe-area-inset-top) - 8px);padding-bottom:0;min-height:0}
.consent-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.consent-screen .consent-actions{flex:none;position:relative;margin:0;padding:10px 0 max(20px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e7ebe9}
.consent-screen .consent-actions>.primary{width:100%;min-height:50px;margin:0;border:0;border-radius:7px;background:#d4a500;box-shadow:none;color:#1a2528;font-size:16px;font-weight:800}
.consent-screen .consent-actions>.primary:hover:not(:disabled){background:#bf9400}
@media(min-width:761px){.consent-screen .consent-card{max-height:calc(var(--viewport-height,100dvh) - 48px)}.consent-screen .consent-actions{padding-bottom:28px}}
@media(max-height:650px){.consent-screen .consent-actions{padding-top:8px;padding-bottom:max(16px,env(safe-area-inset-bottom))}}

/* The existing PlayPark store QR codes stay behind a compact disclosure on phones. */
.app-install{margin:0 0 16px;border:1px solid #cbdfee;border-radius:14px;background:#f4f9fd;text-align:left}
.app-install summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:11px 15px;color:#175786;font-size:16px;font-weight:700;cursor:pointer;list-style:none}
.app-install summary::-webkit-details-marker{display:none}
.app-install summary:focus-visible{outline:3px solid #e0ac00;outline-offset:3px}
.app-install summary::after{content:'⌄';font-size:22px;line-height:1;transition:transform .18s}
.app-install[open] summary::after{transform:rotate(180deg)}
.app-install-stores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px}
.app-install-stores a{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:10px 6px;border:1px solid #d4e5f1;border-radius:11px;background:white;color:#173f6e;text-decoration:none;text-align:center}
.app-install-stores a:hover{border-color:#1765a9;background:#f8fcff}
.app-install-stores img{display:block;width:min(100%,112px);height:auto;aspect-ratio:1;object-fit:contain}
.app-install-stores strong{font-size:13px;line-height:1.3;word-break:keep-all}
.app-install-stores span{font-size:12px;text-decoration:underline;text-underline-offset:2px}
.app-install>p{padding:0 14px 13px;color:#526b78;font-size:12px;line-height:1.5}
@media(max-width:390px){.app-install summary{font-size:14px;padding-inline:12px}.app-install-stores img{width:min(100%,86px)}}.admin-account .plan-badge{background:#dcecfb;color:#134e81}.admin-account .launch-app-login{background:#e7f2fb;border-color:#bad8ed;color:#175786}
.admin-gate{min-height:100dvh;display:grid;place-items:center;padding:22px;background:#eef7fc}.admin-gate section{display:grid;justify-items:center;gap:18px;max-width:500px;padding:38px;text-align:center;border:1px solid #d2e4ef;border-radius:24px;background:#fff;box-shadow:0 20px 50px #163f651c}.admin-gate h1{margin:0;font-size:clamp(26px,5vw,36px);color:#1d3f5c}.admin-gate p{margin:0;color:#557187;line-height:1.6}.admin-gate a,.admin-gate button{min-width:240px;min-height:52px;text-decoration:none;display:grid;place-items:center}
.admin-account-actions{display:flex;flex-wrap:wrap;gap:10px}.admin-account-actions .launch-app-login{width:auto}.admin-account-actions button{min-height:48px}@media(max-width:760px){.admin-account-actions{width:100%}.admin-account-actions .launch-app-login{flex:1 1 150px}}

/* Park Player identity: blue UI and gold accents; grass, course scenery and Plpak stay true to the game. */
:root{--green:#1765a9;--lime:#cfeafa;--muted:#607c90;--line:#d4e6f0;--cream:#f1f8fd;color:#1b3348;background:#f1f8fd}
body{background:#f1f8fd;color:#1b3348}
.app-shell:not(.plus-member) .sidebar{background:#173f6e;border-color:#173f6e}
.app-shell:not(.plus-member) .app-brand{border-bottom-color:#47719c}
.app-shell:not(.plus-member) .nav-item:hover{background:#295686}
.app-shell:not(.plus-member) .nav-item.active{background:#1d73b7;color:#fff}
.app-shell:not(.plus-member) .hero{background:#d9effd;border-color:#b9dff5}
.app-shell:not(.plus-member) .hero h1{color:#173b65}
.app-shell:not(.plus-member) .hero h1 em{color:#1769aa}
.app-shell:not(.plus-member) .hero .eyebrow,.app-shell:not(.plus-member) .hero-link{color:#175d94}
.app-shell:not(.plus-member) .hero .eyebrow i{background:#ffca4e}
.primary{background:#1765a9;color:#fff;box-shadow:0 4px 12px #174b9130}
.primary:hover:not(:disabled){background:#104f8d;box-shadow:0 5px 15px #174b9140}
.secondary{background:#e6f2fb;border-color:#bedcf0;color:#175786}
.secondary:hover:not(:disabled){background:#d4eafa}
.mobile-nav{border-color:#cce3f1}
.mobile-nav button.active{color:#1765a9}
.eyebrow,.section-heading .small,.selected-count b,.card-meta strong,.intro-strip svg,.round-route>div>div,.page-heading a,.rule-link,.text-button{color:#1765a9}
.intro-strip{border-color:#d2e8f5}
.round-bar{background:#e8f4fc;border-color:#cae4f3}
.round-icon{background:#d4eafa;color:#1765a9}
.round-route small,.route-total{color:#526f85}
.resume-banner{background:#e7f4fd;border-color:#bdddf1;color:#175786}
.account-strip.launch-account{border-color:#cce3f1;box-shadow:0 7px 20px #174b9112}
.launch-account .launch-app-login{color:#155587;background:#e5f3fc;border-color:#bddcf0}
.learning-banner{background:#e6f4fc;border-color:#c5e4f5}
.learning-banner>b,.record-stats b,.diff,.detail-stats b{color:#1765a9}
.learning-progress span{background:#2588c2}
.rule-card:hover{background:#f0f9fe;border-color:#88bde0}
.rule-link,.help-about a{color:#1765a9}
.modal-close,.mode-card.active,.quiz-caddy{background:#e8f4fc}
.mode-card.active{border-color:#63a5d2;color:#175b95}
.field input,select{color:#1b4d77}
.check-field input,.launch-check input{accent-color:#1765a9}
.consent-screen{background:#e7f4fc}
.consent-screen .consent-check-all input{accent-color:#1765a9}
.consent-screen .consent-terms-header,.consent-screen .consent-terms-trigger{border-color:#d5e8f4}
.consent-screen .consent-terms-content .legal-section h2,.terms-scroll .legal-section h2{color:#175786}
.game-header h1,.game-header h1 strong,.game-header-right{color:#175f9b}
.game-progress span.done{background:#78bfe4}
.game-progress span.current{background:#1765a9}
.player-chip.active{background:#e5f3fc;border-color:#8fc2e4;color:#175786}
.game-shell.immersive-game .game-status{background:#f5fbffef;border-color:#b7d9ec;color:#214d70;box-shadow:0 3px 12px #174b9126}
.immersive-game .map-tools button{background:#f5fbffed;border-color:#a8d2e9;color:#175786}
.immersive-game .joystick{border-color:#d6edfaed;background:radial-gradient(circle at center,#e5f4fcec 0 31%,#f5fbffea 32% 50%,transparent 51%),conic-gradient(#176db0 var(--charge,0%),#cde8f6e8 0);box-shadow:0 3px 18px #174b9133,inset 0 1px 7px #1c5d8733}
.immersive-game .stick-thumb{background:linear-gradient(#329bd2,#1765a9);border-color:#fff;box-shadow:0 6px 17px #143f6e80}
.immersive-game .stick-readout{background:#f5fbffed;border-color:#a8d2e9;color:#175786}
#toast{background:#173f6e}
@media(max-width:760px){.app-shell:not(.plus-member) .sidebar{background:transparent;border:0}.app-shell:not(.plus-member) .app-brand{color:#173b65;border:0}}
/* Compact scorecard: smaller type only in the list, not touch controls. */
.modal.season-modal{width:min(600px,calc(100vw - 24px));max-width:600px;padding:0;overflow:hidden;background:#fff;border-radius:20px}
.season-modal .modal-close{z-index:2;top:12px;right:12px;background:#ffffff18;color:#fff;min-width:40px;min-height:40px}
.season-board-heading{display:flex;align-items:center;gap:10px;background:linear-gradient(120deg,#173e53,#20644e);color:#fff;padding:18px 58px 16px 16px}
.season-board-heading h2{font-size:19px;line-height:1.3;margin:3px 0 0;color:#fff;word-break:keep-all}
.season-board-brand{font-size:10px;letter-spacing:2px;color:#c3dfd2}.season-flag{flex-shrink:0}.season-top{font-size:10px;font-weight:800;color:#ffe7a0;white-space:nowrap;margin-left:auto}
.season-picker{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:12px;color:#546775;background:#f3f7f5}.season-picker select{width:auto;flex:1;font-size:14px;min-height:40px;padding:6px 10px;background:#fff;border:1px solid #ccdbd4;border-radius:8px}
.season-table-wrap{max-height:min(64dvh,570px,calc(90dvh - 160px));overflow:auto;overscroll-behavior:contain}
.season-table{width:100%;border-collapse:collapse;table-layout:fixed}.season-table .season-rank-col{width:55px}.season-table .season-points-col{width:96px}.season-table .season-rounds-col{width:48px}
.season-table th,.season-table td{font-size:14px;line-height:1.2;height:36px;padding:5px 10px;border-bottom:1px solid #edf1ee;color:#243f4b;text-align:left;vertical-align:middle}
.season-table thead th{position:sticky;top:0;z-index:1;height:30px;font-size:11px;font-weight:600;color:#596f74;background:#f7f9f8;white-space:nowrap}
.season-table tbody th{font-weight:600}.season-table th:nth-child(n+3),.season-table td:nth-child(n+3){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.season-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.season-rank{display:inline-flex;align-items:center;justify-content:center;position:relative;width:30px;height:25px;font-weight:800;color:#667b80;font-variant-numeric:tabular-nums}
.season-table .season-points{font-weight:800;color:#246047}.season-table .season-rounds{color:#738287;font-size:12px}
.season-table .season-medal-1{background:#fff8df}.season-table .season-medal-2{background:#f1f5f8}.season-table .season-medal-3{background:#fbf0e8}
.season-medal .season-rank{border-radius:7px;border:1px solid #d5a63d;background:#ffe395;color:#765100}.season-medal-2 .season-rank{border-color:#a4b6c3;background:#dfe8ee;color:#455d70}.season-medal-3 .season-rank{border-color:#c8926a;background:#f0ccb0;color:#784521}
.season-laurel{position:absolute;left:-7px;bottom:2px;font-size:13px}.season-empty{text-align:center;padding:32px 16px;font-size:14px;color:#647b7c}
.season-launch{font-size:14px!important;white-space:nowrap}
.settings-page{max-width:960px;margin:auto}.settings-page .page-heading{margin-bottom:20px}.settings-page h1{font-size:28px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.settings-card{background:#fff;border:1px solid #dce9ed;border-radius:16px;padding:18px 20px;min-width:0}.settings-card h2{font-size:18px;margin:0 0 10px;color:#21384b}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:54px;border-bottom:1px solid #eef2f3;font-size:16px;line-height:1.4}.setting-row:last-child{border-bottom:0}.setting-row>span,.setting-row>label{min-width:0;word-break:keep-all}
.setting-switch{min-width:72px;min-height:40px;border-radius:20px;background:#e9eff1;color:#516773;font-size:14px;font-weight:700;padding:8px 12px;flex-shrink:0}.setting-switch[aria-pressed="true"]{background:#174b91;color:#fff}.setting-switch:disabled{opacity:.65}
.setting-row select{max-width:60%;min-width:0;min-height:42px;padding:7px;font-size:14px;border:1px solid #cad9df;border-radius:8px}.setting-row input{width:22px;height:22px;accent-color:#174b91;flex-shrink:0}
.settings-info-link{color:#174b91;font-size:14px;min-height:44px;text-decoration:underline;text-underline-offset:4px}.settings-return{margin-top:20px}.settings-ad .help-card{padding:18px 20px}.settings-ad .help-card h2{font-size:18px}.settings-ad .help-card p{font-size:14px;line-height:1.5}
.compact-help .page-heading{margin-bottom:20px}.compact-help .page-heading h1{font-size:28px}.help-heading-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.help-heading-actions .secondary{min-height:44px;font-size:14px;padding:9px 12px;margin:0}
.compact-help .help-grid,.compact-help .help-column{gap:16px}.compact-help .help-card{padding:20px;border-radius:16px}.compact-help .help-card h2{font-size:20px;margin-bottom:14px}.compact-help .help-card h3{font-size:16px;margin:16px 0 6px}.compact-help .help-card p,.compact-help .help-card .guide-steps small{font-size:16px;line-height:1.65;word-break:keep-all}.compact-help .help-card p+p{margin-top:10px}.compact-help .help-card .guide-steps strong{font-size:17px}.compact-help .help-card .guide-steps small{margin-top:4px}.compact-help .help-card .guide-steps>div{gap:10px}.compact-help .help-card .guide-steps>div>b{font-size:15px;width:26px;height:26px;line-height:26px}.compact-help .help-note{font-size:14px!important}
.help-detail summary{font-size:15px;font-weight:700;color:#174b91;cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px}.help-detail summary::before{content:'+'}.help-detail[open] summary::before{content:'−'}.help-detail p{margin-top:8px}.help-detail dl{padding-top:12px}.compact-help .help-about{margin-top:20px;padding:12px 0}.compact-help .help-about dl>div{font-size:14px;grid-template-columns:110px minmax(0,1fr)}
@media(max-width:760px){.mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-nav button{font-size:12px;line-height:1.2;min-height:56px}.mobile-nav button span{white-space:nowrap}.settings-grid{grid-template-columns:1fr;gap:12px}.settings-card{padding:14px 16px}.setting-row{font-size:15px;min-height:50px}.compact-help .help-grid{display:grid;grid-template-columns:1fr}.compact-help .help-column{display:flex}.compact-help .help-card{padding:18px 16px}.compact-help .help-card p,.compact-help .help-card .guide-steps small{font-size:15px;line-height:1.6}.season-board-heading h2{font-size:17px}.season-top{display:none}.season-table th,.season-table td{font-size:13px;height:34px;padding:5px 8px}.season-table .season-points-col{width:85px}.season-table .season-rounds-col{width:42px}.season-table .season-rank-col{width:46px}}
@media(forced-colors:active){.season-medal .season-rank{border:2px solid Highlight}.setting-switch[aria-pressed="true"]{border:2px solid Highlight}}

.album-player{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:14px;margin:16px 0 0;padding:17px 20px;border:1px solid #bcdce9;border-radius:18px;background:linear-gradient(115deg,#f6fcff,#e4f3fa 70%,#fff5d8);box-shadow:0 8px 24px #21496612;color:#193b52}
.album-disc{display:grid;place-items:center;width:62px;height:62px;border:4px solid #d5eff5;border-radius:50%;background:radial-gradient(circle at 35% 32%,#4eade3,#17628f);box-shadow:0 5px 13px #144c7333;color:white;font-size:32px;line-height:1}
.album-player.is-playing .album-disc{animation:album-beat 2.2s ease-in-out infinite}
.album-now{min-width:0}.album-kicker{display:block;color:#357a9c;font-size:12px;font-weight:800;letter-spacing:.08em}.album-now h2{margin:2px 0 3px;font-size:17px;line-height:1.3;color:#173b54}.album-now strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px;line-height:1.35}.album-now small{display:block;margin-top:4px;color:#456b7f;font-size:13px;line-height:1.3}
.album-controls{display:flex;align-items:center;gap:7px}.album-controls button{min-height:46px;padding:7px 12px;border:1px solid #bdd6e2;border-radius:12px;background:#fff;color:#244b64;font-size:14px;font-weight:700;white-space:nowrap}.album-controls button:hover{background:#e5f5fb}.album-controls .album-play{min-width:83px;border-color:#154b71;background:#185c88;color:#fff;font-size:16px}.album-controls .album-play:hover{background:#11496e}
.album-list{grid-column:1/-1;border-top:1px solid #cde1e9;padding-top:10px}.album-list summary{width:fit-content;color:#285b78;font-size:14px;font-weight:700;cursor:pointer}.album-list>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:11px}.album-list button{display:flex;align-items:center;gap:11px;min-width:0;min-height:45px;padding:8px 11px;border:1px solid #d7e8ed;border-radius:10px;background:#fff;text-align:left;font-size:14px;line-height:1.3}.album-list button:hover,.album-list button.is-current{border-color:#54a4ca;background:#e9f7fd;color:#174866}.album-list button span{flex:none;color:#367c9f;font-weight:800;font-variant-numeric:tabular-nums}
@keyframes album-beat{50%{transform:scale(1.045)}}
@media(max-width:800px){.album-player{grid-template-columns:50px minmax(0,1fr);gap:11px;padding:14px}.album-disc{width:50px;height:50px;font-size:26px}.album-now strong{font-size:16px}.album-controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr}.album-controls button{min-width:0}.album-list>div{grid-template-columns:1fr}}
@media(max-width:360px){.album-player{padding:12px}.album-now h2{font-size:16px}.album-now strong{font-size:15px}.album-controls button{font-size:13px;padding-inline:7px}}
@media(prefers-reduced-motion:reduce){.album-player.is-playing .album-disc{animation:none}}
/* Keep music controls visible immediately on smaller phones. */
.album-player{margin:0 0 16px}
@media(max-width:760px){.album-player{grid-template-columns:minmax(0,1fr) auto;gap:7px 9px;padding:11px 12px}.album-disc{display:none}.album-now h2{display:none}.album-now strong{margin-top:2px}.album-controls{grid-column:2;display:flex;gap:4px}.album-controls button{width:42px;min-width:42px;min-height:44px;padding:4px;font-size:0}.album-controls button:first-child::before{content:'◀';font-size:17px}.album-controls button:last-child::before{content:'▶';font-size:17px}.album-controls .album-play{width:77px;min-width:77px;font-size:14px}.album-list{padding-top:5px}}
@media(max-width:360px){.album-player{grid-template-columns:1fr}.album-controls{grid-column:1}.album-controls button{font-size:0}.album-controls .album-play{font-size:14px}}
@media(max-width:760px){.album-now strong{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:15px;line-height:1.25}.album-now small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}}

/* Keep the browser-required first gesture obvious on desktop and small screens. */
.album-player.needs-gesture{border:2px solid #e6ac19;background:linear-gradient(115deg,#fffdf5,#fff2c7 70%,#eaf8ff)}
.album-player.needs-gesture [data-album-status]{color:#6c4810;font-size:16px;font-weight:800}
.album-player.needs-gesture .album-controls .album-play{min-width:146px;background:#ffcf48;border-color:#a06b00;color:#1d3343;font-size:18px}
.album-player.needs-gesture .album-controls .album-play:hover{background:#ffdc73}
@media(max-width:760px){.album-player.needs-gesture .album-controls{grid-column:1/-1;justify-content:center}.album-player.needs-gesture .album-controls .album-play{width:auto;min-width:146px;flex:1}}
.album-player.album-compact .album-controls button::before{content:none!important}.album-player.album-compact .album-controls .album-play{width:auto;min-width:72px;font-size:14px}.album-player.album-compact .album-controls .album-open{display:grid;place-items:center;width:44px;min-width:44px;min-height:44px;padding:8px}.album-player.album-compact .album-now strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}.album-player.album-compact .album-now small{font-size:12px}
@media(max-width:760px){.album-player.album-compact .album-controls .album-play{min-width:64px;width:64px;padding:4px}.album-player.album-compact{grid-template-columns:minmax(0,1fr) auto}.album-player.album-compact .album-controls{grid-column:2}}
