body{background:#21150e url('../img/saloon.webp') center/cover;color:#ffe7ad;font-family:Georgia,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
button{font:inherit;cursor:pointer;border:0;color:inherit;touch-action:manipulation}
button:focus-visible{outline:3px solid #8fe8ff;outline-offset:-3px}
button:active{filter:brightness(1.17);translate:0 2px}
button svg{pointer-events:none}
#scr-menu{background:#4a2915}
.menu-artbox{width:390px;height:693px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.menu-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.menu-hit{position:absolute;background:transparent;border-radius:12px;z-index:2}
.menu-hit:hover{box-shadow:inset 0 0 24px #ffe49850}
.menu-settings{left:84%;top:1.5%;width:13.5%;height:7.4%;border-radius:50%}
.menu-play{left:8%;top:69.2%;width:84%;height:11%}
.menu-shop{left:9%;top:81%;width:40%;height:7.6%}
.menu-rating{left:52%;top:81%;width:39%;height:7.6%}
.menu-help{left:10%;top:90.4%;width:38%;height:6%}
.menu-all{left:52%;top:90.4%;width:38%;height:6%}
#menu-money{position:absolute;left:15.4%;top:3.1%;width:17%;height:3.4%;background:#42260e;color:#ffe8a7;text-align:center;font:bold 24px Georgia}
.route-button{position:absolute;left:69px;top:452px;width:254px;height:40px;background:url('../img/hud-button.png') center/100% 100% no-repeat;color:#44230b;font:bold 13px Georgia;z-index:3;text-shadow:0 1px #ffde8e}
#menu-rank{position:absolute;left:72px;top:431px;width:253px;text-align:center;font:bold 11px Arial;text-shadow:0 2px 3px #1c0c05;color:#ffefbe}
.guest{display:none;position:absolute;bottom:3px;left:26px;right:26px;align-items:center;justify-content:center;gap:4px;padding:3px;background:#28180de8;color:#f7d49c;font:9px Arial;pointer-events:none;border-radius:4px}
.guest.show{display:flex}
#cv{position:absolute;inset:0;touch-action:none}
#scr-game .fitwrap{pointer-events:none}
.game-stage{position:absolute;left:50%;top:50%;width:390px;height:700px;transform:translate(-50%,-50%);pointer-events:none}
.hud-row{position:absolute;left:8px;right:8px;top:10px;height:66px;display:flex;align-items:center;gap:4px}
.round-art{width:48px;height:48px;flex-shrink:0;background-size:contain;background-position:center;background-repeat:no-repeat;background-color:transparent;pointer-events:auto}
.back-art{background-image:url('../img/hud-back.png')}.pause-art{background-image:url('../img/hud-pause.png')}
.hud-plaque{height:66px;background:url('../img/hud-plaque.png') center/100% 100% no-repeat;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px 5px;text-shadow:0 2px #160b04}
.score-plaque{width:143px}.score-plaque span{font-size:10px;letter-spacing:1px}.score-plaque b{font-size:22px;color:#ffdf82}
.score-plaque img{position:absolute;width:23px;height:23px;left:10px;bottom:10px}
.target-plaque{width:121px;padding-left:27px}.target-plaque img{position:absolute;left:13px;top:22px;width:16px;height:29px;object-fit:contain}.target-plaque b{font-size:17px;color:#e7f8c4}.target-plaque span{font:9px Arial}.target-plaque strong{font:bold 13px Georgia;color:#ffe79e}
.place-plaque{position:absolute;left:44px;right:44px;top:79px;height:33px;background:url('../img/hud-button.png') center/100% 100% no-repeat;color:#492508;font:bold 10px/33px Georgia;text-align:center}
#stage-tip{position:absolute;top:116px;left:48px;right:48px;text-align:center;font:10px/1.4 Arial;color:#fff1c9;text-shadow:0 1px 3px #100800;background:#2f1b0eab;border-radius:3px;padding:4px}
.combo-plaque{position:absolute;top:416px;left:111px;width:168px;height:33px;text-align:center;font:bold 12px/33px Georgia;color:#f8da91;background:url('../img/hud-plaque.png') center/100% 100% no-repeat;padding-top:4px}
.ammo-pouch{position:absolute;left:22px;bottom:20px;width:230px;height:57px;background:transparent url('../img/hud-pouch.png') center/100% 100% no-repeat;pointer-events:auto;display:flex;align-items:flex-start;justify-content:center;padding:11px 26px 0;gap:5px}
#hud-ammo{font:bold 10px/19px Georgia;white-space:nowrap}#hud-stock{font:14px/19px Georgia;color:#ffe196}
.hud-ammo-orb{width:16px;height:16px;border-radius:50%;background-image:radial-gradient(circle at 30% 25%,#ffffffba,transparent 50%,#172536bb);border:1px solid #e1c291;flex-shrink:0}
.focus-art{position:absolute;right:24px;bottom:43px;width:73px;height:85px;pointer-events:auto;background:transparent url('../img/hud-frame.png') center/100% 100% no-repeat;display:flex;align-items:center;flex-direction:column;justify-content:center;color:#ad9363;padding-top:9px}
.focus-art svg{width:32px;height:32px}.focus-art span{font:bold 8px/15px Arial;color:#f4e0b0}.focus-art i{width:40px;height:3px;background:#2b190d;overflow:hidden}.focus-art em{display:block;width:40px;height:3px;background:#ffd06a;transform-origin:0 50%;transform:scaleX(0)}
.focus-art.ready{color:#ffe79c;animation:ready-glow 1.3s ease-in-out infinite}
.game-caption{position:absolute;bottom:5px;left:20px;right:20px;text-align:center;font:10px Arial;color:#ffe8bb;text-shadow:0 1px 3px #140b04}
.overlay{background:#160e08d9;backdrop-filter:blur(3px)}
.panel{width:340px;padding:30px 21px 23px;gap:10px;background:linear-gradient(#2b160b55,#2b160b77),url('../img/hud-frame.png') center/100% 100% no-repeat;color:#ffeac4;animation:panel-in .17s ease-out}
.wide-panel{width:370px;padding:32px 25px 25px}
.panel-title{text-align:center;font:bold 22px/1.2 Georgia;color:#ffe3a0;text-shadow:0 2px #1d0e06;padding:8px 0 10px;letter-spacing:1px}
.panel-note{font:12px/1.5 Arial;text-align:center;color:#f1d5a5}
.btn{min-height:45px;display:flex;align-items:center;justify-content:center;padding:8px 18px;background:transparent url('../img/hud-button.png') center/100% 100% no-repeat;color:#48270f;font:bold 14px/1.2 Georgia;text-align:center;text-shadow:0 1px #ffe8b777;flex-shrink:0}
.btn-play{min-height:53px;font-size:17px}
.btn-sm{font-size:12px;min-height:40px}
.tabs{display:flex;justify-content:center;gap:4px;flex-shrink:0}.tabs .btn{font-size:11px;padding:7px 8px;flex:1}
.mini{min-width:40px;min-height:40px;background:transparent url('../img/hud-frame.png') center/100% 100% no-repeat;font:bold 14px Georgia;color:#ffe09d;padding:7px}
.mini.chosen{color:#baf7ed;filter:brightness(1.3)}
#shop-list{height:315px;display:flex;flex-direction:column;gap:8px}.ammo-card{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:12px 9px;background:#24150ce0;border:2px ridge #9e743a;flex-shrink:0}
.ammo-orb{width:39px;height:39px;border:2px solid #ecc88e;border-radius:50%;background:radial-gradient(circle at 30% 24%,#fffbdf,var(--orb) 38%,#1d2235 92%);box-shadow:0 3px 5px #0009;flex-shrink:0}
.ammo-copy{flex:1;display:flex;flex-direction:column;gap:4px}.ammo-copy b{font-size:13px}.ammo-copy small{font:10px Arial;color:#d8bf94}.ammo-copy span{font:10px Arial;color:#ffdb94}.ammo-card .mini{min-width:40px;min-height:40px;width:40px;font-size:12px}.card-button{width:100%;font-size:12px;min-height:38px}
#map-list{height:300px;display:flex;flex-direction:column;gap:6px}
.map-card{display:flex;gap:10px;align-items:center;padding:10px 12px;min-height:63px;background:#31200f;border:2px ridge #b4803c;flex-shrink:0;text-align:left}.map-card b{font-size:23px;width:30px;color:#ffe27c}.map-card span{font-size:12px;flex:1}.map-card small{font:9px Arial;color:#f5d89c}.map-card svg{color:#ffd581}.map-card.locked{opacity:.55}
#journal-list{height:300px}.help-copy{background:#efd095 url('../img/hud-paper.png') center/100% 100%;padding:19px;color:#442a16;font:12px/1.65 Arial}.help-copy h3{font:bold 14px/1.4 Georgia;margin:12px 0 5px}.help-copy h3:first-child{margin-top:0}
.journal-card{display:flex;align-items:center;gap:8px;padding:11px 5px;margin-bottom:8px;border-bottom:1px solid #c59145}.journal-card svg{color:#ffd879;flex-shrink:0}.journal-card div{display:flex;flex-direction:column;gap:6px;flex:1}.journal-card b{font-size:12px}.journal-card small{font:10px Arial}.small-btn{font-size:10px;min-height:37px;padding:5px 9px}
.contract-hero{text-align:center;padding:14px 12px;border:2px ridge #b68344;background:#2a180cdd;margin-bottom:12px;display:flex;flex-direction:column;gap:10px;align-items:center}.contract-hero svg{color:#ffd780}.contract-hero h3{font-size:17px}.contract-hero p{font:12px/1.55 Arial}.contract-hero .btn{align-self:stretch}
#lb-list{height:300px;max-height:300px;font:12px Arial}.lb-row{background:#2e1d10;border:1px solid #95672f;min-height:52px;flex-shrink:0;padding:8px 5px;gap:6px}.lb-medal{width:20px}.lb-avatar{background:#94622e;color:#ffe8a0;width:27px;height:27px}.lb-score{color:#f1d498}.top-1{border:2px solid #ffd66d;background:#71521c}.top-2{border-color:#b9d9e6}.top-3{border-color:#e49c66}.me{box-shadow:inset 0 0 0 2px #a6eee0}.lb-empty{font:13px/1.6 Arial;color:#efd8a8}
.res-line{text-align:center;font:14px/1.5 Arial}.res-line b{color:#ffdf83}#res-reason{font-size:12px}#res-reward{font:bold 14px/1.5 Georgia;text-align:center;color:#ffe085}#res-stars{display:flex;justify-content:center;gap:8px;color:#5e4932}.result-star.lit{color:#ffdb6f}
#toast{top:200px;padding:15px 20px;background:#372111;border:3px ridge #dab264;border-radius:9px;font:13px/1.5 Arial;color:#ffe7af;width:86%;min-width:0}
@keyframes ready-glow{50%{filter:brightness(1.45)}}@keyframes panel-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#map-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}#map-tabs .mini{min-height:34px;min-width:0;padding:4px;font-size:12px}
.map-preview{height:76px;position:relative;overflow:hidden;flex-shrink:0;border:2px ridge #c39853}
.map-preview img{width:100%;height:100%;object-fit:cover;object-position:center 36%;display:block}
.map-preview span{position:absolute;bottom:0;left:0;right:0;padding:4px;text-align:center;font:bold 11px Arial;background:#27170cd9;color:#ffe3aa}
#ov-map #map-list{height:240px}#ov-map .panel{gap:7px}.map-card span{font-size:11px}.map-card small{font-size:8px}

.object-guide{display:flex;gap:12px;align-items:center;padding:12px 5px;border-bottom:1px solid #bd8d48;min-height:96px}.object-guide img{width:55px;height:62px;object-fit:contain;flex-shrink:0}.object-guide b{font:bold 13px Georgia;color:#ffdf9a}.object-guide p{font:11px/1.5 Arial;color:#f3dbb7;margin-top:5px}#ov-journal .tabs .btn{font-size:10px;padding:7px 4px}

/* Tactical controls share the same logical 390 × 700 canvas space. */
[hidden]{display:none!important}
#stage-tip{top:111px;left:25px;right:25px;font-size:10px;min-height:30px}
#mastery-tip{position:absolute;top:389px;left:14px;right:14px;text-align:center;font:10px Arial;color:#ffe69a;text-shadow:0 2px 3px #100800;background:#24170dd9;padding:5px;border-radius:4px}
/* Keep the slingshot clear; descriptions appear only in the chooser. */
.tactic-toggle{position:absolute;left:22px;top:480px;width:86px;min-height:40px;pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#392719ed;border:1px solid #d4ad68;border-radius:6px;color:#ffe5aa}
.tactic-toggle small{font:8px Arial;color:#d9bd8c}.tactic-toggle b{font:bold 11px Arial}
.tactic-options{display:flex;flex-direction:column;gap:8px}
.tactic-option{padding:12px;text-align:left;display:flex;flex-direction:column;gap:7px;border:1px solid #927443;border-radius:6px;background:#342317;color:#edddbf}
.tactic-option b{font:bold 15px Georgia;color:#ffe19b}.tactic-option span{font:12px/1.45 Arial}
.tactic-option.chosen{border-color:#ffe49c;box-shadow:inset 3px 0 #e7bd62;background:#4b3620}
.tactic-option:disabled{opacity:.45}
.game-caption{font-size:10px}
.raid-button{position:absolute;top:390px;left:69px;width:254px;min-height:36px;z-index:3;border:1px solid #f2c776;background:#352213ed;border-radius:5px;color:#ffe2a0;font:bold 12px Arial}
.perk-card{width:100%;display:flex;flex-direction:column;gap:7px;text-align:left;margin:5px 0;padding:13px;background:#392819;border:1px solid #d2a664;border-radius:6px}
.perk-card b{color:#ffe29b;font:bold 16px Georgia}.perk-card span{font:12px/1.4 Arial;color:#edddbf}
