@font-face{font-family:Manrope;src:url('assets/fonts/manrope.woff') format('woff');font-weight:200 800;font-display:swap}@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant.woff') format('woff');font-weight:300 700;font-display:swap}@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant-italic.woff') format('woff');font-style:italic;font-weight:300 700;font-display:swap}
:root{--ink:#23463b;--muted:#6f7a6c;--paper:#f4f2e9;--panel:rgba(249,248,239,.94);--line:rgba(63,82,59,.16);--accent:#a88a4d;--green:#285440;--green-hover:#376b52;--pale:#e8eddf;--shadow:0 24px 80px #34453420;--top:0px;--right:0px;--bottom:0px;--left:0px;color-scheme:light}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{font-family:Manrope,Arial,sans-serif;color:var(--ink);background:#eaece2;-webkit-tap-highlight-color:transparent;user-select:none}body[data-theme=dark]{--ink:#edf0df;--muted:#b0bba9;--paper:#142a25;--panel:rgba(23,44,37,.96);--line:rgba(202,221,190,.18);--accent:#cdb47d;--green:#c9d7ac;--green-hover:#e0e7cd;--pale:#293e31;--shadow:0 24px 80px #0005;color-scheme:dark;background:#142a25}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none;touch-action:manipulation}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button:active:not(:disabled){transform:translateY(2px)}svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}button svg{pointer-events:none}#world{position:fixed;inset:0;width:100%;height:100%;display:block;outline:0;touch-action:none}#ui{position:fixed;inset:0;pointer-events:none}#ui button,#ui input,#ui select,.dialog{pointer-events:auto}#grain{position:fixed;inset:0;opacity:.025;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.9' filter='url(%23n)'/%3E%3C/svg%3E")}#vignette{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #1730230b}.hidden{display:none!important}.screen{position:absolute;inset:0;animation:screen-in .26s ease both}.boot{position:absolute;inset:0;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:auto;z-index:100}.boot-mark{border:1px solid var(--line);width:100px;height:100px;border-radius:50%;display:grid;place-items:center;margin-bottom:28px;animation:breathe 3s ease-in-out infinite}.boot-mark svg{width:60px;height:60px;stroke:var(--accent)}.wordmark{font-family:Cormorant,Georgia,serif;font-size:54px;letter-spacing:10px;padding-left:10px;font-weight:500}.boot-sub{letter-spacing:4.5px;font-size:11px;margin-top:2px;color:var(--muted)}.load-track{margin:36px 0 18px;width:180px;height:2px;background:var(--line);overflow:hidden}.load-track i{display:block;height:100%;width:3%;background:var(--accent);transition:width .25s ease}.boot p{font-size:13px}.boot small{font-size:11px;margin-top:9px;color:var(--muted)}.menu{background:linear-gradient(90deg,var(--paper) 0%,color-mix(in srgb,var(--paper),transparent 6%) 20%,color-mix(in srgb,var(--paper),transparent 85%) 53%,transparent 70%)}.menu-header{position:absolute;left:calc(5% + var(--left));right:calc(5% + var(--right));top:calc(33px + var(--top));display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-size:17px;letter-spacing:4px;font-weight:650}.brand span:not(.brand-icon){display:block;font-size:8px;font-weight:600;letter-spacing:3px;margin-top:3px}.brand-icon{width:42px;height:42px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;color:var(--accent)}.brand-icon svg{width:25px;height:25px}.header-actions{display:flex;gap:12px;align-items:center}.text-button{font-size:11px;letter-spacing:1px;font-weight:800;min-width:44px;height:44px}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--paper),transparent 30%);backdrop-filter:blur(8px);transition:background .16s,transform .16s}.icon-button:hover{background:var(--pale)}.menu-copy{position:absolute;left:calc(7.2% + var(--left));top:50%;transform:translateY(-50%);width:405px;max-width:37vw;padding-top:14px}.eyebrow{font-size:9px;letter-spacing:3px;font-weight:700;display:flex;align-items:center;gap:10px;color:var(--muted)}.eyebrow i{width:24px;height:1px;background:var(--accent)}h1{font-family:Cormorant,Georgia,serif;font-weight:500;font-size:clamp(80px,8.1vw,128px);line-height:.84;letter-spacing:-5px;margin:26px 0 24px}h1 span{font-family:Manrope,Arial,sans-serif;display:block;font-size:12px;letter-spacing:7px;font-weight:500;text-transform:uppercase;margin:17px 0 0 5px;line-height:1.5}.menu-tagline{font-family:Cormorant,Georgia,serif;font-size:clamp(28px,2.8vw,44px);font-weight:500;line-height:1.05;white-space:pre-line;letter-spacing:-.5px}.intro{font-size:12px;line-height:1.8;color:var(--muted);margin-top:18px;white-space:pre-line}.menu-buttons{margin-top:27px;display:grid;gap:11px;max-width:320px}.button{min-height:52px;padding:0 23px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:13px;border-radius:7px;letter-spacing:.2px;font-size:12px;font-weight:700;transition:background .15s,transform .15s,box-shadow .15s}.button.primary{background:var(--green);color:var(--paper);border-color:var(--green);box-shadow:0 7px 18px #1f4c3320}.button.primary:hover{background:var(--green-hover);box-shadow:0 9px 23px #1f4c3333}.button.primary svg{margin-left:auto;width:20px}.button.primary span:first-child{margin-right:auto}.button.secondary{background:color-mix(in srgb,var(--paper),transparent 25%)}.button.secondary:hover{background:var(--pale)}.button.secondary svg{width:18px;height:18px;color:var(--muted)}.menu-meta{font-size:9px;display:flex;align-items:center;gap:8px;color:var(--muted);margin-top:20px}.menu-meta svg{width:13px;height:13px}.menu-meta b{font-weight:400}.inline-button{font-size:inherit;line-height:1.4;padding:8px 3px;color:inherit;min-height:32px}.inline-button:hover{text-decoration:underline}.scene-caption{position:absolute;right:11%;bottom:21%;display:flex;align-items:center;gap:13px}.caption-line{width:35px;height:1px;background:var(--accent)}.scene-caption small{font-size:9px;color:var(--muted);letter-spacing:1px}.scene-caption strong{font-family:Cormorant,Georgia,serif;font-size:24px;font-weight:500}.caption-par{font-size:7px;letter-spacing:2px;color:var(--muted);border-left:1px solid var(--line);padding-left:12px}.daily-card{position:absolute;right:6%;bottom:calc(87px + var(--bottom));display:flex;align-items:center;gap:15px;background:color-mix(in srgb,var(--panel),transparent 8%);padding:16px 19px;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 30px #2848340a;text-align:left;min-width:330px;backdrop-filter:blur(10px)}.daily-card small{display:block;letter-spacing:1.6px;text-transform:uppercase;font-size:8px;color:var(--accent);font-weight:800;margin-bottom:5px}.daily-card strong{font-size:11px;font-weight:600}.daily-card>svg{width:17px;height:17px;margin-left:auto}.daily-symbol{border:1px solid var(--line);border-radius:50%;padding:9px;color:var(--accent)}.daily-symbol svg{width:21px;height:21px}.menu-footer{position:absolute;left:5%;right:5%;bottom:calc(22px + var(--bottom));padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.menu-footer nav{display:flex;gap:29px}.menu-footer button{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:600;min-height:36px;padding:2px}.menu-footer svg{width:16px;height:16px;color:var(--muted)}.footer-sign{font-size:8px;letter-spacing:3px;color:var(--muted)}.game-top{position:absolute;left:calc(28px + var(--left));right:calc(28px + var(--right));top:calc(24px + var(--top));display:flex;align-items:center;gap:18px}.glass{background:var(--panel)}.hole-title{padding-left:5px}.hole-title>span{font-size:8px;font-weight:800;letter-spacing:2.6px;color:var(--accent);text-transform:uppercase}.hole-title h2{font-family:Cormorant,Georgia,serif;font-size:31px;font-weight:600;line-height:1.1;margin-top:4px}.hole-title small{font-size:9px;color:var(--muted);display:block;margin-top:5px}.score-pills{margin-left:auto;display:flex;gap:0;background:var(--panel);border:1px solid var(--line);box-shadow:0 5px 20px #25402a07;border-radius:9px;padding:11px 0;backdrop-filter:blur(9px)}.score-pills>div{padding:0 22px;text-align:center;min-width:76px}.score-pills>div+div{border-left:1px solid var(--line)}.score-pills span{display:block;font-size:8px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.score-pills b{font-family:Cormorant,Georgia,serif;font-size:30px;line-height:1.1;font-weight:600}.game-bottom{position:absolute;bottom:calc(19px + var(--bottom));left:50%;transform:translateX(-50%);width:470px;max-width:calc(100% - 32px - var(--left) - var(--right));text-align:center}.status-line{font-size:11px;color:var(--ink);font-weight:600;min-height:22px;margin-bottom:12px;transition:opacity .16s}.shot-control{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;align-items:center;gap:7px;background:var(--panel);box-shadow:var(--shadow);backdrop-filter:blur(12px)}.power-control{flex:1;min-width:80px;padding:2px 4px;position:relative}.power-label{display:flex;justify-content:space-between;font-size:9px;padding:0 4px;color:var(--muted)}.power-label b{color:var(--ink);font-size:10px}.power-control input{appearance:none;width:100%;height:23px;background:none;margin:0;cursor:pointer;touch-action:none}.power-control input::-webkit-slider-runnable-track{height:4px;border-radius:3px;background:linear-gradient(90deg,var(--green) var(--value,40%),var(--line) var(--value,40%))}.power-control input::-webkit-slider-thumb{appearance:none;height:14px;width:14px;margin-top:-5px;border-radius:50%;background:var(--paper);border:3px solid var(--green);box-shadow:0 1px 4px #0003}.power-control input::-moz-range-track{height:4px;background:var(--line)}.power-control input::-moz-range-thumb{height:11px;width:11px;border:3px solid var(--green);border-radius:50%;background:var(--paper)}.power-ticks{display:flex;justify-content:space-between;padding:0 7px;margin-top:-3px}.power-ticks i{height:2px;width:1px;background:var(--line)}.aim-arrow{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px}.aim-arrow:hover{background:var(--pale)}.shot-button{min-height:46px;min-width:115px;border-radius:7px;padding:0 15px;font-size:11px}.shot-button svg{width:16px;height:16px}.play-help{display:flex;align-items:center;justify-content:center;gap:8px;font-size:9px;letter-spacing:.2px;color:var(--muted);margin-top:6px;min-height:26px}.play-help svg{width:14px;height:14px}.play-help .inline-button{min-height:28px}.ball-marker{position:absolute;pointer-events:none;width:40px;height:40px;transform:translate(-50%,-50%);border:1px solid #f8f4d291;border-radius:50%;display:grid;place-items:center}.ball-marker:before{content:'';width:48px;height:48px;border:1px solid #b9a16c80;border-radius:50%;position:absolute;animation:pulse-ring 2.5s ease-out infinite}.ball-marker span{position:absolute;top:-8px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.hole-intro{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);min-width:200px;text-align:center;padding:20px 34px;border-radius:10px;background:var(--panel);backdrop-filter:blur(14px);box-shadow:var(--shadow);animation:screen-in .25s ease}.hole-intro small{display:block;font-size:9px;letter-spacing:3px;color:var(--accent);text-transform:uppercase}.hole-intro strong{display:block;font-size:42px;font-weight:500;font-family:Cormorant,Georgia,serif;margin:7px 0}.hole-intro>span{font-size:11px;color:var(--muted)}.online-strip{position:absolute;top:calc(111px + var(--top));left:50%;transform:translateX(-50%);display:flex;gap:24px;padding:10px 16px;background:var(--panel);border:1px solid var(--line);border-radius:24px;font-size:10px;min-width:200px;justify-content:center}.online-strip .active{color:var(--accent);font-weight:800}.dialog-backdrop{position:absolute;inset:0;background:#18342635;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;pointer-events:auto;padding:20px;z-index:10;animation:screen-in .2s ease}.dialog{width:480px;max-width:100%;max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;background:var(--panel);border:1px solid color-mix(in srgb,var(--paper),transparent 15%);box-shadow:var(--shadow);border-radius:15px;padding:33px;position:relative;animation:dialog-in .24s cubic-bezier(.2,.8,.2,1);scrollbar-width:thin;scrollbar-color:var(--line) transparent}.dialog.wide{width:880px}.dialog.medium{width:680px}.dialog .close{position:absolute;top:18px;right:18px}.dialog .eyebrow{font-size:8px;margin-bottom:10px}.dialog h2{font-family:Cormorant,Georgia,serif;font-size:43px;line-height:1.05;font-weight:500;padding-right:18px;letter-spacing:-.7px}.dialog-sub{font-size:11px;color:var(--muted);line-height:1.8;margin-top:12px;max-width:530px}.dialog-body{margin-top:24px}.dialog-actions{display:grid;gap:9px;margin-top:25px}.dialog-actions.two{grid-template-columns:1fr 1fr}.dialog .button{font-size:11px;min-height:48px}.world-tabs{display:flex;gap:8px;margin:24px 0 17px}.world-tab{border:1px solid var(--line);border-radius:7px;flex:1;padding:12px 9px;font-size:10px;min-height:44px}.world-tab.active{background:var(--green);color:var(--paper);border-color:var(--green)}.holes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hole-card{border:1px solid var(--line);border-radius:9px;text-align:left;overflow:hidden;background:color-mix(in srgb,var(--paper),transparent 15%);transition:box-shadow .16s,transform .16s}.hole-card:hover{box-shadow:0 7px 20px #213b281b;transform:translateY(-2px)}.hole-preview{height:100px;width:100%;background:var(--pale);padding:9px}.hole-preview svg{width:100%;height:100%;stroke:none}.hole-card-copy{padding:13px}.hole-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.hole-card-top small{font-size:8px;letter-spacing:1px;color:var(--muted)}.hole-card-top span{font-size:9px;color:var(--accent)}.hole-card strong{font-family:Cormorant,Georgia,serif;font-size:23px;font-weight:600}.hole-card p{font-size:9px;color:var(--muted);margin-top:6px}.star-row{display:flex;gap:6px;align-items:center;justify-content:center;color:var(--accent)}.star-row svg{width:28px;height:28px}.star-row svg.filled{fill:currentColor}.star-row svg.empty{opacity:.17}.tiny-stars{display:flex;gap:2px}.tiny-stars svg{width:12px;height:12px;fill:currentColor}.world-desc{font-size:10px;color:var(--muted);margin:7px 0 17px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);font-size:11px;min-height:53px}.setting-row:last-child{border:0}.setting-row select{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:9px;color:var(--ink);font-size:10px;min-height:38px;max-width:52%}.switch{width:43px;height:25px;border-radius:20px;background:var(--line);position:relative;border:1px solid var(--line);flex-shrink:0}.switch:before{content:'';position:absolute;width:17px;height:17px;left:3px;top:3px;background:var(--paper);border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .17s}.switch[aria-checked=true]{background:var(--green)}.switch[aria-checked=true]:before{transform:translateX(17px)}.setting-row input[type=range]{width:130px;accent-color:var(--green)}.help-steps{display:grid;gap:18px;margin-top:25px}.help-step{display:flex;gap:14px;align-items:flex-start}.help-step b{font-family:Cormorant,Georgia,serif;font-size:25px;color:var(--accent);line-height:1.15;border-right:1px solid var(--line);padding-right:12px}.help-step p{font-size:11px;line-height:1.8;color:var(--muted)}.result{text-align:center}.result h2{padding:0;font-size:48px;margin-top:14px}.result .eyebrow{justify-content:center}.result-seal{height:76px;width:76px;margin:0 auto 16px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--accent);box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--pale),transparent 35%)}.result-seal svg{width:32px;height:32px}.result .star-row{margin:18px 0}.result-stats{display:flex;justify-content:center;gap:0;margin-top:22px;border-block:1px solid var(--line);padding:15px 0}.result-stats>div{flex:1}.result-stats>div+div{border-left:1px solid var(--line)}.result-stats b{display:block;font-family:Cormorant,Georgia,serif;font-size:39px;font-weight:600;line-height:1.1}.result-stats span{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.record-badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;color:var(--accent);padding:7px 10px;border:1px solid var(--line);border-radius:20px;margin-top:16px}.record-badge svg{width:12px;height:12px}.result .dialog-sub{margin-inline:auto}.ball-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}.ball-card{padding:15px 8px;border:1px solid var(--line);border-radius:10px;text-align:center}.ball-card.active{border-color:var(--accent);background:var(--pale)}.ball-render{width:68px;height:68px;max-width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 31% 27%,#fff9,transparent 43%),radial-gradient(circle at 70% 80%,#0004,transparent 60%),var(--ball);box-shadow:5px 10px 12px #223b2520,inset -5px -5px 7px #0003;margin:0 auto 15px;position:relative}.ball-render:after{content:'';position:absolute;inset:0;border-radius:50%;opacity:.25;background-image:radial-gradient(circle at center,#0005 0 1px,#fff5 1px 2px,transparent 2px);background-size:8px 8px;mask-image:radial-gradient(circle,#000 0%,transparent 72%)}.ball-card strong{font-size:11px;display:block}.ball-card small{display:block;font-size:8px;color:var(--muted);margin:7px 0;line-height:1.5;min-height:24px}.ball-card button{width:100%;font-size:9px;border:1px solid var(--line);padding:8px 2px;min-height:36px;border-radius:5px}.room-code{font-family:Manrope,Arial,sans-serif;font-size:34px;letter-spacing:8px;font-weight:500;text-align:center;padding:24px 0;color:var(--accent)}.join-row{display:flex;gap:8px;margin-top:15px}.join-row input{min-width:0;width:100%;text-transform:uppercase;letter-spacing:4px;border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:0 15px;font-size:14px;height:48px;color:var(--ink)}.join-row input::placeholder{letter-spacing:1px;font-size:10px;text-transform:none}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;margin-right:8px;animation:breathe 2s infinite}.waiting-line{font-size:11px;color:var(--muted);text-align:center;margin:18px 0}.match-score{display:flex;justify-content:center;gap:25px;margin:24px 0}.match-player{flex:1;padding:15px;border:1px solid var(--line);border-radius:9px}.match-player strong{font-size:10px;display:block}.match-player b{font-family:Cormorant,Georgia,serif;font-size:46px;display:block}.match-player.winner{border-color:var(--accent);background:var(--pale)}.match-table{width:100%;border-collapse:collapse;font-size:10px;text-align:center}.match-table th,.match-table td{padding:9px;border-bottom:1px solid var(--line);font-weight:400}.match-table th{color:var(--muted);font-size:9px}.leader-list{list-style:none;padding:0;margin:20px 0}.leader-list li{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.leader-list li b:last-child{margin-left:auto}.toast{position:absolute;left:50%;top:calc(105px + var(--top));transform:translateX(-50%);padding:13px 19px;max-width:calc(100% - 30px);text-align:center;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;font-size:11px;line-height:1.6;z-index:90;animation:screen-in .2s ease;white-space:normal}.muted-note{font-size:9px;color:var(--muted);line-height:1.7;margin-top:17px}.error-screen{max-width:430px;text-align:center;padding:30px}.error-screen p{font-size:14px;line-height:1.8;margin-bottom:20px}.confetti-quiet{animation:gentle-pop .5s ease}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@keyframes screen-in{from{opacity:0}to{opacity:1}}@keyframes dialog-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes breathe{50%{opacity:.5;transform:scale(.97)}}@keyframes pulse-ring{0%{opacity:.9;transform:scale(.8)}90%,100%{opacity:0;transform:scale(1.25)}}@keyframes gentle-pop{40%{transform:scale(1.04)}}
@media(min-width:1700px){.menu-copy{left:10%;max-width:440px}.intro{font-size:14px}.menu-buttons{max-width:350px}.button{min-height:58px;font-size:13px}.menu-meta{font-size:10px}.menu-footer{left:7%;right:7%}.scene-caption{bottom:24%}}
@media(max-width:1050px) and (min-aspect-ratio:1/1){.menu-header{top:22px}.menu-copy{left:5%;max-width:38vw}.menu-copy h1{font-size:83px;margin:20px 0}h1 span{font-size:10px;letter-spacing:5px}.menu-tagline{font-size:32px}.intro{font-size:10px;margin-top:12px}.menu-buttons{margin-top:19px;gap:8px}.button{min-height:46px;font-size:11px}.menu-meta{font-size:8px;margin-top:10px}.daily-card{min-width:270px;bottom:75px;right:4%;padding:12px}.daily-card strong{font-size:9px}.scene-caption{right:7%;bottom:24%}.menu-footer{bottom:15px}.menu-footer nav{gap:20px}.menu-footer button{font-size:9px}.footer-sign{font-size:7px}.hole-title h2{font-size:26px}}
@media(max-aspect-ratio:1/1){.menu{background:linear-gradient(180deg,color-mix(in srgb,var(--paper),transparent 5%) 0%,color-mix(in srgb,var(--paper),transparent 60%) 29%,transparent 43%,color-mix(in srgb,var(--paper),transparent 45%) 66%,var(--paper) 84%)}.menu-header{left:23px;right:23px;top:calc(19px + var(--top))}.brand{font-size:14px;gap:9px;letter-spacing:3px}.brand span:not(.brand-icon){font-size:6px;letter-spacing:2px}.brand-icon{width:35px;height:35px}.brand-icon svg{width:22px;height:22px}.header-actions{gap:7px}.header-actions .icon-button{width:37px;height:37px}.header-actions .icon-button:last-child{display:none}.text-button{height:38px;min-width:34px;font-size:10px}.menu-copy{left:0;top:calc(95px + var(--top));transform:none;width:100%;max-width:none;text-align:center;padding:0 28px;pointer-events:none}.eyebrow{justify-content:center;font-size:8px;letter-spacing:2.5px}.eyebrow i{display:none}.menu-copy h1{font-size:76px;letter-spacing:-3px;margin:15px 0 15px;line-height:.8}.menu-copy h1 span{font-size:9px;letter-spacing:5px;margin-top:12px}.menu-tagline{font-family:Manrope,Arial,sans-serif;font-size:11px;white-space:normal;line-height:1.7;letter-spacing:.2px;color:var(--muted)}.intro{display:none}.menu-buttons{position:fixed;left:26px;right:26px;bottom:calc(173px + var(--bottom));max-width:none;margin:0;gap:9px;pointer-events:auto}.menu-buttons .button{min-height:49px;font-size:12px}.menu-buttons .button.primary{padding-left:22px}.menu-buttons .button.primary span:first-child{margin:auto}.menu-meta{position:fixed;left:0;right:0;bottom:calc(139px + var(--bottom));justify-content:center;margin:0;font-size:8px;pointer-events:auto}.scene-caption{left:0;right:0;bottom:calc(294px + var(--bottom));justify-content:center;gap:8px}.scene-caption .caption-line,.scene-caption .caption-par{display:none}.scene-caption strong{font-size:22px}.scene-caption small{font-size:8px}.daily-card{left:26px;right:26px;bottom:calc(76px + var(--bottom));min-width:0;padding:10px 13px;gap:10px}.daily-card small{font-size:7px}.daily-card strong{font-size:9px}.daily-symbol{padding:6px}.daily-symbol svg{width:17px;height:17px}.daily-card>svg{width:15px}.menu-footer{left:20px;right:20px;bottom:calc(9px + var(--bottom));padding-top:7px}.menu-footer nav{width:100%;justify-content:space-around;gap:5px}.menu-footer button{font-size:8px;flex-direction:column;gap:5px;min-height:45px}.menu-footer svg{width:17px;height:17px}.footer-sign{display:none}.game-top{left:calc(15px + var(--left));right:calc(15px + var(--right));top:calc(18px + var(--top));gap:11px;align-items:flex-start}.game-top>.icon-button{width:40px;height:40px}.hole-title{padding:0;margin-top:2px;max-width:47vw}.hole-title>span{font-size:7px;letter-spacing:1.8px}.hole-title h2{font-size:25px;line-height:1.1;margin-top:5px}.hole-title small{font-size:8px;margin-top:6px}.score-pills{padding:8px 0;gap:0}.score-pills>div{padding:0 10px;min-width:45px}.score-pills span{font-size:6px;letter-spacing:.2px}.score-pills b{font-size:26px}.game-sound{display:none!important}.game-bottom{bottom:calc(15px + var(--bottom));max-width:calc(100% - 26px)}.shot-control{padding:8px;gap:4px}.aim-arrow{width:38px;flex-basis:38px;height:44px}.shot-button{min-width:91px;padding:0 10px;font-size:10px;gap:6px}.shot-button svg{width:13px}.power-label{font-size:8px}.power-label b{font-size:9px}.play-help{font-size:8px;gap:5px}.status-line{font-size:10px;margin-bottom:9px}.hole-intro strong{font-size:34px}.hole-intro{top:38%;padding:19px 23px;max-width:85%;min-width:250px}.online-strip{top:calc(105px + var(--top));font-size:9px;width:calc(100% - 40px);gap:17px}.dialog-backdrop{padding:14px}.dialog{padding:27px 22px;max-height:calc(100dvh - 28px);border-radius:12px}.dialog h2{font-size:36px}.dialog .close{right:12px;top:12px;width:35px;height:35px}.dialog .eyebrow{justify-content:flex-start;font-size:7px}.dialog-sub{font-size:10px;margin-top:10px}.world-tabs{gap:5px;margin-top:20px}.world-tab{font-size:8px;padding:10px 5px}.holes-grid{grid-template-columns:repeat(2,1fr);gap:8px}.hole-preview{height:80px}.hole-card-copy{padding:10px}.hole-card strong{font-size:21px}.hole-card-top small{font-size:7px}.hole-card-top span{font-size:8px}.hole-card p{font-size:8px}.world-desc{font-size:9px}.ball-grid{grid-template-columns:repeat(2,1fr);gap:10px}.ball-card{padding:17px 10px}.ball-render{width:65px;height:65px}.ball-card small{min-height:15px}.result h2{font-size:41px}.result-stats b{font-size:34px}.result-seal{width:65px;height:65px}.result .eyebrow{justify-content:center}.result .dialog-sub{font-size:11px}.dialog-actions.two{grid-template-columns:1fr}.toast{top:calc(111px + var(--top));font-size:10px;width:max-content}.setting-row{font-size:10px}.help-step p{font-size:10px}}
@media(max-height:720px) and (max-aspect-ratio:1/1){.menu-copy{top:80px}.menu-copy h1{font-size:61px;margin:12px 0}.menu-copy .eyebrow{font-size:7px}.menu-copy h1 span{font-size:8px}.menu-tagline{font-size:10px}.menu-buttons{bottom:150px;gap:7px}.menu-buttons .button{min-height:44px}.menu-meta{bottom:120px}.daily-card{bottom:65px;padding:8px 12px}.scene-caption{bottom:250px}.menu-footer{bottom:6px}.menu-footer button{font-size:7px;min-height:40px}.game-bottom{bottom:7px}.play-help{margin-top:3px}.dialog h2{font-size:32px}.dialog-sub{font-size:10px}.result-seal{margin-bottom:10px}.result h2{margin-top:10px;font-size:35px}.result-stats{margin-top:14px;padding:10px 0}.result .star-row{margin:13px 0}.dialog-actions{margin-top:17px}.dialog-body{margin-top:16px}}
@media(max-height:520px) and (min-aspect-ratio:1/1){.menu-header{top:16px;left:4%;right:4%}.brand{font-size:12px;letter-spacing:3px}.brand-icon{height:32px;width:32px}.brand-icon svg{width:21px;height:21px}.brand span:not(.brand-icon){font-size:6px;letter-spacing:2px}.header-actions .icon-button{width:34px;height:34px}.header-actions{gap:8px}.menu-copy{top:55%;left:5%;padding:0;max-width:36vw}.eyebrow{font-size:6px;letter-spacing:2px}.menu-copy h1{font-size:60px;letter-spacing:-2px;margin:12px 0}.menu-copy h1 span{font-size:7px;letter-spacing:4px;margin-top:10px}.menu-tagline{font-size:21px;white-space:normal}.intro{display:none}.menu-buttons{margin-top:14px;gap:6px;max-width:245px}.menu-buttons .button{min-height:36px;font-size:9px;padding:0 12px}.menu-buttons .button svg{width:15px;height:15px}.menu-meta{font-size:7px;margin-top:2px;gap:6px}.menu-meta svg{width:10px;height:10px}.menu-meta .inline-button{min-height:28px}.menu-footer{bottom:7px;padding-top:6px;left:4%;right:4%}.menu-footer button{font-size:8px;gap:5px;min-height:25px}.menu-footer svg{width:13px;height:13px}.footer-sign{font-size:6px}.daily-card{bottom:52px;right:4%;padding:9px 12px;min-width:250px;gap:10px}.daily-card small{font-size:6px}.daily-card strong{font-size:8px}.daily-symbol{padding:5px}.daily-symbol svg{width:17px;height:17px}.scene-caption{bottom:116px;right:9%;gap:8px}.scene-caption strong{font-size:20px}.scene-caption small{font-size:7px}.caption-par{font-size:6px}.game-top{top:12px;left:17px;right:17px;gap:12px}.game-top>.icon-button{width:37px;height:37px}.hole-title h2{font-size:24px}.hole-title>span{font-size:6px}.hole-title small{font-size:7px;margin-top:3px}.score-pills{padding:6px 0}.score-pills>div{padding:0 16px;min-width:50px}.score-pills span{font-size:6px}.score-pills b{font-size:24px}.game-bottom{bottom:5px;width:410px}.status-line{font-size:9px;min-height:14px;margin-bottom:5px}.shot-control{padding:6px;gap:5px}.aim-arrow{width:34px;height:34px;flex-basis:34px}.shot-button{min-height:35px;min-width:98px;font-size:10px}.power-control{padding:0 3px}.power-label{font-size:7px}.power-label b{font-size:8px}.play-help{margin-top:0;min-height:20px;font-size:7px}.play-help .inline-button{min-height:22px;padding:3px}.play-help svg{width:12px;height:12px}.online-strip{top:70px;font-size:8px;padding:6px 11px}.dialog{max-height:calc(100dvh - 24px);padding:25px}.dialog h2{font-size:32px}.dialog-sub{font-size:10px}.dialog-body{margin-top:16px}.dialog-actions{margin-top:16px}.dialog-actions .button{min-height:40px}.result-seal{width:49px;height:49px;margin:0 auto 9px}.result-seal svg{width:23px;height:23px}.result h2{font-size:34px;margin-top:8px}.result-stats{margin-top:10px;padding:8px}.result-stats b{font-size:28px}.result .star-row{margin:10px 0}.result .star-row svg{width:21px;height:21px}.result .dialog-actions{grid-template-columns:1fr 1fr;gap:7px}.result .record-badge{margin-top:9px}.hole-intro strong{font-size:30px}.hole-intro{padding:15px 25px}.toast{top:78px}.hole-preview{height:70px}.help-steps{gap:12px;margin-top:15px}.help-step p{font-size:10px}.setting-row{padding:10px 0;min-height:42px}.ball-render{width:54px;height:54px;margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Readability and touch target pass: small screens keep every functional label legible. */
@media(max-width:1050px),(max-height:520px){
 .icon-button,.header-actions .icon-button,.game-top>.icon-button,.dialog .close{min-width:44px;min-height:44px}
 .text-button,.aim-arrow{min-width:44px;min-height:44px}.aim-arrow{flex-basis:44px}
 .menu-footer button{min-height:44px}.menu-meta,.menu-footer button,.world-tab,.world-desc,.hole-card-top small,.hole-card-top span,.hole-card p,.ball-card small,.ball-card button,.power-label,.power-label b,.play-help,.score-pills span,.hole-title small,.hole-title>span,.daily-card small,.daily-card strong,.scene-caption small,.muted-note,.result-stats span,.record-badge,.setting-row select,.match-table th,.dialog .eyebrow,.waiting-line{font-size:10px}
 .menu-meta{gap:6px}.menu-meta .inline-button{min-height:44px}.menu-footer button{font-weight:650}.ball-card button{min-height:44px}.score-pills>div{padding-inline:9px}.power-label{padding-inline:1px}.play-help .inline-button{min-width:30px}.shot-button{min-height:44px}.menu-buttons .button{min-height:46px;font-size:11px}.menu-copy .eyebrow{font-size:9px}.dialog-actions .button{min-height:44px}
}
@media(max-aspect-ratio:1/1){.menu-meta{bottom:calc(133px + var(--bottom))}.menu-footer nav{gap:3px}.menu-footer button{font-size:9px;max-width:33.333%;text-align:center}.daily-card{padding-block:10px}.scene-caption small{font-size:9px}.play-help{font-size:9px}.game-top{gap:9px}.hole-title h2{font-size:24px}}
@media(max-height:720px) and (max-aspect-ratio:1/1){.menu-meta{bottom:113px}.daily-card{bottom:66px;padding-block:7px}.menu-footer button{font-size:8px}}
@media(max-height:520px) and (min-aspect-ratio:1/1){.menu-copy .eyebrow{font-size:8px}.menu-meta{font-size:9px}.menu-meta .inline-button{min-height:32px}.menu-footer button{font-size:9px;min-height:35px}.daily-card{bottom:54px}.daily-card strong{font-size:10px}.scene-caption{bottom:126px}.game-top{top:10px}.hole-title small,.hole-title>span{font-size:9px}.game-bottom{width:455px}.play-help{font-size:9px}.shot-control{padding:5px}.game-bottom{bottom:2px}.menu-tagline{font-size:20px}.menu-buttons{margin-top:10px}}
/* Landscape phones give the course the full height and put controls beside it. */
@media(max-height:520px) and (min-aspect-ratio:1/1){
 .game-bottom{left:auto;right:calc(16px + var(--right));bottom:calc(18px + var(--bottom));transform:none;width:202px;max-width:202px}
 .shot-control{flex-wrap:wrap;padding:10px;gap:8px;justify-content:center}
 .power-control{order:0;flex:0 0 100%;padding:4px}
 .power-control input{height:32px}.power-label,.power-label b{font-size:11px}
 .aim-arrow{order:1;flex:1;max-width:82px}.shot-button{order:2;flex:0 0 100%;min-height:44px}
 .status-line{font-size:11px;line-height:1.5;min-height:32px;margin-bottom:8px}
 .play-help{font-size:10px;line-height:1.6;margin-top:8px;gap:4px}
 .hole-intro{left:calc((100% - 222px)/2)}.online-strip{left:calc((100% - 222px)/2);max-width:calc(100% - 256px)}
}
/* Klyo touch/readability baseline, including secondary actions and form controls. */
#ui button,#ui select{min-width:44px;min-height:44px}
#ui input[type=range]{min-height:44px}
#ui .brand span:not(.brand-icon),#ui .eyebrow,#ui .menu-copy h1 span,
#ui .menu-meta,#ui .menu-footer button,#ui .footer-sign,#ui .caption-par,
#ui .scene-caption small,#ui .daily-card small,#ui .daily-card strong,
#ui .hole-title>span,#ui .hole-title small,#ui .score-pills span,#ui .play-help,
#ui .power-label,#ui .power-label b,#ui .hole-intro small,#ui .online-strip,
#ui .dialog .eyebrow,#ui .world-tab,#ui .world-desc,#ui .hole-card-top small,
#ui .hole-card-top span,#ui .hole-card p,#ui .ball-card small,#ui .ball-card button,
#ui .result-stats span,#ui .record-badge,#ui .match-table th,#ui .muted-note{font-size:10px}

.ball-render{background:none!important;box-shadow:none!important;border-radius:0;overflow:visible}.ball-render:before,.ball-render:after{display:none}.ball-render img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 9px 6px #17342130)}
.scene-loading{position:absolute;transform:translate(-50%,-50%);text-align:center;pointer-events:none;color:var(--muted);font-size:11px}.scene-loading>span{display:block;width:26px;height:26px;margin:0 auto 12px;border:1px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:loading-spin 1.1s linear infinite}.scene-loading p{white-space:nowrap}@keyframes loading-spin{to{transform:rotate(360deg)}}

.hole-preview img{width:100%;height:100%;object-fit:contain;display:block;padding:4px}.hole-preview:has(img){height:150px;background:radial-gradient(ellipse at 50% 38%,#e9eadb,#d1dcc5)}body[data-theme=dark] .hole-preview:has(img){background:radial-gradient(ellipse at 50% 38%,#355349,#172f2c)}@media(max-aspect-ratio:1/1){.hole-preview:has(img){height:130px}}
.scene-loading.error{pointer-events:auto;max-width:300px;width:75%;padding:24px;border:1px solid var(--line);background:var(--panel);border-radius:16px;z-index:4}.scene-loading.error>span{display:none}.scene-loading.error p{white-space:normal;line-height:1.7;margin-bottom:18px}.scene-loading.error .button{min-height:44px}

/* Round scorecard and immediate, accessible settings choices. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.setting-options{display:flex;gap:3px;padding:3px;background:var(--pale);border:1px solid var(--line);border-radius:10px}
#ui .setting-choice{min-height:44px;padding:0 10px;border-radius:7px;font-size:10px;font-weight:650;transition:background .16s,color .16s}
.setting-choice[aria-pressed=true]{background:var(--green);color:var(--paper);box-shadow:0 3px 9px #17302317}
.setting-choice:hover:not([aria-pressed=true]){background:var(--panel)}
.settings-body .setting-row{padding-block:12px}
#ui .switch{width:56px;height:44px;min-width:56px;background:transparent;border:0;border-radius:10px}
#ui .switch:after{content:'';position:absolute;left:2px;top:50%;width:52px;height:30px;border-radius:18px;transform:translateY(-50%);background:var(--line);border:1px solid var(--line);transition:background .17s}
#ui .switch:before{left:6px;top:50%;width:22px;height:22px;z-index:1;background:var(--paper);transform:translateY(-50%);transition:transform .17s}
#ui .switch[aria-checked=true]:after{background:var(--green)}
#ui .switch[aria-checked=true]:before{transform:translate(24px,-50%)}
#setting-volume{appearance:none;background:transparent;cursor:pointer}
#setting-volume::-webkit-slider-runnable-track{height:4px;background:var(--line);border-radius:3px}
#setting-volume::-webkit-slider-thumb{appearance:none;width:16px;height:16px;margin-top:-6px;border:3px solid var(--green);background:var(--paper);border-radius:50%}
#setting-volume::-moz-range-track{height:4px;background:var(--line);border-radius:3px}
#setting-volume::-moz-range-thumb{width:12px;height:12px;border:3px solid var(--green);background:var(--paper);border-radius:50%}
.setting-choice-row{gap:15px}
.round-card{margin-top:20px;text-align:left}
.scorecard-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);padding:0 1px 12px}
.scorecard-progress strong{font-size:12px;font-weight:700;color:var(--green)}
.scorecard-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:12px}
.scorecard-table thead th{font-size:10px;color:var(--muted);font-weight:600;padding:8px 7px;border-bottom:1px solid var(--line)}
.scorecard-table th:first-child{text-align:left}
.scorecard-table td,.scorecard-table tbody th{padding:11px 7px;border-bottom:1px solid var(--line);text-align:center}
.scorecard-table tbody th{display:flex;align-items:center;gap:11px;text-align:left;font-weight:600}
.scorecard-table tbody th>span:last-child{flex:1;min-width:0}
.scorecard-table .course-index{font-family:Cormorant,Georgia,serif;font-size:23px;color:var(--accent);font-weight:600;min-width:25px}
.scorecard-table small{display:block;font-size:10px;line-height:1.5;font-weight:500;color:var(--muted);margin-top:3px}
.scorecard-table .is-current{background:color-mix(in srgb,var(--green),transparent 92%)}
.scorecard-table .is-current th{border-left:2px solid var(--accent)}
.scorecard-table td b{font-size:15px}
.scorecard-table tfoot th,.scorecard-table tfoot td{border-bottom:0;padding:13px 7px;font-size:14px;font-weight:800;text-align:center}
.scorecard-table tfoot th{text-align:left}
.score-empty{color:var(--muted)}
.scorecard-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:10px}
#ui .scorecard-shortcut{display:grid;place-items:center;flex-shrink:0}
#ui .network-retry{min-height:44px;border:1px solid var(--accent);background:var(--panel);padding:8px 16px;border-radius:8px;color:var(--ink);font-size:11px;font-weight:700;margin:0 auto 10px}
.scorecard-dialog{width:560px}
/* A long round keeps its heading and return control visible while rows scroll. */
.dialog.scorecard-dialog{display:flex;flex-direction:column;overflow:hidden}
.scorecard-header,.scorecard-dialog>.dialog-actions{flex-shrink:0}
.scorecard-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;margin-top:18px;padding:0 4px 2px 0}
.scorecard-scroll .round-card{margin-top:0}
.scorecard-dialog>.dialog-actions{margin-top:16px}
.scorecard-scroll .scorecard-table thead th{position:sticky;top:0;background:var(--paper);z-index:1}
.result-scorecard{margin-top:18px;border-top:1px solid var(--line);text-align:left}
.result-scorecard summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 0;font-size:11px;font-weight:700;cursor:pointer;list-style:none}
.result-scorecard summary::-webkit-details-marker{display:none}
.result-scorecard summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.result-scorecard summary svg{width:17px;height:17px}
.result-card-scroll{max-height:35dvh;overflow:auto;overscroll-behavior:contain;padding-right:3px}
.result-card-scroll .round-card{margin-top:3px}
#ui .practice-undo,#ui .scorecard-shortcut{min-width:44px;min-height:44px;display:grid;place-items:center}
.tour-card{width:100%;display:flex;align-items:center;gap:15px;text-align:left;margin-top:22px;padding:16px 18px;border:1px solid var(--accent);border-radius:10px;background:var(--pale)}
.tour-card>svg:first-child{color:var(--accent);width:26px;height:26px}
.tour-card>svg:last-child{margin-left:auto;width:18px}
.tour-card span{display:grid;gap:5px}
.tour-card strong{font-family:Cormorant,Georgia,serif;font-size:26px;font-weight:600;line-height:1.1}
.tour-card small{font-size:10px;line-height:1.5;color:var(--muted)}
.tour-dialog{width:650px}
.tour-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:23px}
.tour-route>div{display:flex;align-items:center;flex-direction:column;text-align:center;min-width:0;border:1px solid var(--line);border-radius:9px;padding:8px 8px 13px;background:var(--pale)}
.tour-route img,.tour-route>div>svg{width:100%;height:92px;object-fit:contain}
.tour-route small{font-size:10px;letter-spacing:2px;color:var(--accent);margin:6px 0}
.tour-route strong{font-size:11px;font-weight:700;line-height:1.5;min-height:33px;display:flex;align-items:center}
.tour-route span{font-size:10px;color:var(--muted);margin-top:5px}
.tour-facts{display:flex;justify-content:space-between;gap:20px;padding:18px 0 5px;font-size:11px;color:var(--muted)}
.tour-facts b{display:inline-block;font-size:19px;font-weight:700;margin-left:8px;color:var(--ink)}
@media(max-width:520px){.tour-card{padding:13px;gap:10px}.tour-card strong{font-size:24px}.tour-route{gap:7px}.tour-route>div{padding-inline:5px}.tour-route img,.tour-route>div>svg{height:67px}.tour-route strong{font-size:10px;min-height:45px}.tour-facts{gap:10px;font-size:10px}.tour-facts b{font-size:18px;margin-left:4px}}
@media(max-width:520px){.setting-choice-row{align-items:flex-start;flex-direction:column;gap:8px}.setting-options{width:100%}.setting-choice{flex:1}.scorecard-table{font-size:11px}.scorecard-table td,.scorecard-table tbody th{padding:9px 5px}.scorecard-table tbody th{gap:7px}.scorecard-table .course-index{min-width:22px;font-size:21px}.scorecard-table thead th{padding:7px 4px}.scorecard-dialog{padding:25px}.play-help{gap:2px}}
@media(max-height:520px) and (min-aspect-ratio:1/1){.scorecard-dialog{width:620px}.scorecard-table td,.scorecard-table tbody th{padding-block:7px}.play-help{flex-wrap:wrap}.play-help #input-hint{order:-1;flex-basis:100%}.play-help{margin-top:4px}.play-help .inline-button{padding:3px}.game-bottom:has(.network-retry:not(.hidden)) .play-help{display:none}}

/* The course is the main surface. CSS owns its rectangle; the camera reads it. */
#game{--info-width:clamp(184px,16vw,210px);--controls-width:clamp(208px,18vw,230px);--rail-edge:24px;--rail-gap:18px;--stage-top:18px;--stage-bottom:18px;--stage-left:calc(var(--info-width) + var(--rail-edge) + var(--rail-gap));--stage-right:calc(var(--controls-width) + var(--rail-edge) + var(--rail-gap));--hud-surface:color-mix(in srgb,var(--paper),transparent 3%);--hud-shadow:0 16px 48px #18372c14}
#course-stage{position:absolute;left:calc(var(--stage-left) + var(--left));right:calc(var(--stage-right) + var(--right));top:calc(var(--stage-top) + var(--top));bottom:calc(var(--stage-bottom) + var(--bottom));pointer-events:none;visibility:hidden}
#game .game-top,#game .game-bottom{position:absolute;top:50%;bottom:auto;transform:translateY(-50%);max-height:calc(100% - 36px - var(--top) - var(--bottom));max-width:none;margin:0;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--hud-surface);box-shadow:var(--hud-shadow);backdrop-filter:blur(12px);overflow:auto;scrollbar-width:thin;pointer-events:auto}
#game .game-top{left:calc(var(--rail-edge) + var(--left));right:auto;width:var(--info-width);display:flex;flex-direction:column;align-items:stretch;gap:22px;text-align:left}
#game .game-bottom{right:calc(var(--rail-edge) + var(--right));left:auto;width:var(--controls-width);text-align:left}
#game .game-utility{display:flex;align-items:center;justify-content:space-between;gap:7px}
#game .game-utility .icon-button{width:44px;height:44px;background:var(--pale);border-radius:14px;flex-shrink:0}
#game .rail-wordmark{font-family:Cormorant,Georgia,serif;font-weight:700;font-size:15px;letter-spacing:2px;display:none}
#game .game-sound{display:grid!important}
#game .hole-title{padding:0;margin:0;min-width:0;max-width:none}
#game .hole-title>span{display:block;color:var(--muted);font-size:12px;line-height:1.5;letter-spacing:1.5px;font-weight:750}
#game .hole-title h2{font-size:clamp(32px,2.7vw,40px);line-height:1.02;font-weight:600;margin:10px 0 12px;letter-spacing:-.6px;overflow-wrap:normal}
#game .hole-title small{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:13px;line-height:1.5;margin:0}
#game .hole-title .round-progress{color:var(--ink);font-weight:750}
#game .hole-title .hole-best{font-size:12px}
#game .score-pills{margin:0;padding:17px 0;display:grid;grid-template-columns:1.3fr 1fr;gap:0;border:0;border-block:1px solid var(--line);border-radius:0;background:none;box-shadow:none;backdrop-filter:none}
#game .score-pills>div{min-width:0;padding:0 8px;text-align:center}
#game .score-pills>div:first-child{padding-left:0}
#game .score-pills>div+div{border-left:1px solid var(--line)}
#game .score-pills span{font-size:12px;line-height:1.5;letter-spacing:.2px;text-transform:none;color:var(--muted);font-weight:650;white-space:nowrap}
#game .score-pills b{display:block;font-family:Manrope,Arial,sans-serif;font-size:40px;font-weight:750;line-height:1.2;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin-top:4px}
#game .score-pills>div+div b{font-size:32px;font-weight:600;margin-top:10px}
#game .round-actions{display:flex;flex-direction:column;gap:7px}
#game .rail-action{display:flex!important;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-height:46px;padding:10px 9px;border:1px solid transparent;border-radius:11px;text-align:left;font-size:13px;line-height:1.4;font-weight:650;color:var(--ink)}
#game .rail-action:hover{background:var(--pale);border-color:var(--line)}
#game .rail-action svg{width:21px;height:21px}
#game .rail-action.hidden{display:none!important}
#game .shot-panel-heading{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.5;font-weight:750;letter-spacing:.6px;color:var(--muted);margin-bottom:24px}
#game .shot-panel-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--pale);flex-shrink:0}
#game .shot-control{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;justify-content:flex-start;gap:22px;padding:0;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
#game .power-control{order:0;flex:initial;min-width:0;width:100%;padding:0}
#game .power-label{display:flex;align-items:baseline;justify-content:space-between;padding:0;font-size:14px;line-height:1.4;color:var(--ink);font-weight:650}
#game .power-label b{font-size:34px;font-weight:750;line-height:1.1;letter-spacing:-1px;color:var(--ink);font-variant-numeric:tabular-nums}
#game #power{display:block;width:100%;height:48px;min-height:48px;margin:4px 0 0;padding:0 3px;touch-action:none}
#game #power::-webkit-slider-runnable-track{height:6px;border-radius:6px;background:linear-gradient(90deg,var(--green) var(--value,40%),var(--line) var(--value,40%))}
#game #power::-webkit-slider-thumb{width:24px;height:24px;margin-top:-9px;border:4px solid var(--green);background:var(--paper);box-shadow:0 2px 7px #17362335}
#game #power::-moz-range-track{height:6px;border-radius:6px}
#game #power::-moz-range-thumb{width:16px;height:16px;border:4px solid var(--green)}
#game .power-ticks{margin-top:-3px;padding:0 13px}
#game .power-ticks i{height:4px;width:1px}
#game .direction-control{order:1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
#game .direction-label{grid-column:1/-1;font-size:14px;line-height:1.4;font-weight:650;margin-bottom:0}
#game .aim-arrow{order:initial;flex:initial;width:100%;height:52px;max-width:none;min-height:52px;border-radius:13px;background:var(--pale);border:1px solid var(--line)}
#game .aim-arrow svg{width:25px;height:25px;stroke-width:2}
#game .shot-button{order:2;flex:initial;display:flex;width:100%;min-width:0;min-height:58px;padding:0 18px;border-radius:14px;font-size:16px;line-height:1.2;font-weight:750;gap:12px;justify-content:space-between;box-shadow:0 8px 18px #17362315}
#game .shot-button svg{width:22px;height:22px}
#game .shot-status{margin-top:21px;padding-top:16px;border-top:1px solid var(--line)}
#game .status-line{margin:0;min-height:38px;font-size:13px;font-weight:650;line-height:1.5;text-align:left;color:var(--ink)}
#game .network-retry{display:block;width:100%;min-height:46px;margin:10px 0 0;border-radius:11px;font-size:13px;line-height:1.4}
#game .network-retry.hidden{display:none}
#game .play-help{min-height:0;display:block;margin:12px 0 0;font-size:12px;letter-spacing:0;line-height:1.7;color:var(--muted)}
#game .online-strip{left:var(--course-center-x,50%);top:calc(15px + var(--top));max-width:calc(100% - var(--stage-left) - var(--stage-right) - 20px);width:max-content;min-width:0;font-size:13px;line-height:1.4;gap:16px;z-index:4}
#game .hole-intro{left:var(--course-center-x,50%);top:var(--course-center-y,50%);min-width:0;width:max-content;max-width:calc(100% - var(--stage-left) - var(--stage-right) - 24px);padding:24px 28px;border-radius:18px}
#game .hole-intro small{font-size:12px;line-height:1.5;letter-spacing:1.5px}
#game .hole-intro strong{font-size:38px;line-height:1.1;margin:9px 0}
#game .hole-intro>span{display:block;font-size:14px;line-height:1.5}
#game .ball-marker{width:36px;height:36px;border:2px solid #fffde5cc;box-shadow:0 0 0 1px #183b2966,0 0 18px #fff9bb1a}
#game .ball-marker:before{width:46px;height:46px;border-color:#fffbd754}
#game .ball-marker span{width:7px;height:7px;top:-10px;background:#fff5c4;box-shadow:0 1px 3px #173023aa}
.scene-loading{left:var(--course-center-x,50%);top:var(--course-center-y,50%);font-size:14px;line-height:1.5}
body[data-screen=playing] .toast{top:auto;bottom:calc(18px + var(--bottom));left:var(--course-center-x,50%);max-width:calc(100% - 40px);font-size:13px}

/* Tablets and wide phones use two compact side panels, preserving course height. */
@media(max-width:999px) and (min-aspect-ratio:1/1),(max-height:599px) and (min-aspect-ratio:1/1){
 #game{--info-width:128px;--controls-width:170px;--rail-edge:10px;--rail-gap:10px;--stage-top:10px;--stage-bottom:10px}
 #game .game-top,#game .game-bottom{padding:12px;border-radius:17px;max-height:calc(100% - 20px - var(--top) - var(--bottom))}
 #game .game-top{gap:12px}
 #game .game-utility{gap:4px}
 #game .game-utility .icon-button{border-radius:11px}
 #game .hole-title>span{font-size:11px;letter-spacing:.5px;line-height:1.4}
 #game .hole-title h2{font-size:25px;margin:7px 0 8px;line-height:1.02}
 #game .hole-title small{font-size:12px;line-height:1.35;gap:3px}
 #game .hole-title .hole-best{display:none}
 #game .score-pills{padding:10px 0;grid-template-columns:1.25fr 1fr}
 #game .score-pills>div{padding-inline:4px}
 #game .score-pills span{font-size:11px;letter-spacing:-.2px}
 #game .score-pills b{font-size:30px;margin-top:4px}
 #game .score-pills>div+div b{font-size:25px;margin-top:8px}
 #game .round-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px}
 #game .rail-action{padding:0;min-height:44px;justify-content:center;border-color:var(--line);background:var(--pale);border-radius:10px}
 #game .rail-action-label{display:none}
 #game .shot-panel-heading{margin-bottom:12px;font-size:12px;letter-spacing:0}
 #game .shot-control{gap:12px}
 #game .power-label{font-size:13px}
 #game .power-label b{font-size:27px}
 #game #power{height:44px;min-height:44px;margin:0}
 #game .direction-control{gap:6px}
 #game .direction-label{font-size:12px}
 #game .aim-arrow{height:46px;min-height:46px;border-radius:11px}
 #game .shot-button{min-height:50px;border-radius:12px;font-size:15px;padding:0 14px}
 #game .shot-status{margin-top:12px;padding-top:10px}
 #game .status-line{font-size:12px;line-height:1.4;min-height:34px}
 #game .play-help{display:none}
 #game .hole-intro{padding:16px 20px}
 #game .hole-intro strong{font-size:30px}
}

/* A portrait phone keeps the full course width; thumb controls stay in one dock. */
@media(max-height:520px) and (min-aspect-ratio:1/1){
 #game .game-top{gap:8px;padding:10px}
 #game .hole-title>span{display:none}
 #game .hole-title h2{font-size:23px;margin:2px 0 4px}
 #game .hole-title small{line-height:1.3}
 #game .score-pills{padding-block:6px}
 #game .score-pills b{font-size:28px;margin-top:2px}
 #game .score-pills>div+div b{font-size:24px;margin-top:6px}
 #game .round-actions:has(.practice-undo:not(.hidden)) .help-shortcut{display:none!important}
}
@media(max-width:740px) and (min-aspect-ratio:1/1){
 #game{--info-width:64px;--controls-width:158px;--rail-edge:8px;--rail-gap:8px}
 #game .game-top{padding:7px 5px;gap:8px;border-radius:16px}
 #game .game-utility{justify-content:center}
 #game .game-sound,#game .hole-title>span,#game .hole-title h2,#game .help-shortcut{display:none!important}
 #game .hole-title{text-align:center}
 #game .hole-title small{font-size:12px;line-height:1.35}
 #game .score-pills{display:flex;flex-direction:column;gap:7px;padding-block:8px}
 #game .score-pills>div{padding:0}
 #game .score-pills>div+div{border-left:0;border-top:1px solid var(--line);padding-top:7px}
 #game .score-pills span{font-size:11px;letter-spacing:-.4px}
 #game .score-pills b,#game .score-pills>div+div b{font-size:27px;margin-top:2px}
 #game .round-actions{display:flex;flex-direction:column;gap:5px}
 #game .rail-action{min-height:44px;height:44px}
}
@media(max-aspect-ratio:1/1){
 #game{--stage-left:8px;--stage-right:8px;--stage-top:80px;--stage-bottom:150px;--rail-edge:8px;--hud-shadow:0 8px 26px #17302310}
 #game .game-top{left:calc(10px + var(--left));right:calc(10px + var(--right));top:calc(10px + var(--top));bottom:auto;transform:none;width:auto;max-height:none;overflow:visible;display:grid;grid-template-columns:44px minmax(0,1fr) 112px;align-items:center;gap:10px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none}
 #game .game-utility{display:block}
 #game .game-utility .icon-button{width:44px;height:48px;background:var(--hud-surface);border-radius:15px;box-shadow:var(--hud-shadow)}
 #game .game-sound{display:none!important}
 #game .hole-title{display:flex;flex-direction:column;gap:3px;padding:0}
 #game .hole-title>span{display:none}
 #game .hole-title h2{font-size:22px;line-height:1.02;letter-spacing:-.4px;margin:0;font-weight:650}
 #game .hole-title small{order:-1;display:block;font-size:12px;line-height:1.3;margin:0;white-space:nowrap}
 #game .hole-title .hole-best{display:none}
 #game .score-pills{grid-template-columns:1.35fr 1fr;padding:8px 4px;margin:0;border:1px solid var(--line);border-radius:16px;background:var(--hud-surface);box-shadow:var(--hud-shadow)}
 #game .score-pills>div{padding:0 4px;min-width:0}
 #game .score-pills>div:first-child{padding-left:0}
 #game .score-pills span{font-size:11px;line-height:1.3;letter-spacing:-.2px}
 #game .score-pills b{font-size:28px;line-height:1.1;margin-top:3px;letter-spacing:-.7px}
 #game .score-pills>div+div b{font-size:24px;margin-top:6px}
 #game .round-actions{position:fixed;left:calc(16px + var(--left));bottom:calc(12px + var(--bottom));height:44px;display:flex;flex-direction:row;gap:3px;width:auto;z-index:6}
 #game .rail-action{width:44px;height:44px;min-height:44px;padding:0;justify-content:center;gap:0;border-color:transparent;border-radius:11px;background:transparent;box-shadow:none}
 #game .rail-action-label{display:none}
 #game .rail-action svg{width:23px;height:23px}
 #game .game-bottom{left:calc(8px + var(--left));right:calc(8px + var(--right));top:auto;bottom:calc(8px + var(--bottom));transform:none;width:auto;max-width:none;max-height:none;overflow:visible;padding:12px 10px 0;border-radius:20px;background:var(--hud-surface);box-shadow:var(--hud-shadow)}
 #game .shot-panel-heading{display:none}
 #game .shot-control{display:grid;grid-template-columns:46px minmax(60px,1fr) 46px 86px;align-items:center;gap:8px;flex-wrap:nowrap;padding:0;margin:0;background:none;border:0;box-shadow:none}
 #game .power-control{grid-column:2;grid-row:1;min-width:0;padding:0;order:initial}
 #game .power-label{font-size:12px;line-height:1.4;padding:0 2px}
 #game .power-label b{font-size:20px;letter-spacing:-.4px;line-height:1.2}
 #game #power{height:44px;min-height:44px;margin:0;padding:0 3px}
 #game #power::-webkit-slider-thumb{width:24px;height:24px;margin-top:-9px}
 #game .power-ticks{display:none}
 #game .direction-control{display:contents}
 #game .direction-label{display:none}
 #game .aim-arrow{width:46px;height:54px;min-width:46px;min-height:54px;max-width:none;border-radius:13px;order:initial;flex:initial}
 #game #aim-left{grid-column:1;grid-row:1}
 #game #aim-right{grid-column:3;grid-row:1}
 #game .aim-arrow svg{width:24px;height:24px}
 #game .shot-button{grid-column:4;grid-row:1;order:initial;flex:initial;width:86px;min-width:0;min-height:58px;padding:0 10px;justify-content:center;gap:6px;font-size:14px;border-radius:14px}
 #game .shot-button svg{width:17px;height:17px}
 #game .shot-status{height:50px;min-height:50px;margin:4px 2px 0 102px;padding:0;border:0;display:flex;align-items:center;justify-content:flex-end}
 #game:has(.practice-undo:not(.hidden)) .shot-status{margin-left:145px}
 #game .status-line{font-size:12px;line-height:1.4;min-height:0;margin:0;text-align:right}
 #game .network-retry{width:auto;margin:0;min-height:44px;padding:7px 10px;font-size:12px;border-radius:10px}
 #game .shot-status:has(.network-retry:not(.hidden)) .status-line{display:none}
 #game .play-help{display:none}
 #game .hole-intro{width:max-content;min-width:0;max-width:calc(100% - 28px);padding:20px 22px;border-radius:17px}
 #game .hole-intro strong{font-size:32px}
 #game .hole-intro small{font-size:12px;letter-spacing:1px}
 #game .hole-intro>span{font-size:14px}
 #game .online-strip{top:calc(82px + var(--top));max-width:calc(100% - 24px);font-size:12px;line-height:1.4;padding:8px 12px;gap:12px}
 #game:has(.online-strip:not(.hidden)){--stage-top:124px}
 body[data-screen=playing] .toast{top:auto;bottom:calc(156px + var(--bottom));width:max-content;max-width:calc(100% - 24px);font-size:13px;padding:10px 14px}
}
@media(max-width:359px) and (max-aspect-ratio:1/1){
 #game .game-top{grid-template-columns:44px minmax(0,1fr) 102px;gap:7px;left:8px;right:8px}
 #game .hole-title h2{font-size:20px}
 #game .hole-title small{font-size:11px}
 #game .score-pills span{font-size:10px}
 #game .shot-control{grid-template-columns:44px minmax(52px,1fr) 44px 72px;gap:6px}
 #game .aim-arrow{min-width:44px;width:44px}
 #game .shot-button{width:72px;font-size:14px;padding-inline:8px}
 #game .shot-button svg{display:none}
 #game .power-label{font-size:11px;padding:0}
 #game .power-label b{font-size:18px}
 #game .game-bottom{padding-inline:8px}
}
@media(max-height:359px) and (min-aspect-ratio:1/1){
 #game{--info-width:116px;--controls-width:158px;--rail-edge:8px;--rail-gap:8px}
 #game .game-top,#game .game-bottom{padding:10px;max-height:calc(100% - 16px)}
 #game .game-top{gap:9px}
 #game .hole-title>span,#game .shot-panel-heading{display:none}
 #game .hole-title h2{font-size:23px;margin-block:4px 6px}
 #game .score-pills{padding-block:8px}
 #game .round-actions{gap:3px}
 #game .shot-control{gap:8px}
 #game .direction-label{display:none}
 #game .shot-status{margin-top:8px;padding-top:8px}
}

/* Supporting screens keep readable body copy and generous touch targets. */
#ui .dialog .dialog-sub,#ui .help-step p,#ui .setting-row{font-size:14px;line-height:1.65}
#ui .dialog .button{font-size:14px;min-height:48px}
#ui .dialog .muted-note,#ui .dialog .world-desc,#ui .dialog .setting-choice,#ui .dialog .world-tab{font-size:12px;line-height:1.55}
#ui .dialog .scorecard-note,#ui .dialog .scorecard-progress,#ui .dialog .scorecard-table small{font-size:12px;line-height:1.5}
#ui .dialog .scorecard-table{font-size:12px}
#ui .dialog .scorecard-table thead th{font-size:11px}

/* One camera button per layout: overview is always a single tap away. */
#game .game-utility{gap:4px}
#game .camera-shortcut{display:none!important}
#game .camera-utility[aria-pressed=true],#game .camera-shortcut[aria-pressed=true]{background:var(--green);color:var(--paper);border-color:var(--green)}
@media(max-width:999px) and (min-aspect-ratio:1/1),(max-height:599px) and (min-aspect-ratio:1/1){#game .game-sound{display:none!important}}
@media(max-width:740px) and (min-aspect-ratio:1/1){#game .game-utility{flex-direction:column;gap:5px}}
@media(max-aspect-ratio:1/1){
 #game .camera-utility{display:none!important}
 #game .camera-shortcut{display:flex!important}
 #game .shot-status{margin-left:149px}
 #game:has(.practice-undo:not(.hidden)) .shot-status{margin-left:193px}
}
@media(max-height:359px) and (max-width:740px) and (min-aspect-ratio:1/1){#game .hole-title{display:none}#game .game-top{gap:6px;padding:7px 5px}}
#game .cup-beacon{position:absolute;display:flex;align-items:center;gap:7px;transform:translate(-50%,-50%);padding:9px 12px;border-radius:30px;border:1px solid var(--line);background:var(--hud-surface);box-shadow:0 4px 20px #132b2528;font-size:12px;font-weight:750;line-height:1.2;pointer-events:none;white-space:nowrap;z-index:3}
#game .cup-beacon svg{width:18px;height:18px;stroke-width:1.8}
#game .cup-beacon .cup-direction{display:block;transform-origin:center}
@media(max-aspect-ratio:1/1){#game .cup-beacon{padding:8px 10px;gap:5px;font-size:12px}#game .cup-beacon svg{width:17px;height:17px}}

/* The zoomed garden can pass behind the HUD; keep mobile text on a solid card. */
@media(max-aspect-ratio:1/1){
 #game{--stage-top:96px}
 #game .game-top{top:calc(8px + var(--top));padding:8px;border:1px solid var(--line);border-radius:18px;background:var(--hud-surface);box-shadow:var(--hud-shadow);gap:8px}
 #game .game-utility .icon-button{box-shadow:none;background:transparent}
 #game .score-pills{box-shadow:none;background:transparent;border:0}
}
/* Small embedded previews still keep every primary control inside the frame. */
@media(max-width:300px) and (max-aspect-ratio:1/1){
 #game{--stage-top:86px;--stage-bottom:196px}
 #game .game-top{grid-template-columns:44px minmax(0,1fr);gap:8px}
 #game .hole-title{display:none}
 #game .score-pills{margin-left:auto;width:112px}
 #game .shot-control{grid-template-columns:44px minmax(48px,1fr) 44px;gap:6px}
 #game .shot-button{grid-column:1 / -1;grid-row:2;width:100%;min-height:44px}
 #game .shot-button svg{display:block}
 #game .shot-status{height:48px;min-height:48px;margin:0}
 #game .status-line{display:none}
 #game .round-actions{left:calc(14px + var(--left));gap:2px}
 #game .network-retry{position:absolute;bottom:52px;left:10px;right:10px}
 #game .online-strip{top:calc(88px + var(--top));font-size:11px;gap:6px}
 #game:has(.online-strip:not(.hidden)){--stage-top:132px}
}

/* A small opening caption leaves the cinematic view of the garden visible. */
#game .hole-intro{top:calc(var(--stage-top) + var(--top) + 12px);transform:translateX(-50%);padding:10px 18px;border-radius:13px;background:var(--hud-surface);box-shadow:0 6px 24px #17362316;pointer-events:none}
#game .hole-intro small{font-size:11px;line-height:1.4;letter-spacing:1px}
#game .hole-intro strong{font-size:27px;line-height:1.05;margin:4px 0}
#game .hole-intro>span{display:none}
@media(max-width:699px),(max-height:520px){
 #game .hole-intro{padding:8px 13px;top:calc(var(--stage-top) + var(--top) + 5px)}
 #game .hole-intro strong{font-size:23px}
}

/* Keep the editorial menu readable over the new grass surroundings. */
#menu::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 94%,transparent) 29%,color-mix(in srgb,var(--paper) 78%,transparent) 42%,transparent 69%),linear-gradient(0deg,var(--paper) 0%,transparent 22%,transparent 82%,color-mix(in srgb,var(--paper) 80%,transparent) 100%)}
@media(max-width:759px),(max-aspect-ratio:5/4){
 #menu::before{background:linear-gradient(180deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 90%,transparent) 18%,transparent 35%,transparent 58%,color-mix(in srgb,var(--paper) 95%,transparent) 73%,var(--paper) 100%)}
}

/* Six collections remain easy to scan inside the course picker. */
#ui .dialog .world-tabs.garden-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
#ui .dialog .garden-tabs .world-tab{min-width:0;min-height:44px;padding:10px 12px;white-space:normal;line-height:1.4;overflow-wrap:break-word}
#ui .dialog .tour-route.garden-route{grid-template-columns:repeat(3,minmax(0,1fr))}
#ui .dialog .course-help-tip{margin:14px 0 20px;padding-left:12px;border-left:2px solid var(--accent)}
#ui .dialog .course-help-tip h3{font-size:13px;line-height:1.5;margin-bottom:5px}
#ui .dialog .course-help-tip p{font-size:13px;line-height:1.65;color:var(--muted)}
@media(max-width:599px){
 #ui .dialog .world-tabs.garden-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 #ui .dialog .garden-tabs .world-tab{padding:9px 8px;font-size:12px}
 #ui .dialog .tour-route.garden-route{grid-template-columns:repeat(2,minmax(0,1fr))}
}
