:root{--bg: #1a0b3d;--bg-deep: #0e0526;--panel-hi: #3d2696;--panel-lo: #26136a;--panel2: #2f1b7a;--well: #1c0d4f;--edge: #0d0430;--line: #5a43c4;--text: #ffffff;--muted: #b9abef;--accent: #ffd23f;--accent-lo: #ff9f1c;--accent-edge: #a85a00;--good: #5cf27a;--good-lo: #1fbf4e;--good-edge: #0f7a32;--bad: #ff4f7b;--info: #3fd8ff;--info-lo: #2a7bff;--info-edge: #1a3a9e;--pink: #ff5fd2;--display: "Lilita One", "Fredoka", system-ui, sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);font-family:Fredoka,Segoe UI,system-ui,sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}#game{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;touch-action:manipulation}kbd{display:inline-block;min-width:1.6em;padding:0 .4em;border-radius:6px;background:var(--well);border:1px solid var(--line);border-bottom-width:3px;font:600 .8em/1.6 Fredoka,system-ui,sans-serif;text-align:center;color:#e6dcff}body.touch kbd{display:none}h1,h2{margin:0;font-family:var(--display);font-weight:400;letter-spacing:.01em}.muted{color:var(--muted)}.small{font-size:.85em}.gold{color:var(--accent)}.btn{--b-hi: #6b8bff;--b-lo: #4a5ae8;--b-edge: #26248a;font:400 17px var(--display);letter-spacing:.03em;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.3);background:linear-gradient(180deg,var(--b-hi),var(--b-lo));border:3px solid var(--edge);border-radius:16px;padding:12px 22px;min-height:52px;cursor:pointer;position:relative;box-shadow:inset 0 3px #ffffff59,inset 0 -4px #00000026,0 5px 0 var(--b-edge),0 8px 14px #00000059;transition:transform .08s,box-shadow .08s,filter .15s}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:inset 0 3px #ffffff59,inset 0 -2px #00000026,0 1px 0 var(--b-edge),0 3px 6px #00000059}.btn:disabled{filter:grayscale(.85) brightness(.7);cursor:not-allowed}.btn.primary{--b-hi: #ffe45c;--b-lo: var(--accent-lo);--b-edge: var(--accent-edge);color:#4a2200;text-shadow:0 1px 0 rgba(255,255,255,.5)}.btn.ghost{--b-hi: #3a2488;--b-lo: #2a1868;--b-edge: #140842;color:#ddd2ff}.btn.big{font-size:26px;padding:14px 30px;min-height:66px;border-radius:20px}.btn.small{padding:6px 12px;min-height:40px;font-size:15px;border-radius:12px;box-shadow:inset 0 2px #ffffff4d,0 3px 0 var(--b-edge)}.btn.small:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--b-edge)}.btn.buy{--b-hi: #9bff72;--b-lo: var(--good-lo);--b-edge: var(--good-edge);color:#063d16;text-shadow:0 1px 0 rgba(255,255,255,.4)}.btn-col{display:flex;flex-direction:column;gap:14px;align-items:stretch;width:min(300px,100%)}.row{display:flex;gap:10px;margin-top:20px}.row .btn{flex:1}.row.end{justify-content:flex-end}.icon-btn{width:44px;height:44px;flex:none;display:grid;place-items:center;font:400 20px var(--display);color:#fff;background:linear-gradient(180deg,#4a32a8,#2f1b7a);border:3px solid var(--edge);border-radius:14px;box-shadow:inset 0 2px #ffffff40,0 3px 0 var(--edge);cursor:pointer;padding:0}.icon-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}.screen{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:auto;display:flex;align-items:center;justify-content:center;overflow:auto;-webkit-overflow-scrolling:touch}.screen.title{background:radial-gradient(ellipse at 50% 30%,rgba(255,95,210,.22),transparent 60%),radial-gradient(ellipse at center,#0e052633,#0e0526cc)}.screen.office-screen{background:radial-gradient(ellipse at 50% -10%,rgba(63,216,255,.18),transparent 55%),linear-gradient(180deg,#1a0b3de0,#0e0526f0);align-items:stretch}.modal-back{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:auto;display:flex;align-items:flex-end;justify-content:center;background:#0a031ea6;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);padding:0;animation:fade .2s ease}.modal{background:linear-gradient(180deg,var(--panel-hi),var(--panel-lo) 140px);border:3px solid var(--edge);border-bottom:0;border-radius:26px 26px 0 0;padding:26px 18px calc(20px + var(--safe-b));width:100%;max-height:92%;overflow:auto;box-shadow:inset 0 3px #ffffff2e,0 -10px 40px #00000080;animation:sheet .28s cubic-bezier(.2,1.2,.4,1);position:relative}.modal:before{content:"";position:absolute;top:9px;left:50%;width:44px;height:5px;margin-left:-22px;border-radius:3px;background:#ffffff40}.modal.small{text-align:center}.modal.small .btn-col{margin:18px auto 0}.modal h2{font-size:30px;margin-bottom:8px;text-shadow:0 3px 0 var(--edge)}@keyframes sheet{0%{transform:translateY(40%);opacity:0}}@keyframes pop{0%{transform:scale(.85);opacity:0}}@keyframes fade{0%{opacity:0}}@media (min-width: 640px){.modal-back{align-items:center;padding:16px}.modal{width:min(560px,100%);border:3px solid var(--edge);border-radius:26px;padding:26px;max-height:100%;box-shadow:inset 0 3px #ffffff2e,0 8px 0 var(--edge),0 24px 60px #0000008c;animation:pop .25s cubic-bezier(.2,1.4,.4,1)}.modal:before{display:none}.modal.wide{width:min(720px,100%)}.modal.small{width:min(360px,100%)}}.title-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;padding:calc(24px + var(--safe-t)) 20px calc(24px + var(--safe-b));width:100%}.logo .phage-svg{width:110px;height:138px;filter:drop-shadow(0 0 24px rgba(255,210,63,.45));animation:bob 3s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-10px) rotate(4deg)}}.game-logo{display:flex;flex-direction:column;align-items:center;line-height:.92;transform:rotate(-3deg)}.game-logo span{-webkit-text-stroke:8px var(--edge);paint-order:stroke fill;text-shadow:0 6px 0 var(--edge)}.game-logo .l1{font-size:clamp(38px,11vw,76px);background:linear-gradient(180deg,#fff 0%,#c9f4ff 55%,var(--info) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:0;text-shadow:none;filter:drop-shadow(0 3px 0 var(--edge)) drop-shadow(0 -2px 0 var(--edge)) drop-shadow(3px 0 0 var(--edge)) drop-shadow(-3px 0 0 var(--edge)) drop-shadow(0 6px 0 var(--edge))}.game-logo .l2{font-size:clamp(30px,8.5vw,56px);color:var(--accent);letter-spacing:.08em;margin-top:4px}.tagline{color:#e6dcff;font-size:17px;font-weight:600;margin:4px 0 14px;text-shadow:0 2px 0 rgba(0,0,0,.35)}.play-btn{animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{50%{transform:scale(1.04)}}.foot{color:var(--muted);font-size:12px;margin-top:18px;max-width:320px}.lead{color:#e6dcff;line-height:1.45}.howto{display:grid;gap:10px;margin:14px 0}.step{display:flex;gap:12px;align-items:flex-start;background:var(--well);border:2px solid rgba(255,255,255,.06);border-radius:16px;padding:12px;line-height:1.4;font-size:15px}.step .n{flex:none;width:30px;height:30px;border-radius:50%;background:linear-gradient(180deg,#ffe45c,var(--accent-lo));border:2px solid var(--edge);color:#4a2200;font:400 16px var(--display);display:grid;place-items:center}.step.adv{border-color:#ff5fd266}.step.adv .n{background:linear-gradient(180deg,#ff9be6,var(--pink))}.controls{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:14px}.controls span{background:var(--well);border-radius:10px;padding:5px 10px}.office{width:100%;margin:0 auto;padding:calc(10px + var(--safe-t)) calc(12px + var(--safe-r)) calc(96px + var(--safe-b)) calc(12px + var(--safe-l));display:flex;flex-direction:column;gap:12px;min-height:100%}.office-head{display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:3;margin:calc(-10px - var(--safe-t)) -12px 0;padding:calc(10px + var(--safe-t)) 12px 10px;background:linear-gradient(180deg,#1a0b3dfa,#1a0b3dd9);border-bottom:3px solid var(--edge)}.brand{display:flex;gap:6px;align-items:center;min-width:0}.brand b{font:400 18px var(--display);display:block}.brand small{color:var(--accent);font-weight:600;font-size:12px;white-space:nowrap}.brand .mini .phage-svg{width:30px;height:38px}.brand>div:last-child{display:none}.pills{display:flex;gap:6px;align-items:center;margin-left:auto}.pill{display:flex;align-items:center;gap:4px;background:var(--well);border:3px solid var(--edge);border-radius:999px;padding:2px 12px 2px 3px;height:36px;color:var(--muted);font-size:13px;box-shadow:inset 0 -3px #00000040}.pill i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:15px;color:#4a2200;background:radial-gradient(circle at 35% 30%,#fff3b0,var(--accent) 45%,var(--accent-lo));border:2px solid var(--accent-edge)}.pill.credits i{background:radial-gradient(circle at 35% 30%,#c9f6ff,var(--info) 45%,var(--info-lo));border-color:var(--info-edge);color:#0b2a6b}.pill b{color:var(--text);font:400 17px var(--display)}.head-btns{display:flex;gap:6px}.head-btns .icon-btn{width:38px;height:38px;font-size:16px;border-radius:12px}.office-cols{display:grid;grid-template-columns:1fr;gap:14px}.office[data-tab=jobs] .shop-panel,.office[data-tab=shop] .jobs-panel{display:none}.panel{background:linear-gradient(180deg,var(--panel-hi),var(--panel-lo) 120px);border:3px solid var(--edge);border-radius:22px;padding:16px 14px;box-shadow:inset 0 3px #ffffff26,0 6px 0 var(--edge);animation:fade .25s ease}.panel h2{font-size:24px;text-shadow:0 3px 0 var(--edge)}.hint{color:var(--muted);font-size:13px;margin:4px 0 14px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;gap:10px;padding:10px calc(14px + var(--safe-r)) calc(10px + var(--safe-b)) calc(14px + var(--safe-l));background:linear-gradient(180deg,#26136af5,#1a0b3dfc);border-top:3px solid var(--edge);box-shadow:0 -8px 24px #00000059}.tab{flex:1;position:relative;display:flex;align-items:center;justify-content:center;gap:8px;height:58px;font:400 19px var(--display);letter-spacing:.03em;color:var(--muted);background:var(--well);border:3px solid var(--edge);border-radius:18px;box-shadow:inset 0 -3px #0000004d;cursor:pointer;transition:transform .1s}.tab i{font-style:normal;font-size:22px}.tab.on{color:#4a2200;background:linear-gradient(180deg,#ffe45c,var(--accent-lo));box-shadow:inset 0 3px #fff6,0 4px 0 var(--accent-edge);transform:translateY(-4px)}.tab:active{transform:translateY(0)}.badge{position:absolute;top:-10px;right:10px;min-width:26px;height:26px;padding:0 6px;border-radius:13px;display:grid;place-items:center;font:400 14px var(--display);font-style:normal;color:#fff;background:var(--bad);border:3px solid var(--edge);animation:bounce 1.2s ease-in-out infinite}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}@media (min-width: 520px){.brand>div:last-child{display:block}}@media (min-width: 900px){.screen.office-screen{align-items:stretch}.office{width:min(1200px,100%);height:100%;min-height:0;padding:18px;gap:16px}.office-head{position:static;margin:0;padding:0;background:none;border:0}.brand .mini .phage-svg{width:40px;height:50px}.brand b{font-size:24px}.office-cols{grid-template-columns:1.15fr 1fr;flex:1;min-height:0}.office[data-tab] .shop-panel,.office[data-tab] .jobs-panel{display:block}.panel{overflow:auto;min-height:0}.tabbar{display:none}}.jobs,.shop{display:grid;gap:12px}.jobs .job{display:flex;gap:12px;align-items:stretch;text-align:left;width:100%;background:linear-gradient(180deg,#4a32a8,#35208a);border:3px solid var(--edge);border-radius:18px;padding:12px;color:var(--text);font:inherit;cursor:pointer;box-shadow:inset 0 2px #ffffff2e,0 4px 0 var(--edge);transition:transform .1s}.jobs button.job:active{transform:translateY(3px) scale(.99);box-shadow:0 1px 0 var(--edge)}@media (hover: hover){.jobs button.job:hover{transform:translateY(-2px)}}.jobs .job.locked{background:var(--well);opacity:.6;cursor:default;box-shadow:none}.jobs .job.done{background:linear-gradient(180deg,#3d36b0,#2a2690)}.job-n{flex:none;align-self:center;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font:400 22px var(--display);color:#fff;text-shadow:0 2px 0 var(--edge);background:radial-gradient(circle at 35% 30%,#9be8ff,var(--info) 45%,var(--info-lo));border:3px solid var(--edge);box-shadow:0 3px 0 var(--edge)}.job.done .job-n{background:radial-gradient(circle at 35% 30%,#d4ffc4,var(--good) 45%,var(--good-lo))}.job.locked .job-n{background:#2a1868;font-size:18px}.job-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.job-body b{font:400 18px var(--display);letter-spacing:.01em}.job-body small{color:var(--muted)}.job-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:6px}.pay{font:400 16px var(--display);color:var(--accent);background:var(--well);border-radius:999px;padding:2px 10px;white-space:nowrap}.need{color:var(--bad);font-size:13px;font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.chip{display:inline-flex;align-items:center;gap:4px;height:24px;font-size:12px;font-weight:600;line-height:1;background:var(--well);border:2px solid rgba(255,255,255,.08);border-radius:999px;padding:0 9px;color:#e6dcff;white-space:nowrap}.chip b{font:400 13px/1 Fredoka,system-ui,sans-serif}.chip.adapt{border-color:var(--pink);color:#ffc4ef}.chip.friendly{border-color:var(--good-lo)}.stars{white-space:nowrap}.star{color:#4a3a8a;font-size:18px}.star.on{color:var(--accent);text-shadow:0 2px 0 var(--accent-edge),0 0 10px rgba(255,210,63,.6)}.upg{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center;background:linear-gradient(180deg,#4a32a8,#35208a);border:3px solid var(--edge);border-radius:18px;padding:12px;box-shadow:inset 0 2px #ffffff2e,0 4px 0 var(--edge)}.upg>.btn{grid-column:1 / -1}.upg.maxed{opacity:.75}.upg-icon{font-size:28px;width:54px;height:54px;border-radius:16px;background:radial-gradient(circle at 35% 30%,#5a42c8,var(--well));border:3px solid var(--edge);display:grid;place-items:center;flex:none;align-self:start}.upg-body{display:flex;flex-direction:column;gap:2px;min-width:0}.upg-body b{font:400 18px var(--display)}.upg-body small{color:var(--muted);font-size:13px}.upg-next{font-size:13px;font-weight:600;color:var(--info)}.pips{display:flex;gap:4px;margin-top:4px}.pips i{width:22px;height:8px;border-radius:4px;background:var(--well);border:1px solid var(--edge)}.pips i.on{background:linear-gradient(180deg,#b6ff9a,var(--good));box-shadow:0 0 6px #5cf27a99}@media (min-width: 420px){.upg{grid-template-columns:auto 1fr auto}.upg>.btn{grid-column:auto}}.email{background:#fff8e6;color:#2a1a40;border:3px solid var(--edge);border-radius:18px;padding:14px 16px;box-shadow:0 4px 0 var(--edge)}.email-head{border-bottom:2px dashed #e0cfa8;padding-bottom:8px;margin-bottom:8px;display:grid;gap:2px;font-size:14px}.email-head small{color:#9a7f5a;display:inline-block;width:64px}.email-body{margin:0;line-height:1.5}.brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.brief-grid>div{background:var(--well);border-radius:14px;padding:8px 12px}.brief-grid b{font:400 17px var(--display)}.brief-grid small{display:block;color:var(--muted);font-size:12px;margin-bottom:2px}.brief-grid>div:first-child{grid-column:1 / -1}.warn,.tip{margin-top:12px;padding:10px 12px;border-radius:14px;font-size:14px}.warn{background:#ff4f7b26;border:2px solid rgba(255,79,123,.5)}.tip{background:#3fd8ff1f;border:2px solid rgba(63,216,255,.4)}.result{text-align:center}.result h2{font-size:38px;-webkit-text-stroke:6px var(--edge);paint-order:stroke fill;text-shadow:0 5px 0 var(--edge);animation:pop .4s cubic-bezier(.2,1.6,.4,1)}.result.won h2{color:var(--accent)}.result.lost h2{color:var(--bad)}.big-stars{margin:4px 0}.big-stars .star{font-size:58px;margin:0 2px;display:inline-block;-webkit-text-stroke:3px var(--edge);paint-order:stroke fill;animation:starpop .5s cubic-bezier(.2,1.6,.4,1) backwards}.big-stars .star:nth-child(2){font-size:72px;animation-delay:.18s}.big-stars .star:nth-child(3){animation-delay:.36s}@keyframes starpop{0%{transform:scale(0) rotate(-40deg)}}.fail{color:#ffc2d1;font-weight:600}.res-cols{display:grid;grid-template-columns:1fr;gap:10px;margin:14px 0 6px;text-align:left}@media (min-width: 560px){.res-cols{grid-template-columns:1fr 1fr}}.res-table{background:var(--well);border-radius:16px;padding:10px 14px;display:grid;gap:5px;font-size:14px}.res-table>div{display:flex;justify-content:space-between;gap:10px}.res-table span{color:var(--muted)}.res-table.pay b{color:var(--good)}.res-table.pay b.neg{color:var(--bad)}.res-table .total{border-top:2px dashed var(--line);padding-top:6px;margin-top:2px;font:400 20px var(--display)}.res-table .total span{color:var(--text)}.res-table .total b{color:var(--accent)!important}.unlock{color:var(--info);font-weight:600}.fact{margin-top:12px;text-align:left;background:#ffd23f1a;border:2px solid rgba(255,210,63,.35);border-radius:16px;padding:10px 14px;font-size:14px;line-height:1.45}.fact b{color:var(--accent)}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;font-size:13px}.hud-panel{background:linear-gradient(180deg,#3d2696e6,#26136ae6);border:3px solid var(--edge);border-radius:16px;padding:6px 10px;box-shadow:inset 0 2px #ffffff26,0 3px #0d0430cc}.hud-panel small{display:block;color:var(--muted);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.hud-panel b{font:400 20px var(--display)}.hud-top{position:absolute;top:calc(8px + var(--safe-t));left:calc(8px + var(--safe-l));right:calc(8px + var(--safe-r));display:flex;gap:8px;align-items:stretch}.hud-pause{pointer-events:auto;flex:none;width:48px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0;cursor:pointer;background:linear-gradient(180deg,#ffe45c,var(--accent-lo));border:3px solid var(--edge);border-radius:16px;box-shadow:inset 0 2px #fff6,0 3px 0 var(--accent-edge)}.hud-pause i{width:6px;height:18px;border-radius:2px;background:#4a2200}.hud-pause:active{transform:translateY(2px)}.hud-top .job{display:none;min-width:0}.hud-top .job b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.hud-top .timer{text-align:center;min-width:82px}.hud-top .timer b{font-size:24px;font-variant-numeric:tabular-nums}.hud-top .timer b.urgent{color:var(--bad);display:inline-block;animation:throb .6s infinite alternate}@keyframes throb{to{transform:scale(1.15)}}@keyframes pulse{to{opacity:.55}}.hud-top .targets{flex:1;min-width:0;max-width:260px;margin-left:auto}.bar{height:10px;background:var(--edge);border-radius:6px;overflow:hidden;margin-top:4px;box-shadow:inset 0 2px #0006}.bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(180deg,#ff9bb5,#ff4f7b);box-shadow:inset 0 2px #fff6;transition:width .3s}.bar.danger i{background:linear-gradient(90deg,var(--good),var(--accent) 60%,var(--bad))}.hud-left{position:absolute;top:calc(76px + var(--safe-t));left:calc(8px + var(--safe-l));width:150px;display:flex;flex-direction:column;gap:6px}.hud-left .stats>div{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:12px}.hud-left .stats b{font-size:15px}.hud-left .muted{text-transform:none;letter-spacing:0}.tutorial ol{margin:4px 0 0;padding-left:16px;display:grid;gap:5px;font-size:12.5px;line-height:1.35}.tutorial li{color:#7d6cc0}.tutorial li:not(.now){display:none}.tutorial li.now{color:var(--text);font-weight:600}.tutorial li.now::marker{color:var(--accent)}.tutorial li.done{color:var(--good);text-decoration:line-through;opacity:.7}.hud-bottom{position:absolute;bottom:calc(12px + var(--safe-b));left:calc(12px + var(--safe-l));display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;max-width:calc(100% - 210px)}.fiber-row{display:flex;gap:6px;margin-top:4px}.fiber{position:relative;display:flex;align-items:center;justify-content:center;gap:5px;padding:4px 8px;min-width:44px;min-height:40px;border-radius:12px;border:3px solid var(--edge);background:var(--well);pointer-events:auto;cursor:pointer;transition:transform .1s}.fiber .glyph{font-size:22px;line-height:1;text-shadow:0 2px 0 var(--edge)}.fiber.active{border-color:var(--accent);background:radial-gradient(circle at 50% 30%,#5a42c8,var(--well));box-shadow:0 0 12px #ffd23f8c;transform:scale(1.08)}.fiber.held{transform:scale(.94)}.fiber.locked{opacity:.35;pointer-events:none}.fiber .lock{font-size:11px}.keys{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:12.5px;max-width:460px}.alarm-row{display:flex;align-items:center;gap:6px;margin-top:3px}.alarm-row .bar{flex:1;margin:0}.jam{color:#b8c6ff;font-weight:700}.alarm.jammed{border-color:#5a7cff}.alarm.jammed .alarm-bar i{background:#5a7cff}.alarm-bar i{background:linear-gradient(90deg,var(--accent),var(--bad))}.program{pointer-events:auto;cursor:pointer}.program b{font-size:16px;display:block}.program.sleeping{border-color:#5a7cff;box-shadow:0 0 16px #5a7cff80}.program.held{transform:scale(.96)}.program .wake{font-size:12px;color:var(--muted);margin-top:2px}.program .wake.ready{color:#c9d3ff;animation:pulse .8s infinite alternate}body.touch .program .wake{display:none}.toasts{position:absolute;top:calc(30% + var(--safe-t));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;width:min(420px,78vw)}.toast{background:linear-gradient(180deg,#3d2696f5,#26136af5);border:3px solid var(--info);border-radius:16px;padding:7px 14px;font-size:14px;font-weight:600;box-shadow:0 4px #0d0430cc;animation:toastIn .35s cubic-bezier(.2,1.5,.4,1);transition:opacity .4s,transform .4s;text-align:center}.toast.good{border-color:var(--good)}.toast.bad{border-color:var(--bad)}.toast.out{opacity:0;transform:translateY(-8px) scale(.95)}@keyframes toastIn{0%{opacity:0;transform:scale(.6)}}.touch-ui{display:none}body.touch .touch-ui{display:block}body.touch .keys{display:none}.stick-zone{position:absolute;left:0;bottom:0;width:55%;height:58%;pointer-events:auto;touch-action:none}.stick-base{position:absolute;left:calc(84px + var(--safe-l));top:calc(100% - 96px - var(--safe-b));width:128px;height:128px;margin:-64px 0 0 -64px;border-radius:50%;background:radial-gradient(circle,#3d269640,#3d269680);border:3px solid rgba(255,255,255,.22);opacity:.55;transition:opacity .15s}.stick-zone.active .stick-base{opacity:1}.stick-knob{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c9f6ff,var(--info) 50%,var(--info-lo));border:3px solid var(--edge);box-shadow:inset 0 -4px #0003,0 4px 0 var(--edge)}.actions{position:absolute;right:calc(16px + var(--safe-r));bottom:calc(18px + var(--safe-b));width:170px;height:160px}.act-btn{position:absolute;pointer-events:auto;touch-action:none;display:grid;place-items:center;padding:0;border-radius:50%;border:3px solid var(--edge);font:400 24px var(--display);color:#fff;background:radial-gradient(circle at 35% 30%,#8a72ff,#4a32a8 60%,#35208a);box-shadow:inset 0 3px #ffffff4d,0 5px 0 var(--edge);transition:transform .08s,opacity .2s}.act-btn.held{transform:translateY(4px) scale(.96);box-shadow:inset 0 3px #ffffff4d,0 1px 0 var(--edge)}.act-btn.main{right:0;bottom:0;width:96px;height:96px;font-size:34px;line-height:1;gap:0;align-content:center;color:#4a2200;background:radial-gradient(circle at 35% 28%,#fff6b8,var(--accent) 45%,var(--accent-lo));box-shadow:inset 0 -6px #a85a0059,inset 0 3px #ffffff80,0 6px 0 var(--accent-edge),0 10px 20px #0006}.act-btn.main small{font-size:13px;letter-spacing:.06em;margin-top:2px}.hud.can-land .act-btn.main,.hud.attached .act-btn.main{animation:ready .9s ease-in-out infinite}@keyframes ready{50%{box-shadow:inset 0 -6px #a85a0059,inset 0 3px #ffffff80,0 6px 0 var(--accent-edge),0 0 0 10px #ffd23f40}}.act-btn.letgo{right:104px;bottom:4px;width:60px;height:60px;opacity:0;pointer-events:none;transform:scale(.6)}.hud.attached .act-btn.letgo{opacity:1;pointer-events:auto;transform:none}.act-btn.wake-btn{right:18px;bottom:108px;width:58px;height:58px;background:radial-gradient(circle at 35% 30%,#c9d3ff,#5a7cff 55%,#3a4fd0);opacity:.45}.hud.has-sleepers .act-btn.wake-btn{opacity:1;animation:bounce 1s ease-in-out infinite}body.touch .hud-bottom{left:auto;right:calc(12px + var(--safe-r));bottom:calc(190px + var(--safe-b));max-width:none;flex-direction:column;align-items:flex-end;gap:8px}body.touch .hud-bottom .hud-panel{padding:5px 7px}body.touch .hud-bottom small{text-align:right}body.touch .fiber{min-width:48px;min-height:46px}body.touch .fiber kbd{display:none}@media (max-height: 500px){.hud-left{top:calc(68px + var(--safe-t))}.hud-left .stats{display:none}body.touch .hud-bottom{bottom:calc(12px + var(--safe-b));right:calc(200px + var(--safe-r));flex-direction:row}.act-btn.wake-btn{right:110px;bottom:72px}.toasts{top:calc(64px + var(--safe-t))}}@media (min-width: 760px){.hud{font-size:14px}.hud-top{top:12px;left:12px;right:12px;gap:10px}.hud-top .job{display:block;margin-right:auto;max-width:300px}.hud-top .timer{min-width:110px}.hud-top .timer b{font-size:28px}.hud-top .targets{flex:none;width:200px;margin-left:0}.hud-left{top:92px;width:230px;gap:8px}.hud-left .stats>div{font-size:14px}.hud-left .stats b{font-size:17px}.tutorial ol{font-size:13px}.toasts{top:96px}}@media (min-width: 760px) and (min-height: 501px){.tutorial li:not(.now){display:list-item}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
