:root{--panel:#1216149e;--panel-edge:#ffffff17;--text:#f4efe2;--muted:#b9b3a3;--gold:#e3aa4a;--onion:#8a2f63;--rot:#c3dc4a;--danger:#e2483a;--font:"Trebuchet MS", "Avenir Next", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--font);-webkit-user-select:none;user-select:none;background:#0c1220;margin:0;overflow:hidden}#app,#app canvas{display:block;position:fixed;inset:0}body.playing #app canvas{cursor:none}.hidden{display:none!important}.panel{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(6px);border-radius:12px;box-shadow:0 6px 24px #00000040}.hud{pointer-events:none;z-index:10;position:fixed;inset:0}.hud-tl{min-width:230px;padding:10px 14px 12px;position:absolute;top:16px;left:16px}.who{align-items:center;gap:10px;display:flex}.who-icon{width:42px;height:42px}.who-name{letter-spacing:.2px;font-size:17px;font-weight:700}.who-sub{color:var(--muted);font-size:12.5px}.hearts{gap:4px;margin-top:8px;display:flex}.hearts.bump{animation:.35s ease-out bump}@keyframes bump{30%{transform:scale(1.12)}}.heart{filter:drop-shadow(0 2px 2px #0006);width:30px;height:30px}.heart .bg{fill:#00000059;stroke:#ffffff59;stroke-width:1.4px}.heart .fg{fill:#e0443a;stroke:#ffb0a0;stroke-width:1.2px}.hud-tr{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:16px;right:16px}.minimap-wrap{border-radius:50%;width:194px;height:194px;padding:6px;overflow:hidden}.minimap{border-radius:50%;display:block}.info{text-align:right;min-width:194px;padding:8px 12px;font-size:13px}.clock{font-size:19px;font-weight:700}.hood{color:var(--muted);margin-top:1px;font-size:12px}.kills{color:var(--rot);margin-top:4px}.kills span{color:var(--muted)}.street{letter-spacing:1px;text-shadow:0 2px 8px #000000b3;opacity:0;background:linear-gradient(#1e3c788c,#1e3c7859);border-bottom:3px solid #fff9;border-radius:6px;padding:6px 18px;font-size:22px;font-weight:700;position:absolute;top:22px;left:50%;transform:translate(-50%)}.hud-bottom{gap:10px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.slot{align-items:center;gap:8px;min-width:200px;padding:8px 14px 8px 8px;transition:transform .12s,border-color .12s;display:flex;position:relative}.slot.garlic{min-width:150px}.slot.active{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 0 0 2px #e3aa4a59,0 8px 20px #00000059}.slot.empty{opacity:.55}.slot-img{width:52px;height:52px}.slot-img:not([src]){visibility:hidden}.slot-name{font-size:14px;font-weight:700}.slot-sub{color:var(--muted);font-size:12px}.slot-sub b{color:var(--text);font-size:15px}.slot-sub b.warn{color:var(--danger)}.bar{background:#ffffff24;border-radius:3px;width:110px;height:5px;margin-top:5px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--gold), #f4d27a);height:100%;transition:width .15s;display:block}kbd{color:#222;font:700 11px var(--font);background:#f4efe2;border-radius:5px;padding:2px 6px;position:absolute;top:-8px;right:-6px;box-shadow:0 2px #9c9689}.prompt{opacity:0;white-space:nowrap;background:#000000a6;border-radius:20px;padding:8px 16px;font-size:15px;transition:opacity .15s,transform .15s;position:absolute;bottom:118px;left:50%;transform:translate(-50%)translateY(8px)}.prompt.show{opacity:1;transform:translate(-50%)}.prompt kbd{margin-right:6px;position:static}.prompt .dim{color:var(--muted);font-size:13px}.feed{flex-direction:column;gap:5px;max-width:380px;display:flex;position:absolute;bottom:18px;left:16px}.feed-item{border-left:3px solid var(--rot);background:#0000008c;border-radius:8px;padding:6px 12px;font-size:13.5px;transition:opacity .6s;animation:.25s ease-out feedIn}.feed-item.death{border-left-color:var(--danger)}.feed-item.good{border-left-color:var(--gold)}.feed-item.out{opacity:0}@keyframes feedIn{0%{opacity:0;transform:translate(-20px)}}.toast{text-align:center;text-shadow:0 2px 10px #000c;opacity:0;pointer-events:none;font-size:18px;position:absolute;top:17%;left:50%;transform:translate(-50%)}.toast h2{color:var(--gold);margin:0 0 4px;font-size:28px}.vignette{--night:0;--low:0;background:radial-gradient(ellipse at center, transparent 45%, rgba(170, 0, 0, calc(var(--low) * .9)) 100%), radial-gradient(ellipse at center, transparent 30%, rgba(4, 8, 20, calc(var(--night) + .12)) 100%);position:absolute;inset:0}.hurtflash{opacity:0;background:radial-gradient(#ff3c280d 30%,#c8140a8c 100%);position:absolute;inset:0}.crosshair{filter:drop-shadow(0 0 2px #000000e6);width:40px;height:40px;position:absolute;top:0;left:0}.crosshair .reload{transition:stroke-dashoffset 50ms linear}.floaters,.labels{position:absolute;inset:0;overflow:hidden}.floater{color:#fff;text-shadow:0 2px #000,0 0 6px #000000b3;white-space:nowrap;font-size:16px;font-weight:800;animation:1.2s ease-out forwards floatUp;position:absolute;transform:translate(-50%,-50%)}.floater.bonk{color:#ffe14a;letter-spacing:1px;font-size:22px}.floater.heal{color:#ff8a80}.floater.item{color:#ffd27a}.floater.bad{color:#ff6a50}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-30%)scale(.7)}15%{opacity:1;transform:translate(-50%,-80%)scale(1.1)}to{opacity:0;transform:translate(-50%,-260%)scale(1)}}.label{white-space:nowrap;background:#00000080;border-radius:10px;padding:2px 8px;font-size:12.5px;font-weight:700;position:absolute;top:0;left:0}.label.player{color:#9ee4ff}.label.former{color:var(--rot);background:#1e28008c}.label.player.pvp{color:#ffd2cc;background:#780c069e;box-shadow:0 0 0 1px #ff5a468c}.ovo-switch{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(6px);pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:40px;align-items:center;gap:10px;padding:6px 14px 6px 6px;transition:background .2s,border-color .2s,transform .12s;display:flex;position:absolute;top:138px;left:16px;box-shadow:0 6px 24px #00000040}.ovo-switch:hover{border-color:#ffffff47;transform:scale(1.04)}.ovo-switch:active{transform:scale(.97)}.ovo-switch kbd{top:-6px;right:-4px}.ovo-circle{border-radius:50%;width:58px;height:58px}.ovo-icon{width:100%;height:100%;display:block}.ovo-bg{fill:#00000059;stroke:#ffffff59;stroke-width:2px;transition:fill .2s,stroke .2s}.ovo-lock{fill:none;stroke:#ffd35a;stroke-width:3.2px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px;transition:stroke-dashoffset 1s linear}.ovo-switch .swords .blade{fill:#9aa0a6;stroke:#3a3e44;stroke-width:.8px}.ovo-switch .swords .edge{stroke:#ffffff8c;stroke-width:.7px}.ovo-switch .swords .guard,.ovo-switch .swords .pommel{fill:#8a7a5a;stroke:#3a3020;stroke-width:.7px}.ovo-switch .swords .grip{fill:#4a3322}.ovo-switch .onion .bulb{fill:#b89a86;stroke:#5a4436;stroke-width:1.2px}.ovo-switch .onion .stripe{fill:none;stroke:#5a3c2873;stroke-width:1px}.ovo-switch .onion .sprout{fill:none;stroke:#7b9a6a;stroke-width:2.4px;stroke-linecap:round}.ovo-switch .onion .eye{fill:#fbfbf5}.ovo-switch .onion .pupil,.ovo-switch .onion .brow,.ovo-switch .onion .mouth{fill:#151515;stroke:#151515}.ovo-switch .onion .brow{stroke-width:1.5px;stroke-linecap:round;opacity:0;transition:opacity .2s}.ovo-switch .onion .mouth{fill:none;stroke-width:1.2px;stroke-linecap:round}.ovo-switch .onion .roots{stroke:#d8c7a0;stroke-width:1.1px;stroke-linecap:round}.ovo-text{flex-direction:column;line-height:1.15;display:flex}.ovo-text b{letter-spacing:1.5px;font-size:15px}.ovo-state{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:12px}.ovo-switch.on{background:linear-gradient(135deg,#96140cc7,#460806b8);border-color:#ff6e5aa6;box-shadow:0 0 18px #ff3c2873,0 6px 24px #0000004d}.ovo-switch.on .ovo-bg{fill:#3c00008c;stroke:#ff6a55}.ovo-switch.on .ovo-state{color:#ffd2cc;font-weight:700}.ovo-switch.on .swords .blade{fill:#eef3f6;stroke:#56606a}.ovo-switch.on .swords .guard,.ovo-switch.on .swords .pommel{fill:#e3aa4a;stroke:#6a4a12}.ovo-switch.on .onion .bulb{fill:#d98a4a;stroke:#7a3e16}.ovo-switch.on .onion .sprout{stroke:#6fae3e}.ovo-switch.on .onion .brow{opacity:1}.ovo-switch.on.locked{cursor:not-allowed}.overlay{z-index:20;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.menu{background:radial-gradient(at 30% 40%,#0a0e0c59,#06080acc)}.menu-card{text-align:center;width:min(560px,94vw);padding:30px 34px 26px}.logo{letter-spacing:4px;background:linear-gradient(#d8f06a 0%,#8fb33a 45%,#6b2f5a 100%);color:#0000;filter:drop-shadow(0 4px #1b1f14)drop-shadow(0 8px 16px #0009);-webkit-background-clip:text;background-clip:text;margin:0;font-family:Arial Black,Trebuchet MS,sans-serif;font-size:clamp(56px,10vw,104px);font-weight:900;line-height:1;position:relative}.logo-drips{justify-content:center;gap:26px;height:20px;margin-top:-6px;display:flex}.logo-drips i{background:#6b2f5a;border-radius:0 0 6px 6px;width:9px;animation:3.2s ease-in-out infinite drip}.logo-drips i:nth-child(2n){background:#7a8a2e;animation-delay:1.1s}.logo-drips i:nth-child(3n){animation-delay:2s}@keyframes drip{0%,to{height:4px}60%{height:18px}}.tagline{color:var(--muted);margin:10px 0 20px;font-size:15.5px;line-height:1.45}.field{text-align:left;align-items:center;gap:10px;margin:10px 0;display:flex}.field label{width:110px;color:var(--muted);font-size:13px}.field input{color:var(--text);font:15px var(--font);background:#ffffff14;border:1px solid #ffffff29;border-radius:8px;outline:none;flex:1;padding:9px 12px}.field input:focus{border-color:var(--gold)}.btn{pointer-events:auto;cursor:pointer;font:700 16px var(--font);color:#1d1a12;background:linear-gradient(#f2c464,#d99a34);border:0;border-radius:10px;padding:12px 22px;transition:transform 80ms,filter .12s;box-shadow:0 3px #8a5a18,0 8px 18px #00000059}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(2px);box-shadow:0 1px #8a5a18}.btn:disabled{filter:grayscale(.8)brightness(.8);cursor:default}.btn.secondary{color:var(--text);background:#ffffff1a;box-shadow:0 3px #0006}.btn.big{padding:14px 40px;font-size:20px}.btn-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.online-box{text-align:left;background:#00000040;border-radius:10px;margin-top:14px;padding:12px 14px}.online-box p{color:var(--muted);margin:4px 0 0;font-size:12px}.error{color:#ff8a70;min-height:18px;margin-top:8px;font-size:13px}.controls{color:var(--muted);text-align:left;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:5px 10px;margin-top:20px;font-size:12.5px;display:grid}.controls kbd{justify-self:end;position:static}.menu-foot{color:#7f7a6e;margin-top:16px;font-size:11.5px}.death,.pause{background:radial-gradient(#2800000d 30%,#0a000099);animation:.6s ease-out fadeIn}.death{align-items:flex-end;padding-bottom:60px}.pause{background:#06080a99}@keyframes fadeIn{0%{opacity:0}}.death-card,.pause-card{text-align:center;width:min(520px,94vw);padding:26px 36px}.death-card h1{color:#ff7a5a;letter-spacing:1px;text-shadow:0 3px #3a0a06;margin:0;font-size:44px}.death-card .sub{margin:10px 0 14px;font-size:17px}.stats{justify-content:center;gap:14px;margin:14px 0;display:flex}.stat{background:#0000004d;border-radius:10px;min-width:110px;padding:8px 16px}.stat b{color:var(--gold);font-size:24px;display:block}.stat span{color:var(--muted);font-size:12px}.death-card .hint{color:var(--muted);font-size:13px;line-height:1.5}.pause-card h1{margin:0 0 12px}.scores{z-index:15;min-width:340px;padding:16px 20px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.scores table{border-collapse:collapse;width:100%;font-size:14px}.scores th{text-align:left;color:var(--muted);padding-bottom:6px;font-weight:400}.scores td{padding:4px 0}.scores tr.pvp td:first-child .sw{color:#ff6a55}.scores tr.me td{color:var(--gold)}.fullmap{z-index:16;pointer-events:none;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fullmap canvas{border-radius:16px;box-shadow:0 10px 40px #0009}.fullmap .legend{color:var(--muted);font-size:13px;position:absolute;bottom:30px}.loading{color:var(--muted);z-index:30;background:#0c1220;justify-content:center;align-items:center;font-size:18px;display:flex;position:fixed;inset:0}.online-only{display:none}body.online-mode .online-only{display:block}.online-status{color:var(--rot);margin-top:10px;font-size:13.5px}.chat-box{z-index:40;border:1px solid var(--gold);background:#0a0c0ac7;border-radius:10px;align-items:center;gap:8px;width:min(460px,100vw - 32px);padding:6px 8px 6px 12px;display:flex;position:fixed;bottom:230px;left:16px}.chat-label{color:var(--gold);font-size:12px;font-weight:700}.chat-box input{color:var(--text);font:15px var(--font);background:0 0;border:0;outline:none;flex:1;padding:4px 0}.feed-item.chat{background:#0000009e;border-left-color:#5ad0ff}.feed-item.chat b{color:#9ee4ff;margin-right:4px}.feed-item.chat.self b{color:var(--gold)}.label.bubble{white-space:normal;text-align:center;color:#1d1a12;background:#fbf7ea;border-radius:12px;max-width:260px;padding:4px 10px;font-weight:600;box-shadow:0 3px 8px #00000059}.label.bubble:after{content:"";border:6px solid #0000;border-top-color:#fbf7ea;border-bottom:0;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.online-count{color:var(--muted);margin-top:4px;font-size:12px}@media (max-width:1000px){.slot{min-width:160px;padding:6px 10px 6px 6px}.slot.garlic{min-width:118px}.slot-img{width:40px;height:40px}}.vehicle-panel{z-index:15;pointer-events:auto;width:300px;max-height:70vh;padding:14px 16px;position:fixed;top:50%;right:20px;overflow-y:auto;transform:translateY(-50%)}.vp-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.vp-title{font-size:16px;font-weight:700}.vp-overall{align-items:center;gap:8px;margin-bottom:12px;display:flex}.vp-bar{background:#0006;border-radius:5px;flex:1;height:10px;overflow:hidden}.vp-bar.small{flex:1;height:6px;margin:4px 0}.vp-bar i{border-radius:5px;height:100%;transition:width .25s;display:block}.vp-pct{color:var(--muted);text-align:right;min-width:34px;font-size:13px}.vp-parts{flex-direction:column;gap:8px;display:flex}.vp-part{border-bottom:1px solid var(--panel-edge);grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding-bottom:6px;display:grid}.vp-part-name{grid-column:1;font-size:13px}.vp-part-pct{color:var(--muted);grid-column:2;justify-self:end;font-size:12px}.vp-part .vp-bar{grid-column:1/span 2}.vp-part .btn{grid-column:1/span 2;justify-self:start;padding:5px 10px;font-size:12px}
