:root{--navy:#061b43;--blue:#1478ff;--cyan:#15c9ff;--ink:#10203b;--muted:#6d7890;--line:#dce4f1;--bg:#f3f6fb;--white:#fff;--danger:#d94141;--shadow:0 14px 42px rgba(12,37,81,.12);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#edf4ff,#f7f9fc 500px);min-height:100vh}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.action-locked,.action-locked:hover,[aria-disabled="true"]{pointer-events:none!important;opacity:.58!important;cursor:wait!important;filter:saturate(.65)}
.hidden{display:none!important}
.app-shell{width:min(1180px,100%);margin:auto;min-height:100vh;background:#fff;box-shadow:0 0 80px rgba(9,31,70,.1);padding-bottom:86px}
.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,228,241,.85);z-index:30}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--navy)}
.brand-mark,.mini-avatar,.avatar-button{display:grid;place-items:center;background:linear-gradient(145deg,var(--blue),var(--cyan));color:#fff;font-weight:900}
.brand-mark{width:42px;height:42px;border-radius:14px;font-size:22px}
.brand-copy{display:grid}.brand-copy b{font-size:20px;line-height:1}.brand-copy small{font-size:10px;letter-spacing:1.4px;margin-top:4px}
.top-actions{display:flex;align-items:center;gap:10px}
.icon-button,.auth-button,.avatar-button{border:0;border-radius:13px;min-height:42px}
.icon-button{width:42px;background:#edf3ff;color:var(--blue);font-size:24px}
.auth-button{background:var(--navy);color:#fff;padding:8px 15px}.auth-button span,.auth-button small{display:block}.auth-button small{opacity:.66;font-size:10px}
.avatar-button{width:42px;height:42px;min-height:42px;flex:0 0 42px;overflow:hidden;position:relative;border-radius:50%;padding:0;box-shadow:0 0 0 2px #e7f0ff}.avatar-button img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar-button.has-image span{display:none}
.account-menu{position:fixed;top:66px;right:max(16px,calc((100vw - 1130px)/2));width:270px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);z-index:50;padding:10px}
.account-menu-head{display:flex;align-items:center;gap:10px;padding:8px 8px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.account-menu-head div{display:grid}.account-menu-head small{color:var(--muted);margin-top:3px}
.mini-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;flex:none}.mini-avatar img{width:100%;height:100%;object-fit:cover}
.account-menu>button{width:100%;border:0;background:transparent;text-align:left;padding:11px;border-radius:10px;color:var(--ink)}.account-menu>button:hover{background:#f1f5fb}.account-menu .danger{color:var(--danger)}
.search-bar{position:sticky;top:72px;z-index:25;display:flex;padding:10px 22px;background:#fff;border-bottom:1px solid var(--line);gap:8px}.search-bar input{flex:1}.search-bar button{border:0;background:#edf3ff;color:var(--blue);border-radius:11px;padding:0 14px}
main{min-height:70vh}.page{display:none;padding:24px}.page.active{display:block}
.boi-hero{min-height:390px;border-radius:28px;padding:50px;overflow:hidden;position:relative;background:radial-gradient(circle at 80% 10%,#1a7fff 0,transparent 35%),linear-gradient(135deg,#031332,#092967);color:#fff;display:flex;align-items:center}
.hero-glow{position:absolute;width:300px;height:300px;border-radius:50%;background:#14ccff44;filter:blur(50px);right:-80px;bottom:-100px}
.hero-copy{position:relative;z-index:2;max-width:650px}.hero-logo{display:flex;align-items:flex-end;gap:10px}.hero-logo strong{font-size:58px;line-height:.9}.hero-logo span{color:var(--cyan);font-weight:900;letter-spacing:3px}
.hero-copy h1{font-size:clamp(28px,5vw,52px);line-height:1.03;margin:20px 0}.hero-copy p{font-size:17px;line-height:1.65;color:#d9e7ff}
.hero-badges{display:flex;flex-wrap:wrap;gap:8px}.hero-badges span{background:#ffffff14;border:1px solid #ffffff22;padding:8px 12px;border-radius:999px;font-size:13px}
.hero-button,.primary,.form-submit{border:0;background:linear-gradient(135deg,var(--blue),#0bbde7);color:#fff;font-weight:800;border-radius:13px;padding:13px 18px}.hero-button{margin-top:22px}
.hero-device{margin-left:auto;position:relative;width:180px;height:250px;border:7px solid #87baff;border-radius:30px;transform:rotate(7deg);background:#071a3a;box-shadow:0 25px 60px #0005}.device-screen{height:100%;display:grid;place-items:center}.device-screen span{font-size:38px;font-weight:900}.device-screen i{position:absolute;width:22px;height:22px;border:2px solid #1dd4ff;border-radius:50%}.device-screen i:nth-child(1){top:40px;left:30px}.device-screen i:nth-child(2){right:30px;top:90px}.device-screen i:nth-child(3){bottom:38px;left:55px}.cursor-shape{position:absolute;right:-25px;bottom:40px;font-size:35px;color:#fff}
.feed-head,.section-heading,.gift-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.feed-head{padding:32px 5px 14px}.feed-head h2,.section-heading h2{margin:3px 0}.section-kicker,.section-heading small{font-size:11px;font-weight:900;letter-spacing:1.5px;color:var(--blue)}
.primary.small{padding:10px 14px}.quick-composer{display:flex;align-items:center;gap:10px;padding:12px;background:#f5f8fc;border:1px solid var(--line);border-radius:16px}.quick-composer button{border:0;background:#fff;border-radius:999px;padding:11px 16px;color:var(--muted)}.quick-composer button:nth-child(2){flex:1;text-align:left}
.feed{display:grid;gap:14px;margin-top:14px}.post{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.post-head{display:flex;align-items:center;gap:10px;padding:15px}.post-avatar,.comment-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#e5efff;color:var(--blue);font-weight:900;overflow:hidden}.post-avatar img,.comment-avatar img{width:100%;height:100%;object-fit:cover}.post-author{display:grid}.post-author small{color:var(--muted);margin-top:2px}.post-text{padding:0 15px;line-height:1.6}.feeling{color:var(--blue);font-size:13px;font-weight:700}.post-media img,.post-media video{width:100%;max-height:600px;object-fit:cover;background:#08172e}.post-stats,.post-actions{display:flex;justify-content:space-between;padding:11px 15px;color:var(--muted);font-size:13px}.post-actions{border-top:1px solid var(--line);padding:5px}.post-actions button{flex:1;border:0;background:#fff;padding:10px;border-radius:8px}.post-actions button:hover,.post-actions .liked{background:#edf4ff;color:var(--blue)}
.verified-badge{display:inline-grid!important;place-items:center;width:17px;height:17px;margin-left:5px;border-radius:50%;background:#1689ff;color:#fff;font-size:11px;font-weight:1000;line-height:1;vertical-align:1px;box-shadow:0 0 0 2px #eaf4ff}
.post-menu-wrap{margin-left:auto;position:relative}.post-more{border:0;background:#f1f4f8;border-radius:9px;padding:6px 9px}.post-menu{position:absolute;right:0;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line);padding:5px;border-radius:10px}.post-menu button{border:0;background:transparent;color:var(--danger);padding:7px 16px}
.page-title-card{border-radius:25px;padding:32px;color:#fff;background:linear-gradient(135deg,#09265c,#126be3)}.page-title-card h1{font-size:clamp(28px,5vw,45px);margin:8px 0}.page-title-card p{max-width:750px;color:#e5efff}.cards-title{padding:21px 26px;background:linear-gradient(135deg,#20135d,#744ed1)}.cards-title h1{margin:4px 0;font-size:clamp(27px,4vw,38px)}.cards-title p{margin:6px 0 10px}.cards-title .wallet{display:inline-flex;align-items:center;gap:4px;padding:7px 12px}.gift-title{background:linear-gradient(135deg,#10394f,#03a6a6)}
.stage-leaderboard{position:relative;min-height:338px;border-radius:25px;overflow:hidden;color:#fff;background:#150704 url("hinhanh/xep-hang/nen-lau-dai-dung-nham.png") center 56%/cover no-repeat;box-shadow:inset 0 0 70px #050000,0 18px 42px #3b080830}.stage-leaderboard:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#080303f2 0,#170706dd 48%,#1605024a 72%,#030000a6 100%);pointer-events:none}.leaderboard-copy{position:relative;z-index:5;width:min(66%,680px);padding:18px 30px 14px}.leaderboard-copy h1{margin:4px 0;font-size:clamp(25px,4.2vw,42px);font-family:Georgia,serif;color:#f5d895;text-shadow:0 3px 9px #000}.leaderboard-copy>p{margin:0 0 7px;color:#f1c8b8}.leaderboard-list{display:grid;gap:5px}.leaderboard-row{display:grid;grid-template-columns:76px minmax(100px,1fr) auto;align-items:center;gap:10px;min-height:72px;padding:1px 12px 1px 3px;border:1px solid #c7785859;border-radius:12px;background:linear-gradient(90deg,#140503e6,#4b130db8);backdrop-filter:blur(5px)}.rank-badge{display:block;width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 3px 8px #0008)}.leaderboard-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900}.leaderboard-row strong{color:#ffe1ce;font-size:12px}.leaderboard-row.rank-1{border-color:#ffd76c99;box-shadow:inset 0 0 20px #ffba2225}.leaderboard-warrior-wrap{position:absolute;z-index:3;right:-2%;bottom:-4%;width:48%;height:116%;transform-origin:50% 88%;animation:leaderWarriorIdle 3.2s ease-in-out infinite}.leaderboard-warrior{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 16px 22px #000)}.leaderboard-sword{position:absolute;right:9%;top:46%;width:42%;height:47%;object-fit:contain;transform:rotate(-35deg);filter:brightness(1.25) drop-shadow(0 0 10px #ff9d68)}.leaderboard-smoke{position:absolute;z-index:2;width:52%;height:55%;border-radius:50%;background:radial-gradient(circle,#ffb09455 0,#a7341c29 38%,transparent 70%);filter:blur(22px);animation:leaderSmoke 7s ease-in-out infinite}.smoke-one{right:-5%;bottom:-18%}.smoke-two{right:16%;top:-30%;animation-delay:-3.5s;opacity:.55}@keyframes leaderWarriorIdle{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.012)}}@keyframes leaderSmoke{0%,100%{transform:translate(-5%,8%) scale(.9);opacity:.35}50%{transform:translate(12%,-8%) scale(1.16);opacity:.8}}
.wallet{display:inline-block;padding:9px 14px;border-radius:999px;background:#ffffff1b;border:1px solid #ffffff38}.content-section{margin-top:24px}.section-heading>span{color:var(--muted);font-size:13px}
.release-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);overflow:auto;gap:13px;padding:4px 2px 12px}.release-card{border-radius:18px;border:1px solid var(--line);overflow:hidden;background:#fff;cursor:pointer}.release-art{position:relative;height:150px;background:#101725;color:#fff;overflow:hidden}.release-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.release-state{position:absolute;z-index:2;top:12px;left:12px;font-size:11px;background:#061225b8;border:1px solid #ffffff55;backdrop-filter:blur(5px);border-radius:99px;padding:6px 9px}.release-body{padding:14px}.release-body h3{margin:0 0 8px}.release-body time{color:var(--blue);font-weight:800}.release-body p{color:var(--muted);font-size:13px}.form-row small{color:var(--muted);font-size:11px}.form-image-preview{display:block;margin-top:8px;border:1px solid var(--line);object-fit:cover}.form-image-preview.avatar{width:90px;height:90px;border-radius:14px}.form-image-preview.cover{width:100%;height:105px;border-radius:12px}
.page-search{display:flex;width:100%;border:1px solid var(--line);border-radius:15px;background:#fff;padding:5px}.page-search input{border:0;outline:0;flex:1;padding:10px;min-width:0}.page-search button{width:44px;border:0;border-radius:11px;background:var(--blue);color:#fff;font-size:21px}.search-message{min-height:22px;color:var(--muted);padding:8px 3px;font-size:13px}
.game-list{display:grid;gap:12px}.game-row{display:grid;grid-template-columns:112px minmax(0,1fr) auto;column-gap:18px;row-gap:7px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:11px;background:#fff;cursor:pointer}.game-row:hover{border-color:#92baff;box-shadow:0 8px 25px #0c255115}.game-avatar{width:112px;height:96px;border-radius:14px;object-fit:cover;object-position:center;background:linear-gradient(145deg,var(--game-color,#176fe8),#07162e);display:grid;place-items:center;color:#fff;font-size:25px;font-weight:900}.game-row>div{min-width:0;padding-left:2px}.game-row h3{margin:0 0 5px}.game-row p{margin:4px 0;color:var(--muted)}.game-date{font-weight:800;color:var(--blue);white-space:nowrap}
.summon-panel{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#f8f5ff;border:1px solid #ddd2ff;border-radius:18px;padding:17px;margin-top:20px}.summon-panel p{margin:6px 0}.summon-panel em{color:var(--muted);font-size:12px}.summon-actions{display:flex;gap:8px}.summon-actions button{border:0;border-radius:12px;padding:11px;background:#5a38be;color:#fff}.summon-actions b{display:block;font-size:11px;margin-top:4px}
.rarity-tabs{display:flex;gap:7px;margin:18px 0}.rarity-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px}.rarity-tabs .active{background:#281568;color:#fff;border-color:#281568}
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collect-card{display:grid;grid-template-columns:130px 1fr;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#fff;min-height:150px}.card-art{position:relative;display:grid;place-items:center;background:linear-gradient(140deg,#173867,#07172f);color:#fff}.collect-card.super .card-art{background:linear-gradient(140deg,#fdba3b,#7f3bdb)}.collect-card.rare .card-art{background:linear-gradient(140deg,#3c8cff,#4930ae)}.weapon-symbol{font-size:45px}.owned-badge{position:absolute;bottom:7px;background:#0007;padding:4px 7px;border-radius:999px;font-size:10px}.card-info{padding:13px}.card-info h3{margin:0 0 9px}.card-value{font-weight:900;color:#e79600}.card-owner-count,.rank-list{font-size:12px;color:var(--muted);margin-top:6px}.rank-list{display:grid;gap:3px}
.gift-toolbar{margin:10px 0 0;padding:7px 4px;background:#fff;color:var(--navy)}.gift-toolbar b{font-size:20px}.gift-list{display:grid;gap:10px;margin-top:10px}.gift-group{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.gift-group-head{display:flex;align-items:center;gap:9px;width:100%;border:0;background:#fff;padding:10px 12px;text-align:left}.gift-game-mark{width:38px;height:38px;border-radius:11px;background:var(--game-color);color:#fff;display:grid;place-items:center;font-weight:900}.gift-game-copy{display:grid;flex:1}.gift-game-copy small{color:var(--muted);font-size:11px}.gift-codes{display:none;border-top:1px solid var(--line)}.gift-group.open .gift-codes{display:block}.gift-row{padding:8px 11px;border-bottom:1px solid #edf1f7}.gift-row:last-child{border:0}.code-text,.code-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.code-text code{font-size:15px;font-weight:900;overflow-wrap:anywhere}.code-buttons{display:flex;align-items:center;gap:6px}.code-buttons button{border:0;border-radius:8px;padding:6px 9px;background:#edf4ff;color:var(--blue);font-weight:800}.code-buttons .code-delete{width:29px;height:29px;padding:0;border-radius:50%;background:#fff0f0;color:#c72626;font-size:20px;line-height:1}.code-meta{margin-top:4px;justify-content:flex-start}.code-meta p{margin:0;color:var(--muted);font-size:12px}.status-pill{background:#d9f7e9;color:#087549;padding:3px 7px;border-radius:99px;font-size:10px;white-space:nowrap}.status-pill.expired{background:#f7e3e3;color:#a22}.suggest-wrap{position:relative}.suggestions{position:absolute;left:0;right:0;top:58px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:32;padding:6px}.suggestions button{width:100%;border:0;background:#fff;text-align:left;padding:10px;border-radius:9px}.suggestions button:hover{background:#edf4ff}
.gift-code-entry{display:none;margin:-2px 12px 6px auto;border:1px solid #bde8ca;border-radius:8px;padding:5px 9px;background:#f0fff4;color:#159447;font-size:12px;font-weight:900}.gift-group.open .gift-code-entry{display:block}.gift-code-fields{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:15px}.gift-code-fields legend{padding:0 7px;font-weight:900;color:#12284b}
.modal-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}.modal-backdrop{position:absolute;inset:0;background:#02102bcc;backdrop-filter:blur(5px)}.modal{position:relative;background:#fff;border-radius:22px;width:min(620px,100%);max-height:92vh;overflow:auto;padding:25px;box-shadow:0 30px 90px #0007}.modal.wide{width:min(920px,100%)}.modal-close{position:absolute;right:13px;top:13px;border:0;background:#edf1f7;border-radius:50%;width:34px;height:34px;font-size:20px}.modal h2{margin-top:0;padding-right:30px}.subtitle{color:var(--muted);line-height:1.5}.form-row{display:grid;gap:6px;margin:13px 0}.form-row label{font-weight:800;font-size:13px}.form-row input,.form-row textarea,.form-row select,.search-bar input{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px;background:#fff}.form-row textarea{min-height:120px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:12px 17px}.form-note{color:var(--muted);font-size:12px;line-height:1.5}.media-preview{border:1px dashed #aebbd0;min-height:90px;border-radius:12px;padding:9px;display:flex;gap:7px;overflow:auto;color:var(--muted);align-items:center}.media-preview img,.media-preview video{width:110px;height:82px;object-fit:cover;border-radius:9px}.profile-head{display:flex;gap:14px;align-items:center}.profile-avatar{width:65px;height:65px;border-radius:50%;overflow:hidden;background:#e8f1ff;display:grid;place-items:center;font-weight:900}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.profile-stats article{background:#f2f6fb;border-radius:12px;padding:12px;text-align:center}.profile-stats b,.profile-stats small{display:block}.profile-stats small{color:var(--muted);margin-top:4px}.status-box{padding:14px;border-radius:13px;background:#e8f5ff;color:#135d9c}.status-box.warning{background:#fff2dc;color:#92520c}.status-box.loading{background:#eff5ff;color:#40668e;text-align:center}.comment-list{display:grid;gap:10px}.comment-item{display:flex;gap:10px;background:#f6f8fc;padding:10px;border-radius:12px}.comment-item div{flex:1;min-width:0}.comment-item b,.comment-item small{display:block}.comment-item small{color:var(--muted)}.comment-item p{margin-bottom:8px}.comment-image{display:block;width:min(100%,520px);max-height:430px;object-fit:cover;border-radius:13px;margin-top:8px;background:#08172e}.comment-media-row{display:flex;align-items:center;gap:10px;margin:8px 0 13px}.comment-image-button{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;color:var(--blue);font-weight:800;cursor:pointer}.comment-image-button input{display:none}.comment-image-preview img{width:78px;height:58px;object-fit:cover;border-radius:9px}.comment-compose{display:flex;gap:10px}.comment-compose textarea{flex:1}
.game-detail-head{display:grid;grid-template-columns:110px 1fr;gap:15px;align-items:center}.game-detail-head .game-avatar{width:110px;height:95px}.game-gallery{position:relative;margin:16px 0;border-radius:16px;overflow:hidden;background:#07172e}.game-gallery img{width:100%;height:min(55vw,480px);object-fit:cover;display:none}.game-gallery img.active{display:block}.gallery-controls{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.gallery-controls button{pointer-events:auto;border:0;background:#0007;color:#fff;width:40px;height:50px;font-size:22px}.download-links{display:flex;flex-wrap:wrap;gap:8px}.download-links a{background:var(--blue);color:#fff;text-decoration:none;border-radius:11px;padding:10px 13px;font-weight:800}
.auto-products{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.auto-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.auto-card-art{height:115px;display:grid;place-items:center;color:#fff;font-size:40px;background:linear-gradient(145deg,#1478ff,#072152)}.auto-card:nth-child(2) .auto-card-art{background:linear-gradient(145deg,#7248d8,#25145d)}.auto-card:nth-child(3) .auto-card-art{background:linear-gradient(145deg,#05a4a7,#083d50)}.auto-card-body{padding:12px}.auto-card h3{font-size:14px;margin:0 0 8px}.auto-card button{width:100%;border:0;background:#edf4ff;color:var(--blue);padding:9px;border-radius:9px}.video-list{display:grid;gap:10px}.video-item{border:1px solid var(--line);border-radius:13px;padding:12px}.video-item a{color:var(--blue);font-weight:800}
.reveal-layer{position:fixed;inset:0;z-index:150;background:#020918ed;display:grid;place-items:center;color:#fff;padding:20px}.reveal-card{text-align:center}.reveal-card .collect-card{width:min(360px,85vw);display:block;border:0;background:transparent}.reveal-card .card-art{height:280px;border-radius:24px;box-shadow:0 0 60px #2b91ff77}.reveal-layer.super .card-art{animation:superPulse 1s infinite alternate;box-shadow:0 0 90px #ffd850}.reveal-layer.rare .card-art{animation:rarePulse .9s infinite alternate}.rarity-hint{font-size:20px;font-weight:900;letter-spacing:2px;animation:hintPop .8s infinite alternate}.reveal-card button{border:0;border-radius:12px;background:#fff;color:#11264d;padding:11px 18px;font-weight:900}
.gacha-running{overflow:hidden!important}.gacha-cinematic{position:fixed;z-index:500;inset:0;background:#000;overflow:hidden;opacity:1;transition:opacity .28s;touch-action:none;user-select:none;cursor:wait}.gacha-cinematic.leaving{opacity:0}.gacha-video{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;background:#000;pointer-events:none}.gacha-video-flash{position:absolute;z-index:3;inset:0;background:#fff;opacity:0;pointer-events:none}.gacha-video-flash.active{animation:gachaVideoFlash .24s linear both}.reveal-layer.gacha-peak-reveal{z-index:520;background:transparent;pointer-events:none}.reveal-layer.gacha-peak-reveal .reveal-glow{display:none}.reveal-layer.gacha-peak-reveal .gacha-pop-card{animation:gachaCardPop .42s cubic-bezier(.2,.85,.28,1.25) both}.reveal-layer.gacha-peak-reveal .weapon-card-visual{width:min(350px,76vw);margin:0;filter:drop-shadow(0 0 42px #fff)}@keyframes gachaVideoFlash{0%{opacity:0}50%{opacity:1}100%{opacity:0}}@keyframes gachaCardPop{0%{transform:scale(.7);opacity:0}58%{transform:scale(1.1);opacity:1}100%{transform:scale(1);opacity:1}}
.ultimate-cinematic{position:fixed;z-index:700;inset:0;overflow:hidden;background:#000;touch-action:none;user-select:none;cursor:wait}.ultimate-video-slot,.ultimate-video{position:absolute;inset:0;width:100%;height:100%}.ultimate-video-slot{z-index:1}.ultimate-video{object-fit:contain;background:#000;pointer-events:none}.ultimate-flash{position:absolute;z-index:5;inset:0;background:#fff;opacity:0;pointer-events:none}.ultimate-cinematic.impact .ultimate-flash{animation:ultimateBattleFlash .85s ease-out both}@keyframes ultimateBattleFlash{0%{opacity:0}9%{opacity:1}28%{opacity:.96}100%{opacity:0}}
.gold-reward-card{position:relative;width:min(310px,78vw);margin:12px auto;filter:drop-shadow(0 0 30px #ffc02f)}.gold-reward-card img{display:block;width:100%;height:auto;max-height:58vh;object-fit:contain}
.weapon-card-visual{position:relative;aspect-ratio:2/3;min-height:235px;background:#02040a;overflow:hidden;color:#fff}.weapon-image{position:absolute;inset:7%;background-repeat:no-repeat;border-radius:8%;filter:saturate(1.12) contrast(1.04)}.rarity-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;mix-blend-mode:screen;pointer-events:none}.rarity-code{position:absolute;top:5.5%;left:0;right:0;text-align:center;font-family:Georgia,serif;font-size:23px;font-weight:900;text-shadow:0 0 9px #fff}.rarity-stars{position:absolute;top:14%;left:0;right:0;text-align:center;font-size:10px;letter-spacing:1px;color:#eee5ff;text-shadow:0 0 7px #bf8cff}.weapon-card-name{position:absolute;left:10%;right:10%;bottom:8%;font-family:Georgia,serif;text-align:center;font-weight:900;font-size:12px;text-shadow:0 2px 5px #000,0 0 4px #000}.weapon-card-visual.rare .rarity-stars{color:#ffd65a}.weapon-card-visual.common .rarity-stars{color:#e4e8ec}.weapon-card-visual.compact{width:58px;min-height:87px;border-radius:6px}.weapon-card-visual.compact .rarity-code{font-size:9px}.weapon-card-visual.compact .rarity-stars{font-size:4px}.weapon-card-visual.compact .weapon-card-name{display:none}.collect-card{grid-template-columns:150px 1fr}.collect-card>.weapon-card-visual{min-height:215px}.reveal-card>.weapon-card-visual{width:min(310px,78vw);margin:12px auto;filter:drop-shadow(0 0 30px #765bff)}.reveal-layer.rare .weapon-card-visual{filter:drop-shadow(0 0 30px #ffb300)}.owned-badge{z-index:5}
.inventory-layout{display:grid;grid-template-columns:minmax(320px,.9fr) 1.1fr;gap:18px}.character-panel,.bag-panel{border:1px solid var(--line);border-radius:18px;background:#f8faff;padding:14px}.character-stage{position:relative;min-height:390px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 34%,#4b73bd 0,#152a51 42%,#071329 100%)}.character-stage:after{content:"";position:absolute;left:16%;right:16%;bottom:7%;height:12%;background:#061026;border-radius:50%;filter:blur(8px)}.character-name{position:absolute;z-index:2;top:14px;left:0;right:0;text-align:center;color:#fff;font-weight:900}.character-model{position:absolute;z-index:1;left:50%;top:48%;width:105px;height:220px;transform:translate(-50%,-50%)}.character-head{position:absolute;left:35px;top:0;width:38px;height:42px;border-radius:50%;background:#edbd94}.character-body{position:absolute;left:23px;top:38px;width:62px;height:100px;border-radius:25px 25px 15px 15px;background:linear-gradient(90deg,#132b50,#2b65ad,#132b50)}.character-arm,.character-leg{position:absolute;background:#193d70;border-radius:20px}.character-arm{top:48px;width:25px;height:95px}.character-arm.left{left:5px;transform:rotate(10deg)}.character-arm.right{right:5px;transform:rotate(-10deg)}.character-leg{top:130px;width:29px;height:92px}.character-leg.left{left:23px}.character-leg.right{right:20px}.held-weapon{position:absolute;right:-5px;top:83px;font-size:57px;transform:rotate(-35deg)}.character-slots{position:absolute;z-index:4;inset:50px 10px 20px;display:grid;grid-template-columns:80px 1fr 80px;grid-template-rows:1fr 1fr}.equip-slot{position:relative;width:78px;min-height:91px;border:1px solid #769bd6;background:#0d244dcc;color:#fff;border-radius:13px;padding:5px;display:grid;place-items:center}.equip-slot:nth-child(1){grid-column:1;grid-row:1}.equip-slot:nth-child(2){grid-column:3;grid-row:1}.equip-slot:nth-child(3){grid-column:1;grid-row:2}.equip-slot:nth-child(4){grid-column:3;grid-row:2}.equip-slot small{font-size:9px;color:#b9c8e4}.equip-slot>span{font-size:28px}.equip-slot>b{font-size:8px;max-width:68px}.level-row,.bag-head{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.total-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}.total-stats div{display:flex;justify-content:space-between;background:#fff;border-radius:9px;padding:8px;font-size:12px}.battle-launch{position:relative;margin:16px auto 0;width:150px;height:150px;border:0;border-radius:50%;padding:0;background:#080706;overflow:hidden;box-shadow:0 0 0 3px #6f4d18,0 0 28px #ffad17a8;animation:battleBadgePulse 1.8s ease-in-out infinite}.battle-launch img{display:block;width:100%;height:100%;object-fit:cover}.battle-launch-shine{position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 42%,#fff9 50%,transparent 58%);transform:translateX(-70%) rotate(10deg);animation:battleBadgeShine 2.6s ease-in-out infinite;pointer-events:none}.battle-launch:active{transform:scale(.94)}.gear-detail{min-height:58px;padding:11px;border-radius:12px;background:#eaf2ff;margin-bottom:12px}.gear-detail p{margin:5px 0 0;font-size:12px;color:var(--muted)}.bag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-height:580px;overflow:auto}.bag-item{position:relative;min-height:125px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:7px;display:grid;place-items:center}.bag-item.equipped{border:2px solid #1387ff;background:#eef7ff}.bag-item>i{position:absolute;right:5px;top:5px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#168cff;color:#fff;font-style:normal;font-weight:900}.bag-item>b{font-size:10px}.gear-icon{font-size:38px}
@keyframes battleBadgePulse{0%,100%{filter:brightness(.95);box-shadow:0 0 0 3px #6f4d18,0 0 20px #ffad1766}50%{filter:brightness(1.13);box-shadow:0 0 0 3px #b9822b,0 0 38px #ffad17c7}}@keyframes battleBadgeShine{0%,35%{transform:translateX(-75%) rotate(10deg)}70%,100%{transform:translateX(75%) rotate(10deg)}}
.inventory-shell{overflow:hidden;border:1px solid #665231;border-radius:16px;background:#0b0b0b;box-shadow:0 18px 50px #0008}.inventory-shell .inventory-layout{gap:1px;background:#493d2a}.inventory-shell .character-panel,.inventory-shell .bag-panel{border:0;border-radius:0;background:linear-gradient(145deg,#151514,#080808);color:#eee}.inventory-shell .character-stage{min-height:520px;background:#07090c url("hinhanh/nhan-vat/nhan-vat-nam-mac-dinh-3d.webp") center 42%/cover no-repeat;border:1px solid #5d4d34;border-radius:4px;box-shadow:inset 0 0 65px #000}.inventory-shell .character-stage:after{background:#0007}.character-3d{position:absolute;inset:0;animation:characterIdle 3.2s ease-in-out infinite;pointer-events:none}.inventory-shell .character-name{font-family:Georgia,serif;color:#f1d49a;text-shadow:0 2px 6px #000}.inventory-shell .equip-slot{border:1px solid #6b5739;background:#090909d9;box-shadow:inset 0 0 0 2px #19150f;color:#f6dfae}.inventory-shell .equip-slot.filled{border-color:#8d5ad1;box-shadow:inset 0 0 0 2px #2d1743,0 0 12px #7642c455}.inventory-shell .level-row{padding:8px 10px;border:1px solid #54442e;background:#0b0a08}.inventory-shell .level-row b,.inventory-shell .bag-head b{color:#f0c86e}.inventory-shell .total-stats div{border:1px solid #443820;background:#0c0b09;color:#d8c49d}.inventory-shell .bag-head{padding:10px 12px;border-bottom:1px solid #55452d}.inventory-shell .bag-head h3{font-family:Georgia,serif;color:#f0d39a;font-size:24px}.inventory-shell .gear-detail{border:1px solid #4b3d28;background:#0d0c0a;color:#eee}.inventory-shell .gear-detail p{color:#bdb19d}.inventory-shell .bag-grid{grid-template-columns:repeat(4,1fr);padding:8px;max-height:650px}.inventory-shell .bag-item{min-height:130px;border:1px solid #4b402e;border-radius:3px;background:radial-gradient(circle at 50% 35%,#26231d,#080808 72%);color:#e4d4b5;box-shadow:inset 0 0 0 2px #12100c}.inventory-shell .bag-item.equipped{border-color:#9b6bcd;background:radial-gradient(circle at 50% 35%,#30213c,#09070c 72%)}.inventory-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #6a5533;background:#090806}.inventory-tabs button{display:grid;place-items:center;gap:4px;min-height:76px;border:0;border-right:1px solid #4c3c26;background:linear-gradient(#19150f,#080706);color:#aa9b80}.inventory-tabs button:last-child{border-right:0}.inventory-tabs button span{font-size:26px}.inventory-tabs button b{font-family:Georgia,serif}.inventory-tabs button.active{color:#f5d58c;background:radial-gradient(circle at 50% 30%,#604317,#151009 72%);box-shadow:inset 0 0 14px #d99a2844}@keyframes characterIdle{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.004) translateY(-2px)}}
.battle-screen{position:relative;min-height:620px;border-radius:20px;overflow:hidden;color:#fff;background:linear-gradient(#101f3d 0 45%,#4c342b 46%,#15131a 100%);padding:20px}.floor-label{text-align:center;font-size:20px;font-weight:900;letter-spacing:3px}.boss-panel{position:absolute;right:8%;top:65px;width:48%;text-align:center}.dragon{font-size:150px;filter:drop-shadow(0 10px 20px #000);transform:scaleX(-1)}.hero-battle{position:absolute;left:7%;bottom:110px;width:42%;text-align:center}.hero-back{font-size:100px;filter:drop-shadow(0 8px 10px #000)}.hp-bar{position:relative;height:24px;border:2px solid #fff8;background:#270b13;border-radius:999px;overflow:hidden}.hp-bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#13a34a,#5fff88);transition:width .35s}.hp-bar.boss i{background:linear-gradient(90deg,#c5142d,#ff5b45)}.hp-bar span{position:relative;z-index:2;font-size:11px;font-weight:900;line-height:20px}.battle-message{position:absolute;left:5%;right:5%;top:50%;text-align:center;padding:10px;background:#0009;border-radius:12px}.battle-actions{position:absolute;left:5%;right:5%;bottom:20px;display:flex;gap:10px}.battle-actions button{flex:1;border:0;border-radius:13px;padding:15px;background:linear-gradient(135deg,#0d8eff,#633ad7);color:#fff;font-weight:900}.battle-actions button:disabled{opacity:.45}
.battle-screen.battle-3d{min-height:620px;padding:0;background:#2b221b url("hinhanh/chien-dau/chien-truong-trong-3d.png") center bottom/cover no-repeat;border:1px solid #62523b;box-shadow:inset 0 0 45px #0008}.battle-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(#0008 0,#0000 35%,#0000 72%,#0003 100%);pointer-events:none}.battle-actors{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}.player-actor{position:absolute;left:4%;bottom:9%;width:min(32vw,370px);transform-origin:50% 88%;animation:playerBreath 2.4s ease-in-out infinite}.player-actor>img:first-child,.boss-actor>img{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 16px #000)}.boss-actor{position:absolute;right:2%;bottom:17%;width:min(58vw,760px);transform-origin:54% 78%;animation:dragonBreath 3.1s ease-in-out infinite}.held-battle-weapon{position:absolute;z-index:3;right:-4%;top:38%;width:38%;height:54%;object-fit:contain;filter:brightness(1.18) contrast(1.1) drop-shadow(0 0 8px #9fd3ff);transform-origin:42% 23%;transform:rotate(-34deg)}.held-battle-weapon.weapon-spear,.held-battle-weapon.weapon-staff,.held-battle-weapon.weapon-scythe{right:-8%;top:30%;width:42%;height:64%}.held-battle-weapon.weapon-bow{right:-10%;top:36%;width:42%;height:55%;transform:rotate(-24deg)}.held-battle-weapon.weapon-dual{right:-9%;top:39%;width:44%;height:52%}.held-battle-weapon.weapon-shield{right:-10%;top:49%;width:38%;height:39%;transform:rotate(-16deg)}.held-battle-weapon.weapon-hammer{right:-8%;top:35%;width:44%;height:57%}.held-battle-weapon.weapon-fan{right:-8%;top:48%;width:39%;height:38%;transform:rotate(-18deg)}.held-battle-weapon.weapon-gun{right:-9%;top:49%;width:39%;height:35%;transform:rotate(-18deg)}.player-actor.attacking{animation:playerAttack .62s cubic-bezier(.2,.7,.3,1) 1}.player-actor.attacking .held-battle-weapon{animation:weaponSlash .62s cubic-bezier(.2,.7,.3,1) 1}.player-actor.using-skill{animation:playerSkill .7s ease-in-out 1}.boss-actor.attacking{animation:dragonAttack .78s cubic-bezier(.2,.65,.2,1) 1}.boss-actor.taking-hit{animation:bossHit .3s ease-out 1}.player-actor.taking-hit{animation:playerHit .3s ease-out 1}.battle-3d .floor-label{position:absolute;z-index:2;top:14px;left:14px;padding:8px 14px;border:1px solid #a88a58;background:#080808c9;border-radius:999px;color:#f4d28c;font-family:Georgia,serif;font-size:14px}.battle-3d .boss-panel{z-index:2;top:18px;left:28%;right:12%;width:auto}.boss-name{display:flex;justify-content:center;gap:10px;align-items:baseline;text-shadow:0 2px 5px #000}.boss-name b{font-family:Georgia,serif;color:#f6d89a;font-size:20px}.boss-name small{color:#ddd}.battle-3d .hp-bar{height:25px;border:2px solid #b99c70;background:#25040a;box-shadow:0 2px 8px #000}.battle-3d .hero-battle{z-index:2;left:3%;bottom:92px;width:31%;text-align:left;padding:10px;background:linear-gradient(90deg,#050505db,#05050522);border-radius:14px}.player-copy{display:flex;justify-content:space-between;align-items:end;margin-bottom:4px}.player-copy b{color:#f3d798;font-family:Georgia,serif}.player-copy small{font-size:10px;color:#ddd}.battle-weapon{font-size:10px;margin-top:5px;color:#f1c66c}.battle-weapon.empty{color:#bbb}.battle-3d .battle-message{z-index:2;left:34%;right:26%;top:auto;bottom:104px;padding:9px;font-size:12px;border:1px solid #806c4f;background:#050505c9}.battle-3d .battle-actions{z-index:2;left:auto;right:3%;bottom:20px;width:47%;gap:12px}.battle-3d .battle-actions button{min-height:65px;border:1px solid #bd9c5c;border-radius:9px;background:radial-gradient(circle at 50% 30%,#633813,#160d08 75%);box-shadow:inset 0 0 0 3px #080706,0 4px 14px #000}.battle-3d .battle-actions button:first-child{box-shadow:inset 0 0 0 3px #080706,0 0 18px #f5a50099}.battle-3d .battle-actions button span,.battle-3d .battle-actions button b{display:block}.battle-3d .battle-actions button span{font-size:25px;color:#ffd66d}.battle-3d .battle-actions button b{margin-top:4px;font-family:Georgia,serif}
.battle-mode{overflow:hidden!important;background:#2b221b}.battle-mode .modal-layer{padding:0;background:#2b221b}.battle-mode .modal-backdrop{display:none}.battle-mode .modal{width:100vw;height:100vh;max-height:none;padding:0;border-radius:0;background:#2b221b;box-shadow:none}.battle-mode .modal-close{z-index:20;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));width:auto;height:36px;padding:0 14px;border-radius:9px;background:#050505c9;border:1px solid #a98b59;color:#f2d192;font-size:13px;font-weight:900}.battle-mode .battle-screen.battle-3d{width:100vw;height:100vh;min-height:0;border:0;border-radius:0;background-position:center bottom}.battle-mode .battle-3d .floor-label{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left))}.battle-mode .battle-3d .boss-panel{top:max(14px,env(safe-area-inset-top))}.battle-mode .battle-3d .battle-actions{right:max(3%,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}.battle-mode .battle-3d .hero-battle{left:max(3%,env(safe-area-inset-left));bottom:max(90px,calc(env(safe-area-inset-bottom) + 72px))}
.battle-sound{position:absolute;z-index:19;top:58px;right:14px;width:42px;height:42px;border:1px solid #a98b59;border-radius:50%;background:#050505c9;color:#f6d78e;font-size:20px;display:grid;place-items:center}.battle-mode .battle-sound{top:max(56px,calc(env(safe-area-inset-top) + 48px));right:max(10px,env(safe-area-inset-right))}
.battle-danger-warning{position:absolute;z-index:17;left:50%;top:27%;width:min(620px,86vw);transform:translateX(-50%);display:grid;place-items:center;gap:0;color:#fff;text-align:center;pointer-events:none;animation:dangerWarningBlink 2s steps(1,end) both}.battle-danger-warning img{display:block;width:100%;height:auto;filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 24px #ff1600)}.battle-danger-warning strong{margin-top:-5%;padding:6px 18px;border-radius:999px;background:#150000d9;color:#fff;font:900 clamp(16px,3vw,25px) Arial,sans-serif;letter-spacing:.5px;text-shadow:0 0 9px #ff1b00,0 2px 4px #000}@keyframes dangerWarningBlink{0%,29%,62%{opacity:1;filter:brightness(1.4);transform:translateX(-50%) scale(1.03)}20%,53%,86%{opacity:.12;filter:brightness(.6);transform:translateX(-50%) scale(.96)}100%{opacity:0}}
.battle-map-fade{position:fixed;z-index:100000;inset:0;background:#000;opacity:0;pointer-events:auto;animation:battleMapFade 1s ease-in-out both}@keyframes battleMapFade{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.dragon-gate-transition{position:fixed;z-index:100001;inset:0;overflow:hidden;background:#000;pointer-events:none}.dragon-gate-half{position:absolute;top:0;width:50.1%;height:100%;background-image:url("hinhanh/chien-dau/cong-rong-boss.webp");background-repeat:no-repeat;background-size:200% 100%;transition:transform .72s cubic-bezier(.72,.02,.28,1) .22s;will-change:transform}.dragon-gate-half.left{left:0;background-position:left center}.dragon-gate-half.right{right:0;background-position:right center}.dragon-gate-transition.opening .dragon-gate-half.left{transform:translateX(-102%)}.dragon-gate-transition.opening .dragon-gate-half.right{transform:translateX(102%)}.dragon-gate-light{position:absolute;z-index:3;inset:0;background:radial-gradient(circle at center,#fff 0 8%,#fff9 25%,transparent 64%);opacity:0;transform:scale(.15);mix-blend-mode:screen}.dragon-gate-transition.opening .dragon-gate-light{animation:dragonGateBurst 1.25s ease-out .16s both}.dragon-gate-touch{position:absolute;z-index:5;inset:7% 10%;border:0;background:transparent;pointer-events:auto;cursor:pointer}.dragon-gate-touch span{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);min-width:190px;padding:10px 18px;border:1px solid #d6a348;border-radius:999px;background:#07090dde;color:#ffe7ae;font-weight:900;box-shadow:0 0 25px #000;animation:dragonGateHint 1.4s ease-in-out infinite}.dragon-gate-transition.opening .dragon-gate-touch{pointer-events:none}@keyframes dragonGateHint{50%{transform:translateX(-50%) translateY(-5px);box-shadow:0 0 28px #e8a94399}}@keyframes dragonGateBurst{0%{opacity:0;transform:scale(.12)}42%{opacity:1;transform:scale(1.25)}72%{opacity:1;transform:scale(2)}100%{opacity:0;transform:scale(2.5)}}

.modal-layer.boss-preparation-layer{padding:0;background:#000}.modal.boss-preparation-modal{width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0;background:#050709;overflow:hidden}.boss-preparation-modal>.modal-close{z-index:30;top:max(12px,env(safe-area-inset-top));right:12px;background:#080b10d9;color:#ffe7a5;border:1px solid #a77831}.boss-preparation-modal #modalContent{height:100%}.boss-preparation{position:relative;width:100%;height:100%;overflow:hidden;padding:max(54px,calc(env(safe-area-inset-top) + 44px)) 5vw max(20px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(270px,.9fr);grid-template-rows:auto 1fr auto;gap:14px;color:#eef5ff;background:radial-gradient(circle at 30% 48%,#26384a70,transparent 38%),linear-gradient(145deg,#111a24,#030507 70%)}.sleeping-boss{position:relative;grid-row:1/4;align-self:center;min-width:0;height:82%;display:grid;place-items:center}.sleeping-boss:after{content:"ĐANG NGỦ";position:absolute;bottom:8%;padding:7px 18px;border:1px solid #7994ab;border-radius:999px;background:#03070bcf;color:#bcd3e8;font:900 12px Georgia,serif;letter-spacing:3px}.sleeping-boss img{max-width:100%;max-height:100%;object-fit:contain;filter:brightness(.55) saturate(.72) drop-shadow(0 22px 30px #000);animation:sleepingDragonBreath 3.4s ease-in-out infinite}.sleeping-boss span{position:absolute;color:#cce9ff;font:900 24px Georgia,serif;text-shadow:0 0 12px #62baff;animation:sleepZ 2.4s ease-out infinite}.sleeping-boss span:nth-of-type(1){left:68%;top:25%}.sleeping-boss span:nth-of-type(2){left:74%;top:18%;animation-delay:.7s}.sleeping-boss span:nth-of-type(3){left:80%;top:11%;animation-delay:1.4s}@keyframes sleepingDragonBreath{50%{transform:translateY(-7px) scale(1.018);filter:brightness(.62) saturate(.78) drop-shadow(0 25px 34px #000)}}@keyframes sleepZ{0%{opacity:0;transform:translateY(12px) scale(.7)}30%{opacity:1}100%{opacity:0;transform:translateY(-25px) scale(1.15)}}
.boss-preparation>header{align-self:end}.boss-preparation>header small{color:#e8b85e;font-weight:900;letter-spacing:3px}.boss-preparation>header h2{margin:5px 0;color:#fff0bd;font:900 clamp(28px,5vw,54px) Georgia,serif;text-shadow:0 0 18px #d27624}.boss-preparation>header p{margin:0;color:#b9c7d3}.boss-counter-panel,.preboss-loadout{padding:14px;border:1px solid #6e5938;border-radius:16px;background:#071019d9;box-shadow:inset 0 0 25px #0008}.boss-counter-panel h3,.preboss-loadout h3{margin:0 0 8px;color:#f2cc7b;font-family:Georgia,serif}.boss-counter-panel p{margin:4px 0 8px;color:#8fd3ff}.boss-counter-panel ul{margin:0;padding-left:20px}.boss-counter-panel li{margin:6px 0;color:#d9e3eb}.boss-counter-panel strong{color:#ff755e}.preboss-loadout{display:grid;gap:7px;align-content:start}.preboss-loadout>button{display:grid;grid-template-columns:32px 58px 1fr;align-items:center;gap:8px;min-width:0;padding:6px;border:1px solid #405268;border-radius:11px;background:#0b1723;color:#eef6ff;text-align:left}.preboss-loadout>button.active{border-color:#e2ac48;box-shadow:0 0 16px #e2a63f70,inset 0 0 16px #9b641c35}.preboss-loadout>button:disabled{opacity:.55}.preboss-loadout>button i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#172638;color:#ffd478;font:900 12px Georgia,serif}.preboss-loadout>button img{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 0 7px #ffcf78)}.preboss-loadout>button span{min-width:0}.preboss-loadout>button b,.preboss-loadout>button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preboss-loadout>button small{color:#9fb2c4;font-size:10px}.preboss-loadout>p{margin:4px 0 0;color:#b7c4cf;font-size:11px}.boss-preparation>footer{display:flex;gap:10px}.boss-preparation>footer button{flex:1;padding:12px;border:1px solid #876833;border-radius:11px;background:linear-gradient(#533817,#1f1308);color:#ffe8ac;font-weight:900}.boss-preparation>footer button:disabled{opacity:.45}
.preboss-enter-button{position:absolute;z-index:12;left:50%;top:50%;transform:translate(-50%,-50%);min-width:190px;padding:13px 30px 11px;border:1px solid #ffcc69;border-radius:999px;background:linear-gradient(180deg,#b65820f2,#501509f2);color:#fff4cb;box-shadow:0 0 0 4px #120804a8,0 0 24px #ff7a28b8,inset 0 1px 0 #ffe09c;font:900 17px Georgia,serif;letter-spacing:.5px;text-align:center;text-shadow:0 2px 4px #240500;cursor:pointer;animation:prebossEnterFloat 2.2s ease-in-out infinite}.preboss-enter-button:before{content:"";position:absolute;inset:-7px;border:1px solid #ffb74380;border-radius:inherit;animation:prebossEnterPulse 2.2s ease-out infinite}.preboss-enter-button span,.preboss-enter-button small{position:relative;z-index:1;display:block}.preboss-enter-button small{margin-top:2px;color:#ffd991;font:800 9px Arial,sans-serif;letter-spacing:2px;text-transform:uppercase}.preboss-enter-button:hover{filter:brightness(1.16)}.preboss-enter-button:disabled{opacity:.45;filter:grayscale(.7);cursor:not-allowed;animation:none}@keyframes prebossEnterFloat{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 10px));box-shadow:0 0 0 4px #120804a8,0 0 34px #ff9a3dcc,inset 0 1px 0 #ffe09c}}@keyframes prebossEnterPulse{0%{opacity:.75;transform:scale(.96)}70%,100%{opacity:0;transform:scale(1.14)}}

.character-gear-slot-wrap{position:relative;min-height:0}.character-gear-slot-wrap>.character-gear-slot{width:100%;height:100%}.character-gear-slot-wrap:nth-child(odd){transform:translateX(6px)}.character-gear-slot-wrap:nth-child(even){transform:translateX(-6px)}.weapon-roman-slots{position:absolute;z-index:8;right:5px;bottom:5px;display:flex;gap:2px}.weapon-roman-slots button{width:23px;height:20px;padding:0;border:1px solid #53657a;border-radius:4px;background:#07101b;color:#9caabb;font:900 8px Georgia,serif}.weapon-roman-slots button.filled{color:#ffe4a0}.weapon-roman-slots button.active{border-color:#e2aa45;background:#6b4213;color:#fff2c7;box-shadow:0 0 8px #ffbc45}
@media(max-width:760px){.boss-preparation{padding:max(50px,calc(env(safe-area-inset-top) + 40px)) 12px max(12px,env(safe-area-inset-bottom));grid-template-columns:1fr;grid-template-rows:34% auto auto auto;gap:7px;overflow-y:auto}.sleeping-boss{grid-row:auto;height:100%}.sleeping-boss:after{bottom:2%;font-size:8px}.preboss-enter-button{position:fixed;top:31%;min-width:160px;padding:10px 22px 9px;font-size:14px}.boss-preparation>header h2{font-size:24px}.boss-preparation>header p{font-size:10px}.boss-counter-panel,.preboss-loadout{padding:9px}.boss-counter-panel h3,.preboss-loadout h3{font-size:13px}.boss-counter-panel p,.boss-counter-panel li{font-size:9px}.preboss-loadout>button{grid-template-columns:26px 40px 1fr;padding:4px}.preboss-loadout>button img{width:38px;height:38px}.preboss-loadout>button b{font-size:9px}.preboss-loadout>button small{font-size:7px}.boss-preparation>footer button{padding:9px;font-size:10px}.weapon-roman-slots{right:3px;bottom:3px}.weapon-roman-slots button{width:19px;height:17px;font-size:7px}}
.battle-outcome{position:absolute;z-index:18;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#020204b8;backdrop-filter:blur(2px);animation:battleOutcomeIn .45s ease-out}.battle-outcome img{display:block;width:min(78vw,980px);max-height:46vh;object-fit:contain;filter:drop-shadow(0 8px 28px #000)}.battle-outcome button{border:1px solid #d7ad5a;border-radius:10px;padding:13px 28px;background:linear-gradient(#684417,#241306);box-shadow:inset 0 0 0 2px #100804,0 0 24px #f2a51c88;color:#ffe5a6;font-family:Georgia,serif;font-size:17px;font-weight:900}.battle-outcome b{font:900 24px Georgia,serif;color:#f7d386;text-shadow:0 2px 8px #000}.battle-outcome small{color:#ddd}.chest-drop #battleChest{width:min(70vw,420px);height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;animation:chestDrop .75s cubic-bezier(.2,.8,.3,1),chestGlow 1.3s ease-in-out .75s infinite}.chest-drop #battleChest img{width:100%;max-height:40vh;object-fit:contain}.reward-result>.battle-open-chest{width:min(68vw,400px);max-height:30vh;animation:chestOpen .5s ease-out;filter:drop-shadow(0 0 24px #ffac28)}.reward-result>span{font-size:76px;filter:drop-shadow(0 0 20px #ffb000)}.defeat{background:#090101c9}.battle-outcome.defeat img{filter:drop-shadow(0 8px 28px #000) saturate(.88)}@keyframes battleOutcomeIn{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}@keyframes chestDrop{from{transform:translateY(-75vh) rotate(-18deg)}70%{transform:translateY(16px) rotate(5deg)}to{transform:none}}@keyframes chestGlow{50%{transform:scale(1.04);filter:drop-shadow(0 0 35px #ffc23e)}}@keyframes chestOpen{from{opacity:.35;transform:scale(.88)}to{opacity:1;transform:none}}
@keyframes playerBreath{50%{transform:translateY(-3px) scale(1.008)}}@keyframes dragonBreath{50%{transform:translateY(-5px) scale(1.014)}}@keyframes playerAttack{0%{transform:none}35%{transform:translate(-4%,2%) rotate(-5deg)}72%{transform:translate(24%,-7%) rotate(10deg)}100%{transform:none}}@keyframes weaponSlash{0%{transform:rotate(-34deg)}35%{transform:rotate(-62deg)}72%{transform:rotate(42deg) scale(1.08)}100%{transform:rotate(-34deg)}}@keyframes playerSkill{50%{transform:translateY(-5%) scale(1.07);filter:drop-shadow(0 0 22px #9d73ff)}}@keyframes dragonAttack{0%{transform:none}38%{transform:translate(5%,-2%) rotate(2deg)}75%{transform:translate(-13%,9%) scale(1.07)}100%{transform:none}}@keyframes bossHit{35%{transform:translate(5%,-1%);filter:brightness(2) saturate(.4)}}@keyframes playerHit{35%{transform:translate(-7%,2%);filter:brightness(1.9) sepia(1)}}@media (orientation:portrait) and (max-width:900px){.battle-mode .battle-screen.battle-3d{background-position:49% center}.battle-mode .boss-actor{width:95vw;max-width:none;right:-18%;bottom:43%}.battle-mode .player-actor{width:54vw;max-width:none;left:-4%;bottom:18%}.battle-mode .battle-3d .boss-panel{top:9%;left:15%;right:6%}.battle-mode .battle-3d .hero-battle{left:3%;bottom:13%;width:56%}.battle-mode .battle-3d .battle-message{left:5%;right:5%;bottom:24%;font-size:11px}.battle-mode .battle-3d .battle-actions{left:5%;right:5%;bottom:3%;width:auto}.battle-mode .battle-sound{top:4%;right:3%}}

.element-kill{position:absolute;z-index:18;inset:0;overflow:hidden;pointer-events:none}.element-kill-shot{position:absolute;left:var(--tx);top:var(--ty);width:var(--size);height:auto;filter:drop-shadow(0 0 12px #fff8);opacity:0;animation:elementKillFall var(--duration) cubic-bezier(.12,.72,.34,1) var(--delay) both}.element-kill-giant{position:absolute;z-index:2;left:58%;top:17%;width:min(43vw,490px);height:auto;opacity:0;filter:drop-shadow(0 0 28px #fff);animation:elementKillGiant 1.05s cubic-bezier(.12,.72,.2,1) 1s both}.element-kill-title{position:absolute;z-index:4;left:50%;top:15%;transform:translateX(-50%);font:900 clamp(24px,5vw,58px) Georgia,serif;color:#fff;text-shadow:0 0 8px #fff,0 0 22px #ff5a00,0 4px 4px #000;animation:elementKillTitle 1.8s ease both}.element-kill-water .element-kill-title{text-shadow:0 0 8px #fff,0 0 24px #27aaff,0 4px 4px #000}.element-kill-rock .element-kill-title{text-shadow:0 0 8px #fff,0 0 24px #ff2400,0 4px 4px #000}.player-actor.element-kill-casting{animation:ultimateRaiseCharge 2.95s ease-in-out both!important}.player-actor.element-kill-casting .held-battle-weapon{opacity:0}.boss-actor.kill-hit{animation:elementKillBossHit .26s ease-out both!important}.battle-screen.element-kill-running{animation:elementKillCamera .13s linear infinite}.damage-pop.element-kill-damage.giant b{display:block;color:#fff4ad;font-size:18px;text-shadow:0 0 12px #ff3b00}.damage-pop.element-kill-damage.giant span{font-size:38px;color:#fff}
.boss-actor.impact-flash,.player-actor.impact-flash{animation:impactFlashShake .31s ease-out both!important}
.player-body-sprite{opacity:1!important;visibility:visible!important;backface-visibility:hidden;transform:translateZ(0);will-change:transform,filter}
@keyframes elementKillFall{0%{opacity:0;transform:translate(-58vw,-45vh) rotate(var(--rot)) scale(.55)}12%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translate(0,0) rotate(var(--rot)) scale(1.1)}}@keyframes elementKillGiant{0%{opacity:0;transform:translate(-78vw,-62vh) rotate(-18deg) scale(.45)}12%{opacity:1}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}@keyframes elementKillTitle{0%{opacity:0;transform:translate(-50%,-25px) scale(.65)}18%,70%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-15px) scale(1.1)}}@keyframes elementKillBossHit{35%{transform:translate(5%,-2%) rotate(1deg);filter:brightness(2.7) saturate(.25)}70%{transform:translate(-3%,1%);filter:brightness(1.7)}}@keyframes elementKillCamera{0%,100%{transform:translate(0)}25%{transform:translate(3px,-2px)}50%{transform:translate(-3px,2px)}75%{transform:translate(2px,3px)}}@keyframes impactFlashShake{0%,100%{filter:brightness(1);transform:translate(0)}28%{filter:brightness(2.8) saturate(.25);transform:translate(5px,-2px)}55%{filter:brightness(1.55);transform:translate(-4px,2px)}78%{transform:translate(2px,-1px)}}
.damage-pop{position:absolute;z-index:8;left:50%;top:34%;display:flex;flex-direction:column;align-items:center;pointer-events:none;transform:translate(-50%,-50%);animation:damageFloat .82s cubic-bezier(.15,.75,.25,1) forwards}.damage-pop span{font:900 clamp(24px,5vw,58px) Georgia,serif;color:#a90000;-webkit-text-stroke:1px #ffd1b0;text-shadow:0 2px 0 #2d0000,0 0 7px #ff2800,0 4px 12px #000}.damage-pop.critical{top:28%;animation:criticalDamage 1.05s cubic-bezier(.12,.82,.25,1) forwards}.damage-pop.critical b{white-space:nowrap;font:900 clamp(16px,3.4vw,40px) Georgia,serif;letter-spacing:2px;color:#ffd43b;-webkit-text-stroke:1px #741500;text-shadow:0 0 8px #fff0a3,0 0 18px #ff6a00,0 3px 6px #3b0000}.damage-pop.critical span{font-size:clamp(36px,7vw,78px);color:#ff3a16;-webkit-text-stroke:2px #ffe26e;text-shadow:0 0 8px #fff,0 0 22px #ff8a00,0 5px 10px #410000}.damage-pop.critical:before,.damage-pop.critical:after{content:"✦";position:absolute;top:35%;color:#ffd43b;font-size:26px;text-shadow:0 0 12px #ff6a00;animation:critSpark .8s ease-out forwards}.damage-pop.critical:before{left:-30px}.damage-pop.critical:after{right:-30px}.battle-screen.hit-shake{animation:hitShake .25s linear}.battle-screen.critical-shake{animation:criticalShake .42s linear}@keyframes damageFloat{0%{opacity:0;transform:translate(-50%,10%) scale(.55)}25%{opacity:1;transform:translate(-50%,-20%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-145%) scale(.92)}}@keyframes criticalDamage{0%{opacity:0;transform:translate(-50%,15%) scale(.35) rotate(-5deg)}22%{opacity:1;transform:translate(-50%,-18%) scale(1.35) rotate(2deg)}48%{transform:translate(-50%,-35%) scale(.98)}100%{opacity:0;transform:translate(-50%,-150%) scale(1.08)}}@keyframes critSpark{to{opacity:0;transform:translateY(-45px) scale(1.6) rotate(70deg)}}@keyframes hitShake{25%{transform:translateX(-3px)}50%{transform:translateX(3px)}75%{transform:translateX(-2px)}}@keyframes criticalShake{15%{transform:translate(-7px,2px)}30%{transform:translate(7px,-2px)}48%{transform:translate(-5px,1px)}66%{transform:translate(4px,-1px)}82%{transform:translate(-2px)}}
@keyframes superPulse{to{transform:scale(1.035) rotate(.6deg);filter:saturate(1.3)}}@keyframes rarePulse{to{transform:scale(1.025);box-shadow:0 0 75px #766cff}}@keyframes hintPop{to{transform:scale(1.08);text-shadow:0 0 20px currentColor}}
.toast{position:fixed;left:50%;bottom:95px;transform:translate(-50%,30px);opacity:0;background:#071a3c;color:#fff;padding:12px 17px;border-radius:12px;z-index:200;transition:.2s;max-width:min(90vw,700px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(1180px,100%);height:72px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);z-index:40;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;align-content:center;gap:3px}.bottom-nav button span{font-size:20px}.bottom-nav button small{font-size:11px}.bottom-nav .active{color:var(--blue);background:linear-gradient(180deg,#eaf3ff,transparent)}
@media(max-width:760px){
  .topbar{height:62px;padding:0 12px}.brand-mark{width:36px;height:36px}.brand-copy b{font-size:17px}.search-bar{top:62px;padding:8px 12px}.page{padding:12px}.boi-hero{padding:28px 20px;min-height:410px}.hero-device{position:absolute;opacity:.25;right:15px}.hero-copy h1{font-size:34px}.page-title-card{padding:23px 19px}.stage-leaderboard{min-height:390px;background-position:center 55%}.leaderboard-copy{width:100%;padding:15px 13px 92px}.leaderboard-copy h1{font-size:25px}.leaderboard-row{grid-template-columns:68px minmax(80px,1fr);min-height:68px;padding:2px 8px 2px 2px}.rank-badge{width:64px;height:64px}.leaderboard-row strong{grid-column:2}.leaderboard-warrior-wrap{right:-8%;bottom:-5%;width:68%;height:68%;opacity:.88}.leaderboard-smoke{width:90%}.game-row{grid-template-columns:96px minmax(0,1fr);column-gap:14px;padding:10px}.game-avatar{width:96px;height:92px}.game-date{grid-column:2;margin-left:2px}.summon-panel{display:block}.summon-actions{margin-top:14px}.summon-actions button{flex:1}.card-grid{grid-template-columns:1fr}.collect-card{grid-template-columns:145px 1fr;min-height:215px}.form-grid{grid-template-columns:1fr}.auto-products{grid-template-columns:1fr}.auto-card{display:grid;grid-template-columns:110px 1fr}.auto-card-art{height:100%}.profile-stats{grid-template-columns:1fr}.modal{padding:20px}.game-detail-head{grid-template-columns:85px 1fr}.game-detail-head .game-avatar{width:85px;height:78px}.inventory-layout{grid-template-columns:1fr}.inventory-shell .character-stage{min-height:470px}.inventory-shell .bag-grid{grid-template-columns:repeat(3,1fr);max-height:430px}.inventory-shell .bag-item{min-height:112px}.battle-screen.battle-3d{min-height:500px;background-position:55% center}.battle-3d .floor-label{top:8px;left:8px;font-size:10px;padding:6px 9px}.battle-3d .boss-panel{top:10px;left:25%;right:3%}.boss-name{display:block}.boss-name b{font-size:14px}.boss-name small{display:none}.battle-3d .hero-battle{left:2%;bottom:88px;width:47%;padding:7px}.player-copy small{display:none}.battle-3d .battle-message{left:3%;right:3%;bottom:74px;font-size:10px}.battle-3d .battle-actions{left:3%;right:3%;bottom:8px;width:auto}.battle-3d .battle-actions button{min-height:57px;padding:7px}.battle-3d .battle-actions button span{font-size:19px}
}

/* =========================================================
   YÊU CẦU 24 · CAMERA 2.5D CINEMATIC
   Chỉ Boss Cỏ tại các ải x-4 trong Hang động thám hiểm.
   ========================================================= */
.battle-screen.battle-grass-x4-cinematic,
.battle-mode .battle-screen.battle-grass-x4-cinematic{
  isolation:isolate;
  background-color:#0d1b10;
  background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-1-default.webp")!important;
  background-position:center center!important;
  background-size:cover!important;
  overflow:hidden;
}
.battle-grass-x4-cinematic[data-cinematic-camera="2"]{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-2-front.webp")!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"]{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-3-behind.webp")!important}
.battle-grass-x4-cinematic[data-cinematic-camera="4"]{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-4-wide.webp")!important}
.battle-grass-x4-cinematic[data-cinematic-camera="impact"]{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-4-wide.webp")!important;background-position:68% center!important}
.cinematic-map-stack{position:absolute;z-index:0;inset:0;overflow:hidden;background:#07150b;pointer-events:none}
.cinematic-map-frame{position:absolute;inset:-2%;opacity:0;background-position:center;background-size:cover;background-repeat:no-repeat;transform:scale(1.035);transform-origin:70% 73%;transition:opacity .34s ease,transform .11s linear;will-change:opacity,transform}
.cinematic-map-frame.active{opacity:1;transform:scale(var(--cinematic-world-zoom,1))}
.battle-grass-x4-cinematic[data-cinematic-camera="2"] .cinematic-map-frame.active{animation:grassMapFrontPush .72s ease-out both}
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .cinematic-map-frame.active{animation:none;transform:scale(var(--cinematic-world-zoom,1))}
.battle-grass-x4-cinematic[data-cinematic-camera="4"] .cinematic-map-frame.active{animation:grassMapWideOpen .72s ease-out both}
.cinematic-scene-light{position:absolute;z-index:2;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:screen;transition:background .28s ease,opacity .28s ease}
.cinematic-key-light{position:absolute;right:-24%;top:-26%;width:82%;height:78%;border-radius:50%;background:radial-gradient(circle,#efffcf38 0,#abff6c17 35%,transparent 72%);filter:blur(18px);transition:transform .5s ease,opacity .3s ease}
.cinematic-ground-haze{position:absolute;left:-10%;right:-10%;bottom:-12%;height:40%;background:radial-gradient(ellipse,#d7ffc51e 0,#07100900 68%);filter:blur(16px)}
.battle-grass-x4-cinematic[data-cinematic-camera="2"] .cinematic-key-light{transform:translate(-45%,18%) scale(1.18);opacity:.68}
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .cinematic-key-light{transform:translate(-18%,9%) scale(1.05);opacity:.85}
.battle-grass-x4-cinematic[data-cinematic-camera="4"] .cinematic-key-light{transform:translate(-6%,4%) scale(1.35);opacity:.9}
.battle-grass-x4-cinematic .battle-shade{z-index:1;background:linear-gradient(#06100970 0,#0000 31%,#0000 73%,#0206048f 100%);transition:background .3s ease,filter .3s ease}
.battle-grass-x4-cinematic[data-cinematic-camera="2"] .battle-shade{background:linear-gradient(#04110844,#0000 48%,#00150666)}
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .battle-shade{background:linear-gradient(#020a0570,#0000 38%,#0108038f)}
.battle-grass-x4-cinematic[data-cinematic-camera="4"] .battle-shade{background:linear-gradient(#06100945,#0000 58%,#0206047d)}
.battle-grass-x4-cinematic .battle-actors{z-index:3;perspective:1200px;transform-style:preserve-3d}
.battle-grass-x4-cinematic .player-actor,
.battle-grass-x4-cinematic .boss-actor{
  max-width:none!important;
  animation:none!important;
  transition:left .3s ease,right .3s ease,bottom .3s ease,width .3s ease,opacity .2s ease,filter .3s ease,transform .3s ease;
  will-change:transform,left,right,bottom,width,filter;
}
.battle-grass-x4-cinematic .player-actor{left:-4%;bottom:10%;width:min(53vw,520px);z-index:5;transform-origin:50% 90%}
.battle-grass-x4-cinematic .boss-actor.ancient-tree-boss{right:-17%;bottom:37%;width:min(88vw,880px);z-index:4;transform-origin:54% 84%}
.battle-grass-x4-cinematic .player-body-sprite,
.battle-grass-x4-cinematic .boss-body-sprite{width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 14px 17px #000c);transition:opacity .16s ease}
.battle-grass-x4-cinematic .cinematic-fixed-weapon{right:-8%;top:34%;width:44%;height:62%;object-fit:contain;transform-origin:44% 25%;transform:rotate(-34deg);filter:brightness(1.12) contrast(1.08) drop-shadow(0 0 10px #ffb02c99)}
.cinematic-run-rig{display:none;position:absolute;inset:0;filter:drop-shadow(0 14px 17px #000c);transform-style:preserve-3d;pointer-events:none}
.rig-bone{position:absolute;inset:0;display:block;transform:translateZ(0);will-change:transform}
.rig-bone>img{display:block;width:100%;height:auto;object-fit:contain}
.rig-torso{clip-path:polygon(31% 21%,72% 21%,78% 55%,27% 56%);z-index:4;transform-origin:51% 50%}
.rig-head{clip-path:polygon(42% 17%,65% 17%,66% 34%,42% 34%);z-index:7;transform-origin:53% 30%}
.rig-hair{clip-path:polygon(42% 10%,64% 10%,64% 23%,42% 23%);z-index:8;transform-origin:53% 21%}
.rig-arm-left{clip-path:polygon(18% 25%,46% 24%,48% 53%,18% 54%);z-index:5;transform-origin:42% 30%}
.rig-arm-right{clip-path:polygon(59% 24%,88% 25%,88% 53%,57% 53%);z-index:5;transform-origin:63% 30%}
.rig-leg-left{clip-path:polygon(31% 48%,57% 48%,57% 96%,32% 96%);z-index:3;transform-origin:48% 53%}
.rig-leg-right{clip-path:polygon(49% 49%,71% 49%,70% 91%,48% 91%);z-index:2;transform-origin:57% 54%}
.rig-coat{clip-path:polygon(15% 43%,85% 43%,88% 80%,10% 80%);z-index:1;transform-origin:51% 47%}
.rig-weapon{z-index:6;transform-origin:29% 46%}
.rig-front .rig-weapon{clip-path:polygon(1% 0,43% 0,44% 55%,21% 58%,1% 48%)}
.rig-back .rig-weapon{clip-path:polygon(50% 31%,100% 32%,100% 94%,70% 88%,52% 58%);transform-origin:65% 45%}
.battle-grass-x4-cinematic[data-cinematic-camera="2"] .player-actor{left:50%;right:auto;bottom:-7%;width:min(74vw,650px);transform:translateX(-50%) scale(1.06);z-index:7}
.battle-grass-x4-cinematic[data-cinematic-camera="2"] .boss-actor{opacity:0;right:-40%;filter:blur(5px) brightness(.7)}
.battle-grass-x4-cinematic[data-cinematic-camera="2"] .boss-panel{opacity:0!important}
.battle-grass-x4-cinematic[data-cinematic-camera="2"] .held-battle-weapon,
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .held-battle-weapon{opacity:0!important}
.battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="rush-front"] .player-actor{animation:grassPlayerRushFront .68s cubic-bezier(.2,.72,.24,1) both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="rush-front"] .player-body-sprite{opacity:1;transition:none}
.battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="rush-front"] .rig-front{display:none!important}
.battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="defend"] .player-actor{bottom:-3%;width:min(70vw,620px);animation:grassDefendHold .5s ease-in-out both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .player-actor{left:-10%;right:auto;bottom:-8%;width:min(67vw,650px);transform:rotateY(-3deg);z-index:7}
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .boss-actor{right:-10%;bottom:39%;width:min(77vw,770px);z-index:5;transform:scale(var(--cinematic-world-zoom,1));transform-origin:54% 100%;transition:right .3s ease,bottom .3s ease,width .3s ease,opacity .2s ease,filter .3s ease,transform .11s linear}
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .player-body-sprite{opacity:1;transition:none}
.battle-grass-x4-cinematic[data-cinematic-camera="3"] .rig-back{display:none!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="rush-behind"] .player-actor{animation:grassPlayerRushBehind .86s cubic-bezier(.18,.7,.22,1) both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="rush-behind"] .boss-actor{animation:none!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="melee-contact"] .player-actor{left:-4%;bottom:31%;width:min(80vw,840px);transform:none;filter:brightness(1.14);animation:grassSwordContact .08s ease-out both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="melee-contact"] .boss-actor{right:-7%;bottom:37%;width:min(84vw,840px);filter:brightness(1.18)}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="melee-contact"] .player-body-sprite{display:block;opacity:1;width:100%;height:auto;object-fit:contain}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="retreat"] .player-actor{animation:grassPlayerRetreat .42s cubic-bezier(.4,0,.35,1) both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="4"] .player-actor{left:1%;bottom:13%;width:min(30vw,300px);transform:none;z-index:5}
.battle-grass-x4-cinematic[data-cinematic-camera="4"] .boss-actor{right:1%;bottom:18%;width:min(50vw,500px);transform:none;z-index:4}
.battle-grass-x4-cinematic[data-cinematic-camera="4"][data-cinematic-pose="wide-enter"] .player-actor{animation:grassWidePlayerEnter .52s ease-out both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="4"][data-cinematic-pose="wide-enter"] .boss-actor{animation:grassWideBossEnter .52s ease-out both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="4"] .cinematic-fixed-weapon{right:-10%;top:34%;width:47%;height:64%}
.battle-grass-x4-cinematic[data-cinematic-camera="impact"] .player-actor{opacity:0;left:-45%}
.battle-grass-x4-cinematic[data-cinematic-camera="impact"] .boss-actor{right:50%;bottom:-7%;width:min(115vw,1040px);transform:translateX(50%) scale(1.03);z-index:8;filter:drop-shadow(0 0 32px #caff98aa)}
.battle-grass-x4-cinematic.grass-cinematic-running .battle-actions,
.battle-grass-x4-cinematic.grass-cinematic-running .hero-battle,
.battle-grass-x4-cinematic.grass-cinematic-running .floor-label,
.battle-grass-x4-cinematic.grass-cinematic-running .round-label,
.battle-grass-x4-cinematic.grass-cinematic-running .battle-skill-choices{opacity:0!important;pointer-events:none!important;transition:opacity .12s ease}
.battle-grass-x4-cinematic.grass-cinematic-running .boss-panel{opacity:.72;transition:opacity .12s ease}
.battle-grass-x4-cinematic.grass-cinematic-running .battle-message{z-index:42;left:12%;right:12%;bottom:5%;border-color:#b6d88b99;background:#061006c9;color:#f2ffdc}
.battle-grass-x4-cinematic.grass-cinematic-contact .boss-actor,
.battle-grass-x4-cinematic.grass-cinematic-hit .boss-actor{animation:grassBossCinematicHit .28s ease-out both!important}
.battle-grass-x4-cinematic[data-cinematic-step="left"] .player-body-sprite{transform:translateX(-1.1%) rotate(-.7deg)}
.battle-grass-x4-cinematic[data-cinematic-step="right"] .player-body-sprite{transform:translateX(1.1%) rotate(.7deg)}
.battle-grass-x4-cinematic[data-cinematic-pose="rush-front"] .rig-torso,
.battle-grass-x4-cinematic[data-cinematic-pose="rush-behind"] .rig-torso,
.battle-grass-x4-cinematic[data-cinematic-pose="melee-contact"] .rig-torso,
.battle-grass-x4-cinematic[data-cinematic-pose="retreat"] .rig-torso{animation:rigTorsoRun .38s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-head{animation:rigHeadRun .38s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-hair{animation:rigHairRun .24s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-arm-left{animation:rigArmLeftRun .38s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-arm-right{animation:rigArmRightRun .38s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-leg-left{animation:rigLegLeftRun .38s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-leg-right{animation:rigLegRightRun .38s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-coat{animation:rigCoatRun .24s ease-in-out infinite}
.battle-grass-x4-cinematic[data-cinematic-pose] .rig-weapon{animation:rigWeaponRun .38s ease-in-out infinite}

.grass-cinematic-finale{position:absolute;z-index:35;inset:0;overflow:hidden;pointer-events:none}
.grass-finale-drop{position:absolute;left:var(--drop-x);top:-18%;opacity:0;transform:scale(var(--drop-scale)) rotate(var(--drop-rotate));animation:grassCinematicDrop 1.12s cubic-bezier(.16,.7,.24,1) var(--drop-delay) both}
.grass-cinematic-finale.finale-fire .grass-finale-drop{width:48px;height:132px;border-radius:50% 50% 45% 45%;background:linear-gradient(#fff9a7 0,#ffb000 28%,#ff3d00 68%,#4b0800 100%);box-shadow:0 0 16px #fff,0 0 38px #ff4d00}
.grass-cinematic-finale.finale-ice .grass-finale-drop{width:26px;height:136px;clip-path:polygon(50% 0,100% 78%,55% 100%,0 78%);background:linear-gradient(90deg,#dfffff,#53c8ff 48%,#0b4fbd);box-shadow:0 0 16px #cfffff,0 0 34px #168cff}
.grass-cinematic-finale.finale-meteor .grass-finale-drop{width:76px;height:108px;border-radius:50% 50% 44% 44%;background:radial-gradient(circle at 38% 66%,#ffbd45 0 12%,#e63a0d 24%,#4b2117 52%,#150c09 75%);box-shadow:0 -30px 31px #ff5a00,0 0 34px #ff2a00}
.grass-holy-sword{position:absolute;z-index:4;left:72%;top:-55%;width:min(54vw,550px);height:92%;object-fit:contain;filter:brightness(2.35) saturate(.18) drop-shadow(0 0 20px #fff) drop-shadow(0 0 52px #ffe56b);transform:translateX(-50%);animation:grassHolySwordFall 1.05s cubic-bezier(.14,.74,.2,1) both}
.grass-holy-column{position:absolute;z-index:3;left:72%;top:11%;bottom:8%;width:min(17vw,170px);transform:translateX(-50%) scaleY(0);transform-origin:50% 100%;border-radius:50%;background:linear-gradient(90deg,transparent,#fff 42% 58%,transparent);filter:blur(6px) drop-shadow(0 0 34px #fff6a0);animation:grassHolyColumn 1.05s ease .32s both}
.grass-impact-core{position:absolute;z-index:8;left:72%;top:59%;width:38px;height:38px;opacity:0;transform:translate(-50%,-50%) scale(.18);border-radius:50%;background:#fff;box-shadow:0 0 18px 9px #fff,0 0 45px 21px #eaffc8,0 0 95px 42px #b7ff76}
.grass-x-ray{position:absolute;left:50%;top:50%;width:430px;height:11px;border-radius:99px;background:linear-gradient(90deg,transparent,#eaffff 24%,#fff 50%,#eaffff 76%,transparent);filter:blur(1px) drop-shadow(0 0 10px #fff);transform-origin:50% 50%}
.ray-a{transform:translate(-50%,-50%) rotate(45deg)}.ray-b{transform:translate(-50%,-50%) rotate(-45deg)}.ray-c{width:520px;height:5px;transform:translate(-50%,-50%) rotate(7deg);opacity:.75}
.grass-impact-shockwave{position:absolute;left:50%;top:50%;width:44px;height:44px;border:5px solid #fff;border-radius:50%;transform:translate(-50%,-50%) scale(.25);box-shadow:0 0 18px #fff,0 0 42px #d9ffab;opacity:0}
.grass-energy-particle{position:absolute;left:50%;top:50%;width:10px;height:34px;border-radius:50%;background:linear-gradient(#fff,#bfff69,transparent);box-shadow:0 0 12px #fff;opacity:0;transform-origin:50% 0}
.grass-impact-dust{position:absolute;z-index:6;left:72%;top:63%;width:36%;height:18%;border-radius:50%;opacity:0;filter:blur(18px);background:radial-gradient(ellipse,#f4ffe5aa 0,#92b87d55 38%,transparent 72%);transform:translate(-50%,-50%) scale(.35)}
.dust-b{top:67%;width:54%;height:23%;filter:blur(30px);background:radial-gradient(ellipse,#fff8 0,#8ca77b44 42%,transparent 73%)}
.grass-cinematic-white-flash{position:absolute;z-index:12;inset:0;background:#fff;opacity:0;pointer-events:none}
.grass-cinematic-finale.impact-hold .grass-holy-sword{filter:brightness(3.2) saturate(0) drop-shadow(0 0 28px #fff) drop-shadow(0 0 68px #fff39a)}
.grass-cinematic-finale.detonate .grass-impact-core{animation:grassImpactCoreBurst .72s ease-out both}
.grass-cinematic-finale.detonate .grass-x-ray{animation:grassRaySpinBurst .66s cubic-bezier(.15,.72,.2,1) both}
.grass-cinematic-finale.detonate .grass-impact-shockwave{animation:grassShockwaveExpand .82s ease-out both}
.grass-cinematic-finale.detonate .grass-energy-particle{animation:grassEnergyParticle .72s ease-out var(--particle-delay) both}
.grass-cinematic-finale.detonate .grass-impact-dust{animation:grassImpactDust .9s ease-out both}.grass-cinematic-finale.detonate .dust-b{animation-delay:.08s}
.grass-cinematic-finale.detonate .grass-cinematic-white-flash{animation:grassCinematicWhiteFlash 1.05s ease-out both}
.battle-grass-x4-cinematic.grass-cinematic-detonating .cinematic-map-stack{animation:grassDetonationCameraShake .7s linear both}
.battle-grass-x4-cinematic.grass-cinematic-detonating .battle-shade{filter:brightness(2.1)}
.battle-grass-x4-cinematic.grass-cinematic-detonating .boss-actor{animation:grassBossUltimateHit .78s linear both!important}
.damage-pop.grass-rain-damage{z-index:24;animation:grassRainDamageFloat .58s ease-out both}
.damage-pop.grass-rain-damage span{font-size:clamp(12px,2.3vw,26px);color:#ff3922;-webkit-text-stroke:1px #ffe3a1;text-shadow:0 0 6px #fff,0 0 12px #ff4b00,0 3px 7px #240000}
@keyframes grassMapFrontPush{0%{transform:scale(1.08) translateY(2%)}100%{transform:scale(1) translateY(0)}}
@keyframes grassMapBehindPush{0%{transform:scale(1.03) translateY(2%)}100%{transform:scale(1.12) translateY(-2%)}}
@keyframes grassMapWideOpen{0%{transform:scale(1.16)}100%{transform:scale(1)}}
@keyframes grassPlayerRushFront{0%{transform:translateX(-50%) translateY(15%) scale(.58);opacity:.2}100%{transform:translateX(-50%) translateY(-2%) scale(1.12);opacity:1}}
@keyframes grassPlayerRushBehind{0%{transform:translate(-12%,10%) scale(1.1)}100%{transform:translate(33%,-24%) scale(.64)}}
@keyframes grassBossGrowNear{0%{transform:translate(9%,-7%) scale(.62);opacity:.62;filter:blur(2px) brightness(.78)}100%{transform:translate(0) scale(1);opacity:1;filter:none}}
@keyframes grassSwordContact{0%{transform:translateX(-3%) scale(.96)}100%{transform:translateX(0) scale(1)}}
@keyframes grassPlayerRetreat{0%{transform:translate(42%,-34%) scale(.82)}35%{transform:translate(18%,-42%) scale(.7)}100%{transform:translate(-19%,10%) scale(.48)}}
@keyframes grassWidePlayerEnter{0%{transform:translate(24%,-6%) scale(1.25);opacity:.65}100%{transform:none;opacity:1}}
@keyframes grassWideBossEnter{0%{transform:translate(-7%,-3%) scale(1.12);opacity:.7}100%{transform:none;opacity:1}}
@keyframes grassDefendHold{0%{transform:translateX(-50%) scale(.94)}35%,82%{transform:translateX(-50%) scale(1.04)}100%{transform:translateX(-50%) scale(1)}}
@keyframes grassBossCinematicHit{0%,100%{transform:translateX(0) scale(var(--cinematic-world-zoom,1))}25%{transform:translateX(9px) rotate(1deg) scale(var(--cinematic-world-zoom,1))}55%{transform:translateX(-7px) rotate(-1deg) scale(var(--cinematic-world-zoom,1))}}
@keyframes grassRainDamageFloat{0%{opacity:0;transform:translate(-50%,8%) scale(.55)}22%{opacity:1;transform:translate(-50%,-8%) scale(1.08)}100%{opacity:0;transform:translate(-50%,-75%) scale(.85)}}
@keyframes grassCinematicDrop{0%{opacity:0;translate:-18vw -12vh}12%,82%{opacity:1}100%{opacity:0;translate:0 80vh}}
@keyframes rigTorsoRun{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-1.5%) rotate(1deg)}}
@keyframes rigHeadRun{0%,100%{transform:translateY(0) rotate(.6deg)}50%{transform:translateY(-1%) rotate(-.8deg)}}
@keyframes rigHairRun{0%,100%{transform:skewX(-1deg) translateY(0)}50%{transform:skewX(2.5deg) translateY(-.5%)}}
@keyframes rigArmLeftRun{0%,100%{transform:rotate(4deg)}50%{transform:rotate(-5deg)}}
@keyframes rigArmRightRun{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(4deg)}}
@keyframes rigLegLeftRun{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(5deg) translateY(-1.2%)}}
@keyframes rigLegRightRun{0%,100%{transform:rotate(4deg) translateY(-1.1%)}50%{transform:rotate(-3deg) translateY(0)}}
@keyframes rigCoatRun{0%,100%{transform:skewX(-2deg) scaleX(1.01)}50%{transform:skewX(3deg) scaleX(.97) translateY(-.5%)}}
@keyframes rigWeaponRun{0%,100%{transform:rotate(2deg)}50%{transform:rotate(-4deg)}}
@keyframes grassHolySwordFall{0%{opacity:0;transform:translate(-50%,-34%) scale(.42)}14%{opacity:1}84%,100%{opacity:1;transform:translate(-50%,51%) scale(1.06)}}
@keyframes grassHolyColumn{0%{opacity:0;transform:translateX(-50%) scaleY(0)}45%{opacity:1;transform:translateX(-50%) scaleY(1)}100%{opacity:.72;transform:translateX(-50%) scaleY(1.08)}}
@keyframes grassImpactCoreBurst{0%{opacity:1;transform:translate(-50%,-50%) scale(.18)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.25)}54%{opacity:1;transform:translate(-50%,-50%) scale(2.6)}100%{opacity:0;transform:translate(-50%,-50%) scale(4.8)}}
@keyframes grassRaySpinBurst{0%{opacity:0;scale:.25}12%{opacity:1;scale:1}65%{opacity:.9;rotate:12deg;scale:1.28}100%{opacity:0;rotate:20deg;scale:1.55}}
@keyframes grassShockwaveExpand{0%{opacity:1;transform:translate(-50%,-50%) scale(.25)}28%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(20)}}
@keyframes grassEnergyParticle{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--particle-angle)) translateY(0) scale(.5)}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--particle-angle)) translateY(var(--particle-distance)) scale(1.3)}}
@keyframes grassImpactDust{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}22%{opacity:.9}100%{opacity:0;transform:translate(-50%,-50%) scale(2.5)}}
@keyframes grassCinematicWhiteFlash{0%{opacity:0}8%{opacity:.98}22%{opacity:.92}52%{opacity:.48}100%{opacity:0}}
@keyframes grassDetonationCameraShake{0%,100%{transform:translate(0)}10%{transform:translate(-9px,6px)}22%{transform:translate(8px,-7px)}36%{transform:translate(-7px,-4px)}50%{transform:translate(6px,5px)}65%{transform:translate(-4px,3px)}82%{transform:translate(3px,-2px)}}
@keyframes grassBossUltimateHit{0%,100%{transform:translate(0) rotate(0);filter:brightness(1)}8%{transform:translate(15px,-6px) rotate(1.7deg);filter:brightness(2.8)}19%{transform:translate(-13px,7px) rotate(-1.5deg)}31%{transform:translate(11px,5px) rotate(1deg)}47%{transform:translate(-8px,-5px) rotate(-.8deg)}68%{transform:translate(5px,3px)}84%{transform:translate(-3px,-2px)}}

@media(orientation:portrait) and (max-width:900px){
  .battle-mode .battle-grass-x4-cinematic .player-actor{width:53vw}
  .battle-mode .battle-grass-x4-cinematic .boss-actor.ancient-tree-boss{width:88vw;right:-17%;bottom:37%}
  .battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="2"] .player-actor{width:76vw}
  .battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"] .player-actor{width:69vw}
  .battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"] .boss-actor{width:80vw}
  .battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="4"] .player-actor{width:31vw}
  .battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="4"] .boss-actor{width:51vw;right:-1%}
  .battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="impact"] .boss-actor{width:118vw;right:50%;bottom:-5%}
}

/* Yêu cầu 23: bảng chọn ngay tại Thôn và Kiểm tra xung quanh thôn */
.village-hub.route-open .village-home,.village-hub.route-open .village-home-zone,
.village-hub.route-open .village-forge,.village-hub.route-open .village-forge-zone{opacity:0;visibility:hidden;pointer-events:none}
.village-route-panel{position:absolute;z-index:30;left:50%;top:52%;width:min(88vw,560px);max-height:76dvh;transform:translate(-50%,-50%);padding:13px;border:1px solid #b88948;border-radius:17px;background:linear-gradient(145deg,#111b25d9,#261a10d9);box-shadow:0 16px 42px #000b,inset 0 0 25px #e0a84b12;backdrop-filter:blur(4px);overflow:auto;color:#fff}
.village-route-panel>header{text-align:center;text-shadow:0 2px 10px #000}.village-route-panel>header small{color:#ebc572;font-weight:900;letter-spacing:2px}.village-route-panel>header h2{margin:2px 0 9px;font:900 clamp(20px,5vw,31px) Georgia,serif;color:#fff0c6}
.village-route-panel .village-route-grid{display:grid;grid-template-columns:1fr;gap:7px;width:100%}
.village-route-panel .village-route-grid>button{position:relative;display:grid;grid-template-columns:88px 1fr;align-items:center;min-height:86px;padding:5px 10px 5px 3px;overflow:hidden;border:1px solid #94703e;border-radius:12px;background:#080d13ba;color:#ffe7ae;text-align:left;box-shadow:inset 0 0 15px #0008}
.village-route-panel .village-route-grid>button:active{transform:scale(.98);filter:brightness(1.15)}
.village-route-panel .village-route-grid img{position:static;width:82px;height:76px;object-fit:contain;filter:drop-shadow(0 5px 6px #000)}
.village-route-panel .village-route-grid span{position:static;display:grid;gap:4px;padding:0;background:none}.village-route-panel .village-route-grid b{font:900 clamp(13px,3.5vw,19px) Georgia,serif}.village-route-panel .village-route-grid small{color:#c7d0d8;font-size:11px}.village-route-panel .village-route-grid i{font-style:normal;color:#ffe18c}
.village-route-stay{display:block;margin:10px auto 0;padding:9px 20px;border:1px solid #d6a54e;border-radius:999px;background:#090d12d9;color:#ffe8a9;font-weight:900}
.village-walk .village-walk-next{right:max(12px,env(safe-area-inset-right));top:auto;bottom:max(14px,env(safe-area-inset-bottom));width:auto;height:auto;min-width:105px;padding:11px 15px;border:1px solid #f0cf84;border-radius:12px;background:linear-gradient(#b96f25,#67320d);font-size:15px;animation:villageNextFloatLow 1.5s ease-in-out infinite}
@keyframes villageNextFloatLow{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.village-walk .village-walk-monster{left:65%;bottom:12%;width:30%;height:43%}.village-walk-monster img.hurt{display:none}.village-walk-monster.hurt-hit img.normal{display:none}.village-walk-monster.hurt-hit img.hurt{display:block;animation:lupinHitShake .34s ease-in-out both}.village-walk-monster.hurt-hit{filter:drop-shadow(0 12px 10px #0008)}
.village-walk-monster-name{position:absolute;z-index:3;left:8%;right:8%;top:-22px;color:#fff0c4;font:900 14px Georgia,serif;text-align:center;text-shadow:0 2px 6px #000}.village-walk-monster .village-walk-monster-hp{top:0}
@keyframes lupinHitShake{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-9px) rotate(-3deg)}55%{transform:translateX(8px) rotate(3deg)}78%{transform:translateX(-4px) rotate(-1deg)}}
.village-walk-herbs{position:absolute;z-index:9;inset:0}.village-walk-herb{position:absolute;left:var(--herb-left);bottom:var(--herb-bottom);width:clamp(68px,10vw,120px);height:clamp(80px,15vh,150px);padding:0;border:0;background:transparent;transform:translateX(-50%);filter:drop-shadow(0 7px 7px #0009)}.village-walk-herb img{width:100%;height:100%;object-fit:contain}.village-walk-herb>span{position:absolute;left:50%;bottom:-17px;transform:translateX(-50%);width:max-content;max-width:130px;padding:2px 5px;border-radius:5px;background:#07100dcc;color:#e9ffd7;font-size:9px;font-weight:900}.village-walk-herb>i{position:absolute;left:3%;right:3%;top:-9px;height:7px;border:1px solid #e8d39e;border-radius:99px;background:#231b0f;overflow:hidden;opacity:0}.village-walk-herb>i b{display:block;width:100%;height:100%;background:linear-gradient(90deg,#79d84e,#d9f58a)}.village-walk-herb.harvesting>i{opacity:1}.village-walk-herb.harvesting>i b{animation:herbHarvestCountdown 3s linear forwards}
@keyframes herbHarvestCountdown{from{width:100%}to{width:0}}
@media(max-width:760px){.village-route-panel{top:53%;width:90vw;padding:10px}.village-route-panel .village-route-grid>button{grid-template-columns:72px 1fr;min-height:74px}.village-route-panel .village-route-grid img{width:68px;height:65px}.village-walk .village-walk-monster{left:62%;bottom:15%;width:36%;height:34%}.village-walk-herb{width:76px;height:100px}.village-walk .village-walk-message{bottom:max(70px,calc(env(safe-area-inset-bottom) + 58px))}}
@media(min-width:761px){.bottom-nav{max-width:700px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0}}
.leaderboard-title-image{display:block;width:min(310px,82%);height:72px;margin:0 0 -6px;object-fit:contain;object-position:left center;filter:drop-shadow(0 5px 10px #000)}
.leaderboard-copy{padding-top:8px}
.leaderboard-copy>.leaderboard-title-image+p{margin:0 0 5px;color:#f1c8b8;font-size:12px}
@media(max-width:760px){.leaderboard-title-image{width:min(270px,80%);height:64px;margin-bottom:-7px}.leaderboard-copy{padding-top:5px}}
.game-row p b,.game-date span{color:var(--ink);font-weight:800}
.modal.game-detail-modal{width:min(920px,100%);height:min(88vh,820px);max-height:none;padding:0;overflow:hidden}.game-detail-modal #modalContent,.game-detail-shell{height:100%;min-height:0}.game-detail-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff}.game-detail-modal .modal-close{z-index:8;position:absolute}.game-detail-head{position:relative;z-index:3;padding:20px 58px 15px 20px;border-bottom:1px solid var(--line);background:#fff;box-shadow:0 5px 18px #102a5412}.game-detail-head h2{margin:0 0 5px;padding:0}.game-detail-head p{margin:6px 0 0;color:var(--muted);line-height:1.4}.game-detail-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:18px 20px 24px}.game-detail-scroll>h3{margin-top:0}.game-detail-scroll>p{line-height:1.65;white-space:pre-wrap}.game-detail-download{position:relative;z-index:3;padding:11px 16px;border-top:1px solid var(--line);background:#fff;box-shadow:0 -5px 18px #102a5412}.game-detail-download .download-links{margin:0;flex-wrap:nowrap}.game-detail-download .download-links a{flex:1;text-align:center;white-space:nowrap}
@media(max-width:760px){.modal-layer.game-detail-layer{padding:0}.modal.game-detail-modal{width:100vw;height:100dvh;max-height:none;border-radius:0}.game-detail-modal .modal-close{top:max(10px,env(safe-area-inset-top));right:10px}.game-detail-head{grid-template-columns:82px minmax(0,1fr);gap:12px;padding:max(14px,env(safe-area-inset-top)) 52px 12px 13px}.game-detail-head .game-avatar{width:82px;height:76px}.game-detail-head h2{font-size:21px}.game-detail-head p{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.game-detail-scroll{padding:14px 0 20px}.game-detail-scroll>h3,.game-detail-scroll>p{margin-left:14px;margin-right:14px}.game-detail-scroll .game-gallery{border-radius:0}.game-detail-download{padding:9px 10px max(9px,env(safe-area-inset-bottom))}.game-detail-download .download-links{gap:6px}.game-detail-download .download-links a{padding:10px 7px;font-size:12px}}
.modal.comment-modal{width:min(760px,100%);height:min(88vh,820px);max-height:none;padding:0;overflow:hidden}.comment-modal>.modal-close{display:none}.comment-modal #modalContent,.comment-shell{height:100%;min-height:0}.comment-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff}.comment-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:13px 14px 13px 20px;border-bottom:1px solid var(--line);background:#fff;box-shadow:0 4px 16px #102a5410}.comment-head h2{margin:0;padding:0}.comment-close{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border:0;border-radius:50%;background:#edf1f7;color:#17243a;font-size:25px;line-height:1;cursor:pointer}.comment-close:active{transform:scale(.94);background:#dce6f3}.comment-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 18px 32px}.comment-footer{position:relative;z-index:3;padding:10px 14px 12px;border-top:1px solid var(--line);background:#fff;box-shadow:0 -5px 18px #102a5412}.comment-footer form{margin:0}.comment-compose-row{display:flex;align-items:flex-end;gap:8px}.comment-compose-row textarea{flex:1;min-height:44px;max-height:100px;resize:none;border:1px solid var(--line);border-radius:22px;padding:11px 14px;font:inherit}.comment-compose-row .form-submit{width:auto;min-width:70px;margin:0;padding:12px 15px}.comment-footer .comment-media-row{margin:7px 0 0}.comment-footer .comment-image-button{padding:6px 11px;font-size:12px}.comment-footer .comment-image-preview img{width:58px;height:42px}
@media(max-width:760px){.modal-layer.comment-layer{padding:0;place-items:end center}.modal.comment-modal{width:100vw;height:92dvh;max-height:none;border-radius:20px 20px 0 0}.comment-modal .modal-close{top:10px;right:10px}.comment-head{padding:17px 52px 12px 16px}.comment-scroll{padding:13px 12px 38px}.comment-footer{padding:9px 10px max(9px,env(safe-area-inset-bottom))}.comment-item{padding:9px}.comment-compose-row textarea{min-height:43px}}
.leaderboard-list{gap:3px}.leaderboard-row{position:relative;isolation:isolate;grid-template-columns:62px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;row-gap:0;min-height:58px;padding:2px 10px 2px 2px;overflow:hidden}.rank-badge{grid-column:1;grid-row:1/3;width:56px;height:56px}.leaderboard-row span{grid-column:2;grid-row:1;align-self:end;line-height:1.15}.leaderboard-row strong{grid-column:2;grid-row:2;align-self:start;margin-top:2px;line-height:1.1}.leaderboard-row.rank-1>*{position:relative;z-index:2}.leaderboard-row.rank-1:before{content:"";position:absolute;z-index:1;inset:-45%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 80%,#fff4a8 84%,#ffd43b 88%,#fff 90%,#ffb300 92%,transparent 96%);animation:topOneBorderLed 30s linear infinite;opacity:0}.leaderboard-row.rank-1:after{content:"";position:absolute;z-index:1;inset:2px;border-radius:10px;background:linear-gradient(90deg,#140503,#4b130d);pointer-events:none}@keyframes topOneBorderLed{0%{transform:rotate(0);opacity:0}1%{opacity:1}9%{transform:rotate(360deg);opacity:1}10%,100%{transform:rotate(360deg);opacity:0}}
@media(max-width:760px){.leaderboard-list{gap:2px}.leaderboard-row{grid-template-columns:56px minmax(0,1fr);min-height:53px;padding:1px 7px 1px 1px}.rank-badge{width:52px;height:52px}.leaderboard-row strong{font-size:11px;margin-top:1px}}
.form-row input[readonly]{background:#f1f4f8;color:#526078;cursor:not-allowed;font-weight:800}
.gift-code-label{color:#111}.gift-game-name{color:var(--blue)}
.cards-title{position:relative;isolation:isolate;overflow:hidden;min-height:190px;background-image:linear-gradient(90deg,#090705f2 0%,#120d09d9 46%,#100b0770 75%,#05040399 100%),url("hinhanh/giao-dien/nen-the-vu-khi.webp");background-position:center,center bottom;background-size:cover,cover;background-repeat:no-repeat;box-shadow:inset 0 0 48px #000b,0 16px 38px #0b07052b}.cards-title>*:not(.cards-title-art){position:relative;z-index:2}.cards-title-art{position:absolute;z-index:1;right:-3%;bottom:-13%;width:min(49%,470px);height:112%;object-fit:contain;object-position:right bottom;pointer-events:none;filter:drop-shadow(0 10px 15px #000b)}.cards-title p{max-width:62%;color:#f5e8d2;text-shadow:0 2px 7px #000}.cards-title .wallet{background:#130d09b8;border:1px solid #d5a85173;color:#ffe4a8;backdrop-filter:blur(4px)}
@media(max-width:760px){.cards-title{min-height:220px;background-position:center,center bottom}.cards-title-art{right:-16%;bottom:-8%;width:72%;height:92%;opacity:.88}.cards-title p{max-width:74%;font-size:13px;line-height:1.45}.cards-title h1,.cards-title .section-kicker,.cards-title .wallet{text-shadow:0 2px 8px #000}}
.leaderboard-battle-launch{position:absolute;z-index:8;right:32%;bottom:18px;width:112px;height:112px;border:0;border-radius:50%;padding:0;background:#080706;overflow:hidden;box-shadow:0 0 0 3px #8b6227,0 0 25px #ffc039a8;animation:battleBadgePulse 1.8s ease-in-out infinite;cursor:pointer}.leaderboard-battle-launch img{display:block;width:100%;height:100%;object-fit:cover}.leaderboard-battle-launch:active{transform:scale(.94)}
@media(max-width:760px){.leaderboard-battle-launch{right:5px;bottom:76px;width:92px;height:92px;box-shadow:0 0 0 2px #8b6227,0 0 20px #ffc039a8}}
.modal-layer.inventory-layer{padding:0;background:#000}.inventory-layer .modal-backdrop{display:none}.modal.inventory-scene-modal{width:100vw;height:100dvh;max-height:none;padding:0;border-radius:0;overflow:hidden;background:#080604;box-shadow:none}.inventory-scene-modal #modalContent{width:100%;height:100%}.inventory-scene-modal>.modal-close{z-index:90;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:42px;height:42px;border:1px solid #b98842;background:#100b07d9;color:#f6d79a}.forge-scene{position:relative;width:100%;height:100%;overflow:hidden;background:#090704}.forge-room{position:absolute;inset:-3%;background:url("hinhanh/giao-dien/nen-phong-ren.png") center center/cover no-repeat;filter:brightness(.86);transition:transform .9s ease,filter .9s ease}.forge-room:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 58% 47%,transparent 0 28%,#0003 62%,#000a 100%)}.forge-smith-trigger{position:absolute;z-index:3;left:56%;bottom:-2%;width:min(43vw,510px);height:88%;padding:0;border:0;background:transparent;transform:translateX(-50%);transform-origin:50% 80%;transition:transform .9s ease,filter .9s ease;cursor:pointer;filter:drop-shadow(0 14px 20px #000)}.forge-smith-trigger img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.forge-smith-trigger:after{content:"";position:absolute;inset:12% 4% 3%;border-radius:48%;box-shadow:0 0 45px #ffb33a00;transition:box-shadow .3s}.forge-smith-trigger:hover:after{box-shadow:0 0 45px #ffb33a35}.forge-enter-hint{position:absolute;z-index:5;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:10px 18px;border:1px solid #ae8143;border-radius:999px;background:#080604cf;color:#f3d397;font:800 14px Georgia,serif;letter-spacing:.5px;box-shadow:0 4px 18px #000;animation:forgeHintPulse 1.8s ease-in-out infinite}.forge-scene.zooming .forge-room{transform:scale(1.09);filter:brightness(1)}.forge-scene.zooming .forge-smith-trigger{transform:translateX(-50%) scale(1.1)}.forge-workshop{position:absolute;z-index:8;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease}.forge-scene.workshop-open .forge-room{transform:scale(1.1);filter:brightness(.68)}.forge-scene.workshop-open .forge-smith-trigger,.forge-scene.workshop-open .forge-enter-hint{opacity:0;visibility:hidden}.forge-scene.workshop-open .forge-workshop{opacity:1;visibility:visible;pointer-events:auto}.forge-back{position:absolute;z-index:20;top:max(15px,env(safe-area-inset-top));left:max(15px,env(safe-area-inset-left));border:1px solid #c3924c;border-radius:11px;padding:10px 14px;background:#100b07e8;color:#f5d89e;font-weight:900;box-shadow:0 5px 18px #000}.forge-smith-closeup{position:absolute;z-index:4;left:-2%;bottom:-5%;width:min(48vw,610px);height:96%;object-fit:contain;object-position:left bottom;filter:drop-shadow(0 15px 22px #000)}.forge-chest{position:absolute;z-index:9;top:1%;right:2%;width:min(61vw,650px);height:98%;filter:drop-shadow(0 18px 35px #000)}.forge-chest-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.forge-chest-close{position:absolute;z-index:15;top:6.6%;right:6.4%;width:9%;aspect-ratio:1;border:0;background:transparent;color:transparent;cursor:pointer}.forge-chest-content{position:absolute;z-index:12;left:10.5%;right:10.5%;top:20.5%;bottom:8.5%;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:6px;color:#ead8b6;overflow:hidden}.forge-stats{display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid #55442b;background:#080706e8;font-size:11px}.forge-stats b{color:#f4cb76}.forge-chest-content .gear-detail{min-height:48px;margin:0;padding:7px 9px;border:1px solid #55442b;background:#090806e8;color:#ead8b6}.forge-chest-content .gear-detail p{margin:3px 0 0;color:#b9a98e;font-size:10px}.forge-chest-content .bag-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-height:none;padding:0;overflow-y:auto}.forge-chest-content .bag-item{min-height:92px;padding:4px;border:1px solid #5a482c;border-radius:2px;background:radial-gradient(circle at 50% 30%,#27231b,#080706 74%);color:#ead8b6}.forge-chest-content .bag-item.equipped{border-color:#9e67d7;box-shadow:inset 0 0 12px #7542aa99}.forge-chest-content .bag-item>b{font-size:8px}.forge-chest-content .weapon-card-visual.compact{width:45px;min-height:68px}.forge-empty{grid-column:1/-1;padding:20px;text-align:center}.forge-white-flash{position:absolute;z-index:80;inset:0;background:#fff;opacity:0;pointer-events:none}.forge-scene.flashing .forge-white-flash{animation:forgeWhiteFlash 2s ease-in-out both}.forge-scene.transitioning{pointer-events:none}@keyframes forgeWhiteFlash{0%{opacity:0}38%,55%{opacity:1}100%{opacity:0}}@keyframes forgeHintPulse{50%{transform:translateX(-50%) scale(1.04);box-shadow:0 0 25px #eaa93d55}}
@media(max-width:760px){.forge-room{background-position:center center}.forge-smith-trigger{left:59%;bottom:-1%;width:82vw;height:83%}.forge-enter-hint{bottom:max(18px,env(safe-area-inset-bottom));font-size:12px}.forge-smith-closeup{left:-23%;bottom:-3%;width:75vw;height:91%;opacity:.92}.forge-chest{top:2%;right:-4%;width:76vw;height:96%}.forge-back{top:max(10px,env(safe-area-inset-top));left:9px;padding:8px 10px;font-size:12px}.forge-chest-content{left:11%;right:11%;top:20.5%;bottom:8.7%}.forge-stats{gap:5px;padding:5px 6px;font-size:9px;overflow-x:auto}.forge-chest-content .bag-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.forge-chest-content .bag-item{min-height:80px}.forge-chest-content .weapon-card-visual.compact{width:38px;min-height:57px}.inventory-scene-modal>.modal-close{width:38px;height:38px}}
.forge-chest-content{grid-template-rows:auto auto auto minmax(0,1fr)}.forge-equipped{padding:6px;border:1px solid #675231;background:#090806e8}.forge-equipped>strong{display:block;margin-bottom:4px;color:#f2c873;font:800 10px Georgia,serif;letter-spacing:1px}.forge-equipped>div{display:flex;align-items:center;gap:4px;min-height:48px}.forge-equipped-item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;width:25%;min-width:0;height:58px;padding:3px;border:1px solid #8e6740;background:#15110c;color:#e9d6b4;text-align:left}.forge-equipped-item>.weapon-card-visual{grid-row:1/3;width:38px;min-height:52px}.forge-equipped-item>span{grid-row:1/3;display:grid;place-items:center;font-size:25px}.forge-equipped-item small,.forge-equipped-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}.forge-equipped-item i{position:absolute;right:2px;top:2px;width:14px;height:14px;border-radius:50%;display:grid;place-items:center;background:#6f3ea4;color:#fff;font:900 8px sans-serif}
@media(max-width:760px){.forge-equipped{padding:4px}.forge-equipped>div{min-height:42px}.forge-equipped-item{grid-template-columns:34px minmax(0,1fr);height:48px}.forge-equipped-item>.weapon-card-visual{width:31px;min-height:42px}.forge-equipped-item>span{font-size:20px}}
.forge-materials{display:flex;justify-content:space-around;gap:5px;padding:6px;border:1px solid #59472c;background:#090806e8;color:#f0d29a;font-size:10px}.forge-equipped{overflow-y:auto}.forge-equipped>div{flex-wrap:wrap;align-content:flex-start}.forge-equipped-item{cursor:pointer}.forge-equipped-item i{width:auto;min-width:18px;padding:0 3px;border-radius:8px;background:#8b5a20;color:#ffe6a8}.forge-enhance-panel{align-self:stretch;overflow:auto;padding:8px;border:1px solid #785a31;background:linear-gradient(145deg,#17110aeF,#070605f5);box-shadow:inset 0 0 22px #000;color:#ead8b6}.forge-enhance-card{display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;align-items:center}.forge-enhance-card>.weapon-card-visual{width:54px;min-height:78px}.forge-enhance-card>.gear-icon{display:grid;place-items:center;font-size:40px}.forge-enhance-card h3{margin:0 0 4px;font:800 13px Georgia,serif;color:#f2d394}.forge-enhance-card h3 em{color:#ffbc43;font-style:normal}.forge-enhance-card p,.forge-enhance-card small{display:block;margin:3px 0;color:#bfb09a;font-size:9px}.forge-enhance-actions{display:flex;gap:7px;margin-top:8px}.forge-enhance-actions button{flex:1;border:1px solid #8c6939;border-radius:7px;padding:9px;background:#19120b;color:#e6d2ad;font-weight:900}.forge-enhance-actions button:last-child{background:linear-gradient(#8b5d1d,#3b210b);color:#ffe5a5;box-shadow:0 0 14px #ffae2644}.forge-enhance-actions button:disabled{opacity:.45}
@media(max-width:760px){.forge-materials{padding:4px;font-size:8px}.forge-enhance-card{grid-template-columns:46px minmax(0,1fr)}.forge-enhance-card>.weapon-card-visual{width:43px;min-height:64px}.forge-enhance-card h3{font-size:11px}.forge-enhance-actions button{padding:7px;font-size:10px}}
.forge-materials span{display:flex;align-items:center;justify-content:center;gap:3px}.forge-materials img{width:22px;height:22px;object-fit:contain}.blue-stone{filter:hue-rotate(-62deg) saturate(1.28) brightness(1.08)}.battle-reward-items{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.battle-reward-items>div{display:grid;place-items:center;min-width:105px;padding:10px;border:1px solid #ad8142;border-radius:12px;background:#090704d9;box-shadow:inset 0 0 18px #000}.battle-reward-items img{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 0 13px #ffbb3c77)}.battle-reward-items img.blue-stone{filter:hue-rotate(-62deg) saturate(1.28) brightness(1.08) drop-shadow(0 0 13px #42a5ff99)}.battle-reward-items b{font-size:13px;color:#f5d493}
@media(max-width:760px){.forge-materials img{width:17px;height:17px}.battle-reward-items{gap:7px}.battle-reward-items>div{min-width:83px;padding:7px}.battle-reward-items img{width:56px;height:56px}.battle-reward-items b{font-size:10px}}

/* Sảnh hành trang: nhân vật bên trái, thợ rèn ở giữa và bảng trang bị bên phải */
.forge-character-trigger{position:absolute;z-index:4;left:-2%;bottom:0;width:min(42vw,510px);height:59%;padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 14px 22px #000);transform-origin:20% 85%;transition:transform .9s ease,filter .9s ease,opacity .35s}
.forge-character-trigger img{display:block;width:100%;height:100%;object-fit:contain;object-position:left bottom}
.forge-character-trigger:after{content:"";position:absolute;inset:10% 7% 3%;border-radius:45%;box-shadow:0 0 42px #d2943500;transition:box-shadow .3s}
.forge-character-trigger:hover:after{box-shadow:0 0 42px #d2943533}
.character-enter-hint{position:absolute;z-index:6;left:14%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:8px 13px;border:1px solid #806337;border-radius:999px;background:#080604d9;color:#e6c98e;font:800 12px Georgia,serif;box-shadow:0 4px 18px #000;animation:forgeHintPulse 1.8s ease-in-out infinite}
.forge-scene.character-zooming .forge-room{transform:translateX(3%) scale(1.055);filter:brightness(.96)}
.forge-scene.character-zooming .forge-character-trigger{transform:scale(1.07) translate(2%,-1%)}
.character-workshop{position:absolute;z-index:10;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease}
.forge-scene.character-open .forge-room{transform:translateX(3%) scale(1.06);filter:brightness(.67)}
.forge-scene.character-open.character-returning .forge-room{transform:translateX(0) scale(1);filter:brightness(.86)}
.forge-scene.character-open .forge-smith-trigger,.forge-scene.character-open .forge-enter-hint,.forge-scene.character-open .forge-character-trigger,.forge-scene.character-open .character-enter-hint{opacity:0;visibility:hidden}
.forge-scene.character-open .character-workshop{opacity:1;visibility:visible;pointer-events:auto}
.forge-scene.workshop-open .forge-character-trigger,.forge-scene.workshop-open .character-enter-hint{opacity:0;visibility:hidden}
.character-closeup{position:absolute;z-index:5;left:-4%;bottom:-2%;width:min(54vw,690px);height:78%;object-fit:contain;object-position:left bottom;filter:drop-shadow(0 18px 26px #000);animation:characterDetailIn .55s ease-out}
.character-inventory{position:absolute;z-index:12;top:.5%;right:.8%;width:min(68vw,750px);height:99%;filter:drop-shadow(0 18px 38px #000)}
.character-inventory-frame{position:absolute;z-index:15;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.character-inventory-close{position:absolute;z-index:18;right:5.2%;top:4.4%;display:grid;place-items:center;width:9%;aspect-ratio:1;border:1px solid #bc873c;background:#120b06e8;color:#f0c477;font:900 24px Georgia,serif;cursor:pointer}
.character-inventory-content{position:absolute;z-index:8;left:7%;right:7%;top:6.5%;bottom:6%;display:grid;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) auto;gap:7px;color:#e9d5af;overflow:hidden}
.character-inventory-content header{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border:1px solid #654824;background:#090706e8;color:#f2cb7f;font-family:Georgia,serif}
.character-inventory-content header strong{letter-spacing:1.5px}.character-inventory-content header span{font-weight:900}
.character-total-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.character-total-stats span{padding:6px 3px;border:1px solid #493a28;background:#090806e8;text-align:center;font-size:10px;white-space:nowrap}
.character-equipment-grid{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:7px;overflow:auto}
.character-gear-slot{position:relative;min-height:0;padding:0;border:1px solid #54442e;background:#080706;overflow:hidden;color:#ead4ad;box-shadow:inset 0 0 20px #000;cursor:pointer}
.character-gear-slot>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.82;transition:transform .25s,opacity .25s}
.character-gear-slot:hover>img{transform:scale(1.035);opacity:1}
.character-gear-slot>span,.character-gear-slot>b,.character-gear-slot>small,.character-gear-slot>i{position:absolute;z-index:2;text-shadow:0 2px 5px #000}
.character-gear-slot>span{left:7px;top:6px;color:#e5bd76;font:800 10px Georgia,serif;text-transform:uppercase}
.character-gear-slot>b{left:7px;right:26px;bottom:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;text-align:left}
.character-gear-slot>small{left:7px;bottom:7px;color:#8f8679;font-size:9px}
.character-gear-slot>i{right:6px;top:5px;min-width:19px;padding:3px;border-radius:5px;background:#a16b20;color:#fff0bf;font:900 8px sans-serif}
.character-gear-slot.equipped{border-color:#bb853c;box-shadow:inset 0 0 19px #d68b2426,0 0 9px #d495383d}
.character-gold{display:flex;align-items:center;justify-content:center;gap:7px;padding:7px;border:1px solid #59401e;background:#090706e8;color:#f5cf77}
.character-gold img{width:28px;height:28px;object-fit:contain}
.character-bag{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:5px;padding:6px;border:1px solid #684b28;background:#080706e8;overflow:hidden}
.character-bag-title{display:flex;align-items:center;justify-content:space-between;color:#f0c878;font:800 10px Georgia,serif;letter-spacing:.5px}.character-bag-title small{color:#bba77f}
.character-gear-detail{min-height:44px;padding:6px 8px;border:1px solid #4e3d27;background:#110d08;color:#ead6b3;font-size:9px;overflow:auto}.character-gear-detail p{margin:3px 0;color:#bcae95}.character-gear-detail .gear-action-menu{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.character-gear-detail .gear-action-menu button{flex:1;min-width:80px;padding:6px;border:1px solid #9a7139;border-radius:5px;background:linear-gradient(#332313,#160e08);color:#f6d89d;font-size:8px;font-weight:900}
.character-bag-grid{min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;overflow-y:auto}.character-bag-item{position:relative;min-height:82px;padding:3px;border:1px solid #55442d;background:radial-gradient(circle at 50% 30%,#29241d,#090806 72%);color:#e7d2ab;overflow:hidden}.character-bag-item>img{display:block;width:100%;height:54px;object-fit:contain}.character-bag-item>.weapon-card-visual{width:100%;min-height:54px;transform:scale(.74);transform-origin:center}.character-bag-item>b,.character-bag-item>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}.character-bag-item>small{color:#a99b84}.character-bag-item>i{position:absolute;right:2px;top:2px;padding:2px 4px;border-radius:5px;background:#93611e;color:#ffe3a2;font:900 6px sans-serif}.character-bag-item.equipped{border-color:#c18a3f;box-shadow:inset 0 0 11px #e69b2d44}.character-bag-empty{grid-column:1/-1;padding:18px;text-align:center;color:#9b8d76}
.forge-equipped-item>img{grid-row:1/3;width:38px;height:52px;object-fit:cover}
@keyframes characterDetailIn{from{transform:translateX(-4%) scale(.94);opacity:.35}to{transform:none;opacity:1}}

@media(max-width:760px){
  .forge-character-trigger{left:-8%;bottom:3%;width:60vw;height:47%}
  .character-enter-hint{left:18%;bottom:max(17px,env(safe-area-inset-bottom));padding:6px 9px;font-size:9px}
  .character-closeup{left:-31%;bottom:2%;width:92vw;height:68%;opacity:.96}
  .character-inventory{top:1%;right:-2%;width:84vw;height:98%}
  .character-inventory-close{right:5%;top:4.5%;font-size:17px}
  .character-inventory-content{left:7%;right:7%;top:6%;bottom:6.5%;gap:4px}
  .character-inventory-content header{padding:5px 7px;font-size:11px}
  .character-total-stats{grid-template-columns:repeat(3,1fr);gap:3px}
  .character-total-stats span{padding:4px 2px;font-size:8px}
  .character-equipment-grid{gap:4px}
  .character-inventory-content{grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) auto}
  .character-bag{padding:4px}.character-bag-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.character-bag-item{min-height:70px}.character-bag-item>img{height:44px}.character-gear-detail{min-height:38px;padding:4px 6px}
  .character-gear-slot>span{left:4px;top:4px;font-size:8px}
  .character-gear-slot>b,.character-gear-slot>small{left:4px;bottom:4px;font-size:7px}
  .character-gear-slot>i{right:3px;top:3px;font-size:7px}
  .character-gold{padding:4px;font-size:10px}.character-gold img{width:20px;height:20px}
  .forge-equipped-item>img{width:31px;height:42px}
}

/* Cụm rương và kho chứa toàn bộ trang bị */
.warehouse-trigger{position:absolute;z-index:4;right:-3%;bottom:0;width:min(38vw,470px);height:43%;padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 15px 22px #000);transform-origin:86% 84%;transition:transform .9s ease,opacity .35s}
.warehouse-trigger img{display:block;width:100%;height:100%;object-fit:contain;object-position:right bottom}
.warehouse-trigger:after{content:"";position:absolute;inset:8% 4% 4%;border-radius:42%;box-shadow:0 0 42px #e0a53e00;transition:box-shadow .3s}
.warehouse-trigger:hover:after{box-shadow:0 0 42px #e0a53e3d}
.warehouse-enter-hint{position:absolute;z-index:6;right:7%;bottom:max(22px,env(safe-area-inset-bottom));padding:8px 13px;border:1px solid #806337;border-radius:999px;background:#080604d9;color:#e6c98e;font:800 12px Georgia,serif;box-shadow:0 4px 18px #000;animation:warehouseHintPulse 1.8s ease-in-out infinite}
.forge-scene.warehouse-zooming .forge-room{transform:translateX(-3%) scale(1.055);filter:brightness(.96)}
.forge-scene.warehouse-zooming .warehouse-trigger{transform:scale(1.07) translate(-2%,-1%)}
.warehouse-workshop{position:absolute;z-index:11;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease}
.forge-scene.warehouse-open .forge-room{transform:translateX(-3%) scale(1.06);filter:brightness(.65)}
.forge-scene.warehouse-open.warehouse-returning .forge-room{transform:translateX(0) scale(1);filter:brightness(.86)}
.forge-scene.warehouse-open .forge-smith-trigger,.forge-scene.warehouse-open .forge-enter-hint,.forge-scene.warehouse-open .forge-character-trigger,.forge-scene.warehouse-open .character-enter-hint,.forge-scene.warehouse-open .warehouse-trigger,.forge-scene.warehouse-open .warehouse-enter-hint{opacity:0;visibility:hidden}
.forge-scene.warehouse-open .warehouse-workshop{opacity:1;visibility:visible;pointer-events:auto}
.forge-scene.character-open .warehouse-trigger,.forge-scene.character-open .warehouse-enter-hint,.forge-scene.workshop-open .warehouse-trigger,.forge-scene.workshop-open .warehouse-enter-hint{opacity:0;visibility:hidden}
.warehouse-panel{position:absolute;z-index:13;top:1%;right:2%;width:min(61vw,650px);height:98%;filter:drop-shadow(0 18px 38px #000);animation:warehousePanelIn .55s ease-out}
.warehouse-frame{position:absolute;z-index:15;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.warehouse-close{position:absolute;z-index:20;right:5.8%;top:4.2%;width:9%;aspect-ratio:1;border:0;background:transparent;color:transparent;cursor:pointer}
.warehouse-content{position:absolute;z-index:16;left:10%;right:10%;top:21%;bottom:7.5%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:6px;color:#e8d4ae;overflow:hidden}
.warehouse-detail{min-height:45px;padding:7px 9px;border:1px solid #56442d;background:#080706e8}
.warehouse-detail b{color:#f0c875;font:800 11px Georgia,serif}.warehouse-detail p{margin:3px 0 0;color:#aa9c86;font-size:9px}
.warehouse-grid{min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;gap:4px;padding:2px;overflow-y:auto;overscroll-behavior:contain}
.warehouse-item{position:relative;min-height:103px;padding:3px;border:1px solid #50402b;background:radial-gradient(circle at 50% 30%,#211c16,#070605 74%);color:#dfc8a0;overflow:hidden;cursor:pointer}
.warehouse-item>img{display:block;width:100%;height:72px;object-fit:cover}.warehouse-item>.weapon-card-visual{width:100%;min-height:72px;height:72px}
.warehouse-item>b,.warehouse-item>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.warehouse-item>b{margin-top:3px;font-size:8px}.warehouse-item>small{color:#948873;font-size:7px}
.warehouse-item>i{position:absolute;z-index:3;right:3px;top:3px;display:grid;place-items:center;min-width:18px;height:18px;border-radius:50%;background:#9a6724;color:#fff0be;font:900 9px sans-serif}
.warehouse-item.equipped{border-color:#c08b42;box-shadow:inset 0 0 16px #d38a263d,0 0 7px #dca64f55}
.warehouse-content footer{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;border:1px solid #52402a;background:#080706e8;font-size:10px}
.warehouse-content footer span{display:flex;align-items:center;gap:5px}.warehouse-content footer img{width:22px;height:22px;object-fit:contain}
@keyframes warehousePanelIn{from{transform:translateX(5%) scale(.94);opacity:.3}to{transform:none;opacity:1}}@keyframes warehouseHintPulse{50%{transform:scale(1.04);box-shadow:0 0 24px #e0a53e55}}

@media(max-width:760px){
  .warehouse-trigger{right:-10%;bottom:3%;width:56vw;height:38%}
  .warehouse-enter-hint{right:4%;bottom:max(17px,env(safe-area-inset-bottom));padding:6px 9px;font-size:9px}
  .warehouse-panel{top:1%;right:-3%;width:78vw;height:98%}
  .warehouse-content{left:10%;right:10%;top:21%;bottom:7.5%;gap:4px}
  .warehouse-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
  .warehouse-item{min-height:88px}.warehouse-item>img{height:59px}.warehouse-item>.weapon-card-visual{height:59px;min-height:59px}
  .warehouse-item>b{font-size:7px}.warehouse-item>small{font-size:6px}
  .warehouse-detail{min-height:39px;padding:5px 7px}.warehouse-detail b{font-size:9px}.warehouse-detail p{font-size:7px}
  .warehouse-content footer{padding:3px 7px;font-size:8px}.warehouse-content footer img{width:17px;height:17px}
}

/* Khung máu boss 3D */
.boss-hp-frame{position:relative;width:100%;aspect-ratio:1922/818;margin-top:-2px;filter:drop-shadow(0 6px 9px #000)}
.boss-frame-art{position:absolute;z-index:4;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.boss-portrait{position:absolute;z-index:1;left:4.8%;top:24%;width:20.5%;height:54%;border-radius:50%;overflow:hidden;background:#130705;box-shadow:inset 0 0 18px #000}
.boss-portrait img{width:100%;height:100%;object-fit:cover;object-position:65% 45%;transform:scale(1.5);filter:contrast(1.1) saturate(1.1)}
.battle-3d .hp-bar.boss-framed{position:absolute;z-index:2;left:27.1%;right:5.2%;top:38.1%;width:auto;height:27%;margin:0;border:0;border-radius:999px;background:#210207;box-shadow:inset 0 0 10px #000;overflow:hidden}
.battle-3d .hp-bar.boss-framed i{border-radius:999px;background:linear-gradient(90deg,#76101c,#d51b2e 60%,#ff4b43);box-shadow:inset 0 2px 4px #ff918466,0 0 12px #e3192f}
.battle-3d .hp-bar.boss-framed span{z-index:3;font-size:clamp(9px,1.15vw,15px);text-shadow:0 2px 4px #000}
.battle-3d .boss-panel{top:8px;left:24%;right:4%}
.battle-3d .boss-name{position:absolute;z-index:6;left:25%;right:11%;top:15%;pointer-events:none}
.battle-3d .boss-name b{font-size:clamp(12px,1.45vw,20px)}.battle-3d .boss-name small{font-size:clamp(8px,.9vw,12px)}
@media(max-width:760px){.battle-3d .boss-panel{top:5px;left:21%;right:1%}.battle-3d .boss-name{top:11%;left:23%;right:9%}.battle-3d .boss-name b{font-size:11px}.battle-3d .boss-name small{display:none}.battle-3d .hp-bar.boss-framed span{font-size:8px}}

/* Lệnh chiến đấu và hệ thống SP */
.battle-3d .battle-actions{right:2%;bottom:10px;width:56%;gap:5px;align-items:end}
.battle-3d .battle-actions .battle-command{position:relative;min-height:0;height:116px;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible}
.battle-3d .battle-actions .battle-command:first-child{box-shadow:none}
.battle-command>img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 8px #000);transition:transform .18s,filter .18s}
.battle-command:hover>img{transform:translateY(-3px) scale(1.035);filter:drop-shadow(0 8px 13px #f06b226e)}
.battle-command:active>img{transform:scale(.94)}
.battle-command>small{position:absolute;z-index:2;left:10%;right:10%;bottom:2px;padding:2px 3px;border-radius:8px;background:#090503d4;color:#ffd899;font-size:8px;line-height:1.2}
.battle-command:disabled{opacity:.36;filter:grayscale(.65)}
.battle-3d .battle-command:disabled{opacity:1;filter:none;cursor:default}.battle-3d .battle-command:disabled>img{opacity:1;filter:drop-shadow(0 6px 8px #000)}.battle-3d .boss-panel,.battle-3d .boss-hp-frame,.battle-3d .boss-frame-art{animation:none!important}
.rage-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:5px;margin-top:5px;padding:4px 6px;border:1px solid #72522d;border-radius:8px;background:#0b0705d9;color:#f1c470;font-size:9px}
.rage-bar>span{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.rage-bar i{height:7px;border:1px solid #6d3e25;border-radius:999px;background:#25100c}.rage-bar i.active{background:linear-gradient(90deg,#ff5a16,#ffc735);box-shadow:0 0 8px #ff6a18}
.hero-effects{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.hero-effects span{padding:3px 6px;border:1px solid #a77d3e;border-radius:999px;background:#0b0806df;color:#f3d28f;font-size:8px}
.boss-effects{position:absolute;z-index:8;left:28%;bottom:-12px;display:flex;align-items:center}
.boss-effects img{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 3px 7px #000)}
.boss-effects b{display:grid;place-items:center;width:17px;height:17px;margin-left:-10px;border-radius:50%;background:#a41118;color:#fff;font-size:9px;box-shadow:0 2px 5px #000}
.battle-skill-choices{position:absolute;z-index:17;right:3%;bottom:134px;width:min(48%,430px);display:grid;gap:7px;padding:10px;border:1px solid #b77d35;border-radius:13px;background:linear-gradient(145deg,#1b0d07f5,#080403f7);box-shadow:0 13px 34px #000,inset 0 0 22px #9b3d172e;animation:battleOutcomeIn .25s ease-out}
.battle-skill-choices button{display:grid;gap:3px;padding:10px 12px;border:1px solid #744622;border-radius:9px;background:#210d07;color:#f3ce88;text-align:left}.battle-skill-choices button b{font:900 13px Georgia,serif}.battle-skill-choices button small{color:#c6ae8c;font-size:9px}.battle-skill-choices button:disabled{opacity:.4}.battle-skill-choices #battleSkillCancel{place-items:center;background:#0c0907;color:#aaa;text-align:center}
@media(max-width:760px){
  .battle-3d .battle-actions{left:1%;right:1%;bottom:4px;width:auto;gap:1px}
  .battle-3d .battle-actions .battle-command{height:82px;padding:0}
  .battle-command>small{left:7%;right:7%;bottom:0;font-size:6px}
  .battle-3d .hero-battle{bottom:83px;width:48%}
  .rage-bar{gap:3px;padding:3px 4px;font-size:7px}.rage-bar i{height:5px}.hero-effects span{font-size:6px;padding:2px 4px}
  .boss-effects{left:28%;bottom:-8px}.boss-effects img{width:29px;height:29px}.boss-effects b{width:13px;height:13px;font-size:7px}
  .battle-skill-choices{left:4%;right:4%;bottom:88px;width:auto;padding:7px}.battle-skill-choices button{padding:8px}.battle-skill-choices button b{font-size:11px}.battle-skill-choices button small{font-size:8px}
}

@media(max-width:760px){
  .stage-leaderboard{min-height:330px;background-position:center 52%}
  .leaderboard-copy{padding:5px 13px 12px}
  .leaderboard-battle-launch{right:6px;bottom:20px;width:84px;height:84px}
  .leaderboard-warrior-wrap{right:-7%;bottom:3%;width:66%;height:70%}
  .battle-mode .battle-screen.battle-3d{background-position:49% bottom}
}

/* V7.7: khóa thu phóng trên toàn bộ ứng dụng */
html,body{touch-action:pan-x pan-y;-ms-touch-action:pan-x pan-y}

/* Trạng thái tài khoản và nhóm Công cụ */
.account-menu-head small.active{color:#159447;font-weight:900}
.account-tools{margin:0 5px 6px 27px;padding:4px;border-left:2px solid #d9e5f4}
.account-tools button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;border-radius:9px;padding:9px 10px;background:#f2f6fb;color:var(--ink);text-align:left}
.account-tools button small{color:var(--muted);font-size:10px}

/* Hình nút Gift Code và biểu tượng thanh điều hướng */
.gift-code-entry{width:min(255px,58%);height:auto;margin:0 12px 11px auto;padding:0;border:0;border-radius:12px;background:transparent;overflow:hidden}
.gift-code-entry img{display:block;width:100%;height:auto;object-fit:contain}
.bottom-nav .gift-nav-icon{display:block;width:34px;height:27px;font-size:0}
.bottom-nav .gift-nav-icon img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px #0b31522e)}

/* Túi đồ nổi trong Kho thẻ */
.cards-bag-launch{position:fixed;z-index:38;right:max(14px,calc((100vw - 1140px)/2));bottom:88px;width:118px;height:118px;padding:0;border:0;background:transparent;filter:drop-shadow(0 8px 13px #0007);animation:cardsBagFloat 2.4s ease-in-out infinite;cursor:pointer}
.cards-bag-launch img{display:block;width:100%;height:100%;object-fit:contain}
.cards-bag-launch b{position:absolute;left:18%;right:18%;bottom:7%;padding:3px 5px;border:1px solid #d69b4f;border-radius:999px;background:#180b05dc;color:#ffe0a0;font:900 11px Georgia,serif;text-shadow:0 2px 4px #000;box-shadow:0 0 11px #ff792d73}
.cards-bag-launch:before{content:"";position:absolute;inset:24% 27% 35%;border-radius:50%;box-shadow:0 0 24px #ff5014;opacity:.42;animation:cardsBagEyes 1.35s ease-in-out infinite}
.cards-bag-launch:active{transform:scale(.94)}
.cards-mission-launch{position:fixed;z-index:37;right:max(18px,calc((100vw - 1132px)/2));bottom:202px;width:112px;height:112px;padding:0;border:0;background:transparent;filter:drop-shadow(0 8px 15px #00152ec2);animation:cardsMissionFloat 2.8s ease-in-out infinite;cursor:pointer}
.cards-mission-launch img{display:block;width:100%;height:100%;object-fit:contain}.cards-mission-launch:before{content:"";position:absolute;inset:22%;border-radius:50%;box-shadow:0 0 28px #238fffaa;animation:cardsMissionGlow 1.8s ease-in-out infinite}.cards-mission-launch:active{transform:scale(.94)}
@keyframes cardsMissionFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1deg)}}@keyframes cardsMissionGlow{50%{box-shadow:0 0 38px #58b7ff;opacity:.72}}
.modal-layer.mission-layer{padding:8px;background:#02071199}.mission-layer .modal-backdrop{background:#010817dc;backdrop-filter:blur(7px)}
.modal.mission-modal{width:min(610px,96vw);height:min(88dvh,860px);max-height:none;padding:0;overflow:visible;border-radius:0;background:transparent;box-shadow:none}.mission-modal>.modal-close{z-index:8;right:8%;top:6%;width:39px;height:39px;border:1px solid #d4a74f;background:#071322e8;color:#f8dc8d;box-shadow:0 0 15px #238fff;font-weight:900}.mission-modal #modalContent,.mission-board{width:100%;height:100%}.mission-board{position:relative;animation:missionBoardIn .35s ease-out}.mission-board-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 18px 38px #000)}.mission-board-content{position:absolute;z-index:2;left:15%;right:15%;top:16%;bottom:15%;display:flex;flex-direction:column;align-items:center;color:#e8f3ff;text-align:center;overflow:auto}.mission-board-content>span{color:#64baff;font:900 12px Georgia,serif;letter-spacing:4px}.mission-board-content h2{margin:8px 0 22px;padding:0;color:#ffe097;font:900 clamp(22px,4vw,34px) Georgia,serif;text-shadow:0 2px 7px #000,0 0 14px #2e83ff}.mission-updating{width:100%;margin:auto;padding:32px 15px;border:1px solid #28598b;border-radius:13px;background:#06111fd9;box-shadow:inset 0 0 28px #0008}.mission-updating i{display:block;width:35px;height:35px;margin:0 auto 13px;border:3px solid #2b5d8e;border-top-color:#60c4ff;border-radius:50%;animation:missionSpin 1s linear infinite}.mission-updating b,.mission-updating small{display:block}.mission-updating b{font-size:18px;color:#f5d991}.mission-updating small{margin-top:7px;color:#91a8bf;font-size:11px}@keyframes missionSpin{to{transform:rotate(360deg)}}@keyframes missionBoardIn{from{transform:translateY(18px) scale(.95);opacity:0}to{transform:none;opacity:1}}
@keyframes cardsBagFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.035)}}@keyframes cardsBagEyes{50%{opacity:.9;box-shadow:0 0 34px #ff2b00}}

/* Lớp bảo vệ tương tác nằm trên video, hiệu ứng lóe vẫn nằm trước hình video */
.cinematic-shield{position:absolute;z-index:10;inset:0;background:transparent;touch-action:none;user-select:none;cursor:wait}
.gacha-video-flash{z-index:7}.ultimate-flash{z-index:9}

/* Sảnh hành trang: nhân vật gần hơn, thợ rèn nhỏ và đứng xa hơn */
.forge-character-trigger{bottom:8%;height:55%}
.forge-smith-trigger{left:58%;bottom:18%;width:min(30vw,360px);height:62%}
.forge-enter-hint{left:58%;bottom:max(18%,calc(env(safe-area-inset-bottom) + 12px))}
.character-enter-hint{bottom:max(8%,calc(env(safe-area-inset-bottom) + 10px))}

/* Chỉ số nhân vật đặt trên vách trái */
.character-stat-wall{position:absolute;z-index:11;left:3%;top:17%;width:27%;display:grid;gap:5px;padding:12px;border:1px solid #8d6737;border-radius:12px;background:linear-gradient(145deg,#0d0906e8,#211407d9);color:#e6c890;box-shadow:inset 0 0 22px #000,0 8px 24px #0008;font-size:11px}
.character-stat-wall strong{color:#f3cd78;font:900 13px Georgia,serif;letter-spacing:.8px}
.character-stat-wall p{margin:0;color:#f0dcba}.character-stat-wall span{padding-top:4px;border-top:1px solid #5d4528}
.character-inventory-content{grid-template-rows:auto minmax(0,1fr) auto}

/* Khung ô là nền, hình trang bị thật nổi lên phía trên */
.character-gear-slot>img.slot-frame{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;opacity:.82}
.character-gear-slot>img.equipped-gear-art{position:absolute;z-index:1;inset:14%;width:72%;height:72%;object-fit:contain;opacity:1;filter:brightness(1.12) drop-shadow(0 0 8px #ffcf74);pointer-events:none}
.character-gear-slot:hover>img.slot-frame{transform:scale(1.035);opacity:1}
.character-gear-slot:hover>img.equipped-gear-art{transform:scale(1.06)}
.forge-equipped-item>img.forge-slot-frame{grid-row:1/3;width:38px;height:52px;object-fit:cover}
.forge-equipped-item>img.forge-equipped-art{position:absolute;z-index:2;left:4px;top:5px;width:34px;height:43px;object-fit:contain;filter:drop-shadow(0 0 5px #ffc86c);pointer-events:none}

/* Đếm đợt Boss và căn lại tên Hắc Long */
.round-label{position:absolute;z-index:7;top:14px;right:14px;padding:8px 14px;border:1px solid #a88a58;border-radius:999px;background:#080808c9;color:#f4d28c;font:900 14px Georgia,serif;letter-spacing:1px}
.battle-screen.battle-3d{background-color:#21150e;background-size:cover;background-position:center center}
.battle-3d .boss-name{top:10%;left:22%;right:14%}

@media(max-width:760px){
  .cards-bag-launch{right:7px;bottom:82px;width:92px;height:92px}.cards-bag-launch b{font-size:9px}
  .cards-mission-launch{right:10px;bottom:170px;width:88px;height:88px}
  .modal.mission-modal{width:98vw;height:86dvh}.mission-modal>.modal-close{right:7%;top:5%;width:32px;height:32px}.mission-board-content{left:14%;right:14%;top:15%;bottom:14%}.mission-board-content h2{margin-bottom:14px}.mission-updating{padding:24px 8px}
  .gift-code-entry{width:min(235px,68%)}
  .stage-leaderboard{min-height:258px;background-position:center 48%}
  .leaderboard-copy{width:calc(100% - 82px);padding:4px 3px 8px 9px}
  .leaderboard-title-image{width:min(230px,100%);height:51px;margin-bottom:-5px}
  .leaderboard-copy>.leaderboard-title-image+p{font-size:10px;margin-bottom:3px}
  .leaderboard-row{grid-template-columns:48px minmax(0,1fr);min-height:48px;padding:1px 5px 1px 1px}
  .rank-badge{width:47px;height:47px}.leaderboard-row span{font-size:12px}.leaderboard-row strong{font-size:9px}
  .leaderboard-battle-launch{right:4px;top:105px;bottom:auto;width:78px;height:78px}
  .leaderboard-warrior-wrap{right:-8%;bottom:12%;width:57%;height:63%}
  #page-schedule>.content-section{margin-top:14px}
  .forge-character-trigger{left:-8%;bottom:12%;width:58vw;height:43%}
  .forge-smith-trigger{left:59%;bottom:25%;width:51vw;height:55%}
  .forge-enter-hint{left:59%;bottom:max(24%,calc(env(safe-area-inset-bottom) + 10px));font-size:10px}
  .character-enter-hint{bottom:max(11%,calc(env(safe-area-inset-bottom) + 8px))}
  .character-stat-wall{left:2%;top:17%;width:22%;gap:3px;padding:7px 5px;font-size:7px}
  .character-stat-wall strong{font-size:8px}.character-stat-wall p{font-size:7px}.character-stat-wall span{padding-top:2px}
  .character-inventory{right:-2%;width:75vw}
  .character-inventory-content{grid-template-rows:auto minmax(0,1fr) auto}
  .character-gear-slot>img.equipped-gear-art{inset:16%;width:68%;height:68%}
  .round-label{top:max(48px,calc(env(safe-area-inset-top) + 44px));right:7px;padding:5px 8px;font-size:9px}
  .battle-3d .boss-name{top:7%;left:20%;right:12%}
}

/* Bản 1.1: nền chiến đấu đầy đủ, không còn dải đen ở nửa dưới */
.battle-screen.battle-3d,
.battle-mode .battle-screen.battle-3d{
  background-color:#17120f;
  background-image:url("hinhanh/chien-dau/chien-truong-trong-3d-v11.webp");
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center center;
}

/* Căn chính giữa số máu trên cả hai thanh */
.hp-bar span,
.battle-3d .hp-bar.boss-framed span{
  position:absolute;
  z-index:4;
  inset:0;
  display:grid;
  place-items:center;
  padding:0;
  font-size:clamp(12px,1.35vw,17px);
  line-height:1;
  text-align:center;
  white-space:nowrap;
  pointer-events:none;
}
.battle-3d .hero-battle>.hp-bar span{font-size:clamp(13px,1.45vw,18px)}
@media(max-width:760px){
  .battle-3d .hp-bar.boss-framed span{font-size:11px}
  .battle-3d .hero-battle>.hp-bar span{font-size:12px}
}

/* Sát thương hiện lâu hơn; KILL gồm sáu nhịp và rung đúng hai giây */
.damage-pop{animation-duration:1.15s}
.damage-pop.critical{animation-duration:1.35s}
.damage-pop.ultimate-hit{z-index:20;animation-name:ultimateDamageFloat;animation-duration:1.2s}
.damage-pop.ultimate-hit span{font-size:clamp(20px,4vw,46px);color:#ff2514;-webkit-text-stroke:1px #ffe071;text-shadow:0 0 8px #fff,0 0 18px #ff4b00,0 4px 9px #280000}
.player-actor.ultimate-casting{animation:ultimateRaiseCharge 3s ease-in-out both;filter:drop-shadow(0 0 16px #ffe374)}
.player-actor.ultimate-casting .held-battle-weapon{opacity:0}
.ultimate-effect-shield{position:absolute;z-index:60;inset:0;background:transparent;touch-action:none;user-select:none;cursor:wait}
.battle-screen.ultimate-shaking{animation:ultimateScreenShake .12s linear infinite}
@keyframes ultimateRaiseCharge{0%{transform:translateY(0);filter:drop-shadow(0 0 0 transparent)}34%,100%{transform:translateY(-2%);filter:drop-shadow(0 0 22px #ffe374)}}
@keyframes ultimateDamageFloat{0%{opacity:0;transform:translate(-50%,12%) scale(.55)}18%{opacity:1;transform:translate(-50%,-7%) scale(1.18)}68%{opacity:1;transform:translate(-50%,-48%) scale(.98)}100%{opacity:0;transform:translate(-50%,-105%) scale(.88)}}
@keyframes ultimateScreenShake{0%,100%{transform:translate(0,0)}25%{transform:translate(-5px,3px)}50%{transform:translate(5px,-3px)}75%{transform:translate(-3px,-2px)}}

/* Gacha 1.1: hoạt ảnh WebP nội tuyến, âm thanh tách riêng và lớp khóa trên cùng */
.gacha-animation-cinematic{background:#000;transition:opacity .48s ease}
.gacha-animation{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;background:#000;pointer-events:none}
.gacha-ring-glow,.gacha-center-light,.gacha-screen-flash{position:absolute;inset:0;pointer-events:none}
.gacha-ring-glow{z-index:3;margin:auto;width:9vmin;height:9vmin;border-radius:50%;opacity:0;background:radial-gradient(circle,#fff 0 5%,#fff4b4 10%,#ffd74399 25%,transparent 68%);filter:blur(3px)}
.gacha-animation-cinematic.epic .gacha-ring-glow{background:radial-gradient(circle,#fff 0 5%,#f3dfff 12%,#8a39ff99 29%,transparent 69%)}
.gacha-center-light{z-index:4;opacity:0;background:radial-gradient(circle at center,#fff 0,#fffbe8cc 3%,#ffd76f73 13%,transparent 35%)}
.gacha-animation-cinematic.epic .gacha-center-light{background:radial-gradient(circle at center,#fff 0,#f5e8ffcc 3%,#8f4dff73 13%,transparent 35%)}
.gacha-animation-cinematic.center-charging .gacha-ring-glow{animation:gachaRingGrow 2.18s cubic-bezier(.15,.68,.2,1) both}
.gacha-animation-cinematic.center-charging .gacha-center-light{animation:gachaCenterCharge 2.18s ease-in both}
.gacha-screen-flash{z-index:8;background:#fff;opacity:0}
.gacha-animation-cinematic.at-peak .gacha-screen-flash{animation:gachaFullFlash .85s ease-out both}
.gacha-animation-cinematic .cinematic-shield{z-index:50}
@keyframes gachaRingGrow{0%{opacity:.12;transform:scale(.6)}45%{opacity:.72;transform:scale(3.2)}100%{opacity:1;transform:scale(7.4)}}
@keyframes gachaCenterCharge{0%{opacity:.08;transform:scale(.35)}58%{opacity:.55;transform:scale(1.3)}100%{opacity:1;transform:scale(2.8)}}
@keyframes gachaFullFlash{0%{opacity:0}18%{opacity:1}48%{opacity:.96}100%{opacity:0}}

/* Thẻ xuất hiện từ tâm, lớp lóa trắng rút dần rồi mới cho phép thao tác */
.reveal-layer{overflow:hidden}
.reveal-layer.reveal-entering{pointer-events:auto;cursor:wait}
.reveal-layer.reveal-entering:before{content:"";position:absolute;z-index:30;inset:0;background:#fff;pointer-events:none;animation:revealGlareFade .85s ease-out both}
.reveal-layer.reveal-entering .gacha-pop-card{animation:revealCardFromCenter .85s cubic-bezier(.16,.82,.23,1.1) both}
.reveal-layer .gacha-pop-card{position:relative;z-index:4}
@keyframes revealGlareFade{0%{opacity:1}34%{opacity:.94}100%{opacity:0}}
@keyframes revealCardFromCenter{0%{opacity:0;transform:scale(.16)}34%{opacity:.25;transform:scale(.62)}72%{opacity:1;transform:scale(1.07)}100%{opacity:1;transform:scale(1)}}

/* Lịch game mobile: tiêu đề giữa, hàng xếp hạng đủ rộng và nút Vượt ải đè viền phải */
@media(max-width:760px){
  .stage-leaderboard{min-height:292px}
  .leaderboard-copy{width:100%;padding:7px 10px 12px}
  .leaderboard-title-image{width:min(300px,88%);height:68px;margin:0 auto -2px;object-position:center}
  .leaderboard-copy>.leaderboard-title-image+p{margin:0 0 6px;font-size:10px}
  .leaderboard-list{gap:3px}
  .leaderboard-row{grid-template-columns:52px minmax(0,1fr);min-height:52px;padding:1px 7px 1px 1px}
  .rank-badge{width:51px;height:51px}
  .leaderboard-row span{font-size:13px;padding-right:64px}
  .leaderboard-row strong{font-size:9px;padding-right:64px}
  .leaderboard-battle-launch{z-index:12;right:-1px;top:128px;bottom:auto;width:94px;height:94px}
  .leaderboard-warrior-wrap{right:-9%;bottom:2%;width:58%;height:58%;opacity:.72}
  #page-schedule>.content-section{margin-top:12px}
}

/* Bản 1.2: nền và bố cục Túi đồ */
.forge-room{
  inset:0;
  background-image:url("hinhanh/giao-dien/nen-phong-ren-v12.webp");
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:brightness(.92);
}
.forge-room:after{background:radial-gradient(circle at 55% 48%,transparent 0 42%,#0002 76%,#0006 100%)}
.forge-character-trigger{left:-1%;bottom:5%;width:min(43vw,520px);height:49%}
.forge-character-trigger img{object-position:left bottom}
.character-closeup{left:-3%;bottom:3%;width:min(55vw,700px);height:72%;object-position:left bottom}
.forge-smith-trigger{left:59%;bottom:35%;width:min(24vw,292px);height:48%}
.forge-enter-hint{left:59%;bottom:max(29%,calc(env(safe-area-inset-bottom) + 12px))}

@media(max-width:760px){
  .forge-room{background-position:center center;background-size:auto 100%}
  .forge-character-trigger{left:-8%;bottom:8%;width:58vw;height:38%}
  .character-enter-hint{left:18%;bottom:max(7%,calc(env(safe-area-inset-bottom) + 8px))}
  .character-closeup{left:-27%;bottom:6%;width:92vw;height:55%;opacity:.98}
  .forge-smith-trigger{left:59%;bottom:37%;width:38vw;height:44%}
  .forge-enter-hint{left:59%;bottom:max(30%,calc(env(safe-area-inset-bottom) + 10px));font-size:9px}
}

/* Vũ khí nằm sau nhân vật và neo cán vào đúng tay theo ba nhóm */
.player-actor>.player-body-sprite{
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 12px 16px #000);
}
.player-actor>.held-battle-weapon{
  position:absolute;
  z-index:1;
  display:block;
  margin:0;
  object-fit:contain;
  pointer-events:none;
  filter:brightness(1.16) contrast(1.08) drop-shadow(0 0 8px #9fd3ff);
  animation:none;
}
.held-battle-weapon.weapon-grip-1{
  right:21%;
  bottom:48%;
  width:55%;
  height:72%;
  transform-origin:100% 100%;
  transform:rotate(180deg);
}
.held-battle-weapon.weapon-grip-2{
  left:54%;
  top:52%;
  width:50%;
  height:68%;
  transform-origin:50% 0;
  transform:rotate(-45deg);
}
.held-battle-weapon.weapon-grip-3{
  right:21%;
  top:52%;
  width:52%;
  height:64%;
  transform-origin:100% 0;
  transform:rotate(-90deg);
}
.player-actor.attacking{animation:playerAttackV12 .76s cubic-bezier(.18,.72,.25,1) both}
.player-actor.attacking .held-battle-weapon{animation:none}
.player-actor.attacking .weapon-grip-1{right:4%;bottom:69%;transform:rotate(135deg)}
.player-actor.attacking .weapon-grip-2{left:70%;top:31%;transform:rotate(-90deg)}
.player-actor.attacking .weapon-grip-3{right:4%;top:31%;transform:rotate(-135deg)}
@keyframes playerAttackV12{
  0%{transform:translate(0,0) scale(1)}
  22%{transform:translate(6%,-2%) scale(1.01)}
  58%{transform:translate(34%,-7%) scale(1.05)}
  76%{transform:translate(30%,-5%) scale(1.03)}
  100%{transform:translate(0,0) scale(1)}
}

/* Boss giơ vuốt rồi đổi về tư thế quào xuống ở giữa đòn đánh */
.boss-actor>.boss-body-sprite{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 16px #000)}
.boss-actor.attacking{animation:dragonClawV12 .86s cubic-bezier(.2,.65,.2,1) both}
.boss-actor.claw-down>.boss-body-sprite{filter:brightness(1.22) drop-shadow(0 12px 16px #000)}
@keyframes dragonClawV12{
  0%{transform:translate(0,0) scale(1)}
  38%{transform:translate(3%,-5%) rotate(1deg) scale(1.02)}
  58%{transform:translate(-12%,9%) rotate(-4deg) scale(1.07)}
  82%{transform:translate(-15%,11%) rotate(-3deg) scale(1.06)}
  100%{transform:translate(0,0) scale(1)}
}

/* Dịch nhẹ số máu Boss sang trái để đúng tâm nhìn của khung */
.battle-3d .hp-bar.boss-framed span{transform:translateX(-8px)}
@media(max-width:760px){.battle-3d .hp-bar.boss-framed span{transform:translateX(-5px)}}

/* Gacha 1.2: tâm lóe thấp hơn và chỉ có một lần chuyển sáng sang thẻ */
.gacha-ring-glow{top:10vh;bottom:-10vh}
.gacha-center-light{background:radial-gradient(circle at 50% 58%,#fff 0,#fffbe8cc 3%,#ffd76f73 13%,transparent 35%)}
.gacha-animation-cinematic.epic .gacha-center-light{background:radial-gradient(circle at 50% 58%,#fff 0,#f5e8ffcc 3%,#8f4dff73 13%,transparent 35%)}
.gacha-animation-cinematic.at-peak .gacha-screen-flash{animation:gachaFullFlashHold .34s ease-out both}
.gacha-white-handoff{position:fixed;z-index:540;inset:0;background:#fff;opacity:1;transition:opacity .92s ease-out;touch-action:none;user-select:none;cursor:wait}
.gacha-white-handoff.revealing{opacity:0}
.reveal-layer.reveal-entering:before{display:none}
@keyframes gachaFullFlashHold{0%{opacity:0}65%,100%{opacity:1}}

/* Bản 1.3: ảnh vũ khí rời, nền trong suốt và hiệu ứng nguyên tố tách riêng */
.weapon-card-visual.v13{isolation:isolate;background:radial-gradient(circle at 50% 44%,#172033 0,#06080f 62%,#020307 100%)}
.weapon-card-visual.v13 .weapon-image-v13{
  position:absolute;z-index:2;inset:12% 8% 13%;width:84%;height:75%;object-fit:contain;
  filter:drop-shadow(0 5px 5px #000b) saturate(1.08);pointer-events:none
}
.weapon-card-visual.v13 .rarity-frame{z-index:4}
.weapon-card-visual.v13 .rarity-code,.weapon-card-visual.v13 .rarity-stars,.weapon-card-visual.v13 .weapon-card-name,.weapon-card-visual.v13 .owned-badge{z-index:6}
.weapon-element-label{position:absolute;z-index:6;right:7%;top:6%;padding:2px 5px;border:1px solid currentColor;border-radius:999px;background:#03060bcf;font-size:7px;font-weight:900;text-transform:uppercase}
.element-fire{--element-color:#ff572f;--element-soft:#ffb04a;--element-rgb:255,75,32}
.element-water{--element-color:#4acbff;--element-soft:#d9f8ff;--element-rgb:46,174,255}
.element-grass{--element-color:#58e36d;--element-soft:#eefff0;--element-rgb:70,211,83}
.weapon-card-visual.v13 .weapon-element-label,.battle-weapon.element-fire{color:#ff8b62}
.weapon-card-visual.v13.element-water .weapon-element-label,.battle-weapon.element-water{color:#7edcff}
.weapon-card-visual.v13.element-grass .weapon-element-label,.battle-weapon.element-grass{color:#7beb87}
.weapon-element-effect{position:absolute;z-index:1;inset:15% 10% 16%;pointer-events:none;opacity:.95;filter:blur(.2px)}
.weapon-element-effect:before{
  content:"";position:absolute;inset:4% 10%;border-radius:45%;
  background:
    radial-gradient(ellipse at 42% 74%,rgba(var(--element-rgb),.42),transparent 39%),
    radial-gradient(ellipse at 60% 44%,rgba(var(--element-rgb),.30),transparent 35%),
    radial-gradient(ellipse at 48% 20%,rgba(var(--element-rgb),.22),transparent 30%);
  filter:blur(12px);animation:weaponSmoke 3.2s ease-in-out infinite alternate
}
.weapon-element-effect:after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 34% 26%,var(--element-soft) 0 1px,transparent 2.4px),
    radial-gradient(circle at 67% 39%,var(--element-color) 0 1.2px,transparent 3px),
    radial-gradient(circle at 39% 61%,var(--element-soft) 0 1px,transparent 2.6px),
    radial-gradient(circle at 62% 78%,var(--element-color) 0 1.3px,transparent 3.2px);
  filter:drop-shadow(0 0 4px var(--element-color));animation:weaponSparkle 1.75s ease-in-out infinite
}
.weapon-element-effect i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--element-soft);box-shadow:0 0 8px 2px var(--element-color);animation:weaponMote 2.4s ease-in-out infinite}
.weapon-element-effect i:nth-child(1){left:25%;top:68%;animation-delay:-.4s}.weapon-element-effect i:nth-child(2){right:21%;top:43%;animation-delay:-1.1s}.weapon-element-effect i:nth-child(3){left:45%;top:17%;animation-delay:-1.7s}
.weapon-card-visual.rare .weapon-element-effect{opacity:.6;transform:scale(.94)}
.weapon-card-visual.rare .weapon-element-effect:before{filter:blur(10px)}
.weapon-card-visual.common .weapon-element-effect{opacity:.27;inset:24% 22% 21%;transform:scale(.84)}
.weapon-card-visual.common .weapon-element-effect:before{filter:blur(7px)}
.weapon-card-visual.common .weapon-element-effect:after,.weapon-card-visual.common .weapon-element-effect i{display:none}
.weapon-card-visual.compact .weapon-element-label{display:none}
.weapon-card-visual.compact .weapon-image-v13{inset:13% 7% 10%;width:86%;height:77%}
@keyframes weaponSmoke{0%{transform:translate(-3%,4%) scale(.9);opacity:.55}55%{transform:translate(4%,-2%) scale(1.08);opacity:.92}100%{transform:translate(-1%,-6%) scale(1);opacity:.66}}
@keyframes weaponSparkle{0%,100%{opacity:.3;transform:scale(.92)}48%{opacity:1;transform:scale(1.05)}}
@keyframes weaponMote{0%,100%{opacity:0;transform:translateY(12px) scale(.5)}35%{opacity:1}70%{opacity:.55;transform:translateY(-16px) scale(1.15)}}

/* Khói nguyên tố nhẹ quanh vũ khí đang cầm, không ghép vào ảnh gốc */
.player-actor>.held-weapon-effect{position:absolute;z-index:0;right:8%;top:36%;width:54%;height:60%;border-radius:45%;pointer-events:none;background:radial-gradient(ellipse,rgba(var(--element-rgb),.38),transparent 67%);filter:blur(12px);animation:heldWeaponSmoke 2.6s ease-in-out infinite alternate}
.player-actor.element-fire>.held-weapon-effect{--element-rgb:255,75,32}.player-actor.element-water>.held-weapon-effect{--element-rgb:46,174,255}.player-actor.element-grass>.held-weapon-effect{--element-rgb:70,211,83}
.player-actor.element-none>.held-weapon-effect{display:none}
@keyframes heldWeaponSmoke{0%{opacity:.35;transform:translate(-5%,5%) scale(.88)}100%{opacity:.8;transform:translate(5%,-6%) scale(1.1)}}
.battle-weapon[class*="element-"]{text-shadow:0 0 7px currentColor}

/* Chiến trường thay đổi theo hệ Boss của từng chương */
.battle-screen.battle-3d.battle-element-fire,
.battle-mode .battle-screen.battle-3d.battle-element-fire{
  background-image:url("hinhanh/chien-dau/chien-truong-lua-3d.webp");
  background-position:center center
}
.battle-screen.battle-3d.battle-element-water,
.battle-mode .battle-screen.battle-3d.battle-element-water{
  background-image:url("hinhanh/chien-dau/chien-truong-bang-tuyet-3d.webp");
  background-position:center center
}
.battle-screen.battle-3d.battle-element-grass,
.battle-mode .battle-screen.battle-3d.battle-element-grass{
  background-image:url("hinhanh/chien-dau/chien-truong-rung-co-3d.webp");
  background-position:center center
}

/* Bản 1.4: các thanh công cụ ghim khi cuộn */
.schedule-sticky-tools,.gift-sticky-tools{
  position:sticky;top:72px;z-index:24;margin-top:24px;padding:10px 0 8px;
  background:#fff;box-shadow:0 8px 12px #fff
}
.schedule-sticky-tools .search-message,.gift-sticky-tools .search-message{min-height:20px;padding:5px 3px}
.schedule-sticky-tools .section-heading h2{margin:3px 0 0}
.schedule-list-section{margin-top:9px}
.gift-sticky-tools+.gift-list{margin-top:9px}
.rarity-tabs{
  position:sticky;top:72px;z-index:24;padding:8px 0;margin:10px 0;
  background:#fff;box-shadow:0 7px 12px #fff
}

/* Gift Code gọn: nút thêm chỉ xuất hiện khi nhóm được mở */
.gift-code-entry,.gift-group.open .gift-code-entry{
  width:auto;height:auto;padding:5px 9px;border:1px solid #bde8ca;border-radius:8px;
  background:#f0fff4;color:#159447;font-size:12px;font-weight:900;overflow:visible
}
.gift-code-entry{display:none;margin:-2px 12px 6px auto}
.gift-group.open .gift-code-entry{display:block}
.gift-code-entry img{display:none}

/* Hành trang: hình mặc định gọn, đồ đang mặc có nền tối bên trong viền */
.character-gear-slot>img.slot-frame{inset:7%;width:86%;height:86%;object-fit:contain;opacity:.72}
.character-gear-slot.equipped:before{
  content:"";position:absolute;z-index:1;inset:3px;background:#020202f2;
  box-shadow:inset 0 0 15px #000;pointer-events:none
}
.character-gear-slot>img.equipped-gear-art{
  z-index:2;inset:15%;width:70%;height:70%;object-fit:contain
}
.character-gear-slot>span,.character-gear-slot>b,.character-gear-slot>small,.character-gear-slot>i{z-index:3}
.warehouse-detail{position:relative}
.gear-action-menu{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.gear-action-menu button{border:1px solid #6e5430;border-radius:7px;padding:5px 8px;background:#211407;color:#f1d399;font-size:9px;font-weight:800}
.gear-action-menu button[data-gear-salvage]{color:#7edcff}
.gear-action-menu button[data-gear-menu-close]{margin-left:auto;color:#c8bca8}

/* Vũ khí áp sát lòng bàn tay ở cả tư thế đứng và tấn công */
.held-battle-weapon.weapon-grip-1{right:27%;bottom:53%}
.held-battle-weapon.weapon-grip-2{left:48%;top:47%}
.held-battle-weapon.weapon-grip-3{right:27%;top:47%}
.player-actor.attacking .weapon-grip-1{right:10%;bottom:72%}
.player-actor.attacking .weapon-grip-2{left:65%;top:27%}
.player-actor.attacking .weapon-grip-3{right:10%;top:27%}

/* Đao: giữ cán đúng vị trí bàn tay khi đứng và khi lao tới Boss */
.player-actor>.held-battle-weapon.weapon-dao.weapon-grip-2{
  left:28%;top:32%;right:auto;bottom:auto
}
.player-actor.attacking>.held-battle-weapon.weapon-dao.weapon-grip-2{
  left:28%;top:32%;right:auto;bottom:auto;transform:rotate(-90deg)
}

/* Kiếm và búa: giữ cán đúng vị trí bàn tay khi đứng và khi lao tới Boss */
.player-actor>.held-battle-weapon.weapon-sword.weapon-grip-2,
.player-actor>.held-battle-weapon.weapon-hammer.weapon-grip-2{
  left:27%;top:35%;right:auto;bottom:auto
}
.player-actor.attacking>.held-battle-weapon.weapon-sword.weapon-grip-2,
.player-actor.attacking>.held-battle-weapon.weapon-hammer.weapon-grip-2{
  left:27%;top:32%;right:auto;bottom:auto;transform:rotate(-90deg)
}

@media(max-width:760px){
  .schedule-sticky-tools,.gift-sticky-tools{top:62px;margin-top:12px;padding:8px 0 7px}
  .rarity-tabs{top:62px}
  .schedule-sticky-tools .section-heading h2{margin-bottom:2px}
  .character-stat-wall{left:2%;top:16%;width:26%;gap:4px;padding:8px 6px;font-size:8.5px}
  .character-stat-wall strong{font-size:9.5px}.character-stat-wall p{font-size:8.5px}.character-stat-wall span{padding-top:3px}
  .character-gear-slot>img.slot-frame{inset:9%;width:82%;height:82%}
  .character-gear-slot>img.equipped-gear-art{inset:17%;width:66%;height:66%}
  .forge-enter-hint{left:59%;bottom:max(35%,calc(env(safe-area-inset-bottom) + 10px));font-size:9px}
}

/* Căn sáu ô trang bị sát vào giữa khung hành trang */
.character-gear-slot:nth-child(1),
.character-gear-slot:nth-child(3),
.character-gear-slot:nth-child(5){
  transform:translateX(6px)
}
.character-gear-slot:nth-child(2),
.character-gear-slot:nth-child(4),
.character-gear-slot:nth-child(6){
  transform:translateX(-6px)
}

/* Phóng lớn hình trang bị thật đang mặc */
.character-gear-slot>img.equipped-gear-art{
  inset:3%;
  width:94%;
  height:94%
}

/* Riêng hình vũ khí đang mặc hiển thị lớn hơn */
.character-gear-slot:nth-child(4)>img.equipped-gear-art{
  inset:3%;
  width:94%;
  height:94%
}

/* Bản 1.5: hào quang và điện tích theo phẩm chất trang bị */
.weapon-card-visual.v13:before,.weapon-card-visual.v13:after{content:"";position:absolute;z-index:3;inset:10%;border-radius:22%;pointer-events:none}
.weapon-card-visual.v13.super:before{box-shadow:inset 0 0 24px rgba(var(--element-rgb),.72),0 0 22px rgba(var(--element-rgb),.65);animation:rareHeat 1.35s ease-in-out infinite}
.weapon-card-visual.v13.rare:before{box-shadow:inset 0 0 16px rgba(var(--element-rgb),.48),0 0 13px rgba(var(--element-rgb),.42);animation:rareHeat 1.8s ease-in-out infinite}
.weapon-card-visual.v13.super:after,.weapon-card-visual.v13.rare:after{display:none}
.weapon-card-visual.v13.common{--element-color:#8fdcff;--element-soft:#dff8ff;--element-rgb:100,200,255}
.weapon-card-visual.v13.common:before{inset:20%;box-shadow:inset 0 0 15px #8fdcff55,0 0 14px #8fdcff4d;animation:commonAura 2.4s ease-in-out infinite}
.weapon-card-visual.v13.common:after{display:none}
@keyframes rareHeat{50%{opacity:.48;transform:scale(1.055);filter:blur(2px)}}@keyframes commonAura{50%{opacity:.45;transform:scale(1.07)}}

/* Trang chủ 2.0: ba cảnh game bo góc, không viền; logo BOI AUTO nổi 3D */
.boi-hero{
  min-height:clamp(390px,48vw,590px);padding:clamp(28px,5vw,66px);align-items:flex-start;
  isolation:isolate;border:0;border-radius:28px;background:#020812;box-shadow:0 24px 55px #0013284d
}
.hero-scenes,.hero-scenes img,.hero-cinematic-shade{position:absolute;inset:0;border-radius:inherit}
.hero-scenes{z-index:-3;overflow:hidden;background:#020812}
.hero-scenes img{
  width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);
  animation:boiHeroScene 18s ease-in-out infinite
}
.hero-scenes img:nth-child(2){animation-delay:6s}.hero-scenes img:nth-child(3){animation-delay:12s}
.hero-cinematic-shade{
  z-index:-2;background:linear-gradient(90deg,#020713f2 0%,#03101dcb 32%,#06101c4d 62%,#0001 100%)
}
.boi-hero .hero-copy{max-width:min(550px,58%);animation:boiHeroFloat 3.5s ease-in-out infinite}
.boi-hero .hero-logo{display:block;width:max-content;perspective:700px;margin:0 0 20px}
.boi-hero .hero-logo img{
  display:block;width:clamp(190px,29vw,390px);height:auto;
  filter:drop-shadow(0 18px 18px #0009) drop-shadow(0 0 13px #65b9ff73);
  transform:perspective(700px) rotateX(3deg) rotateY(-6deg);transform-origin:left center
}
.boi-hero .hero-logo strong{
  position:relative;display:inline-block;font:1000 clamp(68px,9vw,126px)/.72 Arial Black,Impact,sans-serif;
  letter-spacing:-8px;color:#f8fbff;-webkit-text-stroke:2px #0b2854;
  text-shadow:1px 1px 0 #a9d9ff,2px 2px 0 #4c93d3,4px 4px 0 #1e5795,7px 7px 0 #0a2855,11px 13px 15px #000b,0 0 18px #65b9ff8c;
  transform:rotateX(4deg) rotateY(-7deg);transform-origin:left center
}
.boi-hero .hero-logo strong:before{
  content:attr(data-text);position:absolute;inset:0;color:transparent;-webkit-text-stroke:1px #fff;
  transform:translate(-2px,-3px);filter:drop-shadow(0 0 5px #fff)
}
.boi-hero .hero-logo span{
  display:block;margin:14px 0 0 5px;color:#ffb52c;font:900 clamp(22px,3vw,38px)/1 Arial Black,Arial,sans-serif;
  letter-spacing:12px;text-shadow:2px 2px 0 #873d00,4px 5px 8px #000,0 0 13px #ff8a00
}
.boi-hero .hero-copy h1{margin:8px 0 10px;font-size:clamp(19px,2.5vw,34px);letter-spacing:.4px;text-shadow:0 3px 12px #000}
.boi-hero .hero-copy p{margin:0;color:#edf7ff;font-size:clamp(13px,1.5vw,17px);line-height:1.55;text-shadow:0 2px 9px #000}
.boi-hero .hero-badges span{background:#020b16b8;border-color:#ffffff30;backdrop-filter:blur(5px)}
.boi-hero .hero-button{box-shadow:0 7px 22px #007bc46b}
@keyframes boiHeroScene{
  0%{opacity:0;transform:scale(1.08) translateX(1.5%)}6%,29%{opacity:1}33%,100%{opacity:0}
  18%{transform:scale(1.015) translateX(0)}
}
@keyframes boiHeroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media(max-width:760px){
  .boi-hero{min-height:480px;padding:28px 20px;background:#020812}
  .boi-hero .hero-copy{max-width:92%}.hero-cinematic-shade{background:linear-gradient(90deg,#020713ed 0%,#03101dc4 62%,#0002)}
  .boi-hero .hero-logo img{width:min(250px,70vw)}.boi-hero .hero-logo span{font-size:22px;letter-spacing:8px}
  .boi-hero .hero-copy h1{font-size:22px}.hero-scenes img{object-position:58% center}
}

/* Chúc phúc, trạng thái nguyên tố và cộng hưởng tối thượng */
.boss-effects{gap:5px}.boss-effects .armor-break,.blessing-status{position:relative;display:grid;place-items:center;width:36px;height:36px;border:1px solid #d6b36b;border-radius:50%;background:#090706e8;box-shadow:0 0 10px #000}
.boss-effects .armor-break img{width:34px;height:34px}.boss-effects .armor-break b,.blessing-status b{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:16px;height:16px;margin:0;border-radius:50%;background:#a41118;color:#fff;font-size:8px}
.blessing-status{font-size:20px}.blessing-fire{box-shadow:0 0 13px #ff542b}.blessing-water{box-shadow:0 0 13px #62dfff}.blessing-grass{box-shadow:0 0 13px #9fd268}
.hero-effects .attack-buff{border-color:#65e885;color:#8cffaa;box-shadow:0 0 9px #34db714d}
.blessing-rain{position:absolute;z-index:18;inset:0;overflow:hidden;pointer-events:none}.blessing-rain i{position:absolute;left:var(--sx);top:var(--sy);width:clamp(42px,8vw,94px);aspect-ratio:1;background:center/contain no-repeat;opacity:0;animation:blessingFall var(--duration) cubic-bezier(.24,.05,.7,.45) var(--delay) both;filter:drop-shadow(0 0 10px currentColor)}
.blessing-fire i{color:#ff5b17;background-image:url("hinhanh/chien-dau/chuc-phuc-lua.webp")}
.blessing-water i{color:#73ddff;background-image:url("hinhanh/chien-dau/chuc-phuc-bang.webp")}
.blessing-grass i{color:#ff9b35;background-image:url("hinhanh/chien-dau/chuc-phuc-da.webp")}
.battle-screen.blessing-shaking{animation:blessingShake .12s linear infinite}
@keyframes blessingFall{0%{left:var(--sx);top:var(--sy);transform:rotate(0) scale(.58);opacity:0}12%{opacity:1}96%{left:var(--tx);top:var(--ty);transform:rotate(var(--rot)) scale(1.05);opacity:1}100%{left:var(--tx);top:var(--ty);transform:rotate(var(--rot)) scale(.9);opacity:0}}@keyframes blessingShake{25%{transform:translate(-3px,2px)}50%{transform:translate(3px,-2px)}75%{transform:translate(-2px,-1px)}}
.damage-pop.blessing-hit span{font-size:clamp(16px,3vw,30px);color:#fff0b0}
.damage-pop.standard-hit span{
  text-shadow:0 4px 10px #000,0 0 9px #ff3c00;
}

/* BOI update: moderation, mail, admin game tools and Super weapon showcase */
.menu-badge{margin-left:auto;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#e32636;color:#fff;display:inline-grid;place-items:center;font-size:12px}
.game-date-wrap{display:grid;gap:8px;justify-items:end}.game-admin-actions{display:flex;gap:6px}.game-admin-actions button{padding:7px 10px;border-radius:8px;border:1px solid #5476a7;background:#15345f;color:#fff}.game-admin-actions .danger{background:#761f2b;border-color:#c84c5c}
.mail-list{display:grid;gap:10px}.mail-item{padding:13px;border:1px solid #c8d4e7;border-radius:12px;background:#f7f9fd;color:#17233a}.mail-item.unread{border-color:#d9a62d;background:#fff9e8}.mail-item>div{display:flex;justify-content:space-between;gap:12px}.mail-item p{margin:8px 0 0}
.moderation-preview{display:block;width:100%;padding:0;border:0;background:none;text-align:left;color:inherit}.moderation-detail header{display:flex;align-items:center;justify-content:space-between}.moderation-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.moderation-gallery img,.moderation-detail video,.game-video video,.video-item video{width:100%;border-radius:10px}.video-item{margin:12px 0;padding:12px;border:1px solid #cad5e8;border-radius:12px}

.super-detail-layer{padding:12px;background:#020611d9}.super-detail-modal{position:relative;width:min(1180px,calc(100vw - 24px));height:min(760px,calc(100vh - 24px));max-height:none;padding:0!important;overflow:hidden;border-radius:22px;background:#101827;box-shadow:0 20px 70px #000b}.super-detail-modal>.modal-close{z-index:30;top:12px;right:12px;background:#07101fd9;color:#fff;border:1px solid #ffffff66}.super-detail-modal #modalContent{height:100%}
.super-weapon-modal{position:relative;width:100%;height:100%;overflow:hidden;border-radius:inherit;color:#fff}.super-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.super-floating-castles{position:absolute;inset:5% 2% 7% 32%;animation:castleMainFloat 5.8s ease-in-out infinite}.super-floating-castles img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 20px #0008)}.super-copy{position:absolute;z-index:5;left:4%;top:8%;width:38%;padding:20px;border-radius:16px;background:linear-gradient(90deg,#07101ee8,#07101e72);backdrop-filter:blur(4px)}.super-copy small{color:#ffd994}.super-copy h2{font:800 clamp(30px,4vw,58px) Georgia,serif;color:#fff5d4;text-shadow:0 0 14px #ff8a32}.super-stats{display:grid;gap:10px}.super-stats p{display:flex;justify-content:space-between;margin:0;padding:11px;border-bottom:1px solid #ffffff26}.super-stats span{color:#ffd269;font-weight:800}
.super-weapon-stage{position:absolute;z-index:8;right:8%;top:6%;width:48%;height:82%;display:grid;place-items:center;animation:weaponFloat 4.6s ease-in-out infinite}.super-weapon-image{position:absolute;z-index:2;max-width:72%;max-height:88%;object-fit:contain;filter:drop-shadow(0 0 12px #fff8) drop-shadow(0 14px 22px #000a);transform:rotate(10deg);animation:weaponTilt 5s ease-in-out infinite}.super-aura{position:absolute;z-index:1;max-width:84%;max-height:96%;object-fit:contain;opacity:.48;mix-blend-mode:screen;animation:auraLoop 5s linear infinite}.super-pedestal{position:absolute;z-index:4;right:14%;bottom:8%;width:36%;height:10%;border-radius:50%;background:radial-gradient(ellipse,#fff7b5 0 5%,#ff982d 12%,#592400 38%,transparent 70%);filter:blur(1px);opacity:.75}
.super-weapon-modal.element-water .super-floating-castles,.super-weapon-modal.element-grass .super-floating-castles{filter:none}.super-weapon-modal.type-hammer .super-weapon-image{max-width:86%;transform:rotate(-8deg)}.super-weapon-modal.type-dao .super-weapon-image{max-width:70%;transform:rotate(15deg)}
@keyframes castleMainFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}@keyframes weaponFloat{0%,100%{transform:translateY(6px)}50%{transform:translateY(-12px)}}@keyframes weaponTilt{0%,100%{rotate:-2deg}50%{rotate:3deg}}@keyframes auraLoop{0%{transform:rotate(0) scale(.96);opacity:.32}50%{transform:rotate(180deg) scale(1.04);opacity:.58}100%{transform:rotate(360deg) scale(.96);opacity:.32}}

.damage-pop.standard-hit{animation:damageSingle .65s ease-out forwards!important}.damage-pop.standard-hit span{text-shadow:0 2px 5px #000,0 0 5px #ff5a22!important}
@keyframes damageSingle{0%{opacity:0;transform:translate(-50%,0) scale(.9)}18%{opacity:1;transform:translate(-50%,-8px) scale(1)}72%{opacity:1;transform:translate(-50%,-22px) scale(1)}100%{opacity:0;transform:translate(-50%,-36px) scale(.98)}}
.boss-actor.normal-monster{right:10%;bottom:6%;width:min(30vw,400px)}
.boss-actor.normal-monster.boss-element-grass{width:min(25vw,335px)}
@media (orientation:portrait) and (max-width:900px){
  .battle-mode .boss-actor.normal-monster{right:5%;bottom:30%;width:52vw;max-width:none}
  .battle-mode .boss-actor.normal-monster.boss-element-grass{right:9%;width:43vw}
}

/* =========================================================
   BẢN CẬP NHẬT THÔN, ĐIỂM ĐẾN VÀ HIỆU ỨNG CHIẾN ĐẤU
   ========================================================= */
.leaf-boss-stream-fx{
  animation-duration:1.8s;
  filter:drop-shadow(0 0 8px #8dff6b88);
}
.leaf-player-stream-fx{
  animation-duration:1.8s;
  opacity:.88;
  filter:drop-shadow(0 0 9px #79ffd688);
}
.ice-rain-fx{
  inset:auto;
  top:-68%;
  right:-105%;
  width:220%;
  height:auto;
  max-width:none;
  object-fit:contain;
  filter:drop-shadow(0 0 10px #8cecffaa);
  will-change:transform,opacity;
  animation:bossIceRainDiagonal 3s linear both;
}
@keyframes bossIceRainDiagonal{
  0%{opacity:0;transform:translate(0,0) scale(.96)}
  7%{opacity:.96}
  93%{opacity:.96}
  100%{opacity:0;transform:translate(-112% ,135%) scale(1.04)}
}

.expedition-hotspot,.village-home-hotspot{
  position:absolute;
  z-index:7;
  display:block;
  border:0;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  color:transparent;
  opacity:0;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.expedition-hotspot:focus,.village-home-hotspot:focus{outline:0}
.boss-hotspot{left:42%;top:17%;width:22%;height:19%}
.rest-hotspot{left:27%;top:48%;width:23%;height:18%}
.explore-hotspot{right:8%;bottom:19%;width:25%;height:23%}

.adventure-scene-transition{
  position:fixed;
  z-index:1000000;
  inset:0;
  background:#000;
  opacity:0;
  pointer-events:all;
  animation:adventureFadeIn .5s ease forwards;
}
.adventure-scene-transition.revealing{animation:adventureFadeOut .5s ease forwards}
@keyframes adventureFadeIn{to{opacity:1}}
@keyframes adventureFadeOut{from{opacity:1}to{opacity:0}}

.expedition-modal>.modal-close,.rest-modal>.modal-close,.trade-modal>.modal-close,.village-modal>.modal-close{
  width:auto;
  min-width:76px;
  height:34px;
  padding:0 11px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
}
.game-exit-confirm{
  position:absolute;
  z-index:1000;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  background:#000b;
  backdrop-filter:blur(7px);
}
.game-exit-confirm section{
  width:min(88vw,360px);
  padding:22px;
  border:1px solid #d5a14d;
  border-radius:17px;
  background:linear-gradient(150deg,#18212cf7,#07090dfb);
  box-shadow:0 20px 65px #000,0 0 25px #b8782938;
  color:#f8ead0;
  text-align:center;
}
.game-exit-confirm small{color:#d9ad61;letter-spacing:3px;font-weight:900}
.game-exit-confirm h3{margin:6px 0;font:900 25px Georgia,serif;color:#ffe4a3}
.game-exit-confirm p{margin:7px 0 16px;color:#bfc9d1}
.game-exit-confirm button{padding:10px 18px;margin:0 4px;border:1px solid #c89341;border-radius:9px;background:linear-gradient(#69481e,#29180a);color:#ffedbf;font-weight:900}

.village-angel{cursor:default;pointer-events:none}
.village-home-hotspot.character-hotspot{left:0;bottom:4%;width:54%;height:76%;border-radius:12px}
.village-home-hotspot.chest-hotspot{right:0;bottom:7%;width:43%;height:54%;border-radius:12px}
.village-home-back,.recruit-back{
  position:absolute;
  z-index:8;
  left:4%;
  bottom:max(18px,env(safe-area-inset-bottom));
  padding:9px 12px;
  border:1px solid #b68139;
  border-radius:9px;
  background:#090c10dc;
  color:#ffe6ac;
  font-weight:900;
}

.village-recruit-scene{position:relative;width:100%;height:100%;overflow:hidden;color:#fff}
.recruit-bg{position:absolute;inset:0;background:#050914 url("hinhanh/vuot-ai/thon/dien-chieu-mo-3d.webp") center/cover no-repeat}
.village-recruit-scene:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(#03071466,transparent 20% 63%,#02040bea)}
.village-recruit-scene>header{position:absolute;z-index:4;top:max(18px,env(safe-area-inset-top));left:50%;width:84%;transform:translateX(-50%);text-align:center;text-shadow:0 3px 14px #000}
.village-recruit-scene>header small{color:#e9c873;font-weight:900;letter-spacing:3px}
.village-recruit-scene>header h2{margin:3px 0;font:900 clamp(30px,7vw,52px) Georgia,serif;color:#fff0c6}
.village-recruit-scene>header p{margin:2px 0;color:#c9d9f1;font-size:11px}
.recruit-weapon-cycle{position:absolute;z-index:3;inset:18% 7% 31%;display:grid;place-items:center;pointer-events:none}
.recruit-weapon-cycle article{position:absolute;display:grid;place-items:center;width:min(62vw,330px);opacity:0;filter:drop-shadow(0 0 28px #8d6dff);animation:recruitWeaponShow 27s ease-in-out infinite;animation-delay:calc(var(--recruit-index) * 3s)}
.recruit-weapon-cycle article .weapon-card-visual{width:min(48vw,250px);max-height:43dvh;margin:auto;overflow:hidden}
.recruit-weapon-cycle article>div:last-child{margin-top:5px;padding:6px 12px;border:1px solid #d4ad5a;border-radius:999px;background:#080b12d9;text-align:center}
.recruit-weapon-cycle article b,.recruit-weapon-cycle article small{display:block}
.recruit-weapon-cycle article b{font:900 16px Georgia,serif;color:#ffe3a1}
.recruit-weapon-cycle article small{color:#a9c9ff;font-size:8px}
@keyframes recruitWeaponShow{0%,8%{opacity:0;transform:translateY(18px) scale(.86)}11%,18%{opacity:1;transform:translateY(0) scale(1)}22%,100%{opacity:0;transform:translateY(-15px) scale(1.04)}}
.recruit-wallet{position:absolute;z-index:4;left:50%;bottom:22%;transform:translateX(-50%);padding:6px 12px;border:1px solid #77613f;border-radius:999px;background:#060910dc;color:#d9e5f5;font-size:10px}
.recruit-wallet b{color:#ffd16d}
.recruit-actions{position:absolute;z-index:4;left:5%;right:5%;bottom:8%;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.recruit-actions button{position:relative;min-height:62px;padding:9px;border:1px solid #e4b75b;border-radius:16px;background:radial-gradient(circle at 50% 0,#8060df,#25144d 56%,#0b0717);box-shadow:inset 0 0 18px #c3a3ff55,0 8px 25px #000;color:#fff2c5;font-weight:900;overflow:hidden}
.recruit-actions button.ten{background:radial-gradient(circle at 50% 0,#b77825,#4b270a 58%,#170b03);box-shadow:inset 0 0 18px #ffd88b55,0 8px 25px #000}
.recruit-actions button:before{content:"";position:absolute;inset:-70% -30%;background:linear-gradient(110deg,transparent 43%,#fff8 50%,transparent 57%);animation:recruitButtonShine 2.6s linear infinite}
.recruit-actions span,.recruit-actions b{position:relative;display:block}
.recruit-actions span{font:900 17px Georgia,serif}.recruit-actions b{margin-top:4px;font-size:10px;color:#ffe098}
@keyframes recruitButtonShine{to{transform:translateX(75%)}}
.village-recruit-scene .recruit-back{bottom:auto;top:max(62px,calc(env(safe-area-inset-top) + 48px))}

@media(max-width:760px){
  .boss-hotspot{left:37%;top:19%;width:28%;height:17%}
  .rest-hotspot{left:22%;top:46%;width:31%;height:20%}
  .explore-hotspot{right:4%;bottom:15%;width:34%;height:25%}
  .ice-rain-fx{top:-42%;right:-165%;width:310%}
  .recruit-weapon-cycle{inset:19% 5% 32%}
  .recruit-actions{bottom:7%}
  .village-home-hotspot.character-hotspot{width:56%;height:72%}
  .village-home-hotspot.chest-hotspot{width:44%;height:50%}
}

/* Viền cường hóa: màu khung cố định, tia sáng đồng bộ theo chu kỳ 3 giây */
.enhance-frame{position:relative;isolation:isolate;--enhance-color:#cdd5df;box-shadow:inset 0 0 0 2px var(--enhance-color),0 0 7px color-mix(in srgb,var(--enhance-color) 55%,transparent)!important}
.enhance-frame.enhance-gold{--enhance-color:#ffd34e}.enhance-frame.enhance-orange{--enhance-color:#ff8a1f}.enhance-frame.enhance-red{--enhance-color:#ff3030}.enhance-frame.enhance-purple{--enhance-color:#b85cff}.enhance-frame.enhance-gold-60{--enhance-color:#ffd83d}
.enhance-frame:not(.enhance-silver):not(.enhance-silver-run):not(.enhance-gold-60):before,.enhance-frame.enhance-silver-run:before,.enhance-frame.enhance-gold-60:before{content:"";position:absolute;z-index:20;inset:-1px;border-radius:inherit;padding:3px;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 78%,var(--sweep-color,#fff) 84%,#fff 88%,transparent 94%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;animation:enhanceBorderSweep 3s linear infinite}
.enhance-frame.enhance-silver-run{--sweep-color:#dce9f7}.enhance-frame.enhance-gold-60{--sweep-color:#ffd51f}
@keyframes enhanceBorderSweep{0%{opacity:0;transform:rotate(0)}4%{opacity:1}34%{opacity:1;transform:rotate(360deg)}40%,100%{opacity:0;transform:rotate(360deg)}}
.super-copy h2{font-size:clamp(22px,3vw,42px);line-height:1.05;overflow-wrap:anywhere}
@media(max-width:700px){.super-copy h2{font-size:clamp(17px,5.2vw,22px);line-height:1.04}}
@media(max-width:700px){.super-detail-layer{padding:10px}.super-detail-modal{width:calc(100vw - 20px);height:calc(100vh - 30px);border-radius:18px}.super-copy{left:4%;top:5%;width:48%;padding:12px}.super-copy h2{font-size:25px}.super-copy small{font-size:9px}.super-stats p{display:grid;padding:7px;font-size:11px}.super-weapon-stage{right:-2%;top:13%;width:62%;height:70%}.super-floating-castles{inset:19% -20% 14% 18%;opacity:.58}.super-pedestal{right:5%;bottom:14%;width:52%}.moderation-gallery{grid-template-columns:repeat(2,1fr)}.game-date-wrap{justify-items:start}.game-admin-actions{flex-wrap:wrap}}
@media (orientation:portrait) and (max-width:900px){
  .battle-mode .player-copy{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .battle-mode .player-copy small{display:block!important;margin-left:auto;color:#36a5ff;font-size:11px;font-weight:900;white-space:nowrap}
  .super-copy h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:clamp(20px,7vw,30px);line-height:1.06;word-break:normal}
}
.damage-pop.dangerous-hit,.damage-pop.element-kill-damage.giant{
  z-index:35;min-width:max-content;padding:10px 18px;border:4px double #ffe16b;border-radius:10px;
  background:#240500e8;box-shadow:inset 0 0 18px #ff8a0038,0 0 22px #fff,0 0 48px #ff7a00;
  animation:criticalDamage 1.55s cubic-bezier(.12,.82,.25,1) forwards
}
.damage-pop.dangerous-hit b,.damage-pop.element-kill-damage.giant b{
  display:block;white-space:nowrap;color:#fff4ad;font:900 clamp(17px,3.2vw,38px) Georgia,serif;
  letter-spacing:2px;-webkit-text-stroke:1px #741500;text-shadow:0 0 8px #fff0a3,0 0 18px #ff6a00,0 3px 6px #3b0000
}
.damage-pop.dangerous-hit span,.damage-pop.element-kill-damage.giant span{
  font-size:clamp(42px,8vw,86px);color:#ff3a16;-webkit-text-stroke:2px #ffe26e;
  text-shadow:0 0 8px #fff,0 0 22px #ff8a00,0 5px 10px #410000
}
.element-reaction-pop{
  --reaction-main:#ffd45e;--reaction-light:#fff6bd;--reaction-dark:#7a2100;
  position:absolute;z-index:32;left:50%;top:18%;display:grid;place-items:center;
  min-width:max-content;padding:9px 17px;border:2px solid var(--reaction-light);border-radius:9px;
  background:linear-gradient(135deg,#100706e8,var(--reaction-dark));
  box-shadow:inset 0 0 12px #fff4,0 0 12px var(--reaction-main),0 0 30px var(--reaction-main);
  pointer-events:none;transform:translate(-50%,-50%);animation:elementReactionBurst 1.35s cubic-bezier(.12,.82,.22,1) forwards
}
.element-reaction-pop b{
  white-space:nowrap;color:var(--reaction-light);font:900 clamp(15px,3.1vw,38px) Georgia,serif;
  letter-spacing:2px;-webkit-text-stroke:1px var(--reaction-dark);
  text-shadow:0 0 5px #fff,0 0 13px var(--reaction-main),0 3px 5px #000
}
.element-reaction-pop i{position:absolute;width:13px;height:13px;background:var(--reaction-light);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);filter:drop-shadow(0 0 6px var(--reaction-main));animation:reactionSpark 1s ease-out forwards}
.element-reaction-pop i:nth-of-type(1){left:-20px;top:12%}.element-reaction-pop i:nth-of-type(2){right:-20px;bottom:8%;animation-delay:.12s}
.reaction-burning{--reaction-main:#ff5a20;--reaction-light:#fff09b;--reaction-dark:#8c1600}
.reaction-wildfire{--reaction-main:#9dff3f;--reaction-light:#fff19d;--reaction-dark:#245b0a}
.reaction-magma{--reaction-main:#ff7a18;--reaction-light:#fff0b0;--reaction-dark:#5e0714}
.reaction-collapse{--reaction-main:#63dfff;--reaction-light:#eaffff;--reaction-dark:#174563}
@keyframes elementReactionBurst{0%{opacity:0;transform:translate(-50%,15%) scale(.25) rotate(-5deg)}22%{opacity:1;transform:translate(-50%,-16%) scale(1.28) rotate(2deg)}52%{transform:translate(-50%,-32%) scale(.98)}100%{opacity:0;transform:translate(-50%,-145%) scale(1.08)}}@keyframes reactionSpark{to{opacity:0;transform:translateY(-42px) scale(2) rotate(100deg)}}
.dual-ultimate-cinematic{position:absolute;z-index:17;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 68% 43%,#dff7ff26,transparent 26%)}.dual-ultimate-running .battle-actors{animation:dualCamera 3.45s ease-in-out both}.player-actor.dual-ultimate-player{animation:dualPlayer 3.45s cubic-bezier(.2,.7,.22,1) both!important}
.dual-light-sword{position:absolute;z-index:22;left:67%;top:-69%;width:clamp(170px,27%,360px);height:78%;opacity:0;transform:translateX(-50%) scale(.72);transform-origin:50% 100%;animation:dualSwordFall 3.45s cubic-bezier(.18,.72,.18,1) both}
.dual-light-sword img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 18px #72cfff) drop-shadow(0 0 34px #ffdc71)}
.dual-impact-column{position:absolute;z-index:21;left:67%;top:-10%;width:24%;height:72%;opacity:0;transform:translateX(-50%) scaleX(.08);transform-origin:50% 100%;border-radius:45% 45% 18% 18%;background:linear-gradient(90deg,transparent,#7acfff55 18%,#fff 43% 57%,#ffe99d99 78%,transparent);filter:blur(2px) drop-shadow(0 0 24px #fff) drop-shadow(0 0 52px #72cfff);animation:dualLightColumn 3.45s ease-out both}
.dual-impact-column:after{content:"";position:absolute;left:50%;bottom:-8%;width:165%;aspect-ratio:1;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle,#fff 0 12%,#fff7bbd9 25%,#75cfff73 45%,transparent 70%);filter:blur(3px)}
.dual-white-flash{position:absolute;z-index:25;inset:-25%;border-radius:50%;background:radial-gradient(circle at 63% 48%,#fff 0 15%,#fffde7 34%,#fff 55%,transparent 72%);opacity:0;transform:scale(.05);animation:dualWhiteExpansion 3.45s ease-out both}.damage-pop.dual-ultimate-damage{z-index:30;top:28%;padding:10px 18px;border:4px double #ffe16b;background:#240500d9;box-shadow:0 0 24px #fff,0 0 52px #ffb000}
@keyframes dualCamera{0%{transform:none}25%{transform:scale(.78);transform-origin:50% 50%}56%{transform:scale(.82)}68%{transform:scale(1.12);transform-origin:68% 44%}100%{transform:none}}@keyframes dualPlayer{0%{transform:none}25%{transform:translateX(-10%) scale(.78)}43%{transform:translate(15%,-3%) scale(.9)}59%{transform:translate(48%,-24%) rotate(-10deg) scale(1.12)}100%{transform:none}}@keyframes dualSwordFall{0%,24%{top:-69%;opacity:0;transform:translateX(-50%) scale(.62)}34%{opacity:1}58%{top:-10%;opacity:1;transform:translateX(-50%) scale(1)}73%{top:-8%;opacity:1;transform:translateX(-50%) scale(1.04)}88%,100%{top:-7%;opacity:0;transform:translateX(-50%) scale(1.18)}}@keyframes dualLightColumn{0%,55%{opacity:0;transform:translateX(-50%) scaleX(.05)}60%{opacity:1;transform:translateX(-50%) scaleX(.35)}75%{opacity:1;transform:translateX(-50%) scaleX(1)}90%,100%{opacity:0;transform:translateX(-50%) scaleX(2.8)}}@keyframes dualWhiteExpansion{0%,60%{opacity:0;transform:scale(.05)}69%{opacity:.88;transform:scale(.28)}84%{opacity:1;transform:scale(2.6)}96%{opacity:1;transform:scale(3.4)}100%{opacity:0;transform:scale(3.7)}}

@media(max-width:760px){
  .boss-effects .armor-break,.blessing-status{width:28px;height:28px}.boss-effects .armor-break img{width:26px;height:26px}.blessing-status{font-size:15px}
  .dual-light-sword{left:67%;top:-64%;width:32%;height:75%}
  .dual-impact-column{left:67%;width:29%}
}

.forge-enhance-card .enhance-rate{
  display:block;margin:5px 0 2px;color:#ffd267;font-size:10px;
  text-shadow:0 0 8px #ff9b2855
}

/* Hai bộ trang bị rơi từ boss */
.warehouse-item.boss-set{
  border-color:#9c7844;
  background:radial-gradient(circle at 50% 35%,#302414 0,#0b0805 72%);
  box-shadow:inset 0 0 18px #000,0 0 8px #b77b2f35
}
.warehouse-item.boss-set.set1{
  border-color:#aa503d;
  background:radial-gradient(circle at 50% 35%,#451613 0,#100605 72%)
}
.warehouse-item.boss-set.set2{
  border-color:#568cb9;
  background:radial-gradient(circle at 50% 35%,#102d48 0,#040b12 72%)
}
.warehouse-item.boss-set>img{
  padding:2px;
  object-fit:contain;
  filter:drop-shadow(0 0 8px #ffc35b75)
}
.warehouse-item.boss-set.set2>img{filter:drop-shadow(0 0 8px #6bc9ff8c)}
.warehouse-item.boss-set>small{color:#d9bd87}

.active-set-bonuses{
  display:grid;
  gap:3px;
  margin-top:3px;
  padding-top:5px;
  border-top:1px solid #72532d
}
.active-set-bonuses small{
  color:#8ff0a7;
  font-size:9px;
  line-height:1.25
}

.battle-reward-items>.boss-gear-reward{
  grid-template-columns:70px minmax(110px,1fr);
  place-items:center start;
  max-width:250px;
  text-align:left
}
.battle-reward-items>.boss-gear-reward.set1{border-color:#bd5945;background:linear-gradient(135deg,#260a08e8,#080504e8)}
.battle-reward-items>.boss-gear-reward.set2{border-color:#5e9bc9;background:linear-gradient(135deg,#071b2de8,#040708e8)}
.boss-gear-reward>img{width:68px;height:68px}
.boss-gear-reward>span,.boss-gear-reward small{display:block}
.boss-gear-reward small{margin-top:4px;color:#cabda7;font-size:9px;line-height:1.3}

@media(max-width:760px){
  .active-set-bonuses small{font-size:6.5px}
  .battle-reward-items>.boss-gear-reward{
    grid-template-columns:46px minmax(82px,1fr);
    max-width:165px
  }
  .boss-gear-reward>img{width:44px;height:44px}
  .boss-gear-reward small{font-size:7px}
}

/* Kho đồ hai tầng: túi nhân vật và rương dự trữ */
.forge-storage-hunter{
  position:absolute;z-index:3;right:5%;bottom:2%;width:min(24vw,270px);height:68%;
  object-fit:contain;object-position:right bottom;filter:drop-shadow(0 12px 22px #000);
  pointer-events:none;transition:opacity .35s,transform .9s
}
.forge-scene.warehouse-open .forge-storage-hunter{opacity:0;visibility:hidden}
.storage-hunter-closeup{
  position:absolute;z-index:12;left:-1%;bottom:-2%;width:34%;height:96%;object-fit:contain;
  object-position:left bottom;transform:scaleX(-1);filter:drop-shadow(10px 12px 24px #000);pointer-events:none
}
.dual-storage-stack{
  position:absolute;z-index:14;top:4%;right:2%;bottom:3%;width:66%;
  display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr) auto;gap:7px;
  animation:warehousePanelIn .5s ease-out
}
.dual-storage-panel{
  min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);padding:8px;
  border:2px solid #9b713b;border-radius:15px;
  background:linear-gradient(145deg,#1b130ce8,#070605f2);
  box-shadow:inset 0 0 0 2px #070503,inset 0 0 22px #000,0 10px 24px #0009;color:#e9d3aa;overflow:hidden
}
.dual-storage-panel.chest{border-color:#657889;background:linear-gradient(145deg,#13191eea,#050708f2)}
.dual-storage-panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:1px 4px 6px}
.dual-storage-panel>header div{min-width:0}.dual-storage-panel>header small,.dual-storage-panel>header strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dual-storage-panel>header small{color:#b99761;font-size:8px;letter-spacing:1px}.dual-storage-panel>header strong{color:#ffe0a0;font:900 13px Georgia,serif}
.dual-storage-panel>header>b{padding:4px 8px;border:1px solid #6d512e;border-radius:999px;background:#050403;color:#e8c47f;font-size:9px}
.dual-storage-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-bottom:6px}
.dual-storage-tabs button{min-width:0;padding:5px 2px;border:1px solid #55422c;border-radius:7px;background:#0a0806;color:#b8aa92;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dual-storage-tabs button i{display:inline-grid;place-items:center;width:14px;height:14px;margin-right:2px;border-radius:50%;background:#292017;color:#dfbd7a;font-style:normal;font-size:7px}
.dual-storage-tabs button.active{border-color:#d4a452;background:linear-gradient(#5e3b13,#1a1007);color:#ffe5ae;box-shadow:0 0 9px #d996344d}
.dual-storage-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-content:start;gap:4px;min-height:0;padding:1px;overflow-y:auto;overscroll-behavior:contain}
.dual-storage-grid>p{grid-column:1/-1;margin:auto;color:#887b67;font-size:9px}
.storage-item{position:relative;min-width:0;min-height:72px;padding:3px;border:1px solid #4c402f;background:radial-gradient(circle at 50% 28%,#2b2116,#070605 75%);color:#dbc292;overflow:hidden}
.storage-item>img,.storage-item>.weapon-card-visual{display:block;width:100%;height:47px;min-height:47px;object-fit:contain}
.storage-item>b,.storage-item>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.storage-item>b{font-size:7px}.storage-item>small{color:#8f8370;font-size:6px}
.storage-item>i,.storage-item>em{position:absolute;z-index:5;display:grid;place-items:center;min-width:17px;height:17px;border-radius:50%;font:900 7px sans-serif}
.storage-item>i{right:2px;top:2px;background:#7e5520;color:#fff0bc}.storage-item>em{left:2px;top:2px;background:#187940;color:#d8ffe4;font-style:normal}
.storage-item.equipped{border-color:#54b875}.storage-item.boss-set.set1{border-color:#a74738}.storage-item.boss-set.set2{border-color:#498dbb}
.storage-wallet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:6px 8px;border:1px solid #876435;border-radius:11px;background:#070504eb;box-shadow:inset 0 0 14px #000}
.storage-wallet span{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;color:#e6c585;font-size:9px}.storage-wallet img{width:24px;height:24px;object-fit:contain}
.storage-action{position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:7px;width:min(250px,58vw);padding:13px;border:1px solid #bb8d4b;border-radius:12px;background:#090705f5;box-shadow:0 12px 35px #000;color:#ead3aa}
.storage-action.hidden{display:none}.storage-action>b,.storage-action>small{display:block}.storage-action>small{color:#a99c88;font-size:9px}.storage-action button{padding:8px;border:1px solid #76552d;border-radius:8px;background:#241507;color:#f1d59d;font-weight:800}

/* Rương: hình nằm đúng tâm ô; nguyên liệu khóa và không khóa là hai chồng riêng. */
.storage-item{grid-template-columns:1fr;justify-items:center;align-content:center;text-align:center}
.storage-item>img,.storage-item>.weapon-card-visual{display:block;margin-inline:auto;object-position:center}
.storage-item>b,.storage-item>small{width:100%;text-align:center}
.currency-lock-label{display:inline-flex;justify-content:center;margin-top:2px;padding:2px 6px;border-radius:999px;font-size:7px;font-weight:950}
.currency-lock-label.unlocked{border:1px solid #38a865;background:#0a3520;color:#58ee86}
.currency-lock-label.locked{border:1px solid #a94848;background:#3b1111;color:#ff6e6e}
.storage-item.currency-locked{box-shadow:inset 0 0 0 1px #9c4646,0 0 8px #6c1e1e55}
.storage-item.currency-unlocked{box-shadow:inset 0 0 0 1px #318457,0 0 8px #1e6c3b44}
.storage-wallet.xu-wallet{grid-template-columns:1fr 1fr;gap:7px}
.storage-wallet.xu-wallet span{display:grid;gap:2px;padding:7px;border-radius:8px;background:#0c0b08}
.storage-wallet.xu-wallet span b{font-size:8px}.storage-wallet.xu-wallet span strong{font-size:12px}
.storage-wallet.xu-wallet .xu-unlocked{border:1px solid #328456;color:#5aef89}
.storage-wallet.xu-wallet .xu-locked{border:1px solid #9f4747;color:#ff6c6c}
.forge-material-lock-list article{grid-template-columns:38px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;text-align:left}
.forge-material-lock-list article>img{grid-row:1/3}
.forge-material-lock-list article>b{align-self:end}
.forge-material-lock-list article>.currency-lock-label{justify-self:start;align-self:start;margin:0}
.forge-material-lock-list article>span:last-child{grid-column:3;grid-row:1/3;align-self:center;font-weight:900}
.forge-material-lock-list article.currency-unlocked{border-color:#328456;box-shadow:inset 0 0 12px #1e6c3b38}
.forge-material-lock-list article.currency-locked{border-color:#9f4747;box-shadow:inset 0 0 12px #6c1e1e44}

@media(max-width:760px){
  .forge-storage-hunter{right:1%;bottom:9%;width:31vw;height:56%}
  .storage-hunter-closeup{left:-8%;bottom:-1%;width:43%;height:91%}
  .dual-storage-stack{top:5%;right:1%;bottom:2%;width:72%;gap:4px}
  .dual-storage-panel{padding:5px;border-width:1px;border-radius:10px}
  .dual-storage-panel>header{padding-bottom:3px}.dual-storage-panel>header small{font-size:6px}.dual-storage-panel>header strong{font-size:9px}.dual-storage-panel>header>b{padding:2px 5px;font-size:6px}
  .dual-storage-tabs{gap:2px;margin-bottom:3px}.dual-storage-tabs button{padding:3px 1px;font-size:5.5px}.dual-storage-tabs button i{width:10px;height:10px;font-size:5px}
  .dual-storage-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}
  .storage-item{min-height:54px;padding:2px}.storage-item>img,.storage-item>.weapon-card-visual{height:34px;min-height:34px}.storage-item>b{font-size:5.5px}.storage-item>small{font-size:5px}
  .storage-item>i,.storage-item>em{min-width:13px;height:13px;font-size:5px}
  .storage-wallet{gap:2px;padding:3px}.storage-wallet span{gap:2px;font-size:6px}.storage-wallet img{width:17px;height:17px}
}

/* Boi coin trong điều hướng và khoảng cách hai khung ở trang Bộ sưu tập */
.cards-leaderboard{margin-top:-12px}
.cards-title{margin-top:28px}
.cards-balances{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:max-content}
.cards-title .cards-balances .wallet{display:inline-flex;margin:0;align-items:center;gap:4px}
.boi-coin-balance img{width:24px;height:24px;object-fit:contain;margin-left:2px;filter:drop-shadow(0 0 5px #78bfff)}
.bottom-nav .coin-nav-icon{display:block;width:31px;height:29px;font-size:0}
.bottom-nav .coin-nav-icon img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 4px #2a65a066)}

@media(max-width:760px){
  .cards-leaderboard{margin-top:-6px}
  .cards-title{margin-top:22px}
  .boi-coin-balance img{width:21px;height:21px}
  .bottom-nav .coin-nav-icon{width:29px;height:27px}
}

.daily-mission-list{display:grid;gap:7px;width:100%;min-height:0;overflow-y:auto}
.daily-mission-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid #31577d;border-radius:10px;background:#071423e8;text-align:left}
.daily-mission-row>div{min-width:0}.daily-mission-row b,.daily-mission-row small{display:block}.daily-mission-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.daily-mission-row small{margin-top:2px;color:#83a2bf;font-size:8px}
.daily-mission-row>span{display:flex;align-items:center;gap:3px;color:#f4d487;font-size:10px;white-space:nowrap}.daily-mission-row>span img{width:19px;height:19px;object-fit:contain}
.daily-mission-row>button{padding:7px 10px;border:1px solid #d2a14c;border-radius:7px;background:linear-gradient(#81551b,#382008);color:#ffe6a9;font-size:9px;font-weight:900}.daily-mission-row>button:disabled{border-color:#3f5265;background:#182431;color:#6f8294;opacity:.75}.daily-mission-row.complete{border-color:#3e8b72;box-shadow:inset 0 0 12px #29bc7840}.daily-mission-row.claimed{opacity:.72}
.mission-board-content>footer{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;margin-top:8px;padding:7px;border-top:1px solid #31577d;color:#bbcee0;font-size:10px}.mission-board-content>footer b{color:#ffe19a;font-size:13px}.mission-board-content>footer img{width:22px;height:22px;object-fit:contain}

@media(max-width:760px){
  .daily-mission-list{gap:4px}
  .daily-mission-row{gap:4px;padding:6px}
  .daily-mission-row b{font-size:8px}.daily-mission-row>span{font-size:7px}.daily-mission-row>span img{width:14px;height:14px}.daily-mission-row>button{padding:5px 6px;font-size:7px}
}

/* Chia đúng khung hành trang: nửa trên trang bị, nửa dưới túi có thanh cuộn */
.character-inventory-content{
  grid-template-rows:auto minmax(0,50%) minmax(0,1fr) auto!important
}
.character-equipment-grid{
  min-height:0!important;
  height:100%;
  overflow:hidden
}
.character-gear-slot{
  min-height:74px
}
.character-bag{
  min-height:0;
  overflow:hidden
}
.character-bag-grid{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch
}

@media(max-width:760px){
  .character-inventory-content{
    grid-template-rows:auto minmax(0,50%) minmax(0,1fr) auto!important
  }
  .character-gear-slot{min-height:60px}
}

/* Hồ sơ Boi coin */
.profile-boi-panel{display:flex;align-items:center;gap:16px;margin:16px 0;padding:14px;border:1px solid #4d86b8;border-radius:16px;background:linear-gradient(135deg,#071828,#102d47);box-shadow:inset 0 0 24px #2d9cff24}
.profile-boi-panel p{margin:5px 0;color:#cce4f7}.profile-boi-panel b{color:#fff1a8}
.profile-boi-coin{width:92px;height:92px;padding:0;border:0;background:transparent;filter:drop-shadow(0 0 12px #8ad6ff);animation:boiCoinGlow 1.8s ease-in-out infinite}
.profile-boi-coin img{width:100%;height:100%;object-fit:contain}.boi-terms{position:relative;padding:8px}.boi-terms p{line-height:1.65;color:#c9dceb}.boi-terms button{padding:9px 18px;border:1px solid #d2a14c;border-radius:8px;background:#52330e;color:#ffe5a3}
@keyframes boiCoinGlow{50%{transform:scale(1.06);filter:drop-shadow(0 0 22px #fff)}}

/* Thợ rèn: hai khung độc lập, không dùng ảnh nền kho cũ */
.forge-redesign .forge-smith-closeup{left:1%;width:32%}.forge-redesign-stack{position:absolute;z-index:5;right:5%;top:7%;width:60%;height:86%;display:grid;grid-template-rows:43% 1fr;gap:12px}
.forge-redesign-panel{min-height:0;padding:12px;border:2px solid #b78a3e;border-radius:18px;background:linear-gradient(145deg,#071522f2,#102a42f2);box-shadow:inset 0 0 28px #309cff22,0 8px 30px #000a;color:#e8f5ff}
.forge-top h2{text-align:center;margin:0 0 8px;color:#ffe6a2}.forge-selected-slot{height:calc(100% - 80px);display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;text-align:center}.forge-selected-slot>img{width:78px;height:78px;object-fit:contain}.forge-selected-slot b,.forge-selected-slot small,.forge-selected-slot em{display:block;width:100%}.forge-selected-slot em{color:#ffd477;font-style:normal}
.forge-main-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.forge-main-actions button,.forge-redesign-tabs button,.forge-item-info button{padding:8px;border:1px solid #d2a14c;border-radius:8px;background:#4b2e0c;color:#ffe3a0;font-weight:800}.forge-main-actions button:disabled{opacity:.4}
.forge-redesign-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.forge-redesign-tabs button.active{background:#156094;color:white}.forge-item-info{min-height:38px;margin:8px 0;padding:7px;border:1px solid #315a7a;border-radius:8px;font-size:10px}.forge-item-info b,.forge-item-info small{margin-right:8px}
.forge-redesign-list{height:calc(100% - 86px);overflow-y:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.forge-list-item,.forge-redesign-list>article{position:relative;min-height:118px;padding:6px;border:1px solid #35688d;border-radius:10px;background:#091a2b;color:white;text-align:center}.forge-list-item>img,.forge-redesign-list>article img{width:58px;height:58px;object-fit:contain}.forge-list-item b,.forge-list-item small,.forge-redesign-list>article b,.forge-redesign-list>article span{display:block;font-size:9px}.forge-list-item small{color:#91aec4}
@media(max-width:760px){.forge-redesign-stack{right:2%;width:68%;top:5%;height:90%}.forge-redesign .forge-smith-closeup{width:35%;left:-5%}.forge-redesign-list{grid-template-columns:repeat(2,minmax(0,1fr))}.forge-redesign-panel{padding:7px}.forge-selected-slot{height:calc(100% - 72px)}}

/* Bổ sung bố cục: KILL từ ngoài góc trái, nhiệm vụ gọn và Thợ rèn màu kho rương */
.element-kill-shot{left:0;top:0}
.element-kill-giant{left:0;top:0;animation-duration:.78s}
@keyframes elementKillFall{
  0%{opacity:0;transform:translate(var(--sx),var(--sy)) rotate(var(--rot)) scale(.55)}
  12%{opacity:1}
  96%{opacity:1}
  100%{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(1.1)}
}
@keyframes elementKillGiant{
  0%{opacity:0;transform:translate(-55vw,-55vh) translate(-50%,-50%) rotate(-18deg) scale(.45)}
  12%{opacity:1}
  96%{opacity:1;transform:translate(var(--hit-x),var(--hit-y)) translate(-50%,-50%) rotate(0) scale(1)}
  100%{opacity:0;transform:translate(var(--hit-x),var(--hit-y)) translate(-50%,-50%) rotate(0) scale(.92)}
}
.mission-board-content{overflow:hidden}
.daily-mission-list{gap:4px;width:100%;padding:0 8px;overflow-x:hidden}
.daily-mission-row{width:100%;grid-template-columns:minmax(0,1fr) 62px 56px;gap:5px;padding:7px 7px 7px 10px;overflow:hidden}
.daily-mission-row>span{justify-self:end}.daily-mission-row>button{width:56px;min-width:0;margin:0;padding:7px 4px}
@media(max-width:760px){
  .mission-board-content{left:17%;right:17%}
  .daily-mission-list{padding:0 5px}
  .daily-mission-row{grid-template-columns:minmax(0,1fr) 48px 43px;gap:3px;padding:6px 4px 6px 7px}
  .daily-mission-row b{font-size:8px}.daily-mission-row small{font-size:6px;line-height:1.25;white-space:normal}
  .daily-mission-row>span{font-size:6px}.daily-mission-row>span img{width:12px;height:12px}
  .daily-mission-row>button{width:43px;padding:5px 2px;font-size:7px}
}
.character-bag-title{min-height:42px;padding:10px 13px}
.forge-redesign-panel{background:linear-gradient(145deg,#24180df5,#4a311af2);box-shadow:inset 0 0 28px #d49b3a20,0 8px 30px #000a;color:#fff0cf}
.forge-selected-slot{display:grid;grid-template-columns:minmax(92px,35%) 1fr;grid-template-rows:auto auto auto;align-items:center;justify-content:center;gap:5px 12px;flex-wrap:nowrap;text-align:left}
.forge-selected-slot>span{grid-column:1/-1;text-align:center}
.forge-selected-slot>.weapon-card-visual,.forge-selected-slot>img{grid-column:1;grid-row:1/4;width:88px;height:88px;min-height:88px;justify-self:center;object-fit:contain}
.forge-selected-slot>b,.forge-selected-slot>small,.forge-selected-slot>em{grid-column:2;width:auto;margin:0}
.forge-selected-slot>b{font-size:14px;color:#ffe5a1}.forge-selected-slot>small{color:#eed9b7}
.forge-redesign-tabs button.active{background:#75501f;color:#fff1bd}
.forge-item-info{border-color:#9b7139;background:#1b120ad9}
.forge-bottom{overflow:hidden}
.forge-redesign-list{height:calc(100% - 86px);min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;border:1px solid #9b7139;border-radius:11px;background:#160e08;box-shadow:inset 0 0 16px #000}
.forge-list-item,.forge-redesign-list>article{min-height:82px;display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;border-color:#956b35;background:#2a1a0d;color:#fff2d2;text-align:left;overflow:hidden}
.forge-list-item>.weapon-card-visual,.forge-list-item>img,.forge-redesign-list>article img{grid-row:1/3;width:58px;height:66px;min-height:58px;object-fit:contain}
.forge-list-item b,.forge-list-item small,.forge-redesign-list>article b,.forge-redesign-list>article span{min-width:0;overflow-wrap:anywhere}.forge-list-item small{color:#d6b98f}
@media(max-width:760px){.forge-redesign-list{grid-template-columns:1fr}.forge-selected-slot{grid-template-columns:76px 1fr}.forge-selected-slot>.weapon-card-visual,.forge-selected-slot>img{width:70px;height:70px;min-height:70px}}

/* Thợ rèn đồng bộ phong cách Rương chứa đồ */
.forge-redesign-stack{
  right:4%;
  top:6%;
  width:64%;
  height:88%;
  grid-template-rows:42% minmax(0,1fr);
  gap:8px
}
.forge-redesign-panel{
  padding:10px 12px;
  border-width:1px;
  border-color:#b98232;
  border-radius:15px;
  background:
    radial-gradient(circle at 22% 0,#76501c25,transparent 42%),
    linear-gradient(145deg,#140d08f2,#090805f6);
  box-shadow:inset 0 0 24px #a8661715,0 7px 22px #000b
}
.forge-bottom{
  border-color:#718ba4;
  background:
    radial-gradient(circle at 80% 0,#123b5526,transparent 46%),
    linear-gradient(145deg,#071016f2,#070a0df7);
  box-shadow:inset 0 0 25px #306b8f16,0 7px 22px #000b
}
.forge-panel-heading{display:flex;align-items:flex-end;justify-content:space-between;min-height:36px;margin:0 2px 7px;text-align:left}
.forge-panel-heading small{display:block;color:#bba582;font:500 8px Georgia,serif;letter-spacing:2px}
.forge-panel-heading h2{margin:2px 0 0!important;color:#f4d488;font:900 18px Georgia,serif;letter-spacing:.5px;text-align:left}
.forge-bag-heading>div{display:grid}.forge-bag-heading strong{color:#f0d597;font:900 15px Georgia,serif}
.forge-bag-heading>b{padding:3px 8px;border:1px solid #9a6b29;border-radius:99px;color:#d9c28f;font-size:8px}
.forge-selected-slot{height:calc(100% - 82px);padding:4px 10px;border:1px solid #58401f;border-radius:10px;background:#07060480}
.forge-selected-slot>span{color:#a99980;font-size:11px}
.forge-main-actions{gap:7px}
.forge-main-actions button,.forge-redesign-tabs button,.forge-item-info button{
  min-height:30px;
  padding:5px 8px;
  border-width:1px;
  border-color:#76572d;
  border-radius:9px;
  background:#17110bd9;
  color:#d8c49c;
  font-size:9px
}
.forge-main-actions button:not(:disabled){border-color:#b98232;color:#f0d395;box-shadow:inset 0 0 10px #9d64162b}
.forge-redesign-tabs{gap:4px;margin-bottom:5px}
.forge-redesign-tabs button{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:27px;padding:4px 5px;font-size:8px}
.forge-redesign-tabs button i{display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#3c2d1c;color:#cdb37e;font:700 7px Georgia,serif}
.forge-redesign-tabs button.active{border-color:#d49a38;background:#211608;color:#f7d88d;box-shadow:0 0 8px #d6932740}
.forge-item-info{min-height:30px;margin:4px 0 6px;padding:5px 8px;border-color:#57442e;background:#090806b8;color:#baac94;font-size:8px}
.forge-redesign-list{
  height:calc(100% - 106px);
  padding:4px;
  gap:3px;
  border-color:#44596b;
  border-radius:8px;
  background:#050708cf;
  box-shadow:inset 0 0 18px #000
}
.forge-list-item,.forge-redesign-list>article{
  min-height:66px;
  grid-template-columns:49px minmax(0,1fr);
  padding:4px;
  border-color:#564324;
  border-radius:5px;
  background:linear-gradient(145deg,#18120b,#0b0a08);
  color:#dec99d
}
.forge-list-item>.weapon-card-visual,.forge-list-item>img,.forge-redesign-list>article img{
  width:44px;
  height:52px;
  min-height:44px
}
.forge-list-item b,.forge-list-item small,.forge-redesign-list>article b,.forge-redesign-list>article span{font-size:7px}
.forge-list-item small{color:#8f9ca5}
@media(max-width:760px){
  .forge-redesign-stack{right:2%;top:5%;width:70%;height:90%;grid-template-rows:41% minmax(0,1fr)}
  .forge-redesign-panel{padding:7px}
  .forge-panel-heading{min-height:29px;margin-bottom:4px}
  .forge-panel-heading h2{font-size:14px}
  .forge-panel-heading small{font-size:6px}
  .forge-bag-heading strong{font-size:11px}
  .forge-selected-slot{height:calc(100% - 68px);padding:3px 6px}
  .forge-main-actions button{min-height:26px;font-size:7px}
  .forge-redesign-tabs button{min-height:24px;font-size:6.5px}
  .forge-item-info{min-height:26px;font-size:6.5px}
  .forge-redesign-list{height:calc(100% - 88px)}
  .forge-list-item,.forge-redesign-list>article{min-height:58px}
}

/* Bộ chọn tối đa ba tầng Boss thấp hơn tầng cao nhất */
.battle-3d .floor-label{display:flex;align-items:center;gap:6px;cursor:pointer}
.battle-3d .floor-label small{font-size:10px;color:#d1aa65}
.battle-3d .floor-label:disabled{cursor:default;opacity:.62}
.battle-floor-menu{position:absolute;z-index:25;top:58px;left:14px;width:min(210px,48vw);padding:9px;border:1px solid #a88a58;border-radius:12px;background:#080808f2;box-shadow:0 10px 30px #000c;color:#f2d192}
.battle-floor-menu>strong{display:block;margin:0 0 7px;font:900 12px Georgia,serif;letter-spacing:.5px}
.battle-floor-menu>small{display:block;padding:8px;color:#a99d89;font-size:9px}
.battle-floor-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:5px;padding:8px 9px;border:1px solid #5c4b32;border-radius:8px;background:#17110b;color:#f0d49a;font-size:10px;font-weight:900}
.battle-floor-menu button small{color:#9d8b70;font-size:7px;font-weight:500}
.battle-floor-menu button:hover,.battle-floor-menu button:active{border-color:#d5a34c;background:#2b1d0c}
.battle-floor-menu [data-battle-floor-close]{justify-content:center;margin-top:8px;color:#b8aa91}
@media(max-width:760px){.battle-floor-menu{top:42px;left:8px;width:min(185px,58vw);padding:7px}.battle-floor-menu button{padding:7px;font-size:9px}}
.gear-lock-badge{display:inline-flex!important;align-items:center;justify-content:center;margin-top:3px;padding:2px 5px;border-radius:999px;font-size:7px!important;font-weight:900;line-height:1.2}.gear-lock-badge.locked{border:1px solid #a86969;background:#351313;color:#ffc5c5}.gear-lock-badge.unlocked{border:1px solid #4ba979;background:#0d3525;color:#aaffd2}

.modal-layer.expedition-layer,.modal-layer.rest-layer,.modal-layer.trade-layer{padding:0;background:#020407}.modal.expedition-modal,.modal.rest-modal,.modal.trade-modal{width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0;background:#05080c;overflow:hidden}.expedition-modal>.modal-close,.rest-modal>.modal-close,.trade-modal>.modal-close{z-index:80;top:max(12px,env(safe-area-inset-top));right:12px;border:1px solid #d4a24c;background:#080b10db;color:#ffe4a1}.expedition-modal #modalContent,.rest-modal #modalContent,.trade-modal #modalContent{height:100%}
.expedition-hub{position:relative;width:100%;height:100%;overflow:hidden;color:#fff}.expedition-map{position:absolute;inset:0;background:#07101a url("hinhanh/vuot-ai/ban-do-khu-vuc-3d.webp") center/cover no-repeat;animation:expeditionMapBreath 9s ease-in-out infinite}.expedition-hub:after{content:"";position:absolute;inset:0;background:linear-gradient(#02050a66,transparent 18% 76%,#02050aaa);pointer-events:none}.expedition-hub>header{position:absolute;z-index:4;left:50%;top:max(18px,env(safe-area-inset-top));transform:translateX(-50%);text-align:center;text-shadow:0 3px 12px #000}.expedition-hub>header small{color:#efc56d;font-weight:900;letter-spacing:4px}.expedition-hub>header h2{margin:3px 0;font:900 clamp(25px,5vw,48px) Georgia,serif}.expedition-place{position:absolute;z-index:5;min-width:210px;padding:11px 15px;border:1px solid #c69343;border-radius:14px;background:#070a0dcc;color:#fff1c7;box-shadow:0 8px 24px #000c,inset 0 0 18px #d8922630;text-align:left;backdrop-filter:blur(5px);animation:expeditionPlaceFloat 3s ease-in-out infinite}.expedition-place b,.expedition-place small{display:block}.expedition-place b{font:900 16px Georgia,serif}.expedition-place small{margin-top:4px;color:#c7d2dc;font-size:10px}.expedition-place.boss-cave{left:8%;top:25%;border-color:#c83e32}.expedition-place.rest-stop{left:10%;top:58%;animation-delay:.7s}.expedition-place.explore-cave{right:7%;bottom:12%;border-color:#4fb8e6;animation-delay:1.4s}.expedition-place:hover{filter:brightness(1.18)}@keyframes expeditionMapBreath{50%{transform:scale(1.015)}}@keyframes expeditionPlaceFloat{50%{transform:translateY(-8px)}}
.rest-station{position:relative;width:100%;height:100%;overflow:hidden;color:#f6ead3}.rest-shop-bg{position:absolute;inset:0;background:#100d09 url("hinhanh/vuot-ai/tram-nghi-anh-hung-3d.webp") center/cover no-repeat}.rest-station:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 35%,#05050575 55%,#050505d9);pointer-events:none}.rest-station>header{position:absolute;z-index:4;top:max(18px,env(safe-area-inset-top));left:4%;max-width:45%;text-shadow:0 3px 10px #000}.rest-station>header small{color:#e5b65e;font-weight:900;letter-spacing:2px}.rest-station>header h2{margin:5px 0;font:900 clamp(27px,5vw,52px) Georgia,serif}.rest-station>header p{margin:0}.rest-shop-panel,.rest-player-panel{position:absolute;z-index:5;right:3%;width:min(46vw,560px);border:1px solid #80653f;border-radius:16px;background:#080a0cdb;box-shadow:0 14px 35px #000b,inset 0 0 25px #a86c2030;backdrop-filter:blur(7px)}.rest-shop-panel{top:8%;padding:14px}.rest-player-panel{top:40%;bottom:5%;padding:12px;overflow:hidden}.rest-shop-panel h3,.rest-player-panel h3{margin:0;color:#f0ca78;font-family:Georgia,serif}.rest-shop-panel article{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:9px;margin-top:9px;padding:7px;border:1px solid #473b2b;border-radius:9px;background:#10151a}.rest-shop-panel img{width:38px;height:38px;object-fit:contain}.rest-shop-panel small{display:block;color:#b8c2ca}.rest-shop-panel button,.rest-player button,.rest-list-head button,.rest-back-map{border:1px solid #ad7c36;border-radius:8px;background:linear-gradient(#664319,#251407);color:#ffe6aa;font-weight:900}.rest-shop-panel button{padding:8px 13px}.rest-shop-panel>p{margin:8px 0 0;font-size:10px}.rest-shop-panel strong{color:#75efb1}.rest-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.rest-list-head button{padding:7px 10px}.rest-player-list{height:calc(100% - 34px);margin-top:8px;overflow:auto}.rest-player{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:8px;border-bottom:1px solid #3c352c}.rest-player.self{background:#8d67251c}.rest-player>i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#6b4b1e;color:#ffe1a0;font-style:normal;font-weight:900}.rest-player b,.rest-player small{display:block}.rest-player small{color:#aeb8c0;font-size:9px}.rest-player button{padding:6px 8px;font-size:10px}.rest-player em{color:#e6bd6b;font-size:10px}.rest-back-map{position:absolute;z-index:8;left:3%;bottom:max(16px,env(safe-area-inset-bottom));padding:10px 14px}.rest-loading{position:absolute;z-index:5;inset:0;display:grid;place-items:center;font:900 20px Georgia,serif}.trade-invite-popup{position:fixed;z-index:90;left:50%;top:50%;transform:translate(-50%,-50%);width:min(88vw,360px);padding:20px;border:1px solid #e4ad51;border-radius:16px;background:#080b10f2;box-shadow:0 0 45px #000;color:#fff;text-align:center}.trade-invite-popup strong{display:grid;place-items:center;margin:12px auto;width:48px;height:48px;border-radius:50%;background:#7d2518;font-size:24px}.trade-invite-popup button{padding:9px 15px;margin:0 4px;border:1px solid #c69143;border-radius:8px;background:#543613;color:#fff0c2;font-weight:900}
.trade-room{height:100%;padding:max(58px,calc(env(safe-area-inset-top) + 44px)) 4vw max(16px,env(safe-area-inset-bottom));overflow:auto;color:#eee;background:radial-gradient(circle at 50% 35%,#243443,#07090d 65%)}.trade-room>header{text-align:center}.trade-room>header small{color:#e8bd65;letter-spacing:3px}.trade-room>header h2{margin:4px 0 12px;font-family:Georgia,serif;color:#ffe6aa}.trade-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:1100px;margin:auto}.trade-columns>section{padding:13px;border:1px solid #6f5735;border-radius:14px;background:#080b10d9}.trade-columns h3{margin:4px 0 9px;color:#edc773}.trade-my-inventory,.trade-offer-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:280px;overflow:auto}.trade-my-inventory button,.trade-offer-items article{min-width:0;padding:6px;border:1px solid #3d5060;border-radius:8px;background:#111b23;color:#eee;text-align:center}.trade-my-inventory img,.trade-offer-items img{display:block;width:52px;height:52px;object-fit:contain;margin:auto}.trade-my-inventory b,.trade-my-inventory small,.trade-offer-items b,.trade-offer-items small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.trade-columns>section>button,.trade-room>button{margin-top:10px;padding:10px 15px;border:1px solid #ba873b;border-radius:9px;background:linear-gradient(#62431c,#241509);color:#ffe8b2;font-weight:900}.trade-room>button{display:block;margin:14px auto}
@media(max-width:760px){.expedition-hub>header{top:max(12px,env(safe-area-inset-top))}.expedition-hub>header small{font-size:8px}.expedition-hub>header h2{font-size:23px}.expedition-place{min-width:155px;padding:8px 10px}.expedition-place b{font-size:11px}.expedition-place small{font-size:7px}.expedition-place.boss-cave{left:3%;top:20%}.expedition-place.rest-stop{left:3%;top:51%}.expedition-place.explore-cave{right:3%;bottom:10%}.rest-station:after{background:linear-gradient(180deg,transparent 24%,#050505a0 43%,#050505eb 70%)}.rest-station>header{left:3%;top:max(12px,env(safe-area-inset-top));max-width:75%}.rest-station>header small{font-size:7px}.rest-station>header h2{font-size:22px}.rest-station>header p{font-size:10px}.rest-shop-panel,.rest-player-panel{left:3%;right:3%;width:auto}.rest-shop-panel{top:39%;padding:9px}.rest-player-panel{top:64%;bottom:5%;padding:8px}.rest-shop-panel h3,.rest-player-panel h3{font-size:12px}.rest-shop-panel article{grid-template-columns:32px 1fr auto;margin-top:5px;padding:4px}.rest-shop-panel img{width:28px;height:28px}.rest-shop-panel b{font-size:10px}.rest-shop-panel small{font-size:7px}.rest-shop-panel button{padding:6px 9px;font-size:9px}.rest-shop-panel>p{font-size:7px}.rest-player{padding:5px}.rest-back-map{left:3%;bottom:auto;top:31%;padding:7px 10px;font-size:9px}.trade-columns{grid-template-columns:1fr}.trade-room{padding-left:10px;padding-right:10px}.trade-room>header h2{font-size:17px}.trade-my-inventory,.trade-offer-items{grid-template-columns:repeat(3,1fr)}}
.explore-cave-actions{position:absolute;z-index:6;right:7%;bottom:12%;display:flex;align-items:center;gap:9px}.explore-cave-actions .expedition-place.explore-cave{position:relative;right:auto;bottom:auto}.expedition-rank-button{display:grid;place-items:center;gap:2px;width:60px;height:58px;border:1px solid #e6b84e;border-radius:14px;background:#090d12dc;color:#ffd66f;box-shadow:0 8px 24px #000c,0 0 18px #d9992444;font-size:20px;animation:expeditionPlaceFloat 3s ease-in-out .35s infinite}.expedition-rank-button span{font-size:9px;font-weight:900}.expedition-rank-host{position:absolute;z-index:30;inset:0;pointer-events:none}.expedition-rank-board{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(90vw,470px);padding:22px 16px 14px;border:1px solid #d8a946;border-radius:18px;background:linear-gradient(155deg,#151b24f5,#05080cf7);box-shadow:0 20px 70px #000,0 0 28px #d39b3044;color:#eef4fa;pointer-events:auto;backdrop-filter:blur(10px)}.expedition-rank-close{position:absolute;right:10px;top:10px;width:34px;height:34px;border:1px solid #d7a94d;border-radius:50%;background:#180d07;color:#ffe2a0;font-size:22px;font-weight:900}.expedition-rank-board header{text-align:center}.expedition-rank-board header small{color:#dfb962;letter-spacing:3px;font-weight:900}.expedition-rank-board header h2{margin:4px 0 13px;font-family:Georgia,serif;color:#fff0bd}.expedition-rank-board article{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;margin-top:6px;padding:9px;border:1px solid #384654;border-radius:10px;background:#0d141c}.expedition-rank-board article>i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#263340;color:#dce9f2;font-style:normal;font-weight:900}.expedition-rank-board article b,.expedition-rank-board article small{display:block}.expedition-rank-board article small{margin-top:2px;color:#9fb0bd;font-size:9px}.expedition-rank-board article>strong{color:#f2cd7b}.expedition-rank-board article.rank-1{border-color:#f2c64f;box-shadow:inset 0 0 16px #b67d2228}.expedition-rank-board article.rank-1>i{background:#987019;color:#fff1a8}.expedition-rank-board article.rank-2>i{background:#687783;color:#edf7ff}.expedition-rank-board article.rank-3>i{background:#7b492b;color:#ffd5ba}.expedition-rank-board footer{margin-top:10px;color:#9faeba;font-size:9px;text-align:center}
@media(max-width:760px){.explore-cave-actions{right:3%;bottom:10%;gap:5px}.explore-cave-actions .expedition-place.explore-cave{right:auto;bottom:auto}.expedition-rank-button{width:48px;height:46px;font-size:16px}.expedition-rank-button span{font-size:7px}.expedition-rank-board{width:92vw;padding:20px 10px 11px}.expedition-rank-board article{padding:7px}}
.rest-invite-control{display:flex;align-items:center;gap:7px}
.rest-invite-control>small{max-width:145px;color:#9faeba;font-size:8px;line-height:1.25;text-align:right}
.rest-invite-control>button.open{border-color:#48a879;color:#baffd7}
.rest-invite-control>button.locked{border-color:#b45d5d;color:#ffcaca}
@media(max-width:760px){
  .rest-invite-control{gap:4px}
  .rest-invite-control>small{max-width:105px;font-size:6px}
}
.trade-columns .trade-confirm-status{margin:10px 0 0;color:#9fd9ff;font-size:11px;font-weight:800}
.trade-columns [data-trade-confirm].waiting:disabled{opacity:1;border-color:#568cb5;background:linear-gradient(#28506c,#122432);color:#d8f1ff}
.trade-empty-locked{color:#66e69a!important;font-weight:900}.trade-not-locked{color:#aeb8c0;font-weight:800}
.trade-columns>.trade-my-panel.is-locked{border-color:#1677b8!important;background:linear-gradient(180deg,rgba(5,48,82,.96),rgba(3,27,50,.96))!important;box-shadow:inset 0 0 0 2px rgba(39,154,224,.36),0 0 22px rgba(17,112,176,.25)}
.trade-columns>.trade-my-panel.is-locked::before{content:"ĐÃ KHÓA";display:inline-flex;margin:0 0 12px;padding:6px 12px;border:1px solid #47b8ff;border-radius:999px;background:#07558b;color:#dff5ff;font-size:.78rem;font-weight:950;letter-spacing:.08em}

/* Bản cập nhật tổng hợp yêu cầu 1–7 */
.character-gear-detail{display:none!important}.weapon-multi-slot{grid-column:auto!important}.weapon-roman-slots button.plus-linked{box-shadow:inset 0 0 0 2px #287db7,0 0 13px #218ad06b}.weapon-roman-slots button.plus-source{border-color:#4ee68a!important}.weapon-roman-slots button.plus-support{border-color:#58bfff!important}.character-gear-slot.plus-linked{box-shadow:inset 0 0 0 2px #287db7,0 0 17px #218ad06b}.weapon-origin{display:block;color:#58ee8f!important;font-size:8px}.weapon-support{display:block;color:#58bfff!important;font-size:8px}
.gear-float-card{position:fixed;z-index:260;width:min(330px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;padding:16px;border:1px solid #6e94af;border-radius:14px;background:linear-gradient(145deg,#09131ddd,#132736dc);box-shadow:0 18px 55px #000c;color:#edf8ff;backdrop-filter:blur(13px)}.gear-float-card:after{display:none!important}.gear-float-card>b{font-size:16px;color:#ffe29c}.gear-float-card p{margin:7px 0}.gear-float-card .gear-stars{display:flex;align-items:center;gap:7px;white-space:nowrap}.gear-float-card .unlocked{color:#5ceb8e}.gear-float-card .locked{color:#58b8ff}.gear-float-stats{padding:9px;border-radius:9px;background:#02091073}.gear-float-card footer,.fusion-panel footer{display:flex;gap:7px;margin-top:12px}.gear-float-card footer{flex-wrap:wrap}.gear-float-card footer>button{flex:1 1 118px}.gear-float-card footer>button[data-gear-salvage]{border-color:#47bde3;background:linear-gradient(145deg,#0b3b55,#125a76);color:#d9f7ff}.gear-float-card footer>button[data-gear-salvage] small{display:block;margin-top:3px;color:#a9eaff;font-size:8px;line-height:1.25}.gear-float-card footer>button[data-gear-float-close]{flex-basis:100%}.gear-float-card button,.fusion-panel button{padding:9px 12px;border:1px solid #6996b4;border-radius:9px;background:#14344a;color:#fff;font-weight:850}
.fusion-layer{position:fixed;z-index:270;inset:0;display:grid;place-items:center;padding:12px;background:#01060bbd;backdrop-filter:blur(7px)}.fusion-panel{width:min(760px,96vw);max-height:92dvh;overflow:hidden;padding:18px;border:1px solid #957442;border-radius:18px;background:#08121cf5;color:#fff}.fusion-panel h2,.fusion-panel h3{margin:0 0 10px;color:#f0cd83}.fusion-target{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:10px;padding:10px;border:1px solid #4e7994;border-radius:12px;background:#102535}.fusion-target img{grid-row:1/3;width:76px;height:76px;object-fit:contain}.fusion-target small{color:#ffe399}.fusion-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:44dvh;overflow:auto}.fusion-candidates button{position:relative;display:grid;place-items:center;min-height:125px;background:#101923}.fusion-candidates img{width:64px;height:64px;object-fit:contain}.fusion-candidates b,.fusion-candidates small{font-size:8px}.fusion-candidates i{display:none;position:absolute;right:5px;top:5px;width:22px;height:22px;border-radius:50%;background:#27b766}.fusion-candidates button.selected{border-color:#42ef87;box-shadow:inset 0 0 0 2px #29bb68}.fusion-candidates button.selected i{display:grid;place-items:center}
.premium-reveal-burst{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle,#ad58ff99 0,#481a7770 24%,transparent 63%)}.premium-reveal-burst i{position:absolute;left:50%;top:50%;width:7px;height:74vmax;background:linear-gradient(transparent,#dca8ff,transparent);transform-origin:50% 0;transform:rotate(calc(var(--n,0)*30deg));animation:premiumRay 2s ease-in-out infinite}.premium-reveal-burst i:nth-child(1){--n:1}.premium-reveal-burst i:nth-child(2){--n:3}.premium-reveal-burst i:nth-child(3){--n:5}.premium-reveal-burst i:nth-child(4){--n:7}.premium-reveal-burst i:nth-child(5){--n:9}.premium-reveal-burst i:nth-child(6){--n:11}.reveal-layer{background:radial-gradient(circle at 50% 50%,#59267f,#170723 58%,#050207)!important}.reveal-layer:before,.reveal-layer:after{display:none!important}.reveal-card{background:transparent!important;border:0!important;box-shadow:none!important}.reveal-weapon-stage{filter:drop-shadow(0 0 28px #ae57ff);transform:rotate(-12deg) scale(1.08)}.reveal-layer.rare .reveal-weapon-stage{filter:drop-shadow(0 0 38px #ffbe4c)}.reveal-layer.super .reveal-weapon-stage{filter:drop-shadow(0 0 48px #fff) drop-shadow(0 0 70px #ffd754)}.reveal-next-button{padding:11px 22px;border:1px solid #edce86;border-radius:999px;background:#2f1752;color:#fff;font-weight:900}@keyframes premiumRay{50%{opacity:.25;transform:rotate(calc(var(--n)*30deg + 15deg)) scaleX(2)}}
.recruit-weapon-cycle article.recruit-cutout-slide{width:min(70vw,390px);height:min(48dvh,520px);background:transparent!important;border:0!important;box-shadow:none!important}.recruit-separation-effect,.summon-result-energy{position:absolute;z-index:0;left:50%;top:48%;width:min(62vw,340px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff 0 2%,#c979ffb8 5%,#7235ee72 24%,transparent 64%);filter:drop-shadow(0 0 30px #8f4cff);animation:separationPulse 1.8s ease-in-out infinite}.recruit-separation-effect:before,.recruit-separation-effect:after,.summon-result-energy:before,.summon-result-energy:after{content:"";position:absolute;inset:8%;border:2px solid #c89cff;border-radius:50%;box-shadow:0 0 24px #8f4cff,inset 0 0 24px #8f4cff;animation:separationSpin 5s linear infinite}.recruit-separation-effect:after,.summon-result-energy:after{inset:22%;border-style:dashed;animation-direction:reverse}.recruit-separation-effect i,.summon-result-energy i{position:absolute;left:49%;top:50%;width:3px;height:58%;transform-origin:50% 0;background:linear-gradient(#fff,transparent);rotate:calc(var(--ray,1)*72deg)}.recruit-separation-effect i:nth-child(1),.summon-result-energy i:nth-child(1){--ray:1}.recruit-separation-effect i:nth-child(2),.summon-result-energy i:nth-child(2){--ray:2}.recruit-separation-effect i:nth-child(3),.summon-result-energy i:nth-child(3){--ray:3}.recruit-separation-effect i:nth-child(4),.summon-result-energy i:nth-child(4){--ray:4}.recruit-separation-effect i:nth-child(5),.summon-result-energy i:nth-child(5){--ray:5}.recruit-cutout-weapon{position:relative;z-index:2;width:min(48vw,250px);height:78%;object-fit:contain;transform:rotate(-16deg);filter:drop-shadow(0 0 18px #fff) drop-shadow(0 0 34px #8f4cff)}.recruit-cutout-slide>div:last-child{position:relative;z-index:3}.reveal-weapon-stage{position:relative;display:grid;place-items:center;min-height:min(55dvh,520px);transform:none!important;background:transparent!important}.summon-result-cutout{position:relative;z-index:3;width:min(52vw,300px);max-height:52dvh;object-fit:contain;transform:rotate(-16deg);filter:drop-shadow(0 0 18px #fff) drop-shadow(0 0 34px #9a48ff)}.summon-result-energy.rarity-common{filter:drop-shadow(0 0 26px #8f4cff)}.summon-result-energy.rarity-rare{background:radial-gradient(circle,#fff 0 3%,#ffe48fbd 7%,#bc6cff72 28%,transparent 65%);filter:drop-shadow(0 0 38px #ffbf3f)}.summon-result-energy.rarity-super{background:radial-gradient(circle,#fff 0 5%,#fff4b7dc 9%,#b77aff85 30%,transparent 68%);filter:drop-shadow(0 0 48px #fff) drop-shadow(0 0 64px #ffc928)}@keyframes separationPulse{50%{scale:1.12;filter:drop-shadow(0 0 48px #c17aff)}}@keyframes separationSpin{to{transform:rotate(360deg)}}
.boss-preparation-modal>.modal-close{display:none!important}.preboss-exit{position:absolute;z-index:30;right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));padding:10px 15px;border:1px solid #d6a44e;border-radius:10px;background:#35180d;color:#ffe7ad;font-weight:900}.boss-preparation .sleeping-boss{z-index:0!important;pointer-events:none!important}.boss-preparation>header,.boss-counter-panel,.preboss-loadout{position:relative;z-index:5}.preboss-loadout>button{position:relative;z-index:7;pointer-events:auto}.preboss-challenge-card{position:absolute;z-index:20;left:50%;top:max(88px,calc(env(safe-area-inset-top) + 74px));bottom:auto;transform:translateX(-50%);padding:13px 22px;border:1px solid #e1b456;border-radius:14px;background:#1b0d08ef;color:#ffeab9;font-weight:950;white-space:nowrap}
.battle-load-curtain{position:fixed;z-index:400;inset:0;display:grid;place-items:center;background:#000;color:#d7e8f5;font-weight:900;letter-spacing:3px;opacity:1;transition:opacity .6s}.battle-load-curtain.loaded{opacity:0}
.boss-actor .boss-body-sprite{translate:var(--admin-x,0) var(--admin-y,0);scale:var(--admin-scale,1)}
.fire-energy-cinematic{position:absolute;z-index:35;inset:0;overflow:hidden;pointer-events:none;animation:fireScreenShake .16s infinite}.dragon-mouth-beam{position:absolute;left:var(--fire-mouth-x,64%);top:var(--fire-mouth-y,25%);width:calc(16% * var(--fire-boss-scale,1));height:88%;transform:translate(-50%,-6%) rotate(4deg);transform-origin:50% 0;background:linear-gradient(90deg,transparent,#ff5a00aa 12%,#fff4b8 42%,#fff 50%,#fff4b8 58%,#ff5a00aa 88%,transparent);filter:drop-shadow(0 0 20px #ff4d00) blur(.3px);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);animation:fireBeamPulse .15s alternate infinite}.heat-distortion{position:absolute;inset:0;background:radial-gradient(circle at var(--fire-mouth-x,64%) var(--fire-mouth-y,25%),#fff8bf88,transparent 10%),radial-gradient(circle at 55% 70%,#ff3c004d,transparent 48%);backdrop-filter:blur(1.4px) saturate(1.55);animation:heatWave .32s alternate infinite}.flying-embers i{position:absolute;left:calc(var(--x)*1%);top:110%;width:var(--s);height:var(--s);border-radius:48% 52% 60% 40%;background:radial-gradient(circle at 35% 35%,#fff7c2 0,#ff9a1f 24%,#ed3100 56%,transparent 70%);filter:drop-shadow(0 0 16px #ff5a00);animation:emberFly var(--d) linear infinite;animation-delay:calc(var(--i)*-.13s)}@keyframes emberFly{to{transform:translate(calc((var(--x) - 50)*-.8vw),-145vh) rotate(720deg) scale(.15)}}@keyframes fireBeamPulse{to{filter:drop-shadow(0 0 34px #ff6a00) blur(1.2px);transform:translate(-50%,-6%) rotate(4deg) scaleX(1.13)}}@keyframes heatWave{to{transform:scale(1.015);filter:hue-rotate(8deg)}}@keyframes fireScreenShake{50%{transform:translate(1px,-1px)}}

@media(max-width:760px),(max-height:780px){
  .battle-screen{height:100dvh!important;min-height:0!important;overflow:hidden!important;padding-top:env(safe-area-inset-top)!important;padding-bottom:calc(env(safe-area-inset-bottom) + 72px)!important}
  .battle-actions{position:fixed!important;z-index:80!important;left:max(1%,env(safe-area-inset-left))!important;right:max(1%,env(safe-area-inset-right))!important;bottom:max(4px,env(safe-area-inset-bottom))!important;display:flex!important;gap:1px!important;height:auto!important}
  .battle-actions .battle-command{min-width:0!important;height:116px!important;padding:0!important}
  .battle-command>small{font-size:8px!important}
  .battle-skill-choices{position:fixed!important;z-index:90!important;left:8px!important;right:8px!important;bottom:calc(env(safe-area-inset-bottom) + 72px)!important;max-height:42dvh!important;overflow:auto!important}
  .fusion-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.player-actor.attacking{z-index:8!important}.boss-actor{z-index:2}.player-actor{z-index:3}
.rest-connect-layer{position:fixed;z-index:89;inset:0;display:grid;place-items:center;padding:18px;background:#0007}
.rest-connect-popup{position:relative;width:min(82vw,280px);padding:22px 18px 18px;border:1px solid #d6a14d;border-radius:15px;background:linear-gradient(145deg,#18232df5,#07090df8);box-shadow:0 18px 55px #000;color:#fff;text-align:center}
.rest-connect-popup>small{color:#d9b368;font-size:9px;letter-spacing:2px}
.rest-connect-popup>h3{margin:5px 0 14px;color:#ffe5a7;font-family:Georgia,serif}
.rest-connect-popup>button:not(.rest-connect-close){display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #966d35;border-radius:9px;background:linear-gradient(#5e401b,#26180b);color:#ffedbd;font-weight:900}
.rest-connect-popup>.rest-connect-close{position:absolute;top:7px;right:8px;width:28px;height:28px;border:1px solid #bd8a3f;border-radius:50%;background:#0b0e12;color:#ffe7af;font-size:19px;line-height:1}
.expedition-place.village-return{left:3%;bottom:5%;min-width:155px}
.village-return-hotspot{left:0;bottom:0;width:36%;height:18%}.village-zone{position:absolute;z-index:5;border:0!important;background:transparent!important;box-shadow:none!important;color:transparent;font-size:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.village-home-zone{left:0;top:43%;width:45%;height:28%}.village-forge-zone{right:0;top:45%;width:43%;height:30%}.village-recruit-zone{right:0;top:19%;width:39%;height:25%}.village-adventure-zone{left:0;bottom:0;width:55%;height:22%}.village-zone:active,.expedition-hotspot:active{background:#ffffff0a!important}
.expedition-hub>.explore-hotspot{right:0;bottom:7%;width:50%;height:36%;border-radius:50%}.explore-cave-actions .expedition-rank-button{position:relative;z-index:9}
@media(max-width:760px){
  .boss-hotspot{left:18%;top:12%;width:54%;height:31%}
  .rest-hotspot{left:2%;top:39%;width:58%;height:32%}
  .expedition-hub>.explore-hotspot{right:0;bottom:7%;width:52%;height:36%}
}
.boss-preparation-layer .modal-close{display:none!important}
.battle-screen.battle-stage-boss.battle-element-fire,
.battle-mode .battle-screen.battle-stage-boss.battle-element-fire{background-image:url("hinhanh/chien-dau/chien-truong-boss-lua-goc-thap-3d.webp");background-position:center center}
.boss-attack-fx.fire-orb-fx{z-index:39;left:52%;top:29%;width:min(28vw,330px);height:auto;filter:drop-shadow(0 0 25px #ff5a00);animation:fireOrbFly 1.25s cubic-bezier(.18,.75,.28,1) both}.boss-attack-fx.fire-orb-trail-fx{z-index:38;left:45%;top:24%;width:min(34vw,390px);height:auto;opacity:.9;filter:drop-shadow(0 0 18px #ff4d00);animation:fireTrailFly 1.25s cubic-bezier(.18,.75,.28,1) both}@keyframes fireOrbFly{0%{opacity:0;transform:translate(0,0) scale(.3)}18%{opacity:1}100%{opacity:0;transform:translate(-165% ,120%) scale(1.35)}}@keyframes fireTrailFly{0%{opacity:0;transform:translate(0,0) rotate(-34deg) scale(.35)}20%{opacity:.9}100%{opacity:0;transform:translate(-145%,105%) rotate(-34deg) scale(1.4)}}
.modal-layer.village-layer{display:block;padding:0;background:#020407}.village-layer .modal-backdrop{display:none}.modal.village-modal{position:fixed;inset:0;width:100vw!important;height:100vh;height:100dvh;max-width:none!important;max-height:none!important;border:0!important;border-radius:0!important;background:#05070a!important;overflow:hidden}.village-modal #modalContent{position:absolute;inset:0;width:auto;height:auto;min-height:100vh;min-height:100dvh}.village-modal .modal-close{z-index:90}
.village-hub,.village-scene,.village-blessing{position:relative;width:100%;height:100%;min-height:100vh;min-height:100dvh;overflow:hidden;color:#fff;background:#07101a}
.village-map,.village-scene-bg{position:absolute;inset:0;background-color:#07101a;background-position:center;background-size:cover;background-repeat:no-repeat}
.village-map{background-image:url("hinhanh/vuot-ai/thon/ban-do-thon-3d.webp")}
.village-hub.village-day .village-map{background-image:url("hinhanh/vuot-ai/thon/ban-do-thon-ban-ngay-3d.webp")}
.village-hub:after,.village-scene:after,.village-blessing:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#02050a55,transparent 28%,#02050a48);pointer-events:none}
.village-hub>header,.village-home-scene>header{position:absolute;z-index:5;top:max(14px,env(safe-area-inset-top));left:4%;text-shadow:0 3px 12px #000}.village-hub>header small,.village-home-scene>header small{color:#e8bf6d;letter-spacing:2px}.village-hub>header h2,.village-home-scene>header h2{margin:3px 0;font:900 clamp(28px,6vw,48px) Georgia,serif;color:#fff0c8}
.village-place{position:absolute;z-index:6;max-width:43%;padding:8px 11px;border:1px solid #c28a38;border-radius:10px;background:linear-gradient(135deg,#111b25e8,#281a0ce8);box-shadow:0 7px 22px #000a;color:#ffe8b4;text-align:left}.village-place b,.village-place small{display:block}.village-place b{font:900 clamp(11px,2.8vw,17px) Georgia,serif}.village-place small{margin-top:2px;color:#c9d3db;font-size:8px}.village-adventure{left:3%;bottom:5%}.village-home{left:3%;top:49%}.village-forge{right:3%;top:54%}.village-recruit{right:3%;top:27%}.village-angel{left:3%;top:18%}
.village-forge-scene.village-day .village-scene-bg{background-image:url("hinhanh/vuot-ai/thon/khu-ren-tho-ren-ban-ngay-3d.webp")}.village-forge-scene.village-night .village-scene-bg{background-image:url("hinhanh/vuot-ai/thon/khu-ren-tho-ren-ban-dem-3d.webp")}.village-home-scene.village-day .village-scene-bg{background-image:url("hinhanh/vuot-ai/thon/nha-nhan-vat-ban-ngay-3d.webp")}.village-home-scene.village-night .village-scene-bg{background-image:url("hinhanh/vuot-ai/thon/nha-nhan-vat-ban-dem-3d.webp")}
.forge-scene.village-home-context .forge-room,.forge-scene.village-forge-context .forge-room{inset:0;transform:none!important;background-position:center;background-size:cover;filter:brightness(.72)!important}
.forge-scene.village-home-context.village-day .forge-room{background-image:url("hinhanh/vuot-ai/thon/nha-nhan-vat-ban-ngay-3d.webp")}
.forge-scene.village-home-context.village-night .forge-room{background-image:url("hinhanh/vuot-ai/thon/nha-nhan-vat-ban-dem-3d.webp")}
.forge-scene.village-forge-context.village-day .forge-room{background-image:url("hinhanh/vuot-ai/thon/khu-ren-tho-ren-ban-ngay-3d.webp")}
.forge-scene.village-forge-context.village-night .forge-room{background-image:url("hinhanh/vuot-ai/thon/khu-ren-tho-ren-ban-dem-3d.webp")}
.forge-scene.village-home-context .forge-smith-trigger,.forge-scene.village-home-context .forge-enter-hint,.forge-scene.village-home-context .forge-character-trigger,.forge-scene.village-home-context .character-enter-hint,.forge-scene.village-home-context .warehouse-trigger,.forge-scene.village-home-context .warehouse-enter-hint,.forge-scene.village-home-context .forge-storage-hunter,.forge-scene.village-forge-context .forge-smith-trigger,.forge-scene.village-forge-context .forge-enter-hint,.forge-scene.village-forge-context .forge-character-trigger,.forge-scene.village-forge-context .character-enter-hint,.forge-scene.village-forge-context .warehouse-trigger,.forge-scene.village-forge-context .warehouse-enter-hint,.forge-scene.village-forge-context .forge-storage-hunter{display:none}
.village-dialog{position:absolute;z-index:5;left:5%;right:5%;bottom:max(28px,env(safe-area-inset-bottom));padding:13px;border:1px solid #9c7036;border-radius:14px;background:#070a0ee8;box-shadow:0 10px 35px #000}.village-dialog p{margin:0 0 10px;overflow:hidden;white-space:nowrap;animation:village-dialog-reveal 1s steps(35,end) both}.village-dialog button,.village-home-actions button,.village-blessing button{padding:9px 13px;margin-right:7px;border:1px solid #b8833b;border-radius:9px;background:linear-gradient(#66451e,#28180b);color:#ffe8b2;font-weight:900}
@keyframes village-dialog-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.village-home-actions{position:absolute;z-index:5;left:5%;right:5%;bottom:max(28px,env(safe-area-inset-bottom));display:flex;justify-content:flex-end;gap:7px}
.village-blessing{display:grid;place-items:center;padding:22px;background:url("hinhanh/vuot-ai/thon/ban-do-thon-3d.webp") 18% 8%/cover no-repeat}.village-blessing>div{position:relative;z-index:5;width:min(88%,420px);padding:22px;border:1px solid #e6ca7a;border-radius:18px;background:linear-gradient(#f5e6bce8,#303c55ed);box-shadow:0 0 55px #f7e8a777;color:#101725}.village-blessing small{color:#7b581d;letter-spacing:2px;font-weight:900}.village-blessing h2{margin:5px 0 14px;font:900 30px Georgia,serif;color:#6a4815}.village-blessing p{margin:8px 0}.village-blessing strong{color:#7e361c}
@media(max-width:760px){.expedition-place.village-return{left:3%;bottom:3%;min-width:130px}.village-place{max-width:48%;padding:7px 9px}.village-place small{font-size:7px}.village-dialog p{font-size:11px}.village-dialog button,.village-home-actions button{padding:8px 10px;font-size:10px}}
.boss-counter-panel p.weapon-suitable{color:#62e58b;text-shadow:0 0 10px #25ba6470;font-weight:900}
.sleeping-boss:after{display:none!important}
.sleeping-boss .preboss-challenge{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);min-width:max-content;padding:7px 16px;border:1px solid #bd8e43;border-radius:999px;background:#06090dd9;color:#ffe1a2;font:900 11px Georgia,serif;letter-spacing:2px;box-shadow:0 6px 22px #000}

/* =========================================================
   BOSS NƯỚC X-4: NỀN DỌC + NHÂN VẬT CẦM VŨ KHÍ 001
   Chỉ tác động trận Boss nước, không đổi quái thường/lửa/cỏ.
   ========================================================= */
.battle-screen.battle-3d.battle-water-final-boss,
.battle-mode .battle-screen.battle-3d.battle-water-final-boss{
  background-color:#071827;
  background-image:url("hinhanh/chien-dau/chien-truong-hai-uyen-doc-v1.webp");
  background-position:center center;
  background-size:cover;
}

/* Boss nước khổng lồ nằm ở góc phải phía trên. */
.battle-water-final-boss .boss-actor.abyss-water-boss{
  right:-4%;
  bottom:18%;
  width:min(54vw,700px);
  max-width:none;
  transform-origin:58% 76%;
}

/* Ảnh này đã gồm cả bàn tay và vu-khi-001 nên không ghép kiếm rời. */
.battle-water-final-boss .player-actor.water-boss-super-sword-player{
  left:2%;
  bottom:11%;
  width:min(31vw,360px);
  max-width:none;
  transform-origin:50% 88%;
}

.battle-water-final-boss .player-actor.water-boss-super-sword-player.attacking{
  animation:waterBossSwordLunge .76s cubic-bezier(.18,.72,.25,1) both;
}

@keyframes waterBossSwordLunge{
  0%{transform:translate(0,0) scale(1)}
  20%{transform:translate(4vw,-1vh) scale(.94)}
  58%{transform:translate(38vw,-22vh) scale(.74) rotate(-4deg)}
  76%{transform:translate(35vw,-20vh) scale(.78) rotate(-2deg)}
  100%{transform:translate(0,0) scale(1)}
}

/* Giao diện điện thoại dọc. */
@media (orientation:portrait) and (max-width:900px){
  .battle-mode .battle-screen.battle-3d.battle-water-final-boss{
    background-position:center center;
  }

  .battle-mode .battle-water-final-boss .boss-actor.abyss-water-boss{
    /* Tăng width để Boss lớn hơn; right âm để Boss lòi sang mép phải. */
    width:82vw;
    right:-12%;
    bottom:38%;
  }

  .battle-mode .battle-water-final-boss .player-actor.water-boss-super-sword-player{
    /* Nhân vật đứng ở góc trái dưới và nhìn chéo lên Boss. */
    width:46vw;
    left:-2%;
    bottom:14%;
  }

  @keyframes waterBossSwordLunge{
    0%{transform:translate(0,0) scale(1)}
    20%{transform:translate(5vw,-2vh) scale(.93)}
    58%{transform:translate(49vw,-27vh) scale(.68) rotate(-4deg)}
    76%{transform:translate(45vw,-24vh) scale(.72) rotate(-2deg)}
    100%{transform:translate(0,0) scale(1)}
  }
}

/* Ra khỏi thôn: bảng chọn 3 khu vực và chế độ đi dạo 11 chặng */
.village-route-menu{position:relative;width:100%;height:100%;min-height:100dvh;overflow:auto;padding:max(56px,env(safe-area-inset-top)) clamp(14px,4vw,54px) max(22px,env(safe-area-inset-bottom));color:#fff;background:radial-gradient(circle at 50% 0,#27415c 0,#101a28 42%,#05080d 100%)}
.village-route-menu:before{content:"";position:fixed;inset:0;background:linear-gradient(120deg,#d4a75a12,transparent 38%,#70b6d412);pointer-events:none}
.village-route-menu>header{position:relative;z-index:2;text-align:center;text-shadow:0 3px 14px #000}
.village-route-menu>header small{color:#e9bd67;font-weight:900;letter-spacing:3px}
.village-route-menu>header h2{margin:4px 0 16px;font:900 clamp(30px,6vw,54px) Georgia,serif;color:#fff0c4}
.village-route-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2.3vw,28px);width:min(1180px,100%);margin:auto}
.village-route-grid>button{position:relative;min-height:min(62vh,560px);overflow:hidden;border:1px solid #d7ad5e;border-radius:24px;background:linear-gradient(180deg,#1c2b3be8,#080b10f2);box-shadow:0 20px 50px #0009,inset 0 0 28px #e6b64c14;color:#fff;cursor:pointer;transition:.2s ease}
.village-route-grid>button:hover,.village-route-grid>button:active{transform:translateY(-5px);filter:brightness(1.12);box-shadow:0 24px 58px #000c,0 0 28px #e5b64b44}
.village-route-grid img{position:absolute;inset:0;width:100%;height:76%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 15px #000a);pointer-events:none}
.village-route-grid span{position:absolute;z-index:2;left:0;right:0;bottom:0;display:grid;gap:4px;padding:52px 15px 17px;text-align:center;background:linear-gradient(transparent,#06080bee 34%)}
.village-route-grid b{font:900 clamp(19px,2.2vw,30px) Georgia,serif;color:#ffe7a5}
.village-route-grid strong{font-size:clamp(12px,1.3vw,16px)}
.village-route-grid small{color:#b9c8d8;font-weight:800}
.village-route-back{position:relative;z-index:3;display:block;margin:18px auto 0;border:1px solid #d2a451;border-radius:999px;padding:11px 24px;background:#080b10d9;color:#ffe9ae;font-weight:900}
.missing-weapon-notice{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(430px,calc(100% - 28px));padding:28px;border:1px solid #d7aa55;border-radius:22px;background:linear-gradient(155deg,#172536,#080b11);box-shadow:0 28px 80px #000;color:#fff;text-align:center}
.missing-weapon-notice small{color:#eab85b;font-weight:900;letter-spacing:2px}.missing-weapon-notice h2{margin:9px 0 20px;font:900 30px Georgia,serif}
.missing-weapon-notice button{margin:5px;border:1px solid #d6aa59;border-radius:12px;padding:12px 20px;background:#9b5b1c;color:#fff4d0;font-weight:900}.missing-weapon-notice button+button{background:#182230}

.village-walk{position:relative;width:100%;height:100%;min-height:100dvh;overflow:hidden;background:#07101a;color:#fff;touch-action:manipulation}
.village-walk-world,.village-walk-scenes{position:absolute;inset:0}.village-walk-scene{position:absolute;inset:0;opacity:0;background-position:center;background-size:cover;background-repeat:no-repeat}.village-walk-scene.active{opacity:1}
.village-walk:before{content:"";position:absolute;z-index:30;inset:0;background:#000;opacity:0;pointer-events:none}.village-walk.changing-stage:before{animation:villageStageBlack .82s ease-in-out both}
.village-walk:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#02050a4d,transparent 24% 70%,#02050a5c);pointer-events:none}
.village-walk>header{position:absolute;z-index:12;left:clamp(12px,3vw,42px);top:max(12px,env(safe-area-inset-top));display:grid;padding:9px 14px;border:1px solid #d8ab55;border-radius:14px;background:#08101bcb;box-shadow:0 8px 26px #0009;text-shadow:0 2px 8px #000}
.village-walk>header small{color:#f1c973;font-weight:900;letter-spacing:1.5px}.village-walk>header b{margin-top:3px;font-size:16px}
.village-walk-return{position:absolute;z-index:14;right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));border:1px solid #e2b65f;border-radius:999px;padding:10px 17px;background:#09111bd9;color:#ffe9ac;font-weight:900;box-shadow:0 6px 20px #0009}
.village-walk-hero{position:absolute;z-index:8;left:clamp(-20px,1vw,20px);bottom:2%;width:clamp(190px,29vw,380px);height:min(76vh,680px);pointer-events:none;filter:drop-shadow(0 14px 12px #0009)}
.village-walk-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:left bottom}.village-walk-hero .attack{display:none}.village-walk-hero.attacking .idle{display:none}.village-walk-hero.attacking .attack{display:block;animation:villageThrowPose 1.2s cubic-bezier(.2,.7,.28,1) both}
.village-walk-monster{position:absolute;z-index:5;left:72%;bottom:9%;width:21%;height:47%;padding:0;border:0;background:transparent;filter:drop-shadow(0 12px 10px #0008);cursor:default;opacity:0;pointer-events:none;transition:opacity .3s,filter .2s,transform .18s}
.village-walk-monster img{width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none}.village-walk-monster.current{opacity:1;pointer-events:auto;cursor:pointer;animation:villageMonsterIdle 1.8s ease-in-out infinite}.village-walk-monster.current:active{transform:scale(.95)}.village-walk-monster.defeated{opacity:0;pointer-events:none;transform:scale(.75)}
.village-walk-monster-hp{position:absolute;left:12%;right:12%;top:3%;height:9px;border:1px solid #f3e9c6;border-radius:999px;background:#27130f;overflow:hidden;box-shadow:0 2px 7px #000}.village-walk-monster-hp i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#26a83f,#82ee69);transition:width .22s ease}
.village-walk-message{position:absolute;z-index:12;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:54vw;padding:9px 16px;border:1px solid #d9ad5c;border-radius:999px;background:#07101bdc;color:#fff0bf;font-weight:900;text-align:center;box-shadow:0 6px 20px #0009}
.village-walk-next{position:absolute;z-index:15;right:4%;top:48%;transform:translateY(-50%);width:clamp(60px,10vw,105px);height:clamp(60px,10vw,105px);border:2px solid #ffe098;border-radius:50%;background:radial-gradient(circle,#d78c2f,#7b3b0e);color:#fff7d7;font-size:clamp(34px,6vw,64px);line-height:1;box-shadow:0 0 0 7px #ffd77a22,0 8px 25px #000b;animation:villageNextFloat 1.4s ease-in-out infinite}
.village-walk-next[hidden]{display:none!important}
.village-walk-rocks{position:absolute;z-index:20;left:62%;top:46%;width:20px;height:20px;opacity:0}.village-walk-rocks i{position:absolute;width:clamp(10px,1.7vw,20px);aspect-ratio:1;border-radius:48% 52% 43% 57%;background:linear-gradient(145deg,#b8ad98,#4c463e);box-shadow:inset -3px -4px 5px #201e1c99,0 2px 6px #0008}.village-walk.attacking .village-walk-rocks{opacity:1}.village-walk.attacking .village-walk-rocks i{animation:villageRockThrow .62s ease-in both}.village-walk.attacking .village-walk-rocks i:nth-child(2){animation-delay:.07s;transform:translateY(12px) scale(.8)}.village-walk.attacking .village-walk-rocks i:nth-child(3){animation-delay:.13s;transform:translateY(-9px) scale(.65)}
@keyframes villageThrowPose{0%{transform:translateX(-4%) rotate(-3deg)}18%{transform:translateX(-2%) rotate(-2deg)}48%,72%{transform:translateX(7%) rotate(2deg)}100%{transform:none}}
@keyframes villageRockThrow{0%{opacity:0;transform:translate(0,0) scale(.5)}16%{opacity:1}100%{opacity:0;transform:translate(52vw,-8vh) rotate(420deg) scale(1)}}
@keyframes villageMonsterIdle{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes villageNextFloat{0%,100%{transform:translateY(-50%)}50%{transform:translateY(calc(-50% - 10px))}}
@keyframes villageStageBlack{0%{opacity:0}35%,48%{opacity:1}100%{opacity:0}}
@media (orientation:portrait) and (max-width:900px){
  .village-route-menu{padding-top:max(58px,env(safe-area-inset-top))}.village-route-grid{grid-template-columns:1fr;max-width:620px}.village-route-grid>button{min-height:230px}.village-route-grid img{right:42%;width:58%;height:100%}.village-route-grid span{left:45%;top:0;bottom:0;justify-content:center;padding:18px;background:linear-gradient(90deg,transparent,#070a0eef 22%)}
  .village-walk-hero{left:-12%;bottom:3%;width:55vw;height:59vh}.village-walk-monster{left:64%;bottom:13%;width:34%;height:34%}.village-walk>header{max-width:54%;padding:7px 10px}.village-walk>header small{font-size:9px}.village-walk-return{padding:9px 13px}.village-walk-message{max-width:78vw;width:max-content;font-size:12px}.village-walk-next{right:5%;top:43%}
  @keyframes villageRockThrow{0%{opacity:0;transform:translate(0,0) scale(.5)}16%{opacity:1}100%{opacity:0;transform:translate(63vw,-4vh) rotate(420deg) scale(1)}}
}

/* Bản cập nhật yêu cầu 14–19 */
.inventory-scene-modal>.modal-close{display:none!important}
.character-bag-item{
  display:grid;
  grid-template-rows:minmax(44px,1fr) auto auto auto;
  place-items:center;
  align-content:center;
  text-align:center
}
.character-bag-item>img{
  width:100%!important;
  height:54px!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center!important
}
.character-bag-item>.weapon-card-visual{
  align-self:center;
  justify-self:center;
  transform:scale(.74);
  transform-origin:50% 50%
}
.character-bag-item>b,.character-bag-item>small,.character-bag-item>.gear-lock-badge{
  justify-self:stretch;
  width:100%;
  text-align:center
}

.boss-preparation-modal>.modal-close{display:none!important}
.preboss-exit{z-index:50}
.boss-preparation .sleeping-boss{
  z-index:0!important;
  pointer-events:none!important;
  transform:translateY(-8%)
}
.boss-preparation>header,.boss-counter-panel{position:relative;z-index:5}
.preboss-loadout{position:relative;z-index:40}
.preboss-loadout>button{
  position:relative;
  z-index:41;
  width:100%;
  pointer-events:auto;
  touch-action:manipulation
}
.preboss-loadout>button>*{pointer-events:none}
.preboss-challenge-card{
  top:68%;
  z-index:20;
  box-shadow:0 8px 25px #000b,0 0 23px #e4a83077;
  animation:prebossChallengeFloat 1.8s ease-in-out infinite
}
@keyframes prebossChallengeFloat{
  50%{transform:translate(-50%,-9px);box-shadow:0 12px 30px #000c,0 0 32px #f1bc4d99}
}
@media(max-width:760px){
  .boss-preparation .sleeping-boss{transform:translateY(-12%)}
  .preboss-challenge-card{top:31%}
}

.explore-cave-actions{z-index:8}
.explore-cave-actions .expedition-place.explore-cave{z-index:9;pointer-events:auto}
.explore-cave-actions .expedition-rank-button{z-index:10;pointer-events:auto}
.dragon-gate-exit{
  position:absolute;
  z-index:20;
  top:max(12px,env(safe-area-inset-top));
  right:max(12px,env(safe-area-inset-right));
  padding:10px 16px;
  border:1px solid #e0ad50;
  border-radius:10px;
  background:#281309e8;
  color:#ffe8ad;
  font-weight:900;
  box-shadow:0 7px 22px #000c;
  pointer-events:auto;
  touch-action:manipulation
}
.dragon-gate-transition.opening .dragon-gate-exit{pointer-events:none;opacity:0}
.battle-floor-menu button.active{
  border-color:#57c7ff;
  background:#10293a;
  box-shadow:inset 0 0 12px #2da8e744
}

.boss-actor.monster-summoning .boss-body-sprite{
  opacity:0!important;
  visibility:hidden!important
}
.monster-summon-vortex{
  position:absolute;
  z-index:10;
  left:50%;
  top:50%;
  width:145%;
  height:145%;
  object-fit:contain;
  pointer-events:none;
  transform:translate(-50%,-50%);
  animation:monsterSummonSpin .3s linear both
}
.monster-summon-vortex.summon-water{
  filter:drop-shadow(0 0 13px #168cff) drop-shadow(0 0 24px #168cff)
}
.monster-summon-vortex.summon-fire{
  filter:hue-rotate(140deg) saturate(2.1) drop-shadow(0 0 13px #ff2b20) drop-shadow(0 0 24px #ff2b20)
}
.monster-summon-vortex.summon-grass{
  filter:hue-rotate(-100deg) saturate(1.9) drop-shadow(0 0 13px #38df63) drop-shadow(0 0 24px #38df63)
}
@keyframes monsterSummonSpin{
  0%{opacity:0;transform:translate(-50%,-50%) rotate(0deg) scale(.45)}
  12%{opacity:1}
  88%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) rotate(720deg) scale(1.04)}
}

/* Bản cập nhật yêu cầu 6–13 */
body.game-mode{overflow:hidden!important;background:#000;overscroll-behavior:none}
body.game-mode .modal-layer{inset:0;padding:0;background:#000}
body.game-mode .modal{width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0}
body.game-mode #modalContent{width:100%;height:100%;overflow:hidden}
body.game-mode .expedition-hub,body.game-mode .village-hub,body.game-mode .village-scene,
body.game-mode .village-recruit-scene,body.game-mode .rest-station,body.game-mode .trade-room,
body.game-mode .forge-scene,body.game-mode .boss-preparation{width:100vw;height:100dvh;min-height:0;border-radius:0}

.gear-stat-lines{display:grid;gap:5px}
.gear-stat-lines span{display:block;padding-bottom:4px;border-bottom:1px solid #ffffff12;color:#eef7ff}
.gear-set-detail{display:grid;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid #3c7196}
.gear-set-detail>b{color:#43aaff}
.gear-set-detail span{padding:5px 7px;border-radius:6px}
.gear-set-detail .inactive{color:#69747c;background:#05080a99}
.gear-set-detail .active{color:#4bea79;background:#072a1799;text-shadow:0 0 8px #2dcc62}
.gear-drop-floor{display:block;margin-top:8px;color:#aebdca}
.forge-stat-lines{white-space:pre-line}

.grass-vortex-fx{
  position:absolute;
  z-index:28;
  left:15%;
  bottom:13%;
  width:clamp(150px,30vw,360px);
  height:auto;
  transform-origin:50% 50%;
  filter:drop-shadow(0 0 14px #a8ff75) drop-shadow(0 0 28px #28b94f);
  pointer-events:none;
  animation:grassVortexFourTurns 1s linear both;
}
@keyframes grassVortexFourTurns{
  0%{opacity:0;transform:scale(.45) rotate(0deg)}
  8%{opacity:1}
  92%{opacity:1}
  100%{opacity:0;transform:scale(1.05) rotate(1440deg)}
}
@media (orientation:portrait) and (max-width:900px){
  .battle-mode .grass-vortex-fx{left:-1%;bottom:18%;width:58vw}
}
@media (orientation:landscape) and (max-height:600px){
  body.game-mode:after{
    content:"Vui lòng xoay điện thoại theo chiều dọc";
    position:fixed;z-index:2000000;inset:0;display:grid;place-items:center;
    padding:30px;background:#000;color:#fff;font-weight:900;text-align:center
  }
}

/* Luôn đặt các hiệu ứng mới sau toàn bộ luật chiến đấu cũ. */
.battle-mode .leaf-boss-stream-fx{animation-duration:1.8s;filter:drop-shadow(0 0 8px #8dff6b88)}
.battle-mode .leaf-player-stream-fx{animation-duration:1.8s;opacity:.88;filter:drop-shadow(0 0 9px #79ffd688)}
.battle-mode .ice-rain-fx{
  inset:auto;
  top:-68%;
  right:-105%;
  width:220%;
  height:auto;
  max-width:none;
  object-fit:contain;
  filter:drop-shadow(0 0 10px #8cecffaa);
  will-change:transform,opacity;
  animation:bossIceRainDiagonal 3s linear both;
}
@media(orientation:portrait) and (max-width:900px){
  .battle-mode .ice-rain-fx{top:-42%;right:-165%;width:310%;height:auto}
}

/* =========================================================
   BOSS CỎ X-4 + NHÂN VẬT CẦM VŨ KHÍ SIÊU HIẾM
   Chỉ áp dụng bên trong màn Vượt ải/Chiến đấu.
   ========================================================= */
.battle-screen.battle-3d.battle-grass-final-boss,
.battle-mode .battle-screen.battle-3d.battle-grass-final-boss{
  background-color:#142316;
  background-image:url("hinhanh/chien-dau/nen-chien-dau-boss-co-doc-v1.webp");
  background-position:center center;
  background-size:cover;
}
.battle-grass-final-boss .boss-actor.ancient-tree-boss{
  right:-3%;
  bottom:17%;
  width:min(55vw,710px);
  max-width:none;
  transform-origin:56% 82%;
}
.battle-screen .player-actor.super-weapon-player{
  left:2%;
  bottom:11%;
  width:min(31vw,360px);
  max-width:none;
  transform-origin:50% 88%;
}
.battle-screen .player-actor.super-weapon-player.attacking{
  animation:superWeaponLunge .76s cubic-bezier(.18,.72,.25,1) both;
}
@keyframes superWeaponLunge{
  0%{transform:translate(0,0) scale(1)}
  20%{transform:translate(4vw,-1vh) scale(.94)}
  58%{transform:translate(38vw,-22vh) scale(.74) rotate(-4deg)}
  76%{transform:translate(35vw,-20vh) scale(.78) rotate(-2deg)}
  100%{transform:translate(0,0) scale(1)}
}

/* Các lớp ảnh kỹ năng Boss được tách riêng để không làm nhấp nháy giao diện. */
.boss-attack-fx{
  position:absolute;
  z-index:12;
  pointer-events:none;
  object-fit:contain;
  filter:drop-shadow(0 0 14px #fff8);
}
.water-orb-fx{
  right:24%;
  top:18%;
  width:min(42vw,520px);
  animation:bossWaterOrbFly 1.5s cubic-bezier(.16,.7,.25,1) both;
}
.leaf-wave-fx{
  right:20%;
  top:30%;
  width:min(58vw,720px);
  animation:bossLeafWaveFly .72s cubic-bezier(.16,.72,.22,1) both;
}
.leaf-boss-stream-fx,.leaf-player-stream-fx{
  left:0;
  width:205%;
  height:auto;
  max-width:none;
  object-fit:contain;
  filter:drop-shadow(0 0 5px #b9ff8b66);
  will-change:transform,opacity;
}
.leaf-boss-stream-fx{
  top:20%;
  z-index:11;
  animation:bossLeavesRightToLeft 2.3s linear both;
}
.leaf-player-stream-fx{
  top:50%;
  z-index:14;
  width:220%;
  animation:playerLeavesLeftToRight 2.3s linear both;
}
.ice-rain-fx,.giant-vines-fx{
  inset:0;
  width:100%;
  height:100%;
}
.ice-rain-fx{animation:bossIceRain 3s linear both}
.giant-vines-fx{animation:bossVineWhips 1.75s cubic-bezier(.2,.72,.28,1) both}
.damage-pop.boss-multi-hit{
  z-index:20;
  color:#dff8ff;
  font-size:clamp(13px,2.5vw,22px);
  text-shadow:0 0 8px #31b9ff,0 2px 3px #001526;
  animation:bossMultiDamage .62s ease-out both;
}
@keyframes bossWaterOrbFly{
  0%{opacity:0;transform:translate(22vw,-8vh) scale(.2) rotate(0)}
  18%{opacity:1}
  100%{opacity:0;transform:translate(-54vw,46vh) scale(.85) rotate(-210deg)}
}
@keyframes bossLeafWaveFly{
  0%{opacity:0;transform:translate(22vw,-8vh) scale(.55)}
  14%{opacity:1}
  100%{opacity:0;transform:translate(-62vw,38vh) scale(1)}
}
@keyframes bossLeavesRightToLeft{
  0%{opacity:0;transform:translateX(52%) translateY(0)}
  8%{opacity:.88}
  48%{transform:translateX(-34%) translateY(1.2vh)}
  92%{opacity:.88}
  100%{opacity:0;transform:translateX(-108%) translateY(-.8vh)}
}
@keyframes playerLeavesLeftToRight{
  0%{opacity:0;transform:translateX(-108%) translateY(0)}
  8%{opacity:.82}
  48%{transform:translateX(-30%) translateY(-1.4vh)}
  92%{opacity:.82}
  100%{opacity:0;transform:translateX(52%) translateY(.8vh)}
}
@keyframes bossIceRain{
  0%{opacity:0;transform:translate(10%,-18%)}
  8%,92%{opacity:1}
  100%{opacity:0;transform:translate(-8%,12%)}
}
@keyframes bossVineWhips{
  0%{opacity:0;transform:scale(1.22)}
  22%,75%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(.94)}
}
@keyframes bossMultiDamage{
  0%{opacity:0;transform:translateY(8px) scale(.75)}
  20%{opacity:1}
  100%{opacity:0;transform:translateY(-28px) scale(1.08)}
}

@media (orientation:portrait) and (max-width:900px){
  .battle-mode .battle-grass-final-boss .boss-actor.ancient-tree-boss{
    width:84vw;
    right:-13%;
    bottom:37%;
  }
  .battle-mode .battle-screen .player-actor.super-weapon-player{
    width:46vw;
    left:-2%;
    bottom:14%;
  }
  .battle-mode .water-orb-fx{top:20%;right:12%;width:58vw}
  .battle-mode .leaf-wave-fx{top:31%;right:5%;width:76vw}
  .battle-mode .leaf-boss-stream-fx{top:22%;width:220%}
  .battle-mode .leaf-player-stream-fx{top:54%;width:235%}
  @keyframes superWeaponLunge{
    0%{transform:translate(0,0) scale(1)}
    20%{transform:translate(5vw,-2vh) scale(.93)}
    58%{transform:translate(49vw,-27vh) scale(.68) rotate(-4deg)}
    76%{transform:translate(45vw,-24vh) scale(.72) rotate(-2deg)}
    100%{transform:translate(0,0) scale(1)}
  }
}

/* Khóa thứ tự ưu tiên cho Camera Cinematic sau toàn bộ CSS chiến đấu cũ. */
.battle-mode .battle-screen.battle-grass-final-boss.battle-grass-x4-cinematic{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-1-default.webp")!important;background-position:center!important;background-size:cover!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="2"]{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-2-front.webp")!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"]{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-3-behind.webp")!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="4"],
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="impact"]{background-image:url("hinhanh/chien-dau/cinematic-co-x4/map/camera-4-wide.webp")!important}
.battle-mode .battle-grass-x4-cinematic .player-actor{left:-4%!important;right:auto!important;bottom:10%!important;width:53vw!important;max-width:none!important;animation:none!important}
.battle-mode .battle-grass-x4-cinematic .boss-actor.ancient-tree-boss{right:-17%!important;left:auto!important;bottom:37%!important;width:88vw!important;max-width:none!important;animation:none!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="2"] .player-actor{left:50%!important;bottom:-7%!important;width:76vw!important;transform:translateX(-50%) scale(1.06)!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="rush-front"] .player-actor{animation:grassPlayerRushFront .77s cubic-bezier(.2,.72,.24,1) both!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="defend"] .player-actor{bottom:-3%!important;width:70vw!important;animation:grassDefendHold .5s ease-in-out both!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="2"] .boss-actor{right:-40%!important;opacity:0!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"] .player-actor{left:-10%!important;bottom:-8%!important;width:69vw!important;transform:none!important;animation:none!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="rush-behind"] .player-actor{animation:grassPlayerRushBehind 1s cubic-bezier(.18,.7,.22,1) both!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"] .boss-actor{right:-10%!important;bottom:39%!important;width:80vw!important;opacity:1!important;transform:scale(var(--cinematic-world-zoom,1));transform-origin:54% 100%!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="melee-contact"] .player-actor{left:-4%!important;bottom:31%!important;width:80vw!important;transform:none!important;animation:grassSwordContact .08s ease-out both!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="retreat"] .player-actor{animation:grassPlayerRetreat .42s cubic-bezier(.4,0,.35,1) both!important}
.battle-mode .battle-grass-x4-cinematic.grass-cinematic-contact[data-cinematic-camera="3"] .boss-actor,
.battle-mode .battle-grass-x4-cinematic.grass-cinematic-hit[data-cinematic-camera="3"] .boss-actor{animation:grassBossCinematicHit .28s ease-out both!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="4"] .player-actor{left:1%!important;bottom:13%!important;width:31vw!important;transform:none!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="4"] .boss-actor{right:-1%!important;bottom:18%!important;width:51vw!important;transform:none!important;opacity:1!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="impact"] .player-actor{left:-45%!important;opacity:0!important}
.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="impact"] .boss-actor{right:50%!important;bottom:-5%!important;width:118vw!important;transform:translateX(50%) scale(1.03)!important;opacity:1!important}

/* Yêu cầu 1–5: chỉ bổ sung giao diện liên quan trên nền 5.zip */
.game-dialog-layer{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;padding:18px;background:#02070d8f;backdrop-filter:blur(5px)}
.game-dialog-panel{width:min(440px,calc(100vw - 28px));overflow:hidden;padding:20px;border:1px solid #d9ad5c;border-radius:20px;background:linear-gradient(145deg,#102232eb,#07101be8);box-shadow:0 26px 80px #000c,inset 0 0 24px #7295ac1a;color:#f8f4e8}
.game-dialog-panel.compact{width:min(340px,calc(100vw - 28px));padding:16px}
.game-dialog-panel header{padding-bottom:11px;border-bottom:1px solid #d9ad5c55}.game-dialog-panel header small{color:#e8bd69;font-weight:900;letter-spacing:1.6px}.game-dialog-panel h2{margin:4px 0 0;color:#ffe4a5;font:900 24px Georgia,serif}.game-dialog-panel p{margin:16px 0;white-space:pre-line;line-height:1.55}
.game-dialog-panel label{display:grid;gap:8px;color:#ffe2a2;font-weight:900}.game-dialog-panel input{width:100%;box-sizing:border-box;padding:13px 14px;border:1px solid #79a9c7;border-radius:11px;outline:0;background:#020a12b8;color:#fff;font-size:18px;font-weight:900}.game-dialog-panel input:focus{border-color:#ffe08d;box-shadow:0 0 0 3px #ffe08d24}
.game-dialog-panel footer{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.game-dialog-panel button{min-width:108px;padding:11px 16px;border:1px solid #e0b25c;border-radius:11px;background:linear-gradient(#b46d21,#77400f);color:#fff5d5;font-weight:900}.game-dialog-panel [data-game-dialog-cancel]{border-color:#7190a4;background:#142534;color:#e8f4fb}

.village-walk-monster img.defeated-art{display:none}.village-walk-monster.hurt-hit:not(.defeated) img.normal{display:none}.village-walk-monster.hurt-hit:not(.defeated) img.hurt{display:block;animation:lupinHitShake .34s ease-in-out both}
.village-walk-monster.defeated{opacity:1;pointer-events:none;transform:none;animation:none!important;filter:drop-shadow(0 10px 9px #0009)}.village-walk-monster.defeated img.normal,.village-walk-monster.defeated img.hurt{display:none!important}.village-walk-monster.defeated img.defeated-art{display:block!important;transform:translateY(8%);object-position:center bottom}
.village-walk .village-walk-monster-name{top:9%;left:17%;right:17%;font-size:clamp(12px,1.4vw,17px)}.village-walk .village-walk-monster .village-walk-monster-hp{top:18%;left:18%;right:18%;height:10px}.village-walk-monster.defeated .village-walk-monster-name{top:25%}.village-walk-monster.defeated .village-walk-monster-hp{display:none}
.village-walk-rock-projectile{position:absolute;z-index:24;width:clamp(28px,4.2vw,50px);aspect-ratio:1;border:2px solid #e8dcc0;border-radius:48% 52% 43% 57%;background:radial-gradient(circle at 31% 27%,#f4ead4 0 11%,#a79a84 28%,#595249 68%,#292622);box-shadow:inset -5px -6px 7px #17151399,0 0 10px #fff4c188,0 7px 13px #000c;opacity:0;pointer-events:none;will-change:transform,opacity}
.village-walk-rock-projectile:after{content:"";position:absolute;right:75%;top:38%;width:80px;height:24%;border-radius:999px;background:linear-gradient(90deg,transparent,#f3dfb8aa);filter:blur(3px)}
.village-walk-rock-projectile.flying{animation:villageRockFlight .52s cubic-bezier(.2,.68,.32,1) both}
@keyframes villageRockFlight{0%{transform:translate(0,0) rotate(0) scale(.72);opacity:0}12%{opacity:1}58%{transform:translate(var(--rock-mid-x),var(--rock-mid-y)) rotate(260deg) scale(1.12);opacity:1}92%{opacity:1}100%{transform:translate(var(--rock-dx),var(--rock-dy)) rotate(520deg) scale(.92);opacity:0}}

.storage-wallet{grid-template-columns:repeat(3,minmax(0,1fr))}.storage-wallet span b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f1d79d;font-size:10px}
.fusion-panel footer{align-items:center;flex-wrap:wrap}.fusion-panel .fusion-summary{margin-right:auto;padding:8px 11px;border:1px solid #6b91a9;border-radius:10px;background:#07121c;color:#d8eaf5;font-weight:800}.fusion-panel [data-fusion-confirm]:disabled{opacity:.45;filter:grayscale(.6)}

.battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="rush-front"] .player-actor,.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="2"][data-cinematic-pose="rush-front"] .player-actor{animation:grassPlayerRushFront .3s linear both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="rush-behind"] .player-actor,.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="rush-behind"] .player-actor{animation:grassPlayerRushBehind .5s linear both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="melee-contact"] .player-actor,.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="melee-contact"] .player-actor{animation:grassSwordContact .2s ease-out both!important}
.battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="retreat"] .player-actor,.battle-mode .battle-grass-x4-cinematic[data-cinematic-camera="3"][data-cinematic-pose="retreat"] .player-actor{animation:grassPlayerRetreat .36s cubic-bezier(.4,0,.35,1) both!important}

@media(max-width:560px){.game-dialog-panel{padding:16px}.game-dialog-panel footer{display:grid;grid-template-columns:1fr 1fr}.game-dialog-panel button{min-width:0}.storage-wallet span b{font-size:8px}.village-walk .village-walk-monster-name{top:7%}.village-walk .village-walk-monster .village-walk-monster-hp{top:18%}}
/* BOI GAME độc lập: giữ toàn bộ DOM gốc cho logic tài khoản/game,
   nhưng chỉ hiển thị màn mở game và các cảnh game toàn màn hình. */
body[data-app-mode="game"]{
  min-height:100dvh;
  overflow:hidden;
  background:#02090a;
}
body[data-app-mode="game"]>.app-shell{
  display:none!important;
}
.standalone-game-launcher{
  position:fixed;
  z-index:40;
  inset:0;
  display:grid;
  place-items:center;
  min-height:100dvh;
  padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  overflow:hidden;
  background:#02090a;
}
.standalone-game-backdrop{
  position:absolute;
  inset:-5%;
  background:linear-gradient(180deg,#00101366,#00100fd9),url("icon-boi-game-1024.webp") center/cover no-repeat;
  filter:blur(16px) saturate(1.15);
  transform:scale(1.08);
}
.standalone-game-backdrop:after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 38%,transparent 0 22%,#02090aea 78%);
}
.standalone-game-card{
  position:relative;
  z-index:1;
  display:grid;
  justify-items:center;
  width:min(92vw,440px);
  padding:22px 20px 20px;
  border:1px solid #83f1dc7a;
  border-radius:24px;
  color:#effffc;
  text-align:center;
  background:linear-gradient(155deg,#092b2ae8,#031514f2);
  box-shadow:0 24px 70px #000c,inset 0 0 30px #20e7cb18,0 0 38px #12d9bd21;
  backdrop-filter:blur(14px);
}
.standalone-game-icon{
  display:block;
  width:min(56vw,230px);
  aspect-ratio:1;
  border:2px solid #d9bb60;
  border-radius:25%;
  object-fit:cover;
  box-shadow:0 14px 34px #000b,0 0 22px #20e7c65c;
}
.standalone-game-copy{margin-top:17px}
.standalone-game-copy small{color:#68e8d3;font-weight:900;letter-spacing:4px}
.standalone-game-copy h1{margin:7px 0 8px;color:#fff1a6;font:900 clamp(24px,7vw,36px)/1.05 Georgia,serif;text-shadow:0 2px 10px #000,0 0 18px #45ddc45c}
.standalone-game-copy p{margin:0;color:#c4dbd8;font-size:13px}
.standalone-game-actions{display:grid;width:100%;gap:10px;margin-top:20px}
.standalone-game-actions button{
  min-height:50px;
  border:1px solid #ffe49b;
  border-radius:14px;
  color:#211500;
  font-size:15px;
  font-weight:900;
  background:linear-gradient(180deg,#fff1a9,#d8a838);
  box-shadow:inset 0 1px #fff9,0 8px 20px #0007;
}
.standalone-game-actions button+button{
  border-color:#57d8c8;
  color:#ddfffa;
  background:linear-gradient(180deg,#174c48,#0b2d2a);
}
body.game-mode .standalone-game-launcher{display:none!important}
@media(max-height:660px){
  .standalone-game-card{grid-template-columns:126px 1fr;padding:16px;text-align:left}
  .standalone-game-icon{width:118px;border-radius:22%}
  .standalone-game-copy{margin:0 0 0 16px}
  .standalone-game-copy h1{font-size:23px}
  .standalone-game-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;margin-top:14px}
}

/* Exilium: màn mở Game dọc 9:16, đồng bộ thế giới fantasy trong Game. */
.standalone-game-launcher{
  --portrait-width:min(100vw,480px);
  display:block;
  padding:0;
  background:#010503;
}
.standalone-game-launcher:before{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;top:0;
  width:var(--portrait-width);height:100%;
  transform:translateX(-50%);
  box-shadow:0 0 80px #000;
  pointer-events:none;
}
.standalone-game-backdrop{
  left:50%;right:auto;top:0;bottom:0;inset-block:0;
  width:var(--portrait-width);
  background-image:linear-gradient(180deg,#02080566 0,#0208051f 29%,#020805aa 63%,#010302f5 100%),url("hinhanh/chien-dau/nen-chien-dau-boss-co-doc-v1.webp");
  background-position:center;
  background-size:cover;
  filter:saturate(1.08) contrast(1.04);
  transform:translateX(-50%);
}
.standalone-game-backdrop:after{
  background:radial-gradient(circle at 50% 31%,transparent 0 18%,#00120b40 52%,#010302dd 100%);
}
.standalone-game-emblem{
  position:absolute;z-index:3;left:50%;top:max(5.5%,env(safe-area-inset-top));
  width:min(88vw,420px);transform:translateX(-50%);text-align:center;
  filter:drop-shadow(0 7px 9px #000);
}
.standalone-game-emblem h1{
  position:relative;z-index:2;margin:0;
  color:#e9c465;font:900 clamp(40px,12vw,66px)/.9 Georgia,serif;
  letter-spacing:clamp(2px,1.5vw,8px);
  text-shadow:0 2px 0 #fff0a0,0 5px 0 #6f360d,0 9px 13px #000,0 0 25px #e6a73573;
}
.standalone-game-emblem small{display:block;margin-top:10px;color:#d7c79c;font-size:9px;font-weight:900;letter-spacing:5px;text-shadow:0 2px 6px #000}
.exilium-sword{position:absolute;z-index:1;left:50%;top:-30px;width:8px;height:108px;transform:translateX(-50%) rotate(18deg);background:linear-gradient(90deg,#5a2a08,#fff0a6 35% 55%,#75400c);clip-path:polygon(45% 0,55% 0,70% 80%,100% 86%,62% 90%,56% 100%,44% 100%,38% 90%,0 86%,30% 80%);box-shadow:0 0 15px #ffd565}
.standalone-game-card{
  position:absolute;z-index:3;left:50%;top:39%;
  display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;justify-items:stretch;
  width:min(88vw,390px);padding:12px 13px 13px;
  transform:translateX(-50%);border:1px solid #d8aa596b;border-radius:18px;
  text-align:left;background:linear-gradient(145deg,#08120ed9,#030806ed);
  box-shadow:0 18px 48px #000d,inset 0 0 28px #d7aa3414;backdrop-filter:blur(9px);
}
.standalone-game-icon{width:76px;border:1px solid #d7ad5b;border-radius:20%;box-shadow:0 7px 18px #000b,0 0 16px #42efb53b}
.standalone-game-copy{min-width:0;margin:0 0 0 12px}.standalone-game-copy p{margin:0;color:#d7e6db;font-size:11px;line-height:1.45}.standalone-game-copy strong{display:block;margin-top:6px;overflow:hidden;color:#ffe49d;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.standalone-game-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:7px;margin-top:11px}
.standalone-game-actions button{min-height:43px;border-radius:10px;font-size:13px}
.standalone-game-actions #gameStandaloneLogout{min-height:33px;border-color:#74827d;color:#c7d3ce;background:#111a17;font-size:10px}
.standalone-publisher{position:absolute;z-index:3;left:max(14px,calc((100vw - var(--portrait-width))/2 + 14px));bottom:max(13px,env(safe-area-inset-bottom));display:grid;gap:4px;color:#cfc7b4;text-align:left;text-shadow:0 2px 7px #000}
.standalone-publisher>small{font-size:8px;letter-spacing:1px}.standalone-publisher>span{display:flex;align-items:center;gap:7px}.standalone-publisher img{width:34px;height:34px;border-radius:8px;object-fit:cover;box-shadow:0 4px 10px #000}.standalone-publisher b{color:#f3d78e;font:900 12px Georgia,serif}
.launcher-checking .standalone-game-card{opacity:.72}.launcher-checking .standalone-game-copy p{color:#ffe5a2}
.game-update-dialog,.game-update-progress{position:absolute;z-index:20;inset:0;display:grid;place-items:center;padding:22px;background:#010403b8;backdrop-filter:blur(7px)}
.game-update-panel,.game-update-progress-panel{width:min(86vw,370px);padding:22px;border:1px solid #d8ad5f;border-radius:18px;background:linear-gradient(145deg,#101c17f5,#030705fc);box-shadow:0 24px 70px #000;color:#eaf3ec;text-align:center}
.game-update-panel>small,.game-update-progress-panel>small{color:#e5bd67;font-size:9px;font-weight:900;letter-spacing:3px}.game-update-panel h2,.game-update-progress-panel h2{margin:6px 0 14px;color:#ffe5a1;font:900 25px Georgia,serif}.game-update-panel p{font-size:13px}.game-update-panel button{width:100%;margin-top:10px;padding:12px;border:1px solid #ffe09a;border-radius:10px;background:linear-gradient(#e6b653,#895515);color:#211400;font-weight:900}
.game-update-track{height:13px;overflow:hidden;border:1px solid #9c814f;border-radius:999px;background:#020403;box-shadow:inset 0 2px 7px #000}.game-update-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#38b573,#d8dc62,#efb648);box-shadow:0 0 12px #62e69b;transition:width .2s}.game-update-progress-panel>strong{display:block;margin-top:11px;color:#ffe398;font-size:21px}.game-update-progress-panel p{margin:4px 0 0;color:#b8c9be;font-size:11px}
@media(max-height:660px){
  .standalone-game-emblem{top:max(3%,env(safe-area-inset-top))}.standalone-game-emblem h1{font-size:38px}.standalone-game-emblem small{margin-top:6px}
  .standalone-game-card{top:33%;grid-template-columns:70px minmax(0,1fr);padding:10px;text-align:left}.standalone-game-icon{width:62px}.standalone-game-copy{margin:0 0 0 9px}.standalone-game-actions{grid-template-columns:1fr;margin-top:8px}.standalone-game-actions button{min-height:38px}.standalone-publisher{bottom:max(8px,env(safe-area-inset-bottom))}
}
@media(orientation:landscape){
  .standalone-game-launcher:after{content:"Xoay điện thoại về màn hình dọc";position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:30px;background:#010403f7;color:#ffe3a0;font:900 22px Georgia,serif;text-align:center}
}

/* Nhiệm vụ Thôn: bố cục dọc, gọn, chạm được bằng một tay. */
.village-quests{left:3%;top:35%}
.village-quest-board{position:relative;width:100%;height:100%;min-height:100dvh;padding:max(54px,calc(env(safe-area-inset-top) + 42px)) 14px max(72px,calc(env(safe-area-inset-bottom) + 58px));overflow:auto;color:#f8f2df;background:linear-gradient(#07100ee8,#020504f5),url("hinhanh/vuot-ai/thon/ban-do-thon-3d.webp") center/cover fixed}
.village-quest-board>header{text-align:center}.village-quest-board>header>small{color:#e3b960;font-size:9px;font-weight:900;letter-spacing:3px}.village-quest-board>header h2{margin:5px 0;color:#ffe7a7;font:900 clamp(25px,7vw,36px) Georgia,serif}.village-quest-board>header p{margin:0 0 12px;color:#c9d4ca;font-size:11px}
.village-quest-list{display:grid;gap:8px;width:min(100%,460px);margin:0 auto}.village-quest-row{display:grid;grid-template-columns:minmax(0,1fr) 80px;align-items:center;gap:8px;padding:10px;border:1px solid #8f713e;border-radius:12px;background:linear-gradient(145deg,#101a16ed,#050806f2);box-shadow:inset 0 0 18px #d5a83a0e}.village-quest-row>div{display:grid;gap:3px;min-width:0}.village-quest-row span{width:max-content;padding:2px 6px;border-radius:999px;color:#251500;background:#e6b95b;font-size:8px;font-weight:900}.village-quest-row b{color:#ffe7a4;font:900 14px Georgia,serif}.village-quest-row small{color:#c2cec5;font-size:9px;line-height:1.4}.village-quest-row i{color:#77d49b;font-size:9px;font-style:normal}.village-quest-row>button{min-height:38px;padding:7px;border:1px solid #d5a959;border-radius:9px;color:#fff0bd;background:linear-gradient(#66461d,#281807);font-size:9px;font-weight:900}.village-quest-row>button:disabled{opacity:.55}.village-quest-row.completed{border-color:#4f9b6b;background:#091b12e8}
.village-trust-board{width:min(100%,460px);margin:12px auto 0;padding:11px;border:1px solid #ba934d;border-radius:13px;background:#040806e8}.village-trust-board>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.village-trust-board>header div{display:grid;gap:3px}.village-trust-board>header small{color:#e4b75c;font-size:8px;font-weight:900;letter-spacing:1px}.village-trust-board>header b{color:#eaf6ed;font-size:11px}.village-trust-board>header>strong{color:#ffe398;font-size:22px}.village-trust-board #villageTrustRows{display:grid;gap:5px;margin-top:8px}.village-trust-board #villageTrustRows>article{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px;border-radius:8px;background:#122019}.village-trust-board #villageTrustRows>article>i{color:#eec768;font-style:normal;font-weight:900}.village-trust-board #villageTrustRows>article>div{display:grid;min-width:0}.village-trust-board #villageTrustRows b{overflow:hidden;color:#f0f6ef;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.village-trust-board #villageTrustRows small{overflow:hidden;color:#9db2a3;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.village-trust-board #villageTrustRows strong{color:#89e4a9;font-size:11px}
.village-quest-back{position:fixed;z-index:5;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:10px 18px;border:1px solid #d7ab5a;border-radius:999px;color:#ffe8b0;background:#101611f2;font-weight:900}
@media(max-width:390px){.village-quest-row{grid-template-columns:minmax(0,1fr) 70px;padding:8px}.village-quest-row b{font-size:12px}.village-quest-row small,.village-quest-row i{font-size:8px}}

/* Nhiệm vụ Thôn: bố cục dọc và trạng thái tín nhiệm theo tỉnh. */
.village-quests{right:3%;bottom:5%}
.village-quest-board{position:relative;width:100%;height:100%;min-height:100dvh;box-sizing:border-box;overflow-y:auto;padding:max(56px,env(safe-area-inset-top)) 14px max(22px,env(safe-area-inset-bottom));color:#edf5ef;background:radial-gradient(circle at 50% 0,#28402f 0,#0d1712 40%,#030605 100%)}
.village-quest-board>header{text-align:center;text-shadow:0 3px 10px #000}.village-quest-board>header>small{color:#e4be69;font-size:9px;font-weight:900;letter-spacing:2px}.village-quest-board>header h2{margin:4px 0 2px;color:#ffe7a8;font:900 clamp(25px,7vw,38px) Georgia,serif}.village-quest-board>header p{margin:0 0 12px;color:#aebfb3;font-size:11px}
.village-quest-list{display:grid;gap:7px;width:min(100%,520px);margin:0 auto}.village-quest-row{display:grid;grid-template-columns:minmax(0,1fr) 86px;align-items:center;gap:8px;padding:10px;border:1px solid #7d6740;border-radius:12px;background:#09110de6;box-shadow:inset 0 0 15px #dcb75a0d}.village-quest-row>div{display:grid;min-width:0;gap:3px}.village-quest-row>div>span{width:max-content;padding:2px 6px;border-radius:999px;background:#3c2510;color:#ffd58a;font-size:7px;font-weight:900}.village-quest-row b{color:#f8e2ae;font-size:11px}.village-quest-row small{color:#aebcb2;font-size:8px;line-height:1.35}.village-quest-row i{color:#77d9a1;font-size:8px;font-style:normal;font-weight:800}.village-quest-row>button{padding:8px 5px;border:1px solid #d0a04e;border-radius:8px;background:linear-gradient(#8a571c,#402308);color:#ffe9b5;font-size:9px;font-weight:900}.village-quest-row>button:disabled{border-color:#4e5d54;background:#17211b;color:#748279}.village-quest-row.completed{border-color:#3c8c63;opacity:.8}
.village-trust-board{width:min(100%,520px);margin:12px auto 0;padding:10px;border:1px solid #927141;border-radius:13px;background:#07100cdd}.village-trust-board>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid #5e4a30}.village-trust-board>header div{display:grid;gap:2px}.village-trust-board>header small{color:#d7b76e;font-size:7px;font-weight:900;letter-spacing:1px}.village-trust-board>header b{color:#f5e7bd;font-size:11px}.village-trust-board>header>strong{color:#66e399;font-size:18px}.village-trust-board>div{display:grid;gap:5px;margin-top:7px}.village-trust-board article{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px;border-radius:8px;background:#101a14}.village-trust-board article>i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#5e4522;color:#ffe3a0;font-size:9px;font-style:normal;font-weight:900}.village-trust-board article div{display:grid;min-width:0}.village-trust-board article b{overflow:hidden;color:#e8f2eb;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.village-trust-board article small{color:#8fa397;font-size:7px}.village-trust-board article>strong{color:#e8c675;font-size:11px}
.village-quest-back{display:block;width:min(100%,520px);margin:12px auto 0;padding:10px;border:1px solid #c99b4d;border-radius:10px;background:#101a14;color:#ffe3a2;font-weight:900}
@media(max-width:380px){.village-quest-row{grid-template-columns:minmax(0,1fr) 74px;padding:8px}.village-quest-row>button{font-size:8px}.village-quest-board{padding-inline:9px}}
