@import "https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&display=swap";:root{--ink:#101526;--paper:#fffdf7;--gold:#ffd35e;--shadow:0 18px 40px #090e1e59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Fredoka,Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{background:#0d1220;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;overscroll-behavior:none}.app{cursor:pointer;width:100%;height:100%;position:relative}.app canvas{touch-action:none;display:block}.hud{pointer-events:none;flex-direction:column;align-items:center;padding:clamp(14px,3vh,34px);display:flex;position:absolute;inset:0}.hud-top{flex-direction:column;align-items:center;gap:2px;display:flex}.score{color:var(--paper);text-shadow:0 4px #0c122647,0 14px 30px #080c1c73;font-size:clamp(52px,11vh,104px);font-weight:700;line-height:.95;animation:.26s cubic-bezier(.2,1.7,.5,1) score-pop}@keyframes score-pop{0%{transform:scale(1.28)translateY(-4px)}60%{transform:scale(.97)}to{transform:scale(1)}}.hud-meta{letter-spacing:.16em;text-transform:uppercase;color:#fffdf7b8;text-shadow:0 2px 10px #080c1c99;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.hud-meta .dot{opacity:.6;background:currentColor;border-radius:50%;width:4px;height:4px}.combo{color:#3a2400;background:linear-gradient(140deg,#ffd35ef5,#ffa63df5);border-radius:999px;align-items:baseline;gap:8px;margin-top:clamp(10px,2.4vh,22px);padding:7px 18px;animation:.42s cubic-bezier(.16,1.5,.4,1) combo-pop;display:flex;box-shadow:0 10px 26px #ffad3359}.combo-label{letter-spacing:.2em;font-size:14px;font-weight:600}.combo-count{font-size:19px;font-weight:700}@keyframes combo-pop{0%{opacity:0;transform:scale(.6)rotate(-5deg)}55%{opacity:1;transform:scale(1.12)rotate(1.5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.altitude{color:#fffdf7cc;text-shadow:0 2px 12px #080c1ca6;align-items:baseline;gap:7px;margin-top:auto;display:flex}.altitude-value{font-size:26px;font-weight:700}.altitude-unit{letter-spacing:.18em;text-transform:uppercase;opacity:.75;font-size:12px}.overlay{background:radial-gradient(circle at 50% 40%,#090d1c26,#090d1ca6);place-items:center;padding:20px;animation:.32s ease-out fade-in;display:grid;position:absolute;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.panel{text-align:center;width:min(420px,100%);max-height:100%;color:var(--ink);box-shadow:var(--shadow);background:linear-gradient(165deg,#fffdf7f7,#f0f0faf0);border-radius:26px;padding:clamp(24px,4vh,38px);animation:.38s cubic-bezier(.18,1.3,.4,1) panel-in;position:relative;overflow-y:auto}@keyframes panel-in{0%{opacity:0;transform:translateY(22px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:#10152680;margin:0 0 6px;font-size:12px;font-weight:600}.eyebrow.record{color:#d07a00}.title{letter-spacing:-.02em;flex-direction:column;margin:0 0 14px;font-size:clamp(38px,8vw,54px);font-weight:700;line-height:.88;display:flex}.title span{color:#ef7a3d}.blurb{color:#101526ad;margin:0 0 22px;font-size:14.5px;line-height:1.55}.final-score{color:var(--ink);font-size:clamp(64px,16vw,92px);font-weight:700;line-height:1}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0 18px;display:grid}.stats div{background:#1015260f;border-radius:14px;flex-direction:column;gap:2px;padding:10px 4px;display:flex}.stat-value{font-size:22px;font-weight:700}.stat-label{letter-spacing:.14em;text-transform:uppercase;color:#1015268c;font-size:10.5px}.primary-button,.ghost-button{cursor:pointer;border:none;border-radius:16px;width:100%;font-family:inherit;font-size:17px;font-weight:600;transition:transform .13s cubic-bezier(.2,1.4,.4,1),box-shadow .13s}.primary-button{color:#34210a;background:linear-gradient(150deg,#ffd968,#ff9e3d);padding:15px 20px;box-shadow:0 10px #d3752a,0 18px 30px #d3752a52}.primary-button:hover{transform:translateY(-2px)}.primary-button:active{transform:translateY(6px);box-shadow:0 4px #d3752a,0 8px 16px #d3752a4d}.ghost-button{color:#1015269e;background:0 0;margin-top:10px;padding:11px 20px}.ghost-button:hover{color:var(--ink);background:#1015260f}.best,.hint{letter-spacing:.1em;text-transform:uppercase;color:#10152680;margin:14px 0 0;font-size:12.5px}.hint{letter-spacing:.06em;opacity:.7;margin-top:22px;font-size:11.5px}.corner{position:absolute;top:clamp(12px,2.4vh,22px);right:clamp(12px,2.4vw,22px)}.icon-button{cursor:pointer;width:42px;height:42px;color:var(--paper);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c122657;border:none;border-radius:13px;place-items:center;transition:background .15s,transform .15s;display:grid}.icon-button:hover{background:#0c122685;transform:translateY(-1px)}.icon-button svg{fill:currentColor;width:21px;height:21px}.icon-button svg .stroke{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round}.loading{color:#fffdf7bf;letter-spacing:.18em;text-transform:uppercase;background:#101a2e;place-content:center;justify-items:center;gap:14px;font-size:13px;display:grid;position:absolute;inset:0}.loading-bar{background:#fffdf724;border-radius:999px;width:min(220px,60vw);height:6px;overflow:hidden}.loading-fill{background:linear-gradient(90deg,#ffd968,#ff9e3d);border-radius:999px;height:100%;transition:width .22s}.climb{text-align:left;flex-direction:column;gap:2px;margin:0 0 20px;padding:0;list-style:none;display:flex}.climb-rung{color:#101526b8;opacity:0;border-radius:10px;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:5px 8px;font-size:13px;animation:.42s cubic-bezier(.2,1.3,.4,1) forwards rung-in;display:grid}.climb-mark{background:#ef7a3d;border-radius:50%;width:9px;height:9px;margin-left:4px;position:relative}.climb-rung+.climb-rung .climb-mark:after{content:"";background:#ef7a3d66;width:2px;height:13px;position:absolute;bottom:9px;left:50%;transform:translate(-50%)}.climb-name{font-weight:600}.climb-level{letter-spacing:.12em;text-transform:uppercase;color:#10152673;font-size:10.5px}.climb-top{color:var(--ink);background:#ef7a3d1f}.climb-top .climb-mark{box-shadow:0 0 0 4px #ef7a3d38}.climb-top .climb-level{color:#d0631f}.climb-next{color:#10152657}.climb-next .climb-mark{background:#10152629}.climb-next+.climb-rung .climb-mark:after{background:#10152624}@keyframes rung-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.panel-record{box-shadow:var(--shadow), 0 0 0 2px #ffc554e6, 0 0 44px #ffb73d66;animation:.38s cubic-bezier(.18,1.3,.4,1) panel-in,2.4s ease-in-out .38s infinite record-glow}@keyframes record-glow{0%,to{box-shadow:var(--shadow), 0 0 0 2px #ffc554e6, 0 0 44px #ffb73d66}50%{box-shadow:var(--shadow), 0 0 0 2px #ffd67a, 0 0 66px #ffb73d9e}}.record-burst{color:#4a2c00;background:linear-gradient(140deg,#ffd968,#ff9e3d);border-radius:999px;padding:4px 14px;animation:.62s cubic-bezier(.16,1.6,.35,1) both record-pop;display:inline-block;box-shadow:0 6px 18px #ff9e3d73}@keyframes record-pop{0%{opacity:0;transform:scale(.4)rotate(-8deg)}60%{opacity:1;transform:scale(1.14)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}.final-score-record{background:linear-gradient(150deg,#ffb43d,#ef6b2d 55%,#ff9e3d);color:#0000;-webkit-background-clip:text;background-clip:text;animation:.7s cubic-bezier(.2,1.5,.4,1) both score-swell}@keyframes score-swell{0%{transform:scale(.7)}70%{transform:scale(1.06)}to{transform:scale(1)}}.record-note{letter-spacing:.16em;text-transform:uppercase;color:#d0631f;margin:2px 0 0;font-size:12px;font-weight:600}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-chip{animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-20px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10vh)rotate(0)}to{opacity:.85;transform:translate3d(var(--drift), 105vh, 0) rotate(var(--spin))}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.climb-rung,.record-burst,.final-score-record{animation-duration:1ms}.panel-record{animation:none}}
