@font-face{font-family:Manrope;src:url('./assets/cinematic/manrope.woff2') format('woff2');font-display:swap;font-weight:400 700}
@font-face{font-family:Barlow;src:url('./assets/cinematic/barlow.woff2') format('woff2');font-display:swap;font-weight:400 600}
:root{color-scheme:dark;--black:#050708;--panel:#111514;--white:#ede9dc;--muted:#9a9e97;--line:#e9e6d32b;--ice:#a6bab6;--gold:#b8a47b;background:var(--black);color:var(--white);font-family:Manrope,Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{min-height:44px;padding:11px 18px;color:inherit;background:none;border:1px solid var(--line);border-radius:0;cursor:pointer;transition:color .25s,background .25s,opacity .3s}button:hover{color:#fff;background:#e9e6d30c}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:1px solid #cbd6c4;outline-offset:5px}button:disabled{opacity:.4;cursor:default}.primary{background:var(--white);color:#141914;border-color:var(--white);display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:11px;letter-spacing:1.3px;font-weight:600;text-transform:uppercase}.primary:hover{background:#fffdf0;color:#050708}[hidden]{display:none!important}#game{height:100dvh;min-height:480px;position:relative;overflow:hidden;background:#050708}canvas{width:100%;height:100%;display:block;touch-action:none}.eyebrow{font:500 9px Manrope,Arial,sans-serif;letter-spacing:2.5px;text-transform:uppercase;color:#bfc4b8;line-height:1.6}.brand{display:flex;align-items:center;gap:14px;letter-spacing:2.5px;font-size:10px;font-weight:600}.brand-mark{font:30px Barlow,Arial,sans-serif;letter-spacing:-3px}.brand-divider{height:16px;width:1px;background:var(--line);margin:0 8px}
.entry{position:absolute;inset:0;background:linear-gradient(90deg,#050708d9,#05070800 75%),url('./assets/cinematic/horizon.webp') center/cover}.entry:before{content:'';position:absolute;width:135px;height:135px;right:18%;top:17%;background:url('./assets/cinematic/earth.webp') center/contain no-repeat}.entry:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#050708a1);pointer-events:none}.entry>.brand{position:absolute;top:37px;left:4.5%}.entry-copy{position:absolute;top:29%;left:8%;z-index:1}.entry .eyebrow{color:#c5c8bb}.entry h1{font:400 clamp(74px,8vw,124px)/.94 Barlow,'Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:-1px;margin:23px 0}.entry h1 span{color:#a8bdb6}.intro{font:300 16px/1.7 Manrope,Arial,sans-serif;color:#b7bbb0;letter-spacing:.2px}.entry-button{width:263px;min-height:55px;margin-top:29px}.entry-button span{font-size:23px;font-weight:300}.entry-note{font-size:9px;color:#999f96;margin-top:18px}.entry-footer{position:absolute;bottom:30px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;z-index:1;font:8px Manrope,sans-serif;letter-spacing:2.5px;color:#a6afa4}.entry-footer i{display:inline-block;background:#9ca699;width:48px;height:1px;margin:3px 15px}
.hud{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:32px;padding:24px 35px;background:linear-gradient(#050708bd,transparent);min-height:94px;z-index:2}.brand.small{border:0;padding:0;font:30px Barlow,Arial,sans-serif;letter-spacing:-2px;white-space:nowrap}.brand.small span{font:9px Manrope,sans-serif;letter-spacing:2.5px;margin-left:10px}.hole-info{padding-left:30px;border-left:1px solid var(--line)}.hole-info h2{font:400 25px Barlow,Arial,sans-serif;letter-spacing:.3px;margin:3px 0 0}.hole-info .eyebrow{font-size:8px;letter-spacing:2px}.telemetry{display:flex;gap:30px;margin-left:auto}.telemetry>div{display:flex;align-items:baseline;gap:10px}.telemetry span{font-size:8px;color:#8e988d;letter-spacing:1.4px}.telemetry b{font:400 27px Barlow,sans-serif;font-variant-numeric:tabular-nums}.telemetry small{font:9px Manrope,sans-serif;color:#939d91}.icon-button{width:44px;padding:0;font:24px Barlow,sans-serif;border-color:transparent;background:none}.course-caption{position:absolute;left:35px;top:122px}.course-caption .eyebrow{font-size:7px;color:#818e82}.course-caption p{font:italic 14px Georgia,serif;color:#b3b8aa;max-width:260px;line-height:1.6;margin:8px 0}.side-actions{position:absolute;right:36px;top:116px;display:flex;gap:18px}.side-actions button{border:0;padding:4px 0;font-size:8px;letter-spacing:1px;color:#9da99b;min-height:36px}.side-actions span{display:none}.controls{position:absolute;left:36px;right:36px;bottom:22px;padding:0;border:0;border-radius:0;z-index:3;background:none;transform:none;width:auto;transition:opacity .45s,transform .6s}.controls:before{content:'';position:absolute;z-index:-1;inset:-50px -36px -30px;background:linear-gradient(transparent,#050708ed 42%);pointer-events:none}.control-tabs{display:flex;align-items:center;gap:26px;border-bottom:1px solid var(--line);height:40px}.control-tabs button{border:0;padding:0;min-height:40px;font:9px Manrope,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#919c90}.control-tabs .active{color:var(--white)}.control-tabs .active:before{content:'';display:inline-block;width:4px;height:4px;background:#d5ddcb;border-radius:50%;margin-right:9px;vertical-align:middle}.lie{margin-left:auto;font-size:8px;letter-spacing:1.3px;color:#8f9b8f;text-transform:uppercase}#shot-deck{display:grid;grid-template-columns:40% 1fr;gap:10px 45px;align-items:center}.clubs{display:flex;gap:0}.clubs button{flex:1;min-height:54px;border:0;font:400 21px Barlow,sans-serif;padding:8px 16px;color:#a0a69a;text-align:left;position:relative}.clubs button:first-child{padding-left:0}.clubs button span{display:none}.clubs button.selected{color:#f1eedf}.clubs button.selected:after{content:'';position:absolute;left:16px;bottom:6px;width:18px;height:1px;background:#b7c9b8}.clubs button:first-child.selected:after{left:0}.shot-inputs{display:flex;align-items:center;gap:29px;padding-top:11px}.shot-inputs label{flex:1;font-size:7px;letter-spacing:1.8px;color:#9aa593}.shot-inputs output{float:right;font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:.5px;color:#e3e5d6}.shot-inputs input{width:100%;display:block;appearance:none;-webkit-appearance:none;height:30px;margin:2px 0 0;background:transparent;cursor:pointer}.shot-inputs input::-webkit-slider-runnable-track{height:1px;background:#b7c3ac66}.shot-inputs input::-webkit-slider-thumb{appearance:none;width:7px;height:7px;background:#e5e9d8;border-radius:50%;margin-top:-3px;box-shadow:0 0 0 4px #e4e7d708}.shot-inputs input::-moz-range-track{height:1px;background:#b7c3ac66}.shot-inputs input::-moz-range-thumb{width:7px;height:7px;background:#e5e9d8;border:0}.swing{min-width:190px;min-height:47px;position:relative;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;font-size:9px;padding:11px 19px;letter-spacing:1px}.swing span{font:400 16px Barlow,sans-serif;letter-spacing:0}.swing i{position:absolute;bottom:0;left:0;width:0;height:3px;background:#587266}.control-help{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;font-size:8px;color:#747f74;letter-spacing:.2px;padding-top:0}.control-help button{min-height:25px;font-size:8px;color:#7f8a7b;border:0;padding:0}.flight-banner{position:absolute;right:38px;top:39%;text-align:right;display:flex;flex-direction:column;gap:8px;text-shadow:0 2px 15px #050708;pointer-events:none}.flight-banner .eyebrow{font-size:8px;color:#b7c2b1}.flight-banner strong{font:300 66px/.9 Barlow,sans-serif;letter-spacing:-1px}.flight-banner small{font:10px Manrope,sans-serif;letter-spacing:0;color:#a2ad9d}.flight-banner>span:last-child{font-size:9px;color:#a8b2a1}.toast{position:absolute;left:50%;bottom:180px;transform:translateX(-50%);padding:10px 18px;border:0;border-top:1px solid #d4dbc744;max-width:90%;background:linear-gradient(90deg,transparent,#060908c9,transparent);font-size:10px;color:#dce2d2;white-space:normal;text-align:center;z-index:4;animation:notice .5s ease}.controls:focus-within{opacity:1!important}#game[data-phase=flight] .controls{opacity:.28;transform:translateY(4px)}#game[data-phase=flight] .course-caption{opacity:.15}#game[data-charging=true] .course-caption{opacity:.1}#game[data-charging=true] .swing{background:#c7d4c6}#game.arrival .hud{animation:arrive 1.3s ease both}#game.arrival .controls{animation:arrive 1.6s ease both}#game.arrival .course-caption{animation:arrive 2s ease both}
#explore-deck{padding:14px 0 3px;display:flex;gap:25px;align-items:center}#explore-deck p{max-width:320px;font-size:11px;line-height:1.65;color:#a7b29f}.explore-buttons{display:flex;gap:13px;margin-left:auto}.explore-buttons button{font-size:9px;letter-spacing:.3px;min-height:44px;border-color:#e5e7d42b}#discovery-count{font-size:8px;color:#9caa93}.fallback{position:absolute;inset:0;background:#050708;padding:15vh 10%;z-index:99}.fallback h1{font:50px Barlow,sans-serif;max-width:600px}
dialog{color:var(--white);background:#101411;border:1px solid #b7c7b12b;border-radius:0;max-height:calc(100dvh - 40px);width:min(570px,calc(100% - 32px));padding:30px;overflow:auto;scrollbar-width:thin;scrollbar-color:#596953 #0b100d}dialog::backdrop{background:#030504c9;backdrop-filter:blur(9px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.dialog-header .eyebrow{margin:0 0 7px;color:#929e87}.dialog-header h2{font:400 43px Barlow,sans-serif;margin:0;letter-spacing:-.4px}.dialog-header .icon-button{flex-shrink:0}.map-dialog{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;padding:0;border:0;background:#080d0b;overflow:hidden}.map-dialog .dialog-header{position:absolute;top:33px;left:42px;right:35px;z-index:3;pointer-events:none}.map-dialog .dialog-header .icon-button{pointer-events:auto}.map-dialog .dialog-header h2{font-size:49px;line-height:1.05}.map-dialog .dialog-header .eyebrow{color:#b5c0aa;font-size:8px}.map-layout{height:100%;position:relative}.map-scroll{position:absolute;inset:0;overflow:auto;cursor:grab;scrollbar-width:none;touch-action:pan-x pan-y;background:#242b26}.map-scroll::-webkit-scrollbar{display:none}.map-board{position:relative;width:1400px;height:930px;background:linear-gradient(#0b110b22,#0b110b44),url('./assets/cinematic/course-map.webp') center/cover;transform-origin:top left}.map-board:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 53% 46%,transparent 20%,#030603ad 96%)}.map-board svg{position:absolute;inset:0;width:1050px;height:700px;opacity:.8}.map-board path{fill:none;stroke:#ede9d1a6;stroke-width:1;stroke-dasharray:2 7}.map-node{position:absolute;width:44px;height:44px;min-height:44px;border:1px solid #d5dec39c;border-radius:50%;background:#131e16a3;font:400 17px Barlow,sans-serif;z-index:1;padding:0;box-shadow:0 4px 16px #0004}.map-node.selected{background:#e9e8d7;color:#182315;border-color:#e9e8d7;box-shadow:0 0 0 6px #e0e3cb16}.map-node.done:after{content:'✓';position:absolute;right:-6px;top:-4px;color:#e6ead3;font-size:10px;background:#273b26;width:16px;height:16px;border-radius:50%}.map-node span{position:absolute;left:50%;top:51px;transform:translateX(-50%);white-space:nowrap;font:10px Manrope,sans-serif;color:#e6e9d7;text-shadow:0 1px 7px #000}.map-label{position:absolute;top:40px;left:620px;font-size:7px;letter-spacing:5px;color:#aebda688}.hole-card{position:absolute;bottom:80px;left:48px;width:320px;z-index:3;padding:30px 0 0;background:none}.hole-card:before{content:'';position:absolute;inset:-150px -100px -80px -50px;z-index:-1;background:radial-gradient(ellipse at 30% 65%,#050a06e8 25%,#050a0600 72%);pointer-events:none}.hole-card .eyebrow{font-size:8px;color:#a5b298}.hole-card h3{font:400 61px/.95 Barlow,sans-serif;margin:13px 0 17px;letter-spacing:-.6px}.hole-card>p:not(.eyebrow){font-size:11px;color:#b7c0ad;line-height:1.7;max-width:285px}.hole-card-stats{display:flex;gap:38px;border-top:1px solid #d0d8c136;padding:18px 0 22px;margin-top:25px}.hole-card-stats>div{display:grid;gap:8px}.hole-card-stats span{font-size:7px;color:#9cae91;letter-spacing:1.4px}.hole-card-stats b{font:400 26px Barlow,sans-serif}.hole-card .primary{width:265px;min-height:49px}.hole-card .map-hint{font-size:8px!important;color:#8b9e80!important;margin-top:15px}.map-footer{position:absolute;bottom:23px;left:48px;right:38px;display:flex;align-items:center;justify-content:space-between;z-index:3;font-size:8px;letter-spacing:1px;color:#afbea5}.map-footer button{border:0;font-size:9px;padding:8px 0}.map-earth{display:none}
table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:12px 6px;text-align:center;border-bottom:1px solid var(--line)}th{font-size:8px;color:#929f87;font-weight:400;text-transform:uppercase;letter-spacing:1px}th:first-child,td:first-child{text-align:left}td:first-child small{margin-left:8px;font-size:10px;color:#9ca990}tfoot{color:#c9d6bd}#score-dialog>p{font-size:11px;line-height:1.7;color:#9aa88f}#score-dialog>.primary{width:100%;margin-top:24px}.setting{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);font-size:12px}.setting input{width:20px;height:20px;accent-color:#bdcdb2}.settings-help{font-size:11px;line-height:1.8;color:#9ba88e}.settings-actions{display:flex;gap:8px;margin-top:25px}.settings-actions button{flex:1;font-size:9px}.settings-actions .primary{justify-content:center}#result-dialog{text-align:center;padding:48px 34px;background:linear-gradient(145deg,#162016,#090d09)}#result-dialog h2{font:400 62px/.98 Barlow,sans-serif;margin:20px 0}.result-score{font:300 87px Barlow,sans-serif;margin:20px 0;color:#d3dcc8}.result-score small{display:block;font:8px Manrope,sans-serif;letter-spacing:2px;color:#97a38a}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:28px}.result-actions .primary{grid-column:1/-1}.result-actions button{font-size:10px;letter-spacing:.4px}#result-copy{font-size:11px;line-height:1.9;color:#aeb9a1}#result-dialog[open]{animation:arrive .6s ease}dialog.round-complete{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border:0;background:linear-gradient(90deg,#050805ef,#05080544),url('./assets/cinematic/horizon.webp') center/cover!important;padding:clamp(40px,10vh,110px) 24px!important}.round-complete .result-actions{max-width:440px;margin:30px auto 0}.round-complete #result-title{font-size:clamp(54px,7vw,94px)}.round-complete #result-copy{max-width:440px;margin:0 auto}.round-complete[open]{animation:arrive 1.4s ease!important}
@keyframes arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes notice{from{opacity:0}to{opacity:1}}
@media(min-width:1700px){.controls{left:55px;right:55px;bottom:32px}.hud{padding:32px 55px}.course-caption{left:55px;top:140px}.side-actions{right:55px;top:135px}}
@media(min-width:651px) and (max-width:1100px){.hud{padding:22px 25px;gap:21px}.brand.small span{display:none}.hole-info{padding-left:20px}.telemetry{gap:21px}.telemetry>div{display:grid;gap:4px}.telemetry b{font-size:25px}.course-caption{left:26px;top:124px}.controls{left:27px;right:27px;bottom:29px}#shot-deck{grid-template-columns:1fr;gap:0}.clubs{max-width:470px;margin:5px auto 0;width:100%}.clubs button{text-align:center}.clubs button:first-child{padding-left:16px}.clubs button.selected:after,.clubs button:first-child.selected:after{left:calc(50% - 9px)}.shot-inputs{gap:35px;padding-top:9px}.swing{min-width:210px}.control-help{padding-top:7px}.side-actions{right:27px;top:133px}.map-dialog .dialog-header{left:30px;top:30px}.hole-card{left:32px;bottom:78px}.map-footer{left:32px}.entry-copy{left:8%;top:31%}.entry h1{font-size:100px}}
@media(max-width:650px){#game{min-height:480px}.entry{background-position:54% center}.entry>.brand{left:25px;top:26px;font-size:8px;gap:9px}.brand-mark{font-size:28px}.entry:before{width:88px;height:88px;right:13%;top:19%}.entry-copy{left:28px;right:22px;top:35%}.entry h1{font-size:75px;line-height:.94;margin:17px 0 22px}.entry .eyebrow{font-size:7px;letter-spacing:2px}.intro{font-size:12px;line-height:1.8}.entry-button{width:244px;min-height:50px;margin-top:27px;font-size:9px}.entry-note{font-size:8px;margin-top:15px}.entry-footer{left:27px;bottom:25px;font-size:7px;letter-spacing:1.5px}.entry-footer span:last-child{display:none}.entry-footer i{width:30px;margin:3px 10px}.hud{padding:18px 18px 14px;gap:13px;flex-wrap:wrap;min-height:115px;background:linear-gradient(#050708d9,transparent)}.brand.small{font-size:27px;min-height:38px}.brand.small span{display:none}.hole-info{border:0;padding:0;flex:1}.hole-info .eyebrow{font-size:7px;letter-spacing:1.5px}.hole-info h2{font-size:22px;margin:2px 0;letter-spacing:0}.hud .icon-button{width:35px;font-size:24px}.telemetry{order:4;flex-basis:100%;margin:0;padding-left:34px;gap:24px}.telemetry>div{gap:7px}.telemetry span{font-size:7px;letter-spacing:.8px}.telemetry b{font-size:20px}.telemetry small{font-size:8px}.course-caption{left:20px;top:132px;right:85px}.course-caption .eyebrow{font-size:6px;letter-spacing:1.7px}.course-caption p{font-size:11px;max-width:215px;line-height:1.5;margin-top:7px}.side-actions{right:20px;top:125px;display:block}.side-actions #score-button,.side-actions #camera-button{display:none}.side-actions button{font-size:7px;min-height:44px;letter-spacing:.6px}.controls{left:20px;right:20px;bottom:max(15px,env(safe-area-inset-bottom));padding:0}.controls:before{inset:-50px -20px -25px;background:linear-gradient(transparent,#050708f2 32%)}.control-tabs{height:38px;gap:25px}.control-tabs button{font-size:8px;min-height:38px;letter-spacing:1.5px}.lie{font-size:7px;letter-spacing:.7px}#shot-deck{grid-template-columns:1fr;gap:0}.clubs{gap:0;justify-content:space-between;margin:5px 0}.clubs button{font-size:20px;min-height:43px;text-align:center;padding:5px 7px}.clubs button:first-child{padding-left:7px}.clubs button.selected:after,.clubs button:first-child.selected:after{left:calc(50% - 8px);bottom:3px;width:16px}.shot-inputs{display:grid;grid-template-columns:1fr 1fr;gap:6px 30px;padding-top:4px}.shot-inputs label{font-size:7px;letter-spacing:1.3px}.shot-inputs output{font-size:8px}.shot-inputs input{height:25px}.swing{grid-column:1/-1;width:100%;min-height:45px;padding:10px 16px;font-size:9px;margin-top:2px}.swing span{font-size:15px}.control-help{padding-top:7px;gap:8px;font-size:7px;line-height:1.5;align-items:start}.control-help>span{max-width:210px}.control-help button{font-size:7px;min-height:22px;white-space:nowrap}.flight-banner{right:20px;top:35%;gap:6px}.flight-banner strong{font-size:46px}.flight-banner .eyebrow{font-size:7px;letter-spacing:2px}.flight-banner>span:last-child{font-size:8px}.toast{bottom:245px;width:max-content;max-width:88%;padding:10px 12px;font-size:9px}#explore-deck{display:block;padding-top:8px}#explore-deck p{font-size:10px;max-width:300px;margin:10px 0}.explore-buttons{gap:7px}.explore-buttons button{flex:1;padding:8px;font-size:8px;min-height:44px}#discovery-count{display:block;font-size:7px;margin-top:12px}.map-dialog .dialog-header{top:27px;left:24px;right:18px}.map-dialog .dialog-header h2{font-size:37px}.map-dialog .dialog-header .eyebrow{font-size:7px}.map-board{width:1050px;height:700px}.map-scroll{bottom:210px}.hole-card{left:0;right:0;bottom:60px;width:auto;padding:23px 25px 0;background:linear-gradient(#080d0b00,#080d0bf5 8%)}.hole-card:before{inset:-80px 0 -60px;background:linear-gradient(#080d0b00,#080d0b 40%)}.hole-card .eyebrow{font-size:7px;margin:0}.hole-card h3{font-size:40px;margin:7px 0 9px;max-width:300px}.hole-card>p:not(.eyebrow){font-size:10px;margin:0;max-width:300px}.hole-card-stats{padding:12px 0 14px;margin-top:16px;gap:40px}.hole-card-stats span{font-size:7px}.hole-card-stats b{font-size:23px}.hole-card-stats>div{gap:5px}.hole-card .primary{width:100%;min-height:47px;font-size:9px}.hole-card .map-hint{display:none}.map-footer{left:25px;right:25px;bottom:14px;font-size:7px;letter-spacing:.5px}.map-footer button{font-size:8px}.map-node span{font-size:10px}.map-label{display:none}dialog{padding:24px 20px;max-height:calc(100dvh - 26px)}.dialog-header h2{font-size:36px}.dialog-header .eyebrow{font-size:7px}th,td{padding:11px 5px;font-size:11px}td:first-child small{display:none}.settings-actions{flex-wrap:wrap}.settings-actions .primary{flex-basis:100%}.settings-help{font-size:10px}#result-dialog{padding:35px 23px}#result-dialog h2{font-size:51px}.result-score{font-size:76px}.result-actions button{font-size:9px}.result-score small{font-size:7px}#result-copy{font-size:10px}}
@media(max-height:650px) and (min-width:651px){.hud{padding:12px 25px;min-height:75px}.course-caption{top:90px}.side-actions{top:90px}.controls{bottom:12px}.control-tabs{height:33px}.clubs button{min-height:42px}.shot-inputs{padding-top:5px}.entry-copy{top:24%}.entry h1{font-size:70px}.entry-button{margin-top:14px}.entry-footer{bottom:18px}.map-dialog .dialog-header h2{font-size:36px}.hole-card h3{font-size:46px}.hole-card{bottom:55px}.hole-card-stats{margin-top:15px;padding:12px 0}.map-footer{bottom:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.map-board svg{translate:300px 0}.map-board{min-width:100vw}.map-board:after{background:radial-gradient(ellipse at 53% 46%,transparent 20%,#03060380 96%)}html[data-reduced=true] *{animation:none!important;transition:none!important}@media(max-width:650px){.map-board{width:1400px}}

