/* ── Reset ───────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); font-family:'Noto Sans TC',sans-serif; color:var(--text-body); }
::selection { background:rgba(212,175,55,.25); color:#F5F2EA; }
img { max-width:100%; display:block; }
button { font-family:inherit; }

/* ── Aurora background animations ───────────────────────── */
@keyframes acdDriftA {
  0%   { transform:translate3d(-8%,-6%,0) scale(1.2) rotate(0deg); }
  50%  { transform:translate3d(10%,8%,0) scale(1.5) rotate(9deg); }
  100% { transform:translate3d(-8%,-6%,0) scale(1.2) rotate(0deg); }
}
@keyframes acdDriftB {
  0%   { transform:translate3d(7%,5%,0) scale(1.3) rotate(0deg); }
  50%  { transform:translate3d(-9%,-8%,0) scale(1.1) rotate(-11deg); }
  100% { transform:translate3d(7%,5%,0) scale(1.3) rotate(0deg); }
}
@keyframes acdDriftC {
  0%   { transform:translate3d(0,0,0) scale(1.15) rotate(0deg); }
  50%  { transform:translate3d(-6%,7%,0) scale(1.35) rotate(6deg); }
  100% { transform:translate3d(0,0,0) scale(1.15) rotate(0deg); }
}
@keyframes acdHue {
  0%   { filter:hue-rotate(0deg); }
  50%  { filter:hue-rotate(20deg); }
  100% { filter:hue-rotate(0deg); }
}
@keyframes acdGoldFlow {
  0%   { background-position:0% 50%; }
  100% { background-position:200% 50%; }
}
@keyframes acdRise {
  0%   { opacity:0; transform:translateY(18px); }
  100% { opacity:1; transform:translateY(0); }
}
@keyframes acdPulse {
  0%,100% { opacity:.45; transform:scale(1); }
  50%      { opacity:1;   transform:scale(1.35); }
}
@keyframes acdFade {
  0%   { opacity:0; }
  100% { opacity:1; }
}
@keyframes acdPop {
  0%   { opacity:0; transform:scale(.92); }
  100% { opacity:1; transform:scale(1); }
}
@keyframes acdSweep {
  0%   { transform:rotate(0deg); }
  100% { transform:rotate(360deg); }
}

/* ── Nav link w/ underline hover ────────────────────────── */
.acd-link {
  position:relative;
  color:var(--text-secondary);
  text-decoration:none;
  transition:color .4s ease;
  letter-spacing:.18em;
}
.acd-link:hover { color:var(--gold); }
.acd-link::after {
  content:"";
  position:absolute;
  left:0; bottom:-7px;
  width:0; height:1px;
  background:var(--gold);
  transition:width .45s cubic-bezier(.2,.7,.2,1);
}
.acd-link:hover::after,
.acd-link.active::after { width:100%; }
.acd-link.active { color:var(--gold); }

/* ── Aurora background layer (shared across all pages) ── */
.acd-aurora {
  position:fixed;inset:0;z-index:0;pointer-events:none;
  opacity:0.15;animation:acdHue 72s ease-in-out infinite;
}
.acd-aurora-a {
  position:absolute;top:-28%;left:-18%;width:88vw;height:88vw;
  background:radial-gradient(circle at 42% 42%,#004D40 0%,rgba(0,77,64,.32) 36%,transparent 66%);
  filter:blur(64px);animation:acdDriftA 52s ease-in-out infinite;
}
.acd-aurora-b {
  position:absolute;bottom:-30%;right:-20%;width:94vw;height:94vw;
  background:radial-gradient(circle at 58% 58%,#4A148C 0%,rgba(74,20,140,.32) 36%,transparent 66%);
  filter:blur(72px);animation:acdDriftB 60s ease-in-out infinite;
}
.acd-aurora-c {
  position:absolute;top:22%;left:28%;width:62vw;height:62vw;
  background:radial-gradient(circle at 50% 50%,rgba(0,77,64,.55) 0%,transparent 60%);
  filter:blur(84px);animation:acdDriftC 68s ease-in-out infinite;
}

/* ── Image placeholder ───────────────────────────────────── */
.img-slot {
  width:100%; height:100%;
  background:linear-gradient(160deg,#16150F,#0E0D0A);
  display:flex; align-items:center; justify-content:center;
}
.img-slot span {
  color:#3A3830; font-size:12px; text-align:center;
  padding:16px; letter-spacing:.05em; font-weight:300;
  font-family:'Noto Sans TC',sans-serif;
}

/* ── Filter scroll (gallery / exhibition) ──────────────── */
.acd-filterscroll { scrollbar-width:none; -ms-overflow-style:none; }
.acd-filterscroll::-webkit-scrollbar { display:none; }

/* ── Masonry grid ──────────────────────────────────────── */
.acd-masonry { column-width:330px; column-gap:26px; }
.acd-gcard { break-inside:avoid; margin-bottom:26px; }
.acd-imgwrap { overflow:hidden; border-radius:3px; }
.acd-gimg { transition:transform 1.1s cubic-bezier(.18,.7,.16,1); will-change:transform; }
.acd-gcard:hover .acd-gimg { transform:scale(1.07); }
.acd-gcard:hover .acd-gname { color:var(--gold); }

/* ── Timeline row hover ────────────────────────────────── */
.acd-row { transition:border-color .4s ease,background .4s ease; }
.acd-row:hover { border-color:rgba(212,175,55,.4) !important; background:rgba(212,175,55,.03); }

/* ── Card lift hover ───────────────────────────────────── */
.acd-mod { transition:transform .5s cubic-bezier(.2,.7,.2,1),border-color .5s ease,box-shadow .5s ease; }
.acd-mod:hover { transform:translateY(-6px); border-color:rgba(212,175,55,.45) !important; box-shadow:0 24px 60px rgba(0,0,0,.55); }

/* ── Footer link ───────────────────────────────────────── */
.ftlink {
  color:#928E83; text-decoration:none; font-size:14px;
  font-weight:300; letter-spacing:.06em; line-height:1;
  transition:color .35s ease, padding-left .35s ease;
}
.ftlink:hover { color:var(--gold); padding-left:5px; }

/* ── Input styles ──────────────────────────────────────── */
.acd-input {
  width:100%; background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.14); border-radius:3px;
  color:var(--text-primary); font-family:'Noto Sans TC',sans-serif;
  font-size:16px; letter-spacing:.03em; padding:17px 18px;
  outline:none; transition:border-color .35s,box-shadow .35s,background .35s;
}
.acd-input::placeholder { color:var(--text-faint); }
.acd-input:focus { border-color:var(--gold); background:rgba(212,175,55,.04); box-shadow:0 0 0 3px rgba(212,175,55,.14); }
.acd-input:hover { border-color:rgba(212,175,55,.32); }
select.acd-input { appearance:none; -webkit-appearance:none; cursor:pointer; }
textarea.acd-input { resize:vertical; min-height:104px; line-height:1.7; }

.acd-field {
  width:100%; background:transparent; border:none;
  border-bottom:1px solid rgba(212,175,55,.22);
  color:var(--text-primary); font-family:'Noto Sans TC',sans-serif;
  font-size:16px; letter-spacing:.03em; padding:15px 2px;
  outline:none; transition:border-color .35s,box-shadow .35s;
}
.acd-field::placeholder { color:#615D55; }
.acd-field:focus { border-bottom-color:var(--gold); box-shadow:0 8px 22px -14px rgba(212,175,55,.8); }

/* ── Mobile hamburger button ───────────────────────────── */
#acd-ham {
  display:none;
  background:none;
  border:1px solid rgba(212,175,55,.32);
  border-radius:3px;
  padding:9px 11px;
  cursor:pointer;
  flex-direction:column;
  gap:5px;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
#acd-ham span {
  display:block;
  width:20px;
  height:1.5px;
  background:#C9C4B8;
  transition:transform .35s ease, opacity .35s ease;
}
#acd-ham.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
#acd-ham.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
#acd-ham.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* ── Mobile drawer ─────────────────────────────────────── */
#acd-drawer {
  position:fixed;
  inset:0;
  z-index:49;
  background:rgba(8,8,8,.97);
  backdrop-filter:blur(28px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  transform:translateY(-100%);
  transition:transform .45s cubic-bezier(.16,1,.3,1);
  pointer-events:none;
}
#acd-drawer.open {
  transform:translateY(0);
  pointer-events:auto;
}
.acd-drawer-link {
  display:block;
  padding:18px 40px;
  color:#C9C4B8;
  text-decoration:none;
  font-family:'Noto Serif TC',serif;
  font-size:clamp(17px,4vw,24px);
  letter-spacing:.2em;
  text-align:center;
  transition:color .3s ease, background .3s ease;
  border-bottom:1px solid rgba(212,175,55,.1);
  width:100%;
  max-width:360px;
}
.acd-drawer-link:last-child { border-bottom:none; }
.acd-drawer-link:hover,
.acd-drawer-link.active { color:#D4AF37; }
.acd-drawer-cta {
  margin-top:28px;
  padding:14px 40px;
  border:1px solid rgba(212,175,55,.6) !important;
  color:#D4AF37 !important;
  border-radius:2px;
  font-family:'Noto Sans TC',sans-serif;
  font-size:14px;
  letter-spacing:.14em;
}

/* ── Responsive breakpoints ────────────────────────────── */
@media(max-width:900px) {
  .acd-navmid { display:none !important; }
  .acd-vipbtn { display:none !important; }
  #acd-ham { display:inline-flex; }
}
@media(max-width:620px) {
  .acd-memberbtn { display:none !important; }
  .acd-masonry { column-width:auto; column-count:1; }
}
