:root{--ink:#1c2340;--muted:#5e6b85;--paper:#fff;--sky:#8fd0ff;--earth:#4a3118;--earth2:#2e1d0c;--accent:#35d6ff;--accent2:#7cf7c9;--gold:#ffcd4d;--danger:#ff5c7c;--video:#ffb347;--tower-w:720px;--floor-h:170px;--core-h:250px;font-family:Fredoka,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--earth2);height:100%;color:var(--ink);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#app{width:100%;height:100%;position:relative}#world{background:linear-gradient(180deg, var(--sky) 0, #e4f4ff 110px, #6e4b2b 110px, var(--earth) 900px, var(--earth2) 2400px);scroll-behavior:smooth;position:absolute;inset:0;overflow:hidden auto}.sky{height:110px;width:min(100%, var(--tower-w));margin:0 auto}.sky svg{display:block}.tower{width:min(100%, var(--tower-w));margin:0 auto;position:relative;box-shadow:0 0 0 6px #3a2712}.bedrock{height:40vh}.floor{height:var(--floor-h);border-bottom:4px solid #8fa3c2;position:relative;overflow:hidden}.floor.core{height:var(--core-h)}.floor .room,.floor .layer{width:100%;height:100%;display:block;position:absolute;inset:0}.floor .layer{pointer-events:none}.floor .tapzone{cursor:pointer;position:absolute;inset:0}.floor.flash:after{content:"";pointer-events:none;background:#7cf7c959;animation:.4s ease-out forwards flash;position:absolute;inset:0}@keyframes flash{to{opacity:0}}.floor .label{background:var(--ink);color:var(--accent);pointer-events:none;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:700;position:absolute;top:8px;left:calc(10% + 8px)}.floor .sat{background:var(--danger);color:#fff;pointer-events:none;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;animation:1s infinite blinkText;position:absolute;top:8px;left:calc(10% + 44px)}@keyframes blinkText{50%{opacity:.4}}.floor.appear{animation:.6s ease-out appear}@keyframes appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.shaftcol{z-index:3;cursor:pointer;width:10%;position:absolute;top:0;bottom:0;left:0}.cabin{will-change:transform;filter:drop-shadow(0 4px 6px #00000080);width:52px;height:60px;margin-left:-26px;position:absolute;top:0;left:50%}.cabin svg{width:100%;height:100%;display:block}.cabin .cargo-cubes{opacity:0;transition:opacity .2s}.cabin.loaded .cargo-cubes{opacity:1}.cabin .cargo{text-align:center;color:#fff;text-shadow:0 1px 2px #000;font-size:11px;font-weight:700;position:absolute;bottom:-16px;left:0;right:0}.shaftcol.working .cabin{filter:drop-shadow(0 0 10px #7cf7c9e6)}.plate{z-index:4;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffffeb;border:2px solid #c9d3e6;border-radius:14px;grid-template-columns:1fr 1fr;gap:4px 6px;width:196px;padding:6px 8px;display:grid;position:absolute;top:8px;right:8px;box-shadow:0 6px 16px #141e3c40}.plate .ptitle{grid-column:1/-1;justify-content:space-between;align-items:baseline;font-size:14px;line-height:1.1;display:flex}.plate .plvl{color:#1794b8;white-space:nowrap;font-size:12px;font-weight:700}.plate .prate{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;font-size:11px;overflow:hidden}.plate .auto{text-align:center;color:#7d3fe0;grid-column:2;align-self:center;font-size:12px;font-weight:700}.plate .hint{color:#e58a12;grid-column:1/-1;font-size:11px;font-weight:700;animation:1.4s infinite blinkText}.plate.pipe{width:190px;top:8px;left:calc(10% + 8px);right:auto}.plate.desk{top:8px}.btn{all:unset;cursor:pointer;text-align:center;color:#fff;background:linear-gradient(#4f7cff,#2d55d8);border-radius:10px;min-height:34px;padding:6px;font-size:12px;font-weight:700;line-height:1.1;transition:transform 80ms,filter .2s;box-shadow:inset 0 2px #ffffff59,0 3px #1c3aa0}.btn b{color:var(--gold);margin-top:1px;font-size:11px;font-weight:700;display:block}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #ffffff59,0 1px #1c3aa0}.btn:disabled{cursor:default;filter:grayscale(.8)brightness(.8)}.btn.hire{background:linear-gradient(#b47cff,#7d3fe0);box-shadow:inset 0 2px #ffffff59,0 3px #5423a8}.btn.dig{z-index:4;color:#3a2200;background:linear-gradient(#ffd86b,#f0a41b);width:min(46%,300px);padding:12px;font-size:17px;position:absolute;top:50%;left:58%;transform:translate(-50%,-50%);box-shadow:inset 0 2px #ffffff80,0 4px #b06f00,0 8px 18px #00000059}.btn.dig:active:not(:disabled){transform:translate(-50%,calc(2px - 50%))}.btn.dig b{color:#3a2200;font-size:13px}.btn.video{color:#3a2200;background:linear-gradient(#ffc46b,#e58a12);align-items:center;gap:8px;display:inline-flex;box-shadow:inset 0 2px #ffffff80,0 3px #a55f00}.btn.ghost{color:var(--muted);background:0 0;box-shadow:inset 0 0 0 2px #c9d3e6}.btn.primary{padding:10px 18px;font-size:15px}#hud{pointer-events:none;z-index:10;position:absolute;inset:0}.hud-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:10px;right:10px}.pill{pointer-events:auto;color:#fff;background:#1c2340eb;border-radius:999px;align-items:baseline;gap:6px;padding:6px 14px;font-size:14px;display:flex;box-shadow:0 4px 12px #00000059}.pill.money b{color:var(--gold);font-size:22px}.pill.money span,.pill.income span{color:#a9b2e6;font-size:12px}.pill.income b{color:var(--accent2);font-size:16px}.pill.boost{background:var(--video);color:#3a2200;font-weight:700}.pill.gen{color:var(--accent);margin-left:auto;font-weight:700}.hud-bottom{flex-direction:column;gap:10px;display:flex;position:absolute;bottom:14px;right:12px}.round{all:unset;pointer-events:auto;cursor:pointer;color:#3a2200;background:linear-gradient(#ffc46b,#e58a12);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:56px;height:56px;font-size:12px;font-weight:700;display:flex;box-shadow:inset 0 2px #ffffff80,0 4px #a55f00,0 8px 18px #0006}.round.menu{color:#fff;background:linear-gradient(#4f5b82,#2a3358);box-shadow:inset 0 2px #ffffff40,0 4px #171d38,0 8px 18px #0006}.round:disabled{filter:grayscale(.8)brightness(.7);cursor:default}.round:active:not(:disabled){transform:translateY(2px)}#modal{z-index:50;background:#0a0e1e99;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}#modal .card{background:var(--paper);color:var(--ink);text-align:center;border-radius:20px;width:100%;max-width:440px;max-height:86vh;padding:20px;overflow:auto;box-shadow:0 20px 60px #00000080}#modal h2{margin:0 0 10px}#modal .body{color:var(--muted);text-align:left;margin:0 0 16px}#modal .body p{text-align:center;margin:0 0 10px}#modal .row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}#modal .records{grid-template-columns:1fr auto;gap:6px 12px;margin:0 0 12px;font-size:14px;display:grid}#modal .records dd{color:var(--ink);text-align:right;margin:0;font-weight:700}#modal h3{text-transform:uppercase;letter-spacing:.06em;margin:8px 0 6px;font-size:13px}#modal .journal{flex-direction:column;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}#modal .journal li{background:#eef2f9;border-radius:8px;padding:4px 8px}#modal .journal li.milestone{color:#a86b00}#modal .journal li.unlock{color:#1794b8}#modal .journal li.reward{color:#c25e00}#modal .note{font-size:12px}.paused #world,.paused #hud{filter:blur(3px)brightness(.6);pointer-events:none}.tech{animation:walk var(--dur) ease-in-out var(--delay) infinite alternate}.tech .bob{animation:.5s ease-in-out infinite alternate bob}.tech .leg.l1{transform-origin:0 -14px;animation:.5s ease-in-out infinite alternate leg}.tech .leg.l2{transform-origin:0 -14px;animation:.5s ease-in-out infinite alternate-reverse leg}.robot .leg{animation:none}@keyframes walk{0%{transform:translate(var(--x0), var(--ground,144px))}to{transform:translate(var(--x1), var(--ground,144px))}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-2px)}}@keyframes leg{0%{transform:rotate(-18deg)}to{transform:rotate(18deg)}}.floor:not(.working) .tech,.floor:not(.working) .tech .bob,.floor:not(.working) .tech .leg,.floor:not(.working) .scroll,.floor:not(.working) .sweep,.floor:not(.working) .glow,.floor:not(.working) .flicker,.floor:not(.working) .arm1,.floor:not(.working) .arm2{animation-play-state:paused}.floor.core .tech,.floor.core .tech .bob,.floor.core .tech .leg{animation-play-state:running}.scroll{animation:1.6s linear infinite scroll}@keyframes scroll{0%{opacity:.2}50%{opacity:.9}to{opacity:.2}}.blink{animation:1.2s infinite blinkText}.sweep{animation:1.8s ease-in-out infinite alternate sweep}@keyframes sweep{to{transform:translate(94px)}}.glow{animation:1.8s infinite blinkText}.flicker{animation:3s steps(6,end) infinite flicker}@keyframes flicker{0%,to{opacity:.8}30%{opacity:.55}60%{opacity:.9}}.arm1{transform-origin:0 -8px;animation:2.4s ease-in-out infinite alternate arm}.arm2{transform-origin:0 -56px;animation:2.4s ease-in-out -1.2s infinite alternate-reverse arm}@keyframes arm{0%{transform:rotate(-12deg)}to{transform:rotate(14deg)}}.bubble{transform-origin:bottom;animation:2.4s ease-in-out infinite bubble}@keyframes bubble{0%,to{opacity:0;transform:translateY(6px)scale(.9)}20%,70%{opacity:1;transform:none}}.wave{animation:1s ease-in-out infinite alternate wave}@keyframes wave{to{transform-origin:50%;transform:scaleY(.4)}}.cloud{animation:cloud var(--dur) linear infinite}@keyframes cloud{0%{transform:translate(-200px)}to{transform:translate(760px)}}.orb-ring{transform-origin:50%;transform-box:fill-box;animation:2.8s ease-out infinite ring}.orb-ring.r2{animation-delay:1.4s}@keyframes ring{0%{opacity:.8;transform:scale(.85)}to{opacity:0;transform:scale(1.4)}}.orb-eye{transform-box:fill-box;transform-origin:50%;animation:6s infinite blinkEye}.floor.eating .orb-eye{animation:.5s ease-in-out infinite alternate chew}.floor.eating .orb-core{filter:drop-shadow(0 0 14px #35d6ffe6)}@keyframes blinkEye{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes chew{0%{transform:scale(1)}to{transform:scale(1.3)}}.coin{opacity:0;transform-box:fill-box;transform-origin:50%}.floor.paying .coin{animation:.8s ease-out coin}@keyframes coin{0%{opacity:0;transform:translateY(0)scale(.6)}30%{opacity:1;transform:translateY(-14px)scale(1.1)}to{opacity:0;transform:translateY(-40px)scale(1)}}.client{transition:opacity .4s}.floor:not(.working) .client.c1,.floor:not(.working) .client.c2{opacity:.25}.floor.stocked .queue .client{animation:.4s ease-in-out infinite alternate bob}#loader{z-index:100;color:var(--ink);background:radial-gradient(circle at 50% 30%,#d8f0ff,#8fd0ff 70%);flex-direction:column;justify-content:center;align-items:center;gap:16px;transition:opacity .4s;display:flex;position:fixed;inset:0}#loader.gone{opacity:0;pointer-events:none}#loader h1{letter-spacing:.04em;color:#1c2340;text-shadow:0 2px #fff;margin:0;font-size:52px}#loader p{color:#3b4763;margin:0}#loader .progress{background:#1c234026;border-radius:5px;width:min(320px,70vw);height:10px;overflow:hidden}#loader .progress>div{background:linear-gradient(90deg, var(--accent), var(--accent2));width:0;height:100%;transition:width .3s}#loader button{all:unset;cursor:pointer;color:#3a2200;background:linear-gradient(#ffd86b,#f0a41b);border-radius:14px;padding:12px 40px;font-size:20px;font-weight:700;box-shadow:inset 0 2px #ffffff80,0 4px #b06f00,0 8px 20px #0000004d}@media (max-width:760px){:root{--floor-h:150px;--core-h:230px}.plate{gap:3px 4px;width:150px;padding:5px 6px}.plate .ptitle{font-size:12px}.plate .prate{font-size:10px}.plate.pipe{width:140px;top:44px}.btn{min-height:32px;padding:5px 4px;font-size:11px}.pill{padding:5px 10px;font-size:12px}.pill.money b{font-size:18px}.pill.gen{display:none}.hud-top{justify-content:space-between;top:8px;left:8px;right:8px}.pill.boost{flex-basis:100%;order:3;justify-content:center}.round{width:50px;height:50px}.floor .label,.floor .sat{top:auto;bottom:6px}}@media (prefers-reduced-motion:reduce){.tech,.tech .bob,.tech .leg,.orb-ring,.cloud,.blink,.scroll{animation:none}}
