@import url('./vendor/fonts.css');
:root{--ink:#203c36;--lime:#d5f865;--cream:#f8fae9;--muted:#668076;--panel:rgba(250,252,239,.94);--world:#d5f865;font-family:'DM Sans',sans-serif;font-synthesis:none;color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#9cdbcc}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #fe8b48;outline-offset:4px}button{transition:transform .16s,background .16s,box-shadow .16s}button:hover:not(:disabled){transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg.icon{width:24px;height:24px;display:block;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.hidden{display:none!important}.screen{position:fixed;inset:0}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;position:relative;z-index:3}.brand{font-size:19px;font-weight:900;letter-spacing:-.7px;display:flex;gap:12px;align-items:center}.brand-mark{width:43px;height:43px;background:var(--ink);color:var(--lime);border-radius:13px;display:inline-flex;align-items:center;justify-content:center;font-family:'Barlow Condensed',Impact,sans-serif;font-size:39px;font-style:italic;line-height:1;letter-spacing:-7px;padding-right:9px;transform:rotate(-8deg)}.brand-mark>span{transform:translateY(4px)}.beta{font-size:8px;border:1px solid #74978d;border-radius:4px;padding:4px 5px;letter-spacing:1px;margin-left:4px}.topbar nav{display:flex;gap:10px;align-items:center}.nav-button{background:transparent;padding:10px 22px;font-size:13px;font-weight:700}.nav-button.selected{background:var(--ink);color:var(--cream);border-radius:22px}.tiny-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#d77147;margin:0 0 3px 4px}.icon-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #74978d55;border-radius:50%;background:#faffed50;font-weight:900;font-size:18px}.icon-button .icon{width:19px;height:19px}.home-content{position:relative;height:calc(100% - 388px);min-height:235px;pointer-events:none}.hero-copy{position:absolute;left:4.5vw;top:6%;z-index:1}.eyebrow{font-size:9px;font-weight:800;letter-spacing:2.2px;display:block}.eyebrow i{display:inline-block;width:6px;height:6px;background:#dd7747;border-radius:50%;margin:0 7px 1px 0}h1{font-family:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;font-weight:800;font-size:clamp(42px,5.65vw,82px);line-height:.96;letter-spacing:-1.4px;margin:24px 0 22px}h1 em{font-style:normal;color:#fffbe8;text-shadow:0 2px 0 #668c7540}.hero-copy>p{font-size:13px;line-height:1.75;font-weight:500}.hero-tags{display:flex;gap:16px;font-size:10px;font-weight:600;opacity:.8;margin-top:24px}.hero-tags>span{display:flex;gap:6px;align-items:center}.hero-tags svg.icon{width:15px;height:15px}.world-label{position:absolute;left:56%;bottom:29px;text-align:left;z-index:1;color:#24493b;text-shadow:0 1px 14px #c9edd4}.world-label>span{font-size:8px;font-weight:800;letter-spacing:3px}.world-label h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:48px;line-height:1.1;font-weight:800;letter-spacing:-.5px}.world-label p{font-size:11px;font-weight:600;margin-top:5px}.scene-caption{position:absolute;right:4.5vw;bottom:22px;writing-mode:vertical-rl;font-size:8px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;gap:7px}.live-dot{width:5px;height:5px;border-radius:50%;background:#345d46;display:inline-block}.expedition-panel{position:absolute;left:4.5vw;right:4.5vw;bottom:43px;border:1px solid #ffffffa0;background:var(--panel);border-radius:19px;padding:22px 25px 18px;box-shadow:0 10px 40px #243c3213;backdrop-filter:blur(12px)}.expedition-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.expedition-heading .eyebrow{font-size:8px;color:#70847b;letter-spacing:1.6px}.expedition-heading h3{font-size:17px;letter-spacing:-.5px;font-weight:800;margin-top:5px}.progress-label{font-size:8px;letter-spacing:1px;font-weight:700;color:#6b7e71;border:1px solid #dbe2ce;border-radius:5px;padding:7px 10px}.world-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.world-card{display:flex;position:relative;align-items:center;text-align:left;padding:14px 11px;gap:10px;border:1.5px solid #dce4d3;border-radius:10px;background:#f2f5e9;height:78px;overflow:hidden}.world-card.active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);background:#e9efd9}.world-card .world-card-icon{flex:none;height:45px;width:45px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--card-color);color:var(--card-ink)}.world-card-icon svg.icon{width:27px;height:27px}.world-card strong{display:block;font-size:12px;white-space:nowrap;letter-spacing:-.3px}.world-card small{display:block;font-size:8px;letter-spacing:1px;color:#7a897e;margin-top:6px;font-weight:700}.world-card .card-state{position:absolute;right:7px;top:7px}.card-state svg.icon{width:11px;height:11px}.world-card.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--world)}.launch-row{display:flex;align-items:center;justify-content:space-between;margin-top:17px;gap:10px}.stage-select{display:flex;gap:7px}.stage-button{background:#e9eedf;border:1px solid transparent;border-radius:7px;display:flex;align-items:center;text-align:left;gap:8px;padding:8px 12px}.stage-button.active{border-color:#8ea283;background:#fffdf0}.stage-button:disabled{opacity:.45}.stage-button>span{font-size:11px;font-weight:800;color:#688069}.stage-button div{font-size:10px;font-weight:700}.stage-button small{display:block;font-size:7px;color:#7d8a78;letter-spacing:.8px;margin-top:2px}.stage-button svg.icon{width:12px;height:12px}.primary-button{border-radius:9px;background:var(--lime);box-shadow:0 4px 0 #aecb46;color:#20392f;padding:15px 25px;font-size:13px;font-weight:900;letter-spacing:.6px;min-width:214px;display:flex;gap:25px;justify-content:space-between;align-items:center}.primary-button>span{font-size:23px;line-height:12px}.primary-button:disabled{background:#e1e5d9;box-shadow:0 4px 0 #c9cfc1;color:#829080}.menu-footer{position:absolute;bottom:0;left:4.5vw;right:4.5vw;height:43px;display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1.3px;font-weight:700}.menu-footer button{background:none;font-size:9px;letter-spacing:.2px}.menu-footer button span{margin-left:12px}#hud{pointer-events:none;color:white;text-shadow:0 1px 3px #14283040}#hud button{pointer-events:auto}.race-top{display:flex;justify-content:space-between;align-items:flex-start;position:absolute;left:30px;right:30px;top:27px}.race-info{padding:17px 21px;background:#1f3435eb;border:1px solid #ffffff25;border-radius:13px;box-shadow:0 5px 0 #00000015;min-width:255px}.race-info .eyebrow{font-size:8px;color:#c4e591;letter-spacing:1.6px}.race-info h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:26px;line-height:1.2;margin-top:3px}.race-progress{height:5px;background:#54645c;margin-top:15px;border-radius:3px;position:relative;margin-right:29px}.race-progress>div{height:100%;background:var(--lime);border-radius:4px;width:0}.race-progress>span{position:absolute;left:calc(100% + 7px);top:-2px;font-size:6px;letter-spacing:.5px}.race-standing{display:flex;gap:13px;align-items:center;background:#203637ed;border:1px solid #ffffff20;border-radius:12px;padding:7px 13px}.race-standing>strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:49px;color:var(--lime)}.race-standing>strong span{font-size:20px}.race-standing>div{display:flex;flex-direction:column;gap:5px}.race-standing>div>span{font-size:7px;font-weight:700;letter-spacing:1px}.race-standing b{font-size:15px;font-variant-numeric:tabular-nums}.race-standing .icon-button{background:#ffffff10;color:white;margin-left:10px}.race-bottom{position:absolute;left:30px;right:30px;bottom:24px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.health-card{display:flex;gap:12px;padding:14px;background:#213638ee;border:1px solid #ffffff22;border-radius:12px;min-width:265px}.avatar-icon{width:44px;height:44px;background:#f4bc55;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#213737}.avatar-icon svg{width:30px!important;height:30px!important}.health-details{flex:1}.health-details>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:10px}.health-details strong{font-size:9px;letter-spacing:1px}.health-details>div>span{font-weight:800;font-size:14px}.health-details small{color:#aebbb3;font-size:8px}.health-track{height:8px;background:#53675e;border-radius:3px;margin:6px 0}.health-track>i{display:block;width:100%;height:100%;border-radius:3px;background:var(--lime);transition:width .2s}#checkpoint-label{font-size:6px;font-weight:700;letter-spacing:1px;color:#c2cbc2}.desktop-controls{display:flex;align-items:center;justify-content:center;gap:13px;font-size:8px;font-weight:700;padding-bottom:8px;color:#fff}.desktop-controls span{display:flex;gap:5px;align-items:center}kbd{font-family:inherit;font-size:7px;background:#1d363bab;border:1px solid #ffffff55;border-radius:4px;padding:5px 6px;box-shadow:0 2px 0 #192e3670}.race-stats{display:flex;flex-direction:column;gap:5px;font-size:8px;font-weight:800;letter-spacing:1px;padding-bottom:8px}#charge-panel{position:absolute;right:30px;top:131px;width:265px;background:#203637ed;border:1px solid #ffffff22;border-radius:12px;padding:14px}.charge-label{display:flex;justify-content:space-between;gap:7px;font-size:8px;letter-spacing:.5px}.charge-label strong{color:#f4d35b;font-size:7px}.charge-track{margin:9px 0;height:16px;background:#54665d;border-radius:5px;overflow:hidden}.charge-track>div{height:100%;width:0;background:#f6d258;border-radius:4px;transition:background .2s}.charge-hint{font-size:8px;color:#c2ccc3}#weapon-panel{position:absolute;right:30px;top:48%;background:#213737e8;border:1px solid #ffffff25;border-radius:14px;min-width:112px;text-align:center;padding:13px 18px}#weapon-ammo{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}#weapon-icon{display:flex;justify-content:center;margin:7px 0;color:#f7d86c}#weapon-icon .icon{width:38px;height:38px}#weapon-name{font-size:10px;display:block}#weapon-detail{font-size:7px;letter-spacing:1px;display:block;margin-top:6px;color:#bdcec0}#feed{position:absolute;left:30px;top:156px;display:flex;flex-direction:column;gap:5px}.feed-item{background:#23383dcc;border:1px solid #ffffff15;padding:8px 12px;border-radius:6px;font-size:10px;max-width:350px;animation:feedIn .2s ease-out}.feed-item b{color:var(--lime)}.feed-item.assist b{color:#a8dcef}.feed-item small{color:#d1dbd2;margin-left:7px}@keyframes feedIn{from{transform:translateX(-20px);opacity:0}to{transform:none;opacity:1}}#race-message{position:absolute;left:50%;top:37%;transform:translate(-50%,-50%);text-align:center;min-width:300px;pointer-events:none}#race-message-small{font-size:10px;letter-spacing:3px;font-weight:800;background:#23383ad9;padding:6px 11px;border-radius:5px;display:none}#race-message-small:not(:empty){display:inline-block}#race-message-big{font-family:'Barlow Condensed',Impact,sans-serif;font-size:92px;display:block;line-height:1.05;font-weight:900;color:#fffbe8;text-shadow:0 5px 0 #26463855}#race-message-detail{font-size:12px;font-weight:700;margin-top:10px;text-shadow:0 1px 7px #000}#toast{position:absolute;bottom:140px;left:50%;transform:translateX(-50%);padding:11px 18px;border-radius:9px;background:#223939e8;border:1px solid #ddf5ad60;font-size:12px;font-weight:700;opacity:0;transition:opacity .2s;text-align:center;white-space:nowrap}#toast.visible{opacity:1}#crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%)}#crosshair:after{content:'';background:white;width:3px;height:3px;border-radius:50%;position:absolute;left:9px;top:9px;box-shadow:0 0 2px black}#crosshair i{background:#fff;position:absolute;box-shadow:0 0 2px #243e34}#crosshair i:nth-child(1){width:2px;height:5px;left:10px;top:0}#crosshair i:nth-child(2){width:2px;height:5px;left:10px;bottom:0}#crosshair i:nth-child(3){width:5px;height:2px;top:10px;left:0}#crosshair i:nth-child(4){width:5px;height:2px;top:10px;right:0}#damage-vignette{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 160px 35px #df2c34;opacity:0;z-index:2}#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}.racer-label{position:absolute;left:0;top:0;text-align:center;transform:translate(-50%,-100%);font-size:9px;font-weight:800;color:white;text-shadow:0 1px 3px #142a35;white-space:nowrap}.racer-label span{background:#263843a0;padding:3px 7px;border-radius:4px}.racer-label .mini-health{width:40px;height:3px;border-radius:2px;background:#22333399;margin:5px auto 0}.racer-label .mini-health i{display:block;height:100%;background:#b9ed76;border-radius:2px}.pickup-label{color:#ecffb5;font-size:9px;font-weight:900;text-shadow:0 1px 4px #162e3f;position:absolute;white-space:nowrap}#touch-controls{display:none}.modal{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:25px;background:#142d36a3;backdrop-filter:blur(12px)}.modal-card{width:500px;max-width:100%;max-height:90dvh;overflow-y:auto;background:#f8faeb;border:1px solid #ffffffc9;border-radius:20px;padding:33px;box-shadow:0 20px 70px #16343250;position:relative}.modal-card.wide{width:740px}.modal-close{position:absolute;right:20px;top:20px;background:#e6ecde;color:#496652;border-radius:50%;width:30px;height:30px;font-size:22px}.modal-card .eyebrow{color:#7c907d;font-size:8px}.modal-card h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:43px;line-height:1;margin:9px 0 17px;font-weight:800}.modal-card p{font-size:12px;line-height:1.7;color:#728171}.modal-actions{display:flex;flex-direction:column;gap:12px;margin-top:23px}.modal-actions .primary-button{width:100%;justify-content:center}.secondary-button{background:#e6ecdb;border:1px solid #d2decb;border-radius:8px;padding:13px;font-size:11px;font-weight:800}.controls-tabs{display:flex;gap:7px;margin:20px 0}.controls-tabs button{flex:1;padding:10px 8px;border-radius:6px;background:#e7eddc;font-size:11px;font-weight:700}.controls-tabs button.active{background:#243f36;color:#f4f8e6}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.control-row{background:#edf1e3;padding:10px;border-radius:6px;display:flex;justify-content:space-between;align-items:center;font-size:10px}.control-row kbd{background:#fffdf4;color:#35523e;border:1px solid #d4dfc6;box-shadow:0 2px 0 #cbd7bd}.tip-box{padding:13px;background:#e4edd3;border:1px solid #d3e2bd;border-radius:8px;margin-top:16px;font-size:11px;line-height:1.7;color:#536c49}.tip-box b{color:#2e5037}.weapon-guide{margin-top:20px}.weapon-guide summary{cursor:pointer;font-size:12px;font-weight:800}.weapon-guide p{margin-top:10px;font-size:10px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #e0e7d5;font-size:12px;font-weight:700}.setting-row small{display:block;color:#84917e;font-size:10px;margin-top:4px;font-weight:400}.setting-row select,.setting-row input[type=text]{padding:8px;border:1px solid #cbd8c1;border-radius:6px;color:#294f37;background:white;max-width:150px}.setting-row input[type=range]{width:120px;accent-color:#749849}.toggle{width:44px;height:25px;border-radius:20px;background:#c6d5b8;position:relative}.toggle.on{background:#264d3d}.toggle:after{content:'';position:absolute;left:4px;top:4px;width:17px;height:17px;background:#f3facb;border-radius:50%;transition:transform .2s}.toggle.on:after{transform:translateX(19px)}.locker-layout{display:grid;grid-template-columns:165px 1fr;gap:24px;margin-top:21px}.locker-preview{background:linear-gradient(145deg,#dbebc9,#9bcaae);border-radius:12px;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center}.bean-avatar{position:relative;width:90px;height:130px;filter:drop-shadow(0 9px 0 #38694920)}.bean-body{position:absolute;top:45px;left:12px;width:67px;height:72px;border-radius:28px 28px 23px 23px;background:var(--bean);border-bottom:13px solid #42566c}.bean-head{position:absolute;top:0;left:10px;width:70px;height:72px;border-radius:35px 35px 28px 28px;background:var(--bean);border-bottom:6px solid #00000012}.bean-face{position:absolute;left:14px;top:21px;width:42px;height:32px;border-radius:16px;background:#ffe1b5;display:flex;gap:10px;align-items:center;justify-content:center}.bean-face:before,.bean-face:after{content:'';height:9px;width:5px;border-radius:3px;background:#283b42}.bean-arm{position:absolute;top:56px;width:18px;height:47px;border-radius:12px;background:var(--bean);left:0;transform:rotate(15deg)}.bean-arm.right{left:auto;right:0;transform:rotate(-15deg)}.bean-leg{position:absolute;bottom:0;left:22px;width:21px;height:25px;background:#314250;border-radius:0 0 9px 9px}.bean-leg.right{left:49px}.locker-preview strong{margin-top:18px;font-size:12px}.locker-preview small{font-size:8px;letter-spacing:1px;margin-top:5px;color:#3f755a}.locker-section-label{font-size:8px;letter-spacing:1px;font-weight:800;margin-bottom:10px}.swatches{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}.swatch{width:27px;height:27px;border-radius:50%;background:var(--swatch);border:2px solid #f8faeb;box-shadow:0 0 0 1px #d4dfca}.swatch.active{box-shadow:0 0 0 2px #2e4d3a}.hat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.hat-button{padding:9px 4px;border-radius:6px;background:#e9eeda;border:1px solid #d8e2cb;font-size:8px;font-weight:700;min-height:43px;display:flex;align-items:center;justify-content:center;gap:5px}.hat-button.active{border-color:#2d503a;background:#d7e6bf}.hat-button:disabled{opacity:.4}.hat-button .icon{width:12px;height:12px}.result-top{text-align:center}.result-medal{font-size:57px;margin-bottom:10px;color:#79953c}.result-place{font-family:'Barlow Condensed',Impact,sans-serif;font-size:66px;font-weight:800;line-height:1}.result-stats{display:flex;justify-content:space-around;padding:20px 0;border-block:1px solid #e0e7d4;margin:22px 0}.result-stats>div{text-align:center}.result-stats strong{display:block;font-size:22px}.result-stats small{font-size:8px;letter-spacing:1px;color:#7e8c75}.reward-card{padding:14px;background:#e0edc2;border:1px solid #c7dca3;border-radius:9px;display:flex;gap:13px;align-items:center}.reward-card .icon{width:30px;height:30px}.reward-card strong{font-size:12px;display:block}.reward-card small{font-size:9px;color:#6a8250}.leaderboard{margin-top:15px}.leaderboard-row{display:flex;align-items:center;gap:12px;padding:7px 10px;font-size:11px;border-radius:5px}.leaderboard-row.you{background:#e4edcf;font-weight:800}.leaderboard-row span:first-child{width:15px;color:#77915d}.leaderboard-row span:last-child{margin-left:auto;font-variant-numeric:tabular-nums}#loading{position:fixed;inset:0;background:#203d37;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#edf5dd;gap:20px}#loading>.brand-mark{background:#d5f865;color:#294834;width:65px;height:65px;font-size:57px}#loading h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:28px}#loading p{font-size:11px;color:#c0d1bc}#loading h2 span{animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}
@media(min-width:1600px){.home-content{height:calc(100% - 430px)}.expedition-panel{padding:27px 32px 24px}.world-card{height:92px}.world-card strong{font-size:15px}.world-card small{font-size:9px}.world-card .world-card-icon{width:52px;height:52px}.stage-button{padding:11px 16px}.stage-button div{font-size:12px}.hero-copy{top:10%}h1{font-size:90px}.hero-copy>p{font-size:16px}}
@media(max-width:1050px){.world-card{gap:7px;padding:12px 8px}.world-card strong{font-size:10px}.world-card small{font-size:7px}.world-card .world-card-icon{width:34px;height:38px}.world-cards{gap:8px}.expedition-panel{padding:20px}.stage-button{padding:8px}.stage-button div{font-size:9px}.desktop-controls{gap:7px}.desktop-controls span{font-size:0}.desktop-controls kbd{font-size:7px}.hero-copy{top:7%}.world-label{left:58%}.hero-tags{gap:10px}}
@media(pointer:coarse){#touch-controls{display:block}#charge-panel,#weapon-panel,.desktop-controls{display:none}.race-bottom{bottom:auto;top:115px;left:18px;right:auto}.health-card{min-width:220px;padding:10px}.health-details strong{font-size:8px}.health-card .avatar-icon{width:35px;height:35px}.race-stats{display:none}#joystick{position:absolute;left:max(35px,env(safe-area-inset-left));bottom:45px;width:125px;height:125px;border:2px solid #ffffff5c;background:#1c37324d;border-radius:50%;pointer-events:auto;touch-action:none}#joystick-knob{position:absolute;left:35px;top:35px;width:51px;height:51px;background:#ffffffa0;border:2px solid #fff;border-radius:50%;pointer-events:none;box-shadow:0 3px 8px #1d383544}.touch-right{position:absolute;right:max(32px,env(safe-area-inset-right));bottom:35px;width:200px;height:170px}#jump-touch{position:absolute;right:0;top:0;width:66px;height:66px;background:#eff7ddc9;border:2px solid #fff;border-radius:50%;font-size:34px;touch-action:none}#swap-touch{position:absolute;left:0;top:65px;width:49px;height:49px;border-radius:50%;background:#284c458f;border:1px solid #ffffff80;color:white;font-size:25px;touch-action:none}.touch-attack-wrap{position:absolute;right:25px;bottom:0}#attack-touch{width:85px;height:85px;border-radius:50%;background:#203b39da;border:0;display:flex;align-items:center;justify-content:center;touch-action:none;color:#f7df82;position:relative}#attack-touch .icon{width:33px;height:33px}.charge-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.charge-ring circle{fill:none;stroke:#f1d258;stroke-width:5;stroke-dasharray:283;stroke-dashoffset:283}#touch-ammo{position:absolute;bottom:94px;left:50%;transform:translateX(-50%);font-size:17px;font-weight:900;color:white;text-shadow:0 2px 5px #183c35;white-space:nowrap}.look-hint{position:absolute;bottom:14px;right:35px;font-size:6px;letter-spacing:1.6px;color:#ffffffb0}#toast{bottom:210px}#feed{top:205px;left:18px}.race-top{left:18px;right:18px;top:18px}.race-info{min-width:220px;padding:12px 15px}.race-info h2{font-size:23px}}
@media(max-width:700px){.topbar{height:75px;padding:0 5vw}.brand{font-size:15px;gap:8px}.brand-mark{width:33px;height:33px;font-size:30px;letter-spacing:-6px;padding-right:8px}.beta{display:none}.topbar nav{gap:4px}.nav-button{font-size:11px;padding:8px 11px}.icon-button{width:32px;height:32px}.topbar .icon-button .icon{width:16px;height:16px}.home-content{height:calc(100% - 388px)}.hero-copy{left:5vw;top:4%}.hero-copy .eyebrow{font-size:7px;letter-spacing:1.3px}h1{font-size:47px;line-height:.95;margin:17px 0 14px}.hero-copy>p{font-size:10px;line-height:1.6;max-width:175px}.hero-tags{display:none}.world-label{left:auto;right:7vw;bottom:10px;text-align:right}.world-label>span{font-size:6px;letter-spacing:1.6px}.world-label h2{font-size:34px}.world-label p{font-size:9px}.scene-caption{display:none}.expedition-panel{left:4vw;right:4vw;bottom:36px;padding:17px 15px 16px;border-radius:15px}.expedition-heading{margin-bottom:14px}.expedition-heading .eyebrow{font-size:7px}.expedition-heading h3{font-size:13px;margin-top:5px}.progress-label{font-size:6px;padding:5px;letter-spacing:.3px}.world-cards{gap:6px}.world-card{height:78px;padding:8px 3px;flex-direction:column;gap:6px;text-align:center;border-radius:7px}.world-card .world-card-icon{width:31px;height:31px;border-radius:7px}.world-card-icon svg.icon{width:22px;height:22px}.world-card strong{font-size:7px;letter-spacing:-.1px}.world-card small{display:none}.world-card .card-state{top:4px;right:3px}.card-state .icon{width:8px!important;height:8px!important}.launch-row{display:block;margin-top:13px}.stage-select{gap:5px;margin-bottom:12px}.stage-button{flex:1;padding:6px 4px;gap:4px;border-radius:5px;min-height:33px}.stage-button>span{font-size:9px}.stage-button div{font-size:7px}.stage-button small{font-size:5px;letter-spacing:.5px}.primary-button{min-width:0;width:100%;padding:12px 18px;font-size:12px;border-radius:7px}.menu-footer{height:36px;font-size:6px}.menu-footer button{font-size:7px}.race-top{left:12px;right:12px;top:12px}.race-info{min-width:164px;padding:10px 12px;border-radius:9px}.race-info .eyebrow{font-size:6px;letter-spacing:1px}.race-info h2{font-size:21px}.race-progress{margin-top:9px}.race-standing{padding:5px 8px;gap:7px;border-radius:9px}.race-standing>strong{font-size:37px}.race-standing>strong span{font-size:14px}.race-standing>div>span{font-size:5px}.race-standing b{font-size:12px}.race-standing .icon-button{margin-left:1px;width:26px;height:26px;font-size:12px}.race-bottom{left:12px;top:101px}.health-card{min-width:164px;gap:7px;padding:9px}.health-card .avatar-icon{width:29px;height:29px;border-radius:8px}.health-card .avatar-icon svg{width:22px!important;height:22px!important}.health-details>div>span{font-size:11px}.health-track{height:6px;margin:4px 0}.health-details strong{font-size:6px}#checkpoint-label{font-size:5px;letter-spacing:.5px}#feed{top:172px;left:12px}.feed-item{font-size:8px;padding:6px 9px}#race-message{top:42%}#race-message-big{font-size:73px}#race-message-detail{font-size:10px}#joystick{width:105px;height:105px;left:24px;bottom:42px}#joystick-knob{width:45px;height:45px;top:28px;left:28px}.touch-right{right:19px;width:175px;height:170px}#toast{font-size:10px;max-width:90%;white-space:normal}.modal{padding:17px}.modal-card{padding:26px 22px}.modal-card h2{font-size:37px}.control-row{font-size:8px;padding:8px}.control-row kbd{font-size:6px}.locker-layout{grid-template-columns:100px 1fr;gap:14px}.locker-preview{min-height:230px}.bean-avatar{transform:scale(.8)}.locker-preview strong{font-size:10px}.locker-preview small{font-size:6px}.hat-grid{grid-template-columns:repeat(2,1fr)}.hat-button{font-size:7px;min-height:35px}.swatches{gap:6px}.swatch{width:23px;height:23px}.modal-card p{font-size:11px}}
@media(max-height:650px) and (min-width:701px){.topbar{height:63px}.home-content{height:calc(100% - 308px)}.hero-copy{top:0}h1{font-size:48px;margin:15px 0 10px}.hero-copy>p{font-size:11px}.hero-tags{margin-top:12px}.expedition-panel{padding:13px 19px 12px;bottom:32px}.expedition-heading{margin-bottom:11px}.expedition-heading h3{font-size:13px}.world-card{height:61px}.world-card .world-card-icon{height:33px;width:33px}.launch-row{margin-top:10px}.primary-button{padding:10px 20px}.menu-footer{height:32px}.world-label{bottom:8px}.world-label h2{font-size:36px}.scene-caption{display:none}}
@media(max-height:520px) and (pointer:coarse){.topbar{height:55px}.home-content{height:calc(100% - 213px)}h1{font-size:38px;margin:10px 0}.hero-copy .eyebrow{font-size:7px}.hero-copy>p,.hero-tags{display:none}.expedition-panel{bottom:25px;padding:10px 14px;display:grid;grid-template-columns:1fr 220px;gap:12px;align-items:center}.expedition-heading{display:none}.world-card{height:68px}.launch-row{display:flex;flex-direction:column;margin:0;gap:8px}.stage-select{gap:3px}.stage-button{padding:4px;min-height:24px}.stage-button div{font-size:7px}.stage-button small{display:none}.primary-button{width:100%;padding:10px 15px;font-size:10px}.menu-footer{height:25px}.world-label{bottom:3px}.world-label h2{font-size:30px}.race-info{min-width:190px}.race-info h2{font-size:21px}.race-bottom{top:104px}.health-card{padding:8px;min-width:190px}#feed{top:174px}.race-message{top:40%}#joystick{width:100px;height:100px;bottom:20px}#joystick-knob{width:43px;height:43px;left:26px;top:26px}.touch-right{bottom:18px;height:150px}#attack-touch{width:75px;height:75px}#jump-touch{width:55px;height:55px}#toast{bottom:125px}.look-hint{bottom:4px}.race-standing{padding:4px 10px}.race-standing>strong{font-size:37px}}

.dark-world .topbar,.dark-world .hero-copy,.dark-world .scene-caption,.dark-world .menu-footer{color:#f2f5d9}.dark-world .topbar .icon-button{background:#ffffff16;border-color:#ffffff44}.dark-world .beta{border-color:#ffffff55}.dark-world .live-dot{background:#d5f865}.dark-world .world-label{text-shadow:none}

#scene{transition:filter .65s ease}

/* Equipped gear is rendered with the same 3D model as the race character. */
#locker-character{display:block;width:100%;height:235px;min-height:160px;touch-action:none}
.locker-preview{justify-content:flex-start;align-self:start;padding:8px 0 20px;overflow:hidden}
.locker-preview strong{margin-top:0}.career-kills{margin-top:20px;text-align:center;border-top:1px solid #58886644;padding-top:16px;width:80%}.career-kills b{font-size:26px;display:block}.career-kills span{font-size:7px;letter-spacing:1px}
.hat-button{justify-content:flex-start;padding:9px 7px;min-height:49px;text-align:left}.hat-button span{display:block}.hat-button small{display:block;font-size:6px;font-weight:600;color:#657961;margin-top:5px;letter-spacing:.3px}.hat-button.active small{color:#2d5732;font-weight:900}.hat-button:disabled{opacity:.58}.kill-hats{margin-bottom:20px}.world-label p{max-width:370px;line-height:1.5}
#jetpack-button{position:absolute;right:30px;bottom:132px;border:1px solid #a7eedb80;background:#244343ee;border-radius:12px;padding:12px 15px;color:#e7ffdb;display:grid;grid-template-columns:30px 1fr;gap:3px 8px;text-align:left}
#jetpack-button>span{grid-row:span 2;font-size:26px;align-self:center}#jetpack-button strong{font-size:10px}#jetpack-button small{font-size:7px;letter-spacing:1px;color:#d0e5d3}#jetpack-button.flying{border-color:#e2f48a;background:#51754bea}#jetpack-button:disabled:not(.flying){opacity:.55}
@media(pointer:coarse){#jetpack-button{right:135px;bottom:184px;padding:9px 11px;touch-action:none;min-height:46px}#jetpack-button>span{font-size:23px}#jetpack-button strong{font-size:8px}#jetpack-button small{font-size:6px}#toast{bottom:250px}}
@media(max-width:700px){#locker-character{height:175px}.hat-button{font-size:7px;padding:8px 4px}.hat-button small{font-size:5px}.world-label p{max-width:210px;font-size:8px}.career-kills b{font-size:22px}}
@media(max-height:520px) and (pointer:coarse){#jetpack-button{right:112px;bottom:130px;padding:7px 9px}.world-label p{max-width:220px}#toast{bottom:190px;max-width:40%}}

/* Sentry health is always anchored above the model, on every input layout. */
.turret-label{min-width:108px;background:#283643ed;border:1px solid #ffc58a90;border-radius:7px;padding:6px 8px;text-shadow:none}
.turret-label>span{display:block;background:none;padding:0;font-size:8px;color:#ffe3ad;letter-spacing:.5px}
.turret-health{height:7px;margin:5px 0 3px;background:#171f2b;border-radius:4px;overflow:hidden}
.turret-health i{display:block;height:100%;width:100%;background:#ff947c;border-radius:4px;transition:width .1s}
.turret-label>b{display:block;font-size:9px;font-variant-numeric:tabular-nums;color:#fff1d7}
@media(pointer:coarse){.turret-label{min-width:88px;padding:5px 6px}.turret-label>span{font-size:7px}.turret-label>b{font-size:8px}}

#swap-weapon{position:absolute;left:30px;bottom:132px;border:1px solid #9bb29e;background:#244343ee;border-radius:12px;padding:10px 13px;color:#e7ffdb;display:grid;grid-template-columns:30px 1fr;gap:3px 8px;text-align:left;min-width:165px}
#swap-weapon>span{grid-row:span 2;font-size:29px;align-self:center}#swap-weapon strong{font-size:10px}#swap-weapon small{font-size:7px;letter-spacing:1px}
#swap-weapon:disabled{opacity:.45}#swap-weapon.ready{border-color:#d5f865;color:#e4ff9f;box-shadow:0 0 0 2px #d5f86533}
@media(pointer:coarse){#swap-weapon{display:none}#swap-touch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;line-height:1}#swap-touch>span{font-size:26px}#swap-touch small{font-size:7px;letter-spacing:.7px;font-weight:800;margin-top:2px}#swap-touch:disabled{opacity:.45}#swap-touch.ready{background:#d5f865;color:#25463c;border-color:#f6ffd6;box-shadow:0 0 0 3px #d5f86544}}

/* Keep transient hints at the screen edge and reserve the center for the countdown. */
#toast{top:max(12px,env(safe-area-inset-top));bottom:auto;left:50%;width:max-content;max-width:min(560px,calc(100% - 600px));padding:8px 12px;font-size:11px;line-height:1.4;white-space:normal;pointer-events:none;z-index:1}
#race-message{top:50%}
#race-message-detail:empty{display:none}
@media(max-width:760px){
  #toast{top:max(6px,env(safe-area-inset-top));max-width:calc(100% - 24px);padding:6px 10px;font-size:10px}
  #hud:has(#toast.visible) .race-top,#hud:has(#toast.visible) .race-bottom,#hud:has(#toast.visible) #feed{translate:0 48px}
}
@media(max-height:520px) and (pointer:coarse){
  #toast{top:max(12px,env(safe-area-inset-top));max-width:calc(100% - 460px);padding:6px 8px;font-size:9px}
  #hud:has(#toast.visible) .race-top,#hud:has(#toast.visible) .race-bottom,#hud:has(#toast.visible) #feed{translate:none}
}

/* Seven worlds stay readable on phones; swipe the world strip to explore. */
.world-cards{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:1100px){.world-cards{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:5px}.world-card{flex:0 0 154px;scroll-snap-align:start}}
@media(max-width:700px){.world-card{flex-basis:76px}.world-card strong{font-size:8px}}

.flight-controls{display:none;font-size:10px;color:#edf8ff;gap:9px;align-items:center}.space-flight .desktop-controls,.space-flight #swap-weapon,.space-flight #swap-touch,.space-flight #jump-touch,.space-flight .look-hint{display:none}.space-flight .flight-controls{display:flex}
@media(pointer:coarse){.space-flight .flight-controls{display:none}}

.world-cards{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.world-card{flex:0 0 155px}.body-grid{margin-bottom:20px}#ski-crack{display:none;position:fixed;inset:0;pointer-events:none;z-index:8;background:#cfedff16}#ski-crack.visible{display:block}#ski-crack svg{position:absolute;inset:0;width:100%;height:100%}#ski-crack path{fill:none;stroke:#eaf9ff;stroke-width:.35;filter:drop-shadow(1px 1px 1px #3b4e69)}#ski-crack i{position:absolute;left:43%;top:12%;width:4%;height:76%;border-radius:45% 45% 8% 8%;background:linear-gradient(#ffd375 0 13%,#d54b6b 13% 45%,#294361 45% 60%,#f2bd56 60%);transform:rotate(-32deg);border:2px solid #eefaff;box-shadow:5px 7px 15px #182c4b66}#ski-crack i:nth-child(2){left:54%;transform:rotate(30deg)}@media(max-width:700px){.world-card{flex-basis:83px}#ski-crack i{width:8%}}

/* The race HUD gives way to the private snow finale; the pause dialog stays above it. */
body.snow-finale #hud,body.snow-finale #labels{visibility:hidden}
#snow-finale{position:fixed;inset:0;z-index:4;pointer-events:none;color:#f5fbff;font-family:inherit}
#snow-finale::before,#snow-finale::after{content:'';position:absolute;left:0;right:0;height:8%;background:#162c3a}
#snow-finale::before{top:0}#snow-finale::after{bottom:0}
.finale-top{position:absolute;z-index:1;top:max(15px,env(safe-area-inset-top));left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:1.8px}
.finale-top b{display:block;font-size:13px;letter-spacing:1px;margin-top:4px}.finale-top nav{display:flex;gap:8px;pointer-events:auto}
.finale-top button{border:1px solid #8eb3c166;border-radius:5px;background:#284554;color:#f1f9ff;padding:10px 14px;min-height:42px;font-size:11px;letter-spacing:.2px}.finale-top button span{margin-left:8px;opacity:.6}
.finale-caption{position:absolute;bottom:2.8%;left:12px;right:12px;text-align:center;font-size:13px;letter-spacing:.3px;z-index:1}
.finale-fade{position:absolute;inset:0;background:#c5dcea;pointer-events:none}
@media(max-width:700px){.finale-top{left:12px;right:12px;top:max(10px,env(safe-area-inset-top));letter-spacing:.8px;font-size:8px}.finale-top b{font-size:10px}.finale-top button{padding:8px 10px;font-size:10px}.finale-top button span{display:none}.finale-caption{font-size:12px}}

#jetpack-button{width:194px}#jetpack-fuel{font-variant-numeric:tabular-nums}
@media(pointer:coarse){#jetpack-button{width:146px;transition:background .16s}#jetpack-button:hover{transform:none}}

/* Developer access never replaces the earned progress display. */
.expedition-status{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.developer-map-button{border:1px solid #86ad99;border-radius:8px;background:#e0eedc;color:#24493b;font-size:10px;font-weight:800;letter-spacing:.6px;padding:12px;min-height:44px;white-space:nowrap}
.developer-map-button span{margin-left:8px}
.developer-race-badge{display:table;background:#d5f865;color:#24493b;border-radius:4px;padding:4px 7px;margin-bottom:6px;font-size:9px;font-weight:900;letter-spacing:1px}
.developer-setting{gap:20px}.developer-setting small{line-height:1.6}.developer-setting .toggle{flex-shrink:0}
.developer-action{background:#e0eedc;border-color:#86ad99;color:#24493b}
.developer-worlds{display:grid;gap:22px;margin-top:24px}
.developer-world h3{display:flex;align-items:center;gap:9px;font-size:14px;margin:0 0 10px}
.developer-world h3>span{font-size:10px;color:#657961;font-variant-numeric:tabular-nums}
.developer-world h3 svg{width:20px;height:20px;color:#24493b}
.developer-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.developer-level{display:flex;flex-direction:column;gap:9px;text-align:left;min-height:114px;border:1px solid #bdcbb7;border-top:4px solid var(--level-color);background:#f7f8ee;border-radius:9px;padding:13px 11px;color:#24493b}
.developer-level:hover,.developer-level:focus-visible{background:#e4efda;border-color:#527d5c}
.developer-level.current{background:#e4efda;box-shadow:inset 0 0 0 1px #527d5c}
.developer-level small{font-size:8px;letter-spacing:.5px;color:#657961}
.developer-level strong{font-size:12px;line-height:1.4}
.developer-level>span{font-size:8px;font-weight:800;letter-spacing:.4px;margin-top:auto}
.developer-picker-hint{font-size:10px!important;margin-bottom:0!important}
@media(max-height:520px) and (pointer:coarse){
  .expedition-panel:has(.developer-map-button:not(.hidden)) .expedition-heading{display:flex;grid-column:1/-1;margin:0;justify-content:flex-end}
  .expedition-panel:has(.developer-map-button:not(.hidden)) .expedition-heading>div:first-child{display:none}
  .expedition-panel:has(.developer-map-button:not(.hidden)){row-gap:7px}
  .developer-map-button{padding:8px 12px;min-height:36px}
  .developer-race-badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:8px}
}
@media(max-width:700px){
  .expedition-status{gap:5px;flex-direction:column;align-items:flex-end}
  #menu:has(.developer-map-button:not(.hidden)) .world-label{bottom:38px}
  .developer-map-button{font-size:8px;padding:9px;min-height:40px}
  .developer-race-badge{font-size:7px;letter-spacing:.5px;padding:3px 5px;margin-bottom:4px}
  .developer-levels{grid-template-columns:1fr}
  .developer-level{min-height:82px;gap:6px;padding:11px 13px}
  .developer-level strong{font-size:13px}.developer-level small,.developer-level>span{font-size:9px}
}
@media(max-height:520px) and (pointer:coarse){
  #menu:has(.developer-map-button:not(.hidden)) .world-label{bottom:80px}
}

/* Short volcano finale keeps the same accessible controls as the ski finale. */
body.magma-finale #hud,body.magma-finale #labels{visibility:hidden}
#magma-finale{position:fixed;inset:0;z-index:4;pointer-events:none;color:#fff3e9;font-family:inherit}
#magma-finale::before,#magma-finale::after{content:'';position:absolute;left:0;right:0;height:8%;background:#271b29}
#magma-finale::before{top:0}#magma-finale::after{bottom:0}
#magma-finale .finale-top button{background:#483142;border-color:#f4a16566}

/* Keep the actual outfit and wallet in view throughout the locker. */
.locker-preview{position:sticky;top:0;z-index:2;max-height:calc(90dvh - 60px);min-height:0;box-shadow:0 4px 18px #26463820}
.career-kills{margin-top:12px;padding-top:10px}.career-kills span,.career-wallet span{font-weight:900;font-size:9px;letter-spacing:.7px;color:#254936}
.career-wallet{width:90%;display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:12px}.career-wallet strong{display:flex;align-items:center;gap:7px;font-size:25px;font-weight:900}.career-wallet strong:not(:first-child){margin-top:8px}
.pixel-coin{width:30px;height:30px;flex:none;image-rendering:pixelated}.coin-reward{display:flex;justify-content:center;align-items:center;gap:18px;margin:22px 0;background:#fff0b5;border:2px solid #e4b847;border-radius:12px;padding:18px}.coin-reward .pixel-coin{width:72px;height:72px}.coin-reward strong{font-size:48px;display:block;line-height:1;font-weight:900;color:#69420e}.coin-reward span{display:block;font-size:11px;font-weight:900;margin-top:7px;letter-spacing:1px;color:#69420e}
@media(max-width:700px){.locker-preview{top:0;padding-bottom:12px}.career-wallet strong{font-size:20px}.career-wallet span,.career-kills span{font-size:7px}.career-wallet .pixel-coin{width:21px;height:21px}#locker-character{height:145px;min-height:100px}.career-kills{margin-top:6px}.coin-reward .pixel-coin{width:64px;height:64px}}
@media(max-height:600px){#locker-character{height:100px;min-height:70px}.career-kills{margin-top:4px;padding-top:4px}.career-wallet{margin-top:4px;gap:1px}.career-wallet strong,.career-kills b{font-size:18px}.career-wallet strong:not(:first-child){margin-top:2px}.locker-preview{padding-bottom:7px}}
