/* =====================================================================
   270C 鑲金招募令（Gilded Decree）— Kit/css/theme.css
   P1 框架皮：設計 token、基底、金字、石板、分隔線、按鈕、標籤、功能牌、提示板、
   導覽列、頁尾、手機 dock、Modal 外框、動效守則。
   紀律：新類別一律 gs- 前綴；不加 !important；本檔必須在 style.css／main.min.css／download.css 之後載入。
   ===================================================================== */

/* ---------- 2.1 色票 / token ---------- */
:root{
  /* 底材（黑石） */
  --gs-bg:#0c0e19; --gs-bg-deep:#07080d; --gs-bg-raise:#151925; --gs-bg-plate:#0a0a0d; --gs-bg-warm:#18100f;
  /* 金（鎦金） */
  --gs-gold-glow:#fdf36a; --gs-gold-hi:#f9d46f; --gs-gold:#d19d4b; --gs-gold-warm:#eab035; --gs-gold-dark:#a66d26; --gs-gold-deep:#6b4414;
  /* 框線（霧面古金） */
  --gs-frame:#ba9369; --gs-frame-dim:#885f36; --gs-frame-hi:#e8c98a;
  /* 文字 */
  --gs-cream:#fdf4d9; --gs-cream-85:rgba(253,244,217,.85); --gs-muted:#b8ad98; --gs-ink:#2a1606;
  /* 主題色：一頁一色，只以光暈／寶石／光條／tag 出現 */
  --gs-crimson:#7a2b34; --gs-crimson-hi:#be5554;
  --gs-royal:#142b6b;   --gs-royal-hi:#3d6dc8;
  --gs-emerald:#186435; --gs-emerald-hi:#1ac37a;
  --gs-spectral:#437582;--gs-spectral-hi:#5ca5ad;
  --gs-violet:#201430;  --gs-violet-hi:#8a5cc8;   /* 黑妖職業光條（唯一用途） */
  --gs-ember:#c5682f;   --gs-ember-hi:#ee9f32;
  --gs-ice:#44aadb;                               /* 冰之女王卡 hover（唯一用途） */
  /* 漸層 */
  --gs-gold-grad:linear-gradient(180deg,#fdf36a 0%,#f9d46f 22%,#d19d4b 55%,#a66d26 100%);
  --gs-gold-solid:linear-gradient(180deg,#f9d46f 0%,#d19d4b 55%,#b87a2c 100%);  /* 底端原 #a66d26：深字對比 4.0，提亮到 #b87a2c 後約 4.8（AA） */
  --gs-plate-grad:linear-gradient(180deg,#141825 0%,#0a0a0d 60%,#1a120d 100%);
  --gs-fade-b:linear-gradient(180deg,transparent 0%,rgba(12,14,25,.55) 55%,#0c0e19 100%);
  --gs-fade-l:linear-gradient(90deg,#0c0e19 0%,rgba(12,14,25,.88) 30%,rgba(12,14,25,.25) 60%,transparent 100%);
  --gs-vignette:radial-gradient(ellipse at 50% 35%,transparent 40%,rgba(7,8,13,.85) 100%);
  /* 陰影三組 */
  --gs-sh-plate:inset 0 1px 0 rgba(249,212,111,.25),inset 0 0 24px rgba(0,0,0,.7),0 4px 14px rgba(0,0,0,.6);
  --gs-sh-hover:inset 0 1px 0 rgba(249,212,111,.4),0 0 0 1px rgba(249,212,111,.35),0 0 18px rgba(249,212,111,.25),0 6px 18px rgba(0,0,0,.7);
  --gs-sh-modal:0 0 0 1px #07080d,0 24px 70px rgba(0,0,0,.85);
  /* 當頁強調色（由 body[data-theme] 切換） */
  --gs-accent:var(--gs-gold); --gs-accent-hi:var(--gs-gold-hi);
  /* 角飾藤蔓（48×48，stroke #d19d4b 1.3px）與噪點 */
  --gs-corner:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23d19d4b' stroke-width='1.3' stroke-linecap='round'><path d='M2 46V10M2 10h36'/><path d='M8 40V16M8 16h24'/><path d='M8 16c8 0 14 3 16 10-5-3-9-2-11 1 3 1 7 0 9-3'/><path d='M14 8c4 2 6 6 5 10M24 8c1 4 0 7-3 9'/><circle cx='8' cy='16' r='2' fill='%23d19d4b' stroke='none'/><path d='M2 10l5-5M38 10l4-4'/></svg>");
  --gs-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/></svg>");
  /* Bootstrap 圓角歸零（全站 0） */
  --bs-border-radius:0; --bs-border-radius-sm:0; --bs-border-radius-lg:0; --bs-border-radius-xl:0; --bs-border-radius-xxl:0;
  --bs-modal-border-radius:0;
}
body[data-theme="info"]    {--gs-accent:var(--gs-royal);   --gs-accent-hi:var(--gs-royal-hi)}
body[data-theme="quest"]   {--gs-accent:var(--gs-crimson); --gs-accent-hi:var(--gs-crimson-hi)}
body[data-theme="shop"]    {--gs-accent:var(--gs-emerald); --gs-accent-hi:var(--gs-emerald-hi)}
body[data-theme="maps"]    {--gs-accent:var(--gs-spectral);--gs-accent-hi:var(--gs-spectral-hi)}
body[data-theme="download"]{--gs-accent:var(--gs-ember);   --gs-accent-hi:var(--gs-ember-hi)}
/* home / news / Statement / ActivityContent 維持 gold */

/* ---------- 基底 ---------- */
html{-webkit-text-size-adjust:100%;background-color:var(--gs-bg)}
body{margin:0;background:transparent;color:var(--gs-cream-85);font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.8;overflow-x:hidden;padding-top:64px;min-height:100vh}
/* 暗角：底色只放在 html（canvas），body 透明，負 z-index 的暗角才能畫在 canvas 之上、所有內容之下（規格 §2.3 的等效做法） */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:var(--gs-vignette)}
.gs-main{position:relative}  /* 不設 z-index：內頁裡的 modal（如 page/home.php #NewModal）才不會被 body 層的 backdrop 蓋住 */
/* Bootstrap 元件圓角歸零只作用於 index 骨架內容區與 modal；home.php 的 main.min.css .btn（hero CTA）留待 P2 重寫 */
.gs-main .btn,.gs-main .badge,.gs-main .form-control,.gs-main .form-select,.gs-main .alert,.gs-main .card,.gs-main .dropdown-menu,.gs-main .toast,.gs-modal .btn,.gs-modal .badge,.gs-modal .form-control,.gs-modal .form-select,.gs-modal .alert,.gs-modal .card,.gs-modal .dropdown-menu{border-radius:0}
.gs-nav,.gs-nav *,.gs-footer,.gs-footer *,.gs-dock,.gs-dock *,.gs-btn,.gs-btn *,.gs-tag,.gs-slab,.gs-plate,.gs-tile,.gs-tile *,.gs-notice,.gs-kbd kbd,.gs-seal,.gs-iconbtn,.gs-modal__h,.gs-modal__h *,.gs-modal__f,.gs-modal__f *{box-sizing:border-box}
.gs-cinzel{font-family:Cinzel,"Noto Serif TC",serif;font-weight:700;letter-spacing:.14em}
.gs-serif{font-family:"Noto Serif TC",serif;font-weight:700}
.gs-oswald{font-family:Oswald, "Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-weight:500}
.gs-muted{color:var(--gs-muted)}
.gs-wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.gs-section{padding:72px 0;position:relative}
.gs-section--deep{background:#0a0a0d}
::selection{background:rgba(209,157,75,.35);color:var(--gs-cream)}
@media(min-width:992px){body{font-size:16px}}
@media(max-width:991px){body{padding-top:56px}}
@media(max-width:575px){.gs-wrap{padding:0 16px}.gs-section{padding:40px 0}}

/* ---------- 2.2 金字 .gs-title ----------
   三層：元素本體（透明字，只負責排版）→ ::before 深金描邊＋投影（z -1）→ ::after 金漸層字（z 1）。
   用法：<h1 class="gs-title" data-text="標題">標題</h1>；Angular 用 ng-attr-data-text。
   沒有 data-text 時退回單色金，不會變成透明字。 */
.gs-title{position:relative;display:inline-block;margin:0;isolation:isolate;font-family:"Noto Serif TC",serif;font-weight:900;letter-spacing:.08em;line-height:1.15;font-size:clamp(30px,6vw,56px);color:#e3b65a;text-shadow:0 1px 0 #6b4414,0 3px 8px rgba(0,0,0,.8)}
.gs-title[data-text]{color:transparent;text-shadow:none}
.gs-title[data-text]::before,.gs-title[data-text]::after{content:attr(data-text);position:absolute;inset:0;pointer-events:none;white-space:inherit;overflow-wrap:inherit}
.gs-title[data-text]::before{z-index:-1;color:#6b4414;-webkit-text-stroke:1.5px #6b4414;filter:drop-shadow(0 2px 0 #6b4414) drop-shadow(0 4px 6px rgba(0,0,0,.8)) drop-shadow(0 0 14px rgba(249,212,111,.25))}
.gs-title[data-text]::after{z-index:1;color:transparent;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text}
.gs-title--sm{font-size:clamp(20px,3.2vw,28px)}
.gs-title--sm[data-text]::before{-webkit-text-stroke:.8px #6b4414;filter:drop-shadow(0 1px 0 #6b4414) drop-shadow(0 3px 6px rgba(0,0,0,.8))}
.gs-title--sm[data-text]::after{background-image:linear-gradient(180deg,#fdf36a 0%,#f9d46f 35%,#d19d4b 78%,#c2893a 100%)}
@supports not (-webkit-background-clip:text){.gs-title[data-text]{color:#e3b65a;text-shadow:0 1px 0 #6b4414,0 3px 8px rgba(0,0,0,.8)}.gs-title[data-text]::before,.gs-title[data-text]::after{display:none}}
@media(max-width:575px){.gs-title[data-text]::before{filter:drop-shadow(0 2px 0 #6b4414);-webkit-text-stroke:1px #6b4414}.gs-title--sm[data-text]::before{-webkit-text-stroke:.5px #6b4414}}

/* ---------- 2.3 石板 .gs-slab 家族 ---------- */
.gs-slab{position:relative;background:var(--gs-plate-grad);border:1px solid var(--gs-frame);
  box-shadow:inset 0 0 0 1px rgba(136,95,54,.45),inset 0 1px 0 rgba(249,212,111,.18),inset 0 0 40px rgba(0,0,0,.55),0 10px 30px rgba(0,0,0,.6);transition:.35s ease}
.gs-slab--hover:hover{border-color:var(--gs-gold-hi);box-shadow:var(--gs-sh-hover);transform:translateY(-2px);background:linear-gradient(180deg,#171a27 0%,#18100f 100%)}
.gs-slab--double{border:1px solid var(--gs-frame-hi);outline:1px solid var(--gs-frame-dim);outline-offset:-7px}
@media(max-width:575px){.gs-slab--double{outline-offset:-5px}}
/* 角飾：只給 .gs-slab--ornate（hero／分類匾額／最終 CTA／modal），.gs-tile 絕不放；需內部 <i class="gs-c"></i> */
.gs-slab--ornate::before,.gs-slab--ornate::after,.gs-slab--ornate>.gs-c::before,.gs-slab--ornate>.gs-c::after{content:"";position:absolute;width:48px;height:48px;background:var(--gs-corner) no-repeat center/contain;z-index:3;pointer-events:none}
.gs-slab--ornate>.gs-c{position:absolute;inset:0;pointer-events:none;z-index:3}
.gs-slab--ornate::before{left:6px;top:6px}
.gs-slab--ornate::after{right:6px;top:6px;transform:scaleX(-1)}
.gs-slab--ornate>.gs-c::before{left:6px;bottom:6px;transform:scaleY(-1)}
.gs-slab--ornate>.gs-c::after{right:6px;bottom:6px;transform:scale(-1)}
@media(max-width:575px){.gs-slab--ornate::before,.gs-slab--ornate::after,.gs-slab--ornate>.gs-c::before,.gs-slab--ornate>.gs-c::after{width:32px;height:32px}}
/* 噪點：<i class="gs-grain-layer"></i>，只套 hero／分類匾額／最終 CTA／modal；手機停用（效能） */
.gs-grain{position:relative}
.gs-grain-layer{position:absolute;inset:0;background:var(--gs-grain);opacity:.045;mix-blend-mode:overlay;pointer-events:none;z-index:2}
@media(max-width:991px){.gs-grain-layer{display:none}}

/* 副標板 */
.gs-plate{display:inline-flex;align-items:center;gap:10px;background:var(--gs-bg-plate);border:1px solid rgba(136,95,54,.7);box-shadow:var(--gs-sh-plate);padding:8px 18px;font-family:"Noto Serif TC",serif;font-weight:700;font-size:15px;letter-spacing:.14em;color:var(--gs-cream);line-height:1.5}
.gs-plate.gem::before,.gs-plate.gem::after{content:"";width:6px;height:6px;flex:0 0 6px;background:var(--gs-gold-grad);transform:rotate(45deg);box-shadow:0 0 6px rgba(249,212,111,.6)}
.gs-plate--sm{font-size:12.5px;letter-spacing:.08em;padding:4px 12px;font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-weight:400;color:var(--gs-muted)}
@media(max-width:575px){.gs-plate{letter-spacing:.08em;font-size:14px;padding:7px 12px}}

/* ---------- 3.4 分隔線 —◆— / 章節標題三件組 ---------- */
.gs-divider{display:flex;align-items:center;gap:12px;margin:0}
.gs-divider::before,.gs-divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,#ba9369 40%,#ba9369 60%,transparent)}
.gs-divider>i{width:8px;height:8px;flex:0 0 8px;background:var(--gs-gold-grad);transform:rotate(45deg);box-shadow:0 0 0 1px #6b4414,0 0 8px rgba(249,212,111,.6)}
.gs-divider--end::after{display:none}
.gs-chapter{display:flex;flex-direction:column;gap:6px;margin-bottom:28px}
.gs-chapter__eyebrow{display:flex;align-items:baseline;gap:10px}
.gs-chapter__eyebrow b{font-family:Cinzel,serif;font-weight:700;font-size:24px;letter-spacing:.12em;line-height:1;color:transparent;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text}
.gs-chapter__eyebrow span{font-family:"Noto Serif TC",serif;font-weight:700;font-size:12px;letter-spacing:.2em;color:var(--gs-gold)}
.gs-rule{width:48px;height:1px;background:var(--gs-gold-grad);transform-origin:left}
.js .gs-reveal .gs-rule{transform:scaleX(0);transition:transform .6s ease}
.js .gs-reveal.gs-in .gs-rule{transform:scaleX(1)}
.gs-chapter__row{display:flex;align-items:center;gap:16px}
.gs-chapter__row::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#ba9369,rgba(186,147,105,.15));order:2}
.gs-chapter__row>i{order:3;width:5px;height:5px;background:var(--gs-gold);transform:rotate(45deg);margin-left:-14px;box-shadow:0 0 6px rgba(249,212,111,.5)}
.gs-chapter__lead{color:var(--gs-muted);font-size:14px;margin:0}
@media(max-width:575px){.gs-chapter__eyebrow span{letter-spacing:.14em}.gs-chapter{margin-bottom:20px}}

/* ---------- 3.5 按鈕 ---------- */
.gs-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 26px;margin:0;border-radius:0;-webkit-appearance:none;appearance:none;font-family:"Noto Serif TC",serif;font-weight:700;font-size:15px;letter-spacing:.14em;line-height:1;text-decoration:none;transition:.35s ease;cursor:pointer;border:1px solid transparent;white-space:nowrap;background:none;color:var(--gs-cream)}
.gs-btn:focus-visible{outline:2px solid var(--gs-gold-hi);outline-offset:2px}
.gs-btn--sm{height:36px;padding:0 16px;font-size:13px;letter-spacing:.1em}
.gs-btn--xs{height:30px;padding:0 12px;font-size:12px;letter-spacing:.08em}
.gs-btn-solid{background:var(--gs-gold-solid);color:var(--gs-ink);font-weight:900;font-size:16px;letter-spacing:.16em;border-color:#6b4414;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 24px rgba(253,243,106,.3)}
.gs-btn-solid.gs-btn--sm{font-size:13px;letter-spacing:.12em}
.gs-btn-solid:hover{filter:brightness(1.08);color:var(--gs-ink)}
.gs-btn-solid:active{transform:translateY(1px)}
.gs-btn-outline{background:transparent;color:var(--gs-cream);border-color:var(--gs-frame)}
.gs-btn-outline:hover{border-color:var(--gs-gold-hi);color:var(--gs-gold-hi);box-shadow:0 0 16px rgba(249,212,111,.25)}
.gs-btn-plaque{background-color:var(--gs-bg-plate);border:1px solid var(--gs-frame-hi);outline:1px solid var(--gs-frame-dim);outline-offset:-5px;box-shadow:inset 0 1px 0 rgba(249,212,111,.25),0 6px 18px rgba(0,0,0,.6);font-size:1.15rem;font-weight:900;color:transparent;background-image:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text}
.gs-btn-plaque:hover{outline-color:var(--gs-gold);box-shadow:inset 0 1px 0 rgba(249,212,111,.4),0 0 18px rgba(249,212,111,.25),0 6px 18px rgba(0,0,0,.7);transform:translateY(-2px)}
.gs-btn-plaque:focus-visible{outline-offset:-5px}
.gs-link{color:var(--gs-cream);text-decoration:none;border-bottom:1px solid rgba(186,147,105,.4);padding-bottom:1px;font-family:"Noto Serif TC",serif;font-weight:700;font-size:14px;letter-spacing:.1em;transition:.35s ease}
.gs-link::after{content:"→";margin-left:.35em;font-family:Cinzel,serif;font-size:.85em}
.gs-link[target="_blank"]::after{content:"↗"}
.gs-link:hover{color:var(--gs-gold-hi);border-color:var(--gs-gold-hi)}
.gs-ext{font-family:Cinzel,serif;font-weight:700;font-size:.75em;color:var(--gs-gold);opacity:.85;margin-left:.3em}

/* ---------- 3.6 標籤 / 封印石 / 快捷鍵 ---------- */
.gs-tag{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--gs-gold);background:var(--gs-plate-grad);color:var(--gs-cream);font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-weight:400;font-size:12px;letter-spacing:.1em;padding:2px 10px;line-height:1.6;white-space:nowrap;border-radius:0}
.gs-tag.crimson{box-shadow:inset 0 0 18px rgba(122,43,52,.65),0 0 10px rgba(190,85,84,.25);color:#e7a6a3;border-color:rgba(190,85,84,.7)}
.gs-tag.royal{box-shadow:inset 0 0 18px rgba(20,43,107,.75),0 0 10px rgba(61,109,200,.25);color:#a9c0f0;border-color:rgba(61,109,200,.7)}
.gs-tag.emerald{box-shadow:inset 0 0 18px rgba(24,100,53,.65),0 0 10px rgba(26,195,122,.25);color:#9fe8c4;border-color:rgba(26,195,122,.6)}
.gs-tag.spectral{box-shadow:inset 0 0 18px rgba(67,117,130,.65),0 0 10px rgba(92,165,173,.25);color:#b4dde2;border-color:rgba(92,165,173,.6)}
.gs-tag.ember{box-shadow:inset 0 0 18px rgba(197,104,47,.55),0 0 10px rgba(238,159,50,.25);color:#f3c38c;border-color:rgba(238,159,50,.6)}
.gs-tag--new{font-family:Cinzel,serif;font-weight:700;font-size:10px;letter-spacing:.14em;background:var(--gs-gold-solid);color:var(--gs-ink);border:0;padding:1px 6px;line-height:1.5}
.gs-seal{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--gs-gold);background:var(--gs-bg-plate);padding:6px 14px 6px 10px;font-family:"Noto Serif TC",serif;font-weight:700;font-size:13px;letter-spacing:.12em;color:var(--gs-cream)}
.gs-seal i{width:8px;height:8px;border-radius:50%;background:var(--gs-emerald-hi);box-shadow:0 0 0 0 rgba(26,195,122,.6);animation:gsPulse 2.4s ease-out infinite}
.gs-seal.ember i{background:var(--gs-ember-hi);box-shadow:0 0 0 0 rgba(238,159,50,.6)}
.gs-seal .gs-cinzel{color:var(--gs-gold-hi);font-size:12px}
@keyframes gsPulse{to{box-shadow:0 0 0 8px transparent}}
.gs-kbd{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;font-family:Oswald, "Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-size:13px}
.gs-kbd kbd{border:1px solid var(--gs-frame-dim);background:var(--gs-bg-plate);box-shadow:inset 0 1px 0 rgba(249,212,111,.18);padding:2px 8px;color:var(--gs-cream);font-family:Oswald, "Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-size:13px;letter-spacing:.04em;border-radius:0}
.gs-kbd em{font-style:normal;color:var(--gs-gold)}

/* ---------- 3.3 功能牌 .gs-tile（P4 分類頁用；此處先備妥） ---------- */
.gs-tile{position:relative;display:grid;grid-template-columns:44px 1fr 16px;gap:14px;align-items:center;min-height:76px;padding:14px 16px;color:inherit;text-decoration:none;cursor:pointer}
.gs-tile::before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:2px;background:var(--gs-accent-hi);opacity:.7}
.gs-tile::after{content:"";position:absolute;right:6px;top:6px;width:6px;height:6px;transform:rotate(45deg);background:var(--gs-accent-hi);box-shadow:0 0 6px var(--gs-accent-hi);opacity:.85}
.gs-tile__ic{width:44px;height:44px;position:relative;display:grid;place-items:center}
.gs-tile__ic::before{content:"";position:absolute;inset:6px;border:1px solid var(--gs-gold);transform:rotate(45deg);box-shadow:inset 0 0 8px rgba(0,0,0,.6)}
.gs-tile__ic i,.gs-tile__ic b{position:relative;font-size:17px;color:transparent;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text}
.gs-tile__ic b{font-size:18px;font-family:Cinzel,"Noto Serif TC",serif;font-weight:700}
.gs-tile__t{font-family:"Noto Serif TC",serif;font-weight:700;font-size:16px;color:var(--gs-cream);line-height:1.3;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gs-tile__d{font-size:12.5px;color:var(--gs-muted);line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gs-tile__go{font-family:Cinzel,serif;font-weight:700;color:var(--gs-frame-dim);font-size:18px;text-align:center}
.gs-tile.is-featured{grid-column:span 2;min-height:120px;background:radial-gradient(ellipse 60% 100% at 100% 50%,var(--gs-accent) 0%,transparent 70%),var(--gs-plate-grad)}
.gs-tile--grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:1199px){.gs-tile--grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575px){.gs-tile--grid{gap:10px}.gs-tile{min-height:68px;padding:12px 12px;gap:10px;grid-template-columns:40px 1fr 12px}.gs-tile__t{font-size:14.5px}.gs-tile__d{font-size:12px}}
@media(max-width:400px){.gs-tile--grid{grid-template-columns:1fr}.gs-tile.is-featured{grid-column:span 1}}
@media(max-width:359px){.gs-tile__d{display:none}}

/* ---------- 提示石板 .gs-notice[data-tone] ---------- */
.gs-notice{position:relative;background:var(--gs-plate-grad);border:1px solid var(--gs-frame-dim);padding:16px 20px 16px 24px;box-shadow:inset 0 0 24px rgba(0,0,0,.6)}
.gs-notice::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;background:var(--gs-gold)}
.gs-notice::after{content:"";position:absolute;left:8px;top:8px;width:6px;height:6px;transform:rotate(45deg);background:var(--gs-gold)}
.gs-notice[data-tone=crimson]::before,.gs-notice[data-tone=crimson]::after{background:var(--gs-crimson-hi)}
.gs-notice[data-tone=royal]::before,.gs-notice[data-tone=royal]::after{background:var(--gs-royal-hi)}
.gs-notice[data-tone=emerald]::before,.gs-notice[data-tone=emerald]::after{background:var(--gs-emerald-hi)}
.gs-notice[data-tone=spectral]::before,.gs-notice[data-tone=spectral]::after{background:var(--gs-spectral-hi)}
.gs-notice[data-tone=crimson]{box-shadow:inset 0 0 24px rgba(0,0,0,.6),inset 0 0 40px rgba(122,43,52,.18)}
.gs-notice__t{font-family:"Noto Serif TC",serif;font-weight:700;color:var(--gs-gold-hi);font-size:15px;letter-spacing:.08em;margin:0 0 4px}
.gs-notice p{margin:0;color:var(--gs-cream-85);font-size:14px}

/* ---------- 3.1 導覽列 .gs-nav（inc/nav.php；index 用 Bootstrap collapse、home/download 用 checkbox） ---------- */
.gs-nav{position:fixed;top:0;left:0;right:0;height:64px;z-index:1050;background:rgba(12,14,25,.94);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--gs-frame);box-shadow:0 1px 0 rgba(136,95,54,.4),0 6px 24px rgba(0,0,0,.5);transition:height .3s ease;font-size:14px;line-height:1.2;padding:0}
.gs-nav.is-compact{height:56px}
.gs-nav__in{position:relative;max-width:1200px;margin:0 auto;height:100%;padding:0 24px;display:flex;align-items:center;gap:20px}
.gs-nav__chk{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
/* 品牌 */
.gs-brand{display:flex;align-items:center;gap:10px;text-decoration:none;position:relative;padding-bottom:4px;flex:0 0 auto}
.gs-brand img{width:36px;height:36px;display:block;transition:.3s ease}
.gs-nav.is-compact .gs-brand img{width:30px;height:30px}
.gs-brand b{font-family:Cinzel,"Noto Serif TC",serif;font-weight:700;font-size:20px;letter-spacing:.14em;color:transparent;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text;line-height:1}
.gs-brand::after{content:"";position:absolute;left:46px;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#ba9369 30%,#ba9369 70%,transparent)}
.gs-brand i{position:absolute;left:calc(50% + 18px);bottom:-2px;width:5px;height:5px;background:var(--gs-gold);transform:rotate(45deg)}
.gs-brand:hover b{filter:brightness(1.12)}
/* 桌機選單 */
.gs-nav__menu{display:flex;align-items:stretch;gap:4px;margin:0 auto;padding:0;list-style:none;height:100%}
.gs-nav__menu>li{position:relative;display:flex;align-items:stretch}
.gs-nav__menu a,.gs-nav__more{position:relative;display:inline-flex;align-items:center;gap:4px;height:100%;padding:0 14px;margin:0;-webkit-appearance:none;appearance:none;background:none;border:0;font-family:"Noto Serif TC",serif;font-weight:700;font-size:14px;letter-spacing:.12em;color:var(--gs-cream-85);text-decoration:none;cursor:pointer;transition:.3s ease;white-space:nowrap}
.gs-nav__menu a::after,.gs-nav__more::after{content:"";position:absolute;left:14px;right:14px;bottom:12px;height:2px;background:var(--gs-gold-grad);transform:scaleX(0);transition:.3s ease}
.gs-nav__menu a:hover,.gs-nav__menu a.active,.gs-nav__menu>li:hover>.gs-nav__more,.gs-nav__menu>li:focus-within>.gs-nav__more,.gs-nav__menu>li.is-open>.gs-nav__more{color:var(--gs-gold-hi);text-shadow:0 0 10px rgba(249,212,111,.5)}
.gs-nav__menu a:hover::after,.gs-nav__menu a.active::after,.gs-nav__menu>li:hover>.gs-nav__more::after,.gs-nav__menu>li:focus-within>.gs-nav__more::after,.gs-nav__menu>li.is-open>.gs-nav__more::after{transform:scaleX(1)}
.gs-nav__more small{font-size:10px;opacity:.7}
.gs-dd{position:absolute;top:100%;left:0;min-width:180px;display:none;flex-direction:column;background:var(--gs-plate-grad);border:1px solid var(--gs-frame);border-radius:0;box-shadow:0 14px 30px rgba(0,0,0,.7);padding:6px 0;margin:0}
.gs-nav__menu>li:hover>.gs-dd,.gs-nav__menu>li:focus-within>.gs-dd,.gs-nav__menu>li.is-open>.gs-dd{display:flex}
.gs-dd a{height:42px;padding:0 18px;font-size:13.5px;justify-content:space-between}
.gs-dd a::after{display:none}
.gs-dd a:hover{background:var(--gs-bg-warm)}
.gs-dd a .gs-ext{font-size:11px;margin-left:12px}
/* 右側：搜尋 / kbd / 下載 / 漢堡 */
.gs-nav__right{display:flex;align-items:center;gap:10px;margin-left:auto;flex:0 0 auto}
.gs-nav__right .search-nav-item{display:flex;align-items:center}
.gs-nav__right .nav-search-wrapper{position:relative;display:flex;align-items:center}
.gs-iconbtn{width:36px;height:36px;padding:0;margin:0;display:grid;place-items:center;-webkit-appearance:none;appearance:none;border:1px solid var(--gs-gold);background:var(--gs-bg-plate);box-shadow:inset 0 1px 0 rgba(249,212,111,.2);cursor:pointer;transition:.3s ease;color:var(--gs-gold);font-size:15px;line-height:1;border-radius:0}
.gs-iconbtn i{color:transparent;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text;font-size:15px;line-height:1}
.gs-iconbtn:hover,.gs-iconbtn:focus-visible{border-color:var(--gs-gold-hi);box-shadow:0 0 14px rgba(249,212,111,.3);transform:none;outline:none}
.gs-kbdhint{border:1px solid var(--gs-frame-dim);padding:3px 7px;font-family:Cinzel,serif;font-weight:700;font-size:10px;letter-spacing:.1em;color:var(--gs-gold);background:transparent;line-height:1;white-space:nowrap}
.gs-nav__dl{box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 14px rgba(253,243,106,.25)}
.gs-nav__dl i{font-size:12px}
.gs-nav__msearch{display:none}
.gs-burger{display:none;width:36px;height:36px;padding:0;margin:0;-webkit-appearance:none;appearance:none;border:1px solid var(--gs-gold);background:var(--gs-bg-plate);place-items:center;cursor:pointer;position:relative;border-radius:0}
.gs-burger span{display:block;width:18px;height:2px;background:var(--gs-gold-grad);margin:2px 0;box-shadow:0 0 4px rgba(249,212,111,.5);transition:.3s ease}
.gs-burger[aria-expanded="true"] span:nth-child(1),#gsNavToggle:checked~.gs-nav__right .gs-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.gs-burger[aria-expanded="true"] span:nth-child(2),#gsNavToggle:checked~.gs-nav__right .gs-burger span:nth-child(2){opacity:0}
.gs-burger[aria-expanded="true"] span:nth-child(3),#gsNavToggle:checked~.gs-nav__right .gs-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
/* 手機卷冊抽屜（<992px） */
.gs-nav__drawer{display:none}
@media(max-width:991px){
  .gs-nav{height:56px}
  .gs-nav__in{padding:0 16px;gap:12px}
  .gs-brand img,.gs-nav.is-compact .gs-brand img{width:28px;height:28px}
  .gs-brand b{font-size:17px}
  .gs-brand::after{left:38px}
  .gs-nav__menu,.gs-kbdhint,.gs-nav__dl{display:none}
  .gs-nav__msearch{display:grid}
  .gs-burger{display:grid}
  .gs-nav__drawer{position:fixed;left:0;right:0;top:56px;bottom:0;height:auto;background:rgba(7,8,13,.97);border-left:1px solid var(--gs-frame);border-right:1px solid var(--gs-frame);flex-direction:column;overflow-y:auto;z-index:1049;padding:8px 16px 24px}
  .gs-nav__drawer.show,#gsNavToggle:checked~.gs-nav__drawer{display:flex}
  .gs-nav__drawer.collapsing{transition:none}
  .gs-nav__drawer .gs-dr{display:flex;align-items:center;gap:12px;height:52px;flex:0 0 auto;border-bottom:1px solid rgba(186,147,105,.18);font-family:"Noto Serif TC",serif;font-weight:700;font-size:16px;letter-spacing:.12em;color:var(--gs-cream);text-decoration:none}
  .gs-nav__drawer .gs-dr:hover,.gs-nav__drawer .gs-dr.active{color:var(--gs-gold-hi)}
  .gs-nav__drawer .gs-dr .gem{width:6px;height:6px;flex:0 0 6px;transform:rotate(45deg);background:var(--gs-gold)}
  .gs-nav__drawer .gs-dr .gem.royal{background:var(--gs-royal-hi)}
  .gs-nav__drawer .gs-dr .gem.crimson{background:var(--gs-crimson-hi)}
  .gs-nav__drawer .gs-dr .gem.emerald{background:var(--gs-emerald-hi)}
  .gs-nav__drawer .gs-dr .gem.spectral{background:var(--gs-spectral-hi)}
  .gs-nav__drawer .gs-dr .gs-ext{margin-left:auto;font-size:12px}
  .gs-nav__drawer .gs-dr-cta{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding-top:20px}
  .gs-nav__drawer .gs-dr-cta .gs-btn{width:100%}
  body.gs-drawer-open{overflow:hidden}
  body:has(#gsNavToggle:checked){overflow:hidden}
}
@media(min-width:992px){.gs-nav__drawer,.gs-nav__drawer.show{display:none}}

/* ---------- 3.10 頁尾 .gs-footer（inc/footer.php；不依賴 Bootstrap grid） ---------- */
.gs-footer{position:relative;z-index:1;background:var(--gs-bg-deep);margin-top:72px;padding:40px 0 28px;border:0;border-top:0;text-align:left;color:var(--gs-cream-85);font-size:14px;line-height:1.7;box-shadow:none}
.gs-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,#ba9369 30%,#ba9369 70%,transparent)}
.gs-footer::after{content:"";position:absolute;left:50%;top:-2px;width:5px;height:5px;margin-left:-2px;background:var(--gs-gold);transform:rotate(45deg)}
.gs-footer__grid{display:grid;grid-template-columns:5fr 3fr 4fr;gap:32px}
.gs-footer h6{font-family:"Noto Serif TC",serif;font-weight:700;font-size:13px;letter-spacing:.2em;color:var(--gs-gold);margin:0 0 12px;line-height:1.4}
.gs-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.gs-footer ul a{font-size:14px;color:var(--gs-cream-85);text-decoration:none;transition:.3s ease;display:inline-flex;align-items:center}
.gs-footer ul a:hover{color:var(--gs-gold-hi)}
.gs-footer .gs-brand{display:inline-flex;padding-bottom:6px;margin-bottom:10px}
.gs-footer .gs-brand img{width:32px;height:32px}
.gs-footer .gs-brand::after{left:42px}
.gs-footer__tag{color:var(--gs-muted);font-size:13px;letter-spacing:.06em;margin:0}
.gs-footer__rule{border:0;border-top:1px solid rgba(186,147,105,.2);margin:28px 0 18px;height:0}
.gs-disclaimer{font-size:12px;color:var(--gs-muted);line-height:1.7;position:relative;padding-left:14px;margin:0;text-align:left}
.gs-disclaimer::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;background:var(--gs-gold);transform:rotate(45deg)}
.gs-disclaimer b{color:var(--gs-gold);font-weight:700}
.gs-copy{font-family:Cinzel,serif;font-weight:700;font-size:11px;letter-spacing:.14em;color:var(--gs-frame-dim);margin-top:16px}
@media(max-width:767px){.gs-footer__grid{grid-template-columns:1fr 1fr;gap:24px}.gs-footer__brand{grid-column:1/-1}}
@media(max-width:575px){.gs-footer{margin-top:40px;padding:32px 0 24px}}

/* ---------- 3.11 手機底部雙鈕金匾 .gs-dock（<992px） ---------- */
.gs-dock{display:none}
@media(max-width:991px){
  body{padding-bottom:72px}
  .gs-dock{position:fixed;bottom:0;left:0;right:0;height:calc(60px + env(safe-area-inset-bottom));padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:rgba(7,8,13,.96);border-top:1px solid var(--gs-frame);box-shadow:inset 0 1px 0 rgba(136,95,54,.4),0 -8px 24px rgba(0,0,0,.6);display:flex;align-items:stretch;gap:10px;z-index:1040;margin:0;transition:transform .35s ease,height .3s ease,padding .3s ease}
  /* fill-mode 用 backwards（不可用 both／forwards）：動畫結束後 transform 交回樣式表，.is-hidden／body.modal-open 的 translateY 才會生效 */
  .js .gs-dock{animation:gsDock .4s ease backwards}
  .gs-dock.is-compact{height:calc(52px + env(safe-area-inset-bottom));padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
  .gs-dock.is-hidden,body.modal-open .gs-dock{transform:translateY(110%)}
  .gs-dock .gs-btn{flex:1 1 0;height:auto;min-height:40px;padding:0 10px;font-size:14px;letter-spacing:.1em}
  .gs-dock .gs-btn-solid{flex:1.2 1 0}
  .gs-dock--cat .gs-btn{font-size:13px;letter-spacing:.04em;gap:6px;padding:0 6px}
  .gs-dock--cat .gs-btn i{font-size:13px}
  .gs-dock--cat .gs-btn-solid{flex:1.4 1 0}
  .gs-dock--cat .gs-btn-outline{border-color:rgba(186,147,105,.6)}
  /* 與 dock 共存：浮動複製鈕上移、Toast 改頂部 */
  .fab-copy-url{bottom:76px}
  .copy-toast{bottom:auto;top:72px}
}
@media(max-width:360px){.gs-dock--cat .gs-btn{font-size:12px;letter-spacing:0;gap:4px}}
@keyframes gsDock{from{transform:translateY(100%)}to{transform:none}}

/* ---------- 3.9 Modal #Info_data（id 與 ng 綁定不動；外框由本檔定義，取代 style.css §10） ---------- */
.modal-backdrop{--bs-backdrop-bg:#07080d;--bs-backdrop-opacity:.88}
/* #NewModal（page/home.php 公告）與 #Info_data 共用變數；page/ 內不得出現 gs- class，故以 id 併入 */
.gs-modal,#NewModal{--bs-modal-bg:transparent;--bs-modal-border-width:0;--bs-modal-border-radius:0;--bs-modal-color:var(--gs-cream-85);--bs-modal-header-border-color:rgba(186,147,105,.35);--bs-modal-footer-border-color:rgba(186,147,105,.25);--bs-modal-footer-gap:0;--bs-modal-padding:24px 28px}
.gs-modal.fade .modal-dialog,#NewModal.fade .modal-dialog{transform:translateY(12px);transition:transform .3s ease}
.gs-modal.show .modal-dialog,#NewModal.show .modal-dialog{transform:none}
.custom-modal-glass{position:relative;background:var(--gs-plate-grad);border:1px solid var(--gs-frame);border-radius:0;color:var(--gs-cream-85);box-shadow:var(--gs-sh-modal),inset 0 0 0 1px rgba(136,95,54,.45);backdrop-filter:none;-webkit-backdrop-filter:none}
/* 四角藤蔓：上緣兩角掛在 modal-content，下緣兩角掛在 modal-footer */
.custom-modal-glass::before,.custom-modal-glass::after,.custom-modal-glass>.modal-footer::before,.custom-modal-glass>.modal-footer::after{content:"";position:absolute;width:48px;height:48px;background:var(--gs-corner) no-repeat center/contain;pointer-events:none;z-index:5}
.custom-modal-glass::before{left:6px;top:6px}
.custom-modal-glass::after{right:6px;top:6px;transform:scaleX(-1)}
.custom-modal-glass>.modal-footer{position:relative}
.custom-modal-glass>.modal-footer::before{left:6px;bottom:6px;transform:scaleY(-1)}
.custom-modal-glass>.modal-footer::after{right:6px;bottom:6px;transform:scale(-1)}
.custom-modal-glass>.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 60px 14px 60px;margin:0;border-bottom:1px solid rgba(186,147,105,.35);border-radius:0;
  background:linear-gradient(90deg,#a66d26,#f9d46f 50%,#a66d26) top/100% 2px no-repeat,rgba(20,25,37,.6)}
.gs-modal__meta{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;flex:1 1 auto;padding-top:4px}
.gs-modal__cat{font-family:Cinzel,"Noto Serif TC",serif;font-weight:700;font-size:11px;letter-spacing:.14em;color:var(--gs-frame-dim);line-height:1.2}
.gs-modal__cat .gs-cinzel{color:var(--gs-gold)}
.gs-modal__meta .gs-title{font-size:1.5rem;letter-spacing:.06em}
.gs-modal__act{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding-top:4px}
.gs-modal__x{width:32px;height:32px;padding:0;margin:0;display:grid;place-items:center;-webkit-appearance:none;appearance:none;border:1px solid var(--gs-gold);background:var(--gs-bg-plate);color:var(--gs-gold-hi);font-family:Cinzel,serif;font-size:14px;line-height:1;cursor:pointer;transition:.3s ease;border-radius:0}
.gs-modal__x:hover,.gs-modal__x:focus-visible{box-shadow:0 0 12px rgba(249,212,111,.3);border-color:var(--gs-gold-hi);outline:none}
.gs-modal .modal-body,#NewModal .modal-body{padding:24px 28px;scrollbar-width:thin;scrollbar-color:#885f36 transparent}
.gs-modal .modal-body::-webkit-scrollbar,#NewModal .modal-body::-webkit-scrollbar{width:6px}
.gs-modal .modal-body::-webkit-scrollbar-track,#NewModal .modal-body::-webkit-scrollbar-track{background:transparent}
.gs-modal .modal-body::-webkit-scrollbar-thumb,#NewModal .modal-body::-webkit-scrollbar-thumb{background:#885f36;border-radius:0}
.gs-modal .modal-body::-webkit-scrollbar-thumb:hover,#NewModal .modal-body::-webkit-scrollbar-thumb:hover{background:#d19d4b}
.custom-modal-glass>.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 60px;border-top:1px solid rgba(186,147,105,.25);border-radius:0;background:transparent}
.custom-modal-glass>.modal-footer>*{margin:0}
.custom-modal-glass>.modal-footer .gs-disclaimer{flex:1 1 320px;min-width:0}
.custom-modal-glass>.modal-footer .gs-btn{flex:0 0 auto}
@media(max-width:991px){
  .custom-modal-glass::before,.custom-modal-glass::after,.custom-modal-glass>.modal-footer::before,.custom-modal-glass>.modal-footer::after{width:32px;height:32px}
  .custom-modal-glass>.modal-header{padding:14px 44px 12px 44px}
  .custom-modal-glass>.modal-footer{padding:12px 44px}
}
@media(max-width:575px){
  .gs-modal{--bs-modal-margin:0}
  .gs-modal .modal-dialog{margin:0;max-width:100%;width:100%;height:100%;min-height:100%}
  .gs-modal .modal-dialog-scrollable{height:100%}
  .gs-modal .custom-modal-glass{height:100%;max-height:none;border-left:0;border-right:0;box-shadow:none}
  .custom-modal-glass::before,.custom-modal-glass::after,.custom-modal-glass>.modal-footer::before,.custom-modal-glass>.modal-footer::after{width:28px;height:28px}
  .custom-modal-glass>.modal-header{padding:12px 38px 10px 38px;gap:8px}
  .gs-modal__meta{gap:4px;padding-top:2px}
  .gs-modal__meta .gs-title{font-size:1.2rem}
  .gs-modal__meta .gs-plate--sm{display:none}
  .gs-modal__act{padding-top:0}
  .gs-modal .modal-body{padding:16px}
  .custom-modal-glass>.modal-footer{padding:10px 38px 12px;gap:8px}
  .custom-modal-glass>.modal-footer .gs-btn{width:100%}
}

/* ---------- 新聞分類 badge（style.css §8–9 的 !important 色已刪；用 background-image 蓋過 Bootstrap bg-* 的 !important 底色） ---------- */
.badge-custom{border-radius:0;font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-weight:500;font-size:12px;letter-spacing:.1em;padding:3px 10px;border:1px solid var(--gs-gold);background-image:var(--gs-plate-grad);color:var(--gs-cream);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
.badge-custom.bg-danger{border-color:rgba(190,85,84,.7);color:#e7a6a3;box-shadow:inset 0 0 18px rgba(122,43,52,.65),0 0 10px rgba(190,85,84,.25)}
.badge-custom.bg-success{border-color:rgba(26,195,122,.6);color:#9fe8c4;box-shadow:inset 0 0 18px rgba(24,100,53,.65),0 0 10px rgba(26,195,122,.25)}
.badge-custom.bg-primary{border-color:rgba(61,109,200,.7);color:#a9c0f0;box-shadow:inset 0 0 18px rgba(20,43,107,.75),0 0 10px rgba(61,109,200,.25)}
.badge-custom.bg-info{border-color:rgba(92,165,173,.6);color:#b4dde2;box-shadow:inset 0 0 18px rgba(67,117,130,.65),0 0 10px rgba(92,165,173,.25)}
.badge-custom.bg-secondary{border-color:rgba(186,147,105,.5);color:var(--gs-muted)}
/* 搜尋結果分類 badge 六色同步（class 名不變） */
.search-badge-info{background:rgba(20,43,107,.55);color:#a9c0f0}
.search-badge-quest{background:rgba(122,43,52,.55);color:#e7a6a3}
.search-badge-shop{background:rgba(24,100,53,.5);color:#9fe8c4}
.search-badge-maps{background:rgba(67,117,130,.5);color:#b4dde2}
.search-badge-page{background:rgba(166,109,38,.45);color:#f9d46f}
.search-badge-portal{background:rgba(67,117,130,.5);color:#b4dde2}

/* ---------- 工具：Toast（Kit/theme.js 複製連結用） ---------- */
.gs-toast{position:fixed;left:50%;top:72px;transform:translateX(-50%) translateY(-8px);z-index:1090;display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--gs-plate-grad);border:1px solid var(--gs-gold);box-shadow:var(--gs-sh-plate);color:var(--gs-cream);font-family:"Noto Serif TC",serif;font-weight:700;font-size:13px;letter-spacing:.1em;opacity:0;pointer-events:none;transition:.25s ease}
.gs-toast.is-show{opacity:1;transform:translateX(-50%) translateY(0)}
.gs-toast::before{content:"";width:6px;height:6px;background:var(--gs-emerald-hi);transform:rotate(45deg);box-shadow:0 0 6px var(--gs-emerald-hi)}
.gs-toast.is-error::before{background:var(--gs-crimson-hi);box-shadow:0 0 6px var(--gs-crimson-hi)}

/* ---------- 2.4 動效守則 ---------- */
.js .gs-reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.js .gs-reveal.gs-in{opacity:1;transform:none}
@media(hover:none){.gs-slab--hover:hover,.gs-btn-plaque:hover{transform:none}.gs-slab--hover:active{border-color:var(--gs-gold-hi)}.gs-btn-outline:active{border-color:var(--gs-gold-hi);color:var(--gs-gold-hi)}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .js .gs-reveal{opacity:1;transform:none}
  .js .gs-reveal .gs-rule{transform:none}
}

/* （原「過渡：page/maps.php 地圖分類卡 .maps-section .map-card」規則已移除：P4 分類頁改用 Kit/css/cat.css 的 .gs-tile） */

/* ── 首頁排行橫幅（私服123）：站主要求顯示 ── */

/* ── 品牌：只顯示 logo 圖（站主要求），不放「270C」字與底線 ── */
.gs-brand b,.gs-brand i,.gs-brand::after{display:none}
.gs-brand{padding-bottom:0}
.gs-brand img{width:48px;height:48px}
.gs-nav.is-compact .gs-brand img{width:42px;height:42px}
.gs-footer .gs-brand img{width:56px;height:56px}
@media (max-width:991px){.gs-brand img,.gs-nav.is-compact .gs-brand img{width:40px;height:40px}}

/* ── 頁尾 v2：品牌欄加按鈕、站內導覽兩欄、底列免責＋版權同列 ── */
.gs-footer{padding:48px 0 24px}
.gs-footer__grid{grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);gap:40px;align-items:start}
.gs-footer__brand .gs-brand{margin-bottom:12px}
.gs-footer__tag{font-family:"Noto Serif TC",serif;font-weight:700;color:var(--gs-cream-85);letter-spacing:.1em;margin-bottom:16px}
.gs-footer__cta{display:flex;flex-wrap:wrap;gap:10px}
.gs-footer__cta .gs-btn i{margin-right:6px}
.gs-footer h6{position:relative;padding-left:14px;margin-bottom:16px}
.gs-footer h6::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;background:var(--gs-gold);transform:rotate(45deg)}
.gs-footer__list{gap:10px}
.gs-footer ul.gs-footer__list--2{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));column-gap:40px;row-gap:10px}
.gs-footer__list a{position:relative;padding-left:0;transition:color .3s ease,padding-left .3s ease}
.gs-footer__list a:hover{padding-left:6px}
.gs-footer__rule{margin:32px 0 16px}
.gs-footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.gs-footer__bottom .gs-disclaimer{flex:1 1 520px;margin:0}
.gs-footer__bottom .gs-copy{flex:0 0 auto;margin:0}
.gs-footer__badge{flex:0 0 auto;display:inline-flex;line-height:0;opacity:.85;transition:opacity .3s ease}   /* 首頁頁尾 私服123 88×31 */
.gs-footer__badge img{width:88px;height:31px;border:1px solid var(--gs-frame-dim)}
.gs-footer__badge:hover,.gs-footer__badge:focus-visible{opacity:1}
.gs-footer__badge:hover img{border-color:var(--gs-gold-hi)}
@media(max-width:991px){.gs-footer__grid{grid-template-columns:1fr 1fr;gap:28px}.gs-footer__brand{grid-column:1/-1}}
@media(max-width:575px){
  .gs-footer__grid{grid-template-columns:1fr;gap:24px}
  .gs-footer__brand{text-align:center}
  .gs-footer__brand .gs-brand{justify-content:center}
  .gs-footer__cta{justify-content:center}
  .gs-footer ul.gs-footer__list--2{column-gap:28px}
  .gs-footer__bottom{flex-direction:column;align-items:flex-start;gap:10px}
  .gs-footer__bottom .gs-disclaimer{flex:0 0 auto}
}

/* ── 導覽列搜尋：放大鏡＋文字＋快捷鍵合成一條搜尋欄（取代分開的方鈕與 CTRL / 標籤） ── */
.gs-searchbtn{height:36px;min-width:190px;padding:0 6px 0 12px;margin:0;display:flex;align-items:center;gap:8px;-webkit-appearance:none;appearance:none;cursor:pointer;
  border:1px solid var(--gs-frame-dim);background:rgba(10,10,13,.75);box-shadow:inset 0 1px 0 rgba(249,212,111,.12),inset 0 0 14px rgba(0,0,0,.6);
  color:var(--gs-muted);font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-size:13px;letter-spacing:.06em;transition:.3s ease}
.gs-searchbtn i{color:var(--gs-gold);font-size:13px}
.gs-searchbtn span{flex:1 1 auto;text-align:left}
.gs-searchbtn kbd{font-family:Cinzel,"Oswald", "Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--gs-gold);background:var(--gs-bg-plate);
  border:1px solid var(--gs-frame-dim);border-radius:0;padding:3px 6px;line-height:1;box-shadow:none}
.gs-searchbtn:hover,.gs-searchbtn:focus-visible{border-color:var(--gs-gold);color:var(--gs-cream);box-shadow:inset 0 1px 0 rgba(249,212,111,.2),0 0 12px rgba(249,212,111,.2);outline:none}
.gs-searchbtn:hover kbd{border-color:var(--gs-gold)}
@media(max-width:1199px){.gs-searchbtn{min-width:0;padding:0 10px}.gs-searchbtn span,.gs-searchbtn kbd{display:none}}
@media(max-width:991px){.gs-searchbtn{display:none}}

/* ── 檢查修正 2026-10-19 ── */
/* 首頁：main.min.css 的 html,body{height:100%;overflow-x:hidden} 讓 body 變成捲動容器，
   window 捲動事件不觸發（導覽列縮小、手機 dock 隱藏都失效）→ body 改自動高度，交回視窗捲動 */
body.gs-home{height:auto}
/* 內容區與固定導覽列之間留呼吸空間（分類頁標題原本貼著導覽列） */
.gs-main{padding-top:24px}
@media(max-width:575px){.gs-main{padding-top:12px}}
/* 手機公告列表：分類與日期同一行在上、標題在下，避免「系／統」「10-／17」被擠成直排 */
@media(max-width:575px){
  .news-table-card .custom-table thead{display:none}
  .news-table-card .custom-table tbody tr{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"type date" "title title";align-items:center;column-gap:10px;padding:12px 14px}
  .news-table-card .custom-table tbody td{display:block;border:0;padding:0;width:auto;text-align:left !important}  /* text-center/py-2 是 Bootstrap !important 工具類，只能以 !important 覆蓋 */
  .news-table-card .custom-table tbody td:nth-child(1){grid-area:type}
  .news-table-card .custom-table tbody td:nth-child(2){grid-area:title;margin-top:6px}
  .news-table-card .custom-table tbody td:nth-child(3){grid-area:date;justify-self:end;font-size:12px}
  .news-table-card .custom-table tbody td[colspan]{grid-column:1/-1}
  .news-table-card .custom-table tbody td a{padding:0 !important}
  .news-table-card .badge-custom{white-space:nowrap}
}
/* 手機浮動「複製網址」鈕：改成金框小方鈕，少擋內容 */
@media(max-width:768px){
  .fab-copy-url{right:12px;width:40px;height:40px;padding:0;justify-content:center;border-radius:0;background:rgba(7,8,13,.82);border:1px solid var(--gs-frame-dim);color:var(--gs-gold);box-shadow:0 4px 14px rgba(0,0,0,.5);backdrop-filter:none}
  .fab-copy-url i{font-size:14px}
  .fab-copy-url.is-copied{width:auto;padding:0 12px}
}

/* ── 搜尋命令面板（Ctrl + /）換成鑲金招募令樣式：黑石底、細古金框、直角、金字 ──
   原樣式在 style.css 與 cmd_palette.css（兩份），這裡統一覆蓋，不改原檔 */
.cmd-palette-overlay{background:rgba(7,8,13,.82)}
.cmd-palette{border-radius:0;background:var(--gs-plate-grad);border:1px solid var(--gs-frame);
  box-shadow:inset 0 0 0 1px rgba(136,95,54,.45),inset 0 1px 0 rgba(249,212,111,.18),0 24px 70px rgba(0,0,0,.85);animation:cmdSlideUp .22s cubic-bezier(.16,1,.3,1)}
.cmd-palette::before{height:2px;background:var(--gs-gold-grad);opacity:.9}
.palette-corner{width:40px;height:40px;background:var(--gs-corner) no-repeat center/contain;animation:none;border:0}
.palette-corner::before,.palette-corner::after{display:none}
.palette-corner-tl{top:4px;left:4px}
.palette-corner-tr{top:4px;right:4px;transform:scaleX(-1)}
.palette-corner-bl{bottom:4px;left:4px;transform:scaleY(-1)}
.palette-corner-br{bottom:4px;right:4px;transform:scale(-1)}
.cmd-palette-brand{padding:14px 52px 10px;border-bottom:1px solid rgba(186,147,105,.3);background:rgba(20,25,37,.55)}
.cmd-palette-brand-mark{font-family:Cinzel,serif;font-weight:700;letter-spacing:.14em;color:transparent;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text;text-shadow:none}
.cmd-palette-brand-divider{background:var(--gs-frame-dim)}
.cmd-palette-brand-sub{font-family:"Noto Serif TC",serif;font-weight:700;letter-spacing:.14em;color:var(--gs-cream-85)}
.cmd-palette kbd,.cmd-palette-esc,.cmd-palette-brand-meta kbd,.cmd-palette-footer kbd{border-radius:0;background:var(--gs-bg-plate);border:1px solid var(--gs-frame-dim);color:var(--gs-gold-hi);box-shadow:inset 0 1px 0 rgba(249,212,111,.15);font-family:Cinzel,"Oswald", "Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;font-weight:700}
.cmd-palette-header{padding:14px 52px;border-bottom:1px solid rgba(186,147,105,.3);background:rgba(10,10,13,.6)}
.cmd-palette-icon{color:var(--gs-gold)}
.cmd-palette-input{color:var(--gs-cream);font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;caret-color:var(--gs-gold-hi)}
.cmd-palette-input::placeholder{color:var(--gs-muted)}
.cmd-palette-section-title{font-family:"Noto Serif TC",serif;font-weight:700;letter-spacing:.14em;color:var(--gs-gold)}
.cmd-palette-section-title i{color:var(--gs-gold)}
.cmd-chip{border-radius:0;background:rgba(10,10,13,.7);border:1px solid rgba(186,147,105,.4);color:var(--gs-cream-85);box-shadow:inset 0 1px 0 rgba(249,212,111,.08)}
.cmd-chip:hover,.cmd-chip:focus-visible{background:var(--gs-bg-warm);border-color:var(--gs-gold-hi);color:var(--gs-gold-hi);box-shadow:0 0 12px rgba(249,212,111,.25);transform:none}
.cmd-chip-recent{border-color:rgba(92,165,173,.45)}
.cmd-chip-portal{color:var(--gs-gold-hi);border-color:var(--gs-gold-dark)}
.cmd-chip-portal i{color:var(--gs-gold)}
.cmd-palette-results .search-result-item{border-radius:0;border-left:2px solid transparent}
.cmd-palette-results .search-result-item.active,.cmd-palette-results .search-result-item:hover{background:rgba(249,212,111,.06);border-left-color:var(--gs-gold-hi)}
.cmd-palette-results .search-result-title{color:var(--gs-cream);font-family:"Noto Serif TC",serif;font-weight:700}
.cmd-palette-results .search-result-desc,.cmd-palette-results .search-result-context{color:var(--gs-muted)}
.cmd-palette-results mark{background:rgba(249,212,111,.22);color:var(--gs-gold-hi);padding:0 2px}
.cmd-palette .search-result-badge{border-radius:0}
.cmd-palette-footer{border-top:1px solid rgba(186,147,105,.3);background:rgba(7,8,13,.6);padding-left:52px;padding-right:52px;color:var(--gs-muted)}
.cmd-palette-particles .orb{background:var(--gs-gold-glow);opacity:.35}
@media(max-width:575px){.cmd-palette-brand,.cmd-palette-header,.cmd-palette-footer{padding-left:36px;padding-right:36px}.palette-corner{width:28px;height:28px}}

/* ── 內頁文字太暗修正：Bootstrap 預設文字色是 #212529（給白底用），
   內頁 .card／.list-group／.accordion 等沒指定顏色的文字在黑底上幾乎看不見 → 全站改成米白 ── */
:root{--bs-body-color:#e0e0e0;--bs-body-color-rgb:224,224,224;--bs-emphasis-color:#fdf4d9;--bs-secondary-color:rgba(224,224,224,.75);--bs-heading-color:inherit}
.news-body .card,.gs-modal .card,.gs-main .card{--bs-card-color:inherit;color:inherit}

/* ── 內頁字色對比修正（全站掃描結果） ── */
/* <kbd>：Bootstrap 底色吃 --bs-body-color，改成米白後變成白底白字 → 固定深底金字 */
kbd{background:var(--gs-bg-plate);color:var(--gs-gold-hi);border:1px solid var(--gs-frame-dim);border-radius:0;box-shadow:inset 0 1px 0 rgba(249,212,111,.15)}
/* 表頭自帶底色（如每季任務紫色表頭）時，不要被 .table thead th 的金字蓋掉 */
.news-body thead[style*="background"] th{color:inherit}
/* Bootstrap 文字色在黑底上偏暗（藍 3.4:1、紅 3.4:1、綠 3.4:1）→ 內頁改亮一階
   （Bootstrap 工具類本身是 !important，只能以 !important 覆蓋） */
.news-body .text-primary{color:#6ea8fe !important}
.news-body .text-danger{color:#ea868f !important}
.news-body .text-success{color:#75b798 !important}
.news-body .text-secondary{color:#a7acb1 !important}

/* ── 一般頁標題（公告列表、404 等）：金字書法＋說明＋古金細線 ── */
.gs-pagehead{text-align:center;margin:8px 0 28px}
.gs-pagehead__h1{display:inline-block;margin:0;font-family:"Noto Serif TC",serif;font-weight:900;font-size:clamp(26px,4.4vw,40px);letter-spacing:.08em;line-height:1.25;
  color:#e3b65a;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 #6b4414) drop-shadow(0 4px 6px rgba(0,0,0,.8))}
.gs-pagehead__lead{margin:10px 0 0;color:var(--gs-muted);font-size:14px}
.gs-pagehead::after{content:"";display:block;width:200px;height:1px;margin:14px auto 0;background:linear-gradient(90deg,transparent,var(--gs-frame),transparent)}

/* 公告分頁 */
.pagination-dark .page-link{border-radius:0;background:rgba(10,10,13,.7);border:1px solid rgba(186,147,105,.4);color:var(--gs-cream-85);font-family:"Oswald","Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif}
.pagination-dark .page-link:hover{background:var(--gs-bg-warm);border-color:var(--gs-gold-hi);color:var(--gs-gold-hi)}
.pagination-dark .page-item.active .page-link{background:var(--gs-gold-solid);border-color:var(--gs-gold-deep);color:var(--gs-ink);box-shadow:0 0 12px rgba(253,243,106,.25)}
.pagination-dark .page-item.disabled .page-link{opacity:.4;background:transparent}

/* 公告內文頁 */
.news-content-card{border-radius:0;background:var(--gs-plate-grad);border:1px solid var(--gs-frame);box-shadow:inset 0 0 0 1px rgba(136,95,54,.45),inset 0 1px 0 rgba(249,212,111,.15),0 14px 40px rgba(0,0,0,.6)}
.gs-nc-head{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid rgba(186,147,105,.3)}
.news-content-card .news-title{font-family:"Noto Serif TC",serif;font-weight:900;letter-spacing:.04em;line-height:1.4;font-size:clamp(22px,3.4vw,32px);color:#f9d46f;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.btn-back-custom{border-radius:0;background:transparent;border:1px solid var(--gs-frame);color:var(--gs-cream);font-family:"Noto Serif TC",serif;font-weight:700;letter-spacing:.08em}
.btn-back-custom:hover{border-color:var(--gs-gold-hi);color:var(--gs-gold-hi);background:var(--gs-bg-warm)}
.gs-nc-foot{margin-top:32px;padding-top:16px;border-top:1px solid rgba(186,147,105,.25)}
.gs-nc-note{margin:10px 0 0;font-size:12px;line-height:1.7;color:var(--gs-muted);text-align:center}

/* 404 */
.gs-404{text-align:center;padding:60px 16px 40px}
.gs-404__code{font-family:Cinzel,serif;font-weight:700;font-size:clamp(64px,14vw,120px);line-height:1;letter-spacing:.1em;color:transparent;background:var(--gs-gold-grad);-webkit-background-clip:text;background-clip:text;opacity:.85;filter:drop-shadow(0 4px 10px rgba(0,0,0,.8))}
.gs-404 .gs-pagehead__h1{margin-top:12px}
.gs-404__act{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.gs-404__act .gs-btn i{margin-right:6px}
