/* Shot UI remains crisp independently of the renderer's resolution. */
.game-shell{height:100dvh;overflow:hidden}.game-shell main{padding:0;max-width:none}.game-shell:not(.playing) .header{position:fixed;inset:0 0 auto;z-index:4;height:104px;background:linear-gradient(var(--panel),transparent);border:0;padding:0 32px;max-width:none}.game-shell .edition{display:none}
.game-shell:not(.playing) .game-layout{position:fixed;inset:0;margin:0;display:block}.game-shell:not(.playing) .course-stage{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;border-radius:0}.game-shell:not(.playing) #world{right:310px}.game-shell:not(.playing) .setup-panel{position:absolute;right:24px;top:122px;bottom:26px;width:295px;min-height:0;max-height:650px;overflow-y:auto;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 60px #10241d44;z-index:2}.game-shell:not(.playing) .setup-panel h2{font-size:30px;margin:12px 0}.game-shell:not(.playing) .stage-top{top:120px;right:340px}.game-shell:not(.playing) .stage-title{top:auto;bottom:100px;left:35px;pointer-events:auto}.game-shell:not(.playing) .stage-title h2{font-size:38px}.game-shell:not(.playing) .stage-description{display:none}.game-shell:not(.playing) .course-stamp{display:none}.game-shell:not(.playing) .stage-bottom{right:330px}.game-shell:not(.playing) .intro{position:fixed;z-index:3;left:35px;bottom:32px;display:block;margin:0;padding:0}.game-shell .intro h1,.game-shell .intro .eyebrow,.game-shell .intro-note{display:none}.game-shell #show-holes{background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:13px 20px;border-radius:9px;font-size:12px}.game-shell:not(.playing) footer{display:none}
.game-shell .course-selection{display:none}.game-shell.library-open .course-selection{display:block;position:fixed;inset:0;z-index:8;background:var(--bg);overflow:auto;padding:85px 35px 35px}.game-shell .library-close{position:fixed;right:30px;top:22px;z-index:9;background:var(--panel);padding:12px 20px;border:1px solid var(--line);border-radius:8px}
@media(max-height:760px) and (min-width:901px){.game-shell:not(.playing) .setup-panel{top:110px;padding:17px}.game-shell:not(.playing) .setup-panel .field-label{margin-top:12px}.game-shell:not(.playing) .setup-panel .panel-kicker,.game-shell:not(.playing) .setup-foot,.game-shell:not(.playing) .round-summary{display:none}.game-shell:not(.playing) .setup-panel h2{font-size:27px;margin-top:0}.game-shell:not(.playing) .mode{padding:9px}.game-shell:not(.playing) .mode-options{height:30px}.game-shell:not(.playing) .primary-button{padding:11px}}
@media(max-width:900px){.game-shell:not(.playing) .header{padding:0 15px;height:90px}.game-shell .header nav{display:none}.game-shell:not(.playing) .setup-panel{top:auto;bottom:8px;right:8px;left:8px;width:auto;height:245px;padding:12px 16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.game-shell:not(.playing) .setup-panel h2,.game-shell:not(.playing) .setup-panel .panel-kicker,.game-shell:not(.playing) .setup-panel .field-label,.game-shell:not(.playing) .setup-foot,.game-shell:not(.playing) .round-summary,.game-shell:not(.playing) #format-note,.game-shell:not(.playing) .format-label{display:none}.game-shell:not(.playing) .mode-grid{margin:0;grid-column:1}.game-shell:not(.playing) .mode{padding:6px}.game-shell:not(.playing) .mode b{display:none}.game-shell:not(.playing) #mode-options{margin:0;height:30px;font-size:10px}.game-shell:not(.playing) .player-field{padding:6px;margin:0}.game-shell:not(.playing) #world{right:0;bottom:240px}.game-shell:not(.playing) .stage-title{left:18px;bottom:320px}.game-shell:not(.playing) .stage-title h2{font-size:25px}.game-shell:not(.playing) .stage-top{left:18px;right:18px;top:92px}.game-shell:not(.playing) .stage-top .pill{display:none}.game-shell:not(.playing) .intro{left:18px;bottom:267px}.game-shell #show-holes{font-size:10px;padding:10px}.game-shell:not(.playing) .stage-bottom{display:none}.game-shell .online-launch{margin:0}.game-shell:not(.playing) .primary-button{font-size:14px;padding:10px}.game-shell:not(.playing) #round-format{min-width:0}.game-shell.library-open .course-selection{padding:80px 15px 20px}}
.online-launch{width:100%;margin-top:13px;padding:13px}.hub-link{font-size:10px;font-weight:800;color:var(--ink);text-decoration:none}
.room-code{font:42px 'Shrikhand',serif;background:var(--ink);color:var(--panel);padding:12px 24px;border-radius:10px;border:0;letter-spacing:4px}.lobby-players{margin:22px 0}.lobby-players>div{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.lobby-players strong{flex:1}.lobby-players>div>span:last-child{font-size:10px;font-weight:800;color:var(--muted)}
.join-row{display:flex;gap:10px;margin-top:24px}.join-row input{min-width:0;flex:1;padding:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px}
.locker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.locker-grid article{padding:18px 10px;background:var(--bg);border:1px solid var(--line);border-radius:12px;text-align:center}.locker-grid h3{font:18px 'Shrikhand',serif}.locker-grid small{display:block;font-size:10px;min-height:35px}.locker-grid button{padding:8px 12px;font-size:11px;width:100%}.cosmetic-ball{width:55px;height:55px;margin:0 auto 15px;border-radius:100%;background:radial-gradient(circle at 33% 25%,#fff9,transparent 55%),var(--ball);box-shadow:inset -10px -12px 12px #0004,0 10px 10px #0002}
@media(max-width:900px){.header #account-button{font-size:10px;max-width:100px}.header .hub-link{display:none}.locker-grid{grid-template-columns:repeat(2,1fr)}}
.shot-phase{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-weight:800}
.settings-list{display:grid;gap:20px;margin:28px 0}.settings-list label{display:flex;align-items:center;gap:15px;justify-content:space-between;font-size:15px}.settings-list input[type=checkbox]{width:22px;height:22px;accent-color:#ce633b}.settings-list input[type=range]{width:50%;accent-color:#ce633b}.settings-list select{padding:9px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px}
#edit-aim{margin:0 0 10px;padding:5px 0}input[type=range]:disabled{opacity:.32}
#world canvas{touch-action:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ca633b;outline-offset:4px}
.playing .aim-hint{bottom:70px;padding:9px 16px;background:#243b33ed;color:#f0e8d5;border-radius:30px;font-size:11px}
.immersive .game-layout{inset:0;gap:0;grid-template-columns:minmax(0,1fr) 286px;background:var(--panel)}
.game-shell.immersive .course-stage{border:0;border-radius:0;box-shadow:none;min-height:0;max-height:none;height:100%}
.immersive .play-panel{border:0;border-radius:0;box-shadow:none;border-left:1px solid var(--line);padding:24px 20px}
.immersive .game-hud{top:85px}.immersive .game-hud h2{font-size:26px}
.immersive .stage-top{top:22px;left:24px;right:24px}.immersive .shot-controls input{min-height:28px}
.immersive .shot-controls{border-top:1px solid var(--line)}
.immersive #turn-title{font-size:28px}.immersive .heckler p{font-size:12px}
.immersive .screen-controls #big-screen{display:none}
@media(max-width:900px) and (orientation:landscape){.immersive .game-layout{grid-template-columns:minmax(0,1fr) 225px;grid-template-rows:1fr}.immersive .play-panel{display:flex;padding:12px;flex-direction:column}.immersive .shot-controls{display:flex;flex-direction:column;gap:3px;margin-top:8px}.immersive .shot-phase{margin-bottom:5px}.immersive .game-hud h2{font-size:19px}.immersive .game-hud{top:70px}.immersive #turn-title{font-size:20px}.immersive .stage-top{top:12px;left:12px;right:12px}.immersive #shoot-button{padding:10px}.immersive .play-actions{margin-top:auto}.immersive .aim-hint{font-size:9px;max-width:80%;text-align:center}}
@media(max-width:900px) and (orientation:portrait){.immersive .game-layout{grid-template-columns:1fr;grid-template-rows:minmax(200px,1fr) 265px}.immersive .shot-phase{grid-column:1/-1}.immersive #edit-aim{grid-column:2;grid-row:1}.immersive #shoot-button{grid-row:2/6}.immersive .play-panel{border-left:0;border-top:1px solid var(--line)}.immersive .game-hud h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
@media(max-height:550px){dialog{padding:20px 24px;max-height:calc(100dvh - 28px)}dialog .modal-mascot{position:absolute;right:72px;top:16px;width:48px;height:48px}dialog h2{font-size:27px!important;margin:12px 0}dialog .modal-actions{flex-direction:row}dialog .modal-kicker{margin-top:0}dialog .round-score-scroll{max-height:115px;overflow:auto}dialog .primary-button{font-size:15px;padding:10px}.modal-close{top:14px;right:14px}}
