:root{--lo-glass:#0a0e1ad1;--lo-glass-hi:#161c2ee6;--lo-border:#78a0ff40;--lo-border-hi:#78a0ff8c;--lo-text:#e8eaf0;--lo-dim:#9aa2b8;--lo-cyan:#06d6a0;--lo-blue:#4d96ff;--lo-amber:#ffd166;--lo-red:#ef476f;--lo-radius:14px;--lo-shadow:0 8px 30px #00000073;--lo-blur:blur(12px);--lo-t:.15s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--lo-text);-webkit-user-select:none;-moz-user-select:none;user-select:none;background:#05060e;margin:0;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}#game-canvas{z-index:0;width:100vw;height:100vh;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui-root:before{content:"";pointer-events:none;z-index:1;background:radial-gradient(120% 60% at 50% -10%,#5078dc1a,#0000 60%),linear-gradient(#05060e59,#0000 18%,#0000 82%,#05060e59);position:fixed;top:0;bottom:0;left:0;right:0}#ui-root{z-index:2;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#ui-root>*{pointer-events:auto}.lo-resbar,.lo-topright,.lo-mission,.lo-select,.lo-build,.lo-sheet,.lo-tip,.lo-sol,.lo-speed{background:var(--lo-glass);-webkit-backdrop-filter:var(--lo-blur);border:1px solid var(--lo-border);border-radius:var(--lo-radius);box-shadow:var(--lo-shadow)}.hidden{display:none!important}.lo-resbar{top:max(10px, env(safe-area-inset-top));scrollbar-width:none;flex-wrap:nowrap;justify-content:safe center;gap:6px;padding:8px 10px;display:flex;position:absolute;left:12px;right:350px;overflow-x:auto}.lo-resbar::-webkit-scrollbar{display:none}.lo-chip{min-height:40px;transition:background var(--lo-t);white-space:nowrap;background:#ffffff08;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;display:flex}.lo-chip-ic{filter:drop-shadow(0 0 6px #00000080);font-size:18px;line-height:1}.lo-chip-col{flex-direction:column;line-height:1.15;display:flex}.lo-chip-val{letter-spacing:.3px;font-size:15px;font-weight:700}.lo-chip-sub{color:var(--lo-dim);gap:4px;font-size:10px;display:flex}.lo-chip-rate{font-weight:600}.lo-chip-cap{color:var(--lo-dim)}.lo-batt{background:#ffffff1f;border-radius:3px;width:46px;height:5px;margin-top:3px;overflow:hidden}.lo-batt-fill{background:var(--lo-cyan);width:0%;height:100%;transition:width .3s linear, background var(--lo-t)}.lo-chip.warn{background:#ef476f29}@keyframes lo-flash{0%,to{background:#ffffff08}20%,60%{background:#ef476f8c;box-shadow:0 0 16px #ef476f99}}.lo-chip.flash{animation:1s lo-flash}.lo-topright{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));box-shadow:none;background:0 0;border:none;align-items:center;gap:8px;display:flex;position:absolute}.lo-sol{align-items:center;gap:6px;min-height:40px;padding:8px 12px;display:flex}.lo-tod{font-size:18px}.lo-tod.night{filter:drop-shadow(0 0 6px #96beffb3)}.lo-sol-txt{letter-spacing:1px;color:var(--lo-amber);font-size:13px;font-weight:700}.lo-speed{gap:2px;padding:4px;display:flex}.lo-sbtn{min-width:40px;min-height:40px;color:var(--lo-dim);cursor:pointer;transition:all var(--lo-t);background:0 0;border:none;border-radius:8px;font-size:14px;font-weight:700}.lo-sbtn:hover{color:var(--lo-text);background:#ffffff0f}.lo-sbtn.active{color:#071018;background:var(--lo-cyan);box-shadow:0 0 14px #06d6a080}.lo-gear{border:1px solid var(--lo-border);background:var(--lo-glass);width:44px;height:44px;-webkit-backdrop-filter:var(--lo-blur);color:var(--lo-text);cursor:pointer;transition:all var(--lo-t);border-radius:12px;font-size:20px}.lo-gear:hover{border-color:var(--lo-border-hi);transform:rotate(30deg)}.lo-mission{top:84px;left:max(12px, env(safe-area-inset-left));width:260px;max-width:42vw;padding:12px 14px;position:absolute;overflow:hidden}.lo-mission-label{letter-spacing:2px;color:var(--lo-cyan);margin-bottom:3px;font-size:10px;font-weight:700}.lo-mission-title{margin-bottom:3px;font-size:15px;font-weight:700}.lo-mission-desc{color:var(--lo-dim);font-size:12px;line-height:1.35}.lo-mission-check{color:var(--lo-cyan);opacity:0;pointer-events:none;background:#06d6a01f;justify-content:center;align-items:center;font-size:64px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes lo-pulse{0%{box-shadow:0 0 0 0 #06d6a080, var(--lo-shadow)}to{box-shadow:0 0 0 12px #06d6a000, var(--lo-shadow)}}.lo-mission.pulse{animation:.9s ease-out lo-pulse}@keyframes lo-checkpop{0%{opacity:0;transform:scale(.3)}30%{opacity:1;transform:scale(1.1)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.lo-mission.celebrate .lo-mission-check{animation:1.4s lo-checkpop}.lo-tier{margin-top:10px}.lo-tier-top{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.lo-tier-name{letter-spacing:1px;color:var(--lo-amber);text-transform:uppercase;font-size:11px;font-weight:700}.lo-tier-next{color:var(--lo-dim);font-size:10px}.lo-tier-bar{background:#ffffff1a;border-radius:4px;height:6px;overflow:hidden}.lo-tier-fill{background:linear-gradient(90deg, var(--lo-amber), #ffb347);width:0%;height:100%;transition:width .4s;box-shadow:0 0 10px #ffd16680}.lo-select{left:max(12px, env(safe-area-inset-left));width:260px;max-width:44vw;padding:14px;position:absolute;top:50%;transform:translateY(-50%)}.lo-sel-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.lo-sel-swatch{border-radius:4px;width:14px;height:14px;box-shadow:0 0 8px #0006}.lo-sel-name{flex:1;font-size:16px;font-weight:700}.lo-sel-close{width:32px;height:32px;color:var(--lo-text);cursor:pointer;transition:background var(--lo-t);background:#ffffff0f;border:none;border-radius:8px;font-size:14px}.lo-sel-close:hover{background:#ef476f66}.lo-sel-desc{color:var(--lo-dim);margin-bottom:10px;font-size:12px;line-height:1.4}.lo-sel-stats{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.lo-sel-stat{background:#ffffff0a;border-radius:6px;padding:4px 8px;font-size:12px}.lo-sel-warn{color:var(--lo-amber);background:#ffd1661f}.lo-sel-actions{flex-direction:column;gap:6px;display:flex}.lo-btn{border:1px solid var(--lo-border);min-height:40px;color:var(--lo-text);cursor:pointer;transition:all var(--lo-t);background:#ffffff0d;border-radius:10px;padding:0 14px;font-size:13px;font-weight:600}.lo-btn:hover{border-color:var(--lo-border-hi);background:#ffffff17}.lo-btn-wide{width:100%}.lo-btn-danger{color:#ffd6e0;border-color:#ef476f80}.lo-btn-danger:hover{background:#ef476f47}.lo-build{bottom:max(10px, env(safe-area-inset-bottom));flex-direction:column;gap:8px;width:min(960px,100vw - 24px);padding:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.lo-build-head{align-items:center;gap:8px;display:flex}.lo-build-collapsed-label{letter-spacing:1px;color:var(--lo-amber);cursor:pointer;padding:6px 4px;font-size:14px;font-weight:700;display:none}.lo-tabs{scrollbar-width:thin;flex:1;gap:4px;display:flex;overflow-x:auto}.lo-tab{min-height:40px;color:var(--lo-dim);cursor:pointer;white-space:nowrap;transition:all var(--lo-t);background:#ffffff08;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:600;display:flex}.lo-tab:hover{color:var(--lo-text);background:#ffffff12}.lo-tab.active{color:var(--lo-text);border-color:var(--lo-border-hi);background:#4d96ff24}.lo-tab-ic{font-size:16px}.lo-chevron{width:40px;height:40px;color:var(--lo-text);cursor:pointer;transition:background var(--lo-t);background:#ffffff0d;border:none;border-radius:10px;flex-shrink:0;font-size:16px}.lo-chevron:hover{background:#ffffff1a}.lo-build-body{align-items:stretch;gap:8px;display:flex}.lo-cards{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#78a0ff66 transparent;flex:1;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.lo-cards::-webkit-scrollbar{height:6px}.lo-cards::-webkit-scrollbar-thumb{background:#78a0ff59;border-radius:4px}.lo-cards::-webkit-scrollbar-track{background:0 0}.lo-card{scroll-snap-align:start;border:1px solid var(--lo-border);width:92px;min-height:96px;color:var(--lo-text);cursor:pointer;text-align:left;transition:all var(--lo-t);background:#ffffff0a;border-radius:12px;flex-direction:column;flex:none;gap:4px;padding:8px;display:flex}.lo-card:hover{border-color:var(--lo-border-hi);background:#ffffff14;transform:translateY(-2px)}.lo-card.active{border-color:var(--lo-cyan);box-shadow:0 0 0 1px var(--lo-cyan), 0 0 18px #06d6a066;background:#06d6a01f}.lo-card.locked{opacity:.5;cursor:not-allowed;filter:grayscale(.7)}.lo-card.locked:hover{transform:none}.lo-card-ic{border-radius:7px;width:26px;height:26px;box-shadow:inset 0 -6px 10px #0000004d,0 0 10px #0000004d}.lo-card-nm{font-size:11px;font-weight:700;line-height:1.2}.lo-card-cost{color:var(--lo-amber);flex-wrap:wrap;gap:6px;font-size:11px;font-weight:600;display:flex}.lo-card-hints{flex-wrap:wrap;gap:3px;margin-top:auto;display:flex}.lo-hint{color:var(--lo-dim);background:#ffffff14;border-radius:4px;padding:1px 4px;font-size:9px}.lo-card-lock{color:var(--lo-amber);margin-top:auto;font-size:9px}.lo-tools{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.lo-tool{border:1px solid var(--lo-border);width:48px;height:48px;color:var(--lo-text);cursor:pointer;transition:all var(--lo-t);background:#ffffff0d;border-radius:12px;font-size:20px}.lo-tool:hover{border-color:var(--lo-border-hi);background:#ffffff1a}.lo-dem.active{border-color:var(--lo-red);background:#ef476f47;box-shadow:0 0 16px #ef476f80}.lo-rot{display:none}.lo-rot.show{display:block}.lo-build.collapsed .lo-build-body,.lo-build.collapsed .lo-tabs{display:none}.lo-build.collapsed .lo-build-collapsed-label{margin-right:auto;display:block}.lo-tip{z-index:30;pointer-events:none;width:230px;padding:10px 12px;position:absolute}.lo-tip-nm{margin-bottom:4px;font-size:13px;font-weight:700}.lo-tip-desc{color:var(--lo-dim);margin-bottom:6px;font-size:11px;line-height:1.4}.lo-tip-stats{flex-direction:column;gap:2px;display:flex}.lo-tip-stat{color:var(--lo-text);font-size:11px}.lo-modal{z-index:40;-webkit-backdrop-filter:blur(4px);background:#03050c99;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.lo-sheet{flex-direction:column;gap:12px;width:320px;max-width:calc(100vw - 32px);padding:20px;animation:.2s lo-sheetin;display:flex}@keyframes lo-sheetin{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1}}.lo-sheet-title{letter-spacing:3px;color:var(--lo-cyan);text-align:center;margin-bottom:4px;font-size:14px;font-weight:700}.lo-setrow{justify-content:space-between;align-items:center;display:flex}.lo-setlabel{font-size:13px}.lo-switch{border:1px solid var(--lo-border);cursor:pointer;width:48px;height:28px;transition:background var(--lo-t);background:#ffffff14;border-radius:16px;padding:0;position:relative}.lo-switch.on{background:var(--lo-cyan);border-color:var(--lo-cyan)}.lo-switch-knob{width:22px;height:22px;transition:left var(--lo-t);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.lo-switch.on .lo-switch-knob{left:22px}.lo-newwrap{display:flex}.lo-credits{text-align:center;color:var(--lo-dim);letter-spacing:1px;margin-top:2px;font-size:10px}.lo-toasts{z-index:35;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:90vw;display:flex;position:absolute;bottom:132px;left:50%;transform:translate(-50%)}.lo-toast{background:var(--lo-glass-hi);-webkit-backdrop-filter:var(--lo-blur);border:1px solid var(--lo-border);box-shadow:var(--lo-shadow);text-align:center;border-radius:12px;padding:10px 18px;font-size:13px;font-weight:600;animation:.35s cubic-bezier(.2,.8,.2,1) lo-toastin}.lo-toast.out{animation:.5s forwards lo-toastout}@keyframes lo-toastin{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes lo-toastout{to{opacity:0;transform:translateY(-12px)}}.lo-toast-good{color:#b8ffe9;border-color:#06d6a080}.lo-toast-bad{color:#ffc4d2;background:#3c0e1adb;border-color:#ef476f99}.lo-toast-subtle{color:var(--lo-dim);font-size:12px;font-weight:500}.lo-toast-tier{letter-spacing:.5px;color:#1a1206;background:linear-gradient(90deg, var(--lo-amber), #ffb347);border-color:#ffe08a;font-size:18px;font-weight:800;animation:.5s cubic-bezier(.2,.8,.2,1) lo-tierin;box-shadow:0 0 30px #ffd16699}@keyframes lo-tierin{0%{opacity:0;transform:translateY(24px)scale(.8)}60%{transform:translateY(0)scale(1.08)}to{opacity:1;transform:scale(1)}}.lo-keyhints{color:#9aa2b899;letter-spacing:.5px;pointer-events:none;z-index:3;font-size:10px;position:absolute;bottom:8px;right:12px}#boot-screen{z-index:100;background:#05060e;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#boot-screen:before,#boot-screen:after{content:"";pointer-events:none;background-repeat:repeat;position:absolute;top:0;bottom:0;left:0;right:0}#boot-screen:before{opacity:.9;background-image:radial-gradient(1px 1px at 20% 30%,#fff,#0000),radial-gradient(1px 1px at 70% 60%,#fff,#0000),radial-gradient(1.5px 1.5px at 40% 80%,#cde3ff,#0000),radial-gradient(1px 1px at 85% 20%,#fff,#0000),radial-gradient(1px 1px at 55% 15%,#fff,#0000),radial-gradient(1.5px 1.5px at 10% 70%,#dbe9ff,#0000);background-size:320px 320px;animation:4s ease-in-out infinite alternate lo-twinkle}#boot-screen:after{opacity:.5;background-image:radial-gradient(1px 1px at 15%,#ffffffb3,#0000),radial-gradient(1px 1px at 60% 35%,#fff9,#0000),radial-gradient(2px 2px at 90% 75%,#c8dcff80,#0000);background-size:500px 500px}@keyframes lo-twinkle{0%{opacity:.55}to{opacity:1}}.boot-inner{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:18px;padding:24px;display:flex;position:relative}.boot-logo{letter-spacing:.16em;color:#fff;text-shadow:0 0 40px #78a0ff59;flex-direction:column;font-size:max(40px,min(9vw,84px));font-weight:800;line-height:1.05;display:flex}.boot-logo span{color:var(--lo-amber);text-shadow:0 0 30px #ffd16680}.boot-sub{letter-spacing:.42em;color:var(--lo-dim);text-transform:uppercase;font-size:13px}.boot-bar{background:#ffffff1f;border-radius:3px;width:min(340px,70vw);height:3px;margin:6px 0 4px;overflow:hidden}#boot-progress{background:linear-gradient(90deg, var(--lo-cyan), var(--lo-blue));width:0%;height:100%;transition:width 1.2s;box-shadow:0 0 12px #06d6a099}#boot-start,#boot-continue{letter-spacing:2px;min-width:240px;min-height:52px;color:var(--lo-amber);border:1.5px solid var(--lo-amber);cursor:pointer;transition:all var(--lo-t);background:#ffd1660f;border-radius:30px;padding:0 28px;font-size:15px;font-weight:700}#boot-start:hover,#boot-continue:hover{background:var(--lo-amber);color:#1a1206;box-shadow:0 0 28px #ffd16680}#boot-continue{color:var(--lo-text);border-color:var(--lo-border-hi);background:#78a0ff0f}#boot-continue:hover{background:var(--lo-blue);color:#fff;box-shadow:0 0 28px #4d96ff80}.fade-out{opacity:0;pointer-events:none;transition:opacity .9s}@media (max-width:1112px){.lo-chip{gap:6px;padding:5px 8px}.lo-chip-ic{font-size:16px}.lo-chip-val{font-size:13px}.lo-chip-sub{font-size:9px}.lo-mission{width:220px;top:78px}.lo-card{width:78px;min-height:88px}.lo-build{width:calc(100vw - 16px)}}@media (max-height:820px){.lo-mission{top:76px}.lo-card{width:74px;min-height:84px}.lo-toasts{bottom:120px}}@media (max-height:620px){.lo-resbar{gap:4px;padding:5px 6px}.lo-chip-sub,.lo-mission{display:none}.lo-toasts{bottom:96px}}.lo-victory{z-index:60;background:radial-gradient(#05060e8c,#05060ee0);justify-content:center;align-items:center;animation:.7s lo-vic-fade;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.lo-victory-card{text-align:center;background:#0a0e1aeb;border:1px solid #ffd16673;border-radius:22px;max-width:min(520px,88vw);padding:44px 56px;animation:.8s cubic-bezier(.2,1.6,.4,1) lo-vic-pop;box-shadow:0 0 60px #ffd1662e,0 24px 80px #0009}.lo-victory-rocket{font-size:56px;animation:2.4s ease-in-out infinite lo-vic-rocket}.lo-victory-title{letter-spacing:6px;color:var(--lo-amber);text-shadow:0 0 24px #ffd16680;margin:14px 0 10px;font-size:30px;font-weight:800}.lo-victory-sub{color:var(--lo-text);margin-bottom:18px;font-size:14px;line-height:1.5}.lo-victory-stats{color:var(--lo-dim);justify-content:center;gap:18px;margin-bottom:24px;font-size:13px;display:flex}.lo-victory-stats>div{border:1px solid var(--lo-border);background:#ffffff0d;border-radius:8px;padding:6px 12px}.lo-victory-btn{font:inherit;letter-spacing:2px;color:#0a0e1a;background:var(--lo-amber);cursor:pointer;border:none;border-radius:12px;padding:14px 28px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s}.lo-victory-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px #ffd16666}@keyframes lo-vic-fade{0%{opacity:0}}@keyframes lo-vic-pop{0%{opacity:0;transform:scale(.7)}}@keyframes lo-vic-rocket{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.boot-worlds{flex-wrap:wrap;justify-content:center;gap:14px;max-width:940px;margin-top:26px;animation:.5s lo-vic-fade;display:flex}.boot-world{width:168px;font:inherit;color:var(--lo-text);text-align:center;border:1px solid var(--lo-border);cursor:pointer;background:#0e1220d9;border-radius:16px;flex-direction:column;align-items:center;gap:5px;padding:18px 12px 14px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex}.boot-world:hover{border-color:var(--lo-amber);outline:none;transform:translateY(-6px)scale(1.03);box-shadow:0 12px 40px #ffd16638}.boot-world:focus-visible{border-color:var(--lo-amber);outline:none;transform:translateY(-6px)scale(1.03);box-shadow:0 12px 40px #ffd16638}.bw-emoji{filter:drop-shadow(0 4px 10px #00000080);font-size:40px;line-height:1}.bw-name{letter-spacing:1px;font-size:17px;font-weight:800}.bw-sub{letter-spacing:1.5px;color:var(--lo-dim);text-transform:uppercase;font-size:10px}.bw-blurb{color:var(--lo-dim);min-height:46px;font-size:11px;line-height:1.4}.bw-hint{letter-spacing:1.2px;color:var(--lo-amber);background:#ffd1661a;border:1px solid #ffd16659;border-radius:20px;margin-top:2px;padding:4px 10px;font-size:9px;font-weight:700}@media (max-height:820px){.boot-worlds{gap:10px;margin-top:16px}.boot-world{width:150px;padding:12px 10px 10px}.bw-emoji{font-size:32px}.bw-blurb{min-height:40px}}.lo-icon{object-fit:contain;vertical-align:middle;image-rendering:auto;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;display:inline-block}.lo-ic-xs{vertical-align:-.22em;width:1.15em;height:1.15em}.lo-ic-btn{vertical-align:-.28em;width:1.25em;height:1.25em;margin-right:2px}.lo-ic-tab{width:26px;height:26px}.lo-ic-tool{width:28px;height:28px}.lo-ic-tod{width:26px;height:26px}.lo-ic-card{width:34px;height:34px}.lo-ic-toast{width:26px;height:26px;margin-right:4px}.lo-ic-check{width:84px;height:84px}.lo-ic-victory{width:96px;height:96px}.lo-chip-ic{justify-content:center;align-items:center;display:inline-flex}.lo-chip-ic .lo-icon{width:26px;height:26px}.lo-tab-ic{justify-content:center;align-items:center;display:inline-flex}.lo-card-ic.has-art{filter:drop-shadow(0 2px 4px #0006);justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:none!important;background:0 0!important}.lo-tool,.lo-gear,.lo-sbtn,.lo-sel-close{justify-content:center;align-items:center;display:inline-flex}.lo-mission-check .lo-icon{filter:drop-shadow(0 0 12px #06d6a099)}.lo-toast{align-items:center;display:flex}.lo-toast-txt{display:inline-block}.lo-victory-rocket .lo-icon{filter:drop-shadow(0 6px 18px #ffd16666)}.lo-tier-next.is-max .lo-icon{display:none}.bw-art{object-fit:contain;filter:drop-shadow(0 6px 14px #0000008c);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:84px;height:84px}.btn-world-art{object-fit:contain;vertical-align:-.45em;width:1.5em;height:1.5em;margin-left:2px}@media (max-height:820px){.bw-art{width:64px;height:64px}}
