@font-face{font-family:Rye;src:url('./fonts/rye.woff2')}@font-face{font-family:Barlow;src:url('./fonts/barlow.woff2');font-weight:400}@font-face{font-family:Barlow;src:url('./fonts/barlow-bold.woff2');font-weight:700}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#5e4834;color:#f5e4c4;font:18px Barlow,Arial,sans-serif;-webkit-user-select:none;user-select:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f4d090;outline-offset:4px}button:disabled{cursor:default}button{border:0;background:none}a{color:inherit;text-decoration:none}[hidden]{display:none!important}#stage{position:fixed;inset:0}#stage canvas{display:block;width:100%;height:100%;touch-action:none}.film-grain,.vignette,#damage,#deadeye-tint{position:fixed;inset:0;pointer-events:none}.film-grain{opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.45' filter='url(%23n)'/%3E%3C/svg%3E");z-index:3}.vignette{background:linear-gradient(90deg,rgba(29,20,13,.76),transparent 65%),linear-gradient(0deg,rgba(33,23,15,.48),transparent 30%,transparent 74%,rgba(36,23,14,.1));z-index:2;transition:opacity .5s}.playing .vignette{background:linear-gradient(0deg,rgba(24,21,16,.9),transparent 30%,transparent 75%,rgba(25,22,17,.35))}#damage{z-index:7;opacity:0;box-shadow:inset 0 0 150px 25px #b32924}.hit{animation:damage .55s ease-out}@keyframes damage{0%{opacity:1}100%{opacity:0}}#deadeye-tint{z-index:2;background:radial-gradient(ellipse,transparent 30%,#a6292066);opacity:0;transition:opacity .3s}.deadeye-active #deadeye-tint{opacity:1}.topbar{position:fixed;top:0;left:0;width:100%;height:76px;padding:0 38px;z-index:20;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8c08726;background:#261f18e6}.wordmark{display:flex;align-items:center;gap:13px;letter-spacing:2.5px;font-size:19px}.wordmark svg{width:26px;height:26px;fill:none;stroke:#cda86a;stroke-width:1.3}.wordmark strong{font-weight:700}.brand-divider{width:1px;height:18px;background:#dabb7d55;margin:0 5px}.brand-sub{font-size:13px;letter-spacing:3px}.header-right{display:flex;gap:12px;align-items:center}.edition{font-size:11px;letter-spacing:2px;color:#c5b294;margin-right:14px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid #b69a6c44;font-size:23px;transition:.2s}.icon-button:hover{background:#ddbd8333;border-color:#dab783}.icon-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.icon-button.muted{color:#aa7256}.icon-button.muted:after{content:'';position:absolute;width:25px;height:1px;background:#aa7256;transform:rotate(-45deg)}#pause{display:none}.menu{position:fixed;inset:76px 0 54px;z-index:5;pointer-events:none}.intro{position:absolute;left:7%;top:8.5%;pointer-events:auto}.eyebrow{font-size:12px;letter-spacing:2.6px;font-weight:700;color:#d3b483;display:flex;gap:12px;align-items:center}.eyebrow>span{width:25px;height:1px;background:#cd9f63}.pretitle{letter-spacing:4.7px;font-size:13px;margin:37px 0 12px}h1{position:relative;font-family:Rye,Georgia,serif;font-weight:400;font-size:clamp(70px,7.5vw,119px);line-height:.97;letter-spacing:-3px;margin:0;color:#f0dab2;text-shadow:1px 3px 0 #715033,0 4px 25px #36241766}.title-star{font-size:20px;position:absolute;left:102%;bottom:18px;color:#c99c61}.intro-line{font-family:Georgia,serif;font-style:italic;font-size:22px;line-height:1.5;color:#d6c6a9;margin:26px 0}.primary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:35px;background:#a33a2e;border:1px solid #ce6850;box-shadow:0 4px 0 #4c241d;padding:17px 23px;min-height:58px;font-size:16px;font-weight:700;letter-spacing:1.5px;transition:background .15s,transform .15s}.primary:hover{background:#bc4635;transform:translateY(-2px)}.primary:active{transform:translateY(2px);box-shadow:none}.primary>span:last-child{font-size:21px;font-weight:400}.intro-meta{display:flex;gap:27px;margin-top:30px;color:#a99373;font-size:10px;letter-spacing:1.8px}.intro-meta b{font-size:16px;color:#dbc299;margin-right:5px;font-weight:400}.hero-caption{position:absolute;right:8%;bottom:7%;padding-left:17px;border-left:1px solid #ceb57a80;color:#e1c69c}.hero-caption>span{font-size:11px;letter-spacing:3px}.hero-caption p{font:italic 20px/1.45 Georgia,serif;margin:10px 0}.hero-caption i{display:block;width:40px;height:1px;background:#c29762;margin-top:17px}.footbar{position:fixed;bottom:0;height:54px;width:100%;padding:0 38px;display:flex;align-items:center;justify-content:space-between;background:#241e18ed;border-top:1px solid #e8c08726;z-index:12;font-size:11px;letter-spacing:2px;color:#b8a183}.live-dot{display:inline-block;width:5px;height:5px;background:#d8a762;border-radius:50%;margin-right:8px}.play-foot{display:none;font-size:11px;letter-spacing:1.2px;align-items:center;gap:8px}.playing .entry-foot{display:none}.playing .play-foot{display:flex}kbd{font:11px Barlow,Arial,sans-serif;border:1px solid #d3b37b60;padding:2px 6px;color:#e6d1aa;letter-spacing:1px;white-space:nowrap}.play-foot i{font-style:normal;color:#76694f;margin:0 4px}.playing .foot-right{font-size:9px;letter-spacing:1.5px}.mission{position:fixed;left:50%;top:105px;width:270px;transform:translateX(-50%);text-align:center;z-index:5;text-shadow:0 2px 8px #382215}.mission-label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px}.act-progress{display:flex;gap:6px;margin-top:9px}.act-progress i{height:2px;background:#dec19333;flex:1}.act-progress i.active{background:#dfb574}.mission h2{font-family:Georgia,serif;font-style:italic;font-size:18px;font-weight:400;margin:9px 0}.score{position:fixed;top:103px;right:42px;z-index:6;text-align:right;text-shadow:0 2px 8px #382215}.score>span{font-size:10px;letter-spacing:2px;display:block}.score>strong{font:34px Rye,Georgia,serif;display:block;margin:6px 0}.score>small{color:#dcb371;font-size:10px;letter-spacing:1.8px}.bottom-hud{position:fixed;bottom:80px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:end;z-index:8;pointer-events:none}.bottom-hud button{pointer-events:auto}.vitals{display:flex;gap:13px;align-items:center;width:280px}.identity-icon{height:58px;width:51px;display:grid;place-items:center;background:#71362c;border:1px solid #d0a66e;font:28px Rye;transform:skew(-7deg)}.vitals>div:last-child{flex:1}.health-row{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;letter-spacing:1.6px}.health-row span{font-size:11px;letter-spacing:0;color:#bca58a}.health-row strong{font-size:22px;color:#f6e4c9}.health-track{height:5px;background:#ceb68c33;margin:6px 0}.health-track i{height:100%;width:100%;background:#e8c598;display:block;transition:width .2s}.health-track i.low{background:#ec6e50}.health-caption{font-size:9px;color:#a7957a;letter-spacing:2px}.ammo{text-align:center;min-width:178px}.weapon-name{letter-spacing:3px;font-size:11px}.ammo-count{display:flex;align-items:center;justify-content:center;gap:8px;height:50px}.ammo-count>strong{font:38px Rye,Georgia}.ammo-count>span{font-size:16px;color:#bc9d75}.ammo-count>#bullets{display:flex;gap:4px;margin-left:12px}#bullets i{display:block;width:5px;height:20px;border:1px solid #b1956d;border-radius:3px 3px 0 0;background:transparent}#bullets i.loaded{background:#e1c498;border-color:#e1c498}.text-button{display:flex;justify-content:center;gap:7px;align-items:center;width:100%;font-size:11px;letter-spacing:2px;padding:3px}.text-button.urgent{color:#ff9372}.abilities{display:flex;gap:12px}.ability{position:relative;display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid #d8b37955;background:#30271ee0;overflow:hidden;min-height:61px}.ability>span:nth-child(2){text-align:left}.ability b{font-size:11px;letter-spacing:1.4px;display:block}.ability small{font-size:10px;display:block;color:#d8b379;margin-top:5px;letter-spacing:1px}.ability .ability-icon,.ability .eye-icon{font-size:28px}.ability kbd{margin-left:8px;align-self:start;font-size:9px;padding:2px 4px}.ability i{position:absolute;left:0;bottom:0;height:2px;background:#f2bd64;pointer-events:none;transition:width .2s}.ability.ready{border-color:#e9b568;box-shadow:0 0 18px #d2964233}.ability.cooldown{opacity:.55}#combat-tip{position:fixed;bottom:188px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:2px;color:#e9d5b6;text-shadow:0 2px 6px #000;z-index:6;white-space:nowrap}#targets,#floaters{position:fixed;inset:0;pointer-events:none;z-index:4}.target-tag{position:absolute;left:0;top:0;text-align:center;font-size:10px;letter-spacing:1.5px;color:#ffcfac;min-width:53px;text-shadow:0 2px 3px #321c15}.target-tag>span{display:block;font-weight:700}.target-tag i{display:block;width:100%;height:3px;background:#412b23b0;margin-top:4px}.target-tag i:after{display:block;content:'';height:100%;width:var(--fill);background:#ec7751}.target-tag small{display:block;font-size:8px;margin-top:3px;letter-spacing:1px}.target-tag.courier{color:#b1f1ce}.target-tag.danger{color:#fff0d2}.target-tag.danger i:after{background:#ff452c}.target-tag.locked{color:#ffe1a5}.target-tag .lock-symbol{font-size:37px;line-height:1}.floater{position:absolute;left:0;top:0;font:20px Rye,Georgia;color:#ffe1a7;text-shadow:0 2px 6px #23170d;white-space:nowrap}.floater:first-letter{color:#fff}#crosshair{display:none;position:fixed;pointer-events:none;width:24px;height:24px;z-index:6;border:1px solid #fff4cfb0;border-radius:50%;transform:translate(-50%,-50%)}#crosshair:before,#crosshair:after{content:'';position:absolute;background:#fff1cf;box-shadow:0 0 3px #442d1e}#crosshair:before{width:2px;height:7px;left:10px;top:-4px}#crosshair:after{height:2px;width:7px;left:-4px;top:10px}#crosshair i{position:absolute;width:3px;height:3px;background:#fff5d8;left:9px;top:9px}#crosshair b{position:absolute;height:2px;width:7px;right:-4px;top:10px;background:#fff1cf}.playing #stage{cursor:none}.playing #crosshair{display:block}#toast{position:fixed;left:42px;top:115px;z-index:8;display:flex;flex-direction:column;gap:5px;opacity:0;transform:translateY(-6px);transition:.2s;pointer-events:none;text-shadow:0 1px 5px #302018}#toast.visible{opacity:1;transform:translateY(0)}#toast strong{color:#edc17e;font-size:12px;letter-spacing:2px}#toast span{font-size:14px;color:#e7d7bd}#banner{position:fixed;top:39%;left:50%;transform:translate(-50%,-50%);z-index:9;text-align:center;pointer-events:none;opacity:0;transition:opacity .4s;text-shadow:0 3px 20px #291b11;background:linear-gradient(90deg,transparent,#2f2117b8,transparent);width:70%;padding:20px}#banner.visible{opacity:1}#banner span{display:block;font-size:12px;letter-spacing:6px;color:#e5b271}#banner strong{display:block;font:34px Rye,Georgia;margin-top:15px}.modal{position:fixed;inset:0;background:#19140edb;backdrop-filter:blur(7px);z-index:30;display:flex;align-items:center;justify-content:center;padding:24px}.modal-card{position:relative;background:#30251c;border:1px solid #b997605c;box-shadow:0 25px 90px #0007;padding:43px;width:min(540px,100%);max-height:calc(100dvh - 48px);overflow:auto}.close{position:absolute;right:12px;top:10px;width:40px;height:40px;font-size:30px;color:#ae9577}.modal h2{font:43px/1.08 Rye,Georgia;color:#ead0a5;letter-spacing:-1px;margin:25px 0 19px}.modal p{font-size:17px;line-height:1.5;color:#cdb99c}.modal .primary{width:100%;margin-top:25px}.secondary{width:100%;margin-top:15px;padding:10px;font-size:12px;letter-spacing:2px;color:#c7af88}.guide{margin-top:22px;display:grid;gap:15px}.guide>div{display:grid;grid-template-columns:106px 1fr;gap:18px;align-items:start}.guide kbd{font-size:10px;padding:6px 5px;text-align:center}.guide p{font-size:14px;margin:0;line-height:1.4}.result-bounty{border-top:1px solid #c49b5a55;border-bottom:1px solid #c49b5a55;padding:23px 0;margin:25px 0;display:flex;align-items:center;justify-content:space-between}.result-bounty span{font-size:12px;letter-spacing:2px}.result-bounty strong{font:36px Rye}.result-stats{display:flex;justify-content:space-between;text-align:center}.result-stats b{display:block;font-size:27px;font-weight:400}.result-stats span{font-size:10px;letter-spacing:2px;color:#ba9e75}.best{font-size:10px;letter-spacing:1px;color:#bca47e;text-align:center;margin-top:22px}.best b{color:#e1c494}#touch-controls{display:none}#loading{position:fixed;inset:0;z-index:50;background:#30251d;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}#loading span{font:42px Rye;color:#dfbd86}#loading small{letter-spacing:5px;font-size:11px;color:#9b7e57}@media(max-height:740px) and (min-width:651px){.intro{top:5%}.pretitle{margin-top:21px}h1{font-size:82px}.intro-line{font-size:18px;margin:18px 0}.intro-meta{margin-top:22px}.hero-caption{bottom:4%}.bottom-hud{bottom:68px}#combat-tip{bottom:166px}}
@media(max-width:1000px){.edition{display:none}.topbar{padding:0 25px}.bottom-hud{left:25px;right:25px}.vitals{width:216px}.abilities{gap:6px}.ability{padding:9px 10px;gap:7px}.ability kbd{display:none}.ammo{min-width:150px}.foot-right{display:none}.footbar{justify-content:center}.hero-caption{right:4%}}
@media(max-width:650px){body{font-size:16px}.topbar{height:62px;padding:0 16px}.wordmark{gap:9px;font-size:16px;letter-spacing:2px}.wordmark svg{width:23px;height:23px}.brand-divider,.brand-sub{display:none}.header-right{gap:7px}.icon-button{width:34px;height:34px}.menu{inset:62px 0 38px}.intro{left:24px;top:31px;right:24px}.eyebrow{font-size:9px;letter-spacing:1.8px;gap:8px}.pretitle{font-size:10px;letter-spacing:3.5px;margin:22px 0 10px}h1{font-size:64px;letter-spacing:-2px;line-height:.98}h1 br{display:none}h1{max-width:280px}.title-star{display:none}.intro-line{font-size:17px;margin:18px 0;line-height:1.4;max-width:190px}.primary{font-size:13px;letter-spacing:1.2px;padding:15px 17px;min-height:51px;gap:20px;width:max-content}.intro-meta{gap:16px;font-size:9px;letter-spacing:1px;margin-top:21px}.intro-meta b{font-size:13px}.hero-caption{right:22px;bottom:26px}.hero-caption>span{font-size:9px;letter-spacing:2px}.hero-caption p{font-size:15px;margin:8px 0}.hero-caption i{margin-top:11px}.footbar{height:38px;padding:0 16px;font-size:8px;letter-spacing:1.5px}.play-foot{display:none!important}.playing .entry-foot{display:block}.playing .entry-foot{font-size:0}.playing .entry-foot:after{content:'KEEP YOUR EYES UP. MAKE EVERY ROUND COUNT.';font-size:8px}.mission{top:83px;width:175px;left:20px;transform:none;text-align:left}.mission-label{font-size:9px;letter-spacing:1px}.mission h2{font-size:15px;margin-top:6px}.score{top:82px;right:20px}.score>span{font-size:8px;letter-spacing:1.1px}.score>strong{font-size:25px;margin:5px 0}.score>small{font-size:8px;letter-spacing:1px}#toast{left:20px;top:143px;right:20px;gap:3px}#toast strong{font-size:10px}#toast span{font-size:12px}.bottom-hud{bottom:49px;left:18px;right:18px;align-items:center}.vitals{width:172px;gap:9px}.identity-icon{width:33px;height:43px;font-size:22px}.health-row{font-size:11px;letter-spacing:1px}.health-row strong{font-size:17px}.health-row span{font-size:9px}.health-caption{font-size:7px;letter-spacing:1px}.health-track{height:4px;margin:4px 0}.ammo{min-width:125px;text-align:right}.ammo-count{height:33px;justify-content:end;gap:5px}.ammo-count>strong{font-size:26px}.ammo-count>span{font-size:12px}.ammo-count>#bullets{gap:3px;margin-left:6px}#bullets i{height:14px;width:4px}.weapon-name{font-size:8px;letter-spacing:2px}.text-button{display:none}.abilities{display:none}#combat-tip{bottom:272px;font-size:8px;letter-spacing:1.2px;max-width:95%;white-space:normal;text-align:center}#touch-controls{display:block;position:fixed;left:18px;right:18px;bottom:124px;z-index:10;pointer-events:none}.dpad{display:grid;grid-template-columns:43px 43px 43px;grid-template-rows:43px 43px 43px;gap:3px;width:max-content;pointer-events:auto}.dpad button{border:1px solid #ead0a44d;background:#30281ed6;font-size:23px;touch-action:none}.dpad button:active,.dpad button.pressed{background:#966038}.dpad button[data-direction=up]{grid-column:2}.dpad button[data-direction=left]{grid-row:2;grid-column:1}.dpad button[data-direction=right]{grid-row:2;grid-column:3}.dpad button[data-direction=down]{grid-row:3;grid-column:2}.dpad>span{grid-column:2;grid-row:2;display:grid;place-items:center;font-size:8px;letter-spacing:1px;color:#b99d79;background:#34251a66}.touch-actions{position:absolute;right:0;bottom:0;display:flex;flex-direction:column;gap:7px;pointer-events:auto}.touch-actions button{width:65px;height:43px;border:1px solid #dfb88080;background:#38281ddc;font-size:24px;line-height:20px;touch-action:none}.touch-actions button small{font-size:7px;display:block;line-height:10px;letter-spacing:1px}.touch-actions button.cooldown{opacity:.45}.touch-actions button.ready{background:#9c502ee0;border-color:#e5bd78}.tap-hint{position:absolute;bottom:48px;left:145px;right:75px;text-align:center;font-size:8px;line-height:1.7;letter-spacing:1.5px;color:#d4bd98}.playing #crosshair{display:none}#banner{top:31%;width:95%;padding:15px}#banner strong{font-size:23px;margin-top:10px}#banner span{font-size:10px;letter-spacing:4px}.modal{padding:15px}.modal-card{padding:30px 24px;max-height:calc(100dvh - 30px)}.modal h2{font-size:34px;margin:24px 0 16px}.modal p{font-size:15px}.modal .eyebrow{font-size:9px;line-height:1.5}.guide{gap:13px}.guide>div{grid-template-columns:84px 1fr;gap:12px}.guide kbd{font-size:9px;padding:5px 2px}.guide p{font-size:12px}.result-bounty{padding:19px 0;margin:22px 0}.result-bounty strong{font-size:29px}.result-bounty span{font-size:10px}.result-stats span{font-size:8px}.result-stats b{font-size:24px}.best{font-size:8px}.target-tag{font-size:8px;min-width:42px;letter-spacing:1px}.target-tag small{font-size:7px}.target-tag .lock-symbol{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.film-grain{display:none}}

.title-gap{display:none}@media(max-width:650px){h1{font-size:49px;max-width:100%;letter-spacing:-2px}.title-gap{display:inline}.intro-line{margin:19px 0}.hero-caption{bottom:22px}.menu .primary{min-height:54px}}
