:root{color-scheme:dark;--ink:#061f26;--panel:#0b3036;--cream:#fff0ce;--mint:#9cddc5;--coral:#ff4f70;--muted:#acc6c2;--line:#a2d4c32e;--display:Impact,'Arial Black','Arial Narrow',sans-serif;font-family:Arial,Helvetica,sans-serif;color:var(--cream);background:var(--ink)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button,a,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--mint);outline-offset:5px}button{transition:transform .16s,background .16s,box-shadow .16s}button:hover:not(:disabled){transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:wait;opacity:.65}button,input,select{border-radius:7px}button{letter-spacing:1.2px;font-weight:800}select{padding:12px;background:#0b3036;color:var(--cream);border:1px solid #99c8b65c;cursor:pointer}input[type=range]{accent-color:var(--coral);cursor:ew-resize}input[type=checkbox]{accent-color:var(--coral);width:24px;height:24px;cursor:pointer}.hidden{display:none!important}.primary,.secondary{min-height:48px;padding:15px 20px;border:2px solid var(--cream);font-weight:900;font-size:13px;letter-spacing:1.5px;text-align:center}.primary{background:linear-gradient(#ff627e,#e83357);box-shadow:0 5px 0 #90233e,0 9px 25px #0004;border-color:#ffdfb5}.primary:hover:not(:disabled){background:linear-gradient(#ff7890,#f44768);box-shadow:0 7px 0 #90233e,0 12px 25px #0005}.secondary{background:#092b33ba;border-color:#f8e4bfaa;box-shadow:0 3px 0 #00171e}.secondary:hover{background:#19474b}.wide{display:flex;align-items:center;justify-content:center;gap:15px;width:100%;margin-top:16px}.text-button,.icon-button{border:0;background:transparent;color:var(--cream)}.text-button{font-size:10px;letter-spacing:1.5px;padding:10px}.icon-button{font-size:30px;width:40px;height:40px;line-height:1}.kicker{font-weight:800;font-size:10px;letter-spacing:1.8px;color:var(--mint)}kbd{display:inline-block;border:1px solid #e0e8d86b;background:#f6edcf12;border-radius:4px;padding:4px 6px;font:700 10px Arial;color:var(--cream);white-space:nowrap}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none;cursor:grab}#world:active{cursor:grabbing}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,#00192380)}#damage{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 150px var(--coral);opacity:0;transition:opacity .15s}.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:32px;background:#02191ed9;backdrop-filter:blur(12px);overflow:auto;animation:reveal .25s ease-out}.title-screen{padding:0;background:#031e26;backdrop-filter:none;display:block}.title-art,.title-shade{position:absolute;inset:0;pointer-events:none}.title-art{background:url('../assets/ui/title-city-v2.png') center/cover no-repeat;animation:art-in 1.2s ease-out both}.title-shade{background:linear-gradient(90deg,#001d2699,transparent 65%),linear-gradient(0deg,#00151dcc,transparent 18%)}.intro-card{position:relative;margin-left:5.2vw;width:min(36vw,510px);min-width:355px;min-height:calc(100dvh - 90px);display:flex;flex-direction:column;justify-content:center;padding:38px 0 50px}.edition{font-size:10px;letter-spacing:2.5px;font-weight:700;color:var(--mint);display:flex;gap:10px;align-items:center}.live-dot,.broadcast i{width:6px;height:6px;border-radius:50%;background:var(--coral);display:inline-block;box-shadow:0 0 14px var(--coral)}.game-logo{font-family:var(--display);font-style:italic;font-weight:900;line-height:.85;letter-spacing:-2px;margin:36px 0 15px;text-shadow:0 5px 0 #c5294a,0 10px 24px #0008;transform:rotate(-3deg)}.game-logo>span{display:block;font-size:clamp(38px,4.7vw,76px);white-space:nowrap}.game-logo>b{display:block;font-size:clamp(72px,7.8vw,128px);letter-spacing:-3px;margin-top:10px}.logo-flag{display:inline-block;width:1.18em;height:1.25em;vertical-align:-.2em;margin-left:.12em;overflow:visible;filter:drop-shadow(0 3px 0 #702b3d)}.tagline{font:italic 18px Georgia,serif;text-align:center;margin:14px 0 34px}.trial-ticket{background:var(--mint);color:#082d32;padding:9px 18px;font:bold 11px monospace;letter-spacing:3px;display:table;transform:rotate(-2deg);clip-path:polygon(2% 0,98% 0,100% 13%,98% 25%,100% 38%,98% 50%,100% 63%,98% 75%,100% 88%,98% 100%,2% 100%,0 88%,2% 75%,0 63%,2% 50%,0 38%,2% 25%,0 13%);margin:0 auto 16px}.play-button{width:100%;display:flex;justify-content:space-between;align-items:center;font-family:var(--display);font-size:clamp(22px,2.5vw,38px);letter-spacing:2px;min-height:76px;border-radius:10px;padding:18px 24px}.menu-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.menu-row button{padding:15px 8px;font-size:12px}#load-status{color:var(--mint);font-size:11px;line-height:1.4;margin:16px 0 0;text-align:center}.mode-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 10px}.mode-choice>span{font-size:9px;letter-spacing:1.4px;color:var(--muted)}.mode-choice select{font-size:12px;padding:10px 8px;max-width:230px}.personal-best{font-size:11px;color:var(--mint);text-align:right;min-height:15px}.title-footer{position:absolute;bottom:24px;left:5.2vw;right:3vw;display:flex;justify-content:space-between;align-items:center;gap:16px;font:10px monospace;letter-spacing:2px;color:var(--mint)}.title-footer>div{display:flex;align-items:center;gap:24px}.title-footer b{background:var(--coral);color:var(--cream);padding:5px 7px;border-radius:3px;margin-left:8px}.desktop-note{position:absolute;right:3vw;top:26px;font:10px monospace;letter-spacing:2px;color:#fff0cead}
.menu-sheet,.result-card{position:relative;width:min(760px,100%);background:linear-gradient(135deg,#164347,#082a32);border:1px solid #a1d7c568;border-top:5px solid var(--coral);border-radius:16px;padding:30px 38px;box-shadow:0 25px 100px #0008}.sheet-top{display:flex;align-items:center;justify-content:space-between}.menu-sheet h2,.result-card h2{font:clamp(36px,4vw,54px)/1 var(--display);letter-spacing:1px;margin:17px 0 24px}.sheet-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:25px}.sheet-tabs button{background:none;border:1px solid transparent;border-radius:4px;padding:10px;font-size:10px;color:var(--muted)}.sheet-tabs button.active{background:var(--mint);color:var(--ink)}.menu-sheet p,.result-card p{font-size:13px;line-height:1.8;color:#c3d8d0}.menu-sheet .lead{color:var(--cream);font-size:18px;font-weight:600;margin:16px 0 8px}.pause-emblem{font:bold 52px var(--display);color:var(--mint);width:88px;height:88px;border:2px solid var(--mint);border-radius:50%;display:grid;place-items:center;margin:24px auto}.menu-sheet [data-sheet=pause],.menu-sheet [data-sheet=confirm]{text-align:center}.menu-sheet [data-sheet=pause] button,.menu-sheet [data-sheet=confirm] button{max-width:420px;margin-left:auto;margin-right:auto}.guide-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.guide-cards article{background:#011c243d;padding:18px 16px;border:1px solid var(--line);border-radius:8px}.guide-cards article>b{font:28px var(--display);color:var(--coral)}.guide-cards h3{font:20px var(--display);letter-spacing:.3px;margin:11px 0}.guide-cards p{font-size:12px;margin:0}.guide-cards kbd{font-size:9px}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:24px 0;font-size:12px;color:var(--muted)}.control-grid span{display:flex;gap:12px;align-items:center}.control-grid kbd{min-width:70px;text-align:center}.rules-note{font-size:11px!important;line-height:1.8;color:#b3cbc5;background:#001c234d;border-left:3px solid var(--mint);padding:14px 16px;border-radius:3px}.rules-note b{color:var(--cream)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:20px 0}.setting-row b{font-size:11px;letter-spacing:1px}.setting-row small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.setting-row input[type=range]{width:42%;height:8px}.setting-row select{min-width:145px}.settings-note{font-size:11px!important;color:var(--mint)!important;margin-top:22px}.credits-links{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.credits-links a{color:var(--mint);font-size:12px;padding:15px;border:1px solid var(--line);border-radius:6px;text-decoration:none}.result-card{max-width:580px;text-align:center;padding:40px}.result-emblem{font-size:70px;color:var(--mint);margin-top:25px}.result-card h2{margin:15px 0}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:24px 0}.result-stats strong{display:block;font:36px var(--display);letter-spacing:1px}.result-stats span{display:block;color:var(--mint);font-size:9px;letter-spacing:1.5px;margin-top:6px}#result-best{color:var(--mint);font-size:12px}#result[data-outcome=expired] .result-emblem{color:var(--coral)}body[data-screen=menu] #game-hud{opacity:.25;pointer-events:none}.reduced-motion *, .reduced-motion *::before,.reduced-motion *::after{animation:none!important;transition:none!important}
@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes art-in{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@keyframes urgent{50%{opacity:.65}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-height:800px){.intro-card{padding:30px 0 65px}.game-logo{margin-top:24px}.game-logo>b{font-size:clamp(64px,7vw,110px)}.game-logo>span{font-size:clamp(38px,4vw,65px)}.tagline{margin:12px 0 20px}.play-button{min-height:65px}.mode-choice{margin-top:18px}.menu-sheet{padding:20px 30px}#putting{bottom:95px;padding:15px}#putting h2{margin:8px 0 15px;font-size:26px}.prediction-card{display:none}#putting .power-tip{font-size:9px}.mission{top:95px}.timer{top:100px}#mechanism{top:240px}}
@media(max-width:1050px){.intro-card{margin-left:5vw;width:40vw;min-width:330px}.title-art{background-position:60% center}.title-shade{background:linear-gradient(90deg,#001b26e8,#001b2670 48%,transparent 75%)}.broadcast{display:none}.mission{width:235px}.mission h1{font-size:24px}.mission p{font-size:11px}#mechanism{width:225px}.timer{min-width:225px}#toast{width:35vw;top:72px}#toast p{font-size:12px}#controls{max-width:520px;gap:8px}#putting{width:275px}.desktop-note{font-size:8px}.title-footer{font-size:8px;letter-spacing:1px}.mode-choice{align-items:start;flex-direction:column;gap:8px}.mode-choice select{width:100%;max-width:none}.personal-best{text-align:left}.game-logo>b{font-size:9vw}.game-logo>span{font-size:5.5vw}}
@media(max-width:700px){.title-art{background-position:70% center;opacity:.7}.title-shade{background:linear-gradient(90deg,#001b26f5,#001b2670)}.intro-card{margin:0 auto;width:min(84vw,420px);min-width:0;padding:50px 0 100px;min-height:100dvh}.game-logo>b{font-size:clamp(70px,18vw,110px)}.game-logo>span{font-size:clamp(40px,10vw,70px)}.edition{font-size:8px}.desktop-note{top:16px;right:16px;font-size:8px}.title-footer{bottom:14px;left:8vw;right:8vw;align-items:start}.title-footer>span{max-width:140px;line-height:1.6}.title-footer>div{gap:8px;flex-wrap:wrap;justify-content:end}.title-footer .text-button{font-size:8px}.overlay{padding:14px}.title-screen{padding:0}.menu-sheet,.result-card{padding:22px}.guide-cards{grid-template-columns:1fr}.guide-cards article{padding:12px;display:grid;grid-template-columns:35px 1fr;gap:5px 10px}.guide-cards h3{margin:3px 0}.guide-cards p{grid-column:2}.sheet-tabs{gap:0}.sheet-tabs button{font-size:8px;padding:10px 8px}.control-grid{font-size:10px;gap:10px}.control-grid span{gap:6px}.control-grid kbd{min-width:50px;font-size:8px}.setting-row{gap:10px}.setting-row select{min-width:110px;font-size:12px}.credits-links{grid-template-columns:1fr}.menu-sheet h2{font-size:36px}.mission{left:15px;top:85px;width:190px}.mission h1{font-size:20px}.mission .kicker{font-size:8px}.mission p{font-size:10px}.steps{gap:2px}.steps b{display:none}.timer{right:15px;top:90px;min-width:170px;padding:12px;gap:8px}.timer span{font-size:7px}.timer strong{font-size:29px}.timer .stroke-stat{padding-left:10px}.timer #time{font-size:24px}.timer small{font-size:7px}header{left:15px;right:15px;top:18px}.brand{font-size:13px}.brand>b{font-size:22px}.top-actions button{padding:8px;font-size:8px}.top-actions kbd{display:none}#mechanism{right:15px;top:208px;width:170px;padding:10px}#mechanism p{font-size:9px}#mechanism strong{font-size:16px}#mechanism>span{font-size:7px}footer{left:15px;right:15px;bottom:15px}#controls{display:none}.player-card{padding:6px}.player-card b{font-size:8px}#putting{right:15px;bottom:85px;width:250px;max-height:calc(100dvh - 200px)}#toast{top:310px;width:80vw}#interact{bottom:90px;max-width:90vw}#interact span{font-size:9px}.result-stats strong{font-size:30px}}

.title-screen{place-items:normal}.intro-card{margin-right:auto}


.overlay{align-items:safe center}.title-screen{align-items:normal}@media(max-height:620px){.title-screen .intro-card{min-height:620px}.title-footer{position:relative;bottom:auto;padding-bottom:20px;width:90%;right:auto}}


/* Keep the complete menu and footer reachable on short desktop windows. */
@media(min-width:701px) and (max-height:700px){.title-screen .intro-card{min-height:100dvh;padding:16px 0 56px}.game-logo{margin:12px 0 8px}.game-logo>span{font-size:34px}.game-logo>b{font-size:64px;margin-top:8px}.tagline{font-size:16px;margin:5px 0 12px}.trial-ticket{padding:6px 14px;margin-bottom:8px;font-size:10px}.play-button{min-height:50px;padding:12px 20px;font-size:26px}#load-status{margin-top:8px;font-size:10px}.menu-row{margin-top:10px}.menu-row button{min-height:40px;padding:10px 8px;font-size:10px}.mode-choice{flex-direction:row;align-items:center;margin:10px 0 6px;gap:8px}.mode-choice>span{font-size:8px}.mode-choice select{width:auto;max-width:210px;font-size:11px;padding:8px}.personal-best{font-size:10px;text-align:right}.title-footer{position:absolute;bottom:15px;right:3vw;width:auto;margin-top:0;padding-bottom:0}.desktop-note{top:17px}}

/* Camera-only inspection; gameplay remains paused until returning. */
