:root{--bg: #0b0d17;--panel: rgba(10, 12, 26, .78);--line: #2c3266;--ink: #e8ecff;--muted: #8f97c2;--acc: #ffd23f;--acc2: #ff4fd8;--ok: #5dff9c;--bad: #ff5d5d}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:VT323,ui-monospace,monospace;font-size:20px;user-select:none;-webkit-user-select:none}#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}#css3d{position:fixed;inset:0;pointer-events:none;z-index:2;display:none;overflow:hidden}#css3d.on{display:block}#css3d .desktop{position:absolute;left:0;top:0;transform-origin:0 0}body.seated .hud,body.seated #hotbar,body.seated #itemName,body.seated #crosshair,body.seated #prompt{display:none}#vignette{position:fixed;inset:0;pointer-events:none;opacity:0;z-index:1;background:radial-gradient(ellipse at center,transparent 45%,rgba(255,0,180,.35) 80%,rgba(0,0,0,.85) 100%)}#vignette.dark{background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.9) 100%)}#flash{position:fixed;inset:0;pointer-events:none;z-index:30;opacity:0}#flash.go{animation:flash 1.4s ease-out}@keyframes flash{0%{opacity:1}to{opacity:0}}#busted{position:fixed;inset:0;display:none;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:9vh;pointer-events:none;z-index:35;background:radial-gradient(ellipse at center,transparent 35%,rgba(0,0,0,.7) 100%)}#busted.go{display:flex}#busted .b1{font-family:Bangers,Impact,sans-serif;font-size:min(22vw,200px);line-height:1;letter-spacing:6px;color:#3b82f6;-webkit-text-stroke:5px #000;text-shadow:6px 6px 0 #000;opacity:0;animation:busted1 5s ease-out forwards}#busted .b2{font-family:Bangers,Impact,sans-serif;font-size:min(6vw,44px);letter-spacing:3px;color:#fff;-webkit-text-stroke:2px #000;opacity:0;animation:busted2 5s ease-out forwards}@keyframes busted1{0%,18%{opacity:0;transform:scale(2.2)}30%{opacity:1;transform:scale(1)}88%{opacity:1}to{opacity:0}}#busted .b3{font-family:VT323,monospace;font-size:min(5vw,34px);color:#ffe9a8;text-shadow:2px 2px 0 #000,0 0 8px #000;opacity:0;margin:4px 0 6px;animation:busted2 5s ease-out forwards;animation-delay:.15s}@keyframes busted2{0%,35%{opacity:0}45%{opacity:1}88%{opacity:1}to{opacity:0}}body.busted #c{filter:grayscale(.45) contrast(1.15)!important}body.busted .hud,body.busted #hotbar,body.busted #itemName,body.busted #crosshair,body.busted #prompt,body.busted #subtitle{display:none}#fade{position:fixed;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity 1.2s;z-index:40}#fade.on{opacity:1}#crosshair{position:fixed;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;background:#fff;border:1px solid #000;z-index:5;pointer-events:none}.hud{position:fixed;pointer-events:none;background:var(--panel);border:2px solid var(--line);padding:5px 9px;z-index:5}.hud-text{position:fixed;pointer-events:none;z-index:5;text-shadow:0 0 3px #000,0 0 3px #000,0 0 3px #000}#needs{top:10px;left:10px;line-height:1.02;white-space:nowrap;font-size:18px}#needs b{color:var(--acc);font-weight:400}#needs>div.m{display:flex;align-items:center;justify-content:space-between;gap:8px}.meter{display:inline-block;width:110px;height:9px;border:1px solid #4a52a0;background:#0006}.meter i{display:block;height:100%;background:var(--acc2)}.meter.hot i{background:var(--bad);animation:blink .6s infinite}.heat{color:#6af;animation:blink .5s infinite}@keyframes blink{50%{color:#f55}}#plan{top:10px;right:10px;width:270px;line-height:1.02;font-size:17px}#plan.min .q,#plan.min .bonus{display:none}#plan h3{margin:0 0 3px;font-weight:400;color:var(--acc2);font-size:21px}.q{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.q.done{color:var(--muted);text-decoration:line-through}.q i{font-style:normal;color:var(--muted);margin-left:4px}.q .arr{display:inline-block;color:var(--acc);margin-left:4px}.bonus{color:var(--ok);margin-top:4px;white-space:normal;font-size:15px}#prompt{left:50%;top:calc(50% + 22px);transform:translate(-50%);display:none;color:var(--acc);font-size:22px;white-space:nowrap}#prompt.on{display:block}#subtitle{position:fixed;left:50%;bottom:120px;transform:translate(-50%);max-width:min(720px,calc(100% - 32px));text-align:center;font-size:24px;color:#ffe9a8;text-shadow:0 0 4px #000,0 0 4px #000;opacity:0;transition:opacity .3s;pointer-events:none;z-index:6}#subtitle.on{opacity:1}#subtitle:before{content:"finczyk: ";color:var(--acc2)}#progress{position:fixed;left:50%;top:58%;transform:translate(-50%);display:none;z-index:6;text-align:center;text-shadow:0 0 3px #000}#progress.on{display:block}#progress .bar{width:220px;height:10px;border:2px solid #fff;margin-top:4px}#progress .fill{height:100%;width:0;background:var(--acc)}#hotbar{position:fixed;left:50%;bottom:12px;transform:translate(-50%);display:flex;gap:4px;z-index:5}.slot{width:52px;height:52px;background:#0a0c1acc;border:2px solid var(--line);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer}.slot.sel{border-color:var(--acc);box-shadow:0 0 8px #ffd23f80}.slot.unpaid{background:#781414cc}.slot.fists{background:#3c1414cc}.slot .k{position:absolute;top:0;left:3px;font-size:13px;color:var(--muted)}.slot .ic{font-size:28px;line-height:1}.slot .n{position:absolute;bottom:0;right:3px;font-size:16px;color:#fff}.slot .u{position:absolute;left:2px;bottom:2px;height:3px;background:var(--ok)}#itemName{left:50%;bottom:70px;transform:translate(-50%);color:#fff;font-size:19px;white-space:nowrap}#labels{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}.bubble{position:absolute;transform:translate(-50%,-100%);background:#fff;color:#111;padding:2px 8px;border:2px solid #111;font-size:18px;max-width:260px;text-align:center;line-height:1}.bubble:after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top-color:#111;border-bottom:0}.tip{position:absolute;transform:translate(-50%,-100%);font-size:16px;padding:1px 6px;white-space:nowrap;color:hsl(var(--hue),100%,75%);background:#0000008c;border:1px dashed hsl(var(--hue),100%,65%);animation:tip 2.8s ease-out forwards;text-shadow:2px 0 rgba(0,255,255,.6),-2px 0 rgba(255,0,200,.6)}@keyframes tip{0%{opacity:0;transform:translate(-50%,-60%) scale(.6)}15%{opacity:1;transform:translate(-50%,-100%) scale(1.05)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-160%) scale(.9) rotate(6deg)}}#toasts{position:fixed;left:50%;top:22%;transform:translate(-50%);z-index:30;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:6px;width:calc(100% - 32px)}.toast{background:#000;color:#fff;border:2px solid #fff;padding:3px 12px;font-size:21px;text-align:center;animation:toast 3.2s forwards}.toast.task,.toast.money{color:var(--ok);border-color:var(--ok)}.toast.bad{color:var(--bad);border-color:var(--bad)}@keyframes toast{0%{opacity:0;transform:translateY(12px)}10%{opacity:1;transform:none}80%{opacity:1}to{opacity:0;transform:translateY(-30px)}}#halluc{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}.hw{position:absolute;font-size:90px;opacity:0;mix-blend-mode:screen;white-space:nowrap;animation:hw 2.6s ease-out forwards;text-shadow:6px 0 #0ff,-6px 0 #ff0}@keyframes hw{0%{opacity:0;transform:scale(.4) rotate(-10deg)}30%{opacity:.85}to{opacity:0;transform:scale(2.2) rotate(12deg)}}.overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#05050f8c;z-index:20;padding:16px}.overlay.on{display:flex}#clickToPlay{background:#05050f59;cursor:pointer;z-index:15}.dlg{background:#11142a;border:3px solid var(--acc2);box-shadow:0 0 0 3px #000,0 0 40px #ff4fd859;max-width:580px;width:100%;padding:14px 18px;max-height:90vh;overflow:auto}.dlg.small{max-width:380px;text-align:center}.dlg h2{margin:0 0 8px;color:var(--acc);font-weight:400;font-size:32px;line-height:1}.dlg p{margin:4px 0;line-height:1.12}.tw{visibility:hidden}#portrait{display:none;float:left;width:96px;height:96px;margin:0 12px 6px 0;border:3px solid var(--acc);box-shadow:0 0 0 2px #000;background:#1d2250}#portrait.on{display:block}#portrait canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.choices{clear:both}.dlg em{color:var(--acc2);font-style:normal}.choices button{display:block;width:100%;margin-top:8px;text-align:left}button{font-family:inherit;font-size:20px;background:#1d2250;color:var(--ink);border:2px solid #4a52a0;padding:6px 10px;cursor:pointer}button:hover,button:focus-visible{background:#2c3480;border-color:var(--acc);outline:none}#intro .dlg{max-width:660px;text-align:center}#intro h1{margin:0;font-weight:400;font-size:64px;line-height:.9;color:var(--acc);text-shadow:4px 0 var(--acc2),-4px 0 #0ff;animation:wob 2s infinite ease-in-out}@keyframes wob{50%{transform:rotate(-2deg) scale(1.04);text-shadow:-4px 0 var(--acc2),4px 0 #0ff}}#intro .keys{color:var(--muted);margin:10px 0;line-height:1.15}#intro .tiny{color:var(--muted);font-size:16px;margin-top:10px}#intro:has(#loading) #btnStart{display:none}#loading{color:var(--acc2);margin:10px}#btnStart{font-size:28px;padding:8px 26px;margin-top:8px;color:var(--acc);border-color:var(--acc)}#stick{position:fixed;width:90px;height:90px;margin:-45px 0 0 -45px;border:2px solid rgba(255,255,255,.5);border-radius:50%;display:none;pointer-events:none;z-index:6}#stick.on{display:block}#mobile{display:none;position:fixed;right:12px;bottom:80px;gap:8px;z-index:6;flex-direction:column}body.touch #mobile{display:flex}body.touch #crosshair{display:block}#mobile button{width:64px;height:52px;background:#0a0c1ab3}.desktop{position:relative;background:linear-gradient(135deg,teal,#3a1c71 50%,#d76d77);overflow:hidden;font-size:22px;color:#000}.icons{position:absolute;top:12px;left:12px;display:grid;grid-template-columns:repeat(2,104px);gap:10px;z-index:1}.ico{background:transparent;border:1px dashed transparent;color:#fff;text-shadow:1px 1px 0 #000;display:flex;flex-direction:column;align-items:center;padding:4px;font-size:19px;line-height:1;position:relative}.ico:hover{background:#00008073;border-color:#fff}.ico span{font-size:42px;line-height:1.1}.ico i{position:absolute;top:2px;right:6px;font-style:normal;color:var(--ok);font-size:24px}.taskbar{position:absolute;left:0;right:0;bottom:0;height:40px;background:silver;border-top:2px solid #fff;display:flex;align-items:center;gap:8px;padding:0 6px;z-index:3}.taskbar button{background:silver;color:#000;border:2px outset #fff;padding:2px 10px;font-size:19px}.taskbar .tb-info{flex:1;font-size:17px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.taskbar .tb-clock{border:2px inset #fff;padding:0 8px;font-size:19px}.win{position:absolute;inset:14px 14px 54px 240px;background:silver;border:2px outset #fff;display:flex;flex-direction:column;z-index:2}.win[hidden]{display:none}.win-title{background:linear-gradient(90deg,navy,#1084d0);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:2px 4px 2px 8px}.win-title button{background:silver;color:#000;border:2px outset #fff;padding:0 8px;font-size:18px;line-height:1.1}.win-body{flex:1;overflow:auto;padding:6px;position:relative}.pk{display:flex;flex-direction:column;gap:10px;align-items:center;background:#0b5d2a;color:#fff;height:100%;padding:10px;border:2px inset #fff}.pk-cards{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.card{width:86px;height:122px;background:#fff;color:#111;border:2px solid #111;border-radius:6px;font-size:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;line-height:.9}.card.red{color:#c00}.card.back{background:repeating-linear-gradient(45deg,#7a1fa2,#7a1fa2 6px,#ff4fd8 6px 12px)}.card.held:after{content:"HOLD";position:absolute;bottom:-22px;font-size:20px;color:var(--acc)}.pk-msg{min-height:26px;color:var(--acc);text-align:center;margin-top:14px}.pk-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.pk-pay{font-size:16px;columns:3;color:#cfe}.irc{display:flex;flex-direction:column;height:100%;background:#000;color:#ddd;font-size:20px;border:2px inset #fff}.irc-topic{background:#00205a;color:#fff;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.irc-main{flex:1;display:flex;min-height:0}.irc-log{flex:1;overflow-y:auto;padding:4px 6px;line-height:1.05;user-select:text;-webkit-user-select:text}.irc-log .t{color:#777}.irc-log .n{color:#ff6ad5}.irc-log .me .n{color:var(--acc)}.irc-log .sys{color:#5ad}.irc-nicks{width:120px;margin:0;padding:4px 6px;list-style:none;border-left:1px solid #333;color:#9cf;overflow:auto}.irc-in{display:flex;gap:4px;padding:4px;background:#111;align-items:center}.irc-in span{color:var(--acc)}.irc-in input{flex:1;min-width:0;font-family:inherit;font-size:20px;background:#000;color:#fff;border:1px solid #444;padding:4px;user-select:text}.irc-in button{font-size:18px;padding:2px 8px}.d2{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;background:#0a0505;color:#c7b377;padding:4px;border:2px inset #fff}.d2 canvas{width:640px;height:400px;max-width:100%;background:#000;cursor:crosshair;image-rendering:pixelated}.d2-hud{display:flex;gap:18px;font-size:20px}.d2-hud .hp{color:#f44}.d2-log{font-size:18px;text-align:center;min-height:20px}.d2 button{background:#3a1010;border-color:#c7b377;color:#c7b377}.jsp{background:#1b2433;color:#d6dbe6;height:100%;font-size:19px;border:2px inset #fff;display:flex;flex-direction:column}.jsp-head{background:#2b3d5c;padding:4px 8px;color:#fff}.jsp-head b{color:#fc3;font-weight:400;font-size:23px}.jsp-user{padding:4px 8px;background:#233048;color:#9fb4d9;border-bottom:1px solid #3c4f73}.jsp-tabs{display:flex;gap:4px;padding:6px 8px;flex-wrap:wrap}.jsp-tabs button{font-size:17px;padding:2px 8px;background:#2b3d5c;border-color:#4b6390}.jsp-tabs button.on{border-color:#fc3;color:#fc3}.jsp-body{flex:1;overflow:auto;padding:6px 8px}.jsp-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;border-bottom:1px solid #2c3a55}.jsp-item .rare{color:#c7b377}.jsp-item .rune{color:#ffa800}.jsp-post{background:#223049;border:1px solid #3c4f73;padding:6px 8px;margin:6px 0}.jsp-post .who{color:#fc3}.jsp-post button{font-size:16px;padding:1px 8px;margin-left:6px}.jsp-ban{color:var(--bad);font-size:34px;text-align:center;padding:40px 10px;line-height:1.1}@media (max-width: 700px){html,body{font-size:17px}#plan{width:180px;font-size:14px}#plan h3{font-size:16px}#needs{font-size:14px}.slot{width:36px;height:36px}.slot .ic{font-size:20px}#intro h1{font-size:44px}#subtitle{bottom:90px;font-size:19px}}
