@import "https://fonts.googleapis.com/css2?family=Ruslan+Display&family=PT+Serif:wght@400;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Marck+Script&display=swap";:root{--gold:#e8c060;--blood:#b01818;--parch:#e9dcb8;--ink:#2a1f12;--panel:#140e08e0;--panel-border:#8a6a3a;--font:"PT Serif", Georgia, serif;--title:"Ruslan Display", "PT Serif", serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);color:#f2e8d0;-webkit-user-select:none;user-select:none;background:#000;margin:0;overflow:hidden}#app canvas{display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:none}#modal-root,#menu-root{pointer-events:auto}#modal-root:empty,#menu-root:empty{pointer-events:none}.hidden{display:none!important}#hud{position:absolute;inset:0}.bars{width:300px;position:absolute;bottom:20px;left:20px}.bar{background:#0000008c;border:1px solid #000;border-radius:2px;height:16px;margin-top:5px;position:relative;overflow:hidden}.bar>i{transition:width .15s;display:block;position:absolute;inset:0 auto 0 0}.bar.hp>i{background:linear-gradient(#e33,#911)}.bar.st>i{background:linear-gradient(#5c5,#272)}.bar>span{text-align:center;text-shadow:0 0 3px #000;font-size:12px;line-height:16px;position:absolute;inset:0}.bleeding{color:#ff4040;text-shadow:0 0 4px #000;font-weight:700;animation:.8s infinite pulse}@keyframes pulse{50%{opacity:.4}}.topinfo{text-align:center;text-shadow:0 0 4px #000,0 0 2px #000;position:absolute;top:14px;left:50%;transform:translate(-50%)}.topinfo .zone{font-family:var(--title);color:var(--gold);font-size:22px}.topinfo .time{opacity:.9;font-size:14px}.compass{background:#00000059;border:1px solid #e8c06066;width:360px;height:22px;margin:6px auto 0;font-size:13px;position:relative;overflow:hidden}.compass .strip{white-space:nowrap;position:absolute;top:2px}.compass .strip b{text-align:center;width:60px;display:inline-block}.compass .mark{background:var(--gold);width:2px;height:22px;position:absolute;top:0;left:50%}.compass .poi{font-size:12px;position:absolute;top:3px;transform:translate(-50%)}.gold{color:var(--gold);text-shadow:0 0 4px #000;text-align:right;font-size:22px;position:absolute;bottom:20px;right:20px}.gold small{color:#ddd;font-size:13px;display:block}.body-status{text-shadow:0 0 3px #000;font-size:13px;line-height:1.4;position:absolute;bottom:130px;left:20px}.body-status .lost{color:#ff6060}.body-status .pros{color:#90c8ff}.faction-badge{text-shadow:0 0 3px #000;max-width:340px;font-size:14px;line-height:1.5;position:absolute;top:16px;left:20px}.faction-badge .order{color:var(--gold)}#crosshair{color:#ffffffbf;text-shadow:0 0 3px #000;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#prompt{text-shadow:0 0 4px #000;color:#fff;font-size:18px;position:absolute;top:60%;left:50%;transform:translate(-50%)}#prompt b{color:var(--gold);border:1px solid var(--gold);border-radius:3px;margin-right:6px;padding:0 6px}#notify{flex-direction:column;align-items:flex-end;gap:6px;width:380px;display:flex;position:absolute;top:20px;right:20px}#notify div{background:var(--panel);border-left:3px solid var(--gold);max-width:380px;padding:6px 10px;font-size:14px;animation:.25s fadein}#notify div.bad{border-color:var(--blood)}#notify div.good{border-color:#4c4}@keyframes fadein{0%{opacity:0;transform:translate(20px)}}.damage-vignette{transition:box-shadow .3s;position:absolute;inset:0;box-shadow:inset 0 0 160px #a0000000}#eye-overlay{position:absolute;inset:0}#eye-overlay .half{background:#000;width:50%;position:absolute;top:0;bottom:0}#eye-overlay .half.left{left:0;box-shadow:30px 0 60px 20px #000}#eye-overlay .half.right{right:0;box-shadow:-30px 0 60px 20px #000}#eye-overlay .full{background:radial-gradient(#000000eb 0%,#000 60%);position:absolute;inset:0}.screen{background:radial-gradient(#1e140a8c,#000000eb);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.title{font-family:var(--title);color:var(--gold);text-shadow:0 4px #5a2a0a,0 0 30px #ffb43c80;letter-spacing:3px;text-align:center;margin:0;font-size:72px}.subtitle{opacity:.85;text-align:center;max-width:760px;margin:6px 0 26px;font-size:18px;font-style:italic}.btn{pointer-events:auto;cursor:pointer;color:#f6e7c1;border:1px solid var(--panel-border);font-family:var(--font);background:linear-gradient(#5a3e1e,#3a2610);border-radius:3px;min-width:220px;margin:5px;padding:10px 22px;font-size:17px}.btn:hover{color:#fff;background:linear-gradient(#7a5426,#4a3014);box-shadow:0 0 10px #e8c06080}.btn:disabled{opacity:.45;cursor:default}.btn.small{min-width:0;padding:4px 10px;font-size:14px}.cards{flex-wrap:wrap;justify-content:center;gap:22px;display:flex}.card{background:var(--panel);border:2px solid var(--panel-border);cursor:pointer;border-radius:6px;width:270px;padding:18px;transition:transform .15s,border-color .15s}.card:hover{border-color:var(--gold);transform:translateY(-6px)}.card h3{font-family:var(--title);margin:0 0 8px;font-size:24px}.card p{opacity:.9;margin:6px 0;font-size:14px;line-height:1.45}.card .emoji{font-size:48px}.panel{background:var(--panel);border:2px solid var(--panel-border);border-radius:6px;min-width:420px;max-width:900px;max-height:86vh;padding:20px 24px;overflow:auto;box-shadow:0 10px 40px #000}.panel h2{font-family:var(--title);color:var(--gold);margin:0 0 12px;font-weight:400}.parchment{background:var(--parch);color:var(--ink);border-color:#6a4a2a}.parchment h2{color:#5a1a0a}.quote{opacity:.8;text-align:center;max-width:700px;margin-top:18px;font-size:13px;font-style:italic}.footer-note{opacity:.6;font-size:12px;position:absolute;bottom:10px}.qbar{width:300px;margin-top:8px}.qlabel{text-shadow:0 0 3px #000;justify-content:space-between;gap:10px;font-size:13px;display:flex}.qlabel span:last-child{color:#ddd;white-space:nowrap}.qtrack{background:#0000008c;border:1px solid #000c;border-radius:2px;height:8px;margin-top:2px;overflow:hidden}.qtrack i{height:100%;transition:width .2s linear;display:block;box-shadow:inset 0 0 6px #ffffff40}#minimap{background:#000;border:3px solid #8a6a3a;border-radius:50%;width:200px;height:200px;position:absolute;bottom:70px;right:20px;box-shadow:0 0 0 1px #000,0 4px 18px #0009}#minimap-n{font:bold 13px var(--font);color:#ffe9a8;text-shadow:0 0 3px #000,0 0 2px #000;position:absolute;transform:translate(-50%,-50%)}.kv-overlay{z-index:40;pointer-events:auto;background:radial-gradient(#140c0459,#000000c7);justify-content:center;align-items:center;animation:.14s ease-out kvfade;display:flex;position:fixed;inset:0}@keyframes kvfade{0%{opacity:0}}.kv-win{color:#f2e4c0;background-color:#3a2513;background-image:repeating-linear-gradient(92deg,#0000001a 0 2px,#0000 2px 11px),repeating-linear-gradient(88deg,#ffd29609 0 1px,#0000 1px 7px),linear-gradient(#4b3019,#2a190b);border:2px solid #b8913f;border-radius:5px;flex-direction:column;max-width:min(1120px,96vw);max-height:93vh;padding:0 14px 12px;animation:.16s ease-out kvpop;display:flex;position:relative;box-shadow:0 0 0 4px #20130a,0 0 0 5px #6b4f26,0 24px 70px #000000e6}@keyframes kvpop{0%{opacity:.6;transform:scale(.97)}}.kv-win:before{content:"";pointer-events:none;border:1px solid #e8c06047;border-radius:3px;position:absolute;inset:5px}.kv-win:after{content:"◆ ◆";color:#c9a24a;letter-spacing:6px;pointer-events:none;background:#20130a;padding:0 6px;font-size:10px;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)}.kv-head{justify-content:center;align-items:center;min-height:52px;padding:10px 48px 8px;display:flex;position:relative}.kv-title{font-family:var(--title);color:var(--gold);text-shadow:0 2px #3a1a00,0 0 18px #ffbe5059;letter-spacing:1px;text-align:center;font-size:28px}.kv-title small{font-family:var(--font);color:#d9c49a;letter-spacing:0;text-shadow:none;font-size:13px;font-style:italic;display:block}.kv-x{cursor:pointer;width:32px;height:32px;color:var(--gold);background:radial-gradient(#6a4520,#3a2210);border:1px solid #b8913f;border-radius:50%;font-size:15px;line-height:1;position:absolute;top:10px;right:2px}.kv-x:hover{color:#fff;background:radial-gradient(#9a2a1a,#4a1208)}.kv-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.kv-parch{color:var(--ink);background:radial-gradient(circle at 18% 12%,#fffff073,#0000 42%),radial-gradient(circle at 85% 90%,#965f1e38,#0000 50%),radial-gradient(circle at 70% 25%,#a06e321a,#0000 30%),linear-gradient(#f0e2bf,#e0c999);border-radius:3px;padding:12px 14px;position:relative;box-shadow:inset 0 0 42px #784b1973,inset 0 0 3px #46280ab3,0 2px 6px #00000080}.kv-parch h3{font-family:var(--title);color:#6a1a0a;margin:2px 0 8px;font-size:20px;font-weight:400}.kv-parch h4{text-transform:uppercase;letter-spacing:2px;color:#7a4a1a;border-bottom:1px solid #784b1959;margin:10px 0 4px;padding-bottom:2px;font-size:13px}.kv-scroll{min-height:0;overflow-y:auto}.kv-scroll::-webkit-scrollbar{width:10px}.kv-scroll::-webkit-scrollbar-thumb{background:#8a6232;border:2px solid #e6d2a6;border-radius:5px}.kv-scroll::-webkit-scrollbar-track{background:#784b191f}.kv-btn{cursor:pointer;font-family:var(--font);white-space:nowrap;color:#f8e8c2;background:linear-gradient(#6e4b24,#4a2f15);border:1px solid #2a1808;border-radius:3px;padding:4px 11px;font-size:14px;box-shadow:inset 0 1px #ffdc9640}.kv-btn:hover:not([disabled]){color:#fff;background:linear-gradient(#8a5f2c,#5a3a18);box-shadow:0 0 8px #e8c0608c}.kv-btn[disabled]{opacity:.4;cursor:default}.kv-btn.pri{color:#2a1404;background:linear-gradient(#d8ab45,#9a7020);border-color:#5a3a08;font-weight:700}.kv-btn.pri:hover:not([disabled]){color:#1a0a00;background:linear-gradient(#f0c860,#b08028)}.kv-btn.red{background:linear-gradient(#8a2a1a,#5a140c)}.kv-btn.big{padding:8px 16px;font-size:16px}.kv-tabs{gap:3px;padding-left:6px;display:flex}.kv-tab{cursor:pointer;font-family:var(--font);color:#e8d5a8;background:linear-gradient(#5a3a1c,#3a2410);border:1px solid #8a6a3a;border-bottom:none;border-radius:5px 5px 0 0;padding:6px 14px 5px;font-size:14px}.kv-tab:hover{color:#fff}.kv-tab.on{color:#4a1a06;background:#efe0bc;font-weight:700;position:relative;top:1px}.kv-tab .k{opacity:.6;margin-left:4px;font-size:11px}.kv-list{flex-direction:column;display:flex}.kv-row{border-bottom:1px dashed #6e461947;border-radius:3px;grid-template-columns:38px 1fr auto auto;align-items:center;gap:10px;padding:5px 8px;display:grid}.kv-row:hover,.kv-row.sel{background:#aa73282e}.kv-row.sel{outline:1px solid #8c501499}.kv-row.eq{background:#c8a03c38}.kv-ico{background:radial-gradient(#fff5dc99,#9664282e);border:1px solid #64411473;border-radius:4px;justify-content:center;align-items:center;width:36px;height:36px;font-size:22px;display:flex}.kv-name{font-size:15px;font-weight:700}.kv-name .n{color:#7a4a1a;font-weight:400}.kv-name .tag{color:#fff;vertical-align:2px;background:#8a6a1a;border-radius:3px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700}.kv-name .tag.red{background:#9a2a1a}.kv-name .tag.blue{background:#2a5a8a}.kv-desc{opacity:.78;font-size:12px;line-height:1.3}.kv-price{color:#6a3a00;white-space:nowrap;text-align:right;min-width:64px;font-weight:700}.kv-price.cant{color:#a02a1a}.kv-acts{justify-content:flex-end;gap:4px;display:flex}.kv-empty{text-align:center;opacity:.7;padding:26px;font-style:italic}.kv-cat{text-transform:uppercase;letter-spacing:2px;color:#7a4a1a;border-bottom:1px solid #784b1966;margin:10px 4px 2px;font-size:12px}.kv-foot{color:#e8d6ad;justify-content:space-between;align-items:center;gap:14px;padding:9px 4px 0;font-size:14px;display:flex}.kv-gold{color:var(--gold);text-shadow:0 0 6px #ffb42859;white-space:nowrap;font-size:21px}.kv-keys{opacity:.7;font-size:12px}.kv-keys b{color:var(--gold);border:1px solid #e8c06080;border-radius:3px;padding:0 4px;font-weight:400}.kv-shop{grid-template-columns:250px 640px;gap:12px;height:min(70vh,600px);min-height:0;display:grid}.kv-shop>div{min-height:0}.kv-keeper{flex-direction:column;gap:10px;display:flex}.kv-portrait{background:radial-gradient(circle at 50% 40%,#6a4a28,#24160a);border:2px solid #8a6a3a;border-radius:4px;justify-content:center;align-items:center;height:120px;font-size:72px;display:flex;box-shadow:inset 0 0 30px #000}.kv-kname{font-family:var(--title);color:var(--gold);text-align:center;font-size:18px}.kv-say{color:var(--ink);background:linear-gradient(#f4e8c8,#e2cfa2);border-radius:6px;min-height:70px;padding:10px 12px;font-size:14px;font-style:italic;line-height:1.4;position:relative;box-shadow:0 2px 6px #00000080}.kv-say:before{content:"";border:9px solid #0000;border-top:0;border-bottom-color:#f4e8c8;margin-left:-9px;position:absolute;top:-9px;left:50%}.kv-say.bad{color:#7a1408}.kv-say.good{color:#1f5a12}.kv-rel{color:#d9c49a;text-align:center;font-size:13px}.kv-rel b{color:#fff}.kv-shop .kv-parch{flex-direction:column;flex:1;min-height:0;display:flex}.kv-svc{border-bottom:1px dashed #6e46194d;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px;display:grid}.kv-svc .kv-name{font-size:16px}.kv-svc.joke .kv-name{color:#6a4a2a;font-style:italic}.kv-inv{grid-template-columns:280px 620px;gap:12px;height:min(74vh,640px);min-height:0;display:grid}.kv-inv>div{min-height:0}.kv-doll{flex-direction:column;gap:8px;min-height:0;display:flex}.kv-doll .kv-parch{flex:1;min-height:0;padding:8px 10px;overflow-y:auto}.kv-doll .kv-parch::-webkit-scrollbar{width:8px}.kv-doll .kv-parch::-webkit-scrollbar-thumb{background:#8a6232;border-radius:4px}.kv-doll svg{margin:0 auto;display:block}.kv-doll svg .part{cursor:default;transition:filter .15s}.kv-doll svg .part.fit{cursor:pointer}.kv-doll svg .part.fit:hover{filter:drop-shadow(0 0 4px #ffd060)}.kv-status{font-size:13px;line-height:1.45}.kv-status .lost{color:#9a1a0a;font-weight:700}.kv-status .pros{color:#1a4a7a;font-weight:700}.kv-status .bleed{color:#c01010;font-weight:700;animation:.8s infinite pulse}.kv-slots{grid-template-columns:1fr;gap:4px;display:grid}.kv-slot{background:#6e46191f;border:1px solid #6e46194d;border-radius:3px;grid-template-columns:30px 1fr;align-items:center;gap:6px;padding:3px 6px;font-size:13px;display:grid}.kv-slot .kv-ico{width:28px;height:28px;font-size:17px}.kv-slot i{opacity:.6;font-size:11px;font-style:normal;display:block}.kv-bars{font-size:12px}.kv-bar{background:#3c1e0a40;border:1px solid #3c1e0a80;border-radius:2px;height:10px;margin:2px 0 6px;overflow:hidden}.kv-bar>i{background:linear-gradient(#e33,#911);height:100%;display:block}.kv-bar.w>i{background:linear-gradient(#c9a050,#7a5a20)}.kv-bar.w.over>i{background:linear-gradient(#e06a20,#a02a0a)}.kv-inv .kv-parch.list{flex-direction:column;flex:1;min-height:0;display:flex}.kv-loot{width:560px}.kv-loot .kv-parch{flex-direction:column;max-height:56vh;display:flex}.kv-map{grid-template-columns:auto 230px;gap:12px;min-height:0;display:grid}.kv-map canvas{cursor:grab;border-radius:3px;display:block;box-shadow:0 0 0 2px #6a4a20,0 4px 14px #000000b3}.kv-legend{font-size:13px;line-height:1.55;overflow-y:auto}.kv-legend .sw{vertical-align:-1px;border:1px solid #00000080;border-radius:2px;width:12px;height:12px;margin-right:6px;display:inline-block}.kv-legend .mk{text-align:center;width:16px;margin-right:4px;display:inline-block}.kv-journal{flex-direction:column;width:820px;min-height:0;display:flex}.kv-journal .kv-parch{height:64vh;overflow-y:auto}.kv-obj{border-bottom:1px dashed #6e461940;padding:6px 4px 6px 26px;font-size:15px;position:relative}.kv-obj:before{content:"◇";color:#8a4a10;position:absolute;left:6px}.kv-obj.done{opacity:.55;text-decoration:line-through}.kv-obj.done:before{content:"✔";color:#2a6a1a;text-decoration:none}.kv-entry{border-bottom:1px dotted #6e461940;padding:5px 2px;font-size:14px}.kv-entry .when{color:#8a4a10;margin-right:8px;font-size:12px;font-weight:700}.kv-stats{grid-template-columns:1fr 1fr;gap:2px 26px;font-size:15px;display:grid}.kv-stats div{border-bottom:1px dotted #6e46194d;justify-content:space-between;padding:3px 0;display:flex}.kv-stats b{color:#6a1a0a}.kv-achs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.kv-achv{background:#fffae640;border:1px solid #6e461959;border-radius:4px;grid-template-columns:42px 1fr;align-items:center;gap:8px;padding:6px 8px;display:grid}.kv-achv .ai{text-align:center;font-size:28px}.kv-achv.locked{opacity:.45;filter:grayscale()}.kv-achv b{color:#5a1a06;display:block}.kv-achv span{font-size:12px}.kv-pause{flex-direction:column;align-items:stretch;width:380px;padding:4px 6px 6px;display:flex}.kv-pause .btn{min-width:0;margin:4px 0}.kv-pause .meta{text-align:center;color:#d9c49a;margin:4px 0 8px;font-size:13px;font-style:italic}.kv-settings{width:520px}.kv-set{border-bottom:1px dashed #6e46194d;grid-template-columns:1fr 220px;align-items:center;gap:12px;padding:10px 4px;font-size:15px;display:grid}.kv-set small{opacity:.7;font-size:12px;display:block}.kv-set input[type=range]{accent-color:#8a4a10;width:100%}.kv-set select{font-family:var(--font);background:#f6ead0;border:1px solid #8a6232;padding:3px;font-size:14px}.kv-set input[type=checkbox]{accent-color:#8a4a10;width:20px;height:20px}.kv-saves{width:660px}.kv-saves .kv-parch{max-height:60vh;overflow-y:auto}.kv-save{border-bottom:1px dashed #6e46194d;border-radius:3px;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;padding:7px 8px;display:grid}.kv-save:hover{background:#aa732826}.kv-save .slot{font-family:var(--title);color:#7a2a0a;text-align:center;font-size:20px}.kv-save .info{opacity:.75;font-size:12px}.kv-save.empty .kv-name{opacity:.5;font-style:italic;font-weight:400}.kv-save input[type=text]{font-family:var(--font);background:#fbf3de;border:1px solid #8a6232;width:230px;padding:3px 6px;font-size:14px}.kv-help table{width:100%;color:var(--ink)}.kv-help td:first-child{color:#6a1a0a;white-space:nowrap;padding-right:16px}.kv-letter-wrap{width:720px}.kv-letter{color:#2a1a0a;font-family:Marck Script,Segoe Script,cursive;font-size:23px;line-height:1.45;padding:22px 30px!important}.kv-letter .sig{text-align:right;margin-top:14px}.kv-toasts{z-index:60;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:70px;left:50%;transform:translate(-50%)}.kv-ach{border:2px solid var(--gold);background:linear-gradient(#45301a,#22150a);border-radius:5px;align-items:center;gap:14px;min-width:340px;padding:9px 24px 9px 14px;animation:5.5s forwards kvach;display:flex;box-shadow:0 0 0 3px #20130a,0 0 26px #ffbe3c8c}.kv-ach .ai{filter:drop-shadow(0 0 6px #ffc850b3);font-size:38px}.kv-ach small{letter-spacing:3px;text-transform:uppercase;color:#d9c49a;font-size:11px;display:block}.kv-ach b{font-family:var(--title);color:var(--gold);font-size:22px;font-weight:400;display:block}.kv-ach span{color:#eadbb5;font-size:13px;font-style:italic}@keyframes kvach{0%{opacity:0;transform:translateY(-30px)scale(.9)}8%{opacity:1;transform:none}85%{opacity:1}to{opacity:0;transform:translateY(-12px)}}.kv-clickhint{z-index:30;color:#fff;border:1px solid var(--gold);pointer-events:none;background:#140c04d1;border-radius:4px;padding:12px 26px;font-size:18px;animation:1.6s infinite pulse;position:fixed;top:42%;left:50%;transform:translate(-50%)}.kv-parch>.kv-scroll{flex:1;min-height:0}
