:root{--bg:#050a12;--panel:#071421;--line:#73521d;--gold:#e6b74e;--blue:#173f71;--text:#f4f0e5;--muted:#aeb7c5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% 10%,#10243a 0,#050a12 40%,#02050a 100%);color:var(--text);font-family:"Microsoft JhengHei","Noto Sans TC",Arial,sans-serif}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:linear-gradient(90deg,#06111d,#091827,#06111d);border-bottom:1px solid #1e2e42;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-family:Georgia,serif;font-size:30px;color:#f1c15b}.brand small{display:block;color:#8996a7;font-size:12px;margin-top:2px}.crest{width:44px;height:44px;border:1px solid #9a722a;border-radius:50%;display:grid;place-items:center;color:#f4c85f;font-size:25px;background:radial-gradient(circle,#223a50,#06111b)}.topbar nav{display:flex;gap:4px;height:100%}.topbar nav a{display:flex;align-items:center;padding:0 17px;color:#dce1e8;text-decoration:none;font-size:15px;border-bottom:3px solid transparent}.topbar nav a:hover,.topbar nav .active{color:#ffd46c;border-bottom-color:#e7b83f;background:#0c1a28}.hero{height:365px;position:relative;background:linear-gradient(180deg,rgba(2,7,12,.1),rgba(2,7,12,.45)),url('https://images.unsplash.com/photo-1518709268805-4e9042af9f23?auto=format&fit=crop&w=1800&q=85') center/cover;border-bottom:1px solid #8b6222;display:grid;place-items:center;overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,transparent 20%,rgba(0,0,0,.45) 100%)}.hero-content{position:relative;z-index:1;text-align:center;text-shadow:0 4px 12px #000}.crown{font-size:42px;color:#ffd369}.hero h1{font-family:Georgia,"Microsoft JhengHei",serif;font-size:78px;margin:0;color:#f7c95c;letter-spacing:8px}.hero p{font-size:25px;letter-spacing:13px;margin:8px 0;color:#fff}.ornament{color:#e5b74c;margin:2px 0}.announcement{width:96%;max-width:1500px;margin:18px auto 14px;padding:17px 26px;border:1px solid #8c6324;border-radius:8px;background:linear-gradient(90deg,#061a2c,#09243a,#061a2c);display:flex;align-items:center;gap:18px}.announcement .megaphone{font-size:27px}.announcement strong{font-size:22px;color:#f4c45d}.announcement-text{color:#d6dbe3;flex:1}.announcement time{color:#8794a5}.grid-two{width:96%;max-width:1500px;margin:0 auto 14px;display:grid;grid-template-columns:1fr 1.12fr;gap:14px}.panel{background:linear-gradient(180deg,#071522,#04101b);border:1px solid #6d4e1c;border-radius:7px;box-shadow:0 12px 30px #0007;padding:22px}.panel-title{display:flex;align-items:center;gap:12px;border-bottom:1px solid #24364a;padding-bottom:14px}.panel-title span{font-size:26px;color:#e9bb55}.panel-title h2{font-size:24px;margin:0;color:#f1c15b}.panel-title a{margin-left:auto;color:#e4b44b;text-decoration:none}.table-head,.rank-row{display:grid;grid-template-columns:70px 1fr 150px;align-items:center}.table-head{color:#a8b2bf;padding:14px 4px;border-bottom:1px solid #1e2d3d}.rank-row{height:48px;border-bottom:1px solid #172636}.rank-num{text-align:center;color:#d2d8df}.rank-num.top1{color:#ffd14f;font-size:21px}.rank-num.top2{color:#d6dde7;font-size:20px}.rank-num.top3{color:#cd9551;font-size:20px}.avatar{width:32px;height:32px;border-radius:50%;background:#1a2b3c;display:inline-grid;place-items:center;color:#d8a94b;margin-right:-10px}.player{padding-left:4px}.rank-row strong{color:#f0c65c;text-align:right}.searchbox{display:flex;margin-top:16px}.searchbox input,.admin-card input{flex:1;background:#050b13;border:1px solid #34506d;color:#fff;border-radius:6px;padding:13px 15px;font-size:15px;outline:none}.searchbox button{width:58px;background:#0b2032;border:1px solid #34506d;color:#e8b84e;font-size:23px;border-radius:0 6px 6px 0}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.photo-grid figure{margin:0;position:relative;overflow:hidden;border:1px solid #72501c;border-radius:5px;background:#02070c;aspect-ratio:1.25}.photo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:.25s}.photo-grid figure:hover img{transform:scale(1.04)}.photo-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:8px;background:linear-gradient(transparent,#000c);font-size:12px}.empty-gallery{min-height:320px;display:grid;place-items:center;text-align:center;color:#8795a6}.empty-gallery div{font-size:70px;color:#b07b25}.lower{grid-template-columns:1fr 1fr}.recruit-panel{display:grid;grid-template-columns:42% 58%;padding:0;overflow:hidden}.recruit-art{min-height:350px;background:radial-gradient(circle at 50% 40%,#653e16,#120c08 60%,#050a10);display:grid;place-items:center}.knight{font-size:150px;color:#e3b34f;text-shadow:0 0 30px #a96a13}.recruit-copy{padding:24px}.recruit-copy h3{font-size:21px;color:#f2c35c;margin:15px 0}.recruit-copy li{margin:15px 0;color:#c9d1dc}.gold-btn,.green-btn{border:1px solid #a57627;border-radius:6px;padding:13px 18px;font-weight:700;cursor:pointer;color:#fff;background:linear-gradient(180deg,#275789,#0d3155);font-size:15px}.gold-btn{background:linear-gradient(180deg,#d49c39,#7b5218)}.green-btn{background:linear-gradient(180deg,#27a94f,#08752a);border-color:#3fcf6a}.contact-panel{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}.contact-icon{font-size:42px}.contact-panel h2{margin:0 0 10px;color:#f1c15b}.wechat{font-size:20px;color:#27d85f;font-weight:700}.qr-placeholder{width:150px;height:150px;background:repeating-linear-gradient(45deg,#fff 0 5px,#111 5px 10px);color:#0b0b0b;display:grid;place-items:center;font-weight:900;font-size:18px;border:7px solid #fff}footer{margin-top:30px;padding:38px 6vw;background:#02070d;border-top:1px solid #2b3c50;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}footer strong{font-family:Georgia,serif;color:#f0bd54;font-size:28px}footer h4{color:#eab850;margin-top:0}footer a{display:block;color:#aab5c4;text-decoration:none;margin:8px 0}.copyright{text-align:center;padding:15px;background:#010408;color:#687687;border-top:1px solid #111c28}.toast{position:fixed;right:20px;bottom:20px;padding:14px 18px;border-radius:8px;background:#123f24;border:1px solid #2ab55b;color:#dfffe8;z-index:30}.toast.error,.error{background:#4a1f28;border:1px solid #a94c5d;color:#ffdce2}.toast.static{position:static;margin-bottom:18px}.admin-body{min-height:100vh;padding:40px 20px;background:radial-gradient(circle at 50% 0,#172b40,#050a12 50%)}.admin-wrap{max-width:1100px;margin:auto}.admin-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.admin-top strong{font-size:25px;color:#f1c15b}.admin-top a,.back{color:#e8b84e;text-decoration:none}.admin-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:20px}.admin-card{background:#081522;border:1px solid #6d4e1c;border-radius:9px;padding:24px;box-shadow:0 15px 40px #0008}.admin-card h1{margin-top:0;color:#f1c15b}.admin-card p{color:#aeb8c5;line-height:1.7}.admin-card form{display:grid;gap:12px;margin-top:20px}.admin-card input[type=file]{color:#ccd4df}.hint{font-size:13px}.admin-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-photo{background:#040a10;border:1px solid #23384d;border-radius:6px;padding:7px}.admin-photo img{width:100%;aspect-ratio:1;object-fit:cover}.admin-photo div{padding:7px;font-size:13px;min-height:30px}.admin-photo button{width:100%;padding:7px;background:#3b1720;color:#ffbec9;border:1px solid #743443;border-radius:4px;cursor:pointer}.big{margin:auto}.admin-card:first-child{text-align:left}.admin-card .back{display:inline-block;margin-top:20px}
@media(max-width:900px){.photo-grid{grid-template-columns:repeat(3,1fr)}.topbar{height:auto;min-height:72px;align-items:flex-start;padding:12px 4vw;gap:10px;flex-direction:column}.topbar nav{width:100%;overflow-x:auto;height:44px}.topbar nav a{white-space:nowrap;padding:0 10px}.hero{height:290px}.hero h1{font-size:50px;letter-spacing:4px}.hero p{font-size:18px;letter-spacing:7px}.grid-two,.lower,.admin-grid{grid-template-columns:1fr}.announcement{flex-wrap:wrap}.announcement-text{flex-basis:70%}.photo-grid{grid-template-columns:repeat(2,1fr)}footer{grid-template-columns:1fr}.recruit-panel{grid-template-columns:1fr}.recruit-art{min-height:220px}.contact-panel{grid-template-columns:auto 1fr}.qr-placeholder{grid-column:1/-1;margin:auto}}
@media(max-width:520px){.panel{padding:15px}.table-head,.rank-row{grid-template-columns:45px 1fr 105px}.hero h1{font-size:39px}.hero p{letter-spacing:4px}.photo-grid{grid-template-columns:1fr 1fr}.brand strong{font-size:24px}.announcement{padding:15px}.announcement strong{font-size:19px}.announcement-text{font-size:13px}}

.lang-switch{display:flex;align-items:center;margin-left:8px;border-left:1px solid #26384b;padding-left:8px}
.lang-switch a{padding:0 6px!important;font-size:12px!important;color:#aeb7c5!important;border:0!important;background:transparent!important}
.lang-switch a.sel{color:#ffd46c!important}



.link-btn{text-decoration:none;display:inline-block}
.contact-panel{width:96%;max-width:1500px;margin:0 auto 14px}
@media(max-width:900px){.lang-switch{border-left:0;padding-left:0;margin-left:0}}

/* Kill ranking period selector */
.rank-titlebar { gap: 12px; }
.rank-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.period-select-label { color: #d9ad4a; font-size: 14px; }
.period-select { appearance: none; border: 1px solid #7d5b24; background: #0b1520; color: #f2d48a; border-radius: 7px; padding: 7px 30px 7px 11px; font-size: 14px; cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, #d9ad4a 50%), linear-gradient(135deg, #d9ad4a 50%, transparent 50%); background-position: calc(100% - 14px) 12px, calc(100% - 9px) 12px; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.period-select:focus { outline: 1px solid #d9ad4a; }
@media (max-width: 760px) {
  .rank-titlebar { flex-wrap: wrap; }
  .rank-actions { width: 100%; margin-left: 0; justify-content: flex-end; }
  .period-select { min-width: 105px; }
}

.empty-ranking{padding:45px 15px;text-align:center;color:#8795a6;border:1px dashed #2d4259;border-radius:8px;margin-top:10px}
.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid #26384b;text-align:left}.admin-table th{color:#d9ad4a}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form input{width:auto;min-width:110px}.number-input{max-width:170px}

/* GW1 layout correction: keep main content centered and prevent anchor/hash views from creating a side offset */
main{width:100%;max-width:none;margin:0;padding:0}
.announcement,.grid-two,.contact-panel{box-sizing:border-box;margin-left:auto!important;margin-right:auto!important;position:relative;left:0!important;transform:none!important}
.grid-two{width:96%!important;max-width:1500px!important}
.announcement{width:96%!important;max-width:1500px!important}
.contact-panel{width:96%!important;max-width:1500px!important}

/* GW1 ranking alignment fix */
.rank-row{grid-template-columns:70px minmax(0,1fr) 150px}
.player-cell{min-width:0;display:flex;align-items:center;gap:8px}
.player{padding-left:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-row strong{min-width:0;text-align:right;white-space:nowrap}
@media(max-width:520px){
  .table-head,.rank-row{grid-template-columns:45px minmax(0,1fr) 105px}
  .player-cell{gap:6px}
  .avatar{width:30px;height:30px;margin-right:0;flex:0 0 30px}
}


/* Gallery click-to-view full image */
.gallery-item{cursor:zoom-in;outline:none}
.gallery-item:focus-visible{box-shadow:0 0 0 2px #e6b74e}
.gallery-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:40px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease;z-index:1000}
.gallery-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.gallery-lightbox>img{display:block;width:auto;height:auto;max-width:calc(100vw - 80px);max-height:calc(100vh - 80px);object-fit:contain;border:1px solid #8b6222;border-radius:6px;box-shadow:0 20px 70px #000}
.gallery-close{position:absolute;top:16px;right:20px;width:44px;height:44px;border:1px solid #8b6222;border-radius:50%;background:#071421;color:#f5cf72;font-size:32px;line-height:1;cursor:pointer;z-index:1001}
.gallery-close:hover{background:#17283a}
.gallery-no-scroll{overflow:hidden}
@media(max-width:520px){.gallery-lightbox{padding:18px}.gallery-lightbox>img{max-width:calc(100vw - 36px);max-height:calc(100vh - 36px)}.gallery-close{top:8px;right:8px}}
