@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 1000;
  font-display: swap;
  src: url(lib/fonts/dm-sans-normal.woff2) format('woff2');
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(lib/fonts/dm-serif-display-italic.woff2) format('woff2');
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(lib/fonts/dm-serif-display-normal.woff2) format('woff2');
}

:root{--paper:#f5f4ec;--ink:#263c33;--muted:#768077;--lime:#d2ed7c;--line:#dcded3;--orange:#df6b3e;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:4px}button{border:0}a{color:inherit;text-decoration:none}button:disabled{cursor:wait}button:disabled.primary-button{opacity:.55} [hidden]{display:none!important}
#app{max-width:1920px;margin:auto;min-height:100svh;display:flex;flex-direction:column}.header{height:83px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 36px;gap:28px;flex-shrink:0}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand svg{width:37px;height:34px;fill:var(--ink)}.brand svg .logo-snow{fill:none;stroke:var(--paper);stroke-width:2}.brand>span{font-size:28px;letter-spacing:-1.3px;font-weight:800}.brand-dot{font-size:11px;vertical-align:top;position:relative;top:7px;left:3px;letter-spacing:0}.header-tag{font-size:9px;letter-spacing:1.6px;border-left:1px solid var(--line);padding-left:28px;font-weight:600}.header nav{margin-left:auto;display:flex;gap:31px;align-items:center}.nav-link{background:none;font-size:12px;padding:8px 0;position:relative}.nav-link.active:after{content:'';position:absolute;width:4px;height:4px;background:var(--ink);border-radius:50%;left:50%;bottom:-5px}.nav-link span{margin-left:7px}.icon-button{background:transparent;border:1px solid var(--line);border-radius:50%;width:33px;height:33px;font-size:19px;position:relative;margin-left:7px}.sound-slash{position:absolute;height:20px;width:1px;background:var(--ink);transform:rotate(40deg);top:6px;left:17px}.icon-button.enabled{background:var(--lime)}.icon-button.enabled .sound-slash{display:none}
main{display:flex;flex:1;min-height:720px}.menu{width:372px;flex:0 0 372px;padding:34px 29px 19px;display:flex;flex-direction:column;position:relative;background:var(--paper);z-index:2}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;display:flex;align-items:center;gap:8px}.tiny-star{font-size:19px;line-height:15px}.menu h1{font-size:55px;font-weight:800;line-height:1.04;letter-spacing:-3px;margin:19px 0 16px}.serif{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-style:italic}.intro{font-size:12px;line-height:1.8;color:#72796e;margin:0 0 25px;letter-spacing:-.1px}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:8px;font-weight:700;letter-spacing:1.25px;margin-bottom:11px}.section-note{font-size:9px;color:var(--muted);font-weight:400;letter-spacing:0}.riders{display:grid;grid-template-columns:1fr 1fr;gap:9px}.rider-card{background:#eeeee5;border:1px solid transparent;border-radius:5px;text-align:left;padding:0 9px 10px;overflow:hidden;transition:background .2s,border-color .2s,transform .2s;min-width:0;position:relative}.rider-card:hover{transform:translateY(-2px);background:#e6e9db}.rider-card.selected{border-color:var(--ink);background:#e5ebd6;box-shadow:inset 0 0 0 .4px var(--ink)}.portrait{height:67px;position:relative;display:flex;align-items:flex-end;justify-content:center;margin-bottom:6px;overflow:hidden}.portrait svg{height:77px;width:102px;flex-shrink:0;position:relative;top:6px}.rider-name{font-size:12px;font-weight:750;display:flex;justify-content:space-between}.selected-tick{font-size:15px;opacity:0}.selected .selected-tick{opacity:1}.rider-type{display:block;font-size:8px;white-space:nowrap;color:#748072;margin-top:3px}.mountain-label{margin-top:22px}.route-picker{border:1px solid var(--line);border-radius:5px;overflow:hidden}.route{width:100%;display:flex;align-items:center;text-align:left;gap:11px;background:transparent;padding:11px 11px;font-size:11px;font-weight:600}.route+ .route{border-top:1px solid var(--line)}.route.selected{background:#edeee3}.route small{display:block;font-size:8px;margin-top:3px;font-weight:400;color:var(--muted)}.trail-diamond{font-size:14px}.trail-diamond.double{font-size:10px;letter-spacing:-3px;width:15px}.route-check{margin-left:auto;opacity:0;font-size:13px}.route.selected .route-check{opacity:1}.primary-button{background:var(--ink);color:var(--paper);border-radius:4px;display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;min-height:49px;width:100%;padding:0 17px;transition:background .2s,transform .2s}.primary-button:hover{background:#3b5443;transform:translateY(-1px)}.primary-button span+span{font-size:24px;font-weight:400}.menu>.primary-button{margin-top:16px}.play-note{display:flex;align-items:center;gap:5px;font-size:7px;letter-spacing:.6px;font-weight:600;margin-top:12px}.play-note>span:last-child{margin-left:auto;letter-spacing:0;font-weight:400;color:var(--muted);font-size:8px}.status-dot{width:5px;height:5px;background:#628665;border-radius:50%;display:inline-block;flex-shrink:0}.menu-footer{display:flex;justify-content:space-between;font-size:6.5px;font-weight:500;letter-spacing:.8px;border-top:1px solid var(--line);padding-top:14px;margin-top:23px;color:var(--muted)}
.mountain{flex:1;position:relative;overflow:hidden;min-width:0;background:linear-gradient(#c7dce0,#eeceb5);min-height:720px}#game-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;outline:none;touch-action:none}.grain{position:absolute;inset:0;pointer-events:none;opacity:.025;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='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.mountain-top{display:flex;justify-content:space-between;align-items:center;position:absolute;top:28px;left:29px;right:29px;pointer-events:none}.resort-label{font-size:8px;font-weight:650;letter-spacing:1.4px;display:flex;gap:8px;align-items:center}.weather{font-size:8px;font-weight:600;letter-spacing:.8px;display:flex;gap:6px;align-items:center}.weather svg{width:16px;height:16px;fill:none;stroke:var(--ink);stroke-width:1.4}.weather span{opacity:.4;margin:0 3px}.scene-label{position:absolute;left:35px;top:95px;pointer-events:none}.pill{border:1px solid #536d6470;border-radius:20px;display:inline-block;font-size:7px;letter-spacing:1.4px;padding:7px 11px;font-weight:600}.scene-label h2{font-size:37px;font-weight:750;line-height:1;letter-spacing:-1.5px;margin:13px 0 11px}.scene-label h2 span{font-size:8px;font-weight:500;letter-spacing:2px;display:block;margin-top:12px}.scene-description{font-size:11px;color:#547062}.rider-preview{position:absolute;left:53%;top:64%;display:flex;align-items:center;pointer-events:none;gap:8px;filter:drop-shadow(0 1px 5px #fff9)}.preview-line{width:40px;height:1px;background:var(--ink);opacity:.5;position:relative;transform:rotate(-25deg);transform-origin:right}.preview-line:before{position:absolute;content:'';width:4px;height:4px;background:var(--ink);border-radius:50%;left:0;top:-2px}.rider-preview strong{display:block;font-size:11px}.rider-preview small{display:block;font-size:6px;letter-spacing:1px;margin-top:4px}.mountain-bottom{position:absolute;bottom:27px;left:32px;right:28px;display:flex;justify-content:space-between;align-items:flex-end}.mountain-stats{display:flex;gap:28px}.mountain-stats>div{display:flex;flex-direction:column}.mountain-stats strong{font-size:26px;letter-spacing:-1px;font-weight:600}.mountain-stats strong span{font-size:12px;margin-left:3px}.mountain-stats small{font-size:6.5px;letter-spacing:1px;margin-top:5px}.guide-chip{font-size:9px;background:#f5f4eccc;backdrop-filter:blur(8px);border:1px solid #fff7;border-radius:4px;padding:12px 13px;display:flex;gap:10px;align-items:center}.guide-chip>span:first-child{font-size:14px}.guide-chip>span:last-child{font-size:15px;margin-left:12px}.global-footer{height:39px;flex-shrink:0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;font-size:7px;letter-spacing:1.4px;font-weight:600}.footer-arrow{font-size:15px;vertical-align:middle;padding-right:9px}
.game-hud{position:absolute;inset:0;pointer-events:none}.game-hud button{pointer-events:auto}.hud-top{position:absolute;top:27px;left:28px;right:28px;display:flex;align-items:flex-start;gap:20px}.riding-person{display:flex;align-items:center;gap:11px}.hud-portrait{height:52px;width:52px;background:var(--paper);border-radius:50%;overflow:hidden;box-shadow:0 2px 10px #283a3310}.hud-portrait svg{width:64px;height:64px;margin-left:-6px}.riding-person small{display:block;font-size:8px;letter-spacing:1.5px;font-weight:700}.riding-person strong{display:block;font-size:21px;letter-spacing:-.7px;margin-top:4px}.score-box{margin-left:auto;text-align:right;min-width:130px;text-shadow:0 1px 8px #ffffff70}.score-box small{font-size:8px;letter-spacing:1.5px;font-weight:700;display:block}.score-box strong{font-size:42px;line-height:1.1;display:block;letter-spacing:-2px;font-weight:800}.score-box>span{font-size:8px;letter-spacing:1px}.hud-button{background:var(--paper);width:35px;height:35px;border-radius:50%;font-weight:700;font-size:14px;box-shadow:0 2px 10px #283a3310}.run-progress{position:absolute;top:0;left:0;right:0;height:3px;background:#ffffff70}.run-progress div{height:100%;width:0;background:var(--ink)}.trick-display{position:absolute;top:23%;right:30px;text-align:right;transition:opacity .3s;text-shadow:0 2px 15px #ffffffe0;max-width:60%}.trick-display>span{display:block;font-size:9px;font-weight:700;letter-spacing:2px}.trick-display>strong{display:block;font-size:38px;font-weight:800;letter-spacing:-1.5px;line-height:1.2;margin-top:8px}.trick-display>div{font-size:17px;margin-top:7px;font-weight:600}.trick-display.banked>strong{color:#557135}.trick-display.bailed>strong{color:#ac4b38}.announcement{position:absolute;left:50%;top:18%;transform:translateX(-50%);font-size:11px;letter-spacing:1.4px;font-weight:700;text-transform:uppercase;background:#f5f4ece0;padding:12px 18px;border-radius:4px;opacity:0;transition:opacity .2s;text-align:center}.announcement.visible{opacity:1}.hud-bottom{position:absolute;left:28px;bottom:28px;right:28px;display:flex;align-items:flex-end;gap:25px}.speed strong{font-size:48px;letter-spacing:-3px;font-weight:750;line-height:1}.speed>span{font-size:8px;font-weight:650;margin-left:8px}.speed-bars{display:flex;gap:3px;margin-top:9px}.speed-bars i{height:5px;width:9px;background:#aebcb65c;border-radius:1px}.speed-bars i.on{background:var(--ink)}.control-strip{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:0 auto 2px;font-size:8px;max-width:600px;color:#314f42}.control-strip>span{display:flex;align-items:center;gap:4px}kbd{font-family:inherit;font-size:8px;padding:4px 5px;background:#f5f4ecb0;border:1px solid #f5f4ec;border-radius:3px;white-space:nowrap;font-weight:700}.charge-wrap{width:115px;flex-shrink:0}.charge-wrap small{font-size:7px;letter-spacing:1.5px;font-weight:700;display:block;margin-bottom:8px;text-align:right}.charge-meter{height:6px;background:#aebcb65c;border-radius:5px;overflow:hidden}.charge-meter>div{height:100%;background:var(--ink);width:0;transition:background .2s}.charge-meter.charging>div{background:var(--orange)}.is-playing .menu{display:none}.is-playing .scene-label,.is-playing .rider-preview,.is-playing .mountain-bottom,.is-playing .mountain-top{display:none}.is-playing main{min-height:calc(100svh - 122px)}.is-playing .mountain{min-height:calc(100svh - 122px)}.is-playing .nav-link.active:after{display:none}.touch-controls{display:none;position:absolute;bottom:80px;left:20px;right:20px;justify-content:space-between;pointer-events:none}.touch-steer,.touch-actions{display:flex;gap:8px}.touch-controls button{width:54px;height:54px;border-radius:50%;background:#f5f4ecbc;border:1px solid #fff9;backdrop-filter:blur(5px);touch-action:none;user-select:none;font-size:22px;pointer-events:auto}.touch-actions button{font-size:8px;font-weight:700}.touch-actions .touch-pop{background:var(--ink);color:var(--paper);height:67px;width:67px;margin-top:-6px;font-size:9px;line-height:1.5}.touch-controls button.pressed{background:var(--lime);color:var(--ink)}.load-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--paper);padding:30px;z-index:4}
.modal{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;width:min(480px,calc(100% - 32px));padding:36px;max-height:90svh;overflow:auto;box-shadow:0 30px 100px #1c312044}.modal::backdrop{background:#1f373756;backdrop-filter:blur(8px)}.close-modal{position:absolute;right:18px;top:14px;font-size:26px;background:none;font-weight:400}.modal h2{font-size:47px;line-height:1.07;letter-spacing:-2px;margin:16px 0}.modal>p{font-size:12px;line-height:1.7;color:var(--muted)}.guide-tabs{display:flex;gap:6px;margin:22px 0 13px}.guide-tabs button{font-size:11px;padding:8px 12px;background:#e9ebe2;border-radius:20px}.guide-tabs .selected{background:var(--ink);color:var(--paper)}.guide-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-size:11px;gap:15px}.guide-row>span:last-child{font-size:10px;font-weight:650;text-align:right}.guide-tip{display:flex;align-items:flex-start;gap:12px;background:#e9ecd9;padding:15px;margin:20px 0;border-radius:5px}.guide-tip>span{font-size:23px}.guide-tip p{font-size:10px;line-height:1.7;margin:0}.guide-tip strong{display:block}.secondary-button{width:100%;background:#e7eade;padding:15px;font-size:12px;border-radius:4px;margin-top:10px}.text-button{background:none;width:100%;font-size:11px;color:var(--muted);padding:17px 0 0}.pause-modal h2{font-size:43px}.pause-modal .primary-button{margin-top:25px}.result-score{text-align:center;padding:20px 0}.result-score small{display:block;font-size:8px;letter-spacing:2px;font-weight:700}.result-score strong{font-size:72px;font-weight:800;letter-spacing:-4px;display:block}.result-score>span{background:var(--lime);font-size:8px;letter-spacing:1px;font-weight:700;padding:5px 9px;border-radius:20px}.result-stats{display:flex;justify-content:space-around;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:25px}.result-stats>div{text-align:center}.result-stats strong{display:block;font-size:20px}.result-stats small{font-size:7px;letter-spacing:1px;display:block;margin-top:5px}
@media(min-width:1500px){.menu{width:425px;flex-basis:425px;padding:42px 36px 23px}.menu h1{font-size:66px}.intro{font-size:14px;margin-bottom:30px}.rider-card{padding:0 12px 13px}.portrait{height:83px}.portrait svg{height:94px;width:125px}.rider-name{font-size:14px}.rider-type{font-size:9px}.section-label{font-size:9px}.mountain-label{margin-top:27px}.route{padding:14px;font-size:13px}.route small{font-size:9px}.menu>.primary-button{margin-top:20px;min-height:55px}.menu-footer{margin-top:auto;padding-top:16px}.play-note{margin-bottom:22px}.scene-label{left:44px;top:110px}.scene-label h2{font-size:46px}.mountain-top{left:38px;right:38px}.scene-description{font-size:13px}main,.mountain{min-height:810px}}
@media(max-width:1050px){.header{padding:0 22px;gap:20px}.header-tag{display:none}.header nav{gap:22px}.menu{width:335px;flex-basis:335px;padding:28px 23px 17px}.menu h1{font-size:50px}.rider-type{font-size:7px}.mountain-top{left:20px;right:20px}.weather{font-size:7px}.resort-label{font-size:6px;letter-spacing:1px}.scene-label{left:24px;top:90px}.scene-label h2{font-size:31px}.mountain-bottom{left:22px;right:20px}.mountain-stats{gap:18px}.mountain-stats strong{font-size:21px}.guide-chip{font-size:8px;padding:10px;gap:7px}.guide-chip>span:last-child{margin-left:0}.control-strip{max-width:440px;gap:8px}}
@media(max-width:760px){.header{height:65px;padding:0 18px;gap:10px}.brand>span{font-size:24px}.brand svg{width:30px}.header nav{gap:17px}.nav-link{font-size:10px}.header nav #mountain-nav,.header nav #crew-nav{display:none}.icon-button{width:30px;height:30px;margin-left:5px}.sound-slash{left:15px;top:5px}main{flex-direction:column;min-height:0}.menu{width:100%;flex-basis:auto;padding:27px 24px 20px;order:2}.menu h1{font-size:53px;margin:16px 0 13px}.intro{font-size:12px;margin-bottom:24px}.riders{grid-template-columns:repeat(4,1fr);gap:7px}.portrait{height:66px}.portrait svg{height:72px;width:85px}.rider-card{padding:0 7px 9px}.rider-name{font-size:11px}.rider-type{font-size:7px;white-space:normal;min-height:20px;line-height:1.4}.selected-tick{font-size:11px}.menu-footer{margin-top:20px}.mountain{height:390px;min-height:390px;flex:auto;order:1}.mountain-top{top:20px;left:20px;right:20px}.resort-label{font-size:6px}.weather{font-size:6px}.scene-label{top:62px;left:22px}.scene-label h2{font-size:29px}.scene-description{font-size:10px}.pill{font-size:6px;padding:6px 9px}.scene-label h2 span{font-size:7px}.mountain-bottom{bottom:19px}.mountain-stats strong{font-size:22px}.mountain-stats small{font-size:5.5px}.rider-preview{top:65%;left:57%}.rider-preview small{font-size:5px}.global-footer{padding:0 20px;font-size:5.5px;height:35px}.is-playing main,.is-playing .mountain{min-height:calc(100svh - 100px);height:calc(100svh - 100px)}.hud-top{top:21px;left:18px;right:18px;gap:13px}.hud-portrait{width:41px;height:41px}.hud-portrait svg{width:52px;height:52px}.riding-person strong{font-size:17px}.riding-person small{font-size:6px}.score-box strong{font-size:33px}.score-box small{font-size:6px}.score-box{min-width:80px}.score-box>span{font-size:7px}.hud-bottom{left:18px;right:18px;bottom:18px}.control-strip{display:none}.charge-wrap{margin-left:auto;width:85px}.speed strong{font-size:38px}.trick-display{right:20px;top:24%;max-width:85%}.trick-display>strong{font-size:30px}.trick-display>span{font-size:8px}.announcement{top:14%;font-size:8px;padding:10px 14px;min-width:190px}.modal{padding:30px 25px}.modal h2{font-size:42px}}
@media(pointer:coarse){.touch-controls{display:flex}.is-playing .control-strip{display:none}.game-hud .hud-bottom{bottom:20px}.touch-controls{bottom:90px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.speed>small{display:block;font-size:7px;letter-spacing:1.6px;margin-top:8px;font-weight:700}.graphics-setting{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:22px 0;font-size:12px;gap:12px}.graphics-setting small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.graphics-setting select{font:inherit;font-size:10px;background:#e7eade;border:1px solid var(--line);border-radius:4px;color:var(--ink);padding:9px 6px;max-width:150px}.install-button{background:none;font-size:10px;padding:12px 0 0;display:flex;justify-content:center;align-items:center;gap:15px}.install-button span{font-size:17px}.touch-controls button{width:46px;height:46px;font-size:18px}.touch-actions button{font-size:7px}.touch-steer .touch-brake{font-size:7px;font-weight:700}.touch-actions .touch-pop{width:60px;height:60px}.touch-controls{bottom:105px}.control-strip{font-size:9px}kbd{font-size:9px}

/* Two rows keep every trick available without a tiny virtual joystick. */
.touch-controls{flex-direction:column;gap:10px;left:16px;right:16px}.touch-main{display:flex;justify-content:space-between}.touch-tricks{display:flex;justify-content:flex-end;gap:8px}.touch-tricks button{height:40px;width:64px;border-radius:12px;font-size:10px;font-weight:750}.touch-tricks .touch-cork{background:var(--orange);color:#fff;width:80px;box-shadow:0 3px 12px #5c362522}.touch-tricks .pressed{background:var(--lime);color:var(--ink)}
@media(max-width:380px){.touch-controls button{width:38px;height:42px}.touch-actions .touch-pop{width:52px;height:54px}.touch-steer,.touch-actions{gap:6px}.touch-tricks button{width:58px;height:38px}.touch-tricks .touch-cork{width:72px}}
@media(pointer:coarse) and (max-height:500px){.touch-controls{bottom:14px;gap:6px}.touch-tricks{justify-content:center}.game-hud .hud-bottom{display:none}.hud-top{top:12px}.trick-display{top:28%;max-width:55%}.trick-display>strong{font-size:24px}.announcement{top:12%;font-size:7px;max-width:40%;min-width:0}}
