:root{--bg-obsidian: #0b0c12;--bg-panel: rgba(20, 15, 13, .91);--bg-panel-deep: rgba(12, 10, 9, .96);--border-iron: #44352c;--border-lacquer: #9e2d22;--border-bronze: #a1712d;--border-gold: #f0be58;--text-ivory: #f7efe0;--text-parchment: #d6c5ab;--text-muted: #968773;--hp-vital: #2cc970;--hp-vital-dark: #135e34;--armor-gold: #f2b83d;--stamina-jade: #38e0c4;--cinnabar-red: #e63b2e;--celadon-jade: #46f0cb}*{box-sizing:border-box;margin:0;padding:0;user-select:none}html,body,#game-root{width:100%;height:100%;overflow:hidden;background:var(--bg-obsidian);color:var(--text-ivory);font-family:Noto Sans SC,system-ui,-apple-system,sans-serif}#game-canvas{position:fixed;inset:0;width:100%;height:100%;display:block}#ui-layer{position:fixed;inset:0;pointer-events:none;z-index:10}.shenji-serif{font-family:"Noto Serif SC",Cinzel,Georgia,serif}.shenji-floating-combat-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:14}.shenji-dmg-num{position:absolute;left:0;top:0;font-family:"Noto Serif SC",Cinzel,serif;font-weight:900;letter-spacing:.03em;white-space:nowrap;will-change:transform,opacity;text-shadow:0 2px 4px rgba(0,0,0,.95),0 0 8px rgba(0,0,0,.85)}.shenji-dmg-num.is-normal{font-size:1.25rem;color:#fff3d1}.shenji-dmg-num.is-crit{font-size:1.95rem;color:#ffd23f;text-shadow:0 2px 0 #821b08,0 0 16px rgba(255,152,0,.92)}.shenji-dmg-num.is-shield{font-size:1.05rem;color:#9ed4ea}.shenji-reticle-wrap{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:16}.shenji-reticle-dot{width:4px;height:4px;border-radius:50%;background:#fff4d2;box-shadow:0 0 6px #000000f2}.shenji-reticle-line{position:absolute;background:#ffeebeeb;box-shadow:0 0 4px #000000f2}.shenji-reticle-line.top,.shenji-reticle-line.bottom{width:2px;height:9px;left:1px}.shenji-reticle-line.left,.shenji-reticle-line.right{width:9px;height:2px;top:1px}.shenji-hitmarker{position:fixed;left:50%;top:50%;width:34px;height:34px;transform:translate(-50%,-50%) scale(.8);opacity:0;pointer-events:none;z-index:17;transition:opacity .06s linear}.shenji-hitmarker:before,.shenji-hitmarker:after{content:"";position:absolute;left:50%;top:50%;width:24px;height:2.5px;background:currentColor;box-shadow:0 0 6px #000000e6}.shenji-hitmarker:before{transform:translate(-50%,-50%) rotate(45deg)}.shenji-hitmarker:after{transform:translate(-50%,-50%) rotate(-45deg)}.shenji-hitmarker.is-normal{color:#fff}.shenji-hitmarker.is-crit{color:#ffd23f;transform:translate(-50%,-50%) scale(1.28)}.shenji-hitmarker.is-shield{color:#7cd4ff}.shenji-hitmarker.is-kill{color:#ff3b28;transform:translate(-50%,-50%) scale(1.42)}.shenji-scope-overlay{position:fixed;inset:0;pointer-events:none;opacity:0;transition:opacity .14s ease-out;background:radial-gradient(circle at center,transparent 34%,rgba(226,174,72,.16) 35.5%,rgba(14,9,7,.87) 44%,rgba(6,5,5,.96) 100%);z-index:12}.shenji-scope-overlay.active{opacity:1}.shenji-hud{position:fixed;inset:0;pointer-events:none;z-index:15}.shenji-hud.hidden{display:none}.shenji-minimap-wrap{position:absolute;top:.9rem;left:.95rem;display:flex;flex-direction:column;align-items:center;gap:.34rem}.shenji-minimap-frame{width:186px;height:186px;border-radius:50%;padding:5px;background:linear-gradient(145deg,#dab057,#7a291c 55%,#2b1810);box-shadow:0 6px 22px #000000db,inset 0 0 8px #ffe09673}.shenji-minimap-canvas{width:100%;height:100%;border-radius:50%;background:#090d14;display:block}.shenji-minimap-label{padding:.14rem .65rem;border-radius:3px;background:#100b09e6;border:1px solid rgba(212,160,68,.58);text-align:center;font-size:.72rem;color:var(--text-parchment);text-shadow:0 1px 3px #000;letter-spacing:.05em}.shenji-callout-badge{padding:.22rem .72rem;border-radius:3px;background:linear-gradient(90deg,#101620f0,#1c120eeb);border:1px solid var(--celadon-jade);font-size:.74rem;font-weight:700;color:#e8fbf6;letter-spacing:.03em;box-shadow:0 3px 10px #000000b8}.shenji-breach-banner{width:490px;max-width:86vw;padding:.5rem .85rem;background:linear-gradient(180deg,#300a0af2,#180808f0);border:2px solid #ff3b2e;border-top-color:#ffd24a;border-radius:4px;box-shadow:0 0 22px #ff30246b;text-align:center}.shenji-breach-banner.hidden{display:none}.shenji-breach-title{font-size:.88rem;font-weight:800;color:#ffe28a;letter-spacing:.03em}.shenji-breach-sub{font-size:.75rem;color:#f6d5cb;margin-top:.16rem}.shenji-breach-track{margin-top:.34rem;height:8px;background:#160707;border:1px solid #822820;border-radius:2px;overflow:hidden}.shenji-breach-fill{height:100%;width:100%;background:linear-gradient(90deg,#ff2c20,#ffb838);transition:width .08s linear}.shenji-breach-fill.is-defusing{background:linear-gradient(90deg,#1ea888,#4ef7d0)}.shenji-top-center{position:absolute;top:1rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:360px}.shenji-wave-plaque{padding:.5rem 1.5rem;background:var(--bg-panel);border:2px solid var(--border-lacquer);border-top-color:var(--border-gold);border-radius:4px;box-shadow:0 4px 18px #000000c7;text-align:center}.shenji-wave-title{font-size:1rem;font-weight:700;color:var(--border-gold);letter-spacing:.06em}.shenji-wave-sub{font-size:.8rem;color:var(--text-parchment);margin-top:.15rem}.shenji-boss-frame{width:480px;max-width:86vw;padding:.5rem .75rem;background:#1a0a0aed;border:2px solid #d43828;border-top-color:var(--border-gold);border-radius:4px;box-shadow:0 0 24px #e63b2e59}.shenji-boss-frame.hidden{display:none}.shenji-boss-header{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;color:#ffe294;margin-bottom:.25rem}.shenji-boss-bar-track{height:14px;background:#170707;border:1px solid #75281a;overflow:hidden}.shenji-boss-bar-fill{height:100%;width:100%;background:linear-gradient(90deg,#8c1410,#e03522 58%,#f5b942);transition:width .08s linear}.shenji-top-right{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.shenji-stat-pill{padding:.35rem .85rem;background:var(--bg-panel);border:1px solid var(--border-bronze);border-radius:4px;font-size:.82rem;color:var(--text-ivory)}.shenji-combo-banner{padding:.35rem .9rem;background:linear-gradient(90deg,#b02416f0,#60140ce0);border:1px solid var(--border-gold);border-radius:4px;font-weight:700;color:#ffe284;font-size:.9rem}.shenji-combo-banner.hidden{display:none}.shenji-hero-unit{position:absolute;bottom:1.25rem;left:1.25rem;display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem .65rem .65rem;background:var(--bg-panel);border:2px solid var(--border-lacquer);border-top-color:var(--border-gold);border-radius:6px;box-shadow:0 8px 24px #000000d6}.shenji-portrait-ring{position:relative;width:72px;height:72px;border-radius:50%;padding:3px;background:linear-gradient(135deg,#f5ce6e,#9e2d22);flex-shrink:0}.shenji-portrait-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.shenji-hero-level{position:absolute;bottom:-4px;right:-4px;width:24px;height:24px;border-radius:50%;background:#21120e;border:1.5px solid var(--border-gold);color:var(--border-gold);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}.shenji-vitals-col{display:flex;flex-direction:column;gap:.35rem;width:210px}.shenji-hero-name{font-size:.82rem;font-weight:700;color:var(--border-gold);display:flex;justify-content:space-between}.shenji-bar-row{position:relative;height:15px;background:#14100e;border:1px solid #4f3d31;border-radius:2px;overflow:hidden}.shenji-bar-row.slim{height:9px}.shenji-bar-fill{height:100%;transition:width .08s linear}.shenji-bar-fill.hp{background:linear-gradient(90deg,var(--hp-vital-dark),var(--hp-vital))}.shenji-bar-fill.armor{background:linear-gradient(90deg,#8c6014,var(--armor-gold))}.shenji-bar-fill.stamina{background:linear-gradient(90deg,#166b60,var(--stamina-jade))}.shenji-bar-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;text-shadow:0 1px 2px #000}.shenji-actionbar{position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-panel-deep);border:2px solid var(--border-lacquer);border-top-color:var(--border-gold);border-radius:6px;box-shadow:0 8px 24px #000000db}.shenji-slot{position:relative;width:58px;height:58px;border:2px solid #594536;border-radius:4px;overflow:hidden;background:#14100d;transition:transform .1s ease,border-color .1s ease}.shenji-slot.is-active{border-color:var(--border-gold);box-shadow:0 0 14px #f0be58ad;transform:translateY(-3px)}.shenji-slot img{width:100%;height:100%;object-fit:cover;display:block}.shenji-slot-key{position:absolute;top:2px;left:4px;padding:0 4px;background:#000c;border:1px solid rgba(240,190,88,.48);border-radius:2px;font-size:.68rem;font-weight:700;color:#ffe8a6}.shenji-slot-name{position:absolute;bottom:0;left:0;right:0;background:#0a0706d6;font-size:.62rem;text-align:center;color:var(--text-parchment);padding:1px 2px}.shenji-slot-cd{position:absolute;inset:0;background:#080608cc;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:900;color:#ffd560}.shenji-slot-cd.hidden{display:none}.shenji-slot-divider{width:2px;height:44px;background:var(--border-iron);margin:0 .15rem}.shenji-ammo-panel{position:absolute;bottom:1.25rem;right:1.25rem;min-width:220px;padding:.65rem 1rem;background:var(--bg-panel);border:2px solid var(--border-lacquer);border-top-color:var(--border-gold);border-radius:6px;text-align:right;box-shadow:0 8px 24px #000000d6}.shenji-weapon-title{font-size:.85rem;font-weight:700;color:var(--border-gold)}.shenji-ammo-numbers{font-family:Cinzel,"Noto Serif SC",serif;font-size:2rem;font-weight:900;line-height:1.1;color:var(--text-ivory);margin-top:.15rem}.shenji-ammo-reserve{font-size:1.05rem;color:var(--text-muted)}.shenji-altfire-hint{font-size:.72rem;color:var(--celadon-jade);margin-top:.2rem}.shenji-reload-bar{margin-top:.35rem;height:6px;background:#1c1512;border:1px solid var(--border-bronze);overflow:hidden}.shenji-reload-bar.hidden{display:none}.shenji-reload-fill{height:100%;background:var(--border-gold);width:0%}.shenji-modal-backdrop{position:fixed;inset:0;pointer-events:auto;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#07070bd1;backdrop-filter:blur(4px);z-index:30}.shenji-modal-backdrop.hidden{display:none}.shenji-title-screen{background-image:radial-gradient(circle at 50% 42%,#0e0c124d,#08080ce0 78%),url(../ui/title_splash.jpg);background-size:cover;background-position:center}.shenji-title-card{width:100%;max-width:920px;padding:1.55rem 1.9rem;background:#0e0b0ae6;border:2px solid var(--border-lacquer);border-top:3px solid var(--border-gold);border-radius:6px;box-shadow:0 20px 60px #000000eb;text-align:center}.shenji-map-picker{margin-top:1.05rem;text-align:left}.shenji-map-picker-header{font-size:.78rem;font-weight:700;letter-spacing:.08em;color:var(--border-gold);margin-bottom:.5rem;text-align:center}.shenji-map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.shenji-map-card{cursor:pointer;padding:.72rem .8rem;background:linear-gradient(180deg,#1c1614f2,#0e0c0ef5);border:1.5px solid #4e3d32;border-radius:5px;text-align:left;color:var(--text-ivory);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.shenji-map-card:hover,.shenji-map-card:focus-visible{transform:translateY(-2px);border-color:var(--map-accent, var(--border-gold));outline:none}.shenji-map-card.is-selected{border-color:var(--map-accent, var(--border-gold));background:linear-gradient(180deg,#2e1e16f5,#120e10fa);box-shadow:0 0 18px #f0be5840,inset 0 0 0 1px var(--map-accent, var(--border-gold))}.shenji-map-tag{font-size:.68rem;font-weight:700;color:var(--map-accent, var(--celadon-jade));letter-spacing:.05em}.shenji-map-name{font-size:.98rem;font-weight:900;color:#fff3d1;margin-top:.18rem}.shenji-map-arch{font-size:.72rem;font-weight:700;color:var(--border-gold);margin-top:.18rem}.shenji-map-desc{font-size:.7rem;color:var(--text-parchment);margin-top:.22rem;line-height:1.38}.shenji-kicker{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--celadon-jade);margin-bottom:.5rem}.shenji-main-heading{font-family:"Noto Serif SC",Cinzel,serif;font-size:clamp(1.9rem,4vw,2.85rem);font-weight:900;color:var(--border-gold);text-shadow:0 4px 16px rgba(0,0,0,.95)}.shenji-subtitle{margin-top:.5rem;font-size:.95rem;color:var(--text-parchment);line-height:1.65}.shenji-loading-box{margin:1.5rem auto 0;max-width:480px}.shenji-loading-track{height:12px;background:#16110f;border:1px solid var(--border-bronze);border-radius:2px;overflow:hidden}.shenji-loading-fill{height:100%;width:0%;background:linear-gradient(90deg,#a6281c,#f2c45a);transition:width .12s ease-out}.shenji-loading-label{margin-top:.45rem;font-size:.8rem;color:var(--text-parchment)}.shenji-btn-row{margin-top:1.5rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem}.shenji-btn{cursor:pointer;padding:.75rem 1.5rem;font-family:"Noto Serif SC",serif;font-size:1rem;font-weight:700;color:#fff0c7;background:linear-gradient(180deg,#962318,#54110b);border:2px solid var(--border-gold);border-radius:4px;box-shadow:0 4px 14px #000000c7;transition:transform .1s ease,filter .12s ease}.shenji-btn:hover,.shenji-btn:focus-visible{filter:brightness(1.18);transform:translateY(-1px);outline:2px solid #fff0b3;outline-offset:2px}.shenji-btn.secondary{background:linear-gradient(180deg,#282c36,#151820);border-color:var(--border-bronze);color:var(--text-ivory)}.shenji-controls-grid{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-iron);display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:.5rem;text-align:left;font-size:.8rem;color:var(--text-parchment)}.shenji-kbd{display:inline-block;padding:.1rem .4rem;background:#211815;border:1px solid var(--border-bronze);border-radius:3px;color:var(--border-gold);font-weight:700;font-size:.74rem;margin-right:.35rem}.shenji-talent-dialog{width:100%;max-width:880px;padding:1.75rem;background:var(--bg-panel-deep);border:2px solid var(--border-gold);border-radius:6px;text-align:center}.shenji-talent-cards{margin-top:1.25rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.shenji-talent-card{cursor:pointer;padding:1.15rem;background:linear-gradient(180deg,#241916,#130e0c);border:2px solid var(--border-lacquer);border-radius:6px;text-align:left;color:var(--text-ivory);display:flex;flex-direction:column;gap:.65rem;transition:transform .12s ease,border-color .12s ease}.shenji-talent-card:hover,.shenji-talent-card:focus-visible{transform:translateY(-4px);border-color:var(--border-gold);box-shadow:0 10px 26px #f0be5847;outline:none}.shenji-talent-top{display:flex;align-items:center;gap:.75rem}.shenji-talent-top img{width:52px;height:52px;border-radius:4px;border:1.5px solid var(--border-gold);object-fit:cover}.shenji-talent-title{font-size:1.05rem;font-weight:700;color:var(--border-gold)}.shenji-talent-desc{font-size:.85rem;color:var(--text-parchment);line-height:1.5}.shenji-dialog{width:100%;max-width:540px;padding:1.75rem;background:var(--bg-panel-deep);border:2px solid var(--border-gold);border-radius:6px}.shenji-setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--border-iron);font-size:.9rem}.shenji-setting-row input[type=range]{width:180px;accent-color:var(--border-gold)}.shenji-setting-row select{background:#1f1714;color:var(--text-ivory);border:1px solid var(--border-bronze);padding:.3rem .5rem;border-radius:3px}.shenji-summary-stats{margin:1.25rem 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.shenji-summary-box{padding:.75rem;background:#191210;border:1px solid var(--border-bronze);border-radius:4px;text-align:center}.shenji-summary-val{font-family:Cinzel,"Noto Serif SC",serif;font-size:1.5rem;font-weight:900;color:var(--border-gold)}@media(max-width:768px){.shenji-minimap-frame{width:118px;height:118px}.shenji-hero-unit{padding:.45rem}.shenji-vitals-col{width:145px}.shenji-slot{width:46px;height:46px}}
