html:has(.hill-game),.hill-game{margin:0;width:100%;height:100%;overflow:hidden;background:#173040}.hill-game{font-family:Arial,sans-serif;color:#eff4f5;touch-action:manipulation}.hill-game .hidden{display:none!important}.hill-game *{box-sizing:border-box}.hill-game #hillCanvas{position:fixed;inset:0;width:100%;height:100%;display:block}.hill-game button,.hill-game a,.hill-game select{min-width:44px;min-height:44px;font:700 11px/1.4 Arial,sans-serif;letter-spacing:.05em;border-radius:8px;border:1px solid #afc2cc66;color:#eaf1f4;background:linear-gradient(145deg,#273f4ce8,#101f2cec);padding:12px;cursor:pointer;text-decoration:none;touch-action:manipulation}.hill-game button:hover,.hill-game a:hover{border-color:#f3cd8a}.hill-game :focus-visible{outline:2px solid #f3cd8a;outline-offset:3px}.hill-game option{background:#203541}.hill-game .hill-primary{background:linear-gradient(130deg,#f4d49b,#b7894b);color:#231a0f;border-color:#f7dfa2;box-shadow:0 4px 20px #ffd79333}.hill-game .hill-header{position:absolute;top:max(20px,env(safe-area-inset-top));left:24px;right:24px;display:flex;align-items:center;gap:18px;z-index:10;text-shadow:0 2px 8px #0009}.hill-game .hill-header div{display:grid;gap:5px}.hill-game .hill-header small{font-size:8px;letter-spacing:.2em;color:#d0dee5}.hill-game .hill-header strong{font-size:15px;letter-spacing:.09em}.hill-game #hillSound{margin-left:auto;font-size:9px}.hill-game #hillLoading{position:fixed;inset:0;z-index:40;background:#142835;display:grid;place-items:center;letter-spacing:.2em;font:11px monospace}.hill-game .hill-setup{position:absolute;right:30px;top:105px;bottom:24px;width:405px;max-height:calc(100dvh - 129px);overflow:auto;padding:26px;background:linear-gradient(150deg,#152d3ded,#0b1b29e8);backdrop-filter:blur(10px);border:1px solid #c8d5df44;border-radius:15px;box-shadow:0 20px 80px #0007;scrollbar-width:thin}.hill-game .hill-eyebrow{font-size:8px;letter-spacing:.16em;color:#d9bf94}.hill-game h1{font-size:64px;line-height:.95;letter-spacing:-.06em;margin:17px 0}.hill-game h1 em{font-family:Georgia,serif;font-weight:400;color:#f4d49b}.hill-game .hill-intro{font-size:12px;line-height:1.75;color:#becfd9;max-width:340px}.hill-game .hill-setup-fields{display:grid;gap:13px;margin-top:24px}.hill-game .hill-setup-fields label{display:grid;gap:7px;font:8px monospace;letter-spacing:.12em;color:#aec2d0}.hill-game select{width:100%;font-size:10px;padding:12px 8px}.hill-game .hill-field-pair{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}.hill-game .hill-build-readout{font:700 12px/1.8 monospace;color:#e7cfaa;border-top:1px solid #afc2cc22;padding-top:17px;margin-top:20px}.hill-game .hill-build-advice{font-size:10px;line-height:1.75;color:#bfd6e1;margin:8px 0 18px}.hill-game #hillBegin{width:100%;font-size:12px;min-height:53px}.hill-game .hill-secondary-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}.hill-game .hill-secondary-pair button{font-size:9px}.hill-game .hill-instructions{font-size:9px;line-height:1.7;color:#8ca7b8;margin:14px 0 0}.hill-game .hill-hud{position:absolute;inset:0;pointer-events:none;z-index:9}.hill-game .hill-hud button{pointer-events:auto}.hill-game .hill-run-data{position:absolute;top:94px;left:24px;display:flex;gap:29px;text-shadow:0 3px 7px #183145}.hill-game .hill-run-data small{display:block;font-size:8px;letter-spacing:.15em;color:#d3e5ed}.hill-game .hill-run-data strong{font:800 25px/1.7 Arial,sans-serif;letter-spacing:-.03em}.hill-game .hill-progress{position:absolute;top:161px;left:24px;width:360px;height:3px;background:#34566888;border-radius:3px;overflow:hidden}.hill-game .hill-progress i{display:block;height:100%;background:#f3ce8c;width:0}.hill-game .hill-snow-readout{position:absolute;left:24px;top:177px;width:360px;display:flex;justify-content:space-between;font:10px monospace;color:#e5f1f3;text-shadow:0 1px 3px #102d40}.hill-game .hill-belt{position:absolute;right:24px;top:100px;font:10px monospace;padding:12px;background:#102737bc;border-radius:7px;border:1px solid #acc4d342}.hill-game .hill-belt.warn{color:#ffb295;border-color:#ff9d7177}.hill-game .hill-cue{position:absolute;left:50%;top:28%;transform:translateX(-50%);text-align:center;font:bold 20px/1.6 Arial,sans-serif;color:#fff0ca;text-shadow:0 3px 14px #0c233d;max-width:75%}.hill-game .hill-cue.countdown{font-size:100px;top:28%;font-style:italic}.hill-game .hill-touch{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:24px;right:24px;display:flex;justify-content:space-between}.hill-game .hill-touch>div{display:flex;gap:9px}.hill-game .hill-touch button{width:76px;height:69px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:linear-gradient(150deg,#31516be8,#112638ef);box-shadow:inset 0 1px 0 #d6e9f433,0 6px 16px #00152544}.hill-game .hill-touch button[data-hill-control=left],.hill-game .hill-touch button[data-hill-control=right]{font-size:34px}.hill-game .hill-touch button.held{background:linear-gradient(#dcbd8c,#91683d);color:#161d22}.hill-game .hill-pause{position:absolute;right:24px;top:157px;width:48px;height:48px;font-size:17px}.hill-game .hill-ready{position:absolute;bottom:118px;left:50%;transform:translateX(-50%);background:#102937e8;border:1px solid #adc4d266;padding:18px;border-radius:10px;width:min(400px,calc(100vw - 30px));text-align:center;pointer-events:auto}.hill-game .hill-ready small{display:block;font-size:8px;letter-spacing:.12em;color:#a8c5d4;margin-bottom:12px}.hill-game .hill-ready-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hill-game #hillWarm{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-size:10px}.hill-game .hill-skip{position:absolute;bottom:118px;left:50%;transform:translateX(-50%);pointer-events:auto}.hill-game #hillInstruments .br-round-gauges{width:auto;inset:0;transform:none;display:block;pointer-events:none}.hill-game #hillInstruments canvas{position:absolute;width:135px;max-width:none}.hill-game #hillInstruments .br-round-gauge--tach{left:25px;bottom:117px;width:150px}.hill-game #hillInstruments .br-round-gauge--speed{left:37px;bottom:275px;width:115px}.hill-game #hillInstruments .br-round-gauge--afr{right:25px;bottom:117px;width:135px}.hill-game #hillInstruments .br-round-gauge--boost{right:35px;bottom:263px;width:115px}.hill-game .hill-results{position:absolute;inset:0;z-index:14;background:#0e253ae0;backdrop-filter:blur(9px);display:grid;place-items:center;padding:24px}.hill-game .hill-result-card{width:min(620px,100%);padding:30px;background:linear-gradient(150deg,#253d4b,#132835);border:1px solid #7d9bab88;border-radius:13px;max-height:calc(100dvh - 48px);overflow:auto}.hill-game .hill-result-card>small{font:9px monospace;letter-spacing:.12em;color:#dbbf92}.hill-game .hill-result-card h2{font-size:48px;letter-spacing:-.05em;margin:13px 0}.hill-game .hill-result-card p{font-size:12px;line-height:1.8;color:#b8cdd9}.hill-game .hill-result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.hill-game .hill-result-stats>div{background:#0e2532;padding:14px;border:1px solid #a3bec722;border-radius:7px}.hill-game .hill-result-stats span{display:block;font-size:8px;color:#8eafc0;margin-top:7px;letter-spacing:.06em}.hill-game .hill-result-stats strong{font-size:21px;color:#f0d3a5}.hill-game #hillStandings{padding:0;list-style:none;margin:15px 0}.hill-game #hillStandings li{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid #a3bec722;font:11px monospace}.hill-game .hill-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}.hill-game .hill-result-actions a{display:grid;place-items:center}.hill-game #tunerPanel{z-index:30}.hill-game #tunerPanel .tuner-window{color:#f1eee9}.hill-game .hill-hud.paused{visibility:hidden}
@media(max-width:700px){.hill-game .hill-header{left:14px;right:14px;top:max(12px,env(safe-area-inset-top));gap:10px}.hill-game .hill-header strong{font-size:10px}.hill-game .hill-header small{font-size:6px}.hill-game .hill-back{font-size:8px;padding:10px;min-width:69px}.hill-game #hillSound{font-size:8px;padding:9px}.hill-game .hill-setup{right:14px;left:14px;top:auto;bottom:14px;width:auto;max-height:68dvh;padding:20px}.hill-game h1{font-size:44px;margin:11px 0}.hill-game .hill-intro{font-size:10px;margin-bottom:13px}.hill-game .hill-setup-fields{margin-top:16px;gap:10px}.hill-game .hill-build-readout{font-size:10px;margin-top:13px;padding-top:13px}.hill-game .hill-setup-fields label{font-size:7px}.hill-game .hill-secondary-pair button{font-size:8px;padding:10px 6px}.hill-game .hill-build-advice{font-size:9px;margin-bottom:13px}.hill-game .hill-instructions{font-size:8px}.hill-game .hill-run-data{left:14px;top:72px;right:68px;justify-content:space-between;gap:8px}.hill-game .hill-run-data small{font-size:6px}.hill-game .hill-run-data strong{font-size:19px}.hill-game .hill-progress{top:122px;left:14px;right:68px;width:auto}.hill-game .hill-snow-readout{top:134px;left:14px;right:68px;width:auto;font-size:8px}.hill-game .hill-belt{right:14px;top:auto;bottom:98px;font-size:7px;padding:7px}.hill-game .hill-pause{right:14px;top:79px;width:44px;height:44px}.hill-game .hill-touch{left:14px;right:14px;bottom:max(16px,env(safe-area-inset-bottom))}.hill-game .hill-touch>div{gap:7px}.hill-game .hill-touch button{width:58px;height:61px;font-size:10px}.hill-game #hillInstruments .br-round-gauge--tach{left:7px;bottom:121px;width:106px}.hill-game #hillInstruments .br-round-gauge--speed{left:20px;bottom:233px;width:82px}.hill-game #hillInstruments .br-round-gauge--afr{right:7px;bottom:128px;width:98px}.hill-game #hillInstruments .br-round-gauge--boost{right:19px;bottom:232px;width:82px}.hill-game .hill-ready{bottom:345px;padding:13px;width:calc(100vw - 28px)}.hill-game .hill-ready small{font-size:7px}.hill-game .hill-ready-actions{gap:8px}.hill-game .hill-ready-actions button{font-size:9px;padding:12px 5px}.hill-game .hill-cue{top:27%;font-size:13px}.hill-game .hill-cue.countdown{font-size:75px;top:31%}.hill-game .hill-skip{bottom:93px;font-size:9px}.hill-game .hill-result-card{padding:22px}.hill-game .hill-result-card h2{font-size:35px}.hill-game .hill-result-stats>div{padding:12px 8px}.hill-game .hill-result-stats strong{font-size:17px}.hill-game .hill-result-stats span{font-size:6px}.hill-game .hill-result-actions{grid-template-columns:1fr}.hill-game .hill-result-card p{font-size:10px}.hill-game #hillStandings li{font-size:9px}}
@media(max-height:600px) and (orientation:landscape){.hill-game .hill-setup{top:80px;bottom:12px;max-height:none;width:350px;left:auto;right:15px;padding:18px}.hill-game h1{font-size:37px}.hill-game .hill-ready{bottom:95px;width:350px}.hill-game #hillInstruments .br-round-gauge--tach{width:92px;bottom:104px}.hill-game #hillInstruments .br-round-gauge--speed{width:70px;bottom:202px}.hill-game #hillInstruments .br-round-gauge--afr{width:87px;bottom:104px}.hill-game #hillInstruments .br-round-gauge--boost{width:70px;bottom:202px}.hill-game .hill-run-data{top:77px}.hill-game .hill-progress{top:132px}.hill-game .hill-snow-readout{top:143px}.hill-game .hill-pause{top:75px}.hill-game .hill-belt{top:127px;bottom:auto}}

.hill-game .hill-preview{height:165px;position:relative;border:1px solid #adc2cc35;border-radius:9px;overflow:hidden;background:radial-gradient(ellipse at 50% 70%,#29424f,#102432);touch-action:none;user-select:none}.hill-game .hill-preview canvas{display:block;width:100%;height:100%}.hill-game .hill-preview>span{position:absolute;bottom:8px;left:12px;font:7px monospace;letter-spacing:.12em;color:#c7d7dc;pointer-events:none}
@media(max-width:700px){.hill-game .hill-setup{max-height:78dvh}.hill-game .hill-preview{height:145px}.hill-game h1{font-size:31px}.hill-game h1 br{display:none}.hill-game h1 em:before{content:" "}.hill-game .hill-intro{line-height:1.5}.hill-game .hill-setup-fields{margin-top:14px}}

.hill-game .hill-weight-controls button{width:64px;font-size:10px;border-color:#d4ad6a80;background:linear-gradient(145deg,#3c4245,#172731);color:#ffe0a4;line-height:1.35}.hill-game .hill-balance{position:fixed;bottom:108px;left:50%;transform:translateX(-50%);width:176px;padding:8px 10px;border:1px solid #edcf8a38;border-radius:6px;background:#0b1b2cdd;text-align:center;color:#e8dbc7;font:8px monospace;letter-spacing:.04em;pointer-events:none}.hill-game .hill-balance i{display:block;height:4px;margin:8px 0;background:#345363;border-radius:3px;overflow:hidden}.hill-game .hill-balance b{display:block;height:100%;background:#ebc985;transition:width .08s}.hill-game .hill-balance.warn{color:#ff997f}.hill-game .hill-crash-caption{position:fixed;left:50%;top:25%;transform:translateX(-50%);width:max-content;max-width:85vw;padding:12px 18px;border:1px solid #edc98a60;border-radius:8px;background:#0b1b2ce6;color:#ffe4b0;font:700 14px/1.5 Arial;text-align:center;pointer-events:none}.hill-game #hillPlacement{margin-top:14px;font-size:11px;line-height:1.6}.hill-game #boardPanel{z-index:45}.hill-game .hill-result-actions #hillLeaderboard{border-color:#e1bf7c70;color:#ffe5b8}.hill-game .hill-touch button{touch-action:none;user-select:none;-webkit-touch-callout:none}.hill-game .hill-touch .held{background:#bb8c42;color:#071722;transform:translateY(2px)}
@media(max-width:700px){.hill-game .hill-weight-controls button{width:44px;font-size:8px}.hill-game .hill-balance{bottom:96px;width:154px;font-size:7px}.hill-game .hill-crash-caption{font-size:12px;top:23%}.hill-game #hillPlacement{font-size:10px}}

@media(max-width:370px){.hill-game .hill-touch button{width:44px}.hill-game .hill-touch>div{gap:5px}.hill-game .hill-balance{width:90px;font-size:6px}}

/* The staged boost controller on the climb. ui.css parks it just above the
   thumbs, which on this page is where the lean buttons and the balance bar
   already live - so it moves up into the gap between the two gauge columns,
   which is the one piece of clear screen a climb has. */
.hill-game .boost-stages{bottom:calc(196px + env(safe-area-inset-bottom));z-index:11;pointer-events:auto}
@media(max-width:700px){.hill-game .boost-stages{bottom:calc(166px + env(safe-area-inset-bottom));gap:6px;padding:6px 7px}}
/* The ready card and the skip button occupy the same column, so the controller
   stands down while either of them is up rather than stacking on top. */
.hill-game .hill-hud:has(.hill-ready:not(.hidden)) .boost-stages,
.hill-game .hill-hud:has(.hill-skip:not(.hidden)) .boost-stages{display:none}

/* The climb page does not load ui.css, so the controller's own styling comes
   with it. Scoped to .hill-game, identical to the strip's so the control a
   rider learns on one page is the same control on the other. */
.hill-game .boost-stages{ position:fixed;left:50%;transform:translateX(-50%);bottom:calc(104px + env(safe-area-inset-bottom));
  z-index:36;display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;
  background:#0d1a22e0;border:1px solid #2d4e5e;backdrop-filter:blur(5px);pointer-events:auto; }
.hill-game .boost-stages.hidden{ display:none; }
.hill-game .boost-stage-row{ display:flex;gap:6px;align-items:center; }
.hill-game .boost-stage-row .eyebrow{ margin-right:4px;white-space:nowrap; }
.hill-game .boost-stage{ min-width:44px;min-height:44px;border-radius:9px;border:1px solid #37606f;
  background:#14242e;color:#cfe6ef;font:900 15px Consolas,monospace;cursor:pointer; }
.hill-game .boost-stage.on{ background:#2a6d55;border-color:#4fd49a;color:#eafff4; }
.hill-game .scramble{ display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  min-width:108px;min-height:44px;padding:5px 12px;border-radius:9px;border:1px solid #7a4a28;
  background:#2a1a10;color:#ffd79e;font:900 10px system-ui,sans-serif;letter-spacing:.13em;cursor:pointer; }
.hill-game .scramble.on{ background:#8a4a16;border-color:#ffb766;color:#fff3e0; }
.hill-game .scramble.spent{ opacity:.45; }
.hill-game .scramble-track{ display:block;width:84px;height:4px;border-radius:2px;background:#4a3524;overflow:hidden; }
.hill-game .scramble-track > i{ display:block;height:100%;width:100%;background:#ffb766;transition:width .12s linear; }
@media (max-width:520px) { .boost-stages { gap:7px;padding:7px 8px; }
  .boost-stage-row .eyebrow { display:none; } .scramble { min-width:92px; } }

/* Placement, last so it wins over the ported base above. The climb HUD already
   owns the bottom of the screen - lean buttons, steering and the balance bar -
   so the controller sits above all of it, in the gap between the gauge columns.
   Measured against the balance bar rather than guessed: it must not cover the
   one readout that tells a rider they are about to loop it. */
.hill-game .boost-stages{bottom:calc(196px + env(safe-area-inset-bottom))}
@media(max-width:700px){.hill-game .boost-stages{bottom:calc(158px + env(safe-area-inset-bottom))}}

/* The gas. It is the control a rider's thumb lives on for the whole climb, so
   it reads as the primary one - same green as the circuit throttle, so the two
   modes do not teach different colours for the same job. The label is three
   letters because the narrow phone layout leaves this button 44px wide and the
   lean controls cannot give up any of theirs. */
.hill-game .hill-touch button[data-hill-control=throttle]{color:#c6fcd9;background:linear-gradient(#275d52,#1b3c40);border-color:#bdeabda8;padding:8px 4px;font-size:13px;letter-spacing:.06em}
.hill-game .hill-touch button[data-hill-control=throttle].held{background:#8fe0a8;color:#07231a;border-color:#d8ffe4}

