
:root{--bg:#0c0a07;--panel:#141009;--gold:#d9a441;--gold-hi:#f4d98a;--gold-deep:#9c6f22;--ink:#e8dcc0;--ink-dim:#a89876;--line:#3a2c14;}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:radial-gradient(1200px 500px at 50% -8%,rgba(217,164,65,.10),transparent 60%),var(--bg);color:var(--ink);font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;line-height:1.7;padding-bottom:60px;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px;}
.top{display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-size:13px;color:var(--ink-dim);letter-spacing:1px;}
.hero{text-align:center;padding:32px 0 22px;}
.hero .eyebrow{font-size:12px;letter-spacing:7px;color:var(--gold-deep);}
.hero h1{font-size:40px;letter-spacing:9px;margin:8px 0 6px;background:linear-gradient(180deg,var(--gold-hi),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 20px rgba(217,164,65,.25);}
.hero .sub{color:var(--ink-dim);font-size:13px;letter-spacing:2px;}
.regionbar{position:sticky;top:0;z-index:20;background:rgba(12,10,7,.92);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0;margin-bottom:10px;}
.regionbar .inner{max-width:1160px;margin:0 auto;padding:0 20px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.regionbar a{font-size:13px;letter-spacing:1px;color:var(--ink-dim);padding:5px 13px;border:1px solid var(--line);border-radius:20px;transition:.15s;}
.regionbar a:hover{border-color:var(--gold);color:var(--gold-hi);background:rgba(217,164,65,.1);}
section{margin-top:34px;scroll-margin-top:115px;}
.sec-h{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.sec-h::before,.sec-h::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--line),transparent);}
.sec-h h2{font-size:22px;letter-spacing:5px;color:var(--gold-hi);white-space:nowrap;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;}
.card{background:var(--panel);border:1px solid var(--line);border-radius:5px;overflow:hidden;transition:.18s;display:block;}
.card:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.5);}
.card .cover{height:150px;overflow:hidden;background:#000;border-bottom:1px solid var(--line);}
.card .cover img{width:100%;height:100%;object-fit:cover;}
.card .noimg{height:150px;display:flex;align-items:center;justify-content:center;color:#5e5238;font-size:13px;background:#0a0805;border-bottom:1px solid var(--line);}
.card .body{padding:13px 16px;display:flex;align-items:center;justify-content:space-between;}
.card .name{font-size:16px;letter-spacing:1px;color:var(--gold-hi);}
.card .floors{font-size:12px;color:var(--ink-dim);border:1px solid var(--line);border-radius:12px;padding:2px 10px;white-space:nowrap;}
.backtop{display:block;width:max-content;margin:40px auto 0;padding:11px 28px;font-size:14px;letter-spacing:3px;color:var(--gold-hi);border:1px solid var(--gold-deep);border-radius:3px;background:rgba(217,164,65,.06);}
footer{margin-top:40px;text-align:center;font-size:12px;color:#5e5238;border-top:1px solid var(--line);padding-top:20px;}
/* dungeon page */
.floornav{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:20px 0;}
.floornav button{padding:8px 16px;font-size:14px;letter-spacing:1px;color:var(--ink-dim);background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:3px;cursor:pointer;font-family:inherit;transition:.15s;}
.floornav button:hover{border-color:var(--gold-deep);color:var(--gold-hi);}
.floornav button.on{border-color:var(--gold);color:var(--gold-hi);background:rgba(217,164,65,.12);}
.floor{display:none;margin-top:20px;background:var(--panel);border:1px solid var(--line);border-radius:5px;overflow:hidden;}
.floor.on{display:block;}
.floor.solo{display:block;}
.fh{display:flex;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(217,164,65,.08),transparent);}
.fh .badge{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;border:1px solid var(--gold-deep);border-radius:50%;color:var(--gold-hi);background:#0a0805;}
.fh h2{font-size:19px;letter-spacing:2px;color:var(--gold-hi);}
.fbody{text-align:center;padding:18px;background:#0a0805;}
.fbody img{max-width:100%;height:auto;border:1px solid var(--gold-deep);border-radius:2px;background:#000;}
.fbody .miss{color:#5e5238;font-size:13px;padding:40px;}

/* === 地圖圖片燈箱(zoom) === */
.zoomov{position:fixed;inset:0;z-index:100000;background:rgba(5,4,2,.93);display:none;align-items:center;justify-content:center;overflow:hidden;touch-action:none;}
.zoomov.on{display:flex;}
.zoomov .zoomimg{max-width:94vw;max-height:86vh;transform-origin:center center;will-change:transform;user-select:none;-webkit-user-drag:none;}
.zoombar{position:fixed;top:14px;right:14px;display:flex;gap:8px;z-index:100001;}
.zoombar button{width:44px;height:44px;font-size:20px;font-weight:700;color:#e8dcc0;background:rgba(20,16,9,.92);border:1px solid #3a2c14;border-radius:9px;cursor:pointer;line-height:1;font-family:inherit;}
.zoombar button:hover{border-color:#d9a441;color:#f4d98a;}
.zoomhint{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);color:#a89876;font-size:12px;letter-spacing:1px;background:rgba(20,16,9,.7);padding:6px 14px;border-radius:20px;border:1px solid #3a2c14;pointer-events:none;}
.fbody img{cursor:zoom-in;}

/* === 傲慢塔分組 === */
.grp{display:none;}
.grp.on{display:block;}
