:root{--ink:#1d3a5f;--ink-soft:#4a6585;--paper:#fff;--paper-2:#eef7ff;--sky:#3d9bff;--sun:#ffd23f;--sun-ink:#5a4100;--leaf:#4caf3a;--danger:#e2483d;--shadow:0 6px 0 #1d3a5f40;--radius:18px;--font:"Fredoka", "Trebuchet MS", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font:16px/1.4 var(--font);background:#cdeeff;margin:0;overflow:hidden}#view{width:100%;height:100%;display:block;position:fixed;inset:0}[hidden]{display:none!important}button{font:inherit;cursor:pointer}input{font:inherit}:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.overlay{background:#3d9bff2e;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.card{background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow);gap:14px;padding:28px;display:grid}.card.small{text-align:center;width:min(340px,100%)}h1,.brand{letter-spacing:-.01em;margin:0;font-weight:700}h1{font-size:40px;line-height:1}h1 span,.brand span{color:var(--sky)}h2{margin:0;font-size:26px}.sub{color:var(--ink-soft);margin:0}.field{gap:6px;font-weight:600;display:grid}.card input{border:3px solid var(--ink);background:var(--paper-2);width:100%;color:var(--ink);border-radius:12px;padding:10px 14px}.card button{border:3px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:12px;padding:11px 18px;font-weight:600;transition:transform 60ms,box-shadow 60ms}.card button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.card button.primary{background:var(--sun);color:var(--sun-ink)}.card button:disabled{opacity:.6;cursor:default}.join{grid-template-columns:1fr auto;gap:10px;display:grid}#code{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-weight:700}.error{min-height:1.4em;color:var(--danger);margin:0;font-weight:600}#ranking{border-top:2px dashed var(--ink-soft);padding-top:10px}#ranking h2{margin:0 0 6px;font-size:18px}#ranking-list{gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}#ranking-list li{font-variant-numeric:tabular-nums;grid-template-columns:34px 90px 1fr;align-items:baseline;gap:8px;display:grid}#ranking-list li.mine{color:var(--sky);font-weight:700}#ranking-list small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#hud{pointer-events:none;position:fixed;inset:0}#hud>*{pointer-events:auto}.panel,#hud-top,#hud-stats .stat,#players{border:3px solid var(--ink);box-shadow:var(--shadow);background:#ffffffeb;border-radius:14px}.hud-col{pointer-events:none;flex-direction:column;gap:10px;max-height:calc(100% - 32px);display:flex;position:absolute;top:16px}.hud-col>*{pointer-events:auto}#hud-left{align-items:flex-start;left:16px}#hud-right{align-items:flex-end;width:300px;right:16px}#hud-top{gap:2px;padding:10px 16px;display:grid}.brand{font-size:22px}.world b{letter-spacing:.15em}button.link{color:var(--sky);background:0 0;border:0;padding:0 0 0 6px;font-weight:600;text-decoration:underline}#hud-stats{gap:10px;display:flex}#forecast{border:3px solid var(--ink);width:100%;box-shadow:var(--shadow);background:#ffffffe6;border-radius:14px;padding:8px 14px;font-size:14px}#forecast ul{gap:2px;margin:4px 0 0;padding-left:18px;display:grid}#forecast ul:empty,#hud-right:has(#f3:not([hidden])) #forecast{display:none}#hud-stats .stat{text-align:right;min-width:110px;padding:8px 16px;display:grid}#hud-stats .stat span{color:var(--ink-soft);font-size:13px}#hud-stats .stat b{font-variant-numeric:tabular-nums;font-size:24px}#players{gap:4px;min-width:180px;max-width:260px;margin:0;padding:8px 14px;list-style:none;display:grid}#players li{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-weight:500;display:flex;overflow:hidden}#players i{border:2px solid var(--ink);border-radius:50%;flex:none;width:12px;height:12px}#players small{color:var(--ink-soft)}#chat-log{pointer-events:none;gap:4px;width:min(440px,100% - 32px);display:grid;position:absolute;bottom:64px;left:16px}#chat-log p{color:#fff;overflow-wrap:anywhere;background:#1d3a5fb8;border-radius:10px;width:fit-content;max-width:100%;margin:0;padding:4px 10px;transition:opacity .6s}#chat-log p.old{opacity:0}#chat-log.open p.old{opacity:1}#chat-input{border:3px solid var(--ink);background:var(--paper);width:min(440px,100% - 32px);color:var(--ink);box-shadow:var(--shadow);border-radius:12px;padding:10px 14px;position:absolute;bottom:16px;left:16px}#hint{color:var(--ink);text-shadow:0 1px #fff;font-weight:500;position:absolute;bottom:22px;left:16px}.no-hints #hint,.no-hints #build-help,.no-hints #ride.tip,#hud:has(#build:not([hidden])) #hint,#hud:has(#aim:not([hidden])) #hint,body:has(#shop:not([hidden]),#blueprints:not([hidden]),#catalog:not([hidden])) #result{display:none}kbd{border:2px solid var(--ink);background:var(--paper);font:600 13px/1.5 var(--font);border-radius:6px;padding:0 6px;display:inline-block}#toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;border-radius:12px;padding:8px 16px;font-weight:600;transition:opacity .2s;position:absolute;top:20px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#prompt{color:#fff;pointer-events:none;background:#102034c7;border-radius:10px;margin:0;padding:4px 12px;font-weight:600;position:absolute;top:calc(50% + 28px);left:50%;transform:translate(-50%)}#ride{background:#ffffffd9;border-radius:10px;margin:0;padding:3px 10px;font-size:14px;font-weight:500}#ride:empty{display:none}#aim{border:3px solid var(--ink);width:min(360px,100% - 32px);box-shadow:var(--shadow);background:#fffffff0;border-radius:14px;gap:6px;padding:12px 16px;display:grid;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.aim-row{justify-content:space-between;font-weight:600;display:flex}.aim-row b{font-variant-numeric:tabular-nums}#aim-bar{border:2px solid var(--ink);background:var(--paper-2);border-radius:8px;height:14px;overflow:hidden}#aim-bar i{background:linear-gradient(90deg, var(--leaf), var(--sun), var(--danger));width:0;height:100%;display:block}#aim p{color:var(--ink-soft);text-align:center;margin:0;font-size:13px}#result{background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);justify-items:center;gap:4px;padding:16px 28px;display:grid;position:absolute;top:22%;left:50%;transform:translate(-50%)}#result b{font-variant-numeric:tabular-nums;font-size:44px;line-height:1}#result span{color:#b8860b;font-size:22px;font-weight:700}#result small{color:var(--ink-soft);font-size:14px}#build{pointer-events:none;justify-items:center;gap:6px;width:max-content;max-width:calc(100% - 32px);display:grid;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}#build-aim{color:#fff;background:#102034c7;border-radius:10px;margin:0;padding:3px 10px;font-size:15px;font-weight:500}#build-aim.bad{background:#aa281ee0}#build-aim:empty{display:none}.chips{flex-wrap:wrap;justify-content:center;gap:4px;margin:0;display:flex}.chips span{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;background:#102034b8;border-radius:999px;padding:2px 9px;font-size:14px;font-weight:500}.chips span.good{background:#2e8c46e0}.chips span.bad{background:#aa281ee0}.chips span.on{background:var(--sky)}.chips span.estimate{background:var(--sun);color:var(--sun-ink);font-weight:700}#hotbar{flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}#hotbar li{overflow-wrap:anywhere;border:3px solid var(--ink);width:96px;box-shadow:var(--shadow);text-align:center;background:#fffffff0;border-radius:12px;grid-template-rows:40px auto;align-content:start;justify-items:center;gap:2px;padding:6px 5px 8px;font-size:13px;font-weight:600;line-height:1.15;display:grid;position:relative}#hotbar li kbd{padding:0 4px;font-size:11px;line-height:1.3;position:absolute;top:4px;left:5px}#hotbar li .part-swatch{align-self:center}#hotbar li.on{background:var(--sun);transform:translateY(-4px)}#hotbar li.more{width:auto;min-width:96px;color:var(--ink-soft);background:#ffffffb3;border-style:dashed;grid-template-rows:auto;align-content:center}#hotbar li.more small{font-size:11px;font-weight:500}#build-help{border:3px solid var(--ink);width:100%;box-shadow:var(--shadow);background:#ffffffe6;border-radius:14px;min-height:0;padding:10px 12px;font-size:13px;overflow:auto}#build-help h3{margin:0 0 6px;font-size:15px}#build-help .keys{flex-wrap:wrap;gap:5px 12px;font-size:13px;display:flex}#build-help .keys li{align-items:baseline;gap:4px;display:inline-flex}#build-help kbd{font-size:12px}#hud-right:has(#f3:not([hidden])) #build-help{display:none}@media (width<=1199px){#hud:has(#build:not([hidden])) .hud-col{max-height:calc(100% - 200px)}}#guide-panel,#plane-panel{border:3px solid var(--ink);width:300px;box-shadow:var(--shadow);background:#fffffff2;border-radius:14px;min-height:0;padding:8px 12px 10px;font-size:14px;overflow:hidden}#guide-panel{border-color:var(--sky)}#guide-panel h3{color:var(--sky);margin:0 0 6px;font-size:15px}.guide-progress{background:var(--paper-2);border:2px solid var(--ink);border-radius:6px;height:8px;overflow:hidden}.guide-progress i{background:var(--sky);width:0;height:100%;transition:width .3s;display:block}#guide-step{margin:8px 0 2px;font-size:16px;font-weight:700}#guide-text{margin:0 0 6px;line-height:1.35}#guide-foot,#guide-off{color:var(--ink-soft);font-size:13px;line-height:1.3;display:block}#guide-off{font-weight:600}#plane-panel header{justify-content:space-between;align-items:baseline;display:flex}#plane-panel h3{margin:0;font-size:16px}#plane-panel header small{color:var(--ink-soft);font-variant-numeric:tabular-nums}#plane-verdict{border-radius:10px;margin:5px 0;padding:4px 10px;font-size:15px;font-weight:700;line-height:1.25}#plane-verdict.good{color:#1f6b33;background:#dff5e3}#plane-verdict.bad{color:#9a3b12;background:#ffe6d6}#plane-map{background:var(--paper-2);border-radius:10px;margin:0 auto;display:block}.plane-legend{color:var(--ink-soft);margin:4px 0 0;font-size:12px}.plane-legend .dot{border:2px solid var(--ink);vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin:0 4px 0 2px;display:inline-block}.dot.cg{background:#ffc93c}.dot.np{background:#3fa7ff}#plane-stats{font-variant-numeric:tabular-nums;margin:4px 0;font-size:13px;font-weight:600}#plane-stats:empty{display:none}#advice{gap:3px;margin:0;padding:0;list-style:none;display:grid}#advice li{padding-left:20px;font-size:13px;line-height:1.25;position:relative}#advice li:before{text-align:center;width:16px;font-weight:700;position:absolute;top:0;left:0}#advice li.ok:before{content:"✓";color:#2e8c46}#advice li.bad{color:#9a3b12;font-weight:600}#advice li.bad:before{content:"✗";color:#c8352b}@media (height<=899px){#build-help{display:none!important}}.part-icon{object-fit:contain;width:40px;height:40px;display:block}.part-swatch{border:2px solid var(--ink);border-radius:4px;width:26px;height:14px;display:block}#flight-hud{border:3px solid var(--ink);box-shadow:var(--shadow);pointer-events:none;font-variant-numeric:tabular-nums;background:#ffffffeb;border-radius:16px;justify-items:center;gap:0;padding:8px 22px 10px;display:grid;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}#flight-hud small{color:var(--ink-soft);font-size:13px;font-weight:600}#flight-hud b{font-size:34px;line-height:1.1}#flight-hud span{color:var(--ink-soft);font-size:14px}#flight-hud.beat{background:#fff4c2;border-color:#b8860b}#flight-hud.beat b{color:#8a6400}.shop-card{grid-template-rows:auto minmax(0,1fr) auto;width:min(720px,100%);max-height:calc(100vh - 32px);display:grid}.shop-card header{justify-content:space-between;align-items:baseline;display:flex}.shop-gold{font-weight:600}.shop-gold b{color:#b8860b;font-variant-numeric:tabular-nums;font-size:24px}#shop-list{align-content:start;gap:14px;min-height:0;display:grid;overflow:auto}#shop-list h3{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:16px}#shop-list ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}#shop-list li{border:2px solid var(--ink);background:var(--paper-2);border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:8px 12px;display:grid}#shop-list li b{margin-right:8px}#shop-list li small{color:var(--ink-soft)}#shop-list li p{color:var(--ink-soft);margin:2px 0 0;font-size:14px}#shop-list li button{min-width:120px}.prestige{background:#fff8e0;border:3px dashed #b8860b;border-radius:12px;padding:10px 12px}.prestige h3{color:#8a6400!important}.prestige p{color:var(--ink-soft);margin:4px 0 8px;font-size:14px}.card button.danger{background:var(--danger);color:#fff}#blueprints .shop-card{grid-template-rows:auto auto minmax(0,1fr) auto}.blueprint-save{grid-template-columns:1fr auto;gap:10px;display:grid}#blueprint-list{align-content:start;gap:8px;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow:auto}#blueprint-list li{border:2px solid var(--ink);background:var(--paper-2);border-radius:12px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 12px;display:grid}#blueprint-list li.empty,#blueprint-list small{color:var(--ink-soft);display:block}#blueprint-list button.ghost{box-shadow:none}.catalog-card{grid-template-rows:auto auto minmax(0,1fr) auto;width:min(900px,100%)}#catalog-list{align-content:start;gap:14px;min-height:0;display:grid;overflow:auto}#catalog-list h3{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:16px}#catalog-list ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.part-card{border:2px solid var(--ink);background:var(--paper-2);border-radius:12px;align-content:start;gap:6px;padding:10px 12px;display:grid}.part-card.on{background:#fff4c2;border-width:3px}.part-card.locked{opacity:.75;background:#f1f3f6}.part-card header{align-items:center;gap:8px;display:flex}.part-card header .part-icon{flex:none;width:48px;height:48px}.examples ul{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))!important}.example-card{border:3px solid var(--sky);background:#eaf5ff;border-radius:12px;gap:6px;padding:10px 12px;display:grid}.example-card p{color:var(--ink-soft);margin:0;font-size:13px}.card .example-card button{padding:7px 10px;font-size:14px}.part-card header div{justify-items:start;gap:2px;display:grid}.part-card p{color:var(--ink-soft);margin:0;font-size:13px}.part-card dl{gap:2px;margin:0;font-size:13px;display:grid}.part-card dl div{justify-content:space-between;gap:6px;display:flex}.part-card dt{color:var(--ink-soft)}.part-card dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.card .part-card button{padding:6px 10px;font-size:14px}.tier{text-transform:uppercase;letter-spacing:.04em;border-radius:6px;padding:0 6px;font-size:11px;font-weight:700}.tier.basic{background:#dfe9f3}.tier.rare{color:#1d5fa8;background:#cfe6ff}.tier.epic{color:#6b2fb3;background:#ead9ff}.tier.legendary{color:#8a6400;background:#ffe9a8}.catalog-actions{justify-content:space-between;gap:10px;display:flex}.catalog-actions button{flex:1}#f3{color:#fff;background:#102034d6;border-radius:14px;width:100%;min-height:0;padding:12px 14px;font-size:14px;overflow:auto}#f3 h3{margin:0 0 6px;font-size:16px}#f3 h3 small{color:#9fc4ea;font-weight:500}#f3 dl{gap:2px;margin:0;display:grid}#f3 dl div{justify-content:space-between;gap:12px;display:flex}#f3 dt{color:#b9d3ee}#f3 dd{font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:600}#f3 ul{color:#ffe39a;gap:6px;margin:10px 0 0;padding-left:18px;display:grid}#f3 ul:empty{display:none}.code-text{letter-spacing:.15em;color:var(--sky)}.menu-card{grid-template-rows:auto minmax(0,1fr);gap:16px;width:min(900px,100%);max-height:calc(100vh - 32px);padding:22px 26px}.menu-head{justify-content:space-between;align-items:center;gap:18px;display:flex}.menu-head .sub{margin-top:4px}.menu-head .primary{flex:none;min-width:200px;padding:14px 22px;font-size:18px}.menu-body{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:26px;min-height:0;display:grid}.menu-col{min-height:0;padding-right:4px;overflow:auto}.menu-col h3{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:15px}.settings{gap:14px;display:grid}.setting.range{grid-template-columns:1fr auto;gap:4px 10px;font-weight:600;display:grid}.card .setting.range input{width:100%;accent-color:var(--sky);background:0 0;border:0;grid-column:1/-1;margin:0;padding:0}.setting.range b{font-variant-numeric:tabular-nums}.setting.toggle{cursor:pointer;align-items:center;gap:10px;font-weight:600;display:flex}.card .setting.toggle input{width:20px;height:20px;accent-color:var(--sky);margin:0;padding:0}.card button.reset{box-shadow:0 3px 0 var(--ink);justify-self:start;padding:6px 12px;font-size:14px}.keys-group+.keys-group{margin-top:12px}.keys-group h4{margin:0 0 4px;font-size:15px}.keys{text-align:left;gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.keys li{grid-template-columns:150px 1fr;align-items:baseline;gap:8px;display:grid}.keys .k{flex-wrap:wrap;gap:3px;display:flex}.options-link{justify-self:center;font-size:15px}@media (width<=760px){.menu-card{overflow:auto}.menu-body{grid-template-columns:1fr}.menu-col{overflow:visible}.menu-head{text-align:center;flex-direction:column;align-items:stretch}}@media (height<=560px){.menu-card{overflow:auto}.menu-body{min-height:auto}}.card button.link{box-shadow:none;color:var(--sky);border:0;padding:0;text-decoration:underline}#cross{border:2px solid var(--ink);pointer-events:none;background:#fff;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;top:50%;left:50%}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
