:root{--ember:#ffa75a;--ember-dim:#9a5a25;--bone:#e9dcc8;--ink:#050608;--panel:#0a0908c7;--blood:#c8323a;--oil:#e0a040}*{box-sizing:border-box}html,body{background:var(--ink);height:100dvh;color:var(--bone);-webkit-user-select:none;user-select:none;margin:0;font-family:Inter,system-ui,sans-serif;overflow:hidden}#game{cursor:crosshair;position:fixed;inset:0}#game canvas{display:block}.hidden{display:none!important}kbd{opacity:.8;border:1px solid #e9dcc84d;border-radius:3px;margin-right:4px;padding:1px 5px;font-family:inherit;font-size:10px}.small{opacity:.65;font-size:12px}#hud{pointer-events:none;position:fixed;inset:0}#stats{background:var(--panel);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #ffa75a2e;border-radius:6px;width:250px;padding:14px 16px;position:absolute;top:18px;left:20px}.bar{align-items:center;gap:10px;margin-bottom:8px;display:flex}.bar .label{letter-spacing:.08em;text-transform:uppercase;opacity:.75;width:34px;font-size:11px}.track{background:#ffffff12;border-radius:5px;flex:1;height:9px;position:relative;overflow:hidden}.fill{border-radius:5px;height:100%;transition:width .15s linear}.fill.hp{background:linear-gradient(90deg, #7a1a20, var(--blood));box-shadow:0 0 10px #c8323a99}.fill.oil{background:linear-gradient(90deg, #7a4a10, var(--oil));box-shadow:0 0 10px #e0a04099}.fill.low{animation:.6s infinite alternate pulse}.mark{background:#ffffff59;width:1px;position:absolute;top:0;bottom:0}@keyframes pulse{0%{opacity:1}to{opacity:.35}}.row{justify-content:space-between;align-items:baseline;margin-top:4px;display:flex}#score{color:var(--ember);text-shadow:0 0 14px #ffa75a80;font-family:Cinzel,serif;font-size:30px;font-weight:900}.abilities{gap:6px;margin-top:10px;display:flex}.ab{text-align:center;background:#ffffff0d;border:1px solid #ffffff14;border-radius:4px;flex:1;padding:5px 2px;font-size:11px;transition:all .15s}.ab.on{border-color:var(--ember);color:var(--ember);box-shadow:inset 0 0 10px #ffa75a40}.ab.cd{opacity:.35}#leaderboard{background:var(--panel);border:1px solid #ffa75a2e;border-radius:6px;width:220px;padding:12px 16px;position:absolute;top:18px;right:20px}#leaderboard h3{letter-spacing:.15em;color:var(--ember);margin:0 0 8px;font-family:Cinzel,serif;font-size:13px}#lbList{margin:0;padding-left:20px;font-size:13px;line-height:1.6}#lbList li span{float:right;opacity:.8}#lbList li.me{color:var(--ember);font-weight:600}#lbList li.bot{opacity:.7}#feed{text-align:right;width:280px;font-size:13px;position:absolute;top:300px;right:20px}#feed div{background:#00000073;border-radius:3px;margin-bottom:4px;padding:3px 8px;transition:opacity 1s;display:inline-block}#feed b{color:var(--ember);font-weight:600}#feed .bs{color:var(--blood);font-weight:700}#feed .sk{color:#9aa4b0;font-style:italic}#banner{text-align:center;letter-spacing:.12em;color:var(--ember);text-shadow:0 0 30px #ff8c3ccc;opacity:0;font-family:Cinzel,serif;font-size:46px;font-weight:900;transition:opacity .3s,transform .3s;position:absolute;top:22%;left:0;right:0}#banner.show{opacity:1;transform:scale(1.05)}#banner.red{color:var(--blood);text-shadow:0 0 30px #c82832cc}#hint{text-align:center;opacity:0;pointer-events:none;background:#0009;border:1px solid #ffa75a4d;border-radius:6px;max-width:min(560px,100vw - 32px);padding:10px 18px;font-size:15px;line-height:1.5;transition:opacity .5s;position:absolute;bottom:70px;left:50%;transform:translate(-50%)}#hint kbd{font-size:12px}#killcam{z-index:9;color:#f0d8d0;white-space:nowrap;background:#140204bf;border:1px solid #c8283280;border-radius:6px;align-items:center;gap:14px;padding:8px 16px;font-family:Cinzel,serif;font-size:18px;display:flex;position:fixed;top:14%;left:50%;transform:translate(-50%)}#killcam button{padding:4px 10px;font-size:13px}#deathTip{opacity:.85;margin:-10px 0 20px;font-size:14px;font-style:italic}#deathTip:empty{display:none}.overlay{z-index:8;background:radial-gradient(#2816088c,#000000eb);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}@media (height<=600px){.overlay{align-items:flex-start}.panel{padding:16px 20px}.menu h1{font-size:34px}.tag{margin-bottom:12px}.howto{display:none}}#death{background:radial-gradient(#3c050a66,#000000d9)}#game.fadeIn{animation:1.2s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#menu{background:radial-gradient(#0a060326,#000000b3)}.panel.menu{-webkit-backdrop-filter:blur(3px);background:#0a07059e;border:1px solid #ffa75a2e;border-radius:10px;max-width:520px}.panel{text-align:center;width:calc(100% - 32px);max-width:460px;padding:36px 44px}@media (width<=420px){.panel{padding:24px 18px}}.menu h1{letter-spacing:.08em;color:var(--ember);white-space:nowrap;text-shadow:0 0 20px #ff963ce6,0 0 60px #ff782880;margin:0;font-family:Cinzel,serif;font-size:clamp(28px,7.5vw,52px);font-weight:900;animation:3.5s infinite flicker}@keyframes flicker{0%,to{opacity:1}42%{opacity:1}43%{opacity:.55}45%{opacity:1}71%{opacity:.85}72%{opacity:1}}.tag{opacity:.7;margin:6px 0 26px;font-style:italic}input,select,button{border-radius:5px;font-family:inherit;font-size:16px}#nameInput{width:100%;color:var(--bone);text-align:center;background:#ffffff0f;border:1px solid #ffa75a4d;outline:none;padding:12px 14px}#nameInput:focus{border-color:var(--ember);box-shadow:0 0 16px #ffa75a40}.qrow{opacity:.85;justify-content:center;align-items:center;gap:10px;margin:14px 0;font-size:13px;display:flex}select{color:var(--bone);background:#15110d;border:1px solid #ffa75a4d;padding:6px 10px}button{letter-spacing:.15em;text-transform:uppercase;color:#fff3e2;cursor:pointer;background:linear-gradient(#c4732c,#7a3e12);border:1px solid #ffb06a;padding:13px 40px;font-family:Cinzel,serif;font-weight:700;transition:transform .1s,box-shadow .2s;box-shadow:0 0 24px #ff8c3259}button:hover{transform:translateY(-1px);box-shadow:0 0 36px #ff8c3299}.howto{text-align:left;opacity:.75;max-width:340px;margin:26px auto 0;padding-left:18px;font-size:13px;line-height:1.8}#death h2{color:var(--blood);text-shadow:0 0 24px #c82832b3;margin:0 0 10px;font-family:Cinzel,serif;font-size:40px}#deathBy{font-size:18px}#deathScore{opacity:.75;margin-bottom:22px}@media (width<=700px){#stats{width:190px;padding:10px;top:10px;left:10px}#leaderboard{width:150px;font-size:11px;top:10px;right:10px}#hint{max-width:46vw;font-size:13px;top:12px;bottom:auto}#killcam{font-size:14px;top:8px}#feed{width:200px;top:240px;right:10px}}#admin{z-index:5;background:#080a10d9;border:1px solid #8cb4ff4d;border-radius:6px;width:470px;max-width:calc(100vw - 40px);max-height:calc(100vh - 36px);padding:14px 16px;font-size:13px;position:fixed;top:18px;left:20px;overflow-y:auto}#admin h3{color:#9fc0ff;letter-spacing:.1em;margin:0 0 10px;font-family:Cinzel,serif}#admin button{letter-spacing:0;text-transform:none;color:#dce6ff;box-shadow:none;background:#8cb4ff1f;border:1px solid #8cb4ff59;border-radius:4px;padding:2px 7px;font-family:Inter,sans-serif;font-size:11px;font-weight:600}#admin button:hover{background:#8cb4ff47;transform:none}#admin button.danger{background:#dc50501f;border-color:#dc505080}#admin .arow{align-items:center;gap:8px;margin-bottom:8px;display:flex}#admin .arow b{text-align:center;min-width:22px}#admin input{color:#eee;background:#ffffff0f;border:1px solid #8cb4ff4d;flex:1;padding:5px 8px;font-size:13px}#admList{border-collapse:collapse;width:100%;margin:6px 0}#admList td{white-space:nowrap;border-top:1px solid #ffffff0f;padding:3px}#admList tr.dead{opacity:.4}#admList td.warn{color:#ff9a6a}#admList tr.follow td:first-child{color:#9fc0ff;font-weight:700}#admList td.num{text-align:right;opacity:.75;font-variant-numeric:tabular-nums}#feed .say{color:#9fc0ff}#helpBtn{letter-spacing:0;z-index:6;border-radius:50%;width:38px;height:38px;padding:0;font-size:18px;position:fixed;bottom:18px;right:20px}#help{z-index:10}.panel.help{text-align:left;background:#0c0a08eb;border:1px solid #ffa75a40;border-radius:8px;max-width:860px;max-height:calc(100vh - 32px);overflow-y:auto}.help h2{color:var(--ember);text-align:center;margin:0;font-family:Cinzel,serif;font-size:32px}.help .goal{text-align:center;opacity:.8;margin:6px 0 18px}.help h4{color:var(--ember);letter-spacing:.08em;margin:0 0 8px;font-family:Cinzel,serif}.help .cols{grid-template-columns:1fr 1.4fr;gap:28px;display:grid}.help table{border-collapse:collapse;font-size:14px}.help td{vertical-align:top;padding:4px 10px 4px 0}.help ul{margin:0;padding-left:18px;font-size:14px;line-height:1.6}.help kbd{font-size:12px}#helpAdmin{border-top:1px solid #8cb4ff40;margin-top:18px;padding-top:14px}#helpAdmin h4{color:#9fc0ff}.help .small{text-align:center;margin-top:18px}@media (width<=700px){.help .cols{grid-template-columns:1fr}}#roundBar{background:var(--panel);letter-spacing:.04em;white-space:nowrap;border:1px solid #ffa75a2e;border-radius:20px;padding:6px 16px;font-size:13px;position:absolute;top:16px;left:50%;transform:translate(-50%)}#roundBar b{font-variant-numeric:tabular-nums;color:var(--ember)}#roundBar.urgent b{color:var(--blood);animation:.5s infinite alternate pulse}#eventChip{white-space:nowrap;color:#ffd2a8;background:#3c1908bf;border:1px solid #ff8c3c80;border-radius:16px;padding:5px 14px;font-size:13px;position:absolute;top:52px;left:50%;transform:translate(-50%)}#eventArrow,#lanternArrow,#baitArrow{text-shadow:0 0 14px;pointer-events:none;font-size:34px;position:absolute}#lanternArrow{color:#ffb050;font-size:28px}#baitArrow{color:#ff5a4a;font-size:38px}#goal{text-align:center;max-width:calc(100% - 32px);color:var(--bone);pointer-events:none;background:#320c08cc;border:1px solid #ff5a4a;border-radius:6px;padding:7px 16px;font-size:15px;font-weight:600;position:absolute;top:74px;left:50%;transform:translate(-50%)}#goal b{color:#ff8a70;font-variant-numeric:tabular-nums}#arenaBanner{text-align:center;opacity:0;pointer-events:none;transition:opacity .6s;position:absolute;top:30%;left:0;right:0}#arenaBanner.show{opacity:1}#arenaTitle{color:var(--bone);letter-spacing:.1em;text-shadow:0 0 30px #ff963c99;font-family:Cinzel,serif;font-size:clamp(32px,6vw,60px);font-weight:900}#arenaSub{opacity:.8;margin-top:6px;font-style:italic}#roundEnd h2{color:var(--ember);margin:0 0 6px;font-family:Cinzel,serif;font-size:40px}#roundWinner{margin:0 0 18px;font-size:20px}#podium{text-align:left;max-width:360px;margin:0 auto 18px;padding:0;list-style:none}#podium li{background:#ffffff0d;border-radius:5px;margin-bottom:6px;padding:8px 12px;font-size:16px}#podium li span{float:right;opacity:.7;padding-top:2px;font-size:13px}#podium li.me{border:1px solid var(--ember)}#admin select{padding:3px 6px;font-size:12px}.help .rounds{margin-top:18px}@media (width<=700px){#roundBar{top:auto;bottom:10px}#eventChip{top:auto;bottom:46px}#goal{font-size:13px;top:12px}}#musicVol,#brightness,#musicVol2,#brightness2{width:160px;accent-color:var(--ember)}.qrow label{text-align:right;min-width:62px}#touchUI{z-index:4;touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#touchUI.hidden{display:none}.tzone{touch-action:none;position:absolute;top:0;bottom:0}.tzone.left{width:45%;left:0}.tzone.right{width:55%;right:0}.tstick{opacity:0;pointer-events:none;background:#ffa75a14;border:2px solid #ffc89659;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;transition:opacity .15s;position:absolute}.tstick.on{opacity:1}.tstick.aim{border-color:#ff785073}.tstick.sneak{border-style:dashed}.tknob{background:#ffc89673;border-radius:50%;width:52px;height:52px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 16px #ffa05080}.tbtn{letter-spacing:0;text-transform:none;color:#fff3e2;box-shadow:none;touch-action:none;background:#2814088c;border:2px solid #ffa75a80;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:0;font-family:Inter,sans-serif;font-size:26px;line-height:1;display:flex;position:absolute}.tbtn span{opacity:.85;margin-top:3px;font-size:10px}.tbtn:hover{box-shadow:none;transform:none}.tbtn.down{background:#ff8c3c8c;transform:scale(.94)}.tbtn.attack{right:max(24px, env(safe-area-inset-right));border-color:#dc4646b3;width:92px;height:92px;font-size:34px;bottom:28px}.tbtn.flash{right:calc(max(24px, env(safe-area-inset-right)) + 104px);width:64px;height:64px;bottom:22px}.tbtn.lantern{right:calc(max(24px, env(safe-area-inset-right)) + 14px);width:64px;height:64px;bottom:134px}.tbtn.lantern.on{border-color:var(--ember);box-shadow:0 0 16px #ffa75a80}.tbtn.cd{opacity:.4}.trotate{pointer-events:none;background:#000000b3;border-radius:8px;padding:10px 16px;font-size:14px;display:none;position:absolute;top:40%;left:50%;transform:translate(-50%)}@media (orientation:portrait){#touchUI .trotate{display:block}}body.touch #hint{max-width:70vw;font-size:13px;top:118px;bottom:auto}body.touch #helpBtn{top:88px;bottom:auto;right:50%;transform:translate(50%)}body.touch #leaderboard{transform-origin:100% 0;transform:scale(.75)}body.touch #lbList li:nth-child(n+4){display:none}body.touch #stats{transform-origin:0 0;transform:scale(.8)}body.touch #stats .abilities{display:none}body.touch #feed{transform-origin:100% 0;top:150px;transform:scale(.85)}@media (height<=520px){body.touch #feed{display:none}body.touch #stats{transform:scale(.68)}body.touch #leaderboard{transform:scale(.62)}}body.touch #game{touch-action:none}.help .touchOnly{display:none}body.touch .help .touchOnly{display:block}.help .qrow{flex-wrap:wrap;margin-top:18px}#hof,#looks,#rooms{z-index:9}.roomsPanel .qrow{justify-content:center}.roomJoinRow{justify-content:center;gap:8px;margin-bottom:8px;display:flex}#roomCodeInput{text-align:center;text-transform:uppercase;letter-spacing:.3em;width:110px;font-weight:700}#roomJoining{color:var(--ember);margin:0 0 10px}#roomStatus:empty{display:none}#roomChip{pointer-events:auto;cursor:pointer;white-space:nowrap;background:var(--panel);color:#ffd2a8;text-transform:none;letter-spacing:0;border:1px solid #ffa75a66;border-radius:16px;padding:6px 14px;font-family:inherit;font-size:13px;position:absolute;bottom:18px;left:20px}#roomChip b{letter-spacing:.15em;color:var(--ember)}@media (width<=700px){#roomChip{padding:4px 10px;font-size:11px;top:128px;bottom:auto;left:10px}}.hofPanel{background:#0c0a08f0;border:1px solid #ffa75a40;border-radius:8px;max-width:520px}.hofPanel h2{color:var(--ember);margin:0 0 14px;font-family:Cinzel,serif;font-size:32px}.hofTabs{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:14px;display:flex}.hofTabs button,.linkBtn{letter-spacing:0;text-transform:none;color:var(--bone);box-shadow:none;background:#ffffff0f;border:1px solid #ffa75a4d;padding:6px 12px;font-family:Inter,sans-serif;font-size:13px;font-weight:600}.hofTabs button.on{border-color:var(--ember);background:#ff8c3c59}.hofPeriods{margin-bottom:8px}.hofPeriods button{font-family:Cinzel,serif;font-weight:700}.looksPanel{max-width:620px;max-height:calc(100vh - 32px);overflow-y:auto}.looksSlot{text-align:left;margin:12px 0}.looksSlot h4{color:var(--ember);letter-spacing:.06em;margin:0 0 6px;font-family:Cinzel,serif}.looksRow{flex-wrap:wrap;gap:6px;display:flex}.looksRow button{cursor:pointer;color:inherit;background:#ffffff0d;border:1px solid #ffffff26;align-items:center;gap:8px;padding:6px 10px;font-size:14px;display:flex}.looksRow button.on{border-color:var(--ember);background:#ff8c3c40}.looksRow button:disabled{opacity:.45;cursor:default}.looksRow .sw{border-radius:50%;flex:none;width:16px;height:16px;box-shadow:0 0 8px}.looksRow .req{opacity:.8;font-size:11px}.linkBtn{margin-top:12px}#hofList{text-align:left;counter-reset:rank;margin:0 auto;padding:0;list-style:none}#hofList li{counter-increment:rank;background:#ffffff0a;border-radius:5px;align-items:baseline;gap:10px;margin-bottom:4px;padding:7px 12px;font-size:15px;display:flex}#hofList li:before{content:counter(rank) ".";width:26px;color:var(--ember);font-weight:700}#hofList li:first-child:before{content:"🥇"}#hofList li:nth-child(2):before{content:"🥈"}#hofList li:nth-child(3):before{content:"🥉"}#hofList li b{flex:1;font-weight:600}#hofList li .val{color:var(--ember);font-variant-numeric:tabular-nums;font-weight:700}#hofList li .sub{opacity:.55;text-align:right;min-width:90px;font-size:12px}#hofList li.me{border:1px solid var(--ember)}#hofList .empty{opacity:.6;justify-content:center}#hofList .empty:before{content:"";width:0}#roundRecord{color:var(--ember);margin:4px 0;font-family:Cinzel,serif;font-size:20px}#fb,#fbAdmin{z-index:10}.fbBtn{margin-left:6px}.fbMoods{justify-content:center;gap:10px;margin:14px 0;display:flex}.fbMoods button{box-shadow:none;opacity:.6;background:#ffffff0f;border:1px solid #ffa75a4d;padding:6px 14px;font-size:26px}.fbMoods button.on{opacity:1;border-color:var(--ember);background:#ff8c3c59}#fbText{box-sizing:border-box;resize:vertical;width:100%;color:var(--bone);background:#ffffff0f;border:1px solid #ffa75a4d;border-radius:5px;outline:none;padding:10px 12px;font:15px/1.5 Inter,sans-serif}#fbText:focus{border-color:var(--ember)}.fbPanel.wide{max-width:680px}#fbAdminList{text-align:left;max-height:60vh;overflow-y:auto}#fbAdminList .fbItem{background:#ffffff0a;border-left:3px solid #0000;border-radius:5px;margin-bottom:6px;padding:10px 12px}#fbAdminList .fbItem.new{border-left-color:var(--ember)}#fbAdminList .fbItem{padding-right:44px;position:relative}#fbAdminList .fbItem.star{background:#ffbe5017}#fbFilter{margin:0 0 12px}.fbStar{box-shadow:none;color:#ffc861;letter-spacing:0;background:0 0;border:none;padding:2px 8px;font-size:20px;position:absolute;top:6px;right:6px}.fbIssue{letter-spacing:0;text-transform:none;color:var(--bone);border:1px solid var(--ember);box-shadow:none;cursor:pointer;background:#ff8c3c4d;border-radius:5px;margin-top:8px;padding:5px 10px;font:600 12px Inter,sans-serif;text-decoration:none;display:inline-block}.fbIssue.done{background:#50c87826;border-color:#50c87899}#fbAdminList .fbMeta{opacity:.6;margin-bottom:4px;font-size:12px}#fbAdminList .fbBody{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}#fbCount{color:#fff;background:#c0392b;border-radius:8px;margin-left:4px;padding:0 6px}#crosshair{pointer-events:none;z-index:5;background:#ffdcaabf;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:fixed;top:50%;left:50%;box-shadow:0 0 6px #ffaa50cc}.ab.weapon{color:#bfffe8;border-color:#7affd080}#prompt{color:#e9dcc8;text-align:center;pointer-events:none;white-space:nowrap;background:#080a0cb8;border:1px solid #7affd059;border-radius:8px;padding:8px 16px;font-size:15px;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}#promptBar{background:#ffffff1f;border-radius:2px;height:4px;margin-top:6px;overflow:hidden}#promptFill{background:linear-gradient(90deg,#4affc0,#c8ffe9);width:0;height:100%;box-shadow:0 0 8px #4affc0}.tbtn.weapon{right:calc(max(24px, env(safe-area-inset-right)) + 104px);border-color:#7affd0b3;width:64px;height:64px;bottom:98px}.tbtn.camera{right:calc(max(24px, env(safe-area-inset-right)) + 110px);width:52px;height:52px;font-size:22px;bottom:172px}.tbtn.use{right:calc(max(24px, env(safe-area-inset-right)) + 184px);width:64px;height:64px;bottom:22px}.ab.weapon{white-space:nowrap}#statsAdmin{z-index:10}#statsList{max-height:60vh;overflow:auto}#statsList table.stats{border-collapse:collapse;width:100%;font-size:13px}#statsList th,#statsList td{text-align:right;white-space:nowrap;border-top:1px solid #ffffff14;padding:4px 6px}#statsList th{opacity:.7;white-space:normal;vertical-align:bottom;font-size:12px;font-weight:600}#statsList td:first-child,#statsList th:first-child{text-align:left}
