:root{--ink:#2a1c10;--ink-soft:#5a4630;--parch:#ecdfc2;--parch-2:#e0cfa8;--red:#9a1f24;--red-hot:#d23a2a;--navy:#1d2b48;--gold:#c8992f;--gold-hot:#ffd27a;--night:#121826;--serif:"IM Fell English", Georgia, "Times New Roman", serif;--caps:"IM Fell English SC", Georgia, serif}*{box-sizing:border-box}html,body{background:var(--night);height:100%;color:var(--parch);font-family:var(--serif);margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;touch-action:none}#game{position:fixed;inset:0}#game canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;position:fixed;inset:0}.hidden{display:none!important}kbd{font-family:var(--caps);opacity:.8;border:1px solid;border-radius:3px;padding:.05em .4em;font-size:.8em}.btn{pointer-events:auto;cursor:pointer;font-family:var(--caps);letter-spacing:.04em;color:var(--parch);background:linear-gradient(#3a2a1a,#24180e);border:1px solid #8a6a3a;border-radius:4px;padding:10px 20px;font-size:18px;transition:transform 80ms,filter .15s;box-shadow:0 2px #120a04,inset 0 1px #ffdca026}.btn:hover:not(:disabled){filter:brightness(1.2);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:linear-gradient(#a82a28,#6e1414);border-color:#e0a060}.btn.big{padding:14px 32px;font-size:22px}.btn.small{padding:6px 12px;font-size:14px}.btn.danger{background:linear-gradient(#4a1a1a,#2a0e0e)}label.btn{display:inline-block}#screen{pointer-events:auto;z-index:20;display:none;position:fixed;inset:0;overflow:auto}#screen.on{display:block}.title-screen,.story,.cards-screen,.peddler{background:radial-gradient(#0a0e1840,#0a0e18d1);justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.title-card{text-align:center;text-shadow:0 2px 12px #000c;max-width:720px}.title-kicker{font-family:var(--caps);letter-spacing:.4em;color:var(--gold-hot);font-size:18px}.title-card h1{font-family:var(--caps);color:#f6ead0;letter-spacing:.02em;margin:8px 0 0;font-size:clamp(56px,10vw,112px);line-height:.95}.title-sub{font-family:var(--caps);color:#e8b860;letter-spacing:.3em;margin-bottom:18px;font-size:clamp(20px,3vw,30px)}.title-blurb{color:#e8dcc0;max-width:560px;margin:0 auto 26px;font-size:19px;line-height:1.45}.touch-only{display:none!important}@media (pointer:coarse){.touch-only{display:flex!important}.keys-only{display:none!important}}.controls{color:#cbbd9e;flex-direction:column;gap:6px;margin-top:22px;font-size:15px;display:flex}.title-foot{color:#9a8c70;letter-spacing:.1em;margin-top:26px;font-size:13px}.policy-note{color:#e8dcc0;margin:16px 0 4px;font-size:14px}.policy-links{flex-wrap:wrap;justify-content:center;gap:8px 24px;font-size:14px;display:flex}.policy-links a{color:#ffd27a;text-underline-offset:3px;padding:8px 0}.policy-links a:focus-visible{outline-offset:4px;outline:2px solid #ffd27a}.parchment{width:min(680px,100%);color:var(--ink);background:radial-gradient(ellipse at 30% 20%, #f4ead2, var(--parch) 45%, var(--parch-2));border:1px solid #b89a68;border-radius:6px;padding:40px 48px 34px;position:relative;box-shadow:0 20px 60px #0009,inset 0 0 80px #78501e47}.parchment.wide{width:min(1040px,100%)}.parchment.narrow{text-align:center;width:min(420px,100%)}.parchment h2{font-family:var(--caps);color:#3a1a10;margin:6px 0 14px;font-size:40px;line-height:1.05}.parchment h3{font-family:var(--caps);color:var(--red);border-bottom:1px solid #b89a68;margin:4px 0 10px;padding-bottom:4px;font-size:20px}.p-kicker{font-family:var(--caps);letter-spacing:.25em;color:var(--red);font-size:14px}.p-date{color:var(--ink-soft);font-size:17px;font-style:italic}.p-body p{margin:0 0 14px;font-size:20px;line-height:1.5}.p-body p:first-child:first-letter{font-family:var(--caps);float:left;color:var(--red);padding:6px 8px 0 0;font-size:3.1em;line-height:.85}.seal-wax{color:#f0c0a0;background:radial-gradient(circle at 35% 35%,#c83a32,#7a1414 70%);border-radius:50%;place-items:center;width:58px;height:58px;font-size:26px;display:grid;position:absolute;top:28px;right:30px;box-shadow:0 3px 8px #0006}.parchment .btn{margin-top:10px}.hint{color:#8a7458;margin:0 0 10px;font-size:15px;font-style:italic}.mt{margin-top:18px!important}.camp{min-height:100%;color:var(--parch);background:linear-gradient(#0a0e188c,#0a0e18e6);padding:28px 32px 110px}.camp-head{justify-content:space-between;align-items:flex-end;gap:20px;max-width:1400px;margin:0 auto 18px;display:flex}.camp-head h2{font-family:var(--caps);margin:0;font-size:42px}.kicker{font-family:var(--caps);letter-spacing:.3em;color:var(--gold-hot);font-size:14px}.camp-head-right{align-items:flex-end;gap:22px;display:flex}.bonds{text-align:right}.bonds-v{font-family:var(--caps);color:var(--gold-hot);font-size:46px;line-height:1;display:block}.bonds-k{font-family:var(--caps);letter-spacing:.2em;color:#cbbd9e;font-size:13px}.camp-cols{grid-template-columns:1fr 1.2fr 1fr;gap:18px;max-width:1400px;margin:0 auto;display:grid}@media (max-width:1000px){.camp-cols{grid-template-columns:1fr}}.panel{background:radial-gradient(ellipse at 30% 10%, #efe3c8, var(--parch-2));color:var(--ink);border:1px solid #b89a68;border-radius:6px;padding:18px 20px;box-shadow:0 10px 30px #00000080}.panel h3{font-family:var(--caps);color:var(--red);margin:0 0 8px;font-size:22px}.roster{flex-direction:column;gap:8px;display:flex}.roster-card{background:#ffffff40;border:1px solid #c0a478;border-radius:4px;padding:10px 12px}.roster-card.sel{border-color:var(--red);box-shadow:inset 4px 0 0 var(--red)}.roster-card.locked{opacity:.55;filter:grayscale(.6)}.r-name{font-family:var(--caps);font-size:18px}.r-town{color:var(--ink-soft);font-size:14px;font-style:italic}.r-blurb{margin:4px 0;font-size:14px;line-height:1.3}.r-meta{color:#7a6040;font-size:12px;font-family:var(--caps);letter-spacing:.05em}.tree{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:700px){.tree{grid-template-columns:1fr}}.skill{background:#ffffff47;border:1px solid #c0a478;border-radius:4px;flex-direction:column;gap:6px;padding:10px;display:flex}.s-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.s-name{font-family:var(--caps);font-size:17px}.pips{color:var(--red);letter-spacing:2px;white-space:nowrap;font-size:13px}.s-desc{flex:1;font-size:14px;line-height:1.3}.echo{margin-bottom:10px}.e-name{font-family:var(--caps);font-size:16px}.e-src{font-family:var(--serif);color:var(--ink-soft);font-size:13px;font-style:italic}.e-bar{background:#50321433;border-radius:3px;height:6px;margin:3px 0;overflow:hidden}.e-bar div{background:linear-gradient(90deg,#a83a20,#e0a040);height:100%}.e-sum{color:var(--ink-soft);font-size:13px}.record{font-family:var(--caps);flex-wrap:wrap;gap:14px;font-size:14px;display:flex}.build{margin:12px 0 4px}.build h3{font-family:var(--caps);letter-spacing:.14em;color:var(--red);margin:0 0 6px;font-size:13px;font-weight:400}.b-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.b-item{position:relative}.b-medal{width:40px;height:40px}.b-n{background:var(--navy);color:#f0e0c0;min-width:16px;height:16px;font:bold 11px/16px var(--caps);text-align:center;border-radius:8px;padding:0 3px;position:absolute;bottom:-3px;right:-3px}.b-sep{background:#b89a68;width:1px;height:30px;margin:0 4px}.g-compare{color:var(--ink-soft);margin:2px 0 4px;font-size:14px}.g-compare b{font-weight:400;font-family:var(--caps)}.g-compare .up{color:#2a6a2a}.g-compare .down{color:#a02a1a}.tales{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.tale{font-family:var(--caps);background:var(--navy);color:#f0e0c0;border-radius:10px;padding:3px 8px;font-size:13px}.save-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.camp-foot{text-align:center;pointer-events:none;background:linear-gradient(#0000,#080a12f2);padding:18px;position:fixed;bottom:0;left:0;right:0}.camp-foot .btn{pointer-events:auto}.cards-screen{flex-direction:column;gap:18px}.cards-head{text-align:center;text-shadow:0 2px 10px #000}.cards-head h2{font-family:var(--caps);margin:4px 0;font-size:40px}.cards-head .hint{color:#cbbd9e}.cards{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.card{pointer-events:auto;cursor:pointer;text-align:left;width:240px;min-height:300px;color:var(--ink);font-family:var(--serif);background:radial-gradient(ellipse at 30% 10%, #f6ecd4, var(--parch) 50%, var(--parch-2));border:2px solid #b89a68;border-radius:6px;flex-direction:column;gap:10px;padding:22px 20px 16px;transition:transform .12s,box-shadow .12s;animation:.35s backwards cardIn;display:flex;position:relative;box-shadow:0 14px 40px #0009}.card:nth-child(2){animation-delay:60ms}.card:nth-child(3){animation-delay:.12s}@keyframes cardIn{0%{opacity:0;transform:translateY(30px)rotate(-2deg)}}.card:hover{transform:translateY(-6px)rotate(-.5deg);box-shadow:0 22px 50px #000000b3}.card.uncommon{border-color:#3a6ab0}.card.masterwork{background:radial-gradient(at 30% 10%,#fff0d0,#f4dcae 50%,#e8c690);border-color:#ff8a2a;animation:.35s backwards cardIn,1.6s ease-in-out infinite alternate mwGlow;box-shadow:0 0 34px #ff821e99,0 14px 40px #0009}@keyframes mwGlow{to{box-shadow:0 0 48px #ff9628d9,0 14px 40px #0009}}.card.masterwork .c-group:after{content:" · Masterwork";color:#c0501a}.c-forge{color:#a0602a;letter-spacing:.04em}.c-forge.ready{color:#d0501a;font-weight:700}.card.rare{border-color:var(--gold);box-shadow:0 0 30px #dcaa3c73,0 14px 40px #0009}.c-group{font-family:var(--caps);letter-spacing:.2em;color:var(--red);font-size:13px}.c-name{font-family:var(--caps);font-size:26px;line-height:1.05}.c-desc{flex:1;font-size:17px;line-height:1.35}.c-foot{font-family:var(--caps);color:var(--ink-soft);text-transform:capitalize;justify-content:space-between;font-size:13px;display:flex}.c-key{color:var(--ink-soft);position:absolute;top:10px;right:12px}.peddler-cols{grid-template-columns:1.1fr 1fr;gap:24px;display:grid}@media (max-width:800px){.peddler-cols{grid-template-columns:1fr}}.purse{font-family:var(--caps);margin-bottom:12px;font-size:18px}.good{border-bottom:1px dashed #c0a478;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:8px 0;display:grid}.good.weapon{grid-template-columns:1fr}.good.weapon .btn{justify-self:start;margin:0}.g-name{font-family:var(--caps);font-size:17px}.g-desc{grid-column:1;font-size:14px}.good>.btn{grid-area:1/2/span 2;margin:0}.slot-tag{font-family:var(--caps);letter-spacing:.1em;background:var(--navy);color:#f0e0c0;vertical-align:middle;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:11px}.slot-tag.bad{background:var(--red)}.arsenal-row{border-bottom:1px dashed #c0a478;padding:6px 0}.arsenal-row .slot-tag{margin:0 0 4px;display:inline-block}.lore summary{cursor:pointer;font-family:var(--caps);color:var(--navy);pointer-events:auto;font-size:15px}.lore-card{border-left:3px solid var(--gold);background:#ffffff59;margin:6px 0 4px;padding:10px 12px;font-size:14px;line-height:1.35}.lore-card p{margin:6px 0;font-style:italic}.stats{font-family:var(--caps);color:var(--ink-soft);font-size:12px}.summary-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 16px;display:grid}.summary-grid b{font-family:var(--caps);color:var(--red);font-size:32px;display:block}.summary-grid span{color:var(--ink-soft);font-size:13px}.bonds-earned{font-family:var(--caps);color:#6a4a10;margin-bottom:10px;font-size:24px}.pause-btns{flex-direction:column;align-items:stretch;gap:10px;display:flex}#hud{font-family:var(--caps);text-shadow:0 1px 3px #000000e6;position:absolute;inset:0}.hud-top{position:absolute;top:0;left:0;right:0}.xpbar{background:#0a0806b3;border-bottom:1px solid #6a4a20;height:10px;position:relative}.xpfill{background:linear-gradient(90deg,#c86010,#ffb040);width:0;height:100%;transition:width .15s;box-shadow:0 0 10px #ff8a20}.xplvl{color:var(--gold-hot);background:#0a0806b3;border-radius:0 0 6px 6px;padding:0 10px 2px;font-size:13px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.hud-left{align-items:center;gap:10px;display:flex;position:absolute;top:22px;left:18px}.seal{color:#f6d8b0;background:radial-gradient(circle at 35% 35%,#c83a32,#6a1010 70%);border:2px solid #e0a060;border-radius:50%;place-items:center;width:54px;height:54px;font-size:26px;display:grid;box-shadow:0 2px 8px #000}.hpname{color:#f0e2c4;font-size:15px}.hpbar{background:#140a08cc;border:1px solid #8a5a30;border-radius:3px;width:240px;height:18px;position:relative;overflow:hidden}.hpfill{background:linear-gradient(#d8402e,#8a1a14);height:100%;transition:width .12s}.hptext{text-align:center;color:#fff3e0;font-size:13px;line-height:18px;position:absolute;inset:0}.buffs{gap:4px;min-height:18px;margin-top:4px;display:flex}.buff{color:#dfe8ff;background:#1e325ad9;border-radius:8px;padding:1px 6px;font-size:11px}.buff.fire{color:#ffe0b0;background:#a03c0ae6}.buff.bad{background:#8c1414e6}.hud-right{text-align:right;flex-direction:column;gap:2px;display:flex;position:absolute;top:22px;right:18px}.hud-right,.hud-objective{text-shadow:0 1px 2px #000,0 0 8px #000000e6,0 0 16px #0009}.stat .k{color:#cbbd9e;letter-spacing:.08em;margin-right:8px;font-size:12px}.stat .v{color:#fff0d0;font-size:22px}.stat .dollars{color:var(--gold-hot)}.hud-objective{text-align:center;width:min(520px,60vw);position:absolute;top:34px;left:50%;transform:translate(-50%)}.stage-title{color:#cbbd9e;letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.obj-label{color:#fff0d0;font-size:20px}.obj-bar{background:#00000080;border-radius:3px;width:70%;height:5px;margin:4px auto 0;overflow:hidden}.obj-fill{background:var(--gold-hot);height:100%;transition:width .2s}.suspicion{justify-content:center;align-items:center;gap:8px;margin-top:8px;display:flex}.suspicion .eye{filter:sepia()saturate(3)hue-rotate(-10deg);font-size:18px}.susbar{background:#0009;border:1px solid #8a6a30;border-radius:5px;width:200px;height:10px;overflow:hidden}.susfill{background:linear-gradient(90deg,#e0b040,#ff6020);height:100%;transition:width .1s}.sustext{color:#f0d8a0;text-align:left;min-width:120px;font-size:13px}.suspicion.alarm .susfill{background:#ff2a1a;animation:.5s infinite alternate pulse}.suspicion.alarm .sustext{color:#ff6a50}@keyframes pulse{to{opacity:.5}}.bossbar{text-align:center;width:min(560px,80vw);position:absolute;top:140px;left:50%;transform:translate(-50%)}.bossname{color:#ffd0b0;letter-spacing:.08em;font-size:18px}.bosstrack{background:#0a0404cc;border:1px solid #c86a40;border-radius:3px;height:14px;overflow:hidden}.bossfill{background:linear-gradient(#e04030,#801010);height:100%;transition:width .12s}.slots{gap:14px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.slot{--p:0;text-align:center;opacity:.95;width:100px}.dial{background:conic-gradient(#ffb040 calc(var(--p) * 360deg), #140e08d9 0);border:1px solid #8a6a3a;border-radius:50%;width:64px;height:64px;margin:0 auto;padding:5px;transition:box-shadow .15s;box-shadow:0 2px 8px #000}.dial-in{background:radial-gradient(circle at 40% 35%,#3a2a1a,#140c06);border-radius:50%;width:100%;height:100%}.slot.ready .dial{box-shadow:0 0 14px #ffb040,0 2px 8px #000}.slot.holstered{opacity:.4}.slot-name{color:#f0e2c4;min-height:26px;margin-top:4px;font-size:12px;line-height:1.05}.slot-label{letter-spacing:.15em;color:#b09a74;font-size:10px}.slot[data-slot=longGun] .dial-in:after,.slot[data-slot=sidearm] .dial-in:after,.slot[data-slot=melee] .dial-in:after,.slot[data-slot=tactical] .dial-in:after{color:#e8c890;padding-top:14px;font-size:22px;display:block}.slot[data-slot=longGun] .dial-in:after{content:"⁂"}.slot[data-slot=sidearm] .dial-in:after{content:"✦"}.slot[data-slot=melee] .dial-in:after{content:"⚒"}.slot[data-slot=tactical] .dial-in:after{content:"♨"}.interact{color:var(--gold-hot);letter-spacing:.1em;font-size:18px;position:absolute;top:58%;left:50%;transform:translate(-50%)}.banner{text-align:center;width:90vw;animation:.4s bannerIn;position:absolute;top:28%;left:50%;transform:translate(-50%)}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%)scale(1.15)}}.b-title{color:#fff0d0;letter-spacing:.06em;font-size:clamp(30px,5vw,54px)}.b-sub{font-family:var(--serif);color:#e8d8b8;font-size:19px;font-style:italic}.banner.b-alarm .b-title{color:#ff5a40}.banner.b-warn .b-title{color:#ffc070}.banner.b-good .b-title{color:var(--gold-hot)}.hurt{opacity:0;background:radial-gradient(#0000 55%,#aa0000bf);position:absolute;inset:0}.nums{position:absolute;inset:0;overflow:hidden}.num{color:#fff;white-space:nowrap;will-change:transform;font-size:18px;font-weight:700;position:absolute;top:0;left:0}.num.crit{color:var(--gold-hot);font-size:26px}.num.player{color:#ff4a3a;font-size:22px}.num.heal{color:#8aff8a;font-size:22px}.num.blocked{color:#9fb4d0;font-size:14px}.num.call{font-family:var(--serif);color:#ffc070;text-shadow:0 1px 3px #000,0 0 10px #000c;font-size:20px;font-style:italic;font-weight:400}.arrows{position:absolute;inset:0}.arrow{color:var(--gold-hot);filter:drop-shadow(0 0 6px #ff9a20);font-size:28px;position:absolute;top:0;left:0}.arrow.boss{color:#ff5a40;filter:drop-shadow(0 0 6px #ff2a1a);font-size:34px}.pausebtn{pointer-events:auto;color:#e8c890;cursor:pointer;background:#140e08bf;border:1px solid #8a6a3a;border-radius:50%;width:44px;height:44px;font-size:14px;position:absolute;bottom:18px;right:18px}.stick{pointer-events:none;opacity:0;z-index:5;background:#140e0840;border:2px solid #ffdca059;border-radius:50%;width:110px;height:110px;margin:-55px 0 0 -55px;transition:opacity .15s;position:fixed}.stick.on{opacity:1}.stick-knob{background:#ffc8788c;border-radius:50%;width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.debug{z-index:50;background:#0a0c14e0;border:1px solid #4a5a8a;border-radius:6px;flex-direction:column;gap:4px;padding:10px;font-family:ui-monospace,Menlo,monospace;font-size:12px;display:flex;position:fixed;top:150px;left:12px}.debug .d-title{color:#9fb4ff;margin-bottom:4px}.debug button{pointer-events:auto;cursor:pointer;text-align:left;color:#dfe6ff;font:inherit;background:#1c2440;border:1px solid #3a4a7a;border-radius:3px;padding:4px 8px}.debug button:hover{background:#2a3660}@media (max-width:700px){.hpbar{width:150px}.hud-right .k{display:none}.slot{width:72px}.dial{width:50px;height:50px}.slot-name{display:none}.hud-objective{width:92vw;top:90px}.bossbar{top:170px}.parchment{padding:28px 22px}.parchment h2{font-size:30px}.p-body p{font-size:17px}.summary-grid{grid-template-columns:repeat(2,1fr)}.stage-title{display:none}.hud-right{top:18px}.stat .v{font-size:16px}.pausebtn{width:36px;height:36px;top:96px;bottom:auto;right:12px}.slots{gap:6px;bottom:12px}}.settings-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.pause-btns .settings-row{margin:0}.ws-slot{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.ws-slot .slot-tag{align-self:flex-start;margin:0}.ws-opt{pointer-events:auto;cursor:pointer;text-align:left;color:var(--ink);font-family:var(--serif);background:#ffffff40;border:1px solid #c0a478;border-radius:4px;flex-direction:column;gap:2px;padding:7px 10px;display:flex}.ws-opt b{font-family:var(--caps);font-size:15px;font-weight:400}.ws-opt span{color:var(--ink-soft);font-size:12.5px;line-height:1.25}.ws-opt.on{border-color:var(--red);box-shadow:inset 4px 0 0 var(--red);background:#ffffff80}.ws-opt:disabled{opacity:.5;cursor:default}.camp-foot{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.workshop{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:700px){.workshop{grid-template-columns:1fr}}.roster-card.avail{cursor:pointer;pointer-events:auto;transition:background .15s}.roster-card.avail:hover{background:#ffffff73}.tip{pointer-events:auto;cursor:pointer;background:radial-gradient(ellipse at 30% 20%, #f4ead2, var(--parch) 60%, var(--parch-2));width:min(360px,40vw);color:var(--ink);text-shadow:none;border:1px solid #b89a68;border-radius:4px;flex-direction:column;gap:2px;padding:8px 12px;animation:.35s ease-out tipIn;display:flex;position:absolute;top:96px;left:18px;box-shadow:0 8px 24px #0000008c}.tip-k{font-family:var(--caps);color:var(--red);letter-spacing:.15em;white-space:nowrap;font-size:13px}.tip-t{font-family:var(--serif);font-size:14.5px;line-height:1.3}@keyframes tipIn{0%{opacity:0;transform:translate(-16px)}}@media (max-width:700px){.obj-label{font-size:15px;line-height:1.2}.hud-objective{top:100px}.pausebtn{top:auto;bottom:96px;right:12px}.tip{width:min(560px,92vw);left:50%;transform:translate(-50%)}}#ui:has(#screen.on) .tip{visibility:hidden}.card.focus{box-shadow:0 0 0 3px var(--gold-hot), 0 22px 50px #000000b3;transform:translateY(-8px)}.stat .ico{display:none}@media (max-width:700px){.stat .ico{text-align:center;color:#cbbd9e;width:18px;margin-right:4px;font-size:13px;display:inline-block}.tip{gap:2px;padding:6px 10px;animation:none;top:158px;bottom:auto}.tip-k{font-size:11px}.tip-t{font-size:13px;line-height:1.25}.camp{padding:16px 12px 110px}.camp-head{align-items:center;margin-bottom:10px}.camp-head h2{font-size:26px;line-height:1.05}.camp-head .kicker{letter-spacing:.2em;font-size:11px}.bonds-v{font-size:32px}.panel{padding:12px 14px}.roster{scroll-snap-type:x mandatory;flex-direction:row;gap:8px;padding-bottom:4px;overflow-x:auto}.roster-card{scroll-snap-align:start;flex:0 0 72%}.camp-foot .btn.big{padding:12px 18px;font-size:17px}}@media (max-width:1000px){.camp-cols{grid-template-columns:minmax(0,1fr)}.panel{min-width:0}}.roster-card.has-face{min-height:72px;padding-left:78px;position:relative}.roster-card .r-face{object-fit:contain;filter:drop-shadow(0 2px 3px #28140073);width:70px;height:70px;position:absolute;top:50%;left:4px;transform:translateY(-50%)}.roster-card.locked .r-face{filter:grayscale()opacity(.6)}.banner .b-faces{justify-content:center;gap:6px;margin-bottom:-6px;display:flex}.banner .b-faces img{object-fit:contain;filter:drop-shadow(0 0 14px #ff78288c)drop-shadow(0 3px 2px #000c);width:132px;height:132px;animation:.5s ease-out faceIn}@keyframes faceIn{0%{opacity:0;transform:translateY(16px)scale(.85)}to{opacity:1;transform:none}}@media (max-width:700px){.banner .b-faces img{width:84px;height:84px}}.minimap{pointer-events:auto;cursor:pointer;background:linear-gradient(#3a2a1a,#24180e);border:1px solid #8a6a3a;border-radius:4px;width:196px;padding:4px;position:absolute;top:128px;right:16px;box-shadow:0 4px 14px #0009,inset 0 0 0 1px #ffdca01f}.minimap canvas{image-rendering:pixelated;margin:0 auto;display:block}.mm-legend{display:none}.minimap.expanded{z-index:30;background:radial-gradient(at 30% 20%,#3e2e1e,#1c130b);justify-content:center;align-items:center;width:min(820px,92vw);height:min(600px,82vh);padding:12px 12px 34px;display:flex;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);box-shadow:0 20px 60px #000000bf}.minimap.expanded .mm-legend{font-family:var(--caps);color:#e8d8b8;flex-wrap:wrap;justify-content:center;gap:12px;font-size:12px;display:flex;position:absolute;bottom:8px;left:12px;right:12px}.mm-legend i{vertical-align:-1px;border:1px solid #1a120c;width:9px;height:9px;margin-right:4px;display:inline-block}.mm-legend .mm-hint{color:#a89070;font-style:italic}@media (max-width:700px){.minimap{width:116px;padding:3px;inset:auto auto 100px 10px}.minimap.expanded{padding-bottom:52px;bottom:auto}}.mm-backdrop{z-index:29;pointer-events:auto;background:#0806048c;position:fixed;inset:0}.slot{pointer-events:auto;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.slot .dial{position:relative}.slot-key{min-width:22px;font-family:var(--caps);letter-spacing:.05em;color:#f0d8a8;text-shadow:none;background:#1a120c;border:1px solid #8a6a3a;border-radius:9px;padding:1px 5px;font-size:11px;position:absolute;bottom:-4px;right:-6px}.slot:active .dial,.slot.firing .dial{transform:scale(.94)}@media (pointer:coarse){.slot-key{display:none}.slots{gap:10px}.slot .dial{width:74px;height:74px}.slot{width:84px}.slot-name{display:none}}body.aiming canvas{cursor:crosshair}.icon-medal{background:radial-gradient(circle at 50% 38%,#f6e7c4 0%,#d9be8a 55%,#a8854f 100%);border-radius:50%;flex:none;place-items:center;display:grid;position:relative;box-shadow:inset 0 0 0 2px #6a4a24,inset 0 0 0 4px #e8d2a0,0 2px 6px #00000073}.icon-medal img{object-fit:contain;filter:drop-shadow(0 2px 2px #28140080);width:86%;height:86%}.icon-medal.longGun,.icon-medal.g-long-gun{box-shadow:inset 0 0 0 2px #22305a,inset 0 0 0 4px #e8d2a0,0 2px 6px #00000073}.icon-medal.uncommon{box-shadow:inset 0 0 0 3px #3a6ab0,inset 0 0 0 5px #e8d2a0,0 2px 6px #00000073}.icon-medal.masterwork{box-shadow:inset 0 0 0 3px #ff9a3a,inset 0 0 0 5px #fff1c8,0 0 18px #ff8c28bf}.icon-medal.rare{box-shadow:inset 0 0 0 3px #d9a83a,inset 0 0 0 5px #fff1c8,0 0 14px #dcaa3c99}.dial-in.has-icon{background-color:#0000;background-position:50%,50%;background-repeat:no-repeat;background-size:80%,cover}.dial-in.has-icon:after{content:none!important}.slot:not(.ready) .dial-in.has-icon{filter:saturate(.55)brightness(.75)}.card .c-icon{width:92px;height:92px;margin:2px auto 4px}.s-head{align-items:center;gap:8px;display:flex}.s-head .s-name{flex:1}.s-icon{width:46px;height:46px}.ws-opt{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ws-icon,.a-icon{width:36px;height:36px}.arsenal-row{align-items:center;gap:8px;display:flex}.g-name{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.g-icon{width:40px;height:40px}.slot.denied .dial{animation:.28s denied}@keyframes denied{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.roll{pointer-events:auto;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;width:92px;height:30px;font-family:var(--caps);color:#f0d8a8;--p:1;background:#140e08d9;border:1px solid #8a6a3a;border-radius:15px;place-items:center;font-size:13px;display:grid;position:absolute;bottom:52px;left:calc(50% - 382px);overflow:hidden;box-shadow:0 2px 8px #000}.roll .roll-fill{transform-origin:0;transform:scaleX(var(--p));opacity:.55;background:linear-gradient(#a8762c,#6a4418);position:absolute;inset:0}.roll span{position:relative}.roll .roll-key{background:#1a120c;border:1px solid #8a6a3a;border-radius:6px;margin-left:3px;padding:0 4px;font-size:10px;font-weight:400}@media (pointer:coarse){.roll .roll-key{display:none}}.roll.ready{box-shadow:0 0 10px #ffb040,0 2px 8px #000}@media (pointer:coarse){.roll{border-radius:50%;width:76px;height:76px;font-size:15px;bottom:120px;left:auto;right:14px}}@media (max-width:700px) and (pointer:fine){.roll{bottom:142px;left:auto;right:12px}}#hud.lowhp:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(#0000 55%,#aa0a0a8c 100%);animation:1.1s ease-in-out infinite lowhp;position:absolute;inset:0}@keyframes lowhp{0%,to{opacity:.35}15%{opacity:1}30%{opacity:.5}45%{opacity:.9}}.streak{flex-direction:column;align-items:flex-end;margin-top:6px;display:flex}.streak-n{color:#ffd27a;text-shadow:0 0 10px #ff9628b3,0 2px 3px #000;font-size:26px;line-height:1}.streak.hot .streak-n{color:#ff8a3a;font-size:32px}.streak-k{letter-spacing:.15em;color:#c8a878;font-size:10px}.streak-bar{background:#00000080;width:70px;height:3px;margin-top:3px}.streak-bar div{background:#ffb040;height:100%}.streak.bump .streak-n{animation:.22s ease-out streakBump}@keyframes streakBump{40%{transform:scale(1.35)}}@media (max-width:700px){.streak-k,.streak-bar{display:none}.streak-n{font-size:18px}}.nameplate{pointer-events:none;text-align:center;will-change:transform;z-index:2;position:absolute;top:0;left:0}.np-name{letter-spacing:.06em;color:#f4e2c0;white-space:nowrap;font-size:12px}.nameplate.elite .np-name{color:#ffb070}.np-bar{background:#000000b3;border:1px solid #3a1a10;width:64px;height:5px;margin:2px auto 0}.np-bar div{background:linear-gradient(#e0483a,#8a1a14);height:100%}@media (pointer:coarse){.nameplate{display:none}}.kit-loader{z-index:50;color:#f0d8a8;font-family:var(--caps);letter-spacing:.08em;background:#140e08e0;border:1px solid #8a6a3a;border-radius:18px;align-items:center;gap:10px;padding:8px 14px;font-size:13px;transition:opacity .4s;display:flex;position:fixed;bottom:16px;left:16px}.kit-loader .kl-bar{background:#ffffff1f;border-radius:2px;width:90px;height:4px;overflow:hidden}.kit-loader .kl-bar div{background:#ffb040;width:0;height:100%;transition:width .2s}.kit-loader.wait{padding:14px 22px;font-size:16px;bottom:50%;left:50%;transform:translate(-50%,50%)}.kit-loader.out{opacity:0}.slot.ult .dial{background:conic-gradient(#ffd27a calc(var(--p) * 360deg), #140e08d9 0)}.slot.ult .dial-in{place-items:center;display:grid}.ult-star{color:#6a5030;font-size:30px;line-height:1}.slot.ult.ready .ult-star{color:#ffe08a;text-shadow:0 0 12px #ffb040,0 0 24px #ff8020;animation:.9s ease-in-out infinite ultPulse}.slot.ult.ready .dial{box-shadow:0 0 22px #ffcc50,0 0 4px #fff3c0,0 2px 8px #000}@keyframes ultPulse{50%{transform:scale(1.18)}}@media (pointer:coarse){.slot.ult{position:absolute;bottom:210px;right:8px}}@media (max-width:700px) and (pointer:fine){.slot.ult{position:absolute;bottom:182px;right:8px}}.nameplate.veteran .np-name{color:#ffd27a;text-shadow:0 0 8px #ffb43cb3,0 1px 2px #000}.nameplate.veteran .np-bar{border-color:#8a6a20;width:84px}.parchment.pause-wide{width:min(620px,94vw)}.controls{text-align:left;margin:4px 0 14px}.controls h3{font-family:var(--caps);letter-spacing:.12em;color:var(--red);margin:0 0 6px;font-size:15px}.ctl-head,.ctl{border-bottom:1px dashed #785a324d;grid-template-columns:130px 90px 1fr;align-items:center;gap:8px;padding:3px 0;display:grid}.ctl-head{font-family:var(--caps);letter-spacing:.1em;color:#7a5a34;border-bottom:1px solid #785a3280;font-size:11px}.ctl span{color:var(--ink);font-size:14px}.ctl kbd{opacity:1;color:var(--ink);background:#fff8e6b3;border-color:#8a6a3a;justify-self:start;font-size:12px}@media (pointer:coarse),(max-width:560px){.ctl,.ctl-head{grid-template-columns:150px 1fr}.ctl .pad{display:none}}.hitdir{pointer-events:none;z-index:1;width:0;height:0;position:absolute;top:50%;left:50%}.hitdir div{border-right:4px solid rgba(255, 60, 30, calc(.9 * var(--s)));background:radial-gradient(ellipse at 100% 50%, rgba(255, 30, 10, calc(.75 * var(--s))) 0%, #a0000000 75%);filter:drop-shadow(0 0 8px #ff281499);border-radius:0 100% 100% 0/0 50% 50% 0;width:60px;height:300px;animation:.9s ease-out forwards hitdir;position:absolute;top:-150px;left:min(42vw,40vh)}@keyframes hitdir{0%{opacity:1;transform:translate(-12px)}to{opacity:0;transform:translate(6px)}}@media (pointer:fine){.minimap:not(.expanded){pointer-events:none}}.slot.masterwork .dial{border-radius:50%;box-shadow:0 0 0 2px #ff8a2a,0 0 14px #ff821eb3}.slot.masterwork .dial:after{content:"⚒";color:#2a1408;text-align:center;background:radial-gradient(circle at 40% 35%,#ffcf7a,#c0501a);border-radius:50%;width:20px;height:20px;font-size:12px;line-height:20px;position:absolute;bottom:-4px;right:-4px;box-shadow:0 1px 3px #000}.combo{gap:4px;display:flex;position:absolute;top:-9px;left:50%;transform:translate(-50%)}.combo i{background:#140e08d9;border:1px solid #8a6a3a;border-radius:50%;width:8px;height:8px}.combo[data-n="1"] i:first-child,.combo[data-n="2"] i{background:#ffb040;box-shadow:0 0 6px #ff9020}.combo[data-n="2"] i{animation:.5s ease-in-out infinite alternate comboReady}@keyframes comboReady{to{transform:scale(1.35)}}.cs{pointer-events:none;z-index:40;--bar:clamp(48px, 11vh, 120px);position:fixed;inset:0}.cs.on{pointer-events:auto;cursor:pointer}.cs-bar{height:var(--bar);background:#050608;transition:transform .6s cubic-bezier(.3,.7,.2,1);position:absolute;left:0;right:0}.cs-bar.top{top:0;transform:translateY(-100%)}.cs-bar.bot{bottom:0;transform:translateY(100%)}.cs.on .cs-bar{transform:none}.cs-fade{opacity:0;pointer-events:none;background:#050608;position:absolute;inset:0}body.cinema #hud,body.cinema .kit-loader{opacity:0;pointer-events:none;transition:opacity .3s}.cs-title{left:6vw;top:calc(var(--bar) + 4vh);opacity:0;text-shadow:0 2px 12px #000000d9;max-width:60vw;transition:opacity .9s,transform .9s;position:absolute;transform:translateY(8px)}.cs-title.show{opacity:1;transform:none}.cs-kicker{font-family:var(--caps);letter-spacing:.3em;color:var(--gold-hot);font-size:clamp(12px,1.4vw,16px)}.cs-title h2{font-family:var(--caps);color:#f6ead0;margin:4px 0 2px;font-size:clamp(30px,4.6vw,64px);font-weight:400;line-height:1}.cs-sub{color:#e8d8b8;font-size:clamp(15px,1.7vw,21px);font-style:italic}.cs-cap{left:50%;bottom:calc(var(--bar) * .18);opacity:0;align-items:center;gap:14px;width:min(860px,90vw);transition:opacity .25s,transform .25s;display:flex;position:absolute;transform:translate(-50%,6px)}.cs-cap.show{opacity:1;transform:translate(-50%)}.cs-face{object-fit:cover;background:radial-gradient(circle at 50% 35%,#4a3622,#160d06);border:2px solid #b8873a;border-radius:50%;flex:none;width:clamp(56px,8vh,84px);height:clamp(56px,8vh,84px);box-shadow:0 2px 10px #000}.cs-words{background:linear-gradient(#0c0906db,#0c0906f0);border:1px solid #6a4a20;border-radius:6px;flex:1;min-width:0;padding:10px 18px 12px}.cs-name{font-family:var(--caps);letter-spacing:.12em;color:var(--gold-hot);margin-bottom:2px;font-size:15px}.cs-text{color:#f6ead0;font-size:clamp(17px,1.9vw,22px);line-height:1.35}.cs-cap.narr .cs-words{text-align:center;background:0 0;border:none}.cs-cap.narr .cs-text{color:#f0e2c4;text-shadow:0 2px 10px #000,0 0 3px #000;font-style:italic}.cs-card{text-align:center;opacity:0;text-shadow:0 2px 16px #000;width:90vw;transition:opacity .6s,transform .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-40%)}.cs-card.show{opacity:1;transform:translate(-50%,-50%)}.cs-card h2{font-family:var(--caps);color:var(--gold-hot);margin:0 0 6px;font-size:clamp(32px,5vw,60px);font-weight:400}.cs-hint{right:2.4vw;top:calc(var(--bar) / 2);opacity:0;font-family:var(--caps);color:#a89878;align-items:center;gap:14px;font-size:14px;transition:opacity .4s;display:flex;position:absolute;transform:translateY(-50%)}.cs-hint.show{opacity:1}.cs-skip{pointer-events:none;cursor:pointer;font:inherit;color:#e8d8b8;background:#281e1299;border:1px solid #6a4a20;border-radius:4px;padding:5px 12px}.cs.on .cs-hint.show .cs-skip{pointer-events:auto}.cs-skip:hover{color:#fff0d0;border-color:#b8873a}@media (pointer:coarse){.cs-next{display:none}}@media (max-width:700px){.cs-title{max-width:90vw;left:5vw}.cs-cap{gap:10px}.cs-words{padding:8px 12px 10px}}.recap{text-align:left;background:#fffaeb73;border:1px solid #b89a68;border-radius:4px;margin:10px 0 12px;padding:10px 12px}.recap h3{font-family:var(--caps);letter-spacing:.12em;color:var(--red);margin:0 0 6px;font-size:14px}.rc-row{color:var(--ink);grid-template-columns:1fr 120px 36px;align-items:center;gap:8px;padding:2px 0;font-size:14px;display:grid}.rc-row em{color:var(--red);font-size:12px;font-style:normal}.rc-bar{background:#5a3c1e33;border-radius:4px;height:8px;overflow:hidden}.rc-bar i{background:linear-gradient(#d8483a,#8a1a14);height:100%;display:block}.rc-n{text-align:right;font-family:var(--caps);color:var(--ink-soft)}.rc-row.killer .rc-name{font-weight:700}.rc-tip{color:var(--ink);margin:8px 0 0;font-size:14px;line-height:1.35}@media (max-width:700px) and (pointer:fine){.slots{gap:6px}.slot{width:72px}.slot-name{display:none}.slot.ult{position:absolute;bottom:190px;right:8px}}#hud.auto .slot:not(.ult) .slot-key{display:none}@media (max-width:560px){.cards-screen{gap:10px;padding-top:14px;padding-bottom:14px}.cards-head h2{font-size:28px}.cards{gap:10px}.card{grid-template-columns:62px 1fr;align-items:start;gap:2px 12px;width:min(420px,92vw);min-height:0;padding:12px 14px 10px;display:grid}.card .c-icon{grid-row:1/span 3;width:60px;height:60px;margin:2px 0 0}.card .c-group,.card .c-name,.card .c-desc{grid-column:2}.card .c-group{font-size:11px}.card .c-name{font-size:20px}.card .c-desc{font-size:15px}.card .c-foot{grid-column:1/-1;margin-top:4px;font-size:12px}.card:hover{transform:none}}@media (pointer:coarse){.card .c-key{display:none}}.account-slot{pointer-events:auto;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-slot:empty{display:none}.title-account{justify-content:center;margin-top:18px}.camp-account{flex-wrap:nowrap;justify-content:flex-end;margin-bottom:8px}.acct-note{color:#cbbd9e;font-size:14px;font-style:italic}.acct-name{font-family:var(--caps);letter-spacing:.04em;flex-direction:column;font-size:16px;line-height:1.15;display:flex}.acct-sync{font-family:var(--serif);letter-spacing:0;color:#9a8c70;font-size:12px}.acct-sync.synced{color:#9fc08a}.acct-sync.error{color:var(--red-hot)}.user-btn{display:flex}.cl-rootBox,.cl-modalBackdrop,.cl-userButtonPopoverCard{pointer-events:auto;touch-action:auto;-webkit-user-select:text;user-select:text}@media (max-width:760px){.camp-head-right{flex-direction:column-reverse;align-items:flex-end;gap:6px}.acct-note{display:none}}.acct-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.acct-sync.conflict,.acct-sync.error{color:#9a1f24}
