/* ============================================================
   AIX Society — 內頁共用樣式
   金 / 灰 / 黑 / 白。全站不使用藍色與紫色。
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
:root{
  --bg:#07070a; --bg2:#0e0e12; --panel:#101015; --panel2:#15151b;
  --ink:#f2f2f4; --ink2:#cfcfd6; --muted:#95959f;
  --gold:#d9b451; --gold-lt:#f0dca4; --gold-dk:#8b6d1e;
  --line:rgba(217,180,81,.26); --line2:rgba(255,255,255,.08);
  --shadow:0 22px 55px rgba(0,0,0,.55);
  --radius:16px;
  --font:"Inter","SF Pro Display","Helvetica Neue",Arial,"PingFang TC","PingFang SC","Microsoft JhengHei","Microsoft YaHei",sans-serif;
}
body{
  font-family:var(--font);background:var(--bg);color:var(--ink);
  line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}

/* ---------- 淺色主題（預設） ---------- */
body.light{
  --bg:#f8f7f3; --bg2:#efebe1; --panel:#ffffff; --panel2:#fbfaf6;
  --ink:#151517; --ink2:#33333a; --muted:#5e5e68;
  --gold:#a07c1c; --gold-lt:#7d5f12; --gold-dk:#e6d5a0;
  --line:rgba(156,122,28,.34); --line2:rgba(21,21,23,.10);
  --shadow:0 20px 48px rgba(70,58,22,.14);
  background:
    radial-gradient(1100px 520px at 82% -8%,rgba(200,168,92,.16),transparent 62%),
    var(--bg);
}
body.light .topbar{
  background:linear-gradient(180deg,rgba(248,247,243,.96),rgba(248,247,243,.84));
  border-bottom-color:rgba(21,21,23,.08);
}
body.light .btn.primary,
body.light .langs button.on,
body.light .chip.on{
  background:linear-gradient(140deg,#e9d296,#c9a44c);color:#17140a;
  box-shadow:0 12px 30px rgba(160,124,28,.20);
}
body.light .avatar,
body.light .tcard .avatar{
  background:linear-gradient(140deg,#e9d296,#c9a44c);color:#17140a;
}
body.light .card,
body.light .tcard,
body.light .tier,
body.light .book,
body.light .benefit,
body.light .quote,
body.light .hs-shelf-frame,
body.light .abrow img,
body.light .bcover img{box-shadow:0 10px 26px rgba(70,58,22,.07)}
body.light .card,body.light .tcard,body.light .tier,body.light .book{
  background:linear-gradient(160deg,#ffffff,#faf8f3);
}
body.light .note{background:rgba(21,21,23,.03)}
body.light .callout{background:linear-gradient(160deg,rgba(200,168,92,.14),transparent 72%)}
body.light .footer{background:var(--bg2)}
body.light .citem a,body.light .bcover img{color:inherit}
/* 品牌標誌：原檔為白色（供深色底），淺色主題下轉為黑色 */
body.light .brand-logo{filter:brightness(0)}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}

/* ---------- topbar ---------- */
.topbar{
  position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);
  background:linear-gradient(180deg,rgba(7,7,10,.94),rgba(7,7,10,.78));
  border-bottom:1px solid var(--line2);
}
.topbar .row{display:flex;align-items:center;gap:24px;height:68px}
.brand{display:flex;align-items:center;gap:11px;letter-spacing:.16em;font-size:13.5px;font-weight:600;white-space:nowrap}
.brand-logo{height:36px;width:auto;display:block}
.footer .brand-logo{height:32px}
@media (max-width:640px){.brand-logo{height:30px}.footer .brand-logo{height:28px}}
.brand-mark{width:24px;height:24px;border-radius:6px;position:relative;flex:0 0 auto;
  background:linear-gradient(140deg,var(--gold-lt),var(--gold-dk));box-shadow:0 0 18px rgba(217,180,81,.4)}
.brand-mark::after{content:"";position:absolute;inset:6px;border-radius:2px;background:var(--bg);opacity:.8}
/* ---------- 主選單：4 個一級項目（首頁 + 3 個分組下拉） ---------- */
.nav{display:flex;align-items:center;gap:26px;font-size:13.5px;color:var(--muted);margin-left:8px}
.nav a,.nav .nvl{font:inherit;color:inherit;background:none;border:0;cursor:pointer;
  position:relative;padding:4px 0;display:inline-flex;align-items:center;gap:6px;transition:color .22s}
.nav a::after,.nav .nvl::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--gold);opacity:0;transition:opacity .22s}
.nav a:hover,.nav .nvl:hover{color:var(--gold-lt)}
.nav a.on,.nav .nvl.on,.nav .nvi.on>.nvl{color:var(--gold-lt)}
.nav a.on::after,.nav .nvl.on::after,.nav .nvi.on>.nvl::after{opacity:1}
.nav .cr{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;
  border-top:4px solid currentColor;opacity:.65;transition:transform .22s,opacity .22s}
.nav .nvl:hover .cr{opacity:1}
.nav .nvi.open>.nvl .cr{transform:rotate(180deg)}
.nvi{position:relative}
/* 下拉與標籤之間刻意留 14px 視覺空隙；此偽元素把 hover 命中區補滿，
   否則滑鼠往下穿越空隙時 :hover 會失效、選單會在途中收起 */
.nvi::before{content:"";position:absolute;left:-8px;right:-8px;top:100%;height:18px}
.sub{position:absolute;top:calc(100% + 14px);left:-16px;min-width:196px;padding:8px;border-radius:14px;
  display:none;flex-direction:column;gap:2px;z-index:60;
  background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}
.sub a{display:block;padding:9px 12px;border-radius:9px;font-size:13px;white-space:nowrap;color:var(--ink2)}
.sub a::after{display:none}
.sub a:hover{background:rgba(217,180,81,.14);color:var(--gold-lt)}
body.light .sub a:hover{background:rgba(160,124,28,.10)}
.sub a.on{color:var(--gold-lt)}
.nvi:hover>.sub,.nvi:focus-within>.sub,.nvi.open>.sub{display:flex}
/* 手機抽屜鈕（桌機不顯示） */
.navtoggle{display:none;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 auto;
  border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.bars{position:relative;display:block;width:16px;height:2px;background:currentColor}
.bars::before,.bars::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor}
.bars::before{top:-5px}
.bars::after{top:5px}
.tools{margin-left:auto;display:flex;align-items:center;gap:10px}
.langs{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.langs button{appearance:none;border:0;background:transparent;color:var(--muted);cursor:pointer;
  font:inherit;font-size:12px;padding:6px 11px;transition:.22s}
.langs button.on{background:linear-gradient(140deg,var(--gold-lt),var(--gold));color:#141108;font-weight:600}
.btn{display:inline-flex;align-items:center;gap:9px;border-radius:999px;font-size:13.5px;font-weight:600;
  padding:11px 20px;transition:transform .22s,box-shadow .22s,border-color .22s;cursor:pointer;border:0}
.btn.primary{color:#141108;background:linear-gradient(140deg,var(--gold-lt),var(--gold));box-shadow:0 12px 32px rgba(217,180,81,.24)}
.btn.ghost{border:1px solid var(--line);color:var(--ink);background:transparent}
.btn:hover{transform:translateY(-2px)}
.btn.ghost:hover{border-color:var(--gold)}
.btn[disabled]{opacity:.45;cursor:default;transform:none}
/* ---------- 聯絡頁 ---------- */
.cmethods{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:6px 0 8px}
.cmm{display:flex;flex-direction:column;gap:6px;padding:22px 20px;border:1px solid var(--line2);border-radius:var(--radius);background:var(--panel);text-decoration:none;color:inherit}
a.cmm:hover{border-color:var(--gold)}
.cmm .lbl{font-size:11px;letter-spacing:.12em;color:var(--gold-lt)}
.cmm b{font-size:15px;color:var(--ink);word-break:break-word}
.cmm .sub{font-size:12.5px;color:var(--muted)}
.offices{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.office{padding:24px;border:1px solid var(--line2);border-radius:var(--radius);background:var(--panel)}
.office h3{font-size:15px;margin:0 0 12px;color:var(--ink)}
.office .oa{font-size:13.5px;line-height:1.75;color:var(--muted);margin:0 0 16px}
.office .go{font-size:13px;color:var(--gold-lt);font-weight:600;text-decoration:none}
.office .go:hover{text-decoration:underline}
.cform{display:grid;gap:14px;max-width:640px}
.cform .frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cform label{display:flex;flex-direction:column;gap:7px;font-size:12.5px;color:var(--muted)}
.cform input,.cform select,.cform textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:11px 13px}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--gold)}
.cform textarea{resize:vertical;min-height:120px}
.cform .btn{justify-self:start}
@media (max-width:900px){.cmethods{grid-template-columns:1fr 1fr}.offices{grid-template-columns:1fr}}
@media (max-width:560px){.cmethods{grid-template-columns:1fr}.cform .frow{grid-template-columns:1fr}}

/* ---------- page head ---------- */
.pagehead{padding:64px 0 34px;position:relative;
  background:radial-gradient(900px 420px at 78% -10%,rgba(217,180,81,.14),transparent 62%)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;color:var(--gold-lt);
  border:1px solid var(--line);border-radius:999px;padding:6px 13px;margin-bottom:20px}
.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--gold-lt);box-shadow:0 0 10px var(--gold-lt)}
.pagehead h1{margin:0 0 16px;font-size:clamp(28px,3.6vw,46px);line-height:1.15;letter-spacing:-.015em}
.pagehead p.lead{margin:0;color:var(--muted);font-size:clamp(14px,1.1vw,16.5px);max-width:70ch}
.stats{display:flex;gap:34px;flex-wrap:wrap;margin-top:28px;padding-top:24px;border-top:1px solid var(--line2)}
.stat b{display:block;font-size:26px;line-height:1;color:var(--gold-lt);font-weight:700}
.stat span{font-size:12px;color:var(--muted);letter-spacing:.05em}

/* ---------- filters ---------- */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:22px 0 8px;position:sticky;top:68px;z-index:40;
  background:linear-gradient(180deg,var(--bg) 72%,rgba(7,7,10,0));}
.search{display:flex;align-items:center;gap:10px;border:1px solid var(--line2);border-radius:999px;
  padding:9px 16px;background:var(--panel);min-width:230px}
.search input{appearance:none;border:0;background:transparent;color:var(--ink);font:inherit;font-size:13.5px;outline:none;width:100%}
.search svg{width:15px;height:15px;color:var(--muted);flex:0 0 auto}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{appearance:none;cursor:pointer;font:inherit;font-size:12.5px;color:var(--muted);background:transparent;
  border:1px solid var(--line2);border-radius:999px;padding:7px 13px;transition:.22s;white-space:nowrap}
.chip:hover{color:var(--gold-lt);border-color:var(--line)}
.chip.on{color:#141108;background:linear-gradient(140deg,var(--gold-lt),var(--gold));border-color:transparent;font-weight:600}
.count{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;padding:14px 0 40px}
.card{
  display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:var(--radius);
  border:1px solid var(--line2);background:linear-gradient(160deg,var(--panel2),var(--panel));
  transition:transform .28s,border-color .28s,box-shadow .28s;position:relative;overflow:hidden;
}
.card::before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;
  background:linear-gradient(90deg,transparent,var(--line),transparent)}
.card:hover{transform:translateY(-4px);border-color:var(--line);box-shadow:var(--shadow)}
.card .cat{align-self:flex-start;font-size:11px;letter-spacing:.08em;color:var(--gold-lt);
  border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.card h3{margin:0;font-size:17.5px;line-height:1.4;font-weight:600}
.card h3 a:hover{color:var(--gold-lt)}
.card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .crow{margin-top:auto;padding-top:12px;border-top:1px solid var(--line2);
  display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.card .crow .go{color:var(--gold-lt);font-weight:600}
.card.ext .crow .go::after{content:" ↗"}
.card .src{font-size:11px;color:var(--gold-lt);letter-spacing:.06em}

/* ---------- empty / callout ---------- */
.empty{border:1px dashed var(--line);border-radius:var(--radius);padding:34px;text-align:center;color:var(--muted);
  background:rgba(255,255,255,.02);margin:20px 0 46px}
.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:8px}
.callout{border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin:26px 0;
  background:linear-gradient(160deg,rgba(217,180,81,.07),transparent 70%)}
.callout h3{margin:0 0 8px;font-size:15px}
.callout p{margin:0;color:var(--muted);font-size:13.5px}
.loadmore{display:flex;justify-content:center;padding:8px 0 56px}

/* ---------- article page ---------- */
.crumb{font-size:12.5px;color:var(--muted);padding:22px 0 0}
.crumb a:hover{color:var(--gold-lt)}
.article{max-width:820px;margin:0 auto;padding:26px 0 70px}
.article h1{font-size:clamp(26px,3.1vw,40px);line-height:1.22;margin:14px 0 18px;letter-spacing:-.012em}
.article .meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);
  padding-bottom:22px;border-bottom:1px solid var(--line2);margin-bottom:30px}
.article .meta .k{color:var(--gold-lt)}
.prose{font-size:16.5px;line-height:1.85;color:var(--ink2)}
.prose h2{font-size:22px;line-height:1.35;margin:42px 0 14px;color:var(--ink);letter-spacing:-.01em}
.prose h3{font-size:18px;margin:34px 0 12px;color:var(--ink)}
.prose p{margin:0 0 20px}
.prose a{color:var(--gold-lt);border-bottom:1px solid var(--line)}
.prose ul,.prose ol{margin:0 0 20px;padding-left:24px}
.prose li{margin-bottom:9px}
.prose blockquote{margin:26px 0;padding:4px 0 4px 20px;border-left:2px solid var(--gold);color:var(--muted);font-style:normal}
.prose img{border-radius:12px;margin:24px 0;border:1px solid var(--line2)}
.prose hr{border:0;border-top:1px solid var(--line2);margin:38px 0}
.prose table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14.5px}
.prose th,.prose td{border:1px solid var(--line2);padding:10px 12px;text-align:left}
.prose th{background:rgba(217,180,81,.07);color:var(--ink)}
.prose code{background:var(--panel2);border:1px solid var(--line2);border-radius:5px;padding:1px 6px;font-size:.92em}
.prose iframe{max-width:100%;border-radius:12px}
.note{margin:36px 0 0;padding:16px 18px;border:1px solid var(--line2);border-radius:12px;
  font-size:12.5px;color:var(--muted);background:rgba(255,255,255,.02)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line2);margin-top:auto;padding:44px 0 30px;background:var(--bg2)}
.footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:26px}
.footer h4{margin:0 0 12px;font-size:12px;letter-spacing:.12em;color:var(--gold-lt)}
.footer a,.footer p{margin:0 0 8px;font-size:13px;color:var(--muted);display:block}
.footer a:hover{color:var(--gold-lt)}
.footer .addr{margin:0 0 10px;font-size:12px;line-height:1.7}
.footer .addr .b{display:block;color:var(--gold-lt);font-size:11px;letter-spacing:.08em;margin-bottom:1px}
.footer .base{margin-top:30px;padding-top:20px;border-top:1px solid var(--line2);
  display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between;font-size:12px;color:var(--muted)}
body{min-height:100vh;display:flex;flex-direction:column}

/* ---------- team ---------- */
.team-sec h2{font-size:19px;margin:34px 0 16px;letter-spacing:-.01em;display:flex;align-items:center;gap:14px;color:var(--ink)}
.team-sec h2 span.e{font-size:12px;color:var(--muted);letter-spacing:.08em;font-weight:400}
.team-sec h2::after{content:"";flex:1;height:1px;background:var(--line2)}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.tcard{display:flex;gap:16px;padding:22px;border-radius:var(--radius);border:1px solid var(--line2);
  background:linear-gradient(160deg,var(--panel2),var(--panel));transition:transform .28s,border-color .28s}
.tcard:hover{transform:translateY(-4px);border-color:var(--line)}
.avatar{width:52px;height:52px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  font-weight:700;font-size:16.5px;letter-spacing:.02em;color:#141108;
  background:linear-gradient(140deg,var(--gold-lt),var(--gold-dk));box-shadow:0 8px 24px rgba(217,180,81,.22)}
.tcard .nm{font-size:16.5px;font-weight:600;line-height:1.3}
.tcard .nm small{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}
.tcard .role{font-size:12.5px;color:var(--gold-lt);letter-spacing:.03em;margin:4px 0 11px}
.tcard p{margin:0;font-size:13.5px;line-height:1.7;color:var(--muted)}
.tcard p.en{margin-top:9px;font-size:12.5px;opacity:.72}
.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}
.tags span{font-size:11px;color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:3px 10px}
.creds{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}
.creds span{font-size:12.5px;color:var(--gold-lt);border:1px solid var(--line);border-radius:999px;padding:6px 13px}

/* ---------- books ---------- */
.bookgrid{display:flex;flex-direction:column;gap:22px;padding:22px 0 8px}
.book{display:grid;grid-template-columns:236px 1fr;gap:32px;padding:30px;border-radius:var(--radius);
  border:1px solid var(--line2);background:linear-gradient(160deg,var(--panel2),var(--panel));position:relative;overflow:hidden}
.book::before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;
  background:linear-gradient(90deg,transparent,var(--line),transparent)}
.bcover img{width:100%;display:block;border-radius:10px;border:1px solid var(--line2);
  box-shadow:0 22px 50px rgba(0,0,0,.55)}
.book .cat{align-self:flex-start;display:inline-block;font-size:11px;letter-spacing:.08em;color:var(--gold-lt);
  border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.book h2{margin:12px 0 5px;font-size:clamp(20px,2.2vw,27px);line-height:1.3;letter-spacing:-.012em}
.book .sub{margin:0 0 18px;color:var(--muted);font-size:13.5px}
.book .desc{margin:0 0 16px;color:var(--ink2);font-size:14.5px;line-height:1.8}
ul.bpts{margin:0 0 16px;padding-left:20px;color:var(--muted);font-size:13.5px;line-height:1.7}
ul.bpts li{margin-bottom:6px}
.book .bmeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px 20px;
  padding:16px 0;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);margin-bottom:18px}
.book .bmeta .k{display:block;font-size:11px;letter-spacing:.08em;color:var(--gold-lt);margin-bottom:3px}
.book .bmeta .v{font-size:13.5px;color:var(--ink2)}
.book .bbtns{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}
.book .bnote{margin:0;font-size:12.5px;color:var(--muted)}
.book .isbn{font-size:12.5px;color:var(--muted);letter-spacing:.02em}
html[lang="en"] .only-zh,html[lang="zh-Hant"] .only-en,html[lang="zh-Hans"] .only-en{display:none}
html[lang="zh-Hant"] .only-hans,html[lang="zh-Hans"] .only-hant,html[lang="en"] .only-hant,html[lang="en"] .only-hans{display:none}
.bsect{margin-top:40px}
.abrow{display:grid;grid-template-columns:132px 1fr;gap:26px;align-items:center;margin-top:40px}
.abrow img{width:100%;display:block;border-radius:10px;border:1px solid var(--line2);box-shadow:0 16px 36px rgba(0,0,0,.5)}
.abrow h2{margin:0 0 10px;font-size:19px;letter-spacing:-.01em;display:flex;align-items:center;gap:14px;color:var(--ink)}
.abrow h2::after{content:"";flex:1;height:1px;background:var(--line2)}
.abrow p{margin:0;color:var(--muted);font-size:13.5px}
.bsect h2{font-size:19px;letter-spacing:-.01em;display:flex;align-items:center;gap:14px;color:var(--ink)}
.bsect h2::after{content:"";flex:1;height:1px;background:var(--line2)}
.bsect>p{margin:14px 0 0;color:var(--muted);font-size:13.5px}
details.tracks{border:1px solid var(--line2);border-radius:12px;margin-top:16px;overflow:hidden;background:rgba(255,255,255,.02)}
details.tracks>summary{cursor:pointer;padding:15px 20px;font-size:13.5px;color:var(--gold-lt);list-style:none}
details.tracks>summary::-webkit-details-marker{display:none}
details.tracks>summary::before{content:"+  ";font-weight:700}
details.tracks[open]>summary::before{content:"−  "}
.tparts{padding:0 20px 18px;border-top:1px solid var(--line2)}
.tpart h4{margin:16px 0 8px;font-size:13px;color:var(--gold-lt);letter-spacing:.02em;font-weight:600}
.tpart ol{margin:0;padding-left:22px;color:var(--muted);font-size:12.5px;line-height:1.7}
.tpart ol li{margin-bottom:3px}

/* ---------- membership ---------- */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;padding:18px 0 10px}
.tier{display:flex;flex-direction:column;gap:14px;padding:28px;border-radius:var(--radius);position:relative;
  border:1px solid var(--line2);background:linear-gradient(160deg,var(--panel2),var(--panel));transition:transform .28s,border-color .28s,box-shadow .28s}
.tier:hover{transform:translateY(-4px);border-color:var(--line);box-shadow:var(--shadow)}
.tier.hi{border-color:var(--line);background:linear-gradient(160deg,rgba(217,180,81,.10),var(--panel) 65%)}
.tier.hi::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;
  background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.tier .badge{align-self:flex-start;font-size:10.5px;letter-spacing:.1em;color:#141108;font-weight:700;
  background:linear-gradient(140deg,var(--gold-lt),var(--gold));border-radius:999px;padding:4px 11px}
.tier h3{margin:0;font-size:19px;letter-spacing:-.01em}
.tier .price{font-size:27px;font-weight:700;color:var(--gold-lt);line-height:1.1}
.tier .price small{font-size:13px;font-weight:400;color:var(--muted);letter-spacing:.02em}
.tier p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.7}
.tier .btn{margin-top:auto;justify-content:center}
.tier ul{margin:0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.75}
.tier ul li{margin-bottom:6px}
.benefits{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:16px 0 10px}
.benefit{padding:20px;border-radius:14px;border:1px solid var(--line2);background:rgba(255,255,255,.02)}
.benefit h4{margin:0 0 8px;font-size:14.5px;color:var(--ink);letter-spacing:.01em;display:flex;gap:9px;align-items:flex-start}
.benefit h4::before{content:"";width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-top:7px;
  background:linear-gradient(140deg,var(--gold-lt),var(--gold-dk));box-shadow:0 0 10px rgba(217,180,81,.6)}
.benefit p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;padding:16px 0 10px}
.quote{margin:0;padding:24px;border-radius:14px;border:1px solid var(--line2);
  background:linear-gradient(160deg,rgba(217,180,81,.05),transparent 70%)}
.quote p{margin:0;font-size:14px;line-height:1.8;color:var(--ink2)}
.quote footer{margin-top:14px;font-size:12px;color:var(--gold-lt);letter-spacing:.04em}

/* ---------- cases ---------- */
.caselist{display:flex;flex-direction:column;gap:22px;padding:18px 0 8px}
.case{padding:30px;border-radius:var(--radius);border:1px solid var(--line2);position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--panel2),var(--panel))}
.case::before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;
  background:linear-gradient(90deg,transparent,var(--line),transparent)}
.case .chd{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start;justify-content:space-between}
.case h2{margin:0 0 6px;font-size:clamp(19px,2.1vw,24px);line-height:1.32;letter-spacing:-.012em}
.case .cmeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.case .cmeta span{font-size:11.5px;color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:4px 11px;white-space:nowrap}
.case .st{flex:0 0 auto;font-size:11px;letter-spacing:.09em;font-weight:700;border-radius:999px;padding:6px 13px;
  color:#141108;background:linear-gradient(140deg,var(--gold-lt),var(--gold))}
.case .cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:22px;
  padding-top:22px;border-top:1px solid var(--line2)}
.case .cblk h4{margin:0 0 10px;font-size:11.5px;letter-spacing:.12em;color:var(--gold-lt);text-transform:uppercase}
.case .cblk p{margin:0;color:var(--ink2);font-size:14px;line-height:1.78}
.case .cblk ol{margin:0;padding-left:19px;color:var(--ink2);font-size:14px;line-height:1.78}
.case .cblk ol li{margin-bottom:5px}
.case .cblk ul{margin:0;padding:0;list-style:none;color:var(--ink2);font-size:14px;line-height:1.72}
.case .cblk ul li{position:relative;padding-left:18px;margin-bottom:7px}
.case .cblk ul li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;
  background:linear-gradient(140deg,var(--gold-lt),var(--gold-dk));box-shadow:0 0 9px rgba(217,180,81,.55)}
.case .cfoot{margin-top:20px;padding-top:16px;border-top:1px solid var(--line2);display:flex;gap:14px;
  flex-wrap:wrap;align-items:center;justify-content:space-between}
.case .cfoot .cw{font-size:12.5px;color:var(--muted);line-height:1.7}

/* ---------- self-built projects（自建 AI 項目） ---------- */
.subhd{display:flex;align-items:baseline;gap:12px;margin:38px 0 0;font-size:clamp(17px,1.9vw,22px);
  letter-spacing:-.01em}
.subhd::after{content:"";flex:1;height:1px;background:var(--line2);transform:translateY(-5px)}
.sublead{margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.75;max-width:74ch}
.projgrid{display:flex;flex-direction:column;gap:22px;padding:20px 0 8px}
.case .curl{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;
  color:var(--gold-lt);text-decoration:none;border-bottom:1px solid transparent}
.case .curl:hover{border-bottom-color:var(--gold-lt)}
.case .curl::after{content:"↗";font-size:12px}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .topbar .row{flex-wrap:nowrap;height:62px;gap:12px}
  .navtoggle{display:inline-flex}
  /* 主選單改為抽屜：貼在頂欄下緣，垂直堆疊，分組點擊後展開子項 */
  .nav{display:none;position:absolute;left:0;right:0;top:100%;z-index:55;
    flex-direction:column;align-items:stretch;gap:0;margin:0;padding:6px 20px 16px;
    max-height:calc(100vh - 62px);overflow-y:auto;overscroll-behavior:contain;
    font-size:15px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  body.navopen .nav{display:flex}
  .nav>a,.nvi>.nvl{width:100%;justify-content:space-between;padding:14px 2px;border-bottom:1px solid var(--line2)}
  .nav>a::after,.nvi>.nvl::after{display:none}
  .nvi{width:100%}
  .nvi::before{display:none}
  .sub{position:static;display:none;min-width:0;padding:2px 0 10px 14px;border:0;border-left:1px solid var(--line);
    border-radius:0;box-shadow:none;background:transparent}
  .sub a{padding:11px 12px;font-size:14px;border-bottom:1px solid var(--line2)}
  .sub a:last-child{border-bottom:0}
  .nvi.open>.sub{display:flex}
  .filters{position:static}
}
@media (max-width:520px){
  .brand-logo{height:30px}
  .topbar .row{gap:10px}
  .tools{gap:8px}
  .langs button{padding:6px 9px;font-size:11.5px}
  .tools .btn.primary{padding:9px 13px;font-size:12.5px}
  .navtoggle{width:34px;height:34px}
}
@media (max-width:1080px){
  .footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:880px){
  .pagehead{padding:40px 0 24px}
  .filters{position:static;padding-top:16px}
  .count{margin-left:0;width:100%}
  .cards{grid-template-columns:1fr;gap:14px}
  .stats{gap:22px}
  .book{grid-template-columns:1fr;gap:24px;padding:24px}
  .bcover{max-width:190px}
  .abrow{grid-template-columns:96px 1fr;gap:18px}
  .case{padding:22px}
  .case .cgrid{gap:18px;margin-top:18px;padding-top:18px}
  .case .chd{flex-direction:column;gap:10px}
}

/* ---------- 專欄索引頁與專欄文章頁：章節、目錄、FAQ、延伸連結 ---------- */
.hubsec{margin:38px 0 0}
.hubsec>h2{font-size:clamp(20px,2.2vw,26px);line-height:1.25;margin:0 0 14px;letter-spacing:-.01em}
.hubsec .lead2{margin:0 0 18px;color:var(--muted);font-size:15px;max-width:78ch}
.hubprose{max-width:860px}
.hubprose p{margin:0 0 14px;color:var(--ink2);font-size:15.5px;line-height:1.8}
.hubprose a{color:var(--gold-lt);border-bottom:1px solid var(--line2)}
.aside2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:8px}
.faq h3,.std h3{margin:22px 0 6px;font-size:16px}
.faq p,.std p{margin:0 0 10px;color:var(--muted);font-size:14.5px;line-height:1.8;max-width:86ch}
.toc{margin:24px 0 4px;padding:18px 20px;border:1px solid var(--line2);border-radius:12px;background:rgba(255,255,255,.02)}
.toc h2{margin:0 0 10px;font-size:13px;letter-spacing:.08em;color:var(--gold-lt)}
.toc ol{margin:0;padding-left:20px;font-size:14px;line-height:1.7;color:var(--muted)}
.toc li{margin:4px 0}
.toc a:hover{color:var(--gold-lt)}
.pager{display:flex;justify-content:space-between;gap:18px;margin:34px 0 0;padding-top:18px;border-top:1px solid var(--line2);font-size:14px}
.pager a{color:var(--ink2);display:block}
.pager a:hover{color:var(--gold-lt)}
.pager span{color:var(--muted);font-size:12.5px;display:block;margin-bottom:4px}
.pager .next{text-align:right;margin-left:auto}
.linklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:0;padding:0;list-style:none}
.linklist li{border:1px solid var(--line2);border-radius:12px;padding:14px 16px}
.linklist li:hover{border-color:var(--line)}
.linklist a{color:var(--ink);font-size:14.5px}
.linklist em{display:block;font-style:normal;color:var(--muted);font-size:12.5px;margin-top:5px;line-height:1.6}
@media (max-width:880px){.aside2{grid-template-columns:1fr}.pager{flex-direction:column}.pager .next{text-align:left}}

/* ---------- 活動頁：即將舉行 / 活動相簿 / 過往活動 ---------- */
.evups{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:6px 0 10px}
.evu{display:grid;grid-template-columns:206px 1fr;gap:24px;padding:24px;border-radius:var(--radius);
  border:1px solid var(--line2);background:linear-gradient(160deg,var(--panel2),var(--panel));
  position:relative;overflow:hidden}
.evu::before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;
  background:linear-gradient(90deg,transparent,var(--line),transparent)}
.evu.noposter{grid-template-columns:1fr}
.evu .evposter{display:block;line-height:0;align-self:start}
.evu .evposter img{width:100%;display:block;border-radius:12px;border:1px solid var(--line2)}
.evu .evubody{display:flex;flex-direction:column;gap:10px;min-width:0}
.evu .cat{align-self:flex-start;font-size:11px;letter-spacing:.08em;color:var(--gold-lt);
  border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.evu h3{margin:0;font-size:18px;line-height:1.4;font-weight:600;letter-spacing:-.01em}
.evu p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.72}
.evu p.evwhen{display:flex;gap:12px;flex-wrap:wrap;align-items:baseline;color:var(--gold-lt);font-size:13px}
.evu p.evwhen .evtime,.evu p.evwhen .evtbd{color:var(--muted);font-size:12.5px}
.evu .k{display:block;font-size:11px;letter-spacing:.1em;color:var(--gold-lt);margin-bottom:2px}
.evu .evudetail{font-size:12.5px}
.evu .evubtns{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:10px}
.evdate{font-weight:600;letter-spacing:.02em}

.evgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:14px;padding:6px 0 10px}
.evfig{margin:0;border:1px solid var(--line2);border-radius:12px;overflow:hidden;background:var(--panel)}
.evfig>a{display:block;line-height:0;overflow:hidden}
.evfig img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .32s}
.evfig:hover img{transform:scale(1.05)}
.evfig figcaption{padding:10px 12px;font-size:12px;color:var(--muted);line-height:1.55}
.evfig figcaption .evd{display:block;color:var(--gold-lt);font-size:11px;letter-spacing:.05em;margin-bottom:3px}

.card.evcard{padding:0;gap:0}
.card.evcard .evcover{display:block;line-height:0}
.card.evcard .evcover img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.card.evcard .evbody{display:flex;flex-direction:column;gap:12px;padding:22px;flex:1;min-width:0}
.card.evcard .evwhen{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;margin:0;font-size:12px;color:var(--muted)}
.card.evcard .evwhen .evdate{color:var(--gold-lt);font-weight:600}
.card.evcard .evwhen .evrole,.card.evcard .evwhen .evvenue{position:relative;padding-left:11px}
.card.evcard .evwhen .evrole::before,.card.evcard .evwhen .evvenue::before{content:"";position:absolute;
  left:0;top:7px;width:3px;height:3px;border-radius:50%;background:var(--line)}
.card.evcard .evhost{font-size:12px;color:var(--muted);line-height:1.6}
.card.evcard .evhost .k{color:var(--gold-lt);letter-spacing:.04em;margin-right:6px}
.callout .evbtns{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.callout h3{font-size:15px;line-height:1.6;color:var(--ink)}
@media (max-width:1080px){.evups{grid-template-columns:1fr}}
@media (max-width:640px){
  .evu{grid-template-columns:1fr;gap:16px;padding:20px}
  .evu .evposter{max-width:214px}
  .evgal{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .evfig figcaption{padding:9px 10px}
  .card.evcard .evbody{padding:18px}
}
