/* FARMING mode — Jensen Silicon factory */
.farm-tabs .factory-tab{background:linear-gradient(180deg,#59d8ff,#2f7ad6)!important;color:#fff!important;border-color:#c9f3ff!important;box-shadow:0 4px 0 #1a3a7a,0 0 16px #59d8ff66!important;animation:factoryGlow 1.6s ease-in-out infinite alternate}
@keyframes factoryGlow{to{box-shadow:0 4px 0 #1a3a7a,0 0 26px #59d8ffaa}}
body.factory-open main,body.factory-open .selection-footer,body.factory-open .hub-backdrop,body.factory-open .lounge-ticker{display:none!important}
body.factory-open #world{visibility:hidden}
.factory{position:fixed;inset:62px 0 0;z-index:40;display:grid;grid-template-columns:1fr 340px;background:#12061c;font-family:Pixel,monospace;color:#fff0f6}
.factory.hidden{display:none}
.fx-stage{position:relative;overflow:hidden;min-height:0}
.fx-scene{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;cursor:pointer}
.fx-wallet{position:absolute;left:12px;right:12px;top:10px;display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;pointer-events:none}
.fx-wallet>*{pointer-events:auto}
.fx-coin{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-radius:999px;background:#1a0818e6;border:2px solid #ff7ab877;box-shadow:0 4px 0 #0b031088}
.fx-coin small{font-size:9px;color:#ff9ad6}.fx-coin b{font-size:15px;min-width:44px}
.fx-coin.cash b{color:#7dffb0;text-shadow:0 0 8px #7dffb066}.fx-coin.silk b{color:#ffe07a;text-shadow:0 0 8px #ffd36e88}
.fx-coin button,.fx-exchange{border:2px solid #fff0f6;border-radius:999px;background:linear-gradient(180deg,#ff9fd0,#e0307f);color:#fff;font:12px Pixel,monospace;min-width:30px;height:28px;cursor:pointer;box-shadow:0 3px 0 #8c1446;transition:transform .15s cubic-bezier(.3,1.8,.5,1)}
.fx-coin button:hover,.fx-exchange:hover{transform:translateY(-2px) scale(1.08)}
.fx-coin.silk button{background:linear-gradient(180deg,#ffe07a,#e0a020);box-shadow:0 3px 0 #8a5a0a;color:#4a2a00}
.fx-items{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 10px;border-radius:999px;background:#1a0818e6;border:2px solid #ff7ab877;box-shadow:0 4px 0 #0b031088}
.fx-item{display:flex;align-items:center;gap:3px;font-size:12px}.fx-item b{min-width:18px}
.fx-exchange{padding:0 10px;font-size:10px}
.ico{display:inline-block;width:22px;height:22px;image-rendering:pixelated;background-repeat:no-repeat;vertical-align:middle}
.ico.panties{background-image:url(assets/loot/pickups.png?v=14.0.1);background-size:800% 100%;background-position:0 0}
.ico.bras{background-image:url(assets/loot/pickups.png?v=14.0.1);background-size:800% 100%;background-position:calc(4*100%/7) 0}
.ico.kisses{background-image:url(assets/romance/kiss.png);background-size:800% 100%}
.ico.hearts{background-image:url(assets/romance/heart.png);background-size:800% 100%}
.ico.fly{position:fixed;width:30px;height:30px;z-index:70;pointer-events:none;filter:drop-shadow(2px 2px 0 #2a0f2a)}
.bump{animation:bump .3s cubic-bezier(.3,1.8,.5,1)}@keyframes bump{40%{transform:scale(1.35)}}
.tick{animation:tick .25s ease-out}@keyframes tick{40%{transform:translateY(-2px);color:#fff}}
.fx-hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:8px 16px;border-radius:999px;background:#1a0818ee;border:2px solid #ffd36e;color:#ffe9a8;font-size:11px;opacity:0;pointer-events:none;white-space:nowrap;max-width:94%;overflow:hidden;text-overflow:ellipsis}
.fx-hint.show{animation:hint 4.5s ease forwards}@keyframes hint{0%{opacity:0;transform:translate(-50%,10px)}8%,85%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}
.fx-pops{position:fixed;inset:0;pointer-events:none;z-index:69}
.fx-panel{display:flex;flex-direction:column;gap:10px;padding:14px;background:linear-gradient(160deg,#3a1233,#1b0b22 60%);border-left:3px solid #ff7ab877;overflow:auto;min-height:0}
.fx-panel header{display:flex;justify-content:space-between;align-items:center}.fx-panel h2{margin:0;font-size:16px;color:#ffe07a;text-shadow:0 0 10px #ffb34766}
.fx-back{border-radius:999px;border:2px solid #ff7ab8;background:#2a0f2a;color:#fff0f6;font:10px Pixel,monospace;padding:7px 12px;cursor:pointer}
.fx-stock{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.fx-stock>div{border-radius:12px;background:#ffffff0d;padding:6px;text-align:center}.fx-stock small{display:block;font-size:8px;color:#ff9ad6}.fx-stock b{font-size:12px}
.fx-tabs{display:flex;gap:6px}.fx-tabs button{flex:1;border-radius:999px;border:2px solid #ff7ab855;background:transparent;color:#d9b8c8;font:10px Pixel,monospace;padding:7px 4px;cursor:pointer}
.fx-tabs button.active{background:linear-gradient(180deg,#ff7ab8,#c62f74);color:#fff;border-color:#ffd3ea;box-shadow:0 3px 0 #6a1440}
.fx-list{display:flex;flex-direction:column;gap:7px}.fx-list.hidden{display:none}
.fx-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;text-align:left;border-radius:14px;border:2px solid #ff7ab844;background:#ffffff0a;color:#fff0f6;padding:8px 10px;font-family:Pixel,monospace;cursor:pointer;transition:transform .2s cubic-bezier(.3,1.7,.5,1),border-color .2s}
.fx-row:hover:not(:disabled){transform:translateX(-3px) scale(1.01);border-color:#ff9ad6}
.fx-row.poor{opacity:.55}.fx-row:disabled{opacity:.4;cursor:default}
.fx-row.bought{animation:bought .45s cubic-bezier(.3,1.8,.5,1)}@keyframes bought{30%{transform:scale(1.05);background:#ffd36e33}}
.fx-row.nope{animation:nope .3s}@keyframes nope{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.fx-ico{font-size:18px;text-align:center;color:#ffd36e}
.fx-txt b{display:block;font-size:11px}.fx-txt small{font-size:9px;color:#d9b8c8}
.fx-cost{font-size:11px;color:#7dffb0;white-space:nowrap}
.pix{display:inline-block;width:18px;height:18px;border-radius:3px}.pix.chip{background:#1f5a3a;box-shadow:inset 0 0 0 3px #2f8a56,0 0 0 2px #ffd36e}.pix.gpu{background:#20242e;box-shadow:inset 0 -3px 0 #1f5a3a,0 0 0 2px #59d8ff}
.fx-note,.fx-rates p,.fx-rates li{font-size:10px;line-height:1.6;color:#e7c9d8}.fx-rates ul{list-style:none;padding:0;margin:0}.fx-rates b{color:#ffe07a}
.fx-demo{font-size:9px!important;color:#ffd36e!important;border:1px dashed #ffd36e88;border-radius:10px;padding:6px 8px}
.fx-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#12061ccc}.fx-modal.hidden{display:none}
.fx-card{width:min(440px,92vw);border-radius:22px;border:3px solid #ff7ab8;background:linear-gradient(160deg,#3a1233,#1b0b22);box-shadow:0 0 0 3px #1a0818,0 0 40px #ff5fa855;padding:20px;display:flex;flex-direction:column;gap:12px;font-size:11px;line-height:1.6;animation:pop .3s cubic-bezier(.3,1.7,.5,1)}
@keyframes pop{from{transform:scale(.8);opacity:0}}
.fx-card h3{margin:0;color:#ffe07a;font-size:16px}.fx-card code{color:#7dffb0}
.fx-pay{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fx-primary{border-radius:999px;border:3px solid #fff0f6;background:linear-gradient(180deg,#ff9fd0,#e0307f);color:#fff;font:12px Pixel,monospace;padding:10px;cursor:pointer;box-shadow:0 4px 0 #8c1446;display:flex;flex-direction:column;align-items:center;gap:2px}
.fx-primary small{font-size:8px;opacity:.9}
.fx-ghost{border-radius:999px;border:2px solid #ff7ab866;background:transparent;color:#e7c9d8;font:10px Pixel,monospace;padding:8px;cursor:pointer}
.fx-field{display:flex;flex-direction:column;gap:4px;font-size:10px}.fx-field input{border-radius:10px;border:2px solid #ff7ab8;background:#12061c;color:#fff;font:12px monospace;padding:8px}
.fx-msg{color:#ff9a9a;min-height:1em;margin:0}
@media (max-width:820px){.factory{grid-template-columns:1fr;grid-template-rows:52vh 1fr;inset:56px 0 0}.fx-panel{border-left:0;border-top:3px solid #ff7ab877}.fx-wallet{gap:6px}.fx-coin b{font-size:12px;min-width:30px}.fx-items{gap:4px}.ico{width:18px;height:18px}.fx-pay{grid-template-columns:repeat(2,1fr)}}

/* pixel-art factory icons (assets/factory/icons.png) */
.pi{display:inline-block;width:24px;height:24px;background:url(assets/factory/icons.png?v=18.5.0) no-repeat;background-size:1900% 100%;image-rendering:pixelated;vertical-align:middle;flex-shrink:0}
.pi-chip{background-position:0.0000% 0}.pi-gpu{background-position:5.5556% 0}.pi-cash{background-position:11.1111% 0}.pi-silk{background-position:16.6667% 0}.pi-overclock{background-position:22.2222% 0}.pi-arm{background-position:27.7778% 0}.pi-premium{background-position:33.3333% 0}.pi-lean{background-position:38.8889% 0}.pi-billboard{background-position:44.4444% 0}.pi-warehouse{background-position:50.0000% 0}.pi-assistant{background-position:55.5556% 0}.pi-plot{background-position:61.1111% 0}.pi-deposit{background-position:66.6667% 0}.pi-cashout{background-position:72.2222% 0}.pi-ai{background-position:77.7778% 0}.pi-vip{background-position:83.3333% 0}.pi-research{background-position:88.8889% 0}.pi-happy{background-position:94.4444% 0}.pi-swap{background-position:100.0000% 0}
.pi.big{width:32px;height:32px}.fx-ico .pi{width:30px;height:30px}
.fx-yield{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px;border-radius:16px;background:linear-gradient(160deg,#1d3a2a55,#12061c88);border:2px solid #7dffb055}
.fx-yield>div{text-align:center}.fx-yield small{display:block;font-size:8px;color:#9fe7c0}.fx-yield b{display:block;font-size:13px;color:#7dffb0;text-shadow:0 0 8px #7dffb055}.fx-yield em{display:block;font-style:normal;font-size:8px;color:#d9b8c8}
.fx-reinvest{grid-column:1/-1;border-radius:999px;border:2px solid #d8ffe6;background:linear-gradient(180deg,#7dffb0,#2f8a56);color:#0d2a1a;font:11px Pixel,monospace;padding:7px;cursor:pointer;box-shadow:0 3px 0 #14402a;display:flex;align-items:center;justify-content:center;gap:6px;transition:transform .15s cubic-bezier(.3,1.8,.5,1)}
.fx-reinvest:hover{transform:translateY(-2px) scale(1.02)}.fx-reinvest .pi{width:18px;height:18px}
.fx-toggle{grid-column:1/-1;font-size:9px;color:#d9b8c8;display:flex;gap:6px;align-items:center;justify-content:center}
.fx-stock{grid-template-columns:repeat(5,1fr)!important}
.fx-pan{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:4px;border-radius:999px;background:#1a0818cc;border:2px solid #ff7ab866;font-size:8px;color:#e7c9d8;pointer-events:auto}
.fx-pan button{width:30px;height:26px;border-radius:999px;border:2px solid #fff0f6;background:linear-gradient(180deg,#ff9fd0,#e0307f);color:#fff;font:11px Pixel,monospace;cursor:pointer;box-shadow:0 3px 0 #8c1446}
.fx-pan button:active{transform:translateY(2px);box-shadow:0 1px 0 #8c1446}
.fx-scene{cursor:grab}.fx-scene:active{cursor:grabbing}
.fx-hint{bottom:52px}
.trailer-link{border-color:#ff6fd8!important;color:#ffd3f0!important;animation:factoryGlow 1.6s ease-in-out infinite alternate;margin-right:8px}
