@font-face{font-family:pixel;src:url(../media/Handjet_latin-s.p.22ydqvhh64lzz.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:pixel Fallback;src:local(Arial);ascent-override:259.39%;descent-override:69.17%;line-gap-override:0.0%;size-adjust:34.02%}.KSrNLq_className{font-family:pixel,pixel Fallback}.KSrNLq_variable{--font-pixel:"pixel", "pixel Fallback"}
@font-face{font-family:numbers;src:url(../media/DotGothic16_latin-s.p.2eanmhcy0knut.woff2)format("woff2");font-display:swap;font-weight:400}@font-face{font-family:numbers Fallback;src:local(Arial);ascent-override:105.86%;descent-override:26.28%;line-gap-override:0.0%;size-adjust:109.58%}.uAF1oq_className{font-family:numbers,numbers Fallback;font-weight:400}.uAF1oq_variable{--font-num:"numbers", "numbers Fallback"}
[data-theme=purple]{--bg:#1b1726;--dot:#2e2840;--card:#29223a;--card-head:#332a49;--card-edge:#44395f;--art:#221c31;--panel:#241e35;--text:#efe6ff;--muted:#a597c4;--dim:#7a6d99;--lilac:#b9a3ff;--on-lilac:#221640;--pink:#d9c2ff;--btn:#3a3054;--ink:#14121c;--shade:#1b1726;--deep:#120f1a;--hover-edge:#5a4c7c;--bevel-light:#5f5088;--scrim:#0c0a12b0;--frame-panel:url(/ui/riveted_panel-purple.png);--frame-slot:url(/ui/riveted_slot-purple.png)}[data-theme=black]{--bg:#0b0b0d;--dot:#1d1d21;--card:#17171a;--card-head:#202024;--card-edge:#2e2e34;--art:#111113;--panel:#131316;--text:#ececf0;--muted:#9a9aa4;--dim:#6c6c76;--lilac:#d6d6e0;--on-lilac:#111114;--pink:#c9c9d3;--btn:#26262b;--ink:#040405;--shade:#0c0c0e;--deep:#070708;--hover-edge:#44444c;--bevel-light:#44444c;--scrim:#000000b8;--frame-panel:url(/ui/riveted_panel-black.png);--frame-slot:url(/ui/riveted_slot-black.png)}[data-theme=gray]{--bg:#2a2c30;--dot:#393c41;--card:#3a3d43;--card-head:#45484f;--card-edge:#575b63;--art:#2f3136;--panel:#33363b;--text:#f0f1f3;--muted:#b4b8bf;--dim:#8a8e96;--lilac:#9fc4e8;--on-lilac:#10233a;--pink:#c7d6e6;--btn:#4a4e55;--ink:#16171a;--shade:#24262a;--deep:#1d1f22;--hover-edge:#6c7079;--bevel-light:#757a83;--scrim:#111214b0;--frame-panel:url(/ui/riveted_panel-gray.png);--frame-slot:url(/ui/riveted_slot-gray.png)}:root,[data-theme=brown]{--bg:#1f1814;--dot:#30251d;--card:#2e231c;--card-head:#3a2d24;--card-edge:#54402f;--art:#261d17;--panel:#2a201a;--text:#f3e6d6;--muted:#c4aa8e;--dim:#8f7860;--lilac:#e8c39a;--on-lilac:#2a1a0c;--pink:#e6cfb4;--btn:#44342a;--ink:#120c08;--shade:#1a130f;--deep:#140e0a;--hover-edge:#6e543e;--bevel-light:#7a5c43;--scrim:#0d0907b8;--frame-panel:url(/ui/riveted_panel-brown.png);--frame-slot:url(/ui/riveted_slot-brown.png)}:root{--mint:#7ee0b0;--bad:#ff6b8a;--hl:#ff9f5a;--hl-hover:#ffb27a;--hl-text:#2a1406;--shadow:0 10px 28px #0009;--radius:12px;--cur-arrow:url(/cursors/arrow.png) 1 1, default;--cur-hand:url(/cursors/hand.png) 11 1, pointer;--cur-grab:url(/cursors/grab.png) 16 16, grab;--cur-grabbing:url(/cursors/grabbing.png) 16 18, grabbing;--cur-link:url(/cursors/link.png) 15 15, crosshair}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-pixel), monospace;font-size-adjust:.62;letter-spacing:.02em;cursor:var(--cur-arrow);-webkit-user-select:none;user-select:none;margin:0;font-size:15px}a,label,select,summary,input[type=range]{cursor:var(--cur-hand)}button{font:inherit;color:var(--text);background:var(--btn);cursor:var(--cur-hand);border:0;border-radius:999px;padding:3px 14px;font-size:14px}button:hover:not(:disabled){filter:brightness(1.18)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:var(--cur-arrow)}button.on{background:var(--lilac);color:var(--on-lilac)}button.ghost{color:var(--muted);background:0 0}button.ghost:hover:not(:disabled){filter:none;background:#ffffff10}button.danger{color:var(--bad)}.loading{padding:40px}.game{background:var(--bg);color:var(--text);flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{z-index:20;background:var(--panel);border-bottom:2px solid var(--card-edge);align-items:center;gap:16px;height:50px;padding:0 10px 0 16px;display:flex;position:relative}.brand{flex-direction:column;min-width:150px;line-height:1.15;display:flex}.brand strong{color:var(--lilac);font-size:16px;font-weight:400}.brand span{color:var(--muted);font-size:11px}.res{margin:0;padding:0;list-style:none;display:flex}.res li{width:112px;cursor:var(--cur-arrow);border-right:1px solid #ffffff12;flex-shrink:0;grid-template-columns:24px auto;align-items:center;column-gap:7px;padding:2px 12px;display:grid;position:relative}.floater{z-index:30;font-family:var(--font-num), monospace;color:#ffd75e;background:color-mix(in srgb, var(--bg) 82%, transparent);text-shadow:0 0 6px #ffd75e80;pointer-events:none;border:1px solid #ffd75e55;border-radius:999px;padding:1px 7px;font-size:14px;animation:1.1s ease-out forwards float-up;position:absolute;top:calc(100% + 10px);left:22px}@keyframes float-up{0%{opacity:0;transform:translateY(16px)scale(.85)}20%{opacity:1;transform:translateY(4px)scale(1.1)}70%{opacity:1}to{opacity:0;transform:translateY(0)scale(1)}}.res li .item-icon{grid-row:1/3}.res b{white-space:nowrap;font-size:15px;font-weight:400;line-height:1.15}.res em{color:var(--mint);margin-left:5px;font-size:12px;font-style:normal}.res li>span{color:var(--muted);white-space:nowrap;font-size:11px;line-height:1.15}.res em.neg{color:var(--bad)}.goal-wrap{flex-shrink:0;margin-left:auto;position:relative}.goal-wants{z-index:60;background:var(--bg);border:1px solid var(--card-edge);pointer-events:none;white-space:normal;border-radius:10px;width:300px;padding:10px 12px;position:absolute;top:calc(100% + 6px);right:0}.goal-wants h4{color:var(--hl);margin:0 0 6px}.goal-wants .hint{margin:6px 0 0}.wants{flex-direction:column;gap:4px;margin:6px 0;padding:0;list-style:none;display:flex}.wants li{align-items:center;gap:8px;display:flex}.rk-stages .wants li{background:0 0;border:0;align-items:center;padding:0;display:flex}.wants .want-name{flex:1}.item-icon.drawn canvas{image-rendering:pixelated;display:block}.wants b{font-weight:400}.wants .have b{color:var(--ok,#7fd1a0)}.wants .short b{color:var(--bad,#e8728a)}.ms-made{align-items:center;gap:8px;display:flex}.ms-made p{margin:0}.goal{white-space:nowrap;background:var(--bg);border:1px solid var(--card-edge);border-radius:10px;flex-shrink:0;align-items:center;gap:9px;padding:6px 14px;display:flex}.goal svg{color:var(--hl)}.pips{gap:3px;display:flex}.pips i{background:linear-gradient(90deg, var(--hl) var(--fill), var(--btn) var(--fill));border-radius:4px;width:20px;height:7px}.icon-btn{width:36px;height:32px;color:var(--muted);background:0 0;border-radius:10px;place-items:center;padding:0;display:grid}.icon-btn.on{color:var(--on-lilac)}.menu-wrap{position:relative}.body{flex:1;min-height:0;display:flex;position:relative}.stage{flex:1;min-width:0;position:relative}.hotbar,.menus{z-index:10;background:var(--card);border:2px solid var(--card-edge);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;bottom:14px}.hotbar{left:50%;transform:translate(-50%)}.limit{border-right:1px solid var(--card-edge);flex-direction:column;align-items:center;padding:0 10px 0 6px;line-height:1.15;display:flex}.limit b{font-size:16px;font-weight:400}.limit span{color:var(--muted);font-size:11px}.limit.full b{color:var(--bad)}.slot{background:var(--card-head);border-radius:10px;outline:2px solid #0000;flex-direction:column;align-items:center;gap:3px;width:70px;padding:4px 3px 3px;transition:transform .16s cubic-bezier(.3,1.6,.5,1),box-shadow .16s,outline-color .16s;display:flex;position:relative}.slot:hover{outline-color:var(--hl);filter:none;transform:translateY(-8px)scale(1.06);box-shadow:0 10px 18px #0009,0 0 14px #ff9f5a40}.slot:active:not(:disabled){transform:translateY(-4px)scale(.98)}.slot:after{content:attr(data-name);white-space:nowrap;color:var(--text);background:var(--panel);border:1px solid var(--card-edge);box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:8px;padding:3px 10px;font-size:13px;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.slot:hover:after{opacity:1;transform:translate(-50%)}.slot .thumb .sprite{transition:filter .16s}.slot:hover .thumb .sprite{filter:brightness(1.2)}.slot.on{outline:2px solid var(--hl);color:var(--text);background:#ff9f5a26}.slot.dim{opacity:.45}.thumb{background:var(--art);border-radius:6px;width:60px;height:30px;overflow:hidden}.thumb .scene,.thumb .sprite{width:60px;height:30px}.thumb .sprite{background-size:calc(var(--frames) * 100%) 100%;animation:none}.slot-name{color:var(--muted);white-space:nowrap;font-size:13px}.slot-free{white-space:nowrap;color:#17110c;background:var(--hl);padding:0 4px;font-size:11px;position:absolute;top:-6px;right:-6px}.group{position:relative}.slot.group-btn{width:auto;color:var(--text);flex-direction:row;gap:7px;padding:9px 12px;font-size:14px}.slot.group-btn:after{display:none}.slot.group-btn:hover,.slot.group-btn.open{outline-color:var(--hl);transform:translateY(-3px)}.slot.group-btn.open{color:var(--hl)}.key-hint{font:inherit;color:var(--muted);opacity:.8;pointer-events:none;font-size:10px;line-height:1;position:absolute;bottom:1px;left:3px}.group-count{text-align:center;min-width:16px;color:var(--muted);background:var(--shade);padding:0 4px;font-size:11px;font-style:normal;line-height:16px}.slot.group-btn.new:before{content:"NEW";color:var(--hl-text);background:var(--hl);box-shadow:0 0 0 2px var(--ink), 0 0 10px var(--hl);padding:0 5px;font-size:11px;line-height:15px;animation:1.2s ease-in-out infinite group-new;position:absolute;top:-12px;right:-6px}@keyframes group-new{50%{translate:0 -3px}}.slot-wrap{position:relative}.slot[data-card]:after{display:none}.line-tip.card-pop{width:312px;animation:.14s cubic-bezier(.2,.8,.2,1) tray-in;bottom:calc(100% + 14px);left:50%;translate:-50%}.card-pop-art{justify-content:center;margin:2px 0 8px;display:flex}.card-pop-art .sprite{background-size:calc(var(--frames) * 100%) 100%;width:160px;height:80px;image-rendering:pixelated;animation:card-sheet calc(var(--frames) * .14s) steps(var(--frames)) infinite;background-repeat:no-repeat}.line-tip.card-pop p{box-shadow:none;background:0 0;margin:0 0 8px;padding:0;font-size:14px}.card-pop-row{display:contents}.card-pop dd{font-family:inherit}.card-pop .cost{flex-wrap:wrap;gap:2px 8px;display:inline-flex}.line-tip.card-pop .card-pop-note{color:#ff8a70;margin:8px 0 0}.tray-wrap{z-index:11;padding-bottom:14px;position:absolute;bottom:100%;left:50%;translate:-50%}.tray{background:var(--card);border:2px solid var(--card-edge);box-shadow:var(--shadow);border-radius:14px;gap:6px;padding:6px;animation:.16s cubic-bezier(.2,.8,.2,1) tray-in;display:flex}@keyframes tray-in{0%{opacity:0;transform:translateY(8px)}}.menus{gap:2px;right:14px}.menus button{background:0 0;border-radius:10px;flex-direction:column;align-items:center;gap:3px;min-width:58px;padding:6px 6px 4px;font-size:12px;transition:transform .16s cubic-bezier(.3,1.6,.5,1),background .16s;display:flex;position:relative}.menus button:hover{filter:none;background:#ffffff10;transform:translateY(-3px)}.menus button.on{color:var(--on-lilac);background:var(--lilac)}.badge{min-width:17px;color:var(--hl-text);background:var(--hl);border-radius:999px;padding:0 5px;font-size:10px;font-style:normal;line-height:17px;position:absolute;top:-7px;right:2px}.drawer{background:var(--panel);border-left:0 solid var(--card-edge);flex-shrink:0;width:0;transition:width .28s cubic-bezier(.2,.8,.2,1),border-left-width .28s;overflow:hidden}.drawer.open{border-left-width:2px;width:330px}.drawer-inner{opacity:0;flex-direction:column;width:328px;height:100%;transition:opacity .2s,transform .28s cubic-bezier(.2,.8,.2,1);display:flex;transform:translate(28px)}.drawer.open .drawer-inner{opacity:1;transition-delay:60ms;transform:none}.drawer-inner>header{color:var(--muted);border-bottom:1px solid var(--card-edge);justify-content:space-between;align-items:center;padding:8px 10px 8px 18px;font-size:12px;display:flex}.drawer-inner>header button{padding:0 10px;font-size:18px}.canvas{cursor:var(--cur-grab);touch-action:none;position:absolute;inset:0;overflow:hidden}.canvas.panning,.canvas.panning *,.canvas.moving,.canvas.moving *{cursor:var(--cur-grabbing)}.canvas.placing,.canvas.placing *,.canvas.linking,.canvas.linking *{cursor:var(--cur-link)}.world{transform-origin:0 0;position:absolute;top:0;left:0}.terrain{image-rendering:pixelated;pointer-events:none;position:absolute;top:0;left:0}.obstacle{box-shadow:none;cursor:var(--cur-hand);background:0 0;border:0;padding:0;position:absolute}.obstacle:hover,.obstacle:focus-visible{outline:2px dashed var(--hl);outline-offset:2px;background:#fff1}.obstacle.broke:hover{outline-color:var(--muted)}.obstacle.tree{cursor:url(/cursors/axe.png) 6 4, var(--cur-hand)}.obstacle.tree:hover,.obstacle.tree:focus-visible{filter:none;background:0 0;outline:none}.obstacle.tree:active{transform:none}.pines_s{--tree:url(/map/pines_s.png);--root:50% 85%}.pines_m{--tree:url(/map/pines_m.png);--root:36% 90%}.pines_l{--tree:url(/map/pines_l.png);--root:53% 91%}.obstacle.tree:before,.felled:before,.felled i,.regrowing{content:"";background:var(--tree) 0 0 / 800% 100%;image-rendering:pixelated;transform-origin:var(--root);position:absolute}.obstacle.tree:before,.felled:before,.felled i{inset:0}.obstacle.tree:before{background-position-x:calc(var(--hurt,0) * 100% / 7)}.regrowing{background-position-x:calc(var(--frame) * 100% / 7);pointer-events:none}.obstacle.tree:hover:before{filter:brightness(1.12)}.obstacle.tree.chopping:before{animation:.14s step-end infinite tree-tremble}.obstacle.tree.chopping.hit-0:before{animation:.14s step-end infinite tree-tremble,.32s ease-out tree-hit-0}.obstacle.tree.chopping.hit-1:before{animation:.14s step-end infinite tree-tremble,.32s ease-out tree-hit-1}@keyframes tree-tremble{0%{transform:skew(-1.2deg)}50%{transform:skew(1.2deg)}}@keyframes tree-hit-0{0%{filter:brightness(1.5);rotate:5deg}35%{filter:brightness();rotate:-2.5deg}70%{rotate:1deg}}@keyframes tree-hit-1{0%{filter:brightness(1.5);rotate:-5deg}35%{filter:brightness();rotate:2.5deg}70%{rotate:-1deg}}.felled{--fall:88deg;pointer-events:none;position:absolute}.felled.left{--fall:-88deg}.felled:before{background-position-x:71.4286%;animation:1.5s linear both stump-fade}.felled.regrows:before{display:none}.felled i{background-position-x:57.1429%;animation:1.05s both tree-fall}@keyframes tree-fall{0%{rotate:calc(var(--fall) * -.03);animation-timing-function:cubic-bezier(.55,0,.9,.5)}59%{rotate:var(--fall);opacity:1;animation-timing-function:ease-out}68%{rotate:calc(var(--fall) * .92);animation-timing-function:ease-in}77%{rotate:var(--fall);opacity:1}to{rotate:var(--fall);opacity:0}}@keyframes stump-fade{70%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.obstacle.tree.chopping:before,.obstacle.tree.chopping.hit-0:before,.obstacle.tree.chopping.hit-1:before{animation:none}.felled i{display:none}}.obstacle.rock{cursor:url(/cursors/pick.png) 1 17, var(--cur-hand)}.obstacle.rock:hover,.obstacle.rock:focus-visible{background:0 0;outline:none}.obstacle.rock:before,.broken:before,.broken i{content:"";background:var(--rock) 0 0 / 500% 100%;image-rendering:pixelated;transform-origin:50% 90%;position:absolute;inset:0}.obstacle.rock:before{background-position-x:calc(var(--hurt,0) * 100% / 4)}.obstacle.rock:hover:before{filter:brightness(1.12)}.obstacle.rock.broke:hover:before{filter:grayscale(.4)}.obstacle.rock.chopping.hit-0:before{animation:.24s steps(3,end) both rock-hit-0}.obstacle.rock.chopping.hit-1:before{animation:.24s steps(3,end) both rock-hit-1}@keyframes rock-hit-0{0%{filter:brightness(1.5);translate:-4px}50%{filter:brightness(1.15);translate:4px}to{translate:0}}@keyframes rock-hit-1{0%{filter:brightness(1.5);translate:4px}50%{filter:brightness(1.15);translate:-4px}to{translate:0}}.broken{pointer-events:none;position:absolute}.broken:before{background-position-x:100%;animation:1.5s linear both stump-fade}.broken i{background-position-x:75%;animation:.3s ease-in both rock-burst}@keyframes rock-burst{0%{filter:brightness(1.6)}to{opacity:0;transform:scale(1.15,.6)}}@media (prefers-reduced-motion:reduce){.obstacle.rock.chopping.hit-0:before,.obstacle.rock.chopping.hit-1:before{animation:none}.broken i{display:none}}.ore-glint{width:20px;height:20px;image-rendering:pixelated;pointer-events:none;opacity:0;background:url(/fx/sparkle.png) 0 0/100% 100% no-repeat;margin:-10px 0 0 -10px;animation:1.2s step-end both ore-glint;position:absolute}.ore-glint.stone{animation-name:ore-glint-soft}@keyframes ore-glint{0%{opacity:.6;transform:scale(.4)}18%{opacity:1;transform:scale(.8)}36%{opacity:1;transform:scale(1)}54%{opacity:1;transform:scale(.8)}72%{opacity:.6;transform:scale(.4)}90%,to{opacity:0}}@keyframes ore-glint-soft{0%{opacity:.3;transform:scale(.4)}18%{opacity:.6;transform:scale(.6)}54%{opacity:.6;transform:scale(.6)}72%{opacity:.3;transform:scale(.4)}90%,to{opacity:0}}.obstacle.tree,.regrowing{transform-origin:var(--root)}.cloud{image-rendering:pixelated;pointer-events:none;opacity:0;position:absolute;left:0}.cloud.drifting{opacity:.16;animation:steps(2700,end) infinite cloud-drift}@keyframes cloud-drift{0%{transform:translate(-2160px)}to{transform:translate(8640px)}}.flock{z-index:8;pointer-events:none;animation:linear forwards flock-fly;position:absolute}.flock.west{animation-name:flock-fly-west;scale:-1 1}@keyframes flock-fly{to{transform:translate(var(--dx), var(--dy))}}@keyframes flock-fly-west{to{transform:translate(calc(var(--dx) * -1), var(--dy))}}.bird{width:36px;height:28px;image-rendering:pixelated;background:url(/map/bird.png) 0 0/400% 100%;animation:3s step-end infinite bird-flap;position:absolute}@keyframes bird-flap{0%,36%,to{background-position-x:33.3333%}6%,18%,30%{background-position-x:0}12%,24%{background-position-x:66.6667%}}:is(.game:has(.obstacle.chopping) .tut-ring,.game:has(.obstacle.chopping) .tut-point){opacity:0;animation:none}.chop-bar{z-index:3;pointer-events:none;background:#1b1a22;gap:2px;height:12px;padding:2px;display:flex;position:absolute;box-shadow:0 0 0 2px #120c08}.chop-bar span{background:#3a3440;flex:1;min-width:0}.chop-bar i{transform-origin:0;background:#d9a441;height:100%;display:block}.chop-bar .gone i{display:none}.chop-bar i[style]{animation:linear both chop-drain}@keyframes chop-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.dust.wood i{background:#b0824e}.dust.wood b{color:#f3e3c3;text-shadow:0 2px #120c08;pointer-events:none;font-size:18px;animation:.8s ease-out both wood-gain;position:absolute;top:-8px;left:50%}@keyframes wood-gain{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-34px)}}.card.unlit .art>:first-child{filter:saturate(.35)brightness(.72)}.act.unlit{animation:1.4s ease-in-out infinite unlit-glow}@keyframes unlit-glow{50%{box-shadow:0 0 0 3px #ff9f5a88}}.canvas.placing .obstacle,.canvas.moving .obstacle{pointer-events:none}.canvas.placing .card:not(.ghost),.canvas.moving .card:not(.held):not(.dragging){opacity:.55}.foot{pointer-events:none;background:#7fe0a822;border:3px dashed #7fe0a8;width:64px;height:64px;position:absolute;top:60px;left:60px}.foot.bad{border-color:var(--bad);background:#ff5a4a22}.card.sweet{animation:.9s ease-in-out infinite sweet-spot;box-shadow:0 0 0 3px #7fe0a8,0 0 26px 8px #7fe0a899}@keyframes sweet-spot{50%{box-shadow:0 0 0 3px #b4f4cf,0 0 38px 14px #7fe0a8bb}}.card.ore-low .card-sub{color:var(--hl)}.card.ore-low,.card.depot.ore-warning{outline-offset:2px;outline:3px solid #ff9f5a;animation:1.2s ease-in-out infinite ore-warning}@keyframes ore-warning{50%{outline-color:#ff9f5a33}}.card.paused .art .sprite,.card.off-ore .art .sprite{filter:grayscale(.85)brightness(.65)}.dust{pointer-events:none;position:absolute}.dust i{background:#b5a78a;width:12px;height:12px;animation:.7s steps(7,end) forwards dust-off;position:absolute;top:60%;left:50%}@keyframes dust-off{to{transform:translate(var(--dx), var(--dy));opacity:0}}.vignette{z-index:1;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 170px 34px #140e078c,inset 0 28px 36px -18px #140e0799}.view-tools{z-index:10;background:var(--card);border:2px solid var(--card-edge);box-shadow:var(--shadow);cursor:var(--cur-arrow);border-radius:999px;align-items:center;gap:4px;padding:5px;font-size:12px;display:flex;position:absolute;bottom:14px;left:14px}.view-tools span{text-align:center;min-width:40px;color:var(--muted)}.view-tools button{place-items:center;min-width:28px;height:26px;padding:0 8px;display:grid}.links{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.link{pointer-events:stroke;cursor:var(--cur-hand)}.link .hit{fill:none;stroke:#0000;stroke-width:14px}.link .wire{fill:none;stroke:var(--deep);stroke-width:7px}.cv .canvas .card,.link,.link-item{transition:opacity .2s,filter .2s}.cv .canvas .card.dim{opacity:.32;filter:grayscale(.75)brightness(.75)}.cv .canvas .card.chain{filter:drop-shadow(0 6px #0007)drop-shadow(0 0 7px #7ee0b066)}.cv .canvas .card.focus{filter:drop-shadow(0 6px #0007)drop-shadow(0 0 10px #7ee0b0aa)}.link.muted,.link-item.muted{opacity:.12}.links-top{z-index:7;pointer-events:none;animation:.2s ease-out lift-in;position:absolute;top:0;left:0;overflow:visible}@keyframes lift-in{0%{opacity:0}}.links-top path{fill:none;stroke-linecap:round;stroke-linejoin:round}.lift-shadow{stroke:var(--ink);stroke-width:9px;opacity:.85}.lift-line{stroke-width:3.5px;filter:drop-shadow(0 0 3px #7ee0b0)}.lift-pulse{stroke:#fff6e0;stroke-width:3.5px;stroke-dasharray:3 22;animation:.9s linear infinite lift-pulse}@keyframes lift-pulse{to{stroke-dashoffset:-25px}}.link .ties{fill:none;stroke:color-mix(in srgb, var(--card-edge) 75%, var(--bg));stroke-width:14px;stroke-dasharray:3 7}.link.rails .wire{stroke:color-mix(in srgb, var(--muted) 82%, var(--text))}.link .gauge{fill:none;stroke:var(--deep);stroke-width:3px}.link.full .wire{animation:1.2s ease-in-out infinite line-full}@keyframes line-full{50%{stroke:#b4485a}}.line-tip{z-index:12;pointer-events:none;width:230px;color:var(--muted);border:6px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;image-rendering:pixelated;filter:drop-shadow(0 6px #0007);padding:8px 10px;font-size:12px;position:absolute}.line-price{white-space:nowrap;width:auto;color:var(--text);font-size:15px}.line-price.short{color:#ff8a70}.line-tip strong{color:var(--hl);margin-bottom:4px;font-size:15px;font-weight:400;display:block}.ratio-tag{z-index:6;pointer-events:none;transform-origin:0 0;font-family:var(--font-num), monospace;color:var(--muted);background:var(--ink);border:2px solid var(--card-edge);padding:1px 5px;font-size:12px;line-height:1.1;position:absolute}.ratio-tag.good{color:var(--mint);border-color:var(--mint)}.ratio-tag.short,.ratio-tag.stopped{color:var(--hl);border-color:var(--hl)}.ratio-tag.backed{color:#ff8a70;border-color:#ff8a70}.focusing .ratio-tag{opacity:.35}.view-tools .ratio-toggle{font-family:var(--font-num), monospace}.view-tools .ratio-toggle.on{color:var(--hl-text);background:var(--hl)}.view-tools .ratio-toggle.nudge{animation:1.2s ease-in-out infinite ratio-nudge}@keyframes ratio-nudge{50%{color:var(--hl-text);background:var(--hl)}}.ratio-tip{width:280px;color:var(--muted);background:var(--card);border:2px solid var(--hl);box-shadow:var(--shadow);align-items:center;gap:8px;padding:6px 8px 6px 12px;font-size:14px;animation:.2s ease-out lift-in;display:flex;position:absolute;bottom:calc(100% + 36px);left:0}.ratio-tip p{flex:1;margin:0}.ratio-tip b{color:var(--hl);font-weight:400}.chain-label{z-index:8;white-space:nowrap;pointer-events:none;transform-origin:0 0;font-family:var(--font-num), monospace;color:var(--muted);background:var(--ink);border:2px solid var(--card-edge);flex-direction:column;align-items:center;gap:1px;padding:3px 8px;font-size:12px;line-height:1.1;animation:.2s ease-out lift-in;display:flex;position:absolute}.chain-label b{color:var(--text);font-size:14px;font-weight:400}.chain-label i{color:var(--text);margin-left:6px;font-style:normal}.chain-label em{font-family:var(--font-pixel), monospace;font-size:14px;font-style:normal}.chain-label>span{align-items:center;gap:3px;display:flex}.chain-label.on-line{flex-direction:row;gap:3px;padding:2px 6px}.chain-label.good{border-color:var(--mint)}.chain-label.good em{color:var(--mint)}.chain-label.short,.chain-label.stopped{border-color:var(--hl)}.chain-label.short em,.chain-label.stopped em{color:var(--hl)}.chain-label.backed,.chain-label.full{border-color:#ff8a70}.chain-label.backed em,.chain-label.full i{color:#ff8a70}.line-tip strong.line-tip-head{justify-content:space-between;align-items:center;display:flex}.line-tip dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:0;display:grid}.line-tip dt{color:var(--dim)}.line-tip dd{font-family:var(--font-num), monospace;color:var(--text);margin:0}.line-tip dd.full{color:var(--bad)}.line-tip p{color:var(--text);background:var(--shade);box-shadow:inset 3px 0 0 var(--bad);margin:6px 0 0;padding:4px 6px}.line-tip em{color:var(--dim);margin-top:6px;font-size:11px;font-style:normal;display:block}.flow{fill:none;stroke-width:2.5px;stroke-linecap:round;opacity:.6;transition:opacity .3s}.flow.on{opacity:.95}.flow.drafting{opacity:1;stroke-width:3px;stroke-dasharray:2 8;animation:.7s linear infinite flow}.flow.laid{opacity:1;stroke-width:4px}.draft-point{fill:#efe3b0;stroke:var(--ink)}.link-item{z-index:1;offset-anchor:center;offset-rotate:0deg;pointer-events:none;filter:drop-shadow(0 2px #000a);transition:offset-distance .1s linear;animation:.12s ease-out item-pop;position:absolute;top:0;left:0}@keyframes item-pop{0%{transform:scale(.3)}}.link:hover .wire{stroke:var(--bad)}@keyframes flow{to{stroke-dashoffset:-10px}}.card{background:var(--card);border:2px solid var(--card-edge);border-radius:var(--radius);cursor:var(--cur-grab);-webkit-user-select:none;user-select:none;flex-direction:column;transition:box-shadow .1s,transform .1s;display:flex;position:absolute;box-shadow:0 8px 20px #0007}.card:hover{border-color:var(--hover-edge)}.card.selected{border-color:var(--hl);box-shadow:0 0 0 3px #ff9f5a40,0 8px 20px #0007}.card.top{z-index:3}.card.dragging{cursor:var(--cur-grabbing);z-index:5;opacity:.55;outline:2px dashed var(--mint);outline-offset:2px}.cv .canvas .card.held{z-index:8;pointer-events:none;opacity:.75;filter:drop-shadow(0 12px #0008)}@property --sweep{syntax:"<angle>";inherits:false;initial-value:0deg}.card.fresh{z-index:4;animation:.7s cubic-bezier(.3,1.6,.5,1) backwards card-spawn,1.6s ease-in-out .7s infinite fresh-glow}.card.fresh:before{content:"";pointer-events:none;background:conic-gradient(from var(--sweep), #ff9f5a00 0deg, #ffd59a 50deg, #fff6ea 70deg, #ff9f5a 100deg, #ff9f5a00 170deg, #ffd59a 230deg, #fff6ea 250deg, #ff9f5a 280deg, #ff9f5a00 350deg);-webkit-mask-composite:xor;filter:drop-shadow(0 0 6px #ff9f5a);padding:4px;animation:2.2s linear infinite fresh-sweep;position:absolute;inset:-10px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.card.fresh:after{content:"NEW";letter-spacing:.08em;color:var(--hl-text);background:var(--hl);box-shadow:inset 2px 2px 0 #ffd2a8, inset -2px -2px 0 #c46a2c, 0 0 0 2px var(--ink), 0 0 12px #ff9f5a99;pointer-events:none;padding:1px 8px 2px;font-size:15px;line-height:1.1;animation:1s steps(2,end) infinite fresh-bob;position:absolute;top:-30px;left:50%;translate:-50%}@keyframes card-spawn{0%{opacity:0;filter:brightness(2.2);scale:.4}60%{opacity:1}}@keyframes fresh-glow{50%{box-shadow:0 0 26px 4px #ff9f5a66,0 8px 20px #0007}}@keyframes fresh-sweep{to{--sweep:360deg}}@keyframes fresh-bob{50%{translate:-50% -3px}}.card.ghost{pointer-events:none;opacity:.75;border-style:dashed;border-color:var(--hl);box-shadow:none}.card.ghost.bad{border-color:var(--bad);outline:2px dashed var(--bad);outline-offset:2px}.card.ghost.bad p{color:var(--bad)}.card.ghost p{text-align:center;color:var(--muted);margin:0;padding:50px 10px;font-size:13px}.card-head{background:var(--card-head);border-top:3px solid var(--card-edge);border-radius:10px 10px 0 0;justify-content:space-between;align-items:center;padding:5px 9px 4px;font-size:14px;display:flex}.card.machine .card-head{border-top-color:var(--hl)}.card.depot .card-head{border-top-color:var(--lilac)}.mk{color:var(--hl-text);background:var(--hl);border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px}.lamp{background:var(--pink);opacity:.6;border-radius:50%;width:9px;height:9px}.lamp.running{background:var(--mint);opacity:1;box-shadow:0 0 8px var(--mint)}.lamp.paused{background:var(--muted)}.lamp.blocked{background:var(--bad);opacity:1;box-shadow:0 0 8px var(--bad)}.art{background:var(--art);justify-content:center;align-items:center;height:80px;margin:0 2px;display:flex;position:relative;overflow:hidden}.scene{width:160px;height:80px;image-rendering:pixelated;display:block}.fuel-chip{color:var(--muted);pointer-events:auto;background:#0b0a12cc;align-items:center;gap:4px;padding:1px 5px 1px 3px;font-size:11px;line-height:14px;display:flex;position:absolute;top:4px;left:4px;box-shadow:0 0 0 1px #ffffff14}.fuel-chip.stoked{color:var(--hl-text);background:var(--hl);animation:.9s steps(3,end) infinite stoke-flicker;box-shadow:inset 1px 1px #ffd2a8,inset -1px -1px #c46a2c,0 0 10px #ff9f5a99}.fuel-chip.wood{color:#e6c78f}.fuel-chip.out{color:#fff1f4;background:#a8324e;animation:1s ease-in-out infinite fuel-out}@keyframes stoke-flicker{50%{box-shadow:inset 1px 1px #ffd2a8,inset -1px -1px #c46a2c,0 0 4px #ff9f5a66}}@keyframes fuel-out{50%{opacity:.6}}.depot-list .fuel-tag{vertical-align:2px;color:#ffb06a;background:#ff9f5a1f;align-items:center;gap:3px;margin-left:6px;padding:0 4px;font-size:11px;display:inline-flex}.depot-list .coal-eta{text-align:right;color:var(--muted);grid-column:2/4;font-size:11px}.depot-list .coal-eta.low{color:var(--hl);animation:1s ease-in-out infinite coal-low}.depot-list .coal-eta.out{color:var(--bad)}@keyframes coal-low{50%{opacity:.55}}.seam{z-index:2;background:radial-gradient(circle at 50% 55%,#ffd77a40,#0000 70%);border-radius:0;padding:0;animation:.9s ease-in-out infinite seam-pulse;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #ffd77a,inset 0 0 14px #ffd77a90}.seam:after{content:"";transform-origin:0;width:100%;height:3px;transform:scaleX(var(--left));background:#ffd77a;transition:transform .1s linear;position:absolute;bottom:0;left:0}.seam span{white-space:nowrap;color:var(--hl-text);box-shadow:0 0 0 2px var(--ink), 0 0 12px #ffd77a;background:#ffd77a;padding:1px 8px;font-size:12px;position:absolute;bottom:8px;left:50%;translate:-50%}.seam .glint{clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);background:#fff6d0;width:6px;height:6px;animation:1.1s ease-in-out infinite seam-glint;position:absolute;box-shadow:0 0 6px #ffd77a}.seam .glint.a{top:22%;left:22%}.seam .glint.b{animation-delay:-.4s;top:34%;left:64%}.seam .glint.c{animation-delay:-.8s;top:12%;left:42%}@keyframes seam-pulse{50%{box-shadow:inset 0 0 0 2px #ffd77a80,inset 0 0 6px #ffd77a50}}@keyframes seam-glint{0%,to{opacity:.3;scale:.4}50%{opacity:1;scale:1.6}}.depot-list li.running-out{background:#ff9f5a1a;margin:0 -4px;padding-left:4px;padding-right:4px;animation:1.2s ease-in-out infinite feeding-pulse;box-shadow:inset 0 0 0 2px #ff9f5a}.depot-list .ore-tag{text-align:right;color:#ffb06a;grid-column:2/4;font-size:11px}.depot-list li.feeding{background:#ff9f5a1a;margin:0 -4px;padding-left:4px;padding-right:4px;animation:1.2s ease-in-out infinite feeding-pulse;box-shadow:inset 0 0 0 2px #ff9f5a}@keyframes feeding-pulse{50%{box-shadow:inset 0 0 0 2px #ff9f5a55}}.portrait{background-color:var(--art);image-rendering:pixelated;box-shadow:0 0 0 2px var(--ink), inset 0 0 0 1px #ffffff12;background-position:0 0;background-repeat:no-repeat;flex-shrink:0;animation:4.2s step-end infinite portrait-blink;display:block}@keyframes portrait-blink{0%{background-position:0 0}94%{background-position:100% 0}97%{background-position:0 0}}.requests>li.request{gap:7px;padding:10px 11px 9px}.request-head{align-items:center;gap:10px;display:flex}.request-who{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.request-who strong{color:var(--text);font-size:15px;font-weight:400}.request-tag{color:var(--muted);background:var(--shade);padding:0 6px;font-size:11px;line-height:16px}.request-tag.timed{color:var(--hl-text);background:var(--hl)}.request-tag.story{color:var(--ink);background:var(--mint)}.request-text{color:var(--muted);margin:0;font-size:13px;line-height:1.4}.request-time{height:4px}.request-time i{background:var(--hl);transition:width .1s linear}.request-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;display:flex}.request-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.request-actions button{white-space:nowrap}.request-actions .research{color:var(--hl-text);background:var(--hl);border-radius:0;padding:2px 14px;font-size:13px;box-shadow:inset 2px 2px #ffd2a8,inset -2px -2px #c46a2c}.request-actions .research:disabled{color:var(--muted);background:var(--btn);box-shadow:none;opacity:1}.request-reward{color:var(--mint);border-top:1px solid #ffffff0d;margin:0;padding-top:7px;font-size:12px;line-height:1.35}.request-reward span{color:var(--dim);margin-right:4px}.letters>li.letter-item{flex-direction:row;align-items:flex-start;gap:10px}.letters>li.letter-item p{margin:3px 0 0}.letter-head{align-items:center;gap:12px;margin-bottom:4px;display:flex}.letter-head .from{margin:0}.treat{color:var(--text);background:var(--shade);box-shadow:inset 3px 0 0 var(--mint);margin:8px 0;padding:5px 8px;font-size:13px}.gifts li{gap:2px;display:grid}.gifts strong{color:var(--hl);font-weight:400}.flow-view h3{margin-bottom:6px}.flow-cols{background:var(--shade);box-shadow:inset 0 0 0 1px var(--card-edge);grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;padding:8px 10px;display:grid}.flow-label{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:4px;font-size:11px;display:block}.flow-cols ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.flow-cols li{grid-template-columns:auto auto 1fr;align-items:baseline;gap:0 5px;display:grid}.flow-cols li b{font-family:var(--font-num), monospace;color:var(--text);font-size:18px;font-weight:400;line-height:1}.flow-cols>div:last-child li b{color:var(--hl)}.flow-cols li span{color:var(--muted);font-size:12px;line-height:1.2}.flow-cols li em{color:var(--dim);font-size:11px;font-style:normal;display:block}.flow-arrow{color:var(--dim);align-self:center;font-size:18px}.flow-none{color:var(--dim);margin:0;font-size:12px}.flow-limit{color:var(--text);background:var(--shade);box-shadow:inset 3px 0 0 var(--bad);margin:6px 0 0;padding:5px 8px;font-size:12px;line-height:1.35}.flow-now{color:var(--muted);margin:6px 0 0;font-size:12px}.flow-now b{font-family:var(--font-num), monospace;color:var(--text);font-weight:400}.supply-row{margin-bottom:8px}.supply-row .meter-bar i{background:var(--hl)}.supply-row.even .meter-bar i{background:var(--mint)}.supply-row.even .meter-num{color:var(--mint)}.supply-row.over .meter-bar i{background:var(--bad)}.supply-row .hint{margin:3px 0 0}.fuel-note{color:var(--text);margin:4px 0;font-size:14px}.fuel-note.stoked{color:var(--hl)}.sprite{--frames:4}.art .sprite{background-size:calc(var(--frames) * 100%) 100%;width:160px;height:80px;image-rendering:pixelated;animation:card-sheet calc(var(--frames) * .14s) steps(var(--frames)) infinite;background-repeat:no-repeat}@keyframes card-sheet{0%{background-position:0 0}to{background-position:calc(100% * var(--frames) / (var(--frames) - 1)) 0}}.bar{background:var(--deep);border-radius:999px;height:5px;margin:7px 9px 5px;overflow:hidden}.bar i{background:var(--mint);transform-origin:0;will-change:transform;height:100%;display:block}.card-foot{height:24px;color:var(--muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-height:24px;padding:0 9px;font-size:13px;display:flex}.card-foot .rate{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.card-foot .act{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--hl-text);background:var(--hl);flex-shrink:0;padding:2px 14px;font-size:14px;position:relative}.card-foot .act:after{content:"";position:absolute;inset:-8px -12px -10px}.card-foot .act:disabled{color:var(--muted);background:var(--btn)}.act.boosting{background:var(--hl-hover);box-shadow:0 0 10px var(--hl)}.card-sub{height:22px;color:var(--dim);white-space:nowrap;text-overflow:ellipsis;padding:2px 9px 6px;font-size:12px;line-height:14px;overflow:hidden}.reason{color:var(--pink)}.card.blocked .reason{color:var(--bad)}.port{border:3px solid var(--bg);background:var(--hl);border-radius:50%;width:14px;height:14px;margin-top:-7px;position:absolute;top:50%}.port.in{background:var(--mint);left:-9px}.port.out{cursor:var(--cur-link);right:-9px}.port.out:after{content:"";position:absolute;inset:-14px}.port.out:hover{box-shadow:0 0 10px var(--hl);transform:scale(1.35)}.depot .port.in{top:40px}.depot .port.in.rocket-in{top:calc(100% - 44px)}.depot-rocket{cursor:var(--cur-hand);position:absolute}.rocket-map-art{image-rendering:pixelated;pointer-events:none;background-size:800% 100%;transition:opacity .2s,filter .2s;animation:1.6s steps(8,end) infinite rocket-map;position:absolute}.cv .canvas .rocket-map-art.dim{opacity:.32;filter:grayscale(.75)brightness(.75)}@keyframes rocket-map{0%{background-position:0 0}to{background-position:114.286% 0}}.rocket-sign{color:var(--muted);background:var(--card);border:2px solid var(--card-edge);white-space:nowrap;border-radius:3px;padding:0 6px;font-size:13px;line-height:18px;position:absolute;bottom:-2px;left:52px}.port.in.typed{background:var(--card-head);border-width:2px;border-radius:0;place-items:center;width:20px;height:20px;margin-top:-10px;display:grid;left:-12px}.port.in.open{box-shadow:0 0 0 2px var(--mint)}.port.in.typed .item-icon{pointer-events:none}.card.node{background:var(--card-head);box-shadow:inset 0 0 0 3px var(--card-edge), 0 4px 0 #0007;cursor:grab;place-items:center;padding:0;display:grid;overflow:visible}.node-mark{fill:none;width:34px;height:34px;stroke:var(--text);stroke-width:3px;stroke-linecap:square;pointer-events:none}.segment-marks path{fill:none;pointer-events:none;stroke-width:3px;vector-effect:non-scaling-stroke}.seg-tint{stroke:#ffb35a;opacity:.55}.seg-free{stroke:#efe3b0}.seg-paid{stroke:#ffb35a}.line-tip.line-card{pointer-events:auto}.line-card-buttons{gap:6px;margin:6px 0;display:flex}.line-card-buttons button{padding:2px 8px;font-size:13px}.grade-thumb{background:var(--art);display:block;position:relative}.grade-thumb:before{content:"";background:#b9a78a;position:absolute;inset:45% 8%}.grade-thumb.rails:before{background:repeating-linear-gradient(90deg,#6a543c 0 3px,#0000 3px 8px),linear-gradient(#d8c8a8 0 2px,#0000 2px calc(100% - 2px),#d8c8a8 calc(100% - 2px));inset:38% 8%}.canvas.grading .link .hit{cursor:pointer}.line-tool-tip{z-index:30;color:var(--text);background:var(--panel);box-shadow:0 0 0 2px var(--ink), 0 0 0 4px var(--hl);padding:6px 12px;font-size:15px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.line-tool-tip b{color:var(--hl);font-weight:400}.line-items{pointer-events:none;image-rendering:auto;position:absolute}.line-items.lifted{z-index:7;animation:.2s ease-out lift-in}.link.clogged .wire,.link.clogged .flow{stroke:#e0616a}.link.clogged .flow{opacity:1;animation:none}.canvas.linking .obstacle,.canvas.linking .link,.canvas.linking .loose-end,.canvas.linking .card button{pointer-events:none}.link.loose .wire{stroke-dasharray:10 8}.loose-end{border:3px solid var(--bg);background:var(--hl);width:18px;height:18px;cursor:var(--cur-link);border-radius:50%;margin:-9px 0 0 -9px;position:absolute}.loose-end:hover{box-shadow:0 0 10px var(--hl);transform:scale(1.35)}.line-price em{opacity:.8;font-size:12px;display:block}.depot-parts{flex-wrap:wrap;gap:4px 10px;display:flex}.depot-parts span{align-items:center;gap:4px;display:inline-flex}.depot-parts b{font-weight:400}.depot-list{margin:0;padding:8px 10px;font-size:13px;list-style:none}.depot-list li{border-bottom:1px solid #ffffff0d;grid-template-columns:24px 1fr auto;align-items:center;column-gap:6px;padding:4px 0;display:grid}.depot-list .dcount{text-align:right}.depot-list .drate{color:var(--mint);text-align:right;grid-column:2/4;font-size:12px}.depot-list .drate:empty{display:none}.depot-list .drate.neg{color:var(--bad)}.swatch{border-radius:3px;width:9px;height:9px;margin-right:2px;display:inline-block}.scene.anim .bob{animation:.5s steps(2,end) infinite bob}.scene.anim .fire{animation:.6s steps(2,end) infinite flicker}.scene.anim .smoke{animation:1.2s steps(3,end) infinite smoke}.scene:not(.anim) .fire{opacity:.25}.scene:not(.anim) .smoke{opacity:0}@keyframes bob{50%{transform:translateY(2px)}}@keyframes flicker{50%{opacity:.55}}@keyframes smoke{0%{opacity:1;transform:translateY(2px)}to{opacity:0;transform:translateY(-2px)}}.panel{flex:1;padding:16px 18px;overflow:auto}.panel h2{color:var(--lilac);margin:0 0 10px;font-size:18px;font-weight:400}.panel h3{color:var(--muted);letter-spacing:.04em;margin:16px 0 6px;font-size:13px}.panel p{margin:6px 0}.panel button{color:var(--hl-text);background:var(--hl)}.panel button:disabled{color:var(--muted);background:var(--btn)}.panel button.ghost{color:var(--muted);background:0 0}.panel button.danger{color:var(--bad);background:#ff6b8a1a}.panel .chips button{color:var(--text);background:var(--btn)}.panel .chips button.on{color:var(--on-lilac);background:var(--lilac)}.hint{color:var(--dim);font-size:13px}.status.running{color:var(--mint)}.status.waiting{color:var(--pink)}.status.paused{color:var(--muted)}.status.blocked{color:var(--bad)}.list{margin:0;padding:0;list-style:none}.list>li{background:var(--card);border:1px solid var(--card-edge);border-radius:10px;flex-direction:column;gap:4px;margin-bottom:7px;padding:9px 11px;display:flex}.list>li.row{flex-direction:row}.list li.done{opacity:.5}.list li.locked{opacity:.4}.row{justify-content:space-between;align-items:center;gap:8px;display:flex}section.row{margin-top:18px}.chips{gap:6px;display:flex}.tag{color:var(--dim);font-size:12px}.cost{flex-wrap:wrap;gap:2px 10px;font-size:13px;display:flex}.cost .have{color:var(--mint)}.cost .short{color:var(--muted)}.cost-item{white-space:nowrap;align-items:center;display:inline-flex}.cost-item b{font-weight:400}.cost-item.short b{color:var(--bad)}.cost.free{color:var(--mint)}.letters strong{color:var(--hl)}.toast{color:var(--bad)}.toast.info{color:var(--mint);border-color:var(--mint)}.toast{pointer-events:none;z-index:20;background:var(--card);border:2px solid var(--bad);box-shadow:var(--shadow);border-radius:999px;padding:8px 18px;position:fixed;top:66px;left:50%;transform:translate(-50%)}.save-badge{z-index:75;color:var(--text);background:var(--card);border:2px solid var(--card-edge);box-shadow:var(--shadow);pointer-events:none;align-items:center;gap:8px;padding:5px 12px 5px 9px;animation:.24s steps(4,end) both save-badge-in;display:flex;position:fixed;bottom:72px;left:14px}.save-badge.leaving{animation:.24s steps(4,end) both save-badge-out}.save-badge.pressed{outline:2px solid var(--muted);outline-offset:3px;gap:14px;padding:16px 30px 16px 22px;font-size:1.5em;animation-name:save-badge-pop;top:50%;bottom:auto;left:50%;translate:-50% -50%}.save-badge.pressed.saved{outline-color:var(--mint)}.save-badge.pressed.local{outline-color:var(--hl)}.save-badge.pressed.leaving{animation-name:save-badge-out}.settings-page~.save-badge:not(.pressed){display:none}.save-badge-icon{color:var(--muted);display:grid}.save-badge.saving .save-badge-icon{animation:.6s step-end infinite save-badge-write}.save-badge.saved .save-badge-icon,.save-badge.pressed.saved strong{color:var(--mint)}.save-badge.local .save-badge-icon{color:var(--hl)}.save-badge-text{flex-direction:column;line-height:1.15;display:flex}.save-badge strong{font-weight:inherit}.save-badge small{max-width:230px;color:var(--muted);font-size:.85em}@keyframes save-badge-in{0%{opacity:0;transform:translateY(8px)}}@keyframes save-badge-pop{0%{opacity:0;transform:scale(.8)}}@keyframes save-badge-out{to{opacity:0;transform:translateY(8px)}}@keyframes save-badge-write{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.save-badge,.save-badge.leaving,.save-badge.saving .save-badge-icon{animation:none}}.overlay{z-index:30;background:var(--scrim);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.letter{border:8px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;max-width:440px;image-rendering:pixelated;filter:drop-shadow(0 8px #0008);padding:10px 14px 12px}.letter .from{color:var(--hl);margin-top:0;font-size:17px}.letter .list li{padding:4px 10px}.letter button{color:var(--hl-text);background:var(--hl);border-radius:0;margin-top:10px;box-shadow:inset 2px 2px #ffd2a8,inset -2px -2px #c46a2c}.res b,.dcount,.drate,.rate,.cost,.limit b,.card-sub,.view-tools span,.badge{font-family:var(--font-num), monospace;font-size-adjust:none;letter-spacing:0}.card.depot.receiving .port.in{animation:.9s ease-out infinite port-pulse}.card.depot.receiving{border-color:var(--hover-edge)}@keyframes port-pulse{0%{box-shadow:0 0 #7ee0b0aa}to{box-shadow:0 0 0 10px #7ee0b000}}@media (max-width:1180px){.topbar .goal>span:not(.pips){display:none}}.theme-pick{align-items:center;gap:6px;padding:4px 0 6px;display:flex}.theme-pick span{color:var(--muted);margin-right:auto}.sound-controls{flex-direction:column;gap:4px;display:flex}.sound-controls label{justify-content:space-between;align-items:center;gap:8px;display:flex}.sound-controls input{width:110px;accent-color:var(--hl)}.theme-swatch{background:linear-gradient(135deg, var(--card) 50%, var(--card-head) 50%);width:26px;height:22px;box-shadow:inset 0 0 0 2px var(--card-edge), 0 0 0 2px var(--ink);border-radius:0;padding:0}.theme-swatch.on{box-shadow:inset 0 0 0 2px var(--card-edge), 0 0 0 2px var(--ink), 0 0 0 4px var(--hl)}.tut-ring{z-index:25;pointer-events:none;border:3px solid var(--mint);box-shadow:0 0 0 3px var(--ink), inset 0 0 0 2px var(--ink), 0 0 20px var(--mint);animation:1.1s ease-in-out infinite tut-pulse;display:none;position:fixed;top:0;left:0}.tut-point{z-index:25;pointer-events:none;display:none;position:fixed;top:0;left:0}.tut-point i{width:40px;height:40px;image-rendering:pixelated;filter:drop-shadow(0 0 6px var(--mint)) drop-shadow(0 3px 0 #0008);background:url(/cursors/hand.png) 0 0/100% 100%;animation:.9s ease-in-out infinite tut-tap;display:block}.tut-point.above i{animation-name:tut-tap-down;scale:1 -1}@keyframes tut-tap{50%{translate:0 8px}}@keyframes tut-tap-down{50%{translate:0 -8px}}.tut-drag{z-index:24;text-align:center;border:2px solid var(--mint);box-shadow:0 0 14px var(--mint), 0 4px 0 #0008;pointer-events:none;background:#1d1a24e6;padding:6px 4px;display:none;position:fixed;top:0;left:0}.tut-drag strong{margin-bottom:4px;font-size:13px;font-weight:400;display:block}.tut-drag i{width:40px;height:40px;image-rendering:pixelated;filter:drop-shadow(0 0 6px var(--mint)) drop-shadow(0 3px 0 #0008);background:url(/cursors/grabbing.png) 0 0/100% 100%;margin:-20px 0 0 -16px;position:absolute;top:72%;left:58%}.ore-spot{pointer-events:none;background:#ff9d3c22;border:4px dashed #ff9d3c;animation:1.1s ease-in-out infinite fp-spot;position:absolute}@keyframes fp-spot{50%{background:#ff9d3c44;border-color:#ffe0a8}}.tut-ghost{z-index:9;pointer-events:none;width:100%;height:100%;display:none;position:fixed;inset:0;overflow:visible}.tut-ghost path{fill:none;stroke-linecap:round}.tut-ghost-shadow{stroke:var(--ink);stroke-width:7px;opacity:.6}.tut-ghost-line{stroke:var(--hl);stroke-width:3px;filter:drop-shadow(0 0 4px var(--hl))}.tut-ghost circle{fill:none;stroke:var(--mint);stroke-width:3px;transform-box:fill-box;transform-origin:50%;transition:opacity .15s;animation:.6s ease-out infinite tut-ghost-drop}@keyframes tut-ghost-drop{0%{transform:scale(.5)}to{transform:scale(1.4)}}.tut-ghost image{image-rendering:pixelated}.tut-hit{--hole:16px;pointer-events:auto;cursor:var(--cur-hand);clip-path:polygon(evenodd, 0 0, 100% 0, 100% 100%, 0 100%, 0 0, var(--hole) var(--hole), var(--hole) calc(100% - var(--hole)), calc(100% - var(--hole)) calc(100% - var(--hole)), calc(100% - var(--hole)) var(--hole), var(--hole) var(--hole));position:absolute;inset:-13px}@keyframes tut-pulse{50%{box-shadow:0 0 0 3px var(--ink), inset 0 0 0 2px var(--ink), 0 0 6px var(--mint);opacity:.7}}.tut-bubble{z-index:26;border:8px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;width:330px;image-rendering:pixelated;filter:drop-shadow(0 8px #0008);padding:6px 10px 10px;animation:.25s cubic-bezier(.2,.8,.2,1) tut-in;position:fixed;top:66px;left:16px}@keyframes tut-in{0%{opacity:0;transform:translateY(-8px)}}.tut-bubble.low{top:auto;bottom:16px}.tut-bubble.welcome{--centre:translate(calc(50vw - 16px - 50%), calc(50vh - 66px - 50%));width:470px;max-width:calc(100vw - 32px);transform:var(--centre) scale(1.1);animation:.6s cubic-bezier(.2,.8,.2,1) .4s both tut-welcome}@keyframes tut-welcome{0%{opacity:0;transform:var(--centre) scale(1)}}.tut-welcome-body{align-items:flex-start;gap:14px;display:flex}.tut-welcome-body .rk-scene{--px:2px}@media (max-height:640px){.tut-welcome-body .rk-scene{--px:1px}}.tut-bubble.docking{animation:.75s cubic-bezier(.65,0,.25,1) both tut-dock}@keyframes tut-dock{0%{transform:translate(calc(50vw - 16px - 50%),calc(50vh - 66px - 50%))scale(1.1)}}.tut-dim{z-index:24;pointer-events:none;background:radial-gradient(circle,#0b0a1255,#0b0a12cc);animation:.6s ease-out .4s both tut-dim-in;position:fixed;inset:0}.tut-dim.out{animation:.75s ease-in both tut-dim-out}@keyframes tut-dim-in{0%{opacity:0}}@keyframes tut-dim-out{to{opacity:0}}.tut-head{color:var(--muted);align-items:center;gap:10px;margin:4px 0 8px;font-size:12px;display:flex}.tut-title{flex:1;min-width:0}.tut-head button{align-self:flex-start;padding:0 8px;font-size:12px}.tut-bubble h3{color:var(--hl);margin:2px 0 0;font-size:18px;font-weight:400}.tut-bubble p{margin:0 0 8px;line-height:1.35}.tut-bubble .tut-tip{color:var(--muted);background:var(--shade);box-shadow:inset 0 0 0 1px var(--card-edge);padding:6px 8px;font-size:13px}.tut-phases{counter-reset:phase;gap:4px;margin:0 0 8px;padding:0;list-style:none;display:grid}.tut-phases li{counter-increment:phase;color:var(--dim);grid-template-columns:18px 1fr;align-items:start;gap:8px;padding:4px 6px;font-size:13px;line-height:1.3;display:grid}.tut-phases li:before{content:counter(phase);width:18px;height:18px;color:var(--muted);box-shadow:inset 0 0 0 2px var(--card-edge);place-items:center;font-size:12px;display:grid}.tut-phases li.done{color:var(--muted);text-decoration:line-through}.tut-phases li.done:before{content:"✓";color:var(--ink);background:var(--mint);box-shadow:none}.tut-phases li.now{color:var(--text);background:var(--shade);box-shadow:inset 3px 0 0 var(--mint)}.tut-phases li.now:before{color:var(--ink);background:var(--mint);box-shadow:none}.tut-next{float:right;color:var(--hl-text);background:var(--hl);border-radius:0;box-shadow:inset 2px 2px #ffd2a8,inset -2px -2px #c46a2c}.contents .meter{margin-bottom:7px;font-size:13px}.meter-num{font-family:var(--font-num), monospace;color:var(--muted)}.meter-num em{color:var(--mint);font-style:normal}.meter-bar{background:var(--deep);height:6px;box-shadow:inset 0 0 0 1px var(--ink);margin-top:3px}.meter-bar i{background:var(--lilac);height:100%;display:block}.techtree,.rocketpage{z-index:15;background-color:var(--bg);background-image:radial-gradient(circle, var(--dot) 1.3px, transparent 1.7px);opacity:0;pointer-events:none;visibility:hidden;background-size:24px 24px;flex-direction:column;transition:transform .38s cubic-bezier(.2,.8,.2,1),opacity .25s,visibility 0s linear .38s;display:flex;position:absolute;inset:0;transform:translateY(-100%)}.techtree.open,.rocketpage.open{opacity:1;pointer-events:auto;visibility:visible;transition:transform .38s cubic-bezier(.2,.8,.2,1),opacity .25s,visibility;transform:none}.tt-head{border-bottom:2px solid var(--card-edge);background:var(--panel);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.tt-head div{flex-direction:column;line-height:1.2;display:flex}.tt-head strong{color:var(--hl);font-size:20px;font-weight:400}.tt-head span{color:var(--muted);font-size:12px}.tt-head button{padding:0 12px;font-size:22px}.tt-scroll{flex:1;display:flex;overflow:auto}.tt-board{flex-shrink:0;margin:0 auto;position:relative}.tt-edges{position:absolute;top:0;left:0}.tt-edge{fill:none;stroke:var(--card-edge);stroke-width:3px;stroke-dasharray:600;stroke-dashoffset:600px}.tt-edge.done{stroke:var(--hl)}.tt-edge.ready,.tt-edge.open{stroke:var(--lilac)}.techtree.open .tt-edge{animation:.6s ease-out forwards tt-draw}@keyframes tt-draw{to{stroke-dashoffset:0}}.tt-node{border:6px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;image-rendering:pixelated;filter:drop-shadow(0 6px #0007);opacity:0;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:60px minmax(0,1fr);gap:4px 10px;padding:8px 10px;display:grid;position:absolute}.techtree.open .tt-node{animation:.35s cubic-bezier(.2,.9,.3,1.2) forwards tt-node-in}@keyframes tt-node-in{0%{opacity:0;transform:translateY(-14px)scale(.94)}to{opacity:1;transform:none}}.tt-art{width:60px;height:60px;color:var(--muted);background:var(--art);box-shadow:inset 0 0 0 2px var(--ink);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.tt-art .sprite{background-size:calc(var(--frames) * 100%) 100%;width:120px;height:60px;animation:card-sheet calc(var(--frames) * .14s) steps(var(--frames)) infinite;flex-shrink:0}.tt-body{flex-direction:column;gap:3px;min-width:0;display:flex}.tt-body strong{font-size:15px;font-weight:400}.tt-body p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.25;display:-webkit-box;overflow:hidden}.tt-buy{grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;display:flex}.tt-cost{min-width:0;font-family:var(--font-num), monospace;flex-wrap:wrap;gap:0 8px;font-size:12px;display:flex}.tt-cost .have{color:var(--mint)}.tt-cost .short{color:var(--muted)}.tt-cost .swatch{width:7px;height:7px;margin-right:3px}.tt-node .research{color:var(--hl-text);background:var(--hl);border-radius:0;flex-shrink:0;padding:1px 10px;font-size:12px;box-shadow:inset 2px 2px #ffd2a8,inset -2px -2px #c46a2c}.tt-node .research:disabled{color:var(--muted);background:var(--btn);box-shadow:none;opacity:1}.tt-done{color:var(--mint);grid-column:1/-1;font-size:12px}.tt-locked{color:var(--dim);grid-column:1/-1;font-size:11px}.tt-node.locked{filter:drop-shadow(0 6px #0007)grayscale(.7)brightness(.7)}.tt-node.done{filter:drop-shadow(0 6px #0007)brightness(.85)}.tt-node.ready{filter:drop-shadow(0 6px #0007)drop-shadow(0 0 10px #ff9f5a90)}.tt-node.ready strong,.tt-goal strong{color:var(--hl)}.item-icon{vertical-align:-2px;image-rendering:pixelated;background-image:url(/ui/items.png);background-repeat:no-repeat;flex-shrink:0;margin-right:3px;display:inline-block}.depot-list .item-icon,.res .item-icon{margin-right:0}.rk-body{flex:1;justify-content:center;gap:28px;min-height:0;padding:20px;display:flex;overflow:auto}.rk-view{flex-direction:column;flex-shrink:0;align-items:center;gap:8px;margin:0;display:flex}.rk-view figcaption{text-align:center;max-width:288px;color:var(--muted);font-size:12px}.rk-scene{--px:3px;width:calc(96 * var(--px));height:calc(160 * var(--px));box-shadow:0 0 0 3px var(--ink), 0 10px 0 #0007;flex-shrink:0;position:relative;overflow:hidden}@media (max-height:700px){.rk-view .rk-scene{--px:2px}}.rk-layer{image-rendering:pixelated;background-size:100% 100%;position:absolute;inset:0}.rk-sheet{background-size:400% 100%;animation:2.4s steps(4,end) infinite rk-sheet}@keyframes rk-sheet{to{background-position:calc(-384 * var(--px)) 0}}.rk-later{opacity:.45}.rocketpage.open .rk-next{animation:1.4s ease-in-out infinite rk-next}@keyframes rk-next{50%{opacity:.45;filter:drop-shadow(0 0 4px #8fdcff)}}.rocketpage.open .rk-next{filter:drop-shadow(0 0 6px #8fdcff)}.rk-scan{background:linear-gradient(0deg,#0000 0 40%,#c8eeff 48%,#0000 56% 100%) 0 0/100% 300%;animation:3.2s linear infinite rk-scan;position:absolute;inset:0;-webkit-mask:url(/rocket/rocket_bp.png) 0 0/100% 100%;mask:url(/rocket/rocket_bp.png) 0 0/100% 100%}@keyframes rk-scan{0%{background-position:0 0}to{background-position:0 100%}}.rk-sparks{width:calc(4 * var(--px));height:calc(4 * var(--px));box-shadow:calc(5 * var(--px)) calc(-3 * var(--px)) 0 calc(-1 * var(--px)) #ff9f5a, calc(-4 * var(--px)) calc(-5 * var(--px)) 0 calc(-1 * var(--px)) #fff3c4, calc(3 * var(--px)) calc(4 * var(--px)) 0 calc(-1 * var(--px)) #ff9f5a;background:#ffd27a;animation:.5s steps(2,end) infinite rk-spark;position:absolute;translate:-50% -50%}.rk-sparks.at-foundation{left:calc(30 * var(--px));top:calc(143 * var(--px))}.rk-sparks.at-deck{left:calc(66 * var(--px));top:calc(134 * var(--px))}.rk-sparks.at-tower{left:calc(74 * var(--px));top:calc(70 * var(--px))}@keyframes rk-spark{50%{opacity:.2;rotate:90deg}}.rk-side{flex-direction:column;gap:14px;width:360px;max-width:100%;display:flex}.rk-side section{border:6px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;image-rendering:pixelated;padding:10px 12px}.rk-side h2{color:var(--hl);align-items:center;gap:8px;margin:0 0 4px;font-size:20px;font-weight:400;display:flex}.rk-side h3{margin:0 0 6px;font-size:15px;font-weight:400}.rk-era{color:var(--muted);box-shadow:inset 0 0 0 1px var(--card-edge);margin-left:auto;padding:0 6px;font-size:11px}.rk-locked{color:var(--text);background:var(--shade);box-shadow:inset 3px 0 0 var(--hl);margin:6px 0;padding:6px 8px;font-size:13px}.rk-stages{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.rk-stages li{background:var(--shade);gap:3px;padding:7px 9px;display:grid}.rk-stages li.next{box-shadow:inset 0 0 0 2px #8fdcff80}.rk-stages li.done{opacity:.7}.rk-stages li.later{opacity:.55}.rk-stages strong{font-weight:400}.rk-stages .research{color:var(--hl-text);background:var(--hl);border-radius:0;padding:1px 12px;font-size:13px;box-shadow:inset 2px 2px #ffd2a8,inset -2px -2px #c46a2c}.rk-stages .research:disabled{color:var(--muted);background:var(--btn);box-shadow:none;opacity:1}.rk-future ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.rk-future li{opacity:.8;grid-template-columns:auto 1fr;align-items:baseline;gap:0 8px;display:grid}.rk-future li .rk-era{margin:0}.rk-future li .hint{grid-column:2;font-size:12px}.rk-build{animation:1.2s steps(16,end) both rk-build,.6s ease-out 1.2s both rk-build-flash}@keyframes rk-build{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes rk-build-flash{0%{filter:brightness(2.6)drop-shadow(0 0 6px #ffd77a)}to{filter:none}}.rk-scene.building{animation:.45s steps(6,end) 1.2s rk-shake}@keyframes rk-shake{0%,to{translate:0}20%{translate:-5px 3px}40%{translate:4px -3px}60%{translate:-3px 2px}80%{translate:2px -1px}}.rk-celebrate{pointer-events:none;position:absolute;inset:0;overflow:hidden}.rk-flash{opacity:0;background:#fff6d0;animation:.7s ease-out 1.2s rk-flash;position:absolute;inset:0}@keyframes rk-flash{0%{opacity:.75}to{opacity:0}}.rk-dust,.rk-burst{width:0;height:0;position:absolute}.rk-dust i{width:calc(10 * var(--px));height:calc(10 * var(--px));margin:calc(-5 * var(--px));opacity:0;background:#cfd3da;border-radius:50%;animation:1.4s ease-out 1.2s both rk-dust;position:absolute}@keyframes rk-dust{0%{opacity:.9;transform:translate(0)scale(.4)}to{opacity:0;transform:translate(calc(var(--d) * 10 * var(--px)), calc(-6 * var(--px))) scale(1.6)}}.rk-burst i{width:calc(3 * var(--px));height:calc(3 * var(--px));opacity:0;animation:1s ease-out 1.2s both rk-burst;position:absolute}@keyframes rk-burst{0%{opacity:1;transform:rotate(var(--a)) translateX(0)}to{opacity:0;transform:rotate(var(--a)) translateX(calc(28 * var(--px)))}}.rk-confetti i{width:calc(2 * var(--px));height:calc(3 * var(--px));opacity:0;animation-name:rk-confetti;animation-timing-function:linear;animation-fill-mode:both;position:absolute;top:-10px}@keyframes rk-confetti{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:1;transform:translate(calc(var(--sway) * 6px), calc(165 * var(--px))) rotate(540deg)}}.rk-banner{white-space:nowrap;box-shadow:0 0 0 3px var(--ink), 0 0 0 5px #ffd77a, 0 0 30px #ffd77a80;background:#0b0a12e0;flex-direction:column;align-items:center;gap:4px;padding:10px 16px;animation:3.4s cubic-bezier(.2,1.4,.4,1) 1.3s both rk-banner;display:flex;position:absolute;top:34%;left:50%;translate:-50%}.rk-banner strong{color:#ffd77a;text-shadow:0 2px 0 var(--ink);font-size:22px;font-weight:400}.rk-banner span{color:var(--mint);font-size:13px}@keyframes rk-banner{0%{opacity:0;transform:scale(.3)}12%{opacity:1;transform:scale(1)}88%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.rk-bunting{left:calc(10 * var(--px));top:calc(127 * var(--px));width:calc(76 * var(--px));border-top:var(--px) solid #e8e2d0;justify-content:space-between;display:flex;position:absolute}.rk-bunting b{width:calc(5 * var(--px));height:calc(5 * var(--px));clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;background:#e07a4a;animation:2.4s ease-in-out infinite bunting}.rk-bunting b:nth-child(3n+2){background:#7ee0b0;animation-delay:-.8s}.rk-bunting b:nth-child(3n){background:#ffd77a;animation-delay:-1.6s}@keyframes bunting{50%{transform:rotate(8deg)}}.rk-finished{opacity:0;transition:opacity .35s}.rk-view .rk-scene{cursor:var(--cur-hand)}.rk-view .rk-scene:hover .rk-finished,.rk-scene.peek .rk-finished{opacity:1}.rk-view figcaption b{color:var(--text);font-weight:400}.dev{z-index:16;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;bottom:70px;left:14px}.dev-row{gap:4px;display:flex}.dev-toggle{letter-spacing:.1em;color:var(--dim);background:var(--shade);box-shadow:inset 0 0 0 1px var(--card-edge);opacity:.7;border-radius:0;padding:1px 8px;font-size:11px}.dev-toggle.on,.dev-toggle:hover{color:var(--hl);opacity:1}.dev-panel{width:220px;box-shadow:0 0 0 2px var(--ink), 0 0 0 3px #ff9f5a66;background:#0b0a12ee;padding:8px 10px;font-size:12px}.dev-panel section{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.dev-panel h4{letter-spacing:.08em;text-transform:uppercase;width:100%;color:var(--hl);margin:0 0 2px;font-size:11px;font-weight:400}.dev-panel button{border-radius:0;padding:1px 8px;font-size:12px}.dev-panel p{color:var(--dim);margin:0;font-size:11px}.stage:not([data-fit=wide]) .hotbar{left:182px;transform:none}.stage[data-fit=narrow] .group-name,.stage[data-fit=tight] .group-name,.stage[data-fit=tiny] .group-name{display:none}.stage[data-fit=tight] .hotbar{left:138px}.stage[data-fit=tight] .view-tools span,.stage[data-fit=tiny] .view-tools span,.stage[data-fit=tight] .menus button span,.stage[data-fit=tiny] .menus button span{display:none}.stage[data-fit=tight] .menus button,.stage[data-fit=tiny] .menus button{min-width:38px;padding:6px 5px}.stage[data-fit=tiny] .hotbar{bottom:74px;left:auto;right:14px}.res li>em,.res li b em{white-space:nowrap}@media (max-width:1300px){.goal>span:not(.pips){display:none}}@media (max-width:1080px){.res li{column-gap:5px;width:88px;padding:2px 8px}.res li>span:not(.floater){display:none}.res li b em{margin:0;line-height:1;display:block}}@media (max-width:900px){.brand{display:none}}@media (max-width:740px){.res li{width:66px;padding:2px 5px}.res li b em{display:none}}@media (max-width:600px){.topbar{gap:8px;padding:0 6px}.res{scrollbar-width:none;flex:1;min-width:0;overflow-x:auto}}.techtree.fp{z-index:40;-webkit-user-select:none;user-select:none;position:fixed}.fp-requests{gap:6px;display:flex}.fp-body{flex:1;grid-template-columns:240px minmax(0,1fr) 288px;gap:16px;min-height:0;padding:14px 16px;display:grid;overflow:auto}.fp-side h3{color:var(--muted);margin:0 0 6px;font-size:16px;font-weight:400}.fp-frame{background:var(--art);box-shadow:inset 0 0 0 2px var(--ink);padding:8px}.fp canvas{image-rendering:pixelated;display:block}.fp-wanted{justify-content:center;display:flex}.fp-name{margin:8px 0 0;font-size:20px}.fp-name strong{color:var(--hl);font-weight:400}.fp-size{color:var(--muted);margin:0 0 16px;font-size:14px}.fp-pip{align-items:flex-start;gap:10px;display:flex}.fp-pip .portrait{flex-shrink:0}.fp-pip p{margin:0 0 8px;font-size:15px;line-height:1.25}.fp-main{flex-direction:column;align-items:center;gap:10px;min-width:0;display:flex}.fp-board-scroll{max-width:100%;padding:2px 10px;overflow-x:auto}.fp-board{flex-shrink:0;position:relative}.fp-wires{position:absolute;inset:0;overflow:visible}.fp-wire,.fp-wire-hit{fill:none}.fp-wire{stroke:var(--muted);stroke-width:3px;pointer-events:none}.fp-wire-hit{stroke:#0000;stroke-width:14px;pointer-events:stroke;cursor:pointer}g:hover>.fp-wire{stroke:#ef6a5c}.fp-wire.drawing{stroke:var(--hl);stroke-dasharray:6 6}.fp-wire.running{stroke:var(--hl);stroke-dasharray:8 8;animation:.5s linear infinite fp-flow}@keyframes fp-flow{to{stroke-dashoffset:-16px}}.fp-card{background:var(--panel);box-shadow:inset 0 0 0 2px var(--card-edge);border-radius:0;flex-direction:column;justify-content:space-between;align-items:center;padding:6px 4px;display:flex;position:absolute}.fp-card strong{font-size:16px;font-weight:400}.fp-card small{color:var(--muted);font-size:13px}.fp-card canvas{pointer-events:none}.fp-card.machine.on{background:var(--panel);color:inherit;box-shadow:inset 0 0 0 2px var(--hl)}.fp-card.rocket.good{box-shadow:inset 0 0 0 2px var(--hl)}.fp-card.rocket.good small{color:var(--hl)}.fp-card.rocket.bad{box-shadow:inset 0 0 0 2px #ef6a5c}.fp-port{background:var(--art);width:20px;height:20px;box-shadow:inset 0 0 0 3px var(--muted);touch-action:none;border-radius:50%;padding:0;position:absolute;translate:-50% -50%}.fp-port.out{cursor:grab}.fp-port.wired{box-shadow:inset 0 0 0 3px var(--muted), inset 0 0 0 10px var(--muted)}.fp-port.on,.fp-port.ready{box-shadow:inset 0 0 0 3px var(--hl)}.fp-port:hover{box-shadow:inset 0 0 0 3px var(--hl), inset 0 0 0 10px var(--hl)}.fp-how{color:var(--muted);margin:0;font-size:14px}.fp-bench{touch-action:none;width:256px;height:240px}.fp-bench.cutting{cursor:crosshair}.fp-bench-wrap{width:fit-content;line-height:0;position:relative}.fp-bench-wrap .fp-bench{display:block}.fp-cut-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.fp-cut-lines polyline{fill:none;stroke:#ff9d3c;stroke-width:1.5px;animation:.9s ease-in-out infinite fp-cut-glow}.fp-cut-lines polyline.under{stroke:var(--ink);stroke-width:3.5px;animation:none}@keyframes fp-cut-glow{50%{stroke:#ffe0a8}}.fp-point-hand,.fp-drag-hand{width:40px;height:40px;image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 0 6px var(--mint)) drop-shadow(0 3px 0 #0008);position:absolute}.fp-point-hand{background:url(/cursors/hand.png) 0 0/100% 100%;margin-left:-14px;animation:.9s ease-in-out infinite tut-tap}.fp-drag-hand{background:url(/cursors/grabbing.png) 0 0/100% 100%;margin:-20px 0 0 -20px}.fp-rotate-now{box-shadow:0 0 0 2px var(--mint)}.tut-picture{color:var(--muted);flex-direction:column;align-items:center;margin:4px 0;font-size:13px;display:flex}.fp-panel-box{flex-direction:column;align-items:center;gap:6px;min-height:240px;display:flex}.fp-panel-tools{gap:6px;display:flex}.fp-tip,.fp-empty{color:var(--muted);margin:0;font-size:14px;line-height:1.25}.fp-empty{align-self:stretch;padding:4px}.fp-bench-tools{gap:6px;display:flex}.fp-times{color:var(--muted);margin:16px 0 0;padding:0;font-size:14px;list-style:none}.fp-tool{align-items:center;gap:5px;padding:4px 8px;display:inline-flex}.fp-icon{width:24px;height:24px;image-rendering:pixelated;background:url(/factory/factory_tools.png) 0 0/auto 24px no-repeat;display:inline-block}.fp-tool:disabled .fp-icon{opacity:.45}.fp-status{background:var(--panel);width:100%;max-width:760px;box-shadow:inset 0 0 0 2px var(--card-edge);justify-content:space-between;align-items:center;gap:16px;padding:8px 12px;display:flex}.fp-status p{margin:0;font-size:16px;line-height:1.2}.fp-status.match{box-shadow:inset 0 0 0 2px var(--hl)}.fp-status.match p{color:var(--hl)}.fp-status .research{flex-shrink:0;padding:6px 12px}.fp-status .research:not(:disabled){background:var(--hl);color:var(--ink)}.fp-status.refused{box-shadow:inset 0 0 0 2px #ef6a5c}@media (max-width:1160px){.fp-body{grid-template-columns:minmax(0,1fr)}}.machine-setup canvas{image-rendering:pixelated;display:block}.ms-wanted{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ms-wanted p{margin:0;font-size:14px;line-height:1.25}.ms-wanted b{color:var(--hl);font-weight:400}.machine-page{z-index:14;background-color:var(--bg);background-image:radial-gradient(circle, var(--dot) 1.3px, transparent 1.7px);background-size:24px 24px;flex-direction:column;animation:.18s ease-out mp-in;display:flex;position:absolute;inset:0}@keyframes mp-in{0%{opacity:0;transform:translateY(8px)}}.game:has(.machine-page) .tut-bubble{width:270px;top:118px}.machine-page .tt-head .mk{color:var(--hl-text);display:inline}.mp-body{flex:1;justify-content:center;align-items:center;min-height:0;padding:16px;display:flex;overflow:auto}.machine-page .machine-setup{justify-content:center;align-items:center;gap:16px;margin:auto;display:flex}.machine-setup.leaving{pointer-events:none}.ms-col{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.ms-col h4{color:var(--muted);margin:0;font-size:15px;font-weight:400}.ms-in{width:118px}.machine-setup.in-lesson .ms-in{align-self:flex-end}.ms-out{width:240px}.ms-item{text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:14px;display:flex}.ms-slot{background:var(--art);box-shadow:inset 0 0 0 2px var(--ink);justify-content:center;align-items:center;padding:8px;display:flex}.ms-slot.big{min-height:144px}.ms-slot.empty{color:var(--muted);opacity:.5;font-size:40px}.ms-outcome{text-align:center;color:var(--muted);flex-direction:column;align-items:stretch;gap:4px;font-size:14px;display:flex}.ms-outcome.ready .ms-slot{background:radial-gradient(circle at 50% 55%, #ffd59a33, transparent 62%), var(--art);box-shadow:inset 0 0 0 2px var(--hl)}.ms-outcome.ready .ms-slot canvas{animation:1.2s steps(2,end) infinite ms-bob}@keyframes ms-bob{50%{translate:0 -4px}}.ms-fly-from{position:relative}.ms-fly{z-index:20;pointer-events:none;justify-content:center;align-items:center;animation:.62s cubic-bezier(.5,0,.9,.4) forwards ms-fly;display:flex;position:absolute;inset:0}.machine-setup.leaving .ms-slot canvas{animation:none}.machine-setup.leaving .ms-slot.big canvas{opacity:0}.machine-setup.leaving .ms-fly canvas{opacity:1}@keyframes ms-fly{to{opacity:0;transform:translate(380px)translateY(-30px)scale(.6)}}.ms-confirm{color:#06230f;cursor:pointer;background:#58c97f;border:2px solid #1f6b3a;padding:10px 12px;font-size:20px;box-shadow:0 3px #1f6b3a}.ms-confirm:hover:not(:disabled){background:#74dd97}.ms-confirm:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #1f6b3a}.ms-confirm:disabled{color:var(--muted);background:var(--art);border-color:var(--card-edge);box-shadow:none;cursor:default}.game.screen-shake{animation:.34s step-end both screen-shake}@keyframes screen-shake{0%{transform:translate(5px,-3px)}15%{transform:translate(-6px,3px)}30%{transform:translate(4px,4px)}45%{transform:translate(-4px,-3px)}60%{transform:translate(3px,2px)}75%{transform:translate(-2px,-1px)}90%{transform:translate(1px,1px)}to{transform:none}}@media (prefers-reduced-motion:reduce){.game.screen-shake{animation:none}}.ms-bench{background:var(--art);box-shadow:inset 0 0 0 2px var(--ink);flex-direction:column;align-items:center;gap:10px;padding:12px;display:flex}.ms-bench .fp-bench-wrap{width:min(560px,42vw,106.667vh - 277.333px);max-width:none}.ms-bench .fp-bench{width:100%;height:auto}.ms-bench .fp-tip{font-size:16px}@media (max-width:1100px){.machine-page .machine-setup{flex-direction:column}.ms-bench .fp-bench-wrap{width:min(100%,106.667vh - 490.667px)}.ms-in,.ms-out{width:min(100%,360px)}}.ms-good{color:var(--hl)}.pause-row{margin:8px 0}.pause-row .hint{margin:6px 0 0}.pause-btn{background:var(--art);border:1px solid var(--card-edge);align-items:center;gap:7px;padding:5px 12px;display:inline-flex}.pause-btn i{border-left:3px solid;border-right:3px solid;width:10px;height:12px}.pause-btn.on{color:#06230f;background:#58c97f;border-color:#1f6b3a}.pause-btn.on i{border:6px solid #0000;border-left:10px solid;border-right-width:0;width:0;height:0}.settings-page{z-index:70;background:var(--scrim);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.settings-panel{border:8px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;width:min(860px,100%);max-height:100%;image-rendering:pixelated;filter:drop-shadow(0 8px #0008);flex-direction:column;gap:12px;padding:16px 20px;display:flex;overflow:auto}.settings-panel>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-panel h2{color:var(--hl);margin:0;font-size:26px}.settings-panel h3{color:var(--hl);margin:0 0 8px;font-size:17px}.settings-panel h4{color:var(--muted);margin:10px 0 4px;font-size:13px;font-weight:400}.settings-panel .hint{margin:0}.settings-columns{grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:24px;display:grid}.settings-columns section+section{margin-top:18px}.settings-panel .settings-resume{color:var(--hl-text);background:var(--hl);padding:6px 18px}.settings-buttons{flex-direction:column;gap:6px;display:flex}.settings-hints{align-items:center;gap:8px;font-size:14px;display:flex}.settings-keys .key-row{justify-content:space-between;align-items:center;gap:12px;padding:2px 0;font-size:14px;display:flex}.settings-keys .key-btn{flex-shrink:0;min-width:64px;padding:2px 8px}.settings-keys .key-btn.waiting{color:var(--hl-text);background:var(--hl)}.settings-keys .key-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}@media (max-width:640px){.settings-columns{grid-template-columns:1fr}}.cv .canvas .card.building{box-shadow:none;cursor:var(--cur-hand);background:0 0;border:0;border-image:}.cv .canvas .card.building:not(.chain,.focus,.dim,.held){filter:none}.card.building,.card.building.top{z-index:1}.card.building.in-front,.card.building.in-front.top{z-index:2}.card.building.fresh{z-index:4}.card.building:hover,.card.building.dragging{z-index:6}.card.building:has(.seam){z-index:6}.yard{image-rendering:pixelated;background:url(/buildings/yard_fenced.png) 0 0/100% 100%;position:absolute;inset:0}.building-art{height:248px;image-rendering:pixelated;pointer-events:none;background-position:100% 0;background-size:900% 100%;position:absolute;bottom:0;left:0;right:0}.building-art.running{animation:1.12s steps(8,end) infinite building-work}.building-art.running.mk2{animation-duration:.75s}.building-art.running.fast{animation-duration:.56s}.building-art.running.hand{animation-duration:.45s}@keyframes building-work{0%{background-position:0 0}to{background-position:100% 0}}.card.building.paused .building-art,.card.building.off-ore .building-art{filter:grayscale(.85)brightness(.65)}.building-hit{position:absolute;inset:-40px 0 0}.signpost{width:64px;height:56px;image-rendering:pixelated;pointer-events:none;background:url(/buildings/signpost.png) 0 0/100% 100%;position:absolute;bottom:-2px;left:8px}.signpost span{font-family:var(--font-num), monospace;text-align:center;white-space:nowrap;color:#2a1a0c;padding-top:3px;font-size:12px;line-height:24px;display:block;overflow:hidden}.card.building .fuel-chip{inset:auto 4px 8px auto}.plate,.building-bubble{transform:translateX(-50%) scale(var(--unzoom,1));transform-origin:50% 100%;position:absolute;bottom:calc(100% + 8px);left:50%}.plate{z-index:2;background:var(--card);border:2px solid var(--card-edge);cursor:default;opacity:0;pointer-events:none;width:224px;transition:opacity 80ms;bottom:calc(100% + 72px)}.plate:after{content:"";height:34px;position:absolute;top:100%;left:0;right:0}.card.building:hover .plate,.card.building.selected .plate{opacity:1;pointer-events:auto}body:has(.tut-bubble[data-step="Install a crank"]) .card.building .plate{opacity:1;pointer-events:auto}.card.building.plate-below .plate{transform-origin:50% 0;top:calc(100% + 10px);bottom:auto}body:has(.tut-bubble[data-step="Install a crank"]) .card.building .plate{transform-origin:50% 0;top:calc(100% + 10px);bottom:auto}.card.building.plate-below .plate:after{height:16px;top:auto;bottom:100%}body:has(.tut-bubble[data-step="Install a crank"]) .card.building .plate:after{height:16px;top:auto;bottom:100%}.canvas.moving .plate,.canvas.linking .plate,.canvas.placing .plate{display:none}.cv-riveted .plate{border:6px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;image-rendering:pixelated;filter:drop-shadow(0 6px #0007);background:0 0}.plate .card-sub{justify-content:space-between;align-items:center;gap:8px;padding-bottom:2px;display:flex}.plate-more{flex-shrink:0;padding:0 6px;font-size:13px}.building-bubble{z-index:1;white-space:nowrap;color:#4a2410;border:2px solid var(--ink);pointer-events:none;background:#fff3d6;padding:1px 8px 2px;font-weight:600;box-shadow:0 3px #0007}.building-bubble:after{content:"";border:solid var(--ink);background:#fff3d6;border-width:0 2px 2px 0;width:8px;height:8px;margin-left:-4px;position:absolute;bottom:-6px;left:50%;transform:rotate(45deg)}.card.building:hover .building-bubble{display:none}.cv .canvas .card.ghost.building{outline:2px dashed var(--hl);outline-offset:0}.cv .canvas .card.ghost.building.bad{outline-color:var(--bad)}.card.ghost.building p{color:var(--text);background:#0b0a12cc;padding:2px 6px;position:absolute;top:calc(100% + 4px);left:-40px;right:-40px}.canvas.moving .card.building.look-free:before,.canvas.placing .card.building.look-free:before{content:"";pointer-events:none;border:2px dashed #ffffff80;position:absolute;inset:0}.card.building.look-free[data-linked] .port.out{opacity:0}.card.building.look-free:hover .port.out,.canvas.linking .card.building.look-free .port.out{opacity:1}.card.building.look-free:not([data-linked]) .port.out{animation:1s ease-in-out infinite open-port}@keyframes open-port{50%{box-shadow:0 0 0 6px #ff9f5a66}}
.cv .card,.cv .hotbar,.cv .tray,.cv .menus,.cv .view-tools,.cv .slot,.cv .thumb,.cv .art,.cv .bar,.cv .menus button,.cv .view-tools button,.cv .card-foot .act,.cv .badge,.cv .mk,.cv button,.cv .toast,.cv .list>li,.cv .floater,.cv .goal,.cv .pips i,.cv .menu,.cv .swatch,.cv .slot:after{border-radius:0}.cv .panel button:not(.ghost,.research,.on),.cv .settings-panel button:not(.theme-swatch){box-shadow:inset 2px 2px #ffffff14,inset -2px -2px #0000004d}.cv .card{width:184px;transition:none}.cv .card-head{border-top:0;border-radius:0}.cv .art{margin:0 4px}.cv .port{border:2px solid var(--ink);border-radius:0;width:12px;height:12px;margin-top:-6px}.cv .port.out:hover{transform:scale(1.25)}.cv .lamp{width:8px;height:8px;box-shadow:0 0 0 2px var(--ink);border-radius:0}.cv .lamp.running,.cv .lamp.blocked{box-shadow:0 0 0 2px var(--ink), 0 0 8px currentColor}.cv .bar{height:6px;box-shadow:inset 0 0 0 1px var(--ink)}.cv .card-foot .act{padding:2px 14px;box-shadow:inset 2px 2px #ffd2a8,inset -2px -2px #c46a2c}.cv .card-foot .act:active{box-shadow:inset 2px 2px #c46a2c}.cv .card.selected{outline:2px solid var(--hl);outline-offset:5px}.cv .slot:hover{outline-offset:0}.cv-notch .card,.cv-notch .hotbar,.cv-notch .tray,.cv-notch .menus,.cv-notch .view-tools{background:var(--card);box-shadow:0 -3px 0 0 var(--ink), 0 3px 0 0 var(--ink), -3px 0 0 0 var(--ink), 3px 0 0 0 var(--ink), inset 0 3px 0 0 var(--card-edge), 0 9px 0 0 #0006;border:0}.cv-notch .card-head{background:var(--card-head);box-shadow:inset 0 -2px 0 var(--ink)}.cv-notch .card.machine .card-head{box-shadow:inset 0 -2px 0 var(--ink), inset 0 3px 0 var(--hl)}.cv-notch .slot{background:var(--card-head);box-shadow:0 -2px 0 0 var(--ink), 0 2px 0 0 var(--ink), -2px 0 0 0 var(--ink), 2px 0 0 0 var(--ink)}.cv-riveted .card,.cv-riveted .hotbar,.cv-riveted .tray,.cv-riveted .menus,.cv-riveted .view-tools{border:6px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;box-shadow:none;image-rendering:pixelated;filter:drop-shadow(0 6px #0007);background:0 0}.cv-riveted .card-head{box-shadow:inset 0 -2px 0 var(--shade);background:0 0;padding:3px 12px 5px}.cv-riveted .card-sub,.cv-riveted .card-foot{padding-left:12px;padding-right:12px}.cv-riveted .slot{border:4px solid #0000;border-image:var(--frame-slot) 4 fill / 8px stretch;image-rendering:pixelated;background:0 0}.cv-riveted .list>li{border:4px solid #0000;border-image:var(--frame-slot) 4 fill / 8px stretch;image-rendering:pixelated;background:0 0;padding:8px 10px}.cv-riveted .toast,.cv-riveted .save-badge{border:6px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;box-shadow:none;image-rendering:pixelated;filter:drop-shadow(0 6px #0007);background:0 0}.cv-rpg .card,.cv-rpg .hotbar,.cv-rpg .tray,.cv-rpg .menus,.cv-rpg .view-tools{box-shadow:none;image-rendering:pixelated;filter:drop-shadow(0 6px #0007);background:0 0;border:8px solid #0000;border-image:url(/ui/rpg_panel-purple.png) 8 fill/16px}.cv-rpg .card-head{color:var(--lilac);background:0 0;padding:1px 6px 4px}.cv-rpg .card.machine .card-head{color:var(--hl)}.cv-rpg .art{box-shadow:0 0 0 2px var(--ink);margin:0}.cv-rpg .slot{image-rendering:pixelated;background:0 0;border:4px solid #0000;border-image:url(/ui/rpg_slot-purple.png) 4 fill/8px}.cv-bevel .card,.cv-bevel .hotbar,.cv-bevel .tray,.cv-bevel .menus,.cv-bevel .view-tools{border:3px solid var(--ink);background:var(--card);box-shadow:inset 3px 3px 0 var(--bevel-light), inset -3px -3px 0 var(--shade), 6px 6px 0 #0008}.cv-bevel .card-head{background:var(--card-head);box-shadow:inset 0 -2px 0 var(--ink);margin:3px 3px 0}.cv-bevel .card.machine .card-head{background:var(--card-head)}.cv-bevel .slot{background:var(--card-head);box-shadow:inset 2px 2px 0 var(--bevel-light), inset -2px -2px 0 var(--shade)}.cv-bevel .menus button.on,.cv-bevel .view-tools button{box-shadow:inset 2px 2px #ffffff40,inset -2px -2px #00000050}
.parallax{z-index:0;background:#0b0e1c;position:absolute;inset:0;overflow:hidden}.parallax-shift{position:absolute;inset:0}.parallax-layer{-webkit-user-select:none;user-select:none;pointer-events:none;transform:translateX(var(--from));animation:linear forwards parallax-pan;position:absolute}.parallax-layer>img{width:100%;max-width:none;height:100%;image-rendering:pixelated;display:block}.parallax-layer.loop{animation:ease-in-out infinite alternate parallax-pan}@keyframes parallax-pan{0%{transform:translateX(var(--from))}to{transform:translateX(var(--to))}}.home{color:#f3e6d6;position:fixed;inset:0}.home-shade{z-index:1;pointer-events:none;background:linear-gradient(#0b0e1c99 0%,#0b0e1c22 40%,#0b0e1c00 60%,#0b0e1cbb 100%);position:absolute;inset:0}.home-content{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:10px;animation:1.2s cubic-bezier(.2,.8,.2,1) home-in;display:flex;position:absolute;top:9vh;left:50%;transform:translate(-50%)}@keyframes home-in{0%{opacity:0;transform:translate(-50%,-24px)}}.home-logo{--px:4px;flex-direction:column;align-items:center;margin:0;font-weight:400;line-height:1;display:flex;position:relative}.home-ribbon{z-index:1;height:calc(22 * var(--px));padding:calc(1 * var(--px)) calc(2 * var(--px)) calc(7 * var(--px));border-style:solid;border-color:#0000;border-width:0 calc(14 * var(--px));border-image:url(/title/ribbon.png) 0 14 fill / 0 calc(14 * var(--px)) stretch;image-rendering:pixelated;font-size:calc(13 * var(--px));letter-spacing:.08em;text-transform:uppercase;color:#fff1de;text-shadow:0 var(--px) 0 #6e2620;filter:drop-shadow(0 calc(2 * var(--px)) 0 #0b0a1299);font-weight:700;animation:6s ease-in-out infinite ribbon-sway;position:relative}@keyframes ribbon-sway{50%{transform:translateY(calc(-1 * var(--px))) rotate(-.6deg)}}.home-rocket{margin-top:calc(-6 * var(--px));font-size:calc(46 * var(--px));letter-spacing:.04em;background:linear-gradient(#fff1de 0 38%,#ffd59a 38% 62%,#ffb06a 62%);color:#0000;filter:drop-shadow(var(--px) 0 0 #120c08) drop-shadow(calc(-1 * var(--px)) 0 0 #120c08) drop-shadow(0 var(--px) 0 #120c08) drop-shadow(0 calc(-1 * var(--px)) 0 #120c08) drop-shadow(0 calc(2 * var(--px)) 0 #c4502e) drop-shadow(0 var(--px) 0 #120c08) drop-shadow(0 0 calc(8 * var(--px)) #ff9f5a40);-webkit-background-clip:text;background-clip:text;font-weight:800;line-height:.9}.home-glint{z-index:2;width:calc(5 * var(--px));height:calc(5 * var(--px));image-rendering:pixelated;opacity:0;background:url(/fx/sparkle.png) 0 0/100% 100% no-repeat;animation:4.2s ease-in-out infinite twinkle;position:absolute}.home-tag{letter-spacing:.03em;color:#f3e6d6;text-shadow:0 2px #0b0a12;background:linear-gradient(90deg,#0b0a1200,#0b0a12aa 20% 80%,#0b0a1200);align-items:center;gap:12px;margin:18px 0 26px;padding:4px 14px;font-size:22px;display:flex}.home-tag svg{color:#ff9f5a}.home-menu{width:300px;image-rendering:pixelated;filter:drop-shadow(0 8px #0b0a12aa);border:16px solid #0000;border-image:url(/ui/riveted_panel-brown.png) 8 fill/16px;flex-direction:column;gap:8px;padding:10px;display:flex}.home-menu button{height:60px;image-rendering:pixelated;letter-spacing:.03em;color:#f3e6d6;text-shadow:0 2px #120c08;background:0 0;border:18px solid #0000;border-image:url(/title/btn.png) 6 fill/18px;border-radius:0;justify-content:center;align-items:center;gap:10px;padding:0 0 9px;font-size:22px;transition:transform .15s cubic-bezier(.3,1.6,.5,1),filter .15s;display:flex;position:relative}.home-menu button svg{color:#e0c39f;filter:drop-shadow(0 2px #120c08);transition:transform .15s cubic-bezier(.3,1.6,.5,1)}.home-menu button:hover{filter:brightness(1.18);transform:translateY(-2px)}.home-menu button:hover svg{transform:translate(-3px)scale(1.15)}.home-menu button:active{filter:brightness(.95);transform:translateY(3px)}.home-menu button.primary{color:#2a1406;text-shadow:0 2px #ffd2a8;border-image-source:url(/title/btn_hl.png);font-weight:600}.home-menu button.primary svg{color:#2a1406;filter:drop-shadow(0 2px #ffd2a8)}.home-menu button.primary:hover{filter:brightness(1.08)drop-shadow(0 0 10px #ff9f5a99)}@media (max-height:760px),(max-width:720px){.home-logo{--px:3px}}.home-sound{z-index:3;color:#c4aa8e;background:#0b0a1299;border-radius:0;align-items:center;gap:8px;padding:4px 10px;font-size:16px;display:flex;position:absolute;bottom:12px;right:16px;box-shadow:0 0 0 2px #54402f}.home-sound:hover{color:#f3e6d6}.home .home-phone{text-align:left;color:#f3e6d6;margin-top:8px;display:none}@media (hover:none) and (pointer:coarse){.home-menu,.home-account,.home-sound{display:none}.home .home-phone{display:flex}.home-content{width:min(460px,100vw - 32px)}.home-logo{--px:2px}}@media (hover:none) and (pointer:coarse) and (orientation:landscape) and (max-height:500px){.home-content{flex-direction:row;justify-content:center;gap:24px;width:calc(100vw - 32px);top:12px}.home-tag{display:none}.home .home-phone{width:min(400px,55vw);margin-top:0}}.home-foot{z-index:2;text-align:center;color:#8a93b8;pointer-events:none;margin:0;font-size:14px;position:absolute;bottom:14px;left:0;right:0}.notice{z-index:90;background:#0b0a12cc;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.notice.opaque{background:#0b0a12}.notice-box{border:8px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;width:min(460px,100%);max-height:100%;image-rendering:pixelated;filter:drop-shadow(0 8px #0008);flex-direction:column;gap:10px;padding:16px 20px;display:flex;overflow:auto}.notice-box h2{color:var(--hl);margin:0;font-size:26px}.notice-box p{margin:0;font-size:18px}.notice-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.notice-box button.primary{color:var(--hl-text);background:var(--hl)}.notice-buttons.stacked{flex-direction:column}.notice-box label{flex-direction:column;gap:4px;font-size:16px;display:flex}.notice-box input{box-shadow:inset 0 0 0 2px var(--ink);color:var(--text);font:inherit;-webkit-user-select:text;user-select:text;background:#0b0a1266;border:0;padding:6px 10px;font-size:20px}.notice-note{opacity:.8;font-size:15px}.notice-box a{color:inherit}.notice-error{color:#ff9f8a}.save-choice{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.save-choice>div{box-shadow:inset 0 0 0 2px var(--ink);flex-direction:column;gap:6px;padding:10px;display:flex}.save-choice h3{color:var(--hl);margin:0;font-size:18px}.save-choice p{flex:1;font-size:16px}.account-lines{flex-direction:column;gap:8px;display:flex}.account-lines p{margin:0;font-size:15px}.account-lines ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.account-lines li{justify-content:space-between;align-items:center;gap:8px;font-size:14px;display:flex}.cloud-banner{z-index:80;max-width:calc(100vw - 32px);box-shadow:inset 0 0 0 2px var(--ink);color:#f3e6d6;background:#0b0a12ee;align-items:center;gap:10px;padding:6px 12px;font-size:15px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.home-account{z-index:2;text-overflow:ellipsis;white-space:nowrap;max-width:calc(50vw - 24px);position:absolute;bottom:12px;left:14px;overflow:hidden}.home-foot a{color:inherit;pointer-events:auto}.privacy{color:#f3e6d6;-webkit-user-select:text;user-select:text;background:#0b0a12;height:100dvh;padding:24px 16px 48px;font-size:18px;overflow:auto}.privacy>div{max-width:680px;margin:0 auto}.privacy h1{color:#ffb06a}.privacy h2{color:#ffb06a;margin-top:24px}.privacy a{color:inherit}.studio{cursor:var(--cur-hand);background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.studio-name{letter-spacing:.04em;color:#fff1de;margin:0;font-size:clamp(56px,10vw,120px);font-weight:700;animation:3.4s ease-in-out both studio-name}@keyframes studio-name{0%{opacity:0}28%{opacity:1}74%{opacity:1}98%,to{opacity:0}}.intro{cursor:var(--cur-hand);color:#f3e6d6;background:#000;position:fixed;inset:0}.intro-scene{z-index:0;position:absolute;inset:0}.intro-black{z-index:4;opacity:0;pointer-events:none;background:#000;transition:opacity .55s ease-in-out;position:absolute;inset:0}.intro-black.on{opacity:1}.intro-caption{z-index:2;border:8px solid #0000;border-image:var(--frame-panel) 8 fill / 16px stretch;width:min(760px,90vw);image-rendering:pixelated;filter:drop-shadow(0 8px #000a);padding:14px 20px 10px;position:absolute;bottom:6vh;left:50%;transform:translate(-50%)}.intro-caption p{margin:0;font-size:clamp(18px,2vw,24px);line-height:1.35}.intro-rest{visibility:hidden}.intro-hint{text-align:right;min-height:18px;color:var(--hl);margin-top:6px;font-size:14px;animation:1.2s steps(2,end) infinite hint-blink;display:block}@keyframes hint-blink{50%{opacity:.4}}.intro-dots{z-index:2;gap:6px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%)}.intro-dots i{background:#ffffff30;width:22px;height:6px;box-shadow:0 0 0 2px #0008}.intro-dots i.seen{background:#ffffff90}.intro-dots i.on{background:var(--hl)}.intro-skip{z-index:3;color:#e8ecf6;background:#0008;border-radius:0;position:absolute;top:14px;right:18px;box-shadow:0 0 0 2px #ffffff30}.screen-fade{z-index:100;opacity:0;pointer-events:none;background:#000;transition:opacity .6s ease-in-out;position:fixed;inset:0}.screen-fade.on{opacity:1;pointer-events:auto}.parallax-layer>span,.fx-glow-at{position:absolute;top:0;left:0}.fx-glow-at>i{pointer-events:none;border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.fx-smoke{position:absolute}.fx-smoke i{margin:calc(var(--s) * -4px) 0 0 calc(var(--s) * -4px);image-rendering:pixelated;opacity:0;background:url(/fx/puff.png) 0 0/100% 100% no-repeat;animation:4.4s linear infinite smoke-rise;position:absolute;top:0;left:0}@keyframes smoke-rise{0%{opacity:0;transform:translate(0)scale(.4)}12%{opacity:.85;transform:translate(0, calc(var(--s) * -3px)) scale(.6)}60%{opacity:.5}to{opacity:0;transform:translate(calc(var(--s) * 7px), calc(var(--s) * -26px)) scale(1.7)}}.fx-moon{background:radial-gradient(circle,#ece6cf55 0%,#ece6cf22 45%,#ece6cf00 70%);animation:5s ease-in-out infinite moon-glow}.fx-moon.ring{background:radial-gradient(circle,#ece6cf00 45%,#ece6cf1c 58%,#ece6cf00 72%);animation-duration:7s;animation-delay:-2.5s}@keyframes moon-glow{0%,to{opacity:.55;transform:translate(-50%,-50%)scale(.92)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}}.fx-firework{width:0;height:0;position:absolute}.fx-firework b{background:linear-gradient(to top, transparent, var(--c));transform-origin:top;opacity:0;animation:3s linear infinite fw-trail;position:absolute;top:0;left:0}.fx-firework i{background:var(--c);box-shadow:0 0 calc(3px * var(--s)) var(--c);opacity:0;animation:3s ease-out infinite fw-spark;position:absolute}@keyframes fw-trail{0%{opacity:0;transform:translateY(calc(70px * var(--s))) scaleY(.3)}5%{opacity:1}22%{opacity:1;transform:translateY(0)scaleY(1)}26%,to{opacity:0;transform:translateY(0)scaleY(.2)}}@keyframes fw-spark{0%,22%{opacity:0;transform:rotate(var(--a)) translateX(0)}24%{opacity:1}60%{opacity:1;transform:rotate(var(--a)) translateX(calc(22px * var(--s))) translateY(calc(2px * var(--s)))}80%,to{opacity:0;transform:rotate(var(--a)) translateX(calc(26px * var(--s))) translateY(calc(8px * var(--s)))}}.fx-beacon{background:radial-gradient(circle,#ff5a4a 0 18%,#ff5a4a66 30%,#0000 70%);animation:1.4s step-end infinite beacon}@keyframes beacon{50%{opacity:.1}}.fx-sun{background:radial-gradient(#f6c07e66 0%,#e48a6233 40%,#e48a6200 70%);animation:6s ease-in-out infinite moon-glow}.fx-lantern{background:radial-gradient(circle,#ffcf7a66 0%,#f2a35e33 35%,#f2a35e00 65%);animation:1.9s step-end infinite lantern-flicker}@keyframes lantern-flicker{0%{opacity:1}20%{opacity:.75}35%{opacity:.95}55%{opacity:.7}70%{opacity:1}85%{opacity:.85}}.fx-sparkle{margin:calc(var(--s) * -2px) 0 0 calc(var(--s) * -2px);image-rendering:pixelated;opacity:0;background:url(/fx/sparkle.png) 0 0/100% 100% no-repeat;animation:ease-in-out infinite twinkle;position:absolute}@keyframes twinkle{0%,70%,to{opacity:0;transform:scale(.4)}82%{opacity:1;transform:scale(1)}}.fx-firefly{box-shadow:0 0 calc(var(--s) * 3px) #ffcf7a;background:#ffcf7a;animation-name:firefly-drift,firefly-blink;animation-timing-function:ease-in-out,steps(2,end);animation-iteration-count:infinite,infinite;animation-direction:alternate,normal;position:absolute}@keyframes firefly-drift{0%{transform:translate(0)}33%{transform:translate(calc(var(--s) * 6px), calc(var(--s) * -4px))}66%{transform:translate(calc(var(--s) * -3px), calc(var(--s) * -8px))}to{transform:translate(calc(var(--s) * 4px), calc(var(--s) * 2px))}}@keyframes firefly-blink{50%{opacity:.2}}.fx-rocket{position:absolute}.fx-rocket b{image-rendering:pixelated;background:url(/fx/rocket.png) no-repeat;animation:18s infinite rocket-climb,.24s step-end infinite rocket-flame;position:absolute;top:0;left:0;transform:translate(-50%)}@keyframes rocket-climb{0%,14%{animation-timing-function:cubic-bezier(.55,0,.9,.55);transform:translate(-50%)}70%{transform:translate(-50%, calc(var(--s) * -200px))}70.01%,to{transform:translate(-50%, calc(var(--s) * -200px));opacity:0}}@keyframes rocket-flame{50%{background-position-x:100%}}.fx-trail{left:0;bottom:calc(var(--s) * -8px);transform-origin:50% 100%;box-shadow:0 0 calc(var(--s) * 3px) #d3d9e366;image-rendering:pixelated;background:linear-gradient(#fffe,#d3d9e3cc 75%,#d3d9e300);animation:18s infinite trail-grow;position:absolute;transform:translate(-50%)scaleY(0)}@keyframes trail-grow{0%,14%{opacity:.9;animation-timing-function:cubic-bezier(.55,0,.9,.55);transform:translate(-50%)scaleY(0)}70%{opacity:.8;transform:translate(-50%)scaleY(1)}95%,to{opacity:0;transform:translate(-50%)scaleY(1)}}
