@font-face{font-family:DWDisplay;src:url(../fonts/DejaVuSans-Bold.woff)format("woff");font-weight:700 900;font-display:swap}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{color:#e6e8d9;background:#101712;font:14px Arial,Helvetica,sans-serif}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible{outline-offset:4px;outline:2px solid #e6d9a0}button svg{width:20px;height:20px}.hidden{display:none!important}#game-shell,#viewport,.vignette,#damage-flash{position:absolute;inset:0}#viewport canvas{outline:0;width:100%;height:100%;display:block}.vignette{z-index:1;pointer-events:none;box-shadow:inset 0 0 160px 20px #07100f6b}#damage-flash{z-index:4;pointer-events:none;opacity:0;background:radial-gradient(#0000 35%,#a43529)}.topbar{z-index:9;pointer-events:none;background:linear-gradient(#0b1312b8,#0000);align-items:center;gap:24px;padding:24px 30px;display:flex;position:absolute;top:0;left:0;right:0}.topbar button{pointer-events:auto}.wordmark{letter-spacing:-2px;font:900 30px DWDisplay,sans-serif}.wordmark span{color:#aab682}.location{border-left:1px solid #c3ccab3b;flex-direction:column;gap:6px;padding-left:22px;display:flex}.location strong{font-size:16px}.eyebrow{letter-spacing:1.8px;color:#bac3a4;font-size:12px;line-height:1.5}.top-right{align-items:center;gap:9px;margin-left:auto;display:flex}#climate-label{color:#c6cbb5;letter-spacing:1px;margin-right:15px;font-size:12px}.icon-button{color:#e1e4cf;background:#152019a8;border:1px solid #8d9b694d;place-items:center;width:39px;height:39px;display:grid}.icon-button:hover{background:#5364459c}.muted{opacity:.45}.overlay{z-index:6;position:absolute;inset:0}.menu{background:linear-gradient(90deg,#111b15f5 0%,#111b15e6 26%,#111b1560 52%,#0000 80%)}.menu-content{width:420px;max-width:88vw;position:absolute;top:50%;left:6%;transform:translateY(-44%)}.chapter{letter-spacing:2px;margin:0 0 18px;font-size:12px}h1{letter-spacing:-5px;transform-origin:0;margin:0;font:900 clamp(68px,7.5vw,120px)/.94 DWDisplay,sans-serif;transform:scaleX(.83)}h1 span{color:#ced4bc}.intro{margin:20px 0;font-size:22px;line-height:1.4}.survivor-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0 12px;display:grid}.survivor-option{text-align:left;color:#cdd3bd;background:#16221bbb;border:1px solid #87946548;border-top:2px solid #6f7e4e;min-width:0;padding:11px}.survivor-option small{white-space:normal;overflow-wrap:anywhere;min-height:2.7em;margin-bottom:5px;font-size:12px;line-height:1.35;display:block}.survivor-option strong{letter-spacing:.35px;overflow-wrap:anywhere;max-width:100%;font-size:16px;line-height:1.25;display:block}.survivor-option[aria-pressed=true]{color:#edf1d6;background:#637b4577;border-color:#aab977}#survivor-description{color:#bfc8ac;min-height:38px;margin:5px 0 17px;font-size:13px;line-height:1.5}.primary{color:#121c0d;letter-spacing:1px;background:#a6b47b;border:1px solid #c1cba1;justify-content:space-between;align-items:center;gap:20px;width:100%;min-height:52px;padding:16px 20px;font-size:14px;font-weight:700;display:flex}.primary:hover:not(:disabled){background:#bfcd96}.primary span{font-size:23px;line-height:.8}.secondary{color:#d8e1c8;letter-spacing:.7px;background:#63774a24;border:1px solid #a0b37b62;width:100%;padding:13px 18px;font-size:13px}.secondary:hover:not(:disabled){background:#63774a55}.text-button{color:#c8d2b8;letter-spacing:1.5px;background:0 0;border:0;padding:17px 0;font-size:12px}.menu-meta{color:#98a887;letter-spacing:1px;border-top:1px solid #9bad7a33;margin-top:0;padding-top:15px;font-size:12px}.scene-caption{text-align:right;color:#d0d3bc;font-size:14px;position:absolute;bottom:10%;right:5%}.scene-caption span{letter-spacing:1px;font-size:12px}.scene-caption p{line-height:1.7}#checkpoint-label{color:#b5c39c;margin:8px 0 14px;font-size:12px;display:block}#checkpoint-label:empty{display:none}#continue:not(.hidden)~#start{color:#c6d1b2;background:0 0;border-color:#8ea46a77;min-height:43px}#hud{z-index:3;pointer-events:none;position:absolute;inset:0}.objective{background:linear-gradient(90deg,#111c15e8,#111c1588);border-left:2px solid #a3b072;width:282px;padding:12px 15px;position:absolute;top:113px;left:30px}.objective h3{margin:6px 0 7px;font-size:18px;font-weight:400}.objective p{color:#bac6aa;margin:0 0 13px;font-size:13px;line-height:1.5}.objective>div{align-items:center;gap:12px;display:flex}.objective b{color:#ded8a4;white-space:nowrap;font-size:18px}.objective div span{color:#a7b895;font-size:12px}.minimap-wrap{background:#101d16d1;border:1px solid #9eaf7e45;width:170px;padding:9px;position:absolute;top:113px;right:30px}.map-label,.map-footer{letter-spacing:.1px;color:#bdc9a8;justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}#minimap{width:150px;height:171px;display:block}.map-footer{margin:8px 0 0;font-size:10px}.survivor{background:#102017d1;border:1px solid #8195663d;width:267px;padding:13px 15px;position:absolute;bottom:70px;left:30px}.survivor-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}#survivor-name{letter-spacing:2px;font-size:14px;font-weight:700}#health-number{color:#f1ebcd;font-size:25px}.vital{align-items:center;gap:10px;margin-top:8px;display:flex}.vital>span{letter-spacing:1px;color:#a9bb94;width:45px;font-size:10px}.meter{background:#889c6933;flex:1;height:8px}.meter i{transform-origin:0;background:#bccb92;height:100%;display:block}.stamina{height:5px}.stamina i{background:#e4cea0}.quick-items{color:#b8c6a2;justify-content:space-between;margin-top:17px;font-size:11px;display:flex}.quick-items b{color:#e7e6c9;margin-left:4px}kbd{color:#d2dbc2;background:#22372399;border:1px solid #adbf884d;padding:3px 5px;font-family:Arial,sans-serif;font-size:11px}.weapon{background:#102017d1;border:1px solid #8195663d;width:310px;padding:14px 17px;position:absolute;bottom:70px;right:30px}.weapon-line{justify-content:space-between;align-items:center;gap:10px;margin-top:7px;display:flex}.weapon-line strong{font-size:18px;font-weight:400}.weapon-line b{font-size:29px;font-weight:400}.weapon-line small{color:#b5c39c;font-size:14px}.reload-track{background:#73896344;height:2px;margin-top:10px}.reload-track i{transform-origin:0;background:#ded2a6;height:100%;display:block;transform:scaleX(0)}#weapon-status{letter-spacing:.6px;text-align:right;color:#b6c49c;margin:7px 0 13px;font-size:11px;display:block}.weapon-slots{color:#a6b695;justify-content:space-between;gap:7px;font-size:10px;display:flex}.weapon-slots>span{align-items:center;gap:5px;display:flex}.weapon-slots .selected{color:#eff0cf}.weapon-slots .selected kbd{background:#829a4e6b;border-color:#adbe76}.controls-strip{white-space:nowrap;color:#b6c4a9;text-shadow:0 1px 4px #000;gap:16px;font-size:12px;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.controls-strip span{align-items:center;gap:6px;display:flex}#interaction{text-align:center;color:#e2e3bc;letter-spacing:.7px;background:#101d13ee;border:1px solid #b6bf8277;min-width:260px;padding:14px 20px;font-size:13px;position:absolute;bottom:132px;left:50%;transform:translate(-50%)}.search-track{background:#80915c33;height:3px;margin-top:10px}.search-track i{transform-origin:0;background:#d7df9d;height:100%;display:block;transform:scaleX(0)}#crosshair{border:1px solid #e1e7caa8;border-radius:50%;width:20px;height:20px;display:none;position:fixed;transform:translate(-50%,-50%)}#crosshair i{background:#e1e7ca;position:absolute;inset:8px}.playing #crosshair{display:block}.playing #viewport{cursor:none}#crosshair.confirmed:after,#crosshair.confirmed:before{content:"";background:#fff4cd;width:26px;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}#crosshair.confirmed:after{transform:translate(-50%,-50%)rotate(-45deg)}#crosshair.headshot:after,#crosshair.headshot:before{background:#ef9b72}.centered{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0b160ecc;justify-content:center;align-items:center;display:flex}.panel{text-align:center;background:#152219f5;border:1px solid #84976566;max-width:470px;max-height:92vh;padding:40px;overflow:auto}.panel h2,dialog h2{letter-spacing:-1px;margin:20px 0;font:700 38px/1.2 DWDisplay,sans-serif}.panel p,dialog p{color:#bdc7ab;font-size:15px;line-height:1.7}.panel .primary{margin:22px 0 10px}.panel .secondary{margin-bottom:5px}.end-stats{justify-content:center;gap:35px;margin:25px 0;display:flex}.end-stats>div{flex-direction:column;gap:8px;display:flex}.end-stats b{color:#d1dcad;font-size:26px}.end-stats span{color:#acbd94;font-size:12px}dialog{color:#e4e9d0;background:#17281b;border:1px solid #84976566;width:92vw;max-width:650px;max-height:90vh;padding:36px}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#07120ed9}.close{position:absolute;top:15px;right:15px}.key-grid{grid-template-columns:1fr 1fr;gap:15px;margin:25px 0;display:grid}.key-grid span{align-items:center;gap:10px;font-size:13px;display:flex}.expedition{z-index:12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#101b15f5;padding:34px 4% 25px;overflow:auto}.screen-heading{border-bottom:1px solid #90a36d40;justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.screen-heading h2{letter-spacing:-.7px;margin:6px 0 0;font:700 29px DWDisplay,sans-serif}.route-layout{grid-template-columns:minmax(0,1fr) 320px;gap:35px;height:calc(100% - 136px);min-height:440px;margin-top:22px;display:grid}.route-map{background:radial-gradient(at 60% 40%,#3b4b302f,#0000 60%),repeating-radial-gradient(at 15% 25%,#0000 0 18px,#79916a14 19px 20px,#0000 21px 31px),#14231a;border:1px solid #8da36b3b;min-height:440px;position:relative;overflow:hidden}.map-grid{background-color:#0000;background-image:linear-gradient(#bbca9e07 1px,#0000 1px),linear-gradient(90deg,#bbca9e07 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:40px 40px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.route-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.route-lines line{stroke:#93a870;stroke-width:.4px;stroke-dasharray:1.2 .8}.route-node{color:#dfe5c4;text-align:center;z-index:2;background:0 0;border:0;min-width:44px;min-height:44px;padding:8px;position:absolute;transform:translate(-50%,-16px)}.route-node b{background:#2d4429;border:1px solid #96ac72;width:34px;height:34px;margin:auto;padding-top:9px;font-size:12px;display:block;box-shadow:0 0 0 5px #17221a99}.route-node span{text-shadow:0 2px 3px #000;white-space:nowrap;background:#132019d9;max-width:140px;padding:3px 5px;font-size:12px;line-height:1.3;position:absolute;top:48px;left:50%;transform:translate(-50%)}.route-node.selected b{color:#162016;background:#acbd7e;border-color:#d4e1a8;box-shadow:0 0 0 6px #a2b77922}.route-node.current b{outline-offset:5px;outline:2px solid #e2d4a3}.route-node.locked{opacity:.45}.route-node.done b:after{content:"✓";color:#dbe7ad;position:absolute;top:0;right:0}.map-terrain{letter-spacing:3px;color:#8ea17245;font-size:12px;position:absolute;transform:rotate(-20deg)}.terrain-a{top:30%;left:30%}.terrain-b{top:65%;right:-12%;transform:rotate(-90deg)}.route-detail{background:#17271bbe;border:1px solid #8ca56a36;flex-direction:column;align-items:flex-start;padding:26px;display:flex;overflow:auto}.route-detail h3{color:#e1e6ca;margin:12px 0 18px;font:700 27px/1.2 DWDisplay,sans-serif}#route-weather{color:#becb9f;letter-spacing:1px;font-size:12px}#route-brief{color:#c2cbae;margin:22px 0;font-size:15px;line-height:1.8}#route-status{letter-spacing:1px;color:#cfdaac;border-top:1px solid #82946344;width:100%;padding-top:20px;font-size:12px}#route-fuel{color:#c4d1a5;font-size:12px}.route-tip{color:#8fa27e;font-size:13px;line-height:1.7}.screen-footer{letter-spacing:1px;color:#a1b78b;font-size:12px}.inventory-layout{grid-template-columns:1fr 1fr .85fr;gap:24px;margin-top:30px;display:grid}.inventory-layout h3{letter-spacing:2px;color:#b5c69b;margin:8px 0 20px;font-size:13px}.equipment-row,.item-row{color:#cfd9bc;text-align:left;background:#1b2d209c;border:1px solid #7b956339;align-items:center;gap:15px;width:100%;min-height:90px;margin-bottom:8px;padding:18px 14px;display:flex}.equipment-row.selected{background:#4c653b77;border-color:#a4b576}.equipment-row>span,.item-row>span{flex:1}.equipment-row strong,.item-row strong{font-size:16px;font-weight:400;display:block}.equipment-row small,.item-row small{color:#a4b88c;margin-top:8px;font-size:12px;line-height:1.4;display:block}.item-row>b{color:#d3dfb2;font-size:21px;font-weight:400}.small-button{color:#11200c;background:#8c9f63;border:1px solid #b0bf90;padding:9px;font-size:12px}.inventory-craft{background:#1c2b2099;border:1px solid #879f6738;padding:20px}.inventory-craft p{color:#adbf97;font-size:14px;line-height:1.7}.inventory-craft h3:not(:first-child){margin-top:35px}#toast{z-index:16;color:#d4dfbd;pointer-events:none;background:#101e14f0;border:1px solid #a2b77c80;border-left:3px solid #b7c98c;width:max-content;max-width:min(600px,90vw);padding:14px 20px;font-size:14px;line-height:1.6;position:absolute;top:105px;left:50%;transform:translate(-50%);box-shadow:0 10px 35px #0005}#loading{z-index:30;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:25px;display:flex;position:absolute;inset:0}.loading-logo{object-fit:contain;width:min(320px,70vw);height:auto}.loading-track{background:#311;width:160px;height:3px}.loading-track i{transform-origin:0;background:#b52323;width:100%;height:100%;transition:transform .18s linear;display:block;transform:scaleX(0)}@keyframes load{to{width:95%}}@media (max-width:1100px){.controls-strip{gap:10px}.controls-strip span{font-size:0}.survivor{width:235px}.weapon{width:280px}.route-layout{grid-template-columns:minmax(0,1fr) 270px;gap:18px}.route-detail{padding:18px}.route-node span{white-space:normal;width:110px;max-width:110px;font-size:11px}.inventory-layout{grid-template-columns:1fr 1fr;gap:12px}.inventory-craft{grid-column:1/-1}.menu-content{width:380px}}@media (max-height:800px){.menu h1{font-size:76px}.intro{margin:13px 0;font-size:18px}.survivor-picker{margin-top:14px}.menu-content{top:52%;transform:translateY(-45%)}.menu-meta{display:none}.chapter{margin-bottom:12px}.primary{min-height:45px;padding:13px 18px}.menu-content .text-button{padding:12px 0}.menu-content #survivor-description{margin-bottom:12px}.screen-heading h2{font-size:25px}.expedition{padding-top:20px}}@media (max-width:700px){.topbar{gap:14px;padding:17px}.wordmark{font-size:25px}.location{padding-left:12px}.location strong{font-size:14px}.location .eyebrow{letter-spacing:.8px;font-size:10px}#climate-label{display:none}.top-right{gap:4px}.icon-button{width:31px;height:34px}.icon-button svg{width:17px;height:17px}.menu-content{width:88%;max-width:400px;left:6%}.menu{background:#101c15d9}.menu h1{font-size:75px}.scene-caption{display:none}.objective{width:220px;padding:9px 12px;top:90px;left:16px}.objective h3{font-size:16px}.objective .eyebrow{font-size:10px}.objective p{font-size:12px}.objective div span{font-size:10px}.minimap-wrap{width:108px;padding:7px;top:230px;right:16px}#minimap{width:92px;height:105px}.map-label{font-size:10px}.map-footer{display:none}.survivor{width:150px;padding:10px;bottom:93px;left:16px}.vital>span{width:38px;font-size:9px}.survivor-heading{margin-bottom:8px}.quick-items{flex-wrap:wrap;gap:10px;margin-top:12px}.weapon{width:calc(100% - 195px);padding:10px;bottom:93px;right:16px}.weapon-line{align-items:flex-start}.weapon-line strong{font-size:14px}.weapon-line b{font-size:22px}.weapon-line small{font-size:12px}.weapon .eyebrow{letter-spacing:.5px;font-size:10px}.weapon-slots>span{font-size:0}#weapon-status{min-height:27px;font-size:10px}.controls-strip{flex-wrap:wrap;justify-content:center;gap:10px;width:94%;bottom:24px}#interaction{width:75%;min-width:0;padding:12px;font-size:12px;bottom:265px}#toast{font-size:13px;top:80px}.expedition{padding:20px 16px}.screen-heading h2{font-size:21px}.route-layout{flex-direction:column;height:auto;min-height:0;display:flex}.route-map{flex:none;height:500px}.route-detail{overflow:visible}.route-detail h3{font-size:24px}.inventory-layout{grid-template-columns:1fr}.inventory-craft{grid-column:auto}.route-node span{width:80px;max-width:80px;font-size:10px}.key-grid{grid-template-columns:1fr}.panel{max-width:92vw;padding:25px}.panel h2{font-size:30px}dialog{padding:30px 23px}}@media (max-height:610px){.menu{overflow:auto}.menu-content{margin:95px 0 35px;position:relative;top:auto;left:6%;transform:none}.menu h1{font-size:62px}.intro{display:none}.objective{max-width:240px}.minimap-wrap{top:93px}.survivor,.weapon{bottom:55px}}.quality-control{justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;font-size:.8rem;display:flex}.quality-control select{color:#dedfc8;background:#252d27;border:1px solid #626b55;padding:.6rem}.weapon-slots{grid-template-columns:repeat(4,1fr);gap:.3rem;display:grid}.weapon-slots .locked{opacity:.28}.equipment-row:disabled{opacity:.45;cursor:default}.location{border-left:0;padding-left:0}.menu .logo-title{margin:0;line-height:0}.menu-logo{width:250px;max-width:65vw;height:auto;display:block}.survivor-option small{white-space:normal}@media (max-height:800px){.menu-logo{width:185px}}@media (max-height:610px){.menu-logo{width:160px}}.route-node b{transform:translateY(-18px)}.route-node span{transform:translateY(-16px)}body[data-game-state=menu] .menu-content{transform:translateY(-48%)}.menu-logo{object-fit:contain;width:325px;max-width:80vw;height:auto}.infection i{background:#c53d35}.vital>span b{margin-left:3px;font-size:10px;font-weight:400}.quick-items{gap:12px}#toast.special{color:#ffe379;background:#292412ee;border-color:#e2b546}#toast{max-width:min(600px,90vw);inset:105px auto auto 50%;transform:translate(-50%)}@media (max-height:800px){.menu-logo{width:240px}}@media (max-height:610px){.menu-logo{width:208px}.menu-content{top:49%}.survivor-picker{margin:10px 0}.survivor-option{padding:8px}.menu .primary{min-height:40px;padding:10px 16px}}#skills-dialog{width:92vw;max-width:850px}#skills-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.skill-card{background:#223326;border:1px solid #71835a;padding:16px}.skill-card strong,.skill-card small{margin-bottom:8px;display:block}.item-actions{flex-direction:column;gap:8px;display:flex}.weapon-slots{flex-wrap:wrap}@media (max-width:700px){#skills-grid{grid-template-columns:1fr}#toast{top:80px}}.difficulty-label{letter-spacing:1.5px;color:#b5bba7;margin:10px 0 5px;font-size:10px;display:block}#difficulty{color:#dfdfc8;background:#18231b;border:1px solid #67705a;width:100%;padding:9px}.menu-content{max-height:94vh;padding-right:10px;overflow:auto}.survivor-option{min-width:0;padding:9px}@media (max-width:400px){.survivor-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-height:610px){body[data-game-state=menu] .menu-content{margin:30px 0;top:auto;transform:none}}#equipped-pack{letter-spacing:.08em;color:#c4cea4;margin:-5px 0 12px;font-size:11px}#weapon-status{overflow-wrap:anywhere}
