:root{--ink: #1c130f;--ink-2: #2b1d15;--paper: #efdcbb;--paper-2: #e2c99d;--sand: #d9a96b;--rust: #b4532e;--brass: #dcaa4c;--blood: #b3291f;--wood: #4a2818;--wood-dark: #21130d;--leather: #6d3c23;--felt: #183e31;--muted: #a88e70;--display: "Rye", "Rockwell", Georgia, serif;--body: "Barlow Semi Condensed", "Arial Narrow", "Helvetica Neue", system-ui, sans-serif;--edge-t: max(16px, env(safe-area-inset-top, 0px));--edge-b: max(16px, env(safe-area-inset-bottom, 0px));--edge-l: max(16px, env(safe-area-inset-left, 0px));--edge-r: max(16px, env(safe-area-inset-right, 0px));color-scheme:dark}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--ink);color:var(--paper);font:500 15px/1.4 var(--body);-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0;overflow:hidden;user-select:none;-webkit-user-select:none}#game-canvas{display:block;position:absolute;inset:0;cursor:none;transition:filter .25s;filter:var(--vice-filter, none)}#app.in-menu #game-canvas{cursor:default}#app.deadeye #game-canvas{filter:saturate(.3) sepia(.5) contrast(1.12) brightness(.95)}[hidden]{display:none!important}kbd{display:inline-block;min-width:1.5em;padding:.05em .4em;margin:0 .08em;font:600 .8em/1.5 var(--body);text-align:center;letter-spacing:.02em;color:var(--ink);background:var(--paper-2);border-radius:4px;box-shadow:inset 0 -2px #1c130f47}#hud{position:absolute;inset:0;pointer-events:none;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(20,12,8,.6)}.hud-tl{position:absolute;top:var(--edge-t);left:var(--edge-l);display:grid;gap:10px;width:min(300px,44vw)}.meter{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center}.meter-label{grid-column:1 / -1;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-2)}.meter-label kbd{font-size:10px;letter-spacing:0}.meter-track{position:relative;height:14px;background:#1c130fb8;border:1.5px solid rgba(239,220,187,.7);border-radius:3px;overflow:hidden}.meter-fill,.meter-ghost{position:absolute;inset:0 auto 0 0;width:100%}.meter.hp .meter-ghost{background:#f3e2bf;opacity:.55}.meter.hp .meter-fill{background:linear-gradient(#d84a35,var(--blood))}.meter.hp .meter-fill.low{animation:pulse .8s ease-in-out infinite alternate}.meter-ticks{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr)}.meter-ticks i{border-right:1.5px solid rgba(28,19,15,.75)}.meter-num{font:700 20px/1 var(--body);min-width:2.2em;text-align:right}.meter.de .meter-track{height:8px;grid-column:1 / -1}.meter.de .meter-fill{background:linear-gradient(90deg,#b8792c,var(--brass))}.meter.de.ready .meter-track{border-color:var(--brass);box-shadow:0 0 10px #dcaa4c99}.meter.de.active .meter-fill{background:#ffd27a}.hud-tc{position:absolute;top:var(--edge-t);left:50%;transform:translate(-50%);text-align:center}.camp-name{font:22px/1.1 var(--display);color:var(--paper);white-space:nowrap}.hud-tr{position:absolute;top:var(--edge-t);right:var(--edge-r);text-align:right;display:grid}.bounty-label{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--paper-2)}.bounty{font:30px/1 var(--display);color:var(--brass)}.bandages{margin-top:8px;font-size:14px;color:var(--paper-2)}.reserve-ammo{font-size:15px;color:var(--paper-2)}.hud-br{position:absolute;right:var(--edge-r);bottom:var(--edge-b);display:grid;justify-items:end;gap:8px}.weapon-row{display:flex;align-items:center;gap:14px}.weapon-name{font:26px/1 var(--display)}.slots{display:flex;gap:10px;font-size:13px;font-weight:600;color:var(--muted)}.slots span.on{color:var(--paper)}.slots kbd{font-size:10px;margin-right:4px}.reload-hint{font-weight:700;color:var(--brass);animation:pulse .6s ease-in-out infinite alternate}.ammo{position:relative}.ammo.cylinder{width:52px;height:52px;border-radius:50%;background:radial-gradient(circle,#4a3a30 0 18%,#2c221c 19% 100%);border:2px solid rgba(239,220,187,.75);transform:rotate(var(--cyl, 0deg));transition:transform .12s cubic-bezier(.3,1.6,.5,1)}.ammo.cylinder i{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#f6d488,var(--brass) 55%,#8a6526);box-shadow:inset 0 0 0 1.5px #1c130f99}.ammo.cylinder i.spent{background:#15100c;box-shadow:inset 0 0 0 1.5px #efdcbb59}.ammo.row{display:flex;gap:5px}.ammo.row i{width:9px;height:26px;border-radius:4px 4px 2px 2px;background:linear-gradient(var(--brass) 0 38%,var(--rust) 38%);box-shadow:inset 0 0 0 1px #1c130f80}.ammo.row i.spent{background:#1c130fb3;box-shadow:inset 0 0 0 1.5px #efdcbb59}.interaction-hint{position:absolute;left:50%;bottom:max(135px,18vh);transform:translate(-50%);max-width:min(500px,80vw);padding:8px 16px;border:1px solid #8a6234;border-radius:2px;background:#22160feb;color:var(--paper);font-size:16px;font-weight:600;text-align:center;box-shadow:0 4px 12px #0006}.interaction-hint.dismount-hint:after{content:"";display:block;width:var(--hold-progress);height:2px;margin-top:5px;background:#fff;transition:width 50ms linear}.interaction-hint.door-entry{bottom:auto;padding:8px 18px;border:0;background:transparent;color:#fff;font-family:Rye,Georgia,serif;font-size:clamp(18px,2vw,26px);font-weight:400;letter-spacing:.025em;text-shadow:0 2px 2px #1a0f09,0 0 7px #1a0f09,0 0 14px #1a0f09;box-shadow:none;clip-path:none}.npc-talk-hint{position:fixed;z-index:10;top:calc(50% + 24px);right:0;left:0;height:20px;contain:layout paint;color:#fff;font-size:14px;font-weight:600;line-height:20px;text-align:center;white-space:nowrap;text-shadow:0 2px 2px #1a0f09,0 0 6px #1a0f09;pointer-events:none}.toast{position:absolute;left:50%;top:26%;transform:translate(-50%,8px);font:30px/1.1 var(--display);color:var(--paper);text-align:center;opacity:0;transition:opacity .25s,transform .25s;max-width:calc(100% - 32px)}.toast.show{opacity:1;transform:translate(-50%)}#reticle{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:3}#app.in-menu #reticle{display:none}.ret-dot{position:absolute;width:4px;height:4px;margin:-2px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 1.5px #1c130fb3}.ret-ring{position:absolute;width:28px;height:28px;transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid rgba(239,220,187,.85);box-shadow:0 0 0 1px #1c130f73;transition:width .08s,height .08s}.ret-ring i{position:absolute;background:var(--paper)}.ret-ring i:nth-child(1),.ret-ring i:nth-child(2){width:1.5px;height:6px;left:calc(50% - .75px)}.ret-ring i:nth-child(1){top:-7px}.ret-ring i:nth-child(2){bottom:-7px}.ret-ring i:nth-child(3),.ret-ring i:nth-child(4){height:1.5px;width:6px;top:calc(50% - .75px)}.ret-ring i:nth-child(3){left:-7px}.ret-ring i:nth-child(4){right:-7px}#reticle.empty .ret-ring{border-color:var(--blood)}#reticle.town-reticle .ret-ring,#reticle.town-reticle .ret-hit,#reticle.town-reticle .ret-reload-svg{display:none}#reticle.town-reticle .ret-dot{width:6px;height:6px;margin:-3px;background:#fff;box-shadow:0 0 0 1px #18100be6,0 0 7px #fffc}.ret-hit{position:absolute;width:0;height:0;opacity:0}.ret-hit i{position:absolute;width:2px;height:9px;left:-1px;top:-4.5px;background:#fff;box-shadow:0 0 2px #0009}.ret-hit i:nth-child(1){transform:rotate(45deg) translateY(-11px)}.ret-hit i:nth-child(2){transform:rotate(135deg) translateY(-11px)}.ret-hit i:nth-child(3){transform:rotate(225deg) translateY(-11px)}.ret-hit i:nth-child(4){transform:rotate(315deg) translateY(-11px)}.ret-hit.show{animation:hit .22s ease-out}.ret-hit.kill i{background:#ff5a3c;height:12px}.ret-reload-svg{position:absolute;width:50px;height:50px;left:-25px;top:-25px;transform:rotate(-90deg);overflow:visible}#ret-reload{fill:none;stroke:var(--brass);stroke-width:3;stroke-linecap:round;transition:opacity .1s}#vignette{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(150,18,10,.75) 100%)}#app.deadeye #vignette{opacity:1!important;background:radial-gradient(ellipse at center,transparent 40%,rgba(90,50,10,.6) 100%)}#hurt-dir{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;transform:rotate(var(--angle, 0deg));opacity:0}#hurt-dir:before{content:"";position:absolute;left:-38px;top:-170px;width:76px;height:22px;border-radius:50%;background:radial-gradient(ellipse,rgba(230,40,20,.9),transparent 70%)}#hurt-dir.show{animation:fade .6s ease-out}.screen{position:absolute;inset:0;display:grid;place-items:center;box-sizing:border-box;padding:var(--edge-t) var(--edge-r) var(--edge-b) var(--edge-l);background:#0c0806b8;overflow-y:auto;z-index:5}.panel,.card{position:relative;box-sizing:border-box;width:min(560px,100%);padding:26px 28px 24px;color:var(--paper);background:linear-gradient(#2e1d14,#22160f);border:1px solid #8a6234;box-shadow:inset 0 0 0 1px #140c08,0 18px 48px #0009}.card.small{width:min(440px,100%)}.card h1{margin:4px 0 10px;font:clamp(42px,9vw,72px)/.95 var(--display)}.card h1 span{color:#d0864a}.card h2,.panel h2{margin:2px 0 12px;font:clamp(24px,4vw,32px)/1.1 var(--display);color:#f2dfbd}.lede{margin:0 0 18px;font-size:16px;line-height:1.45;max-width:54ch;color:#e3d1b1}.rule{height:1px;margin:0 0 14px;background:#6f4d2a}.actions{display:flex;flex-wrap:wrap;gap:8px}.sound-settings{margin:0 0 18px;padding:10px 14px 6px;border:1px solid #6e4c2b;border-radius:2px}.sound-settings legend{padding:0 6px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-2)}.sound-settings label{display:grid;grid-template-columns:6.5em 1fr;align-items:center;gap:10px;padding:4px 0;font-size:14px;color:#e3d1b1}.sound-settings input[type=range]{width:100%;accent-color:#c8873e;cursor:pointer}.btn{appearance:none;display:flex;align-items:center;gap:10px;border:1px solid #6e4c2b;border-radius:2px;background:#3a2519;color:var(--paper);font:600 16px/1.2 var(--body);letter-spacing:.02em;padding:11px 16px;text-align:left;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.btn:hover{background:#4a3020;border-color:#c9a15c}.btn:focus-visible{outline:2px solid #f0c978;outline-offset:2px}.btn:disabled{cursor:default;opacity:.5}.btn:disabled:hover{background:#3a2519;border-color:#6e4c2b}.btn.primary{background:#8a3a22;border-color:#c4834a}.btn.primary:hover{background:#9c4428;border-color:#f0c978}.stack{flex-direction:column}.stack .btn{width:100%}.continue-info{margin:10px 0 0;font-size:14px;color:#cdb894;font-variant-numeric:tabular-nums}.fine{margin:14px 0 0;font-size:13px;color:#a48b69}.fine kbd{background:#c9ad7d;color:#21130d;box-shadow:none}.mobile-note{display:none}.screen.title{place-items:stretch;background:linear-gradient(#302032,#86402f 38%,#dd8148 62%,#edbd7b 76%,#b37647 76.2%,#714325)}.screen.title:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(18,9,7,.58),transparent 58%),linear-gradient(0deg,rgba(18,9,7,.68),transparent 36%)}.dusk{position:absolute;inset:0;pointer-events:none;overflow:hidden}.sun{position:absolute;left:68%;top:48%;width:22vmin;height:22vmin;border-radius:50%;background:#ffe0a0;box-shadow:0 0 80px 30px #ffc87873;transform:translate(-50%,-50%)}.mesa{position:absolute;bottom:23.8%;background:#5c2f26}.mesa.m1{left:-4%;width:34%;height:15%;clip-path:polygon(0 100%,6% 22%,18% 18%,22% 0,64% 0,70% 30%,88% 34%,100% 100%)}.mesa.m2{left:52%;width:30%;height:9%;background:#6e382a;clip-path:polygon(0 100%,12% 10%,70% 0,82% 40%,100% 100%)}.mesa.m3{left:80%;width:26%;height:19%;background:#4d2620;clip-path:polygon(0 100%,10% 30%,30% 26%,36% 0,80% 4%,92% 50%,100% 100%)}.title-card{z-index:1;align-self:center;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:26px clamp(28px,7vw,90px);width:min(1120px,100%);margin:auto;padding:clamp(18px,4vw,48px);background:none;border:0;box-shadow:none}.title-brand{align-self:end;max-width:640px;text-shadow:0 3px 1px #2a140e,0 6px 22px rgba(0,0,0,.6)}.title-brand h1{margin:0;font-size:clamp(64px,9vw,120px);color:#f5dfb9;letter-spacing:-.03em}.title-menu{align-self:center}.menu-label{margin:0 0 12px}.title-guide{grid-column:1 / -1;width:100%;padding:16px 20px}.guide-title{margin:0 0 10px;font:20px/1 var(--display);color:#f2dfbd}.controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 22px;margin:0}.controls div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.controls dt{white-space:nowrap}.controls dd{margin:0;color:#e3d1b1;font-weight:600;text-align:right}.controls kbd{background:#d9bd8b;color:#24150e;box-shadow:none}.title-guide .fine{margin-top:10px}.interaction-screen{padding:0;overflow:hidden}.choice-key{flex:none;display:grid;place-items:center;min-width:22px;height:22px;padding:0 4px;box-sizing:border-box;border:1px solid rgba(239,220,187,.65);border-radius:50%;color:#f5e4c5;background:#190f0ab8;font-size:11px;font-weight:700}.choice-text{display:grid;min-width:0}.choice-name{display:block}.choice-price{display:block;color:#805125;font:20px/1 var(--display)}.choice-detail{display:block;margin-top:4px;font-size:13px;font-weight:600;line-height:1.25}.choice-art{flex:none;display:grid;place-items:center;width:56px;height:42px}.choice-art svg{width:52px;height:38px}#screen-interaction[data-mode=talk]{place-items:stretch;background:linear-gradient(0deg,rgba(7,5,4,.72),transparent 43%)}#screen-interaction[data-mode=talk] .interaction-card{pointer-events:none;width:100%;height:100%;max-height:none;padding:0;overflow:visible;background:none;border:0;box-shadow:none}#screen-interaction[data-mode=talk] .dialog-copy{position:absolute;left:max(28px,var(--edge-l));bottom:max(34px,var(--edge-b));width:min(560px,calc(100vw - 470px));padding:26px 28px 24px;box-sizing:border-box;background:linear-gradient(90deg,#120b08e0,#120b0800);text-shadow:0 2px 3px #160d08}#screen-interaction[data-mode=talk] .dialog-copy h2{margin:0 0 8px;color:#f5ddb3;font:clamp(26px,3vw,38px)/1 var(--display)}#screen-interaction[data-mode=talk] #interaction-text{margin:0;max-width:46ch;color:#fff2da;font-size:clamp(17px,1.6vw,20px);line-height:1.45;white-space:pre-line}#screen-interaction[data-mode=talk] .npc-speech{display:block;font-style:italic;quotes:"“" "”" "‘" "’"}#screen-interaction[data-mode=talk] .conversation-detail{margin:13px 0 0;padding-left:12px;border-left:2px solid rgba(213,165,94,.72);color:#d7c4a4;font-size:.86em;font-style:normal;line-height:1.35;white-space:pre-line}#interaction-text .interaction-copy{margin:0;white-space:pre-line}#screen-interaction[data-mode=talk] .dialog-menu{pointer-events:auto;position:absolute;right:max(28px,var(--edge-r));bottom:max(34px,var(--edge-b));width:min(390px,38vw);max-height:62vh;overflow-y:auto;padding:12px 0}#screen-interaction[data-mode=talk] .interaction-actions{display:grid;gap:2px}#screen-interaction[data-mode=talk] .interaction-actions .btn{justify-content:flex-start;width:100%;min-height:42px;padding:7px 4px;border:0;background:transparent;box-shadow:none;color:#ddcdb2;font-size:17px}#screen-interaction[data-mode=talk] .interaction-actions .btn:hover,#screen-interaction[data-mode=talk] .interaction-actions .btn:focus-visible{color:#fff;background:linear-gradient(90deg,rgba(104,65,35,.7),transparent);outline:0;text-shadow:0 1px 3px #130b07}#screen-interaction[data-mode=talk] .interaction-actions .btn:disabled{color:#8d7a63;background:transparent}#screen-interaction[data-mode=talk] .interaction-close{margin-top:8px;color:#ad9c84;font-size:14px}#screen-interaction[data-mode=shop]{place-items:center;padding:clamp(18px,4vh,42px) clamp(18px,4vw,54px);background:radial-gradient(ellipse at center,#0906042e 20%,#090604b3)}#screen-interaction[data-mode=shop] .interaction-card{pointer-events:auto;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1180px,100%);max-height:88vh;padding:0;overflow:hidden;color:#291a11;background:linear-gradient(90deg,transparent 49.7%,rgba(96,62,31,.18) 50%,transparent 50.3%),repeating-linear-gradient(0deg,rgba(111,75,38,.035) 0 1px,transparent 1px 7px),linear-gradient(105deg,#dcc18e,#efd9ab 48%,#d2af78);border:8px solid #4b2b19;border-radius:3px;box-shadow:inset 0 0 0 2px #9d7545,0 22px 60px #000000ad;transform:rotate(-.25deg)}#screen-interaction[data-mode=shop] .dialog-copy{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 20px;padding:18px 26px 14px;border-bottom:2px solid rgba(91,57,29,.4)}#screen-interaction[data-mode=shop] .dialog-copy h2{grid-column:1;margin:0;color:#321e12;font:clamp(28px,3vw,40px)/1 var(--display)}#screen-interaction[data-mode=shop] #interaction-text{grid-column:2;margin:0;max-width:34ch;color:#51341f;font-size:15px;text-align:right;white-space:pre-line}#screen-interaction[data-mode=shop] .dialog-menu{min-height:0;padding:18px 22px 20px;overflow-y:auto}#screen-interaction[data-mode=shop] .interaction-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px}#screen-interaction[data-mode=shop] .shop-choice{position:relative;display:grid;grid-template-rows:72px auto;justify-items:center;align-content:start;min-height:156px;padding:12px 10px 10px;border:1px solid rgba(91,57,29,.42);border-radius:0;color:#2d1c12;background:#fff7dc38;box-shadow:none;text-align:center}#screen-interaction[data-mode=shop] .shop-choice:hover,#screen-interaction[data-mode=shop] .shop-choice:focus-visible{border-color:#7e3d22;background:#fff7dc99;outline:2px solid #7e3d22;outline-offset:-3px}#screen-interaction[data-mode=shop] .shop-choice:disabled{color:#6e5b48;background:#553f2814;opacity:.72}#screen-interaction[data-mode=shop] .shop-choice .choice-key{position:absolute;top:7px;left:7px;border-color:#6f4829;color:#ead7ad;background:#54321e}#screen-interaction[data-mode=shop] .shop-choice .choice-art{width:102px;height:68px}#screen-interaction[data-mode=shop] .shop-choice .choice-art svg{width:98px;height:64px}#screen-interaction[data-mode=shop] .shop-choice .choice-text{align-content:start;justify-items:center}#screen-interaction[data-mode=shop] .shop-choice .choice-name{font-size:16px;font-weight:800}#screen-interaction[data-mode=shop] .shop-choice .choice-detail{color:#60462f}#screen-interaction[data-mode=shop] .shop-choice:disabled .choice-detail{color:#8b3829}#screen-interaction[data-mode=shop] .shop-back,#screen-interaction[data-mode=shop] .interaction-close{grid-column:auto;justify-content:center;min-height:36px;padding:7px 10px;border:0;color:#51341f;background:transparent;box-shadow:none;font-size:14px}#screen-interaction[data-mode=shop] .shop-back:hover,#screen-interaction[data-mode=shop] .interaction-close:hover{color:#24150e;background:#5b391d1a}#app.talk-open #hud,#app.shop-open #hud{opacity:0}#screen-interaction[data-mode=blackjack]{place-items:stretch;padding:0;background:radial-gradient(ellipse at 50% 62%,transparent 20%,rgba(7,4,3,.24) 78%,rgba(7,4,3,.66));overflow:hidden}#screen-interaction[data-mode=blackjack] .interaction-card{width:min(980px,100%);height:100%;max-height:none;margin:auto;overflow:visible;background:none;border:0;box-shadow:none}#screen-interaction[data-mode=blackjack] .dialog-copy{display:grid;align-content:center;height:100%;padding:42px 28px 126px;box-sizing:border-box;overflow:visible}#screen-interaction[data-mode=blackjack] .dialog-copy>h2{display:none}#screen-interaction[data-mode=blackjack] #interaction-text{display:grid;place-items:center;max-width:none;height:100%}#screen-interaction[data-mode=blackjack] .dialog-menu{position:absolute;z-index:3;inset:auto 24px 20px;padding:0;overflow:visible;border:0;background:none}#screen-interaction[data-mode=blackjack] .interaction-actions{display:flex;align-items:center;justify-content:center;gap:10px}#screen-interaction[data-mode=blackjack] .table-action{justify-content:center;width:auto;min-width:112px;padding:10px 18px;border-color:#b18145;border-radius:4px;background:linear-gradient(#54301e,#2d1a12);box-shadow:0 5px 12px #0000006b;color:#f6e4bf;font:700 16px/1 var(--body);text-align:center;text-transform:uppercase}#screen-interaction[data-mode=blackjack] .table-action:hover{background:linear-gradient(#6b3d26,#382016)}#screen-interaction[data-mode=blackjack] .table-action:disabled{opacity:.28}#screen-interaction[data-mode=blackjack] .interaction-close{position:fixed;top:18px;right:18px;width:auto;min-width:0;padding:6px 10px;border:0;background:#180e0ab3;box-shadow:none;color:#d9c6a6;font-size:13px;text-transform:none}#screen-interaction[data-mode=blackjack][data-phase=idle] .bet-chip,#screen-interaction[data-mode=blackjack][data-phase=done] .bet-chip{width:74px;min-width:74px;height:74px;padding:0;border:7px dashed #ead8ae;border-radius:50%;background:radial-gradient(circle,#b94632 0 48%,#7c231d 49% 63%,#d8bc7c 64% 70%,#8f2e24 71%);box-shadow:inset 0 0 0 3px #281712,0 5px 12px #0000007a;color:#fff1d4;font:22px/1 var(--display);text-shadow:0 2px #411a13}.blackjack-board{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr);width:min(820px,calc(100vw - 48px));height:min(56vh,500px);min-height:360px;overflow:hidden;padding:24px 42px 34px;box-sizing:border-box;border:12px solid #4b2819;border-radius:48% 48% 18% 18%/36% 36% 14% 14%;background:radial-gradient(ellipse at 50% 42%,transparent 0 42%,rgba(236,205,132,.22) 42.5% 43%,transparent 43.5%),radial-gradient(ellipse at 50% 115%,#246149,#133d2e 68%,#0d2d22);box-shadow:inset 0 0 0 5px #9a6a38,inset 0 0 45px #00000080,0 18px 38px #00000080;text-align:center}.blackjack-table-top{position:relative;display:flex;justify-content:center;align-items:center;color:#e8d4a7;font-size:14px}.blackjack-table-top span{position:absolute;top:40px;z-index:1;padding:4px 9px;border-radius:12px;background:#081c1594}.blackjack-table-top span:first-child{left:26px}.blackjack-table-top span:last-child{right:26px}.blackjack-table-top strong{color:#eed39ab3;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.blackjack-table-top b{color:#fff0c7;font-size:18px}.bet-prompt{align-self:center;grid-row:2 / 4;margin:0;color:#e8d4a7;font:clamp(24px,4vw,36px)/1 var(--display);text-shadow:0 2px #091d16}.hand-row{display:grid;grid-template-columns:78px minmax(0,1fr) 42px;align-items:center;gap:14px;min-height:94px;margin:0;padding:8px 10px;box-sizing:border-box}.dealer-hand{align-self:end}.player-hands{align-self:start;display:grid;grid-template-columns:1fr}.player-hands.split-hands{grid-template-columns:1fr 1fr;gap:12px}.split-hands .hand-row{grid-template-columns:60px minmax(0,1fr) 36px;gap:6px;opacity:.62}.split-hands .active-hand{opacity:1;border-bottom:2px solid #e1bc6d}.hand-owner{color:#e2c892;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-align:left}.playing-cards{display:flex;justify-content:center;gap:7px;min-width:0}.playing-card{position:relative;display:grid;place-items:center;width:46px;height:64px;flex:none;color:#21170f;background:linear-gradient(135deg,#fff8e8,#e5d5b5);border:1px solid #b49b73;border-radius:4px;font-style:normal;box-shadow:0 4px 5px #040c097a;transform-origin:100% 0}.playing-card b{position:absolute;top:5px;left:6px;font:18px/1 var(--display)}.playing-card span{font:24px/1 Georgia,serif}.playing-card.red-card{color:#a52d25}.playing-card.hidden-card{background:repeating-linear-gradient(45deg,#65281e 0 5px,#c58c4c 5px 7px);box-shadow:inset 0 0 0 4px #e3ca94,0 4px 5px #040c097a}.playing-card.deal-card{animation:deal-card .28s cubic-bezier(.2,.8,.3,1) both}.playing-card.dealer-hole-reveal{animation:dealer-hole-flip .64s ease-in-out both;animation-delay:var(--dealer-delay)}.playing-card.dealer-hole-reveal:after{content:"";position:absolute;inset:0;border-radius:4px;background:repeating-linear-gradient(45deg,#65281e 0 5px,#c58c4c 5px 7px);box-shadow:inset 0 0 0 4px #e3ca94;animation:dealer-hide-back .64s step-end both;animation-delay:var(--dealer-delay)}.playing-card.dealer-draw{animation:dealer-draw-card .52s cubic-bezier(.18,.78,.24,1.15) both;animation-delay:var(--dealer-delay)}.dealer-score-reveal{animation:dealer-score-in .3s ease-out both;animation-delay:var(--dealer-result-delay)}.hand-score{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#f1dca9;background:#0d251c;border:1px solid #a77a42;font-size:17px;font-variant-numeric:tabular-nums}.blackjack-result{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-2deg);min-width:260px;padding:14px 24px;border:3px double #f1d596;background:#1c120bed;color:#f6dfa9;font:clamp(28px,5vw,48px)/1 var(--display);text-shadow:0 3px #3a1a12;box-shadow:0 10px 30px #000000a6}.blackjack-result.result-win,.blackjack-result.result-blackjack{color:#ffe58e}.blackjack-result.result-lose{color:#e4846e;border-color:#b6533f}.blackjack-result.result-push,.blackjack-result.result-mixed{color:#d7d2bd}.blackjack-result.dealer-result-reveal{animation:dealer-result-in .34s cubic-bezier(.2,.8,.25,1.1) both;animation-delay:var(--dealer-result-delay)}.dealer-resolving .bet-chip{opacity:0!important;transform:scale(.72);pointer-events:none}.table-notice{position:absolute;left:50%;bottom:18px;transform:translate(-50%);margin:0;color:#f1c987;font-weight:700}@keyframes deal-card{0%{opacity:0;transform:translate(90px,-70px) rotate(16deg) scale(.7)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}@keyframes dealer-hole-flip{0%{transform:rotateY(0)}49%{transform:rotateY(90deg)}50%{transform:rotateY(-90deg)}to{transform:rotateY(0)}}@keyframes dealer-hide-back{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes dealer-draw-card{0%{opacity:0;transform:translate(120px,-76px) rotate(15deg) scale(.74)}72%{opacity:1;transform:translate(-4px,2px) rotate(-2deg) scale(1.03)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}@keyframes dealer-score-in{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes dealer-result-in{0%{opacity:0;transform:translate(-50%,-42%) rotate(-5deg) scale(.78)}to{opacity:1;transform:translate(-50%,-50%) rotate(-2deg) scale(1)}}#app.blackjack-open #hud{opacity:0}.card.map-card{width:min(760px,calc(100% - 28px));margin-block:24px}.map-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:4px 16px;margin-bottom:12px}.map-head h2{margin:2px 0 0}.map-sub{margin:0;color:#cdb894;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.map-wrap{display:grid;place-items:center;min-width:0;padding:6px;background:#e6d0a6;border:1px solid #5a3d22}#map-canvas{display:block;max-width:100%}#map-canvas{cursor:crosshair}.map-card .actions{justify-content:center}.map-card .fine{text-align:center}.dead h2{color:#e0806a}.ledger{display:grid;gap:0;margin:0 0 20px;font-variant-numeric:tabular-nums}.ledger .row{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-bottom:1px solid #4a3220;font-size:16px}.ledger .row b{font-weight:700}.loading{display:flex;align-items:center;gap:14px;font:26px/1 var(--display);color:var(--paper)}.loading i{width:18px;height:18px;border:3px solid var(--brass);border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.notes{position:absolute;left:50%;top:92px;transform:translate(-50%);display:grid;gap:6px;justify-items:center;width:min(560px,80vw);pointer-events:none}.note{padding:7px 14px;border:1px solid #8a6234;border-radius:2px;background:#22160fe6;color:var(--paper);font-size:15px;font-weight:600;text-align:center;transition:opacity .5s}.note.gone{opacity:0}.tracker{position:absolute;left:var(--edge-l);top:calc(var(--edge-t) + 96px);width:min(270px,40vw);display:grid;gap:6px;font-size:13px;color:#e3d1b1;text-shadow:0 1px 2px rgba(20,12,8,.8)}.tracker b{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#c9a15c}.choice-detail{display:block;margin-top:3px;font-size:13px;font-weight:500;color:#bfa983}.btn:disabled .choice-detail{color:#e0806a}#reticle.dry .ret-ring{animation:dry .25s ease-out}.ret-hit.head i{background:#ffd56a;height:12px}.card.journal-card{width:min(820px,calc(100% - 28px));max-height:calc(100vh - 40px);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}.journal-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:12px}.journal-body{overflow-y:auto;display:grid;gap:10px;margin-bottom:14px;padding-right:4px}.job{padding:12px 14px;border:1px solid #5a3d22;background:#0000002e}.job h3{margin:0 0 6px;font:20px/1.15 var(--display);color:#f2dfbd}.job-step{margin:0 0 6px;font-weight:700;color:#f0c978}.job-complete .job-step{color:#9fd08a}.job-failed,.job-turnedIn{opacity:.6}.job-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:4px 14px;margin:0;font-size:14px}.job-facts dt{color:#c9a15c;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.job-facts dd{margin:0}.supplies{display:grid;gap:4px}.supply{display:grid;grid-template-columns:minmax(140px,.6fr) 1fr auto;gap:10px;align-items:center;padding:7px 4px;border-bottom:1px solid #4a3220}.supply-name{font-weight:700}.supply-value{color:#cdb894;font-size:14px}.supply .btn{padding:6px 12px}@keyframes dry{0%{transform:translate(-50%,-50%) scale(1)}40%{transform:translate(-50%,-50%) scale(.75)}to{transform:translate(-50%,-50%) scale(1)}}@keyframes pulse{0%{opacity:1}to{opacity:.55}}@keyframes hit{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.25)}}@keyframes fade{0%{opacity:1}to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.title-card{grid-template-columns:minmax(0,1fr) minmax(260px,310px);gap:20px;padding:26px 22px}.title-brand h1{font-size:clamp(58px,10vw,86px)}.controls{grid-template-columns:repeat(3,minmax(0,1fr))}.interaction-screen.shop-dialogue .interaction-card{grid-template-columns:minmax(0,1fr)}.interaction-screen.shop-dialogue .dialog-menu{grid-column:1;grid-row:auto;border-left:0;border-top:1px solid #5a3d22}.interaction-screen.shop-dialogue .interaction-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.screen.title{place-items:start stretch}.title-card{grid-template-columns:minmax(0,1fr);padding:30px 14px}.title-brand{align-self:start}.title-brand h1{font-size:clamp(50px,16vw,76px)}.controls{grid-template-columns:repeat(2,minmax(0,1fr));font-size:13px}.title-guide .fine{display:none}.interaction-screen{padding-inline:10px;padding-bottom:10px}.interaction-card,.interaction-screen.shop-dialogue .interaction-card{width:100%}.interaction-actions,.interaction-screen.shop-dialogue .interaction-actions{grid-template-columns:minmax(0,1fr)}#screen-interaction[data-mode=talk] .dialog-copy{left:10px;right:10px;bottom:39vh;width:auto;padding:18px 12px}#screen-interaction[data-mode=talk] .dialog-menu{left:18px;right:18px;bottom:16px;width:auto;max-height:38vh}#screen-interaction[data-mode=shop]{padding:8px}#screen-interaction[data-mode=shop] .interaction-card{max-height:calc(100vh - 16px);border-width:5px;transform:none}#screen-interaction[data-mode=shop] .dialog-copy{padding:13px 14px 10px}#screen-interaction[data-mode=shop] .dialog-copy h2{font-size:25px}#screen-interaction[data-mode=shop] .interaction-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.hand-row{grid-template-columns:52px 1fr 36px;gap:7px}.playing-card{width:30px;height:42px;font-size:16px}.card.map-card{width:100%;padding:20px 14px}.camp-name{font-size:17px}.hud-tc{top:calc(var(--edge-t) + 70px)}.bounty{font-size:24px}}@media(hover:none)and (pointer:coarse){.mobile-note{display:block;color:var(--blood);font-weight:700}}@media(prefers-reduced-motion:reduce){.ammo.cylinder,.toast,#game-canvas{transition:none}.loading i,.reload-hint,.meter.hp .meter-fill.low{animation:none}}.online-join{display:grid;gap:10px}.join-who{margin:0;font-size:17px;color:#f2dfbd}.online-join .guide-title,.online-join .fine{margin:0}.online-name{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px}.online-name span{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:12px;opacity:.8}.online-name input{font:inherit;color:#f3e6cc;background:#140e0ab8;border:1px solid rgba(233,214,178,.35);border-radius:6px;padding:8px 10px;min-width:0;width:100%;box-sizing:border-box}.online-name input:focus{outline:2px solid #d9a35a;outline-offset:1px}.online-status{min-height:1.2em;margin:0;color:#f0c27a;font-size:14px}.online-roster{position:absolute;top:104px;right:18px;text-align:right;font-size:13px;color:#f3e6cc;text-shadow:0 1px 2px #000;pointer-events:none;max-width:260px}.online-roster:empty{display:none}.roster-names{opacity:.75;font-size:12px;margin-top:2px}.duel-banner{position:absolute;top:18%;left:50%;transform:translate(-50%);text-align:center;padding:12px 20px;background:#18100bd1;border:1px solid rgba(233,214,178,.35);border-radius:8px;color:#f3e6cc;font-size:16px;max-width:calc(100vw - 32px);pointer-events:none}.duel-count{font-family:Rye,serif;font-size:54px;line-height:1.1;margin-top:6px;color:#f0c27a}.duel-count.draw{color:#ff8a5c}.duel-offer{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));padding:16px;display:grid;gap:10px;pointer-events:auto;z-index:5}.duel-offer h3{margin:0;font-family:Rye,serif;font-weight:400}.duel-offer .fine{margin:0}.duel-offer .actions{display:flex;flex-wrap:wrap;gap:6px}#rider-tags{position:absolute;inset:0;pointer-events:none;overflow:hidden}.rider-tag{position:absolute;left:0;top:0;font-size:13px;font-weight:600;color:#f3e6cc;white-space:nowrap;text-shadow:0 1px 2px #000,0 0 4px #000;will-change:transform}.boss-bar{position:absolute;top:54px;left:50%;transform:translate(-50%);width:min(520px,calc(100vw - 32px));text-align:center;color:#f3e6cc}.boss-name{font-size:15px;margin-bottom:4px;text-shadow:0 1px 2px #000}.boss-name b{font-family:Rye,serif;font-weight:400;font-size:18px;letter-spacing:.02em}.boss-name span{opacity:.75;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-left:6px}.boss-track{height:10px;background:#140c08bf;border:1px solid #8a6234;border-radius:3px;overflow:hidden}.boss-fill{height:100%;width:100%;background:linear-gradient(#c0452f,#8a2a1e);transition:width .2s}.boss-bar.enraged .boss-fill{background:linear-gradient(#ff7a3a,#c0301e);animation:boss-pulse .8s infinite alternate}@keyframes boss-pulse{0%{filter:brightness(1)}to{filter:brightness(1.35)}}.dice-row{display:grid;grid-template-columns:90px auto 1fr;gap:10px;align-items:center;text-align:left;margin:2px 0}.dice-faces{font-size:30px;letter-spacing:2px;line-height:1;color:#f3e6cc}.dice-verdict{margin-top:6px;font-weight:700;color:#f0c27a}.fps-meter{position:absolute;left:50%;bottom:8px;transform:translate(-50%);padding:3px 8px;font:600 12px/1.2 monospace;color:#f3e6cc;background:#0000008c;border-radius:3px;pointer-events:none;z-index:6}.link-btn{background:none;border-color:transparent;color:#cdb894;font-size:14px;padding:4px 2px;text-decoration:underline;justify-content:center}.link-btn:hover{background:none;border-color:transparent;color:#f0c978}.chat-frame{position:absolute;left:var(--edge-l);bottom:var(--edge-b);width:min(440px,calc(100vw - 32px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:220px;pointer-events:auto;font:500 14px/1.35 var(--body);text-shadow:0 1px 1px #000,0 0 3px rgba(0,0,0,.8);transition:opacity .4s}.chat-frame.idle{opacity:.55}.chat-frame:hover,.chat-frame.active{opacity:1}.chat-tabs{display:flex;gap:2px;opacity:0;transition:opacity .2s}.chat-frame:hover .chat-tabs,.chat-frame.active .chat-tabs{opacity:1}.chat-tabs button{appearance:none;border:1px solid rgba(201,161,92,.45);border-bottom:0;border-radius:4px 4px 0 0;padding:3px 10px;background:#140d09b3;color:#cdb894;font:600 12px/1.2 var(--body);cursor:pointer}.chat-tabs button.on{background:#3c2618e6;color:#f3e6cc}.chat-lines{overflow-y:auto;padding:6px 8px;border-radius:0 4px 4px;background:transparent;transition:background .2s;scrollbar-width:thin;scrollbar-color:rgba(201,161,92,.5) transparent;overscroll-behavior:contain}.chat-frame:hover .chat-lines,.chat-frame.active .chat-lines{background:#0e09068c}.chat-line{color:#fff;overflow-wrap:anywhere}.chat-line.ch-yell{color:#ff5a4a;font-weight:700}.chat-line.ch-world{color:#f6c08a}.chat-line.ch-whisper{color:#ff86e6}.chat-line.ch-system{color:#f2e05a}.chat-name{cursor:pointer}.chat-name:hover{text-decoration:underline}.chat-entry{display:flex;align-items:center;gap:6px;margin-top:4px;padding:4px 8px;background:#0e0906d9;border:1px solid #8a6234;border-radius:3px}.chat-channel{flex:none;font-weight:700;color:#fff}.chat-entry[data-ch=yell] .chat-channel,.chat-entry[data-ch=yell] input{color:#ff5a4a}.chat-entry[data-ch=world] .chat-channel,.chat-entry[data-ch=world] input{color:#f6c08a}.chat-entry[data-ch=whisper] .chat-channel,.chat-entry[data-ch=whisper] input{color:#ff86e6}.chat-entry input{flex:1;min-width:0;border:0;outline:0;background:none;color:#fff;font:inherit;text-shadow:inherit;padding:2px 0}.chat-bubble{position:absolute;left:0;top:0;max-width:220px;padding:5px 9px;margin-top:-14px;background:#faf4e6f2;color:#21160f;border-radius:10px;border:1px solid #8a6234;font:600 13px/1.3 var(--body);text-shadow:none;overflow-wrap:anywhere;white-space:normal;will-change:transform}.chat-bubble:after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-6px;border:6px solid transparent;border-top-color:#faf4e6f2;border-bottom:0}.chat-bubble.yell{border:2px solid #c0301e;font-weight:800;color:#7a1a10}
