*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:#0b0b0c;color:#e8e4dc;font-family:Pretendard,system-ui,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}
button{font:inherit;color:inherit;cursor:pointer}
.hide{display:none!important}
#gl{position:fixed;inset:0}
#gl canvas{display:block;width:100%;height:100%}
#tags{position:fixed;inset:0;pointer-events:none;overflow:hidden}
#vign{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}
#blindfx{position:fixed;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,#fffef4 30%,rgba(255,250,225,.92) 100%);z-index:40}
#hurtfx{position:fixed;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(160,0,0,.6) 100%);transition:opacity .35s}
/* 머리 위 이름·체력 */
.tag{position:absolute;left:0;top:0;transform:translate(-50%,-100%);text-align:center;white-space:nowrap;font-size:12px;font-weight:800;text-shadow:0 1px 2px #000,0 0 3px #000}
.tag .hb{width:46px;height:5px;background:#300;border:1px solid #000;margin:2px auto 0;border-radius:2px;overflow:hidden}
.tag .hb i{display:block;height:100%;background:#d33}
.tag .gb{width:46px;height:3px;background:#13202a;border:1px solid #000;margin:1px auto 0;overflow:hidden;border-radius:2px}
.tag .gb i{display:block;height:100%;background:linear-gradient(90deg,#3aa8ff,#8fd8ff)}   /* ⭐ 1024 레벨 게이지(파랑 = 경험치) */
.tag .lv{display:inline-block;background:#c9a85c;color:#111;border-radius:4px;padding:1px 5px;margin-right:4px;font-size:11px;font-weight:900;line-height:1.15;text-shadow:none;box-shadow:0 0 0 1px #000,0 1px 2px rgba(0,0,0,.6);vertical-align:1px}   /* 1024 유저 "레벨 숫자 번져 보임": 이름 그림자 상속 끔 · 굵게 · 테두리 */
.tag.p{will-change:transform}
.tag.z .hb{width:34px;height:4px}
.tag.z .hb i{background:#8a1}
.tag.boss .hb{width:0}
.tag .dn{color:#ff5050;font-size:13px}
.dmg{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:15px;color:#fff;text-shadow:0 1px 2px #000,0 0 4px #600;pointer-events:none;transition:transform .7s ease-out,opacity .7s ease-in}
.dmg.c{color:#ffd23a;font-size:21px}
.dmg.g{color:#ffd23a;font-size:14px}
.swtx{position:absolute;pointer-events:none;white-space:nowrap;font-weight:800;font-size:14px;color:#f3e6c4;letter-spacing:-.2px;text-shadow:0 1px 2px #000,0 0 6px rgba(0,0,0,.9)}
/* 로그인 */
#login{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,#2a1414 0%,#0b0b0c 70%);z-index:50}
.lg-in{width:min(420px,92vw);text-align:center}
.lg-t{color:#c9a85c;letter-spacing:.3em;font-weight:700;font-size:13px}
#login h1{font-size:64px;margin:4px 0 0;letter-spacing:-.04em;font-weight:900;color:#e8e4dc;text-shadow:0 0 30px rgba(170,0,0,.6)}
.lg-s{color:#8a847a;margin-bottom:22px}
#who{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
#who button{background:#18171a;border:1px solid #333;border-radius:12px;padding:12px 4px;font-weight:800}
#who button.on{border-color:#c9a85c;background:#2a2316;color:#ffe6a6}
.pinrow{display:flex;gap:8px}
#pin{flex:1;min-width:0;background:#111;border:1px solid #444;border-radius:12px;padding:13px;color:#fff;font:inherit;font-size:16px;text-align:center}
#go{background:#8a1010;border:0;border-radius:12px;padding:0 22px;font-weight:900}
#lgmsg{min-height:22px;margin:10px 0;color:#ff8a8a}
.ghost{background:none;border:1px dashed #444;border-radius:10px;padding:8px 14px;color:#8a847a}
/* HUD */
#me{position:fixed;left:max(12px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));display:flex;gap:8px;align-items:center;pointer-events:none}
#lvb{position:relative;width:42px;height:42px;border-radius:50%;background:radial-gradient(#3a2e14,#17120a);border:2px solid #c9a85c;display:grid;place-items:center;font-weight:900;font-size:17px;color:#ffe6a6}
.bars{width:min(230px,44vw)}
.nm{font-size:13px;font-weight:800;text-shadow:0 1px 2px #000}.nm span{color:#9a948a;font-weight:600;font-size:12px}
.bar{position:relative;height:14px;background:rgba(0,0,0,.6);border:1px solid #000;border-radius:4px;overflow:hidden;margin-top:3px}
.bar i{display:block;height:100%;transition:width .2s}
.bar span{position:absolute;inset:0;font-size:10px;font-weight:800;line-height:13px;padding-left:6px;text-shadow:0 1px 1px #000}
.bar.hp i{background:linear-gradient(#e33,#a11)}
.bar.hu{height:10px}.bar.hu i{background:linear-gradient(#e0a030,#a06010)}.bar.hu span{font-size:9px;line-height:9px}
.bar.hu.low i{background:linear-gradient(#a33,#611)}
.bar.xp{height:14px;border-color:#5a4520}.bar.xp i{background:linear-gradient(90deg,#8a6a2a,#e8c66a);transition:width .4s ease-out}.bar.xp span{font-size:10px;line-height:13px;color:#fff6dc}   /* ⭐ 1022 굵게 + 숫자 */
#money{position:fixed;right:max(12px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));font-size:22px;font-weight:900;color:#ffd23a;text-shadow:0 2px 3px #000;text-align:right}
#gpop{position:absolute;right:0;top:28px;font-size:14px;white-space:nowrap}
#gpop div{animation:gp 1.1s ease-out forwards}
@keyframes gp{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-22px)}}
#ping{position:fixed;right:max(12px,env(safe-area-inset-right));top:calc(max(10px,env(safe-area-inset-top)) + 32px);font-size:11px;color:#777}
#slots{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:8px}
.slot{width:74px;height:58px;border-radius:10px;background:rgba(10,10,12,.78);border:2px solid #333;position:relative;font-size:11px;font-weight:800;text-align:center;padding-top:5px}
.slot.on{border-color:#c9a85c;box-shadow:0 0 12px rgba(201,168,92,.5)}
.slot .k{position:absolute;left:5px;top:2px;color:#777;font-size:10px}
.slot .ic{font-size:20px;line-height:24px}
.slot .du{position:absolute;left:6px;right:6px;bottom:5px;height:3px;background:#222}.slot .du i{display:block;height:100%;background:#7c7}
.slot .atn{position:absolute;left:3px;top:15px;z-index:2;color:#c9a85c;font-size:9px;font-weight:800;line-height:1.2;padding:0 3px;border-radius:4px;background:rgba(0,0,0,.65)}   /* 🔫 이 총이 쓰는 탄(1021 유저) */
.slot .am{position:absolute;right:4px;top:1px;z-index:2;color:#ffd23a;font-size:10px;font-weight:800;line-height:1.2;padding:0 3px;border-radius:4px;background:rgba(0,0,0,.65);text-shadow:0 1px 2px #000}   /* 1021: 총 그림이 숫자를 가림 → 위로 */
.slot .k{z-index:2}
.slot.g1{border-color:#5aa0ff}.slot.g2{border-color:#b77bff}.slot.g3{border-color:#ffcf4a}
#toast{position:fixed;left:50%;top:22%;transform:translateX(-50%);text-align:center;pointer-events:none;z-index:45}   /* 창(#panel z20) 위로 — 관리자 '받기' 등 결과가 창 뒤에 숨던 것(1021) */
.admrow button:active,.acts button:active{transform:scale(.94)}.admok{background:#3a7a3a!important;border-color:#6c6!important;color:#fff!important;transition:background .15s}
#toast div{background:rgba(0,0,0,.7);padding:7px 14px;border-radius:10px;margin-top:6px;font-weight:700;animation:gp 2.6s ease-in forwards}
#center{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;font-weight:900;font-size:28px;text-shadow:0 2px 8px #000}
#prompt{position:fixed;left:50%;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 76px);transform:translateX(-50%);background:rgba(0,0,0,.75);border:1px solid #c9a85c;border-radius:10px;padding:6px 12px;font-weight:800;pointer-events:none;display:none}
#prompt kbd{background:#c9a85c;color:#111;border-radius:4px;padding:0 6px;margin-right:6px}
#prompt .pg{height:3px;background:#c9a85c;margin-top:4px;width:0}
#sidebtn{position:fixed;right:max(12px,env(safe-area-inset-right));top:calc(max(10px,env(safe-area-inset-top)) + 50px);display:flex;flex-direction:column;gap:6px}
#sidebtn button{width:42px;height:42px;border-radius:10px;background:rgba(10,10,12,.7);border:1px solid #333;font-size:19px}
#sidebtn button.on{border-color:#c9a85c;background:#2a2316;box-shadow:0 0 10px rgba(201,168,92,.45)}
#boss{position:fixed;left:50%;top:max(12px,env(safe-area-inset-top));transform:translateX(-50%);width:min(480px,56vw);text-align:center;pointer-events:none}   /* 📱 보스 체력 바가 위 버튼 터치 막던 것(1021) */
#boss .bn{font-weight:900;color:#ff6b6b;text-shadow:0 1px 3px #000;font-size:15px}
#boss .bb{height:10px;background:#200;border:1px solid #000;border-radius:3px;overflow:hidden}#boss .bb i{display:block;height:100%;background:linear-gradient(#e22,#811)}
/* 폰 */
#touch{position:fixed;inset:0;pointer-events:none}
#joyzone{position:absolute;left:0;bottom:0;top:calc(max(10px,env(safe-area-inset-top)) + 128px);width:50%;pointer-events:auto;z-index:0}   /* 왼쪽 절반(위 HUD·슬롯 아래부터) 어디든 누르면 거기에 조이스틱 */
#joy{position:absolute;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.15);left:calc(max(20px,env(safe-area-inset-left)) + 10px);bottom:calc(max(20px,env(safe-area-inset-bottom)) + 10px)}
#knob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px;border-radius:50%;background:rgba(255,255,255,.25);border:2px solid rgba(255,255,255,.4)}
#bAtk{position:absolute;right:calc(max(18px,env(safe-area-inset-right)) + 10px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 24px);width:96px;height:96px;border-radius:50%;background:rgba(150,20,20,.55);border:3px solid rgba(255,120,120,.5);font-size:34px;pointer-events:auto;touch-action:none}
#bAtk.on{background:rgba(200,30,30,.75)}
#bAct{position:absolute;z-index:3;touch-action:none;right:calc(max(18px,env(safe-area-inset-right)) + 104px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 92px);width:64px;height:64px;border-radius:50%;background:rgba(201,168,92,.75);border:2px solid #ffe6a6;color:#111;font-weight:900;font-size:15px;pointer-events:auto;padding:0;line-height:1.1}
#bHeal{position:absolute;right:calc(max(18px,env(safe-area-inset-right)) + 118px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 14px);width:52px;height:52px;border-radius:50%;background:rgba(20,90,40,.6);border:2px solid rgba(120,255,150,.4);font-size:22px;pointer-events:auto}
body.touch #slots{bottom:auto;top:calc(max(10px,env(safe-area-inset-top)) + 62px);left:max(12px,env(safe-area-inset-left));transform:none}
body.touch .slot{width:58px;height:46px;padding-top:2px}.body.touch .slot .ic{font-size:16px}
body.touch #prompt{bottom:auto;top:30%;white-space:nowrap;font-size:13px;max-width:calc(100vw - 24px);overflow:hidden;text-overflow:ellipsis}
/* 창 */
#panel{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:20}
.pbox{position:relative;width:min(620px,94vw);max-height:86vh;overflow:auto;background:#141316;border:1px solid #3a3530;border-radius:16px;padding:18px}
.px{position:absolute;right:10px;top:10px;background:#222;border:0;border-radius:8px;width:32px;height:32px}
.pbox h2{margin:0 0 10px;font-size:20px}
.pbox .sub{color:#8a847a;font-size:13px;margin:-6px 0 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.it{background:#1c1b1f;border:1px solid #333;border-radius:10px;padding:8px;font-size:12px;text-align:left;min-height:62px}
.it b{display:block;font-size:13px}.it small{color:#8a847a}
.it.g1{border-color:#5aa0ff}.it.g2{border-color:#b77bff}.it.g3{border-color:#ffcf4a}
.acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.acts button,.btn{background:#2a2622;border:1px solid #4a4238;border-radius:9px;padding:8px 12px;font-weight:800}
.btn.gold{background:#c9a85c;color:#111;border:0}.btn.red{background:#8a1010;border:0}
.lob{display:grid;gap:6px;margin:10px 0}.lob div{background:#1c1b1f;border-radius:10px;padding:10px;display:flex;justify-content:space-between}
.rdy{color:#7c7;font-weight:900}.nrdy{color:#a99}
/* 🗺 큰 지도(1022 재작성): 밑그림 + 실시간 층 겹침 · 아래 친구 칩 */
.mapw{position:relative;margin:0 auto;border-radius:12px;overflow:hidden;background:#121418;box-shadow:0 0 0 1px #3a3226,0 10px 30px rgba(0,0,0,.6)}.mapw canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.mapfr{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px;justify-content:center}.mapfr button{display:flex;align-items:center;gap:7px;background:#1a191d;border:1px solid #2e2b30;border-radius:999px;padding:5px 12px 5px 7px;color:#e8e4dc;font:inherit;cursor:pointer}
.mapfr button i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 2px #fff inset,0 0 8px currentColor}.mapfr button b{font-size:13px}.mapfr button small{font-size:11px;color:#8a847a}.mapfr button.on{border-color:#c9a85c;background:#2a2316}.mapfr button.off{opacity:.55}
.mapg{display:grid;grid-template-columns:auto minmax(210px,270px);gap:14px;align-items:start}.mapw{width:min(calc(96vw - 340px),calc((86vh - 110px) * var(--ar)));margin:0}.maps{max-height:calc(86vh - 110px);overflow:auto}.maps .mapfr{flex-direction:column;align-items:stretch;margin-top:0;justify-content:flex-start}.maps .mapfr button{border-radius:10px;flex-wrap:wrap;row-gap:0;text-align:left}.maps .acts{position:static!important;flex-direction:column;align-items:stretch}#panel .pbox:has(.mapg){width:auto;max-width:96vw}
@media (pointer:coarse) and (max-height:520px){.mapw{width:min(62vw,calc((95vh - 90px) * var(--ar)))}.maps{max-height:calc(95vh - 90px)}.maps .acts{flex-direction:row;flex-wrap:wrap}.pbox:has(.mapg) .sub{display:none}}
#downui{position:fixed;left:50%;top:30%;transform:translateX(-50%);text-align:center;z-index:15}
#downui .dt{font-size:34px;font-weight:900;color:#ff4d4d;text-shadow:0 2px 8px #000}
#dsec{font-size:56px;font-weight:900}
#downui .ds{color:#ccc;margin-bottom:12px}
#giveup{background:rgba(0,0,0,.6);border:1px solid #666;border-radius:10px;padding:8px 16px}
#cross{position:fixed;width:22px;height:22px;margin:-11px 0 0 -11px;border:2px solid rgba(255,255,255,.75);border-radius:50%;pointer-events:none;display:none;box-shadow:0 0 4px #000}
#cross::after{content:'';position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;background:#ff5050;border-radius:50%}
#boss:not(.hide)~#lockhint,body:has(#boss:not(.hide)) #lockhint{top:calc(max(10px,env(safe-area-inset-top)) + 44px)}   /* 보스 체력바와 겹치지 않게 */
#lockhint{position:fixed;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 8px);transform:translateX(-50%);background:rgba(0,0,0,.6);border-radius:10px;padding:6px 12px;font-size:13px;color:#ddd;pointer-events:none}

/* 1020 — 장비(옷)·관리자·시점 버튼·경고 */
.stats{background:#1c1b1f;border-radius:10px;padding:8px 10px;font-size:13px;margin:0 0 8px;color:#cfc8bc}.stats b{color:#ffe6a6}
.eqg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:6px}
.eq{position:relative;background:#1c1b1f;border:1px solid #333;border-radius:10px;padding:7px;font-size:12px;min-height:64px}
.eq b{display:block;font-size:12.5px;margin-bottom:2px}.eq small{color:#9a948a;line-height:1.45;display:block}.eq.empty{color:#666;display:grid;place-items:center;text-align:center}
.eq.g1{border-color:#5aa0ff}.eq.g2{border-color:#b77bff}.eq.g3{border-color:#ffcf4a}
.detail{background:#1c1b1f;border:1px solid #444;border-radius:10px;padding:10px;margin-top:10px;font-size:13px;line-height:1.6}.detail.g1{border-color:#5aa0ff}.detail.g2{border-color:#b77bff}.detail.g3{border-color:#ffcf4a}
.il{color:#c9a85c}.bad{color:#ff6b6b;font-weight:800}.up{color:#5fe07a}.dn{color:#ff6b6b}.af{color:#7ab8ff}.tst{color:#ff9be0}
.it.lock{opacity:.6}.it.lock b{color:#ff9a9a}
.mini{background:#2a2622;border:1px solid #4a4238;border-radius:7px;padding:2px 8px;font-size:11px;font-weight:800}
.eq .mini{position:absolute;right:6px;bottom:6px}.eq:has(.mini){padding-bottom:30px}   /* 1021: 위에 있으면 이름 가림 → 아래로 */
.admrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:7px 0}.admrow b{width:70px;font-size:13px}
.admrow select,.admrow input{background:#111;border:1px solid #444;border-radius:8px;color:#fff;padding:7px;font:inherit;font-size:13px;min-width:0}.admrow input{width:80px}.admrow select:first-of-type{flex:1;min-width:120px}
#bCam{position:fixed;right:max(12px,env(safe-area-inset-right));top:calc(max(10px,env(safe-area-inset-top)) + 50px + 8 * 48px + 10px);width:42px;height:46px;border-radius:12px;background:rgba(40,30,10,.8);border:1px solid #c9a85c;font-size:18px;line-height:1;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;z-index:5}
#bCam small{font-size:9px;font-weight:800;color:#ffe6a6}
body.touch #bCam{top:auto;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 214px);right:calc(max(18px,env(safe-area-inset-right)) + 24px);width:58px;height:58px;border-radius:50%;pointer-events:auto}
#bJump{position:absolute;right:calc(max(18px,env(safe-area-inset-right)) + 28px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 134px);width:60px;height:60px;border-radius:50%;background:rgba(60,70,90,.55);border:2px solid rgba(170,200,255,.45);font-size:24px;font-weight:900;pointer-events:auto;touch-action:none}
#warn{position:fixed;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 64px);transform:translateX(-50%);background:rgba(120,10,10,.88);border:1px solid #ff6b6b;border-radius:10px;padding:8px 14px;font-weight:900;font-size:14px;pointer-events:none;z-index:12;white-space:nowrap}
#warn.pop{animation:wpop .5s ease-out}
@keyframes wpop{0%{transform:translateX(-50%) scale(1.25)}100%{transform:translateX(-50%) scale(1)}}
@media (pointer:coarse) and (max-width:560px){.eqg{grid-template-columns:repeat(3,1fr)}.eq{font-size:11px;padding:5px}.eq small{font-size:10px}#warn{font-size:12px;white-space:normal;width:86vw;text-align:center}}
/* 💬 채팅: 왼쪽 아래 로그(10초 뒤 흐려짐) + 입력창 + 머리 위 말풍선 */
#chat{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:calc(max(12px,env(safe-area-inset-bottom)) + 90px);width:min(380px,70vw);pointer-events:none;z-index:6}
#chatlog div{font-size:13px;line-height:1.45;color:#eee;text-shadow:0 1px 2px #000,0 0 3px #000;transition:opacity 1.2s;word-break:break-all}
#chatlog div b{color:#c9a85c;margin-right:5px}
#chatlog div.old{opacity:0}
#chat.on #chatlog div.old{opacity:.85}
#chatin{pointer-events:auto;width:100%;margin-top:6px;background:rgba(10,10,12,.85);border:1px solid #c9a85c;border-radius:8px;color:#fff;font:14px inherit;padding:8px 10px;outline:none}
.bub{position:absolute;left:0;top:0;transform:translate(-50%,-100%);max-width:220px;white-space:normal;background:rgba(255,255,255,.94);color:#111;font-size:13px;font-weight:700;padding:5px 9px;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.5);pointer-events:none}
.bub:after{content:'';position:absolute;left:50%;bottom:-6px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top-color:rgba(255,255,255,.94)}
/* 1021 QHD(가로 2000px↑): HUD·창 1.5배 — 유저 요청 '좌상단·우상단·하단 너무 작음' */
body.bigscr :is(#me,#money,#ping,#sidebtn,#slots,#prompt,#warn,#boss,#toast,#center,#bCam,#lockhint,#chat){--bz:1.5}body.bigscr .pbox{--bz:1.35}   /* 큰 화면 1.35배 → 높이도 줄여야 안 잘림(1021 기지 가방 위아래 잘림) */

/* 📱 폰은 가로만(신미월드와 같음) */
#rotate{position:fixed;inset:0;background:#0d0c0e;color:#e8e0c8;display:none;place-items:center;text-align:center;z-index:60;font-size:1.3em;line-height:1.6}
#rotate div{font-size:1.4em}#rotate b{color:#c9a85c}#rotate small{font-size:.6em;opacity:.7}
@media (orientation:portrait) and (pointer:coarse){#rotate{display:grid}}
@media (pointer:coarse) and (max-height:520px){#sidebtn{flex-direction:row;top:max(8px,env(safe-area-inset-top));right:calc(max(12px,env(safe-area-inset-right)) + 92px)}#sidebtn button{width:38px;height:38px;font-size:17px}#bCam{top:calc(max(8px,env(safe-area-inset-top)) + 46px)!important}}
#inst{display:block;margin:0 auto 12px;background:#2a2316;border:1px solid #c9a85c;color:#ffe6a6;border-radius:10px;padding:9px 16px;font-weight:800;font-size:14px}
#inst.hide{display:none}
/* 🎯 조준 십자선 */
#cross.ads{border:none;box-shadow:none;width:28px;height:28px;margin:-14px 0 0 -14px;background:linear-gradient(#fff,#fff) center/2px 9px no-repeat,linear-gradient(#fff,#fff) center/9px 2px no-repeat;filter:drop-shadow(0 0 2px #000)}
#cross.ads::after{background:#ff3030}
#bAim{position:absolute;z-index:3;touch-action:none;right:calc(max(18px,env(safe-area-inset-right)) + 128px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 168px);width:58px;height:58px;border-radius:50%;background:rgba(30,30,34,.6);border:2px solid #c9a85c;font-size:24px;pointer-events:auto}
#bAim.on{background:rgba(201,168,92,.75)}
/* 👥 접속자 목록(왼쪽) */
#online{position:fixed;left:max(12px,env(safe-area-inset-left));top:calc(max(10px,env(safe-area-inset-top)) + 118px);width:190px;background:rgba(10,10,12,.55);border:1px solid #2e2a24;border-radius:10px;padding:6px 8px;font-size:12px;cursor:pointer;z-index:5}
#online .wh{color:#c9a85c;font-weight:800;margin-bottom:3px}
#online.fold .wr{display:none}
#online .wr{position:relative;padding:3px 0 4px;border-top:1px solid rgba(255,255,255,.06)}
#online .wr b{color:#eee}#online .wr.me b{color:#ffe6a6}
#online .lv{margin-left:5px;font-size:11px;font-weight:900;color:#111;background:#c9a85c;border-radius:4px;padding:1px 4px;line-height:1.15;text-shadow:none;display:inline-block}   /* 1024 선명하게 */
#online .dv{margin-left:4px;font-size:8.5px;font-weight:800;letter-spacing:.3px;color:#9fb4c8;border:1px solid #3d4a58;border-radius:3px;padding:0 3px;line-height:1.3;display:inline-block;vertical-align:1px}#online .dv.mb{color:#9fe0a0;border-color:#3d5a40}   /* 📱 1028 밤: PC/MOBILE */
#online .wr i{display:block;height:3px;background:#d33;border-radius:2px;margin:2px 0}
#online small{color:#a9a294;font-size:11px}
@media (pointer:coarse) and (max-height:520px){#online{top:auto;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 150px);width:160px;font-size:11px}#online.fold{width:auto}}
body.bigscr #online{--bz:1.5}
/* 🎨 등급 색(일반 흰 · 마법 파랑 · 희귀 보라(1030) · 전설 주황) — 가방·장비·하단 슬롯·상세 이름 */
.g1>b,.slot.g1,.eq.g1 b,.detail.g1>b{color:#6aa8ff!important}
.g2>b,.slot.g2,.eq.g2 b,.detail.g2>b{color:#b77bff!important}
.g3>b,.slot.g3,.eq.g3 b,.detail.g3>b{color:#ffcf4a!important;text-shadow:0 0 6px rgba(255,207,74,.45)}
.it.g1{border-color:#3a5a8a}.it.g2{border-color:#6a3fa0}.it.g3{border-color:#a8581a}

/* 🖼 아이콘(실제 모델 PNG) · 🎒 가방 2단(왼쪽 캐릭터 3D) · 탭 */
.ico{width:1.7em;height:1.7em;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}
.ico.em{display:inline-block;width:auto;height:auto;font-size:1.2em;line-height:1}
.slot .ic .ico{width:40px;height:40px}
.it{position:relative;text-align:center}.it>.ico{display:block;width:62px;height:62px;margin:0 auto 4px}.it>.ico.em{font-size:38px;margin:6px auto 8px}
.it .cnt{position:absolute;right:6px;top:6px;font-size:11px;font-weight:800;color:#ffe6a6;background:rgba(0,0,0,.55);border-radius:6px;padding:0 4px}
.pbox.wide{width:min(1040px,96vw)}
#panel .pbox.fixh{height:100vh}
.pgfill{visibility:hidden!important;pointer-events:none!important}   /* 📌 1027: 격자 빈 자리 채움(보이지 않음·안 눌림) */   /* 📌 1027 팔기·교환: 늘 최대 높이(max-height 에 걸림) → 목록 길이 바뀌어도 창 크기·버튼 위치 그대로 */
.invwrap{display:grid;grid-template-columns:330px 1fr;gap:14px;align-items:start}
.invL #pvbox{height:330px;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#2c2924,#121114 70%);border:1px solid #2e2a24;margin-bottom:8px;position:relative;overflow:hidden;cursor:grab}
.invL #pvbox canvas{width:100%!important;height:100%!important;display:block}
.acwrap{display:grid;grid-template-columns:230px 1fr;gap:12px;align-items:start}.acwrap #pvbox{height:330px;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#2c2924,#121114 70%);border:1px solid #2e2a24;position:relative;overflow:hidden;cursor:grab}.acwrap #pvbox canvas{width:100%!important;height:100%!important;display:block}   /* 🎨 1027 옷 색 미리보기 */
@media (pointer:coarse) and (max-width:760px),(pointer:coarse) and (max-height:520px){.acwrap{grid-template-columns:150px 1fr}.acwrap #pvbox{height:250px}}
.invL .eqg{grid-template-columns:repeat(3,1fr)}
.tabs{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 8px}
.tabs button{background:#18171a;border:1px solid #333;border-radius:9px;padding:5px 9px;font-size:12px;font-weight:700;color:#cfc8bc}
.tabs button small{color:#8a847a;font-weight:600}
.tabs button.on{border-color:#c9a85c;background:#2a2316;color:#ffe6a6}
@media (pointer:coarse) and (max-width:760px),(pointer:coarse) and (max-height:520px){.invwrap{grid-template-columns:1fr}.invL #pvbox{height:200px}}

/* 🛒 상점 카드 표시 · 🔨 제작 · 📥 획득 알림 */
.it .tag2{position:absolute;left:6px;top:6px;font-size:10px;font-weight:800;color:#bdb6a8;background:rgba(0,0,0,.5);border-radius:6px;padding:1px 5px}
.it .tag2.z{color:#111;background:#c9a85c}
.it .pr{color:#ffd23a;font-size:12px}
.rcs{display:flex;flex-direction:column;gap:8px;max-height:58vh;overflow:auto}
.rc{display:grid;grid-template-columns:170px 1fr auto;gap:10px;align-items:center;background:#1c1b1f;border:1px solid #333;border-radius:10px;padding:8px 10px}
.rc.ok{border-color:#8a7a2a}
.rc .rcl{display:flex;align-items:center;gap:6px}.rc .rcl .ico{width:46px;height:46px}.rc .rcl b{display:block;font-size:13px}.rc .rcl small{display:block;color:#8a847a;font-size:11px}
.rc .rcm{display:flex;flex-wrap:wrap;gap:5px}.rc .rcm span{display:inline-flex;align-items:center;gap:3px;font-size:12px;background:#141316;border:1px solid #2a2a2e;border-radius:8px;padding:2px 7px}
.rc .rcm .hv{color:#9fe0a0;border-color:#2e4a30}.rc .rcm .no{color:#ff9a8a;border-color:#4a2a26}
#gotbox{position:fixed;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 64px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;z-index:30}
.got{display:flex;align-items:center;gap:8px;background:rgba(12,12,14,.86);border:1px solid #c9a85c;border-radius:12px;padding:6px 14px 6px 8px;animation:gotin .25s ease-out;transition:opacity .45s,transform .45s}
.got .ico{width:38px;height:38px}.got small{display:block;font-size:11px;color:#bdb6a8}.got b{font-size:15px;color:#fff}
.got.g1 b{color:#6aa8ff}.got.g2 b{color:#b77bff}.got.g3 b{color:#ffcf4a}
.got.out{opacity:0;transform:translateY(-8px)}
@keyframes gotin{from{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:none}}
body.bigscr #gotbox{--bz:1.4}
@media (pointer:coarse) and (max-width:760px),(pointer:coarse) and (max-height:520px){.rc{grid-template-columns:1fr}}
.lgopt{display:flex;gap:16px;justify-content:center;margin:2px 0 12px;font-size:13px;color:#bdb6a8}.lgopt label{display:flex;align-items:center;gap:5px;cursor:pointer}.lgopt input{width:16px;height:16px;accent-color:#c9a85c}

/* ✋ 밀치기 버튼(폰): 공격 버튼 바로 왼쪽 아래 · 회복 버튼은 그 왼쪽으로 */
#bShove{position:absolute;z-index:3;touch-action:none;right:calc(max(18px,env(safe-area-inset-right)) + 114px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 14px);width:66px;height:66px;border-radius:50%;background:rgba(60,48,30,.7);border:2px solid #c9a85c;font-size:28px;pointer-events:auto}
#bShove:active{background:rgba(201,168,92,.8)}
#bHeal{right:calc(max(18px,env(safe-area-inset-right)) + 190px)!important}

/* 🔄 장전 버튼(폰): 회복 버튼 위 */
#bReload{position:absolute;z-index:3;touch-action:none;right:calc(max(18px,env(safe-area-inset-right)) + 186px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 84px);width:58px;height:58px;border-radius:50%;background:rgba(30,40,55,.7);border:2px solid #7aa8d8;font-size:22px;line-height:1;pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0}
#bReload small{font-size:10px;font-weight:800;color:#dfe8f5;margin-top:1px}
#bReload.spin{animation:rlspin .8s linear infinite;border-color:#c9a85c}
@keyframes rlspin{to{transform:rotate(360deg)}}

/* 💬 입력줄 + ↵ 버튼 · 폰(가로)은 위쪽 가운데(키보드에 안 가림, 신미월드처럼) */
#chatrow{display:flex;gap:6px;margin-top:6px;pointer-events:auto}#chatrow.hide{display:none}
#chatrow #chatin{margin-top:0;flex:1}
#chatgo{pointer-events:auto;background:#c9a85c;color:#111;border:none;border-radius:8px;font-weight:900;font-size:16px;padding:0 14px}
@media (pointer:coarse){#chat{left:50%;transform:translateX(-50%);top:calc(max(8px,env(safe-area-inset-top)) + 52px);bottom:auto;width:min(440px,56vw);display:flex;flex-direction:column-reverse}#chat #chatlog div{font-size:12px}#chatrow #chatin{font-size:16px;padding:9px 10px}}

.it .packs{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.it .packs button{background:#2a2316;border:1px solid #c9a85c;border-radius:7px;color:#ffe6a6;font-weight:800;font-size:12px;padding:4px 6px}
.it .packs button small{display:block;color:#cfc8bc;font-weight:600;font-size:10.5px}
.it .packs button:disabled{opacity:.4}
.admrow.gift{flex-wrap:wrap}
.lowsup{background:#3a1212;border:1px solid #c0392b;color:#ffd0c8;border-radius:10px;padding:9px 11px;margin:8px 0;font-size:14px;line-height:1.5}.lowsup b{color:#fff}.lowsup small{color:#e8a89c}
/* 🔨 제작 2단 */
.cr2{display:grid;grid-template-columns:minmax(200px,38%) 1fr;gap:10px;max-height:62vh}
.crl{display:flex;flex-direction:column;gap:5px;max-height:60vh;overflow:auto;padding-right:2px}
.cri{display:flex;align-items:center;gap:8px;text-align:left;background:#18171b;border:1px solid #2c2b30;border-radius:10px;padding:6px 8px;color:#ddd}
.cri .ico{width:38px;height:38px}.cri b{display:block;font-size:13px}.cri small{display:block;font-size:11px;color:#8a847a}
.cri.ok{border-color:#6a5a1e}.cri.ok small{color:#ffd23a}.cri.near small{color:#e8c070}.cri.on{background:#2a2416;border-color:#c9a85c;box-shadow:0 0 0 1px #c9a85c inset}
.crd{background:linear-gradient(180deg,#1d1b18,#141316);border:1px solid #3a3326;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:9px;max-height:60vh;overflow:auto}
.crh{display:flex;gap:12px;align-items:center}.crh .ico{width:78px;height:78px;background:radial-gradient(circle,#3a3220,#16140f 70%);border-radius:12px;padding:6px}.crh b{font-size:18px;color:#f3e2b8;display:block}.crh small{color:#9a9080;font-size:12px}
.crs{display:flex;flex-wrap:wrap;gap:6px}.crs span{background:#121114;border:1px solid #2a2a2e;border-radius:8px;padding:5px 9px;display:flex;flex-direction:column;min-width:70px}.crs small{font-size:10px;color:#8a847a}.crs b{font-size:14px;color:#fff}
.crm{display:flex;flex-direction:column;gap:5px}.crm>div{display:grid;grid-template-columns:40px 1fr auto;gap:8px;align-items:center;background:#121114;border:1px solid #2a2a2e;border-radius:9px;padding:5px 9px}
.crm .ico{width:36px;height:36px}.crm b{display:block;font-size:13px}.crm small{display:block;font-size:11px;color:#8a847a}.crm em{font-style:normal;font-weight:800;font-size:14px}
.crm .stq{color:#c9a85c;font-weight:700}   /* 📦 창고 재고(1022 친구 요청) */
.crm .hv{border-color:#2e4a30}.crm .hv em{color:#9fe0a0}.crm .no{border-color:#4a2a26}.crm .no em{color:#ff9a8a}
@media (pointer:coarse) and (max-width:760px),(pointer:coarse) and (max-height:520px){.cr2{grid-template-columns:1fr 1.3fr}.crl,.crd{max-height:56vh}.crh .ico{width:54px;height:54px}}
/* 🏆 도전과제 · 잠금 */
.achs{display:flex;flex-direction:column;gap:6px;max-height:62vh;overflow:auto}
.ach{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:#18171b;border:1px solid #2c2b30;border-radius:10px;padding:8px 11px}
.ach b{font-size:14px}.ach small{display:block;color:#8a847a;font-size:12px;margin:2px 0 5px}.ach i{display:block;height:6px;background:#0e0e10;border-radius:4px;overflow:hidden}.ach i em{display:block;height:100%;background:linear-gradient(90deg,#8a6a1e,#ffd23a)}
.ach>span{text-align:right;font-size:12px;color:#aaa}.ach>span b{color:#ffd23a;font-size:13px}.ach.ok{border-color:#6a5a1e;background:#1f1c13}.ach.ok i em{background:#9fe0a0}
.it.lock{opacity:.55;filter:grayscale(.6)}
/* 📱 낮은 가로 화면: 창 꽉 차게 · 아래 탭(상점/수리/제작/가방)은 늘 보이게(스크롤해도 바닥에 붙음) */
#pbody>.acts:last-child{position:sticky;bottom:-18px;background:linear-gradient(rgba(20,19,22,0),#141316 35%);padding:12px 0 6px;margin-top:8px;z-index:2}
@media (pointer:coarse) and (max-height:520px){.pbox{max-height:95vh;padding:12px 14px}.pbox h2{font-size:17px;margin-bottom:4px}.pbox .sub{margin:-2px 0 8px;font-size:12px}#pbody>.acts:last-child{bottom:-12px}.packs button{padding:4px 6px}}
/* ❓ 안내 카드 */
.tut{max-width:520px;margin:0 auto;text-align:center}.tut .tn{color:#c9a85c;font-size:12px;letter-spacing:.1em}.tut h2{font-size:24px!important;margin:6px 0 10px!important}.tut p{font-size:15px;line-height:1.65;color:#ddd;margin:0 0 12px}.tut p b{color:#ffd23a}
.tut .dots{display:flex;gap:6px;justify-content:center;margin:6px 0}.tut .dots i{width:8px;height:8px;border-radius:50%;background:#3a3530}.tut .dots i.on{background:#c9a85c}.tut .acts{justify-content:center}
/* 📱 폰 가로(1021 친구 "가방창 너무 커"): 1열로 쌓지 말고 좌(캐릭터·장착 작게)/우(가방) 2열 */
@media (pointer:coarse) and (max-height:520px) and (min-width:600px){.invwrap{grid-template-columns:250px 1fr;gap:10px}.invL #pvbox{height:120px;margin-bottom:6px}.invL .eq{min-height:0;padding:4px 5px;font-size:10px}.invL .eq b{font-size:11px}.invL .eq small{font-size:9.5px;line-height:1.3}.it>.ico{width:42px;height:42px;margin-bottom:2px}.it>.ico.em{font-size:28px;margin:3px auto 4px}}
@media (pointer:coarse) and (max-height:520px) and (min-width:600px){.invwrap .grid{grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:6px}.invwrap .it{padding:5px;min-height:0;font-size:10.5px}.invwrap .it b{font-size:11px}.invwrap .it small{font-size:10px}.invwrap .it .cnt{font-size:10px;right:3px;top:3px}.invwrap .tabs button{padding:3px 7px;font-size:11px}.invwrap .tabs{gap:4px;margin-bottom:6px}}
.lgfx{color:#ffcf4a;font-weight:700;text-shadow:0 0 6px rgba(255,207,74,.35)}

/* 🎲 특성 변경 */
.rrl{display:flex;flex-direction:column;gap:6px;margin-top:8px}.rrl>div{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#1c1b1f;border:1px solid #333;border-radius:9px;padding:8px 10px}.rrl>div b{color:#9fd0ff}.rrl>div.lk{opacity:.5}.rrl small{color:#8a847a}
.rrc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.rrc button{background:#1c1b1f;border:1px solid #444;border-radius:10px;padding:12px 8px;color:#eee;text-align:center}.rrc button small{display:block;color:#8a847a;margin-bottom:4px}.rrc button b{color:#9fd0ff;font-size:14px}.rrc button.new{border-color:#c9a85c}.rrc button:hover{background:#2a2316}
/* 🗺 미니맵(디아블로식) — PC 오른쪽 위(버튼 줄 왼쪽) · 폰 가로 = 오른쪽 위 돈 아래(시점 버튼은 그 왼쪽으로) · 누르면/N = 크게 */
#mmap{position:fixed;right:calc(max(12px,env(safe-area-inset-right)) + 56px);top:calc(max(10px,env(safe-area-inset-top)) + 44px);width:180px;height:180px;z-index:6;cursor:pointer;filter:drop-shadow(0 3px 6px rgba(0,0,0,.6));transition:width .18s,height .18s}
#mmap canvas{width:100%;height:100%;display:block}
#mmap.big{width:min(440px,70vmin);height:min(440px,70vmin)}
#mmap.hide{display:none}
@media (pointer:coarse) and (max-height:520px){#mmap{right:max(10px,env(safe-area-inset-right));top:calc(max(8px,env(safe-area-inset-top)) + 54px);width:104px;height:104px}body.touch #bCam{right:calc(max(12px,env(safe-area-inset-right)) + 116px)!important}#mmap.big{left:50%;top:50%;transform:translate(-50%,-50%);width:min(320px,80vmin);height:min(320px,80vmin)}}
body.bigscr #mmap{--bz:1.5}

/* 🏠 기지 방어 화면(1021 v3) — 이동·공격 버튼 숨김 · 위 = 기지 정보 · 오른쪽 = 기지 무기 · 아래 = 관리 바 */
body.basev #joyzone,body.basev #bAtk,body.basev #bHeal,body.basev #bShove,body.basev #bJump,body.basev #bAim,body.basev #bReload,body.basev #bCam,body.basev #slots,body.basev #prompt,body.basev #cross{display:none!important}
#bhud{position:fixed;left:50%;top:max(10px,env(safe-area-inset-top));transform:translateX(-50%);z-index:7;background:rgba(14,12,11,.86);border:1px solid #6a5426;border-radius:12px;padding:7px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;max-width:min(560px,60vw);font-size:13px}
#bhud b{color:#ffe2a0}#bhud small{width:100%;color:#a9a294}#bhud .hpw{flex:1;min-width:90px;height:9px;background:#2a2520;border-radius:9px;overflow:hidden}#bhud .hpw i{display:block;height:100%}
#bwpn{position:fixed;right:calc(max(12px,env(safe-area-inset-right)) + 56px);top:calc(max(10px,env(safe-area-inset-top)) + 236px);z-index:7;width:250px;background:rgba(14,12,11,.88);border:1px solid #3d352a;border-radius:12px;padding:8px;font-size:12px;max-height:46vh;overflow:auto}
#bwpn .bt{font-weight:900;margin-bottom:5px;color:#e8d39c}#bwpn button{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:#1c1b1f;border:1px solid #333;border-radius:8px;padding:4px 6px;margin:3px 0;color:#eee}#bwpn button.on{border-color:#c9a85c;background:#2a2316}
#bwpn .ico{width:30px;height:30px}#bwpn small{display:block;color:#8a847a}#bwpn .mag{margin-top:5px;color:#ffd23a;font-weight:800}
#bbar{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:7;display:flex;gap:7px;background:rgba(14,12,11,.88);border:1px solid #3d352a;border-radius:14px;padding:7px}
#bbar button{min-width:74px;padding:6px 6px 5px;border-radius:10px;border:1px solid #3d352a;background:rgba(30,26,22,.95);color:#e8e2d4;text-align:center}#bbar button:active{background:#2a2316;border-color:#c9a85c}
#bbar i{display:block;font-style:normal;font-size:21px}#bbar b{font-size:12px}#bbar small{display:block;color:#8f887a;font-size:10.5px;min-height:12px}
.bupk{background:#1c1b1f;border:1px solid #6a5426;border-radius:10px;padding:10px 12px;display:grid;gap:4px}.bupk>b{color:#ffe2a0;font-size:15px}.bupk div{display:grid;grid-template-columns:80px 1fr;font-size:13px}.bupk small{color:#8a847a}.bupk .ok{color:#7fd88f}.bupk .no{color:#ff8a7a}.bupk .g{color:#ffd23a;font-weight:800}
@media (pointer:coarse) and (max-height:520px){#bhud{font-size:11px;padding:5px 9px;max-width:56vw}#bwpn{right:max(10px,env(safe-area-inset-right));top:calc(max(8px,env(safe-area-inset-top)) + 166px);width:200px;max-height:34vh;font-size:11px}#bbar{gap:4px;padding:5px}#bbar button{min-width:56px;padding:4px}#bbar i{font-size:17px}#bbar b{font-size:10.5px}}
body.basev #lockhint{display:none!important}

/* 🛡 방어 무기 창 · 📦 창고 */
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.dslot{background:#1c1b1f;border:1px solid #333;border-radius:10px;padding:7px 9px;font-size:12.5px}.dslot.on{border-color:#5fa86a;background:#18221a}.dslot.lk{opacity:.5}
.dslot small{display:block;color:#8a847a}.dslot>button{margin-top:5px;font-size:12px}.dch{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.dch button{font-size:11.5px;padding:4px 7px;border-radius:7px;background:#24242a;border:1px solid #3a3a42;color:#ddd;text-align:left}.dch button.ok{border-color:#c9a85c;color:#ffe6a6}.dch button:disabled{opacity:.4}.dch small{display:block;color:#8a847a;font-size:10.5px}
/* 📦 창고(1022): 가방 | ⇄ | 창고 — 칸마다 5×4=20개 · 스크롤 없이 */.stw{display:grid;grid-template-columns:1fr 26px 1fr;gap:8px;align-items:stretch}.stc{border-radius:12px;padding:8px;display:flex;flex-direction:column}.stc.bag{background:#17191d;border:1.5px solid #3c4552}.stc.box{background:#1d1912;border:1.5px solid #8a6f36}.stmid{display:flex;align-items:center;justify-content:center;color:#c9a85c;font-size:20px;font-weight:900}.sth{font-weight:900;color:#e8d39c;margin:0 0 6px;display:flex;align-items:baseline;gap:6px;font-size:14px}.stc.bag .sth{color:#cfd8e6}.sth b{font-size:13px}.sth small{margin-left:auto;font-size:11px;color:#8a847a;font-weight:600}.stw .grid{grid-template-columns:repeat(5,1fr);grid-auto-rows:clamp(40px,calc((86vh - 330px) / 4),76px);gap:5px;align-content:start;min-height:calc(4 * clamp(40px,calc((86vh - 330px) / 4),76px) + 15px)}.stw .it{padding:3px;min-height:0;font-size:10px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.stw .it b{font-size:10.5px;line-height:1.2;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stw .it>.ico{width:auto;height:58%;aspect-ratio:1;margin:0 auto 2px}.stw .it>.ico.em{font-size:24px;height:auto;margin:0 auto 2px}.stw .it .cnt{right:3px;top:3px;font-size:10px}.stpg{display:flex;align-items:center;justify-content:center;gap:10px;min-height:28px;margin-top:6px}.stpg b{font-size:12px;color:#cfc8bc}.stpg button{background:#2a2316;border:1px solid #c9a85c;color:#ffe6a6;border-radius:8px;padding:2px 12px;font-weight:900}.stpg button:disabled{opacity:.3}@media (pointer:coarse) and (max-width:640px){.stw{grid-template-columns:1fr 18px 1fr;gap:4px}.stc{padding:5px}.sth small{display:none}}@media (pointer:coarse) and (max-height:520px){.stsub{display:none}.stw .grid{grid-auto-rows:36px;min-height:156px;gap:4px}.stw .it b{font-size:9px}.stw .it>.ico{height:19px!important;width:19px!important;margin:0 auto 1px}.stw .it .cnt{font-size:8.5px;padding:0 2px}.stc{padding:5px}.sth{margin:0 0 4px;font-size:12px}.stpg{min-height:24px;margin-top:4px}.stpg button{padding:0 10px}}
@media (pointer:coarse) and (max-width:760px),(pointer:coarse) and (max-height:520px){.dgrid{grid-template-columns:1fr}}
.dslot>button{background:#2a2316;border:1px solid #6a5426;color:#ffe6a6;border-radius:7px;padding:3px 9px}

/* 📮 우편 · 🔁 교환 · 🔥 이벤트 배너 */
#bMail{position:relative}#mailN{position:absolute;right:-3px;top:-3px;min-width:16px;height:16px;border-radius:8px;background:#e0302a;color:#fff;font-size:10px;font-style:normal;font-weight:900;line-height:16px;padding:0 3px}#mailN.hide{display:none}
.mrow{background:#1c1b1f;border:1px solid #333;border-radius:10px;padding:8px 10px;margin:6px 0;font-size:13px;cursor:pointer}.mrow.new{border-color:#c9a85c}.mrow small{color:#8a847a}.matt{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:5px}
.mit{display:inline-flex;align-items:center;gap:4px;background:#24242a;border:1px solid #3a3a42;border-radius:7px;padding:2px 6px;font-size:12px}.mit .ico{width:22px;height:22px}.mdel{font-size:11px;margin-top:4px}
.mform{display:grid;gap:7px;font-size:13px}.mform textarea{min-height:60px;background:#1c1b1f;color:#eee;border:1px solid #3a3a42;border-radius:8px;padding:6px}.mform select,.mform input,#tg{background:#1c1b1f;color:#eee;border:1px solid #3a3a42;border-radius:7px;padding:4px 6px}
.mpick{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))!important}.mpick .it{padding:4px;min-height:0;font-size:10px}.mpick .it.on{outline:2px solid #c9a85c;background:#2a2316}.mpick .it>.ico{width:34px;height:34px}
#evb{position:fixed;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 64px);transform:translateX(-50%);z-index:8;background:linear-gradient(90deg,#5a1a08,#a8401a,#5a1a08);border:1px solid #ffb04a;color:#ffe6c0;font-weight:900;border-radius:10px;padding:5px 14px;font-size:13px;white-space:nowrap;box-shadow:0 0 18px rgba(255,120,40,.45)}

/* ☄ 태고 · 🧩 모듈 */
.ancfx{color:#ff5a4a;font-weight:900;text-shadow:0 0 6px rgba(255,60,40,.45)}.modfx{color:#8fd0ff}
.it.anc,.eq.anc,.slot.anc{border-color:#ff3a2a!important;box-shadow:0 0 10px rgba(255,58,42,.45)}
.rrl>div button{background:#2a2316;border:1px solid #6a5426;color:#ffe6a6;border-radius:7px;padding:3px 9px;font-size:12px}

/* 📊 스탯 창(1021) */
#bStat{position:relative}#statN{position:absolute;right:-3px;top:-3px;min-width:16px;height:16px;border-radius:8px;background:#c9a85c;color:#111;font-size:10px;font-style:normal;font-weight:900;line-height:16px;padding:0 3px}
#bStat.pt{animation:stPulse 1.6s ease-in-out infinite}@keyframes stPulse{50%{box-shadow:0 0 0 3px rgba(201,168,92,.55),0 0 14px rgba(201,168,92,.7)}}
.st-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;padding-right:28px}
.st-lv{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(circle at 35% 30%,#3a3324,#141210);border:2px solid #c9a85c;box-shadow:0 0 18px rgba(201,168,92,.35),inset 0 0 10px rgba(0,0,0,.8);flex:none}
.st-lv small{font-size:8px;letter-spacing:2px;color:#c9a85c}.st-lv b{font-size:24px;line-height:1;color:#fff}
.st-title{flex:1;min-width:0}.st-title h2{margin:0}.st-title .sub{margin:2px 0 0}
.st-pt{text-align:center;padding:6px 12px;border-radius:12px;background:#1d1b17;border:1px solid #3a3530;flex:none}.st-pt small{display:block;font-size:10px;color:#9a9388}.st-pt b{font-size:26px;color:#777}
.st-pt.glow{border-color:#c9a85c;box-shadow:0 0 16px rgba(201,168,92,.45)}.st-pt.glow b{color:#ffd76a;text-shadow:0 0 10px rgba(255,200,80,.8)}
.st-list{display:flex;flex-direction:column;gap:6px}
.st-row{display:grid;grid-template-columns:40px 1fr 54px auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 10%,#17161a),#141316 60%);border:1px solid #2b292e;border-left:3px solid var(--c)}
.st-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:20px;background:color-mix(in srgb,var(--c) 22%,#111);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 55%,transparent)}
.st-nm{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.st-nm b{font-size:14px;color:#fff}.st-nm span{font-size:11px;color:#9a9388}
.st-bar{display:flex;gap:2px;margin-top:5px}.st-bar i{flex:1;height:7px;border-radius:2px;background:#26242a}
.st-bar i.on{background:var(--c);box-shadow:0 0 6px color-mix(in srgb,var(--c) 60%,transparent)}.st-bar i.new{background:#fff;animation:stNew .9s ease-in-out infinite}@keyframes stNew{50%{background:var(--c)}}
.st-val{text-align:right}.st-val b{font-size:20px;color:#fff}.st-val small{color:#6d6860;font-size:11px}
.st-btn{display:flex;gap:4px}.st-btn button{width:32px;height:32px;border-radius:8px;border:1px solid #4a443a;background:#221f1a;color:#c9a85c;font-size:18px;font-weight:900;cursor:pointer}
.st-btn button[data-p]:not(:disabled){background:linear-gradient(#3b3220,#2a2416);border-color:#c9a85c;color:#ffd76a}.st-btn button:disabled{opacity:.25;cursor:default}
.st-sum{display:flex;flex-wrap:wrap;gap:4px 12px;margin:12px 0 4px;padding:9px 11px;border-radius:10px;background:#0f0e10;border:1px solid #26242a;font-size:11px;color:#8d877d}.st-sum b{color:#e8dcc0}
.st-acts{display:flex;gap:8px;align-items:center;margin-top:10px}.st-acts .btn:disabled{opacity:.35}.st-rs.warn{background:#5a1a16!important;border-color:#e0302a!important;color:#fff!important}
@media (pointer:coarse) and (max-width:520px){.st-row{grid-template-columns:34px 1fr 40px auto;gap:7px;padding:7px 8px}.st-ic{width:32px;height:32px;font-size:17px}.st-nm span{display:none}.st-btn button{width:30px;height:30px}.st-lv{width:50px;height:50px}.st-lv b{font-size:19px}.st-title .sub{display:none}}
.st-acts{position:sticky;bottom:-18px;background:#141316;padding:8px 0 4px;z-index:2}
@media (pointer:coarse) and (max-height:520px){.st-head{margin-bottom:6px}.st-lv{width:42px;height:42px}.st-lv b{font-size:17px}.st-lv small{font-size:6px}.st-title .sub{display:none}.st-pt{padding:2px 10px}.st-pt b{font-size:19px}
.st-list{display:grid;grid-template-columns:1fr 1fr;gap:5px}.st-row{grid-template-columns:28px 1fr 34px auto;gap:6px;padding:4px 7px}.st-ic{width:28px;height:28px;font-size:15px;border-radius:7px}.st-nm span{display:none}.st-nm b{font-size:12px}.st-bar{margin-top:3px}.st-bar i{height:5px}.st-val b{font-size:15px}.st-val small{font-size:9px}.st-btn button{width:28px;height:28px;font-size:15px}.st-sum{display:none}.st-acts{bottom:-12px;margin-top:6px}}

/* 💎 보석(1021) */
.ico.gem{display:inline-grid;place-items:center;width:26px;height:26px;vertical-align:middle;flex:none}
.ico.gem i{width:58%;height:58%;transform:rotate(45deg);border-radius:3px;background:linear-gradient(135deg,rgba(255,255,255,.95) 0%,var(--gc) 32%,color-mix(in srgb,var(--gc) 60%,#000) 100%);box-shadow:0 0 6px var(--gc),inset -2px -2px 3px rgba(0,0,0,.35),inset 2px 2px 2px rgba(255,255,255,.5)}
.ico.gem.t1 i{width:44%;height:44%;opacity:.85;box-shadow:0 0 3px var(--gc)}.ico.gem.t3 i{width:66%;height:66%;box-shadow:0 0 12px var(--gc),0 0 3px #fff,inset -2px -2px 3px rgba(0,0,0,.35),inset 2px 2px 2px rgba(255,255,255,.6);animation:gemTw 1.8s ease-in-out infinite}
@keyframes gemTw{50%{filter:brightness(1.35)}}
.gemfx{color:#e8dcc0}.gemfx .ico.gem{width:18px;height:18px}
.gemtbl{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gemtbl>div{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:9px;background:#18171b;border:1px solid #2c2b30}.gemtbl span{display:flex;flex-direction:column;min-width:0}.gemtbl small{color:#9a9388;font-size:11px}
.st-gem{display:block;font-style:normal;font-size:10px;color:#9fe8ff;line-height:1}
@media (pointer:coarse) and (max-width:520px){.gemtbl{grid-template-columns:1fr}}
/* 📜 1104 룬워드 표 */
.rwt{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rwr{display:flex;flex-direction:column;gap:3px;padding:7px 9px;border-radius:9px;background:#18171b;border:1px solid #2c2b30}.rwr>b{font-size:13px;color:#e8e2d4}.rwr>span{display:flex;flex-wrap:wrap;align-items:center;gap:3px;font-size:11px;color:#6f6a62}.rwr>span small{font-size:11px}.rwr>small{font-size:11px;line-height:1.35}.rwr.on{border-color:#ffcf4a;background:#231f12;box-shadow:0 0 0 1px #ffcf4a55 inset}.rwr.on>b{color:#ffcf4a}.rwr.dim{opacity:.55}
@media (pointer:coarse) and (max-width:520px){.rwt{grid-template-columns:1fr}}

.ico.gem.t4{position:relative}.ico.gem.t4 i{width:70%;height:70%;box-shadow:0 0 14px var(--gc),0 0 0 2px #ffcf4a,0 0 12px #ffcf4a,inset -2px -2px 3px rgba(0,0,0,.35),inset 2px 2px 2px rgba(255,255,255,.7);animation:gemTw 1.2s ease-in-out infinite}
.ico.gem.t4::after{content:'✦';position:absolute;right:-3px;top:-5px;font-size:10px;color:#ffe9a0;text-shadow:0 0 6px #ffcf4a;font-style:normal}

/* 💎 영롱(1021) — 빛이 쓸고 지나감 + 안쪽 면 */
.ico.gem i{position:relative;overflow:hidden}
.ico.gem i::before{content:'';position:absolute;inset:22%;background:linear-gradient(135deg,rgba(255,255,255,.75),rgba(255,255,255,0) 70%);border-radius:2px}
.ico.gem i::after{content:'';position:absolute;inset:-50%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.95) 50%,transparent 58%);animation:gemSh 2.8s ease-in-out infinite}
.ico.gem.t3 i::after,.ico.gem.t4 i::after{animation-duration:1.9s}
@keyframes gemSh{0%{transform:translate(-70%,-70%)}45%,100%{transform:translate(70%,70%)}}

/* 🗄 캐비닛 안(1021) — 사물함 틈새로 보는 느낌 */
#hidev{position:fixed;inset:0;z-index:1;pointer-events:none}
#hidev .hv-slats{position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(8,9,10,.96) 0 34px,rgba(8,9,10,.55) 34px 46px,rgba(8,9,10,.96) 46px 52px);box-shadow:inset 0 0 160px 60px #000}
#hidev .hv-t{position:absolute;left:50%;bottom:18%;transform:translateX(-50%);padding:8px 16px;border-radius:10px;background:rgba(0,0,0,.6);border:1px solid #3a3530;color:#e8dcc0;font-size:14px;white-space:nowrap}
#hidev .hv-t b{color:#c9a85c}
/* 🏠 기지 화면 배치(1021 유저: 아래 버튼이 길을 가림) — 버튼 = 왼쪽 세로 · 무기 창·접속 창 작게 */
body.basev #online{left:max(12px,env(safe-area-inset-left))!important;bottom:auto!important;width:auto;min-width:150px;max-width:260px;padding:7px 12px;font-size:14px;transition:top .2s}body.basev #online .wr{display:none}body.basev #online .wh{margin:0;font-size:15px}body.basev #online .wh .wt::after{content:' ▾ 누르면 펼침';color:#8a847a;font-size:11px;font-weight:600}body.basev #online.bopen .wh .wt::after{content:' ▴ 접기'}body.basev #online.bopen{width:260px;max-height:46vh;overflow:auto}body.basev #online.bopen .wr{display:block;padding:5px 0 6px}body.basev #online.bopen .wr small{display:block;font-size:12px}body.basev #bbar{transition:top .2s}@media (pointer:coarse) and (max-height:520px){body.basev #online{min-width:0;max-width:190px;font-size:12px;padding:5px 9px}body.basev #online .wh{font-size:13px}body.basev #online.bopen{width:190px;max-height:52vh}body.basev #online.bopen .wr small{font-size:10.5px}}   /* 🏠 1022: 체력 바 아래 왼쪽 끝 · 눌러 펼침 · 메뉴는 layLeft()가 그 아래로 */
body.basev #bbar{left:max(12px,env(safe-area-inset-left));top:calc(max(10px,env(safe-area-inset-top)) + 156px);bottom:auto;transform:none;flex-direction:column;flex-wrap:wrap;align-content:flex-start;max-height:calc(100vh - 176px);gap:5px;padding:5px}
   /* 1021 PC 기지 화면: 왼쪽 세로 메뉴가 접속자 목록 덮던 것 → 메뉴 오른쪽으로 */
body.basev #bbar button{min-width:0;width:64px;padding:4px 3px 3px}body.basev #bbar i{font-size:17px}body.basev #bbar b{font-size:11px;white-space:nowrap}body.basev #bbar small{font-size:9.5px;min-height:0}
body.basev #mmap{display:none!important}   /* 🏠 기지 화면 = 미니맵 X(1021 유저 · PC·폰) */
body.basev:not(.touch) #bwpn{top:calc(max(10px,env(safe-area-inset-top)) + 44px)!important;width:352px!important;padding:12px!important;font-size:16px!important;max-height:calc(100vh - 140px)!important}body.basev:not(.touch) #bwpn .ico{width:44px!important;height:44px!important}body.basev:not(.touch) #bwpn button{padding:7px 10px!important;margin:5px 0!important;gap:10px!important}body.basev:not(.touch) #bwpn small{font-size:13px!important}body.basev:not(.touch) #bwpn .bt{font-size:17px}   /* 🖥 기지에서 쓸 무기 2배(미니맵 자리 · 오른쪽 메뉴 왼쪽) */
body.basev #bwpn{width:176px;padding:6px;font-size:11px;max-height:40vh}body.basev #bwpn .ico{width:22px;height:22px}body.basev #bwpn button{padding:3px 5px;margin:2px 0}body.basev #bwpn small{font-size:10px}
@media (pointer:coarse) and (max-height:520px){body.basev #bbar{top:calc(max(8px,env(safe-area-inset-top)) + 96px);max-height:calc(100vh - 110px)}body.basev #bbar button{width:54px}body.basev #bbar small{display:none}body.basev #bwpn{width:150px;max-height:32vh}body.basev #online{top:calc(max(8px,env(safe-area-inset-top)) + 62px);bottom:auto}}

/* 💤 다시 왔어요(1021) */
#wbk{position:fixed;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 74px);transform:translateX(-50%);z-index:9;max-width:min(560px,92vw);background:rgba(14,12,11,.92);border:1px solid #c9a85c;border-radius:12px;padding:9px 14px;font-size:13px;color:#e8e2d4;box-shadow:0 6px 24px rgba(0,0,0,.5);cursor:pointer;animation:wbIn .35s ease-out;transition:opacity .6s}
#wbk>b{color:#ffe2a0}#wbk small{color:#9a9388}#wbk div{margin-top:4px;line-height:1.6}#wbk .g{color:#ffd23a}#wbk .bad{color:#ff7a6a}#wbk .tip{color:#9fe0a0;font-size:12px}#wbk.out{opacity:0}
@keyframes wbIn{from{opacity:0;transform:translate(-50%,-8px)}}
/* 📱 모바일 배치(1021 유저): 무기 3칸 = 가운데 아래 · 접속자 목록 = 레벨·체력 아래에 작게(이름·Lv·체력 바만) */
body.touch #slots{z-index:8;pointer-events:auto;top:auto;bottom:calc(max(6px,env(safe-area-inset-bottom)) + 16px);left:50%;transform:translateX(-50%) scale(.86);transform-origin:50% 100%}
@media (pointer:coarse) and (max-height:520px){
  #online{top:calc(max(8px,env(safe-area-inset-top)) + 58px);bottom:auto;left:max(10px,env(safe-area-inset-left));width:112px;padding:3px 6px;font-size:9.5px;line-height:1.25;background:rgba(10,10,12,.45)}
  #online .wh{font-size:9.5px;margin-bottom:1px}#online .wr{padding:1px 0 2px}#online .wr small{display:none}#online .wr i{height:2px;margin:1px 0 0}#online .lv{font-size:8px;padding:0 2px}#online .dv{font-size:7px;padding:0 2px;margin-left:3px}
}
@media (pointer:coarse) and (max-height:520px) and (max-width:800px){#sidebtn{gap:3px}#sidebtn button{width:32px;height:32px;font-size:15px}#mmap{width:88px;height:88px}#bars,#me .bar{max-width:28vw}}   /* 좁은 폰: 위 버튼 줄·미니맵 작게(체력 바·점프와 겹침) */

/* 🖥 PC 작은 창 = UI 비율 축소(1021) */
body:not(.touch) :is(#bHome,#lane,#me,#money,#ping,#sidebtn,#slots,#prompt,#warn,#boss,#toast,#center,#bCam,#lockhint,#chat,#mmap,#online,#bhud,#bwpn,#bbar,#wbk,#gotbox,.pbox,#hidev .hv-t){zoom:calc(var(--uiz,1) * var(--bz,1))}

/* 🏠 광장 = 내 기지 바로 가기(1021 유저) — PC 오른쪽 아래 구석 · 폰은 공격 버튼 자리(광장은 안전 지대라 공격 숨김) */
#bHome{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:8;display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:14px;background:linear-gradient(#3b3220,#231d13);border:2px solid #c9a85c;color:#ffe6a6;font-weight:900;font-size:15px;box-shadow:0 4px 18px rgba(0,0,0,.5),0 0 14px rgba(201,168,92,.35);cursor:pointer}
#bHome span{font-size:20px}#bHome:active{transform:scale(.96)}
/* (1022 밤 제거: 쉼터에서도 공격 버튼) */   /* 🎯 사격장 안 = 공격 버튼 다시 */
body.touch #bHome{right:calc(max(18px,env(safe-area-inset-right)) + 10px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 24px);width:96px;height:96px;border-radius:50%;flex-direction:column;justify-content:center;padding:0;gap:0;font-size:12px}
body.touch #bHome span{font-size:30px;line-height:1}

/* 📖 도움말(1021) */
.hl-tabs{display:flex;gap:5px;overflow-x:auto;padding-bottom:6px;margin-bottom:6px;scrollbar-width:thin}
.hl-tabs button{flex:none;padding:6px 10px;border-radius:9px;border:1px solid #3a3530;background:#1c1a17;color:#d8d0c0;font-weight:800;font-size:12.5px;white-space:nowrap}
.hl-tabs button.on{background:linear-gradient(#3b3220,#2a2416);border-color:#c9a85c;color:#ffe6a6}
.hl-s{width:100%;box-sizing:border-box;padding:7px 10px;border-radius:9px;border:1px solid #3a3530;background:#0f0e0d;color:#eee;margin-bottom:8px;font-size:13px}
.hl-b{max-height:58vh;overflow:auto}.hl-b h4{margin:12px 0 6px;color:#e8d39c;font-size:14px}
.hl-g{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.hl-c{background:#18171b;border:1px solid #2c2b30;border-radius:10px;padding:8px 10px}.hl-c b{color:#e8d39c;font-size:13px}.hl-c p{margin:3px 0 0;font-size:12.5px;color:#cfc7b8;line-height:1.5}
.hl-tw{overflow-x:auto}.hl-t{width:100%;border-collapse:collapse;font-size:12.5px}.hl-t th{position:sticky;top:0;background:#1d1a16;color:#c9a85c;text-align:left;padding:6px;white-space:nowrap}.hl-t td{padding:5px 6px;border-top:1px solid #26232a;color:#ddd5c5;vertical-align:middle}.hl-t td b{color:#fff}.hl-t .ico.gem{width:22px;height:22px}
.hl-n{font-size:12px;color:#9a9388;line-height:1.6;margin:6px 0}
#panel .pbox:has(.hl-tabs){width:min(860px,96vw)}
@media (pointer:coarse) and (max-width:560px),(pointer:coarse) and (max-height:520px){.hl-g{grid-template-columns:1fr}.hl-b{max-height:52vh}.hl-t{font-size:11.5px}}

/* 📨 레이드 초대 카드(1021) — 창(#panel z20) 위 */
#invc{position:fixed;left:50%;top:12%;transform:translateX(-50%);z-index:46;background:#1a1712;border:2px solid #c9a85c;border-radius:14px;padding:14px 18px;color:#eee;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.6);min-width:280px}#invc .ih{font-size:13px;color:#c9a85c;font-weight:800}#invc .it2{font-size:17px;font-weight:900;margin:6px 0}#invc .it2 b{color:#ffd23a}#invc .is{font-size:13px;color:#bdb6a8;margin-bottom:10px}#invc .ib{display:flex;gap:8px;justify-content:center}#invc .ib .btn{min-width:96px}
/* 🖥 PC 하단 무기 칸(1021 유저: 세로 더 넓게 · 글씨 작게 · 이름이 내구도 막대와 겹침) — 그림 42px 줄 + 이름 한 줄 + 막대 */
body:not(.touch) .slot{width:86px;height:76px;padding-top:3px;font-size:10px;line-height:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body:not(.touch) .slot .ic{height:44px;line-height:44px;font-size:22px}
body:not(.touch) .slot .du{bottom:4px}

body.bigscr.basev :is(#bbar,#bhud,#online){--bz:1.4}body.bigscr.basev:not(.touch) #bwpn{--bz:1.3;right:calc(max(12px,env(safe-area-inset-right)) + 62px)!important}   /* 🖥 QHD 기지 화면 UI 키움(1021 유저: 전체적으로 작음) */
#zleft{position:fixed;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 64px);transform:translateX(-50%);z-index:6;background:rgba(14,12,11,.8);border:1px solid #6a2a20;color:#ffb0a0;font-weight:800;font-size:13px;padding:4px 12px;border-radius:99px;pointer-events:none}#zleft.ok{border-color:#5f9a5f;color:#9fe0a0}   /* 🧟 남은 좀비 */
#bGive{position:fixed;left:calc(50% + 150px);top:calc(max(10px,env(safe-area-inset-top)) + 62px);z-index:7;background:rgba(40,16,12,.85);border:1px solid #8a3a2a;color:#ffb0a0;font-weight:800;font-size:12px;padding:4px 10px;border-radius:99px}   /* 🏳 토벌 포기 */
@media (pointer:coarse) and (max-height:520px){#bGive{left:auto;right:calc(max(10px,env(safe-area-inset-right)) + 120px);top:calc(max(8px,env(safe-area-inset-top)) + 50px)}}
/* ⬆ 강화 연출(1021) */
.enhfx{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;gap:6px}
.enhfx b{font-size:46px;font-weight:900;letter-spacing:-.03em}.enhfx small{font-size:15px;font-weight:700;color:#e8e2d4;text-shadow:0 2px 6px #000}
.enhfx.ok{background:radial-gradient(circle at 50% 50%,rgba(255,200,60,.38),rgba(255,200,60,0) 45%);animation:enhIn 1.5s ease-out forwards}.enhfx.ok b{color:#ffe7a0;text-shadow:0 0 18px #ffb000,0 0 44px #ff8a00}
.enhfx.up{background:radial-gradient(circle at 50% 50%,rgba(255,240,180,.55),rgba(160,80,255,.25) 35%,rgba(0,0,0,0) 60%);animation:enhIn 2.6s ease-out forwards}.enhfx.up b{font-size:60px;background:linear-gradient(90deg,#ff5a5a,#ffd23a,#5aff8a,#5ab4ff,#c05aff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 16px rgba(255,220,120,.9))}
.enhfx.bad{background:radial-gradient(circle at 50% 50%,rgba(200,20,10,.42),rgba(0,0,0,0) 50%);animation:enhBad 1.5s ease-out forwards}.enhfx.bad b{color:#ff8a80;text-shadow:0 0 14px #c00,0 2px 0 #300}
@keyframes enhIn{0%{opacity:0;transform:scale(.4)}18%{opacity:1;transform:scale(1.18)}30%{transform:scale(1)}75%{opacity:1}100%{opacity:0}}
@keyframes enhBad{0%{opacity:0}10%{opacity:1}20%{opacity:.6}30%{opacity:1}80%{opacity:1}100%{opacity:0}}
#panel .pbox.shake{animation:pShake .45s}@keyframes pShake{0%,100%{translate:0}15%{translate:-12px}30%{translate:10px}45%{translate:-8px}60%{translate:6px}80%{translate:-3px}}
/* 💰 몇 개만 팔기(1021) */
.sellq{display:inline-flex;gap:4px;align-items:center}.sellq input{width:58px;padding:6px 4px;border-radius:6px;border:1px solid #5a4a2a;background:#14110c;color:#ffe9b0;font:inherit;font-weight:800;text-align:center}

/* 🛒 사기 확인 창(1021) */
#buyask{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center}
#buyask .ba{background:#17140f;border:1px solid #c9a85c;border-radius:14px;padding:18px 22px;min-width:260px;max-width:90vw;text-align:center;color:#eee;box-shadow:0 10px 40px rgba(0,0,0,.6)}
#buyask .ba>b{display:block;font-size:17px;margin-top:6px}#buyask .bap{font-size:28px;font-weight:900;color:#ffd23a;margin:6px 0}#buyask small{color:#aaa}
#buyask .acts{display:flex;gap:8px;justify-content:center;margin-top:14px}#buyask .acts button{min-width:90px;padding:10px 14px;font-size:15px}

/* 🔸 탄약 배지(1022) — 무기 카드·가방·장비·제작·획득 알림 */
.amt{display:inline-block;margin:2px 0;padding:1px 7px;border-radius:999px;border:1px solid var(--c);color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);font-size:11px;font-weight:800;line-height:1.5;white-space:nowrap}.amt i{font-style:normal;font-weight:600;opacity:.8}.it .amt{display:block;width:max-content;max-width:100%;margin:2px auto;border-radius:9px}.it .amt i{display:block;font-size:10px}.got .amt{display:block;width:max-content}
/* ⬆ 방어 무기 강화(1022) */
.dlv{display:inline-block;margin-left:4px;padding:0 7px;border-radius:99px;border:1.5px solid var(--c);color:var(--c);font-size:11px;font-weight:900;vertical-align:1px}
.dslot .dup{display:block;width:100%;margin:5px 0 3px;padding:6px 8px;border-radius:9px;border:1px solid #4a4030;background:#1d1a14;color:#cfc8bc;font-size:12px;font-weight:800;text-align:left}
.dslot button.dup.ok{border-color:#c9a85c;background:#2a2316;color:#ffe6a6}.dslot button.dup:disabled{opacity:.5}
.dslot .dup.on{border-color:#5aa8ff;color:#bcdcff;background:#141c28}.dslot .dup.max{border-color:#ffc94a;color:#ffd76a}.dslot .dup.lk{color:#8a847a}.dslot .dup small{font-weight:600;color:#8a847a}

/* 🎒 1022 장비 칸 같은 폭 · 핵심만 · 누르면 설명(유저: 총 칸이 커서 마체테가 좁아 보임) */
.eqg,.invL .eqg{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.eq{min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:2px;cursor:pointer;min-height:92px}.eq.on{outline:2px solid #c9a85c}.eq:has(.mini){padding-bottom:7px}
.eq .eqh{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.eq .eqh .ico{width:36px;height:36px;margin:0}.eq .eqh .ico.em{font-size:24px}
.eq .eqam{font-size:10.5px;font-weight:800;color:#ffb27a;white-space:nowrap}
.eq .eqn{font-size:12px;line-height:1.25;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}
.eq .eqm{font-size:11.5px;color:#a8a194;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eq .eqm b{display:inline;margin:0;color:#7fe08a;font-size:13px}
.eq .eqf{margin-top:auto;display:flex;align-items:center;gap:5px;font-size:10.5px;color:#9a948a;min-height:12px}.eq .eqgm{color:#8ad0ff;letter-spacing:1px}.eq .eqx{color:#c9a85c;font-weight:800}
.eq .eqd{flex:1;height:3px;border-radius:2px;background:linear-gradient(90deg,#5fd17a var(--d),#3a3632 var(--d));min-width:16px}
.eq .mini{position:static;align-self:flex-end;margin-top:4px}
.eqdet{margin-top:2px;font-size:12px}.eqdet>div{margin-top:4px;color:#cfc8bc;line-height:1.55}
@media (pointer:coarse) and (max-width:560px),(pointer:coarse) and (max-height:520px){.eq{min-height:74px;padding:5px}.eq .eqh .ico{width:26px;height:26px}.eq .eqn{font-size:10.5px}.eq .eqm{font-size:10px}.eq .eqm b{font-size:11px}.eq .eqam{font-size:9.5px}}

/* ⭐ 1022 경험치·레벨업(CSS 애니메이션만 · 요소 재사용) */
#lvring{position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(#ffd76a var(--p,0%),#ffffff1a 0);-webkit-mask:radial-gradient(circle,transparent 60%,#000 62%);mask:radial-gradient(circle,transparent 60%,#000 62%)}#lvn{position:relative}
.bar.xp.near{box-shadow:0 0 6px #ffc94a88}.bar.xp.gain i{animation:xpg .5s ease-out}@keyframes xpg{0%{filter:brightness(1.8)}100%{filter:none}}
#xpop{position:absolute;left:calc(100% + 6px);bottom:0;font-size:12px;font-weight:900;color:#ffe08a;text-shadow:0 1px 3px #000;white-space:nowrap}#xpop div{animation:gp 1.1s ease-out forwards}.bars{position:relative}
#lvb.flash{animation:lvf .9s ease-out}@keyframes lvf{0%{transform:scale(1);box-shadow:0 0 0 #ffd76a}30%{transform:scale(1.35);box-shadow:0 0 22px #ffd76a}100%{transform:scale(1);box-shadow:0 0 0 #ffd76a00}}
#lvbn{position:fixed;left:max(62px,calc(env(safe-area-inset-left) + 62px));top:calc(max(10px,env(safe-area-inset-top)) + 62px);pointer-events:none;padding:4px 12px 4px 10px;border-radius:0 99px 99px 0;background:linear-gradient(90deg,#2a2316ee,#2a231600);border-left:3px solid #ffd76a;transform-origin:left center;z-index:30}
#lvbn b{display:block;font-size:15px;font-weight:900;color:#ffe08a}#lvbn b em{font-style:normal;font-size:19px;color:#fff}#lvbn small{font-size:10.5px;color:#e8d39c}
#lvbn.go{animation:lvbn 1.7s ease-out forwards}@keyframes lvbn{0%{transform:scaleX(0);opacity:0}12%{transform:scaleX(1);opacity:1}75%{opacity:1}100%{opacity:0}}
#lvbig{position:fixed;left:50%;top:34%;transform:translate(-50%,-50%);pointer-events:none;text-align:center;z-index:30}
#lvbig .rays{position:absolute;left:50%;top:50%;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;background:repeating-conic-gradient(#ffd76a2e 0 6deg,transparent 6deg 18deg);-webkit-mask:radial-gradient(circle,#000 18%,transparent 68%);mask:radial-gradient(circle,#000 18%,transparent 68%);animation:lvr 2.3s linear forwards}
#lvbig small{position:relative;display:block;font-size:13px;letter-spacing:6px;color:#e8d39c;font-weight:900}#lvbig b{position:relative;display:block;font-size:60px;line-height:1;font-weight:900;color:#ffd76a;text-shadow:0 3px 0 #5a3a00,0 0 16px #ffb40099}
#lvbig em{position:relative;display:inline-block;margin-top:6px;font-style:normal;font-size:12px;padding:2px 12px;border-radius:99px;border:1px solid #c9a85c;color:#ffe6a6;background:#2a2316cc}
#lvbig.go{animation:lvbig 2.3s cubic-bezier(.2,1.6,.4,1) forwards}@keyframes lvbig{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}12%{transform:translate(-50%,-50%) scale(1.06);opacity:1}22%{transform:translate(-50%,-50%) scale(1)}78%{opacity:1}100%{transform:translate(-50%,-60%);opacity:0}}
@keyframes lvr{0%{transform:rotate(0);opacity:0}15%{opacity:1}80%{opacity:1}100%{transform:rotate(90deg);opacity:0}}
body.touch #lvbig .rays{display:none}   /* 폰 = 햇살 생략(가벼움) */
@media (pointer:coarse) and (max-width:700px),(pointer:coarse) and (max-height:520px){.bar.xp span{font-size:9.5px}#lvbig b{font-size:44px}}

/* ⚙ 설정 · 👥 친구 정보(1022) */
.setl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.setl button{display:grid;grid-template-columns:34px 1fr;align-items:center;text-align:left;gap:2px 8px;padding:10px 12px;border-radius:12px;border:1px solid #3a3226;background:#1a1712;color:#ece4d2}.setl button i{grid-row:span 2;font-style:normal;font-size:22px}.setl button b{font-size:13.5px}.setl button small{color:#8f877a;font-size:11px}.setl button:hover{border-color:#c9a85c}
.frl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:10px}.frt{padding:8px 4px;border-radius:10px;border:1px solid #3a3226;background:#1a1712;color:#ece4d2;text-align:center}.frt.on{border-color:#c9a85c;background:#2a2316}.frt b{display:block;font-size:13px}.frt small{font-size:10.5px;color:#8f877a}.frt small i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#555;margin-right:4px}.frt small i.onl{background:#5fd17a}
.frh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 14px;margin:2px 0 10px}.frh b{font-size:17px}.lvp{display:inline-block;padding:0 8px;border-radius:99px;border:1px solid #c9a85c;color:#ffe08a;font-weight:900;font-size:12px}.frk{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:#a8a194}.frk b{color:#ece4d2}
.frg{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}.frbox{background:#151311;border:1px solid #2b2620;border-radius:12px;padding:10px}.frbox h4{margin:2px 0 8px;font-size:13px;color:#c9a85c}.frk2{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:12px;color:#a8a194;margin-bottom:8px}.frk2 b{color:#ece4d2}.frk2 small{color:#8f877a}
.frs{display:grid;grid-template-columns:78px 1fr 26px;align-items:center;gap:6px;font-size:11.5px;color:#cfc8bc;margin:3px 0}.frs i{display:block;height:6px;border-radius:3px;background:#2a2622;overflow:hidden}.frs i b{display:block;height:100%}.frs em{font-style:normal;text-align:right;color:#ece4d2;font-weight:800}
@media (pointer:coarse) and (max-width:760px),(pointer:coarse) and (max-height:520px){.frl{grid-template-columns:repeat(3,minmax(0,1fr))}.frg{grid-template-columns:1fr}.setl{grid-template-columns:1fr 1fr}}

#bSnd{display:none!important}   /* 🔊 1022 유저: 소리는 ⚙ 설정 안에서만 */
body:not(.touch) #bChat,body:not(.touch) #bLight{display:none!important}   /* 🖥 1022 유저: PC 는 채팅(Enter)·손전등(F) 키로 — 아이콘 숨김 · 폰은 그대로 */
#bHelp{display:none!important}   /* ❓ 1022 유저: 조작 안내는 ⚙ 설정 안으로 */
.reph{grid-column:1/-1;font-weight:900;color:#e8d39c;margin:6px 0 0;font-size:13.5px}.reph small{color:#8f877a;font-weight:600}.grid>.sub{grid-column:1/-1}   /* 🔨 1022 수리 = 착용 중 / 가방 나눔 */
/* 📐 UI 정리 1022 */
/* 알림 줄(#lane): 위 가운데 한 줄로 차례차례 — 보스 체력 → 2배 이벤트 → 경고 → 레벨업 띠 → 알림들 → 큰 글자 → 초대 카드 (서로 안 겹침) */
#lane{position:fixed;left:50%;top:max(8px,env(safe-area-inset-top));transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;width:max-content;max-width:min(560px,calc(100vw - 560px));min-width:min(280px,calc(100vw - 560px));pointer-events:none;z-index:45}
#lane>*{max-width:100%;box-sizing:border-box}
#lane #boss{position:relative;left:auto;top:auto;transform:none;width:min(480px,100%)}
#lane #evb{position:relative;left:auto;top:auto;transform:none}
#lane #warn{position:relative;left:auto;top:auto;transform:none;white-space:normal;text-align:center;width:auto}
#lane #lvbn{position:relative;left:auto;top:auto;border-radius:99px;border:1px solid #ffd76a;background:#2a2316e6;padding:4px 14px;text-align:center;transform-origin:center}
#lane #lvbn b{display:inline}#lane #lvbn small{margin-left:8px}
#lane #toast{position:relative;left:auto;top:auto;transform:none;display:flex;flex-direction:column;align-items:center}#lane #toast div{margin-top:0}#lane #toast div+div{margin-top:4px}
#lane #toast div:nth-last-child(n+3){display:none}   /* 알림은 최근 2개만(쌓여서 화면 덮지 않게) */
#lane #center{position:relative;left:auto;top:auto;transform:none;font-size:24px;line-height:1.25}
#lane #invc{position:relative;left:auto;top:auto;transform:none;pointer-events:auto;min-width:0}
#gpop{right:calc(100% + 8px);top:2px}   /* +G = 돈 왼쪽(아래 fps 글자와 겹치던 것) */
#lockhint{top:auto!important;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 128px)}   /* 마우스 안내 = 아래쪽(보스 체력·알림 자리 비움) */
#prompt{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 84px)}
#downui{top:46%}
body:not(.touch) #bCam{top:calc(max(10px,env(safe-area-inset-top)) + 232px);right:calc(max(12px,env(safe-area-inset-right)) + 56px)}   /* 🎥 = 미니맵 아래(오른쪽 버튼 줄이 길어져 겹치던 것) */
body.basev #bhud{max-width:calc(100vw - 2 * 214px)}   /* 기지 정보 = 접속자 목록·오른쪽 무기 창 사이 */
body.bigscr #lane{--bz:1.4;max-width:min(560px,calc(71vw - 560px))}
/* 📱 터치(태블릿 포함): 오른쪽 버튼 = 위 가로 줄(세로 줄이 점프 버튼과 겹치던 것) */
body.touch #sidebtn{flex-direction:row;top:max(8px,env(safe-area-inset-top));right:calc(max(12px,env(safe-area-inset-right)) + 92px)}
/* 📱 폰(가로): 알림 줄 = 왼쪽(접속자) ~ 오른쪽(조준·점프 버튼) 사이 · 위 버튼 줄·체력 바 아래 */
@media (pointer:coarse) and (max-height:520px){
  #lane{left:max(128px,calc(env(safe-area-inset-left) + 118px));right:max(212px,calc(env(safe-area-inset-right) + 200px));transform:none;top:calc(max(8px,env(safe-area-inset-top)) + 78px);width:auto;max-width:none;min-width:0;gap:4px}
  #lane #center{font-size:17px}#lane #warn{font-size:12px;padding:5px 10px}#lane #toast div{font-size:12px;padding:5px 10px}#lane #boss .bn{font-size:12px}#lane #evb{font-size:11px;padding:3px 10px;white-space:normal;text-align:center}#lane #invc{padding:10px 12px;font-size:12px}
  body.touch #prompt{top:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 70px);font-size:12px;max-width:calc(100vw - 2 * 300px)}
  body.touch #chat{left:max(10px,env(safe-area-inset-left));transform:none;width:114px;top:calc(max(8px,env(safe-area-inset-top)) + 150px)}
  body.touch #chat #chatlog div{font-size:10.5px}
  body.basev #bhud{max-width:calc(100vw - 2 * 132px)}
}
@media (pointer:coarse) and (max-height:520px) and (max-width:720px){body.touch #slots{left:43%}}   /* 좁은 폰: 무기 칸이 회복 버튼과 겹치던 것 */
/* 큰 레벨업도 알림 줄 안(1022) — 줄 안에선 가운데 이동 대신 크기만 */
#lane #lvbig{position:relative;left:auto;top:auto;transform:none}#lane #lvbig.go{animation:lvbig2 2.3s cubic-bezier(.2,1.6,.4,1) forwards}
@keyframes lvbig2{0%{transform:scale(.4);opacity:0}12%{transform:scale(1.06);opacity:1}22%{transform:scale(1)}78%{opacity:1}100%{transform:translateY(-10px);opacity:0}}
body.touch #chat{overflow:hidden}
body.basev:not(.touch) #bhud{max-width:max(300px,calc(100vw - 840px))}   /* PC 기지: 오른쪽 무기 창(352px)과 안 겹치게 */
@media (pointer:coarse) and (max-height:520px){body.basev #online{font-size:11px;max-width:140px;min-width:0;padding:4px 8px}body.basev #bhud{max-width:calc(100vw - 2 * 160px)}body.basev #lane{left:max(150px,calc(env(safe-area-inset-left) + 140px))}}
body:has(#downui:not(.hide)) #prompt{display:none!important}   /* 쓰러졌을 때 = 행동 안내 숨김(쓰러짐 창과 겹치던 것) */
@media (pointer:coarse) and (max-height:520px){body.basev #lane{left:max(200px,calc(env(safe-area-inset-left) + 190px))}}
/* 📱 태블릿(터치·높이 넉넉): 위 버튼 줄 아래부터 알림 줄 · 채팅은 왼쪽 · 기지 정보 폭 */
@media (pointer:coarse) and (min-height:521px){#lane{top:calc(max(8px,env(safe-area-inset-top)) + 60px)}body.touch #chat{left:max(12px,env(safe-area-inset-left));transform:none;width:220px;top:calc(max(10px,env(safe-area-inset-top)) + 200px)}body.basev #bhud{max-width:calc(100vw - 2 * 284px)}}
@media (pointer:coarse) and (max-height:520px){body.touch #gpop{right:0;top:100%;font-size:12px}body.touch #ping{display:none}}   /* 폰: +G = 돈 바로 아래(위 버튼 줄과 겹치던 것) · fps 글자 숨김 */
@media (pointer:coarse) and (min-height:521px){body.touch #prompt{top:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 96px)}}   /* 태블릿: 행동 안내 = 아래(가운데 큰 글자와 겹치던 것) */
body.touch #gpop{right:0;top:100%;font-size:12px}body.touch #ping{top:calc(max(10px,env(safe-area-inset-top)) + 54px)}   /* 터치(태블릿 포함): +G = 돈 아래 */

/* 👑 보스 등장 연출 — 위아래 검은 띠(CSS만) */
#cine{position:fixed;inset:0;pointer-events:none;z-index:40}#cine i{position:absolute;left:0;right:0;height:0;background:#000;transition:height .5s ease}#cine i:first-child{top:0}#cine i:nth-child(2){bottom:0}#cine.on i{height:11vh}
/* 👑 보스별 등장 막(1022) — 전부 CSS(3D 0) · 투명도·색만 main.js INTRO 표가 바꿈 · blur/backdrop-filter 안 씀(폰) */
#cine i{z-index:3}#cine.k i{transition:none}#cine b{position:absolute;inset:0;opacity:0;pointer-events:none;will-change:opacity}
#cine .ov{background:var(--c,#000)}#cine .vg{background:radial-gradient(ellipse at center,transparent 35%,var(--c,#000) 100%)}
#cine .gl{background:radial-gradient(circle at 50% 50%,#fff 0,#fffbe8 10%,rgba(255,250,225,.55) 22%,transparent 42%);transform:scale(0);will-change:opacity,transform}
#cine .lp{background:radial-gradient(circle at 43% 55%,#fff 0,#fffbe0 1.6%,rgba(255,248,210,.45) 4%,transparent 9%),radial-gradient(circle at 57% 55%,#fff 0,#fffbe0 1.6%,rgba(255,248,210,.45) 4%,transparent 9%)}
#cine .gr{overflow:hidden;background:radial-gradient(ellipse at center,rgba(60,50,30,.15) 40%,rgba(0,0,0,.75))}#cine .gr::before{content:'';position:absolute;inset:-6px 0;background:repeating-linear-gradient(0deg,rgba(255,250,230,.08) 0 1px,transparent 1px 3px),linear-gradient(90deg,transparent 31%,rgba(255,255,255,.12) 31.2%,transparent 31.5%,transparent 72%,rgba(0,0,0,.25) 72.2%,transparent 72.5%);animation:cineGr .18s steps(2) infinite}
@keyframes cineGr{50%{transform:translate(3px,3px)}}
#cine .al::before,#cine .al::after{content:'';position:absolute;left:0;right:0;height:11vh;background:repeating-linear-gradient(-45deg,#d01e1e 0 22px,#1a0606 22px 44px);animation:cineAl .5s steps(1) infinite}#cine .al::before{top:0}#cine .al::after{bottom:0}
@keyframes cineAl{50%{opacity:.35}}
#cine .tx{display:flex;align-items:center;justify-content:center;color:var(--c,#fff);font:900 min(22vh,16vw)/1 'Noto Sans KR',sans-serif;text-shadow:0 0 30px #000,0 0 6px #000;letter-spacing:1px}
#cine .led{inset:auto 0 auto 0;top:14vh;height:7vh;background:#120800;border-top:2px solid #3a2208;border-bottom:2px solid #3a2208;color:var(--c,#ffa63a);font:700 4.4vh/7vh monospace;white-space:nowrap;overflow:hidden;text-shadow:0 0 8px var(--c,#ffa63a)}
#cine .led span{display:inline-block;padding-left:100%;animation:cineLed 2.4s linear infinite}@keyframes cineLed{to{transform:translateX(-100%)}}
body.cine #center[data-tg]::after{content:attr(data-tg);display:block;margin-top:8px;color:#C9A85C;font:italic 700 17px/1.4 'Noto Sans KR',sans-serif;letter-spacing:0;text-shadow:0 2px 6px #000,0 0 2px #000;animation:cineTg .5s}@keyframes cineTg{from{opacity:0}}
body.cine #hud *{visibility:hidden}body.cine #center{visibility:visible;font-size:34px;letter-spacing:2px}
body.cine #mmap,body.cine #bGive{visibility:hidden}

/* 🏠 내 기지 버튼 내구도 % */
#bHomeP{font-style:normal;font-size:12px;font-weight:800;color:#9fe0a8;margin-left:2px;opacity:.95}#bHomeP.mid{color:#ffc94a}#bHomeP.bad{color:#ff6b5e}#bHomeP:empty{display:none}body.touch #bHomeP{font-size:12px;margin:1px 0 0}

/* 👥 친구 메뉴 · 👀 화면 보기 */
#online .wr[data-pid]:not(.me){cursor:pointer}#online .wr[data-pid]:not(.me):hover{background:rgba(201,168,92,.12)}
#frmenu{position:fixed;z-index:60;width:180px;background:#17140f;border:1px solid #c9a85c;border-radius:12px;padding:8px;box-shadow:0 8px 24px #000a;display:flex;flex-direction:column;gap:4px}#frmenu b{color:#ffe6a6;font-size:13px;padding:2px 6px 4px}#frmenu button{text-align:left;background:#221d15;border:1px solid #3a3122;color:#ece4d2;border-radius:8px;padding:8px 10px;font-weight:700;cursor:pointer}#frmenu button:hover{border-color:#c9a85c}
#specbar{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:55;background:#17140fe6;border:1px solid #c9a85c;border-radius:99px;padding:8px 10px 8px 16px;color:#ece4d2;font-weight:700;display:flex;align-items:center;gap:10px;white-space:nowrap}#specbar b{color:#ffe6a6}#specbar button{background:#c9a85c;color:#17140f;border:0;border-radius:99px;padding:6px 14px;font-weight:900;cursor:pointer}
body:has(#specbar) #slots,body:has(#specbar) #bAtk,body:has(#specbar) #bShove,body:has(#specbar) #joyzone,body:has(#specbar) #bHome{visibility:hidden}

/* 👥 지역 열기 조건(같이 소탕) */
.coreq{margin:8px 0;padding:8px 12px;border:1px solid #5a4a26;background:#1d1910;border-radius:10px;font-size:13px;line-height:1.5}.coreq b.ok{color:#7fd88f}.coreq b.no{color:#ff8a7a}.coreq small{color:#a59a86}

/* 🐛 1022 친구 폰(터치 인식 X·좁은 화면): 알림 줄이 64px 로 줄어 글자가 세로로 — 최소 240px · 경고 튀는 효과가 줄 안에서 옆으로 밀리던 것 */
#lane{max-width:clamp(240px,calc(100vw - 420px),560px);min-width:min(240px,calc(100vw - 24px))}
#lane #warn.pop{animation:wpopL .5s ease-out}@keyframes wpopL{0%{transform:scale(1.2)}100%{transform:scale(1)}}
#bGive{white-space:nowrap}

/* 📱 1022 아이폰 채팅 X: body 의 -webkit-user-select:none 이 입력칸까지 물려받으면 아이폰 사파리에선 글자 입력이 안 됨 → 입력칸은 다시 켬 */
input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

/* 🔁 교환 창(1022 유저: PC 작은 화면에서 깨짐 — 창고용 .stw(가운데 26px 칸)를 같이 써서 상대 칸이 26px) → 전용 2칸 · 좁으면 위아래 */
.trw{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;align-items:start}.trw>div{min-width:0}.trw>div+div{border-left:1px solid #2e2b25;padding-left:12px}
@media (pointer:coarse) and (max-width:640px),(pointer:coarse) and (max-height:440px){.trw{grid-template-columns:1fr}.trw>div+div{border-left:0;padding-left:0;border-top:1px solid #2e2b25;padding-top:8px}}
.trw label{display:flex;align-items:center;gap:6px;margin-top:8px}.trw label input{width:120px}
.trw{align-items:stretch}.trw>.trR{contain:size;min-height:240px;overflow:auto}   /* 🔁 1027: 오른쪽(올린 것)은 길어져도 창·가방 격자 안 밀어냄(자기 안에서 스크롤) */
.ttabs{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}.ttabs button{padding:4px 8px;font-size:12px;background:#24211d;border:1px solid #3d352a;color:#e8e2d4;border-radius:8px}.ttabs button.on{border-color:#c9a85c;color:#ffe9b0;background:#2a2316}
.mit .tx{margin-left:4px;padding:0 6px;min-width:0;height:20px;line-height:18px;font-size:11px;border-radius:6px;background:#3a1e1a;border:1px solid #7a3a30;color:#ffb0a0}.tclr{margin-left:6px;padding:2px 8px;font-size:11px;border-radius:6px;background:#24211d;border:1px solid #3d352a;color:#e8e2d4}
.trn{display:flex;align-items:center;gap:4px;margin:4px 0;flex-wrap:wrap;font-size:12px}.trn .ico{width:22px;height:22px}.trn b{margin-right:auto;font-size:12px}.trn span{min-width:70px;text-align:center;color:#ffe6a6;font-weight:800}
.trn button{background:#24242a;border:1px solid #3a3a42;color:#eee;border-radius:6px;padding:3px 7px;font-size:12px;cursor:pointer}.trn button:hover{border-color:#c9a85c}
@media (pointer:coarse) and (max-width:640px),(pointer:coarse) and (max-height:440px){.trw>.trR{min-height:0;height:24vh}.trw>div+div{border-left:0;padding-left:0}.trw .sub{display:none}.trw .mpick{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))!important}.trw .mpick .it>.ico{width:26px;height:26px}}
/* 💎 1022 보석 6단계 모양(SVG) */
.ico.gem2{display:inline-grid;place-items:center;width:26px;height:26px;vertical-align:middle;flex:none}.ico.gem2 svg{width:100%;height:100%;overflow:visible}
.gsv .spk{animation:gspk 1.8s ease-in-out infinite;transform-origin:28px 13px}.gsv.t5{filter:drop-shadow(0 0 3px var(--gc))}.gsv.t6{filter:drop-shadow(0 0 4px #ffcf4a);animation:gleg 2.4s ease-in-out infinite}
@keyframes gspk{0%,100%{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}@keyframes gleg{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.gemfx .ico.gem2{width:18px;height:18px}.gupb{display:flex;gap:4px}.gswl{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.gswl button{display:flex;flex-direction:column;align-items:center;gap:2px;background:#1d1b19;border:1px solid #3a3122;border-radius:8px;padding:4px 6px;color:#e8dcc0;cursor:pointer}.gswl button:hover{border-color:#c9a85c}.gswl small{font-size:10px}
.gupb button{background:#2a2316;border:1px solid #c9a85c;color:#ffe6a6;border-radius:7px;padding:3px 10px;font-weight:800;font-size:12px;cursor:pointer}.gupb button:disabled{background:#1d1b19;border-color:#3a3122;color:#8f877a;cursor:default}

/* 💎 합치기 표(색 × 단계) */
.gtbl{overflow-x:auto;margin:6px 0;flex:none}.gtbl table{border-collapse:collapse;width:100%;min-width:520px;font-size:11.5px}.gtbl th,.gtbl td{border:1px solid #2b2620;padding:4px;text-align:center;vertical-align:middle}.gtbl th{background:#1a1712;color:#e8dcc0}.gtbl th svg{display:block;margin:0 auto 1px}.gtbl th b{display:block;font-size:11.5px}.gtbl th small{display:block;color:#a59a86;font-size:10px;font-weight:600}.gtbl th em{font-style:normal;font-weight:800}.gtbl em.mid{color:#ffc94a}.gtbl em.lo{color:#ff8a7a}.gtbl td:first-child{text-align:left;white-space:nowrap}.gtbl td:first-child small{display:block;color:#8f877a;font-size:10px}.gtbl td.has{background:#16140f}.gtbl td .ico.gem2{width:24px;height:24px;display:block;margin:0 auto}.gtbl td>b{display:block;color:#ffe6a6}.gtbl td small{color:#8f877a}.gtbl td .e{color:#3a352c}.gtbl .gupb{justify-content:center;margin-top:2px}.gtbl .gupb button{padding:1px 7px;font-size:11px}

/* 💎 작업대 「보석 강화」 탭(1022) */
.gt-ui{display:grid;grid-template-columns:170px 1fr;gap:10px;margin-bottom:10px}
.gt-l button{display:flex;align-items:center;gap:8px;width:100%;background:#1d1b19;border:1px solid #2e2a22;border-radius:9px;padding:6px 8px;margin-bottom:5px;color:#e8dcc0;cursor:pointer;text-align:left}.gt-l button.on{border-color:#c9a85c;background:#2a2316}.gt-l b{flex:1;font-size:13px}.gt-l small{color:#8f877a;font-size:11px}.gt-l i{font-style:normal;color:#ffcf4a;font-size:12px}
.gt-h{font-weight:800;margin:2px 0 8px}.gt-h small{color:#8f877a;font-weight:600}.gt-g{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.gt-g button{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;background:#1d1b19;border:1px solid #2e2a22;border-radius:10px;padding:8px 2px;color:#e8dcc0;cursor:pointer;font-size:11px}.gt-g button.none{opacity:.3;cursor:default}.gt-g button b{font-size:12px;color:#ffe6a6}
.gt-g button.can{border:2px solid #ffcf4a;box-shadow:0 0 8px #ffcf4a55}.gt-g button.sel{background:#2a2316;outline:2px solid #ffffff40}
.gt-g button .ok{position:absolute;top:3px;right:4px;font-size:9px;color:#17140f;background:#ffcf4a;border-radius:6px;padding:0 4px;font-weight:900}
.gt-d{margin-top:10px;background:#1d1b19;border:1px solid #3a3122;border-radius:12px;padding:10px 12px}.gt-d .fl{display:flex;align-items:center;gap:8px;font-weight:800;flex-wrap:wrap}.gt-d .row{display:flex;gap:14px;margin:8px 0;font-size:13px;flex-wrap:wrap}.gt-d .row span b{color:#ffe6a6}.gt-d .warn2{color:#ff9a8a}
.gt-d button{background:#c9a85c;color:#17140f;border:0;border-radius:8px;padding:6px 14px;font-weight:900;margin:2px 6px 2px 0;cursor:pointer}.gt-d button.alt{background:#2a2316;color:#ffe6a6;border:1px solid #c9a85c}.gt-d button:disabled{opacity:.4;cursor:default}
.gt-d .p100{color:#7fd88f}.gt-d .p90{color:#ffd76a}.gt-d .p70{color:#ffb04a}.gt-d .p35{color:#ff7a6a}
@media (pointer:coarse) and (max-width:640px),(pointer:coarse) and (max-height:440px){.gt-ui{grid-template-columns:1fr}.gt-l{display:flex;flex-wrap:wrap;gap:4px}.gt-l button{width:auto;margin:0}.gt-g{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 🖤 1022 유저: 게임 안 스크롤 = 검정 바탕 + 회색 막대(톤앤매너) */
html,body,#panel,.pbox,#panel *{scrollbar-width:thin;scrollbar-color:#3a3632 #0b0b0c}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0b0b0c}::-webkit-scrollbar-thumb{background:#3a3632;border-radius:8px;border:2px solid #0b0b0c}::-webkit-scrollbar-thumb:hover{background:#5a544c}::-webkit-scrollbar-corner{background:#0b0b0c}
.gt-d .dnrow{margin-top:8px;padding-top:8px;border-top:1px dashed #3a3122;font-size:12.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gt-d .dnrow b{color:#ffe6a6}.gt-d .dnrow svg{vertical-align:middle}

/* 📱 1022 밤: 쉼터에서도 공격 버튼(사격장 밖 = 가방 총알 씀) · 내 기지 = 위 버튼 줄 맨 앞(터치) */
body.touch #sidebtn #bHome{position:static;width:38px;height:38px;border-radius:10px;padding:0;gap:0;flex-direction:column;justify-content:center;background:linear-gradient(#3b3220,#231d13);border:1px solid #c9a85c;font-size:9px;line-height:1}
body.touch #sidebtn #bHome.hide{display:none!important}body.touch #sidebtn #bHome span{font-size:17px;line-height:1}body.touch #sidebtn #bHome b{display:none}body.touch #sidebtn #bHomeP{font-size:9px;margin:0}
@media (pointer:coarse) and (max-height:520px) and (max-width:800px){body.touch #sidebtn #bHome{width:32px;height:32px}body.touch #sidebtn #bHome span{font-size:14px}body.touch #sidebtn #bHomeP{font-size:8px}}
/* 👀 죽은 뒤 동료 구경 */
#deadpk{position:fixed;inset:0;z-index:60;background:#000a;display:flex;align-items:center;justify-content:center;padding:16px}
#deadpk .dk{background:#17140f;border:1px solid #c9a85c;border-radius:16px;padding:16px 18px;width:min(340px,100%);color:#ece4d2;text-align:center;max-height:90vh;overflow:auto}
#deadpk h3{margin:0 0 4px;color:#ff8a7a}#deadpk .sub{color:#8f877a;font-size:13px;margin-bottom:12px}
#deadpk button{display:block;width:100%;margin:6px 0;padding:11px;border-radius:10px;border:0;background:#c9a85c;color:#17140f;font-weight:800;font-size:14px;cursor:pointer}#deadpk button.alt{background:#2a2316;color:#ffe6a6;border:1px solid #c9a85c}
#specbar .sa{background:#2a2316!important;color:#ffe6a6!important;border:1px solid #c9a85c!important;padding:4px 10px!important}
#me .nm{word-break:keep-all}   /* 1022 밤: 좁은 폰 "쉼 / 터" 글자 중간 줄바꿈 X → 띄어쓰기에서만 */

/* 🔨 제작 재료 무기 고르기(1022) */
.cpk{display:flex;flex-direction:column;gap:5px;flex:none}.cpkh{font-size:12px;font-weight:800;color:#c9a85c}.cpkh small{font-weight:600;color:#8a847a}
.cpk button{display:flex;align-items:center;gap:8px;text-align:left;background:#121114;border:1px solid #2a2a2e;border-radius:9px;padding:5px 8px;color:#ddd}.cpk button.on{background:#2a2416;border-color:#c9a85c;box-shadow:0 0 0 1px #c9a85c inset}
.cpk .ico{width:32px;height:32px}.cpk b{display:block;font-size:13px}.cpk small{display:block;font-size:11px;color:#8a847a}

/* 🔁 2번째 무기(1022) — 무기 칸 미니 아이콘 ⇄ · 가방 ⭐ 우선 */
.slot{position:relative}.slot .alt{position:absolute;right:3px;bottom:7px;width:26px;height:26px;border-radius:7px;background:#0d0c0fd0;border:1px solid #c9a85c88;display:flex;align-items:center;justify-content:center;pointer-events:none}
.slot .alt>*:not(em){width:20px;height:20px;opacity:.85}.slot .alt em{position:absolute;left:-7px;top:-8px;font-style:normal;font-size:12px;color:#ffd23a;text-shadow:0 0 3px #000}
.eq.pri{position:relative}.eq.pri::after{content:'⭐';position:absolute;top:3px;right:5px;font-size:12px}
body.touch .slot .alt{width:18px;height:18px;right:2px;bottom:3px}body.touch .slot .alt>*:not(em){width:14px;height:14px}body.touch .slot .alt em{font-size:10px;left:-5px;top:-6px}
/* 🎁 우편 묶음 개수(1022) */
.mqty{display:flex;align-items:center;gap:8px;background:#121114;border:1px solid #2a2a2e;border-radius:9px;padding:5px 8px;margin-top:6px;flex-wrap:wrap}.mqty .ico{width:28px;height:28px}.mqty b{font-size:13px;flex:1;min-width:90px}
.mqty span{display:flex;align-items:center;gap:4px}.mqty button{min-width:34px;padding:4px 7px;background:#26242c;color:#eee;border:1px solid #3a3740;border-radius:7px;font-weight:800}.mqty em{font-style:normal;font-weight:800;color:#ffd23a;min-width:72px;text-align:center}
body.touch #money{font-size:18px;line-height:38px;top:max(8px,env(safe-area-inset-top))}body.touch #sidebtn{right:calc(max(12px,env(safe-area-inset-right)) + var(--mw,80px) + 8px)!important}   /* 📱 1023: 돈이 길어지면 위 버튼 줄이 왼쪽으로 비켜남(main.js --mw) */
body.touch #me .bars,body.touch #me .bar{max-width:calc(var(--sbl,9999px) - 82px)}@media (pointer:coarse) and (max-height:520px) and (max-width:800px){body.touch #me .bars,body.touch #me .bar{max-width:min(28vw,calc(var(--sbl,9999px) - 82px))}}   /* 📱 1023: 체력 바가 위 버튼 줄 앞에서 멈춤(main.js --sbl) */
.dfrow{display:flex;gap:6px;margin:6px 0 4px}.dfrow button{flex:1;padding:7px 4px 5px;border-radius:9px;border:1px solid #3a352c;background:#17150f;color:var(--dc);font-weight:900;font-size:14px;line-height:1.15}.dfrow button small{display:block;font-size:10px;font-weight:600;color:#8a847a}.dfrow button.on{border-color:var(--dc);background:color-mix(in srgb,var(--dc) 18%,#17150f);box-shadow:0 0 10px color-mix(in srgb,var(--dc) 45%,transparent)}.dfrow button.lk{opacity:.45}.dfinfo{font-size:12px;margin-bottom:6px}@media (pointer:coarse) and (max-height:520px){.dfrow button{font-size:12px;padding:5px 2px 4px}.dfrow button small{font-size:9px}.dfinfo{font-size:11px}}   /* 🔥 1023 난이도 4단계 */
#gobhud{position:fixed;left:50%;top:calc(max(10px,env(safe-area-inset-top)) + 80px);transform:translateX(-50%);padding:5px 14px;border-radius:99px;background:rgba(40,28,6,.86);border:1px solid #ffd23a;color:#ffd23a;font-weight:900;font-size:15px;z-index:9;pointer-events:none;white-space:nowrap;text-shadow:0 1px 2px #000;box-shadow:0 0 14px rgba(255,210,58,.45)}#gobhud.hot{color:#fff;background:rgba(130,45,0,.92);animation:gbp .45s infinite alternate}@keyframes gbp{to{transform:translateX(-50%) scale(1.07)}}@media (pointer:coarse) and (max-height:520px){#gobhud{top:calc(max(8px,env(safe-area-inset-top)) + 50px);font-size:12px;padding:3px 10px}}   /* 💰 1023 황금 좀비 */
.st-bar i.gem{background:linear-gradient(135deg,#bfefff,#5ac8ff);box-shadow:0 0 6px #5ac8ffaa}.st-val b.over{color:#7fdcff;text-shadow:0 0 8px #5ac8ff88}   /* 💎 1023: 보석은 최대치 위로(23/20) */
.it .packs{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:4px}.it .packs button{padding:3px 4px}.it .packs button small{font-size:10px}   /* 🛒 1023: 개수 버튼 5개 = 칸으로(세로로 길어지지 않게) */
@media (pointer:coarse) and (max-height:520px){.it .packs{grid-template-columns:1fr 1fr!important;gap:3px}.it .packs button{font-size:11px;padding:2px 3px;line-height:1.15}.it .packs button small{font-size:9px}}   /* 📱 폰: 개수 버튼 2줄(50·100 잘리던 것) */
.st-bar2{position:relative;height:9px;border-radius:5px;background:#0006;margin-top:4px;overflow:visible}.st-bar2 i{position:absolute;top:0;bottom:0;left:0;border-radius:5px}.st-bar2 i.on{background:var(--c)}.st-bar2 i.new{background:#fff;opacity:.75}.st-bar2 i.gem{background:linear-gradient(90deg,#bfefff,#5ac8ff);box-shadow:0 0 6px #5ac8ffaa}.st-bar2 b.cap{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff9;border-radius:1px}.st-bar2 b.th{position:absolute;top:-2px;bottom:-2px;width:2px;background:#8a847a}.st-bar2 b.th.ok{background:#ffd23a}.st-th{display:flex;gap:10px;flex-wrap:wrap;font-size:10.5px;color:#8a847a;margin-top:3px}.st-th .ok{color:#ffd23a}@media (pointer:coarse) and (max-height:520px){.st-th{font-size:9.5px;gap:6px}}   /* 📊 1023 스탯 상한·문턱 */
.bthint{border-radius:10px;padding:7px 11px;margin:6px 0;font-size:13px;background:#1b1814;border:1px solid #5a5040;color:#ddd4c2}.bthint.m{background:#1b2a1b;border-color:#5fd17a;color:#bff0c8}.bthint.r{background:#1b2230;border-color:#7cc4ff;color:#cfe6ff}#lobgo{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);pointer-events:none;animation:lgIn .35s ease-out}#lobgo .lg{pointer-events:auto;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;background:#151311;border:2px solid #ffc94a;border-radius:18px;padding:16px 20px;box-shadow:0 0 40px rgba(255,201,74,.35);text-align:center}#lobgo .lgh{font-size:28px;font-weight:900;color:#ffc94a;letter-spacing:-1px}#lobgo h3{margin:6px 0}#lobgo .bthint,#lobgo .lowsup{text-align:left}#lobgo .lgn{font-size:88px;font-weight:900;line-height:1;color:#fff;text-shadow:0 0 20px #ffc94a;margin:8px 0 2px}#lobgo .lgn.pop{animation:lgPop .5s ease-out}@keyframes lgIn{from{opacity:0;transform:scale(.85)}}@keyframes lgPop{from{transform:scale(1.5);opacity:.4}}@media (pointer:coarse) and (max-height:520px){#lobgo .lgh{font-size:20px}#lobgo .lgn{font-size:54px}#lobgo .lg{padding:10px 14px}}   /* ⏳ 1023 카운트다운 · 💡 건물 힌트 */
.ubld{margin:8px 0}.ubld h3{margin:6px 0;font-size:15px}.ubld h3 small{color:#8a847a;font-weight:600}.udrop{display:grid;grid-template-columns:44px 1fr auto;gap:8px;align-items:center;background:#1b1814;border:1px solid #3a352c;border-radius:10px;padding:6px 8px;margin:4px 0}.udrop.own{border-color:#5fd17a}.udrop .ico{width:40px;height:40px}.udrop small{color:#8a847a}.udrop .ud{font-size:12px;color:#ffd27a}.udrop button.on{border-color:#ffd23a;color:#ffd23a}.ulist{max-height:60vh;overflow:auto}#pbody .tabs{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}#pbody .tabs button.on{border-color:#c9a85c;color:#ffd23a}   /* 📖 1023 드롭표 */
#lobgo .lgi{text-align:left;background:#1b1814;border:1px solid #3a352c;border-radius:10px;padding:7px 11px;margin:6px 0;font-size:14px}#lobgo .lgs{text-align:left;font-size:11.5px;color:#a8a090;margin:6px 2px;line-height:1.5}#lobgo #lgstop{margin-top:4px}@media (pointer:coarse) and (max-height:520px){#lobgo .lgi{font-size:12px;padding:4px 8px;margin:4px 0}#lobgo .lgs{font-size:10.5px}#lobgo h3{margin:2px 0;font-size:15px}}   /* ⏳ 주의사항 카드 */
#lobgo .lgtop{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:-16px;background:#151311;padding-bottom:4px;z-index:1}#lobgo .lgtop .lgn{font-size:64px;margin:0;flex:none;min-width:70px}#lobgo .lgtop #lgstop{margin:0}@media (pointer:coarse) and (max-height:520px){#lobgo .lgtop .lgn{font-size:44px;min-width:50px}#lobgo .lgtop{top:-10px}}   /* ⏳ 숫자·중단 위로 */
#lobcd{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;justify-content:center;background:#2a2312;border:1px solid #ffc94a;border-radius:10px;padding:6px 10px;margin-bottom:6px;font-size:16px;color:#ffe6a0}#lobcd b{font-size:24px;color:#fff}   /* ⏳ 임시 카운트다운 */
.lgbad{display:block;color:#ff6a6a;font-weight:700}.udrop .ud.bad{color:#ff6a6a}   /* ⚖ 1023 전설 대가 */
.tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}.tags i{font-style:normal;font-size:11px;font-weight:800;padding:0 6px;border-radius:99px;border:1px solid var(--c);color:var(--c)}   /* 🔗 1023 태그 칩 */
#lobgo{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.62);backdrop-filter:blur(1.5px);pointer-events:none}
#lobgo .lgA{pointer-events:auto;width:min(1040px,calc(100vw - 32px));max-height:calc(100vh - 24px);overflow:auto;background:linear-gradient(180deg,#1d1810,#120f0b);border:2px solid #ffb23a;border-radius:18px;box-shadow:0 0 40px rgba(255,170,40,.35);padding:14px 18px 16px;animation:lgPopA .45s cubic-bezier(.2,1.4,.4,1);font-size:14px}
@keyframes lgPopA{from{transform:scale(.55);opacity:0}to{transform:none;opacity:1}}
#lobgo .top{display:flex;align-items:center;gap:14px}#lobgo .ttl{font-size:30px;font-weight:900;color:#ffb23a;letter-spacing:-1px;text-shadow:0 0 12px rgba(255,170,40,.5)}#lobgo .bname{font-size:16px;color:#e8dcc4}#lobgo .bname b{color:#fff}
#lobgo .ring{--p:100%;margin-left:auto;width:76px;height:76px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#ffb23a 0 var(--p),#3a3020 var(--p) 100%);position:relative}#lobgo .ring::before{content:'';position:absolute;inset:7px;border-radius:50%;background:#120f0b}#lobgo .ring b{position:relative;font-size:38px;font-weight:900;color:#fff;line-height:1}#lobgo .ring.big b{animation:lgBig .55s ease-out;color:#ff6a3a}
@keyframes lgBig{from{transform:scale(1.7)}to{transform:none}}
#lobgo .tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:12px}#lobgo .tile{border-radius:12px;padding:9px 10px;background:#1f1a12;border:1px solid #3a3020;opacity:0;animation:lgIn .3s forwards}
#lobgo .tile:nth-child(1){animation-delay:.2s}#lobgo .tile:nth-child(2){animation-delay:.35s}#lobgo .tile:nth-child(3){animation-delay:.5s}#lobgo .tile:nth-child(4){animation-delay:.65s}#lobgo .tile:nth-child(5){animation-delay:.8s}
@keyframes lgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#lobgo .tile i{font-style:normal;font-size:24px;display:block;line-height:1.1}#lobgo .tile small{display:block;color:#a99f8c;font-size:12px}#lobgo .tile b{display:block;font-size:18px;font-weight:900;line-height:1.25}#lobgo .tile p{margin:3px 0 0;font-size:12.5px;color:#d7ccb6;line-height:1.35}#lobgo .tile .pq{display:none}
#lobgo .t-df{border-color:var(--tc);background:color-mix(in srgb,var(--tc) 12%,#1f1a12)}#lobgo .t-df b{color:var(--tc)}#lobgo .t-mel{border-color:#5fd17a;background:#13241a}#lobgo .t-mel b{color:#7ff0a0}#lobgo .t-rng{border-color:#7cc4ff;background:#132030}#lobgo .t-rng b{color:#9cd4ff}#lobgo .t-boss b{color:#ffd23a}#lobgo .t-party b{color:#ff8a3a}#lobgo .t-ok b{color:#7ff0a0}
#lobgo .t-warn{border-color:#ff4a4a;background:#2a1414;animation:lgIn .3s .8s forwards,lgBlink 1s 1.1s infinite}#lobgo .t-warn b{color:#ff6a6a}@keyframes lgBlink{50%{box-shadow:0 0 0 2px #ff4a4a,0 0 14px #ff4a4a88}}
#lobgo .small{display:flex;gap:18px;margin-top:10px;color:#a99f8c;font-size:12.5px;flex-wrap:wrap}#lobgo .small b{color:#e8dcc4}
#lobgo .bot{display:flex;align-items:center;gap:12px;margin-top:10px}#lobgo .stop{background:#3a1414;border:1.5px solid #ff4a4a;color:#ffb0b0;border-radius:9px;padding:6px 16px;font-weight:900;font-size:15px}#lobgo .who{color:#a99f8c;font-size:12.5px}#lobgo .bar{flex:1;height:7px;border-radius:99px;background:#3a3020;overflow:hidden}#lobgo .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffb23a,#ff6a3a)}
@media (pointer:coarse) and (max-height:520px){#lobgo .lgA{padding:9px 12px 10px;font-size:12px}#lobgo .ttl{font-size:21px}#lobgo .bname{font-size:12.5px}#lobgo .ring{width:54px;height:54px}#lobgo .ring::before{inset:5px}#lobgo .ring b{font-size:26px}#lobgo .tiles{gap:5px;margin-top:7px}#lobgo .tile{padding:6px 7px}#lobgo .tile i{font-size:17px}#lobgo .tile small{font-size:10px}#lobgo .tile b{font-size:13.5px}#lobgo .tile .pl{display:none}#lobgo .tile .pq{display:block;font-size:11px}#lobgo .small{font-size:10.5px;gap:10px;margin-top:6px}#lobgo .bot{margin-top:6px}#lobgo .stop{font-size:12.5px;padding:4px 12px}}
@media (pointer:coarse) and (max-width:700px) and (min-height:521px){#lobgo .tiles{grid-template-columns:1fr 1fr}}   /* ⏳ 1023 시안 A 카운트다운 카드 */
.bar.xp.capd #xpf{background:linear-gradient(90deg,#5a5a5a,#8a8a8a)!important;box-shadow:none!important}.bar.xp.capd #xpt{color:#ffd9a0}   /* 🔒 지역 상한 = 경험치 바 회색 */
.mupl{display:flex;flex-direction:column;gap:6px;margin-top:6px}.mupr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;padding:7px 10px;border-radius:9px;background:#1b1814;border:1px solid var(--mc,#3a352c);border-left:4px solid var(--mc,#c9a85c)}.mupr b{color:var(--mc,#fff)}.mupr small{grid-column:1;color:#cfc6b2;font-size:11.5px}.mupr span{grid-column:2;grid-row:1/4;display:flex;flex-direction:column;gap:4px}.mupr button{padding:4px 8px;font-size:12px}.modfx{border-left:3px solid var(--mc,#c9a85c);padding-left:6px}   /* 🧩 1023 모듈 강화 */
.ico.mic{box-shadow:inset 0 0 0 2px var(--mc);border-radius:8px}
.mupr button{background:#2a2316;color:#ffe6a6;border:1px solid #c9a85c;border-radius:7px;font-weight:800}.mupr button.alt{background:#1f1b14;color:#d8cfbe;border-color:#5a4f3c}.mupr button:disabled{opacity:.4}

/* 🆘 1023 쓰러진 동료 표시(main.js sosTick) — 화면 안 = 그 자리 위 · 밖 = 가장자리 화살표 */
.sosm{position:fixed;left:0;top:0;z-index:5;pointer-events:none;will-change:transform}
.sosm b{position:absolute;left:0;top:0;transform:translate(-50%,-150%);white-space:nowrap;background:rgba(120,10,10,.85);border:1px solid #ff6a5a;color:#fff;font:800 12px Pretendard,sans-serif;padding:3px 8px;border-radius:999px;animation:sosP 1s ease-in-out infinite}
.sosm i{display:none;position:absolute;left:-11px;top:-13px;font-style:normal;font-size:22px;color:#ff4a3a;text-shadow:0 0 6px #000}
.sosm.out i{display:block}
.sosm.out b{transform:translate(-50%,16px)}
@keyframes sosP{50%{background:rgba(200,20,20,.95);box-shadow:0 0 12px #ff3a2a}}

/* 🧍/🎒 1023 작업대 목록 착용 중·가방 구분(ui.grpL) */
.grph{font:800 12px Pretendard,sans-serif;color:#9a958a;margin:6px 2px 1px;padding-bottom:3px;border-bottom:1px solid #2c2b30;position:sticky;top:0;background:#141317;z-index:1}
.grph.on{color:#e8c770}
.grph small{color:#6a665e;font-weight:600;margin-left:4px}
.cri.worn{border-left:3px solid #c9a85c;background:#1d1b16}

/* 🎒 1023 가방: 고른 칸 바로 아래 장착 버튼(ui.inv .qact) */
.qact{position:absolute;z-index:4;display:flex;gap:6px;padding:6px;background:rgba(16,15,18,.96);border:1px solid #c9a85c;border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.6);white-space:nowrap}
.qact button{padding:8px 14px;font-size:13px}
.qact button:not(.gold){background:#2a2622;border:1px solid #4a4238;border-radius:9px;color:#f2ead8;font-weight:800}   /* 🔁 1025 유저: 2번째 칸에 버튼 = 클래스 없이 복사돼 흰 배경(글씨 안 보임) */
/* ⏳ 1023 유저: 주의사항 카드 떠 있는 동안 뒤 대기실(난이도·READY·나가기) 클릭이 통과돼 혼자 READY 풀림 → 카드가 화면 전체 클릭을 막음(⛔ 중단만) */
#lobgo{pointer-events:auto!important;touch-action:none}

/* ✨ 1023 고급·희귀·전설 획득 팝업(ui.got .gr) — 등급 색 테두리·빛 · 전설 = 금빛 훑기 */
.got.gr{border:2px solid var(--gc);box-shadow:0 0 14px color-mix(in srgb,var(--gc) 55%,transparent),inset 0 0 10px color-mix(in srgb,var(--gc) 18%,transparent);background:linear-gradient(90deg,rgba(12,12,14,.92),color-mix(in srgb,var(--gc) 16%,rgba(12,12,14,.92)),rgba(12,12,14,.92));animation:gotin .25s ease-out,grPop .5s ease-out;position:relative;overflow:hidden}
.got.gr small{color:#e8e2d6}.got.gr small em{font-style:normal;font-weight:900;color:var(--gc);letter-spacing:.5px}
.got.gr b{color:var(--gc);text-shadow:0 0 8px color-mix(in srgb,var(--gc) 60%,transparent)}
.got.gr.g3::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,240,180,.45) 50%,transparent 70%);transform:translateX(-100%);animation:grShine 1.6s ease-in-out .2s 2}
@keyframes grPop{0%{transform:scale(.85)}60%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes grShine{to{transform:translateX(100%)}}

/* 🧩 1023 모듈 만들기 3칸(원거리 / 둘 다 / 근접) */
.mcol3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:start}
.mcol{display:flex;flex-direction:column;gap:6px;background:#141317;border:1px solid #2c2b30;border-radius:10px;padding:6px}
.mcolh{font:800 13px Pretendard,sans-serif;color:#e8c770;text-align:center;padding:4px 0 6px;border-bottom:1px solid #2c2b30}
.mcolh small{color:#7a756a;font-weight:600}
.mcol .dslot{width:auto}
@media (pointer:coarse) and (max-width:700px){.mcol3{grid-template-columns:1fr}}

/* 💎 1023 보석 근접/둘 다/원거리 칩 */
.guse{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;border:1px solid var(--c);color:var(--c);font-size:10.5px;font-weight:800;line-height:1.5;vertical-align:middle;background:color-mix(in srgb,var(--c) 14%,transparent)}

/* 💎 1023 보석 끼우기 = 종류별 줄 */
.dch{display:flex;flex-direction:column;gap:5px;width:100%}
.gmrow{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 6px;border-radius:8px;background:#18171b;border:1px solid #2c2b30}
.gmk{min-width:118px;font-weight:800;font-size:12.5px;display:flex;flex-direction:column;gap:1px}.gmk small{color:#9a958a;font-weight:600;font-size:10.5px}
.gmrow button small{color:#cfc8b8;font-size:10.5px}

/* 🎨 1023 유저: 보석 색 바꾸기 없앰(친구끼리 교환하라고) — 화면에서 숨김 · 서버 gsw 막음 */
.gswp{display:none!important}
.gmk .guse{align-self:flex-start;margin-left:0}
/* 💎 1023 유저 '줄바꿈 이상': 보석 이름+용도 칩 한 줄 · 개수·스탯은 아랫줄 */
.guse{white-space:nowrap}.gkn{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.gkn b{white-space:nowrap;flex:none}.gt-l .gkn small{white-space:nowrap}
/* 💰 1023 팔기 화면(ui.sellView): 왼쪽 착용 고정 · 오른쪽 줄 목록만 스크롤 · 아래 묶어 팔기 줄 고정 */
.sellw{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:start}
.sellE{position:sticky;top:0;display:flex;flex-direction:column;gap:5px;max-height:max(220px,calc(86vh - 90px));overflow:auto}
.sellE h4{margin:0 0 2px;font-size:13.5px;color:#e8d39c}
.seq{display:flex;gap:8px;align-items:center;padding:5px 7px;border:1px solid #2e2a24;border-radius:9px;background:#1a191c;font-size:12px;line-height:1.35}
.seq .ico{width:34px;height:34px;flex:none}.seq small{display:block;color:#8a847a;font-size:10.5px}.seq div>b{display:block;font-size:12.5px}.seq em{font-style:normal;color:#cfc8ba;font-size:11.5px}
.seq.empty{color:#6f6a62;justify-content:space-between}.seq.hl{border-color:#c9a85c;box-shadow:0 0 0 1px #c9a85c inset;background:#221e15}
.seq.g1 b{color:#6aa8ff}.seq.g2 b{color:#b77bff}.seq.g3 b{color:#ffcf4a}.seq em b{color:#fff!important}
.sstat{font-size:12px;color:#cfc8ba;padding:2px 2px 0}.sellE .detail{margin-top:4px;font-size:12px;line-height:1.5}
.sellR{min-width:0;display:flex;flex-direction:column}
.sbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0;font-size:12px}.sbar button{padding:5px 9px;font-size:12px}.sbar button.on{border-color:#c9a85c;color:#ffe9b0;background:#2a2316}
#sellL{max-height:max(180px,calc(86vh - 250px));overflow:auto;display:flex;flex-direction:column;gap:5px;padding-right:2px}
.srow{display:grid;grid-template-columns:24px 44px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid #2e2a24;border-radius:10px;background:#18171a;cursor:pointer}
.srow:hover{background:#1f1d21}.srow.on{border-color:#c9a85c;background:#221e15}.srow.weak{border-left:3px solid #e0554a}
.srow .ico{width:44px;height:44px}.sinf{min-width:0}.sinf>b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sinf>small{display:block;font-size:12px;line-height:1.4;color:#cfc8ba}.sinf>small.mut{color:#8a847a;font-size:11px}
.srow.g1 .sinf>b{color:#6aa8ff}.srow.g2 .sinf>b{color:#b77bff}.srow.g3 .sinf>b{color:#ffcf4a}.sinf small b{color:#fff}
.sd{font-weight:900}.sd.up{color:#5be07f}.sd.dn{color:#ff6a5a}.sd.eq{color:#a8a294;font-weight:700}
.sck{display:flex;align-items:center;justify-content:center;height:100%}.sck input{width:18px;height:18px;accent-color:#c9a85c;cursor:pointer}
.sbtn{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.sbtn button{padding:8px 12px;font-size:12.5px;white-space:nowrap}
.sbtn button.prec{background:#4a2a14;border-color:#ff9a4a;color:#ffd9b0}.sbtn button.arm{background:#8a2a1a;border-color:#ff6a4a;color:#fff;animation:sArm .5s infinite alternate}
.sbtn button.done{background:#1f3a24!important;border-color:#4fdc7a!important;color:#bfffcf!important;transform:scale(.96)}
@keyframes sArm{to{box-shadow:0 0 10px #ff6a4a}}
.scmp{margin:-2px 0 4px 32px}.scmp .detail{margin-top:0}.scmp .acts{margin-top:6px}
.sfoot{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid #2e2a24;font-size:11.5px}.sfoot button{padding:8px 12px;font-size:13px}
@media (pointer:coarse) and (max-width:760px) and (min-height:521px){.sellw{grid-template-columns:1fr}.sellE{position:static;max-height:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.sellE h4,.sstat,.sellE .detail{grid-column:1/-1}}
@media (pointer:coarse) and (max-height:520px){.sellw{grid-template-columns:210px minmax(0,1fr);gap:10px}.sellE{max-height:calc(95vh - 70px);gap:3px}.seq{padding:3px 5px;font-size:10.5px}.seq .ico{width:24px;height:24px}.seq div>b{font-size:11px}.seq em{font-size:10px}.seq small{font-size:9.5px}
  #sellL{max-height:max(110px,calc(95vh - 190px))}.srow{grid-template-columns:22px 32px minmax(0,1fr) auto;padding:4px 6px;gap:6px}.srow .ico{width:32px;height:32px}.sinf>b{font-size:12px}.sinf>small{font-size:11px}.sbtn button{padding:6px 9px;font-size:11.5px}.sfoot{margin-top:5px;padding-top:5px}.sfoot .mut{display:none}.sfoot button{padding:6px 10px;font-size:12px}.sbar{margin:4px 0}.sbar button{padding:4px 7px;font-size:11px}}
@media (pointer:coarse) and (max-height:520px) and (max-width:599px){.sellw{grid-template-columns:1fr}.sellE{display:none}}
.sellR button:not(.gold):not(.on){background:#24211d;border:1px solid #3d352a;color:#e8e2d4;border-radius:8px}.sellR button:not(.gold):not(.on):hover{border-color:#c9a85c}
@media (pointer:coarse) and (max-height:520px){.sellR .tabs{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}.sellR .tabs button{flex:none;padding:4px 8px;font-size:11.5px}.sellE h4{font-size:12px}.sellE .detail{display:none}}
@media (pointer:coarse) and (max-height:300px){.sellw{grid-template-columns:1fr}.sellE{display:none}#sellL{max-height:max(90px,calc(95vh - 150px))}.sbar>.mut{display:none}}
.guall{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px;padding:8px 10px;border:1px solid #5a4a2a;border-radius:10px;background:#1c1810}.guall button{padding:9px 14px;font-size:14px}.guall .mut{font-size:11.5px}
.pgc{max-height:none!important;overflow:visible!important}.sellE{max-height:none!important;overflow:visible!important}   /* 📄 1024: 안쪽 스크롤 끔 — 대신 페이지 */
.pgr{display:flex;justify-content:center;align-items:center;gap:14px;margin:8px 0 2px;grid-column:1/-1}.pgr button{min-width:44px;padding:6px 12px;border-radius:9px;border:1px solid #4a4238;background:#2a2622;color:#ffe9b0;font-weight:900;font-size:15px}.pgr button:disabled{opacity:.3}.pgr b{color:#e8d39c;font-size:14px;min-width:54px;text-align:center}
.invL #pvbox{height:clamp(120px,30vh,330px)!important}   /* 📄 1024: 가방 3D 칸 = 화면 높이에 맞춰(스크롤 없이) */
/* ⏳ 1024: 지역 바뀔 때 셰이더 준비 중 화면(0.15초 넘을 때만 보이게) */
#ldv{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:rgba(6,6,8,.82);pointer-events:none;animation:ldvIn .3s ease-out both}
#ldv b{color:#e8d9a8;font-size:18px;letter-spacing:.02em;animation:ldvP 1s ease-in-out infinite alternate}
@keyframes ldvIn{0%,50%{opacity:0}100%{opacity:1}}
@keyframes ldvP{from{opacity:.55}to{opacity:1}}
/* ⚡ 1026 스킬 2칸 — PC: 무기 칸 오른쪽(Q·X) · 폰: 공격 버튼 위 원 2개 · 쿨 = 어두운 부채꼴이 걷힘 · 켜진 동안 = 스탯 색으로 빛남 */
.sksep{width:6px}
.skslot{border-color:var(--c,#3a352c)!important;cursor:pointer;overflow:hidden}
.skslot.empty{border-style:dashed!important;border-color:#5a5040!important;color:#a49c8c}
.skslot.lock{opacity:.55}
.skslot .ic{font-size:22px}
.skslot .cdv,.bsk .cdv{position:absolute;inset:0;border-radius:inherit;background:conic-gradient(rgba(0,0,0,.72) 0 var(--p,0%),transparent var(--p,0%) 100%);pointer-events:none;z-index:1}
.skslot .cdt,.bsk .cdt{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:3;font-style:normal;font-size:20px;font-weight:900;color:#fff;text-shadow:0 0 4px #000,0 0 2px #000;pointer-events:none}
.skslot.act,.bsk.act{box-shadow:0 0 14px var(--c),inset 0 0 12px color-mix(in srgb,var(--c) 45%,transparent)}
.skslot.act .cdt,.bsk.act .cdt{color:var(--c);font-size:15px;top:auto;bottom:16px;transform:none}
.skslot .skset{position:absolute;right:2px;bottom:2px;z-index:4;width:20px;height:20px;padding:0;border-radius:6px;border:1px solid #4a4238;background:#1d1a16cc;color:#c9a85c;font-size:11px;line-height:18px;cursor:pointer}
body.touch .skslot,body.touch .sksep{display:none}
.bsk{display:none}
body.touch .bsk{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;z-index:3;touch-action:none;width:56px;height:56px;border-radius:50%;background:rgba(24,20,14,.72);border:2px solid var(--c,#c9a85c);color:#fff;pointer-events:auto;padding:0;overflow:hidden}
body.touch .bsk b{font-size:19px;line-height:20px;position:relative;z-index:2}
body.touch .bsk small{font-size:9.5px;font-weight:800;color:#e8dcc0;line-height:11px;position:relative;z-index:2;white-space:nowrap}
body.touch .bsk.empty{border-style:dashed;opacity:.8}
body.touch .bsk.lock{opacity:.5}
body.touch .bsk:active{filter:brightness(1.4)}
#bSk0{right:calc(max(18px,env(safe-area-inset-right)) + 194px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 154px)}
#bSk1{right:calc(max(18px,env(safe-area-inset-right)) + 252px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 100px)}   /* E(상호작용)·장전·조준·회복 버튼 피해서 그 왼쪽 위 */
body.basev .bsk,body:has(#specbar) .bsk,body:has(#downui:not(.hide)) .bsk{display:none!important}   /* 기지·구경·쓰러짐 = 숨김 */
@media (pointer:coarse) and (max-width:720px){body.touch .bsk{width:48px;height:48px}body.touch .bsk b{font-size:16px;line-height:17px}body.touch .bsk small{font-size:8.5px}#bSk0{right:calc(max(18px,env(safe-area-inset-right)) + 188px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 144px)}#bSk1{right:calc(max(18px,env(safe-area-inset-right)) + 188px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 196px)}}   /* 좁은 폰: 작게 세로로(가운데 알림 줄 피함) */
/* ⚡ 스킬 고르기 창 */
.sk-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sk-tab{padding:7px 12px;border-radius:10px;border:1px solid #4a4238;background:#1d1a16;color:#e8dcc0;font-weight:800;font-size:13px;cursor:pointer}
.sk-tab em{font-style:normal;display:inline-block;min-width:20px;padding:0 5px;margin-right:4px;border-radius:5px;background:#000;border:1px solid #c9a85c;color:#ffd23a}
.sk-tab.on{border-color:#c9a85c;background:#2a2316;box-shadow:0 0 8px rgba(201,168,92,.35)}
.skgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.skc{position:relative;text-align:left;padding:8px 10px;border-radius:11px;border:1px solid #3a352c;border-left:4px solid var(--c);background:#17140f;color:#ece4d2;cursor:pointer;font:inherit}
.skc:hover{background:#221d15}
.skc.on{background:#2a2316;border-color:#c9a85c;border-left-color:var(--c)}
.skc.lock{opacity:.55}
.skc .skh{display:flex;align-items:center;gap:6px}.skc .skh .ic{font-size:18px}.skc .skh b{font-size:14.5px}
.skc .slotk{margin-left:auto;font-style:normal;padding:0 7px;border-radius:5px;background:#000;border:1px solid #c9a85c;color:#ffd23a;font-weight:900;font-size:12px}
.skc .chips{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0 3px}.skc .chips span{font-size:10.5px;padding:0 6px;border-radius:99px;border:1px solid #4a4238;color:#bdb3a0}.skc .chips .lv{border-color:var(--c);color:var(--c);font-weight:900}
.skc p{margin:0;font-size:12px;line-height:1.35;color:#e0d6c0}.skc small{display:block;margin-top:3px;font-size:10.5px;color:#8f877a}
@media (pointer:coarse) and (max-width:900px){.skgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
body.touch .skc{padding:6px 8px}body.touch .skc p{font-size:11px}
/* 📊 스탯 창: 스탯마다 연결 스킬 */
.st-sk{margin-top:3px;font-size:11px;color:#8f877a}.st-sk b{color:#a49c8c;margin-left:4px}.st-sk.ok b{color:var(--c)}.st-sk small{color:#7a7266}

/* 📱 1026 폰 획득 줄(ui.gotFeed) — 가운데 카드(#gotbox) 대신 왼쪽 접속자 목록 아래 작은 줄 · 최대 3줄 · 화면 안 막음 */
#gotfeed{position:fixed;left:max(10px,env(safe-area-inset-left));top:110px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;pointer-events:none;z-index:30;max-width:44vw}
#gotfeed .gf{display:flex;align-items:center;gap:5px;background:rgba(10,10,12,.58);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:2px 8px 2px 3px;font-size:11.5px;line-height:1.3;color:#eee;white-space:nowrap;max-width:100%;box-sizing:border-box;animation:gfin .18s ease-out;transition:opacity .35s,transform .35s}
#gotfeed .gf .ico{width:20px;height:20px;font-size:15px;flex:none;margin:0}#gotfeed .gf .ico svg,#gotfeed .gf .ico img{width:100%;height:100%}
#gotfeed .gf b{font-weight:700;overflow:hidden;text-overflow:ellipsis;min-width:0}
#gotfeed .gf.g1 b{color:#6aa8ff}#gotfeed .gf.g2 b{color:#b77bff}#gotfeed .gf.g3 b{color:#ffcf4a}
#gotfeed .gf.gr{border-color:var(--gc);box-shadow:0 0 8px color-mix(in srgb,var(--gc) 45%,transparent);background:linear-gradient(90deg,rgba(12,12,14,.8),color-mix(in srgb,var(--gc) 18%,rgba(12,12,14,.8)))}
#gotfeed .gf.gr em{font-style:normal;font-weight:900;font-size:10px;color:var(--gc);border:1px solid var(--gc);border-radius:4px;padding:0 3px;line-height:1.35}
#gotfeed .gf.out{opacity:0;transform:translateX(-10px)}
@keyframes gfin{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
/* 🎲 1026 특성 등급 색 · 💤 2번째 칸 */
.afr1{color:#7fb4ff!important;font-weight:700}.afr2{color:#ffcf4a!important;font-weight:800;text-shadow:0 0 6px rgba(255,207,74,.35)}
.eq .wxz{display:block;font-size:9.5px;color:#9a8f7a;margin-top:1px;line-height:1.2}

/* ⏸ 1027 솔로 일시정지 덮개(패널 z20 아래 = 가방·지도는 열림) */
#pzov{position:fixed;inset:0;z-index:18;background:rgba(6,6,8,.62);display:grid;place-items:center;backdrop-filter:blur(2px)}#pzov.hide{display:none}#pzov .pz-in{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 30px;border-radius:16px;background:rgba(20,18,16,.92);border:1px solid #c9a85c55}#pzov b{font-size:30px;letter-spacing:2px;color:#f4ecd8}#pzov small{color:#a8a294}#pzov .btn{font-size:17px;padding:10px 22px}

@media (pointer:coarse){#pzgo small{display:none}}

/* 👑 1027 레벨 1위 ★VIP · 꼴찌 💀 (이름표 위) */
.tag .vip{display:flex;flex-direction:column;align-items:center;font-size:9px;font-weight:900;letter-spacing:1.5px;color:#ffe27a;line-height:1;margin-bottom:1px;text-shadow:0 0 4px #ffb800,0 0 9px #ff9a00}.tag .vip i{font-style:normal;font-size:17px;color:#ffd23a;animation:vipGlow 1.6s ease-in-out infinite}@keyframes vipGlow{0%,100%{transform:scale(1);text-shadow:0 0 4px #ffcf4a,0 0 8px #ffae00}50%{transform:scale(1.18);text-shadow:0 0 8px #fff2a8,0 0 16px #ffc400}}.tag .skul{font-size:15px;line-height:1;margin-bottom:1px;filter:drop-shadow(0 0 2px #000)}

/* 👟 1027 옷 칸 4개(머리·몸·다리·발) */
.eqg.eqa,.invL .eqg.eqa{grid-template-columns:repeat(4,minmax(0,1fr))!important}

/* 🖥 1028 유저 'PC 창 작게 줄이면 UI 망가짐(분해 3페이지 → 6페이지 · 3개씩) · 작아도 크게 볼 때랑 똑같이': PC = 모니터 전체 화면 기준 배치를 그대로 축소(--uiz = 창÷전체, main uiScale) · 큰 모니터(가로 2000↑) 키움 = body.bigscr + --bz(예전 창 너비 media) · 폰용 작은 화면 규칙은 pointer:coarse 만 · 창 안 vh/vw 는 zoom 만큼 되돌림 */
@property --bz{syntax:'<number>';inherits:false;initial-value:1}
body:not(.touch) .pbox{width:min(620px,calc(94vw / var(--uiz,1) / var(--bz,1)));max-height:calc(86vh / var(--uiz,1) / var(--bz,1))}
body:not(.touch) .pbox.wide{width:min(1040px,calc(96vw / var(--uiz,1) / var(--bz,1)))}
body:not(.touch) #panel .pbox:has(.hl-tabs){width:min(860px,calc(96vw / var(--uiz,1) / var(--bz,1)))}
body:not(.touch) .pbox .mapw{width:min(calc(96vw / var(--uiz,1) / 1.35 - 340px),calc((86vh / var(--uiz,1) / 1.35 - 110px) * var(--ar)))}
body:not(.touch):not(.bigscr) .pbox .mapw{width:min(calc(96vw / var(--uiz,1) - 340px),calc((86vh / var(--uiz,1) - 110px) * var(--ar)))}
body:not(.touch) .pbox .maps{max-height:calc(86vh / var(--uiz,1) - 110px)}
/* 📌 1028 모듈 메뉴 안 끼우기·만들기·강화 */
.mupr .mq{font-style:normal;font-weight:800}.mdtabs{display:flex;gap:6px;margin:0 0 10px}#panel .mdtabs button{flex:1;padding:8px 10px;border-radius:10px;border:1px solid #3a3530;background:#1b1916;color:#d8d2c6;font:inherit;font-weight:800;cursor:pointer}#panel .mdtabs button.on{border-color:#C9A85C;color:#ffd23a;background:#2a2214;box-shadow:0 0 10px rgba(201,168,92,.3)}
/* 🎒 1028 폰 가방: 무기 고르면 상세가 길어져 아래 장착·버리기 줄이 창 밖 → 버튼 줄은 창 아래에 붙여 늘 보이게 · 폰은 상세 줄 간격 줄임 */
.invwrap .detail+.acts{position:sticky;bottom:-18px;background:linear-gradient(rgba(20,19,22,0),#141316 35%);padding:12px 0 6px;margin-top:4px;z-index:5}
@media (pointer:coarse) and (max-height:520px){.invwrap .detail+.acts{bottom:-12px;padding:8px 0 4px}.invwrap .detail{padding:6px 9px;margin-top:6px;font-size:12px;line-height:1.4}.invwrap .grid~.sub{margin-top:4px!important;font-size:11px}}
/* 🌀 1028 대균열 — 대기실 단계 고르기 · 위 줄(단계·층·시간·막대) */
.grt{display:flex;align-items:center;gap:6px;margin:8px 0}.grt b{font-size:26px;min-width:56px;text-align:center;color:#ff5a7a}.grt button{padding:7px 12px;border-radius:9px;border:1px solid #5a2a34;background:#2a1418;color:#ffd0d8;font-weight:800}
#grhud{position:fixed;top:calc(env(safe-area-inset-top) + 64px);left:50%;transform:translateX(-50%);z-index:25;display:flex;align-items:center;gap:10px;padding:6px 14px;border-radius:12px;background:rgba(20,6,10,.82);border:1px solid #ff3b5c;color:#ffe0e6;font-size:14px;pointer-events:none;white-space:nowrap}
#grhud b{color:#ff5a7a}#grhud .bar{display:inline-block;width:150px;height:9px;border-radius:9px;background:#3a1a20;overflow:hidden}#grhud .bar i{display:block;height:100%;background:linear-gradient(90deg,#ff3b5c,#ffcf4a)}
#grhud.low .tm{color:#ffcf4a;font-weight:800}#grhud.late .tm{color:#ff6a6a;font-weight:800}
@media (pointer:coarse) and (max-height:520px){#grhud{top:calc(env(safe-area-inset-top) + 50px);font-size:11.5px;gap:6px;padding:4px 10px}#grhud .bar{width:90px;height:7px}}
#lane :is(#grhud,#zleft,#legpop,#gotbox){position:relative;left:auto;top:auto;transform:none}#lane #gotbox{gap:4px}   /* 📐 1029 유저 '보스 잡고 광장 카운트다운 때 위에 겹침' = 막대·남은 좀비·획득 카드도 위 가운데 줄(#lane) 안에 차례로 */
@media (pointer:coarse) and (max-height:520px){#lane #zleft{font-size:11.5px;padding:3px 10px}}
#legpop{display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}
#legpop .lp{display:flex;align-items:center;gap:10px;padding:8px 18px 8px 10px;border-radius:12px;background:linear-gradient(90deg,rgba(14,12,10,.92),color-mix(in srgb,var(--gc) 22%,rgba(14,12,10,.92)));border:1.5px solid var(--gc);box-shadow:0 0 16px color-mix(in srgb,var(--gc) 50%,transparent),inset 0 0 12px color-mix(in srgb,var(--gc) 18%,transparent);animation:lpIn .35s cubic-bezier(.2,1.4,.4,1);transition:opacity .45s,transform .45s}
#legpop .lp .ico{width:44px;height:44px;font-size:32px;display:flex;align-items:center;justify-content:center;flex:none}#legpop .lp .ico svg,#legpop .lp .ico img{width:100%;height:100%}
#legpop .lp small{display:block;font-size:11.5px;font-weight:800;color:var(--gc);letter-spacing:.02em}#legpop .lp b{display:block;font-size:17px;color:#fff;text-shadow:0 1px 4px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(380px,60vw)}
#legpop .lp.out{opacity:0;transform:translateY(-6px) scale(.97)}
@keyframes lpIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}
@media (pointer:coarse) and (max-height:520px){#legpop .lp{padding:4px 12px 4px 6px;gap:7px;border-radius:9px}#legpop .lp .ico{width:28px;height:28px;font-size:21px}#legpop .lp small{font-size:9.5px}#legpop .lp b{font-size:13px;max-width:100%}}   /* 🌀 1028 유저: 대균열 상단 막대와 남은 좀비 겹침 → 아래로 */

/* 🌀 1029 유저 '대균열 = 붉은 임팩트 · 화면에 필터 낀 듯 사알짝 붉은 일렁임(게임 방해 X)': 가장자리만 붉고 가운데 거의 투명 · opacity/transform 애니만(GPU 합성 = 렉 X) · 클릭 통과 */
body.grz::before,body.grz::after{content:'';position:fixed;inset:-6%;pointer-events:none;z-index:4}
body.grz::before{background:radial-gradient(ellipse 75% 70% at 50% 52%,transparent 52%,rgba(150,0,18,.20) 80%,rgba(110,0,12,.36) 100%);animation:grzA 4.2s ease-in-out infinite alternate}
body.grz::after{background:radial-gradient(ellipse 60% 45% at 30% 20%,rgba(255,30,50,.07),transparent 70%),radial-gradient(ellipse 55% 50% at 75% 82%,rgba(200,0,30,.07),transparent 70%);mix-blend-mode:screen;animation:grzB 7s ease-in-out infinite alternate}
@keyframes grzA{from{opacity:.65;transform:scale(1)}to{opacity:1;transform:scale(1.03)}}
@keyframes grzB{from{opacity:.4;transform:translate(-2%,1%) rotate(-1deg)}to{opacity:1;transform:translate(2%,-1%) rotate(1deg)}}
body:not(.touch) #lane #gotbox{zoom:1}   /* #lane 이 이미 확대 = 두 번 확대 X */
/* 💬 1029 유저 '상단 팝업 너무 크고 너무 빨리 사라짐': 알림 줄 = 작게 · 3.2초 그대로 보이다 1초 동안 사라짐(예전 = 2.6초 내내 흐려짐) · 큰 글자도 조금 작게 */
#lane #toast div{font-size:13.5px;padding:5px 12px;border-radius:8px;animation:gpH 4.2s linear forwards}
#lane #center{font-size:21px}
@keyframes gpH{0%,76%{opacity:1;transform:none}to{opacity:0;transform:translateY(-14px)}}
@media (pointer:coarse) and (max-height:520px){#lane #toast div{font-size:11.5px;padding:3px 9px}#lane #center{font-size:16px}}
.it .packs button{white-space:nowrap;letter-spacing:-.03em;min-width:0;overflow:hidden}.it .packs button small{white-space:normal;word-break:keep-all}@media (pointer:coarse) and (max-height:520px){.it .packs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.it .packs button{font-size:10.5px;padding:2px 2px}.it .packs button small{font-size:8.5px}}   /* 🔫 1029 묶음 버튼 = 카드 안 · 「300묶음」 줄바꿈 X */
@media (pointer:coarse) and (max-height:520px){#lane #toast div:nth-last-child(n+2){display:none}#lane{gap:3px}}   /* 📱 1029: 알림이 4.2초로 길어져 쌓이면 아래 버튼(조이스틱·E 안내)까지 내려옴 → 폰 = 최근 1줄만 */
@media (pointer:coarse) and (max-height:520px){#lane{max-height:calc(100vh - max(8px,env(safe-area-inset-top)) - 78px - 118px);overflow:hidden}#lane>#center,#lane>#invc{order:1}#lane>#legpop{order:2}#lane>:is(#gotbox,#lvbn,#lvbig,#toast){order:3}}   /* 📱 1029: 위 알림이 한꺼번에 떠도 아래 조작 버튼까지 안 내려옴 — 넘치면 덜 중요한 것(알림 줄·레벨업)이 잘림 · 카운트다운·초대 먼저 */
.mqs{max-height:34vh;overflow:auto}   /* 🎁 1029 선물 30칸: 묶음 개수 줄이 많아도 창이 안 늘어나게 */
@media (max-height:800px){body:not(.touch) #sidebtn{gap:3px}}   /* 🎙 1029: 음성 버튼 한 칸 늘어 1280x720 에서 아래 「내 기지」와 닿음 → 간격만 줄임 */
/* 🧩 1030 세트 = 빛나는 초록(전설 금색 자리 덮음) */
.slot.gs,.it.gs,.eq.gs,.detail.gs,.seq.gs,.srow.gs,#gotfeed .gf.gs{border-color:#3dff3d!important;box-shadow:0 0 8px rgba(61,255,61,.45)}
.gs>b,.slot.gs,.eq.gs b,.detail.gs>b,.seq.gs b,.srow.gs .sinf>b,.got.gs b,#gotfeed .gf.gs b{color:#3dff3d!important;text-shadow:0 0 8px rgba(61,255,61,.6)}
.setfx{display:block;margin-top:4px;padding:5px 7px;border:1px solid #2f6a2f;border-radius:8px;background:rgba(61,255,61,.06)}.setfx>b{color:#3dff3d;text-shadow:0 0 6px rgba(61,255,61,.5)}
.setfx small i{font-style:normal;color:#777}.setfx small i.on{color:#3dff3d}.setfx em{display:block;font-style:normal;color:#777;font-size:12px}.setfx em.on{color:#bfffbf}
.setx{border:1px solid #2f6a2f;border-radius:10px;padding:6px 8px;margin-bottom:6px;background:rgba(61,255,61,.05)}.setx>b{color:#3dff3d}.setx div{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.setx select{background:#1c1b1f;color:#eee;border:1px solid #444;border-radius:6px;padding:3px}

/* 🔧 1103 내구 0 장비 표시 */
.it, .eq, .slot { position: relative; }
.d0 { position: absolute; left: 50%; top: 2px; transform: translateX(-50%); z-index: 3; padding: 1px 6px; border-radius: 6px; background: #b3261e; color: #fff; font-size: 11px; font-weight: 700; line-height: 1.4; white-space: nowrap; pointer-events: none; box-shadow: 0 0 0 1px #ff8a80, 0 2px 6px rgba(0,0,0,.5); }
.it:has(.d0), .eq:has(.d0), .slot:has(.d0) { box-shadow: inset 0 0 0 2px #e5483c; }

.slot .d0{top:auto;bottom:-9px;font-size:10px;padding:0 5px}
/* 🎲 1104 디아식 3종 — 균열석 메뉴 · 악몽 대기실 · 계약 카드 · 혈화 상자 · 각인 */
.egm{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin-top:6px}
.egc{display:flex;flex-direction:column;gap:5px;background:#1b1814;border:1px solid #3a3226;border-radius:12px;padding:10px 12px}
.egc>b{font-size:16px}.egc>span{font-size:12.5px;color:#cfc6b4}.egc>button.btn{align-self:flex-start}
.egc.gr{border-color:#7a2a4a}.egc.hw{border-color:#8a3a14}.egc.nm{border-color:#6a3a8a}.egc.sh{border-color:#7a1a1a}.egc.en{border-color:#2a6a7a}
.egk{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:6px 9px;border-radius:9px;border:1px solid #6a4a8a;background:#1e1626;color:#ecdcff;font:inherit;font-weight:800;cursor:pointer}
.egk small{font-weight:600;color:#c8a8e8;font-size:11.5px}
.egs,.egsl{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;margin:8px 0}
.egs button,.egsl button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;padding:7px 9px;border-radius:9px;border:1px solid #3a3226;background:#17140f;color:#ece4d2;font:inherit;font-size:13px;cursor:pointer}
.egs button small,.egsl button small{color:#9fd8ff;font-size:11.5px}.egs button.on{border-color:#5ad0ff;box-shadow:0 0 8px #5ad0ff66}
.egfx{color:#9fe6ff}
.nmcu{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.nmcu div{background:#1e1218;border:1px solid #6a2a4a;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.nmcu b{color:#ff8aa8}.nmcu span{font-size:12.5px}.nmcu small{color:#8fd18f;font-size:12px}
.nmbl,.hwc{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:6px 0}
.nmbl button{padding:8px;border-radius:10px;border:1px solid #4a4030;background:#17140f;color:#ece4d2;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.nmbl button.on{border-color:#ffd23a;color:#ffe6a0;box-shadow:0 0 8px #ffd23a55}.nmbl button:disabled{cursor:default}
.hwc button{display:flex;flex-direction:column;gap:5px;text-align:left;padding:12px 10px;border-radius:12px;border:1px solid #6a3014;background:linear-gradient(#26140c,#160c08);color:#ece4d2;font:inherit;cursor:pointer;min-height:120px}
.hwc button b{font-size:15px;color:#ffc890}.hwc button i{color:#ffd23a;font-style:normal}.hwc button .up{color:#8fe88f;font-size:13px}.hwc button .dn{color:#ff7a6a;font-size:13px}
.hwc button.on{border-color:#ffd23a;box-shadow:0 0 12px #ffb03a88}
.hws{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:7px;margin-top:6px}
.hwb{background:#1b1214;border:1px solid #5a2228;border-radius:11px;padding:8px 10px}.hwb.lk{opacity:.55}
.hwb>b{display:block}.hwb>b i{font-style:normal;color:#ff6a6a;margin-left:6px}.hwb>small{color:#cfc6b4;font-size:12px}
.hwb>div,.hwsel{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.hwb button,.hwsel button,.hwsel select{padding:5px 10px;border-radius:99px;border:1px solid #6a3030;background:#221416;color:#ffd8d8;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.hwb button:disabled,.hwsel button:disabled{opacity:.45;cursor:default}
@media (max-width:640px){.nmbl,.hwc{grid-template-columns:1fr}.nmcu{grid-template-columns:1fr}.hwc button{min-height:0}}

/* 🎲 1104 운명의 주사위 */
.dcb{display:flex;justify-content:space-between;gap:8px;margin:6px 0;font-size:12.5px}.dadv{color:#8fe88f;font-weight:800}.dinsp{color:#ffd23a;font-weight:800}
.dopt{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:7px;margin:6px 0}
.dopt button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid #5a4a2a;background:linear-gradient(#211a10,#15110a);color:#ece4d2;font:inherit;font-size:12.5px;cursor:pointer}
.dopt button b{font-size:14.5px}.dopt .dck{color:#e8dcc4}.dopt .up{color:#8fe88f}.dopt .dn{color:#ff7a6a}.dopt button:hover{border-color:#ffd23a}
.droll{display:flex;justify-content:center;gap:18px;margin:14px 0 6px}
.d20{width:84px;height:84px;display:grid;place-items:center;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:linear-gradient(160deg,#f2d27a,#a8761c);color:#2a1a04;font:900 34px/1 Pretendard,'Malgun Gothic',sans-serif;opacity:.55}
.d20.spin{animation:d20s .28s linear infinite;opacity:1}.d20.on{opacity:1;background:linear-gradient(160deg,#fff0b8,var(--dc,#c9a85c));box-shadow:0 0 20px var(--dc)}
.droll.fin .d20.on{animation:d20p .35s ease-out}
@keyframes d20s{to{transform:rotate(360deg) scale(.92)}}@keyframes d20p{0%{transform:scale(1.5)}100%{transform:scale(1)}}
.dhead{text-align:center;font:900 26px/1.2 Pretendard,'Noto Sans KR','Malgun Gothic',sans-serif;margin:4px 0}.dsum{text-align:center;color:#cfc6b4}.dtxt{text-align:center;margin:8px 0;font-weight:700}
@media (max-width:640px){.dopt{grid-template-columns:1fr}.d20{width:64px;height:64px;font-size:26px}}

/* ⚗♻ 1104 가공·분해 */
.gab{background:#17140f;border:1px solid #3a3226;border-radius:12px;padding:9px 11px;margin:7px 0}.gab h4{margin:0 0 6px;display:flex;justify-content:space-between;align-items:center}
.gal{display:flex;flex-direction:column;gap:5px}.gal>div{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;border-top:1px dashed #2f2920;padding-top:5px}.gal>div>small{color:#9fd8ff;font-size:12px}.gal span{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}
.gar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:13px}.gar select{background:#221c14;color:#ece4d2;border:1px solid #4a4030;border-radius:8px;padding:3px 6px;font:inherit}
.svb{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:4px 0 8px;font-size:13px}.svb .svs{margin-left:10px}.svb .mini.on{border-color:#7cff9a;color:#bfffd0}.svb small{flex-basis:100%;color:#8f877a}
/* ☄ 1104 각성 재료 체크리스트 */
.jsum{margin:8px 0 6px;padding:8px 12px;border-radius:10px;font-size:14px}.jsum.no{background:#2a1410;border:1px solid #7a3020;color:#ffc8b8}.jsum.ok{background:#12261a;border:1px solid #2f7a4a;color:#bfffd0}
.jlist{display:flex;flex-direction:column;gap:6px}.jrow{display:flex;gap:9px;align-items:flex-start;background:#17140f;border:1px solid #3a3226;border-radius:10px;padding:7px 10px}.jrow.ok{border-color:#2f6a40}.jrow.no{border-color:#6a3020}
.jck{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900}.jrow.ok .jck{background:#1f5a32;color:#bfffd0}.jrow.no .jck{background:#5a1f18;color:#ffc8b8}
.jm{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.jm>small{font-size:12px;color:#cfc6b4}.jm .dn{color:#ff8a6a}.jm .up{color:#8fe88f}
.jbar{position:relative;height:16px;background:#0c0b0a;border:1px solid #3a3226;border-radius:99px;overflow:hidden}.jbar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#a03a20,#ff7a3a)}.jrow.ok .jbar i{background:linear-gradient(90deg,#2f7a4a,#7cff9a)}
.jbar em{position:relative;display:block;text-align:center;font-weight:800;font-size:11px;line-height:15px;font-style:normal;color:#fff;text-shadow:0 1px 2px #000}
.cr2.jin{grid-template-columns:minmax(170px,28%) 1fr;max-height:none}.cr2.jin .crd{max-height:none;overflow:visible;gap:6px;padding:10px}.cr2.jin .crh .ico{width:56px;height:56px}
.cr2.jin .jlist{display:grid;grid-template-columns:1fr 1fr;gap:6px}.cr2.jin .jrow{padding:6px 8px}.cr2.jin .jsum{margin:2px 0}.cr2.jin .acts{margin-top:4px}
@media (max-width:760px){.cr2.jin .jlist{grid-template-columns:1fr}}
