/* ───────────────────────────────────────────
   玄靈道壇  ·  styles
   palette: 深暖近黑底 + 微暗古銅金
─────────────────────────────────────────── */

:root{
  --ink:        #3b2e12;   /* 暗金黃 主底 */
  --ink-2:      #443615;
  --ink-soft:   #4a3a17;
  --paper:      #f6efdd;   /* 奶油暖白文字 */
  --paper-dim:  #ddceac;
  --gold:       #f3d488;   /* 提亮金 重點色 */
  --gold-soft:  #d9b96e;
  --gold-glow:  #ffe9b0;   /* 高光金 */
  --gold-deep:  #9c7838;   /* 沉金 大字號 */
  --line:       rgba(246,239,221,0.20);

  --serif: "Noto Serif TC", "Songti TC", serif;
  --latin: "Cormorant Garamond", "Noto Serif TC", serif;

  --ease: cubic-bezier(.16,1,.3,1);
  --slow: 1.4s;
}

*{ margin:0; padding:0; box-sizing:border-box; }

/* 根字級 125%＝20px：全站以 rem 定義，整體等比放大 1.25 倍（年長者易讀） */
html{ scroll-behavior:smooth; font-size:125%; }

body{
  background:
    radial-gradient(62% 48% at 50% -16%, rgba(255,228,158,.55) 0%, rgba(255,224,150,0) 60%) fixed,
    radial-gradient(120% 95% at 50% -12%, #9c7530 0%, #6a5020 26%, #463614 52%, #2a200d 78%, #1d160a 100%) fixed,
    var(--ink);
  color: var(--paper);
  font-family: var(--serif);
  font-weight: 300;
  line-height: 1.9;
  letter-spacing: .04em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection{ background: rgba(184,146,74,.28); color:#fff; }

a{ color: inherit; text-decoration: none; }

/* ── 疊層：顆粒、暈影 ── */
.grain{
  position: fixed; inset: -50%;
  z-index: 9000; pointer-events: none;
  opacity: .05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 8s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)} 20%{transform:translate(-4%,3%)}
  40%{transform:translate(3%,-4%)} 60%{transform:translate(-3%,2%)}
  80%{transform:translate(4%,-2%)} 100%{transform:translate(0,0)}
}
.vignette{
  position: fixed; inset:0; z-index: 8000; pointer-events:none;
  background: radial-gradient(125% 105% at 50% 38%, transparent 62%, rgba(28,18,4,.42) 100%);
}

/* ── 柔性游標 ── */
.cursor, .cursor-dot{
  position: fixed; top:0; left:0; z-index: 9500;
  pointer-events:none; border-radius:50%;
  transform: translate(-50%,-50%);
  mix-blend-mode: screen;
}
.cursor{
  width: 38px; height: 38px;
  border: 1px solid rgba(227,193,120,.55);
  transition: width .4s var(--ease), height .4s var(--ease),
              border-color .4s var(--ease), opacity .4s;
}
.cursor-dot{
  width: 4px; height: 4px; background: var(--gold-glow);
}
.cursor.is-hover{ width: 64px; height: 64px; border-color: rgba(227,193,120,.9); }
@media (hover: none){ .cursor, .cursor-dot{ display:none; } }

/* ───────────── Preloader ───────────── */
.loader{
  position: fixed; inset:0; z-index: 9999;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  background: var(--ink);
  transition: opacity .6s var(--ease), visibility .6s;
}
.loader.is-done{ opacity:0; visibility:hidden; }
.loader__ring{ position:absolute; width:min(60vmin,420px); color: var(--gold); opacity:.7; }
.halo--loader{ animation: spin 32s linear infinite; }
.loader__char{
  font-size: clamp(4rem, 14vmin, 9rem);
  font-weight: 200; color: var(--gold-glow);
  text-shadow: 0 0 38px rgba(227,193,120,.45);
  animation: breathe 3.4s var(--ease) infinite;
}
.loader__count{
  position:absolute; bottom: 12vh;
  font-family: var(--latin); font-size: .9rem;
  letter-spacing:.4em; color: var(--gold-soft);
}
.loader__count i{ font-style:normal; opacity:.6; margin-left:.2em; }
@keyframes breathe{ 0%,100%{opacity:.55; transform:scale(.98)} 50%{opacity:1; transform:scale(1.02)} }

/* ───────────── Nav ───────────── */
.nav{
  position: fixed; top:0; left:0; right:0; z-index: 200;
  display:flex; align-items:center; justify-content:space-between;
  padding: 2.2rem clamp(1.4rem,5vw,4rem);
  mix-blend-mode: difference;
  transition: transform .6s var(--ease), opacity .6s;
}
.nav.is-hidden{ transform: translateY(-120%); opacity:0; }
.nav__brand{ display:flex; align-items:center; gap:.7rem; font-weight:500; }
.nav__mark{ font-size:1.1rem; color:#fff; }
.nav__name{ letter-spacing:.32em; font-size:1.05rem; }
.nav__links{ display:flex; gap: clamp(1rem,2.6vw,2.4rem); }
.nav__links a{ position:relative; font-size:1rem; letter-spacing:.28em; color:#fff; }
.nav__links a span{ position:relative; }
.nav__links a span::after{
  content:""; position:absolute; left:0; bottom:-.5em; height:1px; width:0;
  background: currentColor; transition: width .5s var(--ease);
}
.nav__links a:hover span::after{ width:100%; }
/* 紀事／講堂為獨立頁面：金框膠囊樣式，提高存在感 */
.nav__links a.nav__page{
  border:1px solid rgba(255,255,255,.55);
  padding:.42em .95em .36em;
  transition: background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease);
}
.nav__links a.nav__page span::after{ display:none; }
.nav__links a.nav__page:hover{ background:#fff; color:#000; border-color:#fff; }

/* 漢堡選單鈕（桌機隱藏） */
.nav__burger{
  display:none; flex-direction:column; justify-content:center; align-items:stretch; gap:7px;
  width:46px; height:46px; padding:11px 9px;
  background:none; border:0; cursor:pointer;
}
.nav__burger span{
  display:block; height:2px; width:100%; background:#fff;
  transition: transform .45s var(--ease), opacity .3s;
}
body.menu-open .nav__burger span:nth-child(1){ transform: translateY(9px) rotate(45deg); }
body.menu-open .nav__burger span:nth-child(2){ opacity:0; }
body.menu-open .nav__burger span:nth-child(3){ transform: translateY(-9px) rotate(-45deg); }

/* 手機：三條線選單 → 全螢幕大字選單 */
@media(max-width:760px){
  .nav{ padding: 1.2rem 1.1rem; }
  .nav__name{ font-size:1rem; letter-spacing:.2em; }
  .nav__burger{ display:flex; }
  body.menu-open .nav{ mix-blend-mode:normal; }
  body.menu-open{ overflow:hidden; }
  .nav__links{
    position:fixed; inset:0; z-index:-1;
    flex-direction:column; align-items:center; justify-content:center;
    gap: clamp(1.7rem,4.5vh,2.6rem);
    background:
      radial-gradient(85% 55% at 50% 0%, rgba(156,117,48,.32), transparent 70%),
      rgba(24,18,8,.97);
    opacity:0; visibility:hidden; pointer-events:none;
    transition: opacity .5s var(--ease), visibility .5s;
  }
  body.menu-open .nav__links{ opacity:1; visibility:visible; pointer-events:auto; }
  .nav__links a{ font-size:1.35rem; letter-spacing:.5em; text-indent:.5em; }
  .nav__links a.nav__page{
    font-size:1.15rem; letter-spacing:.32em; text-indent:.32em;
    border-color: rgba(243,212,136,.6); color: var(--gold-glow);
    padding:.55em 1.2em .5em;
  }
}

/* ───────────── Hero ───────────── */
.hero{
  position: relative; min-height: 100vh; min-height: 100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  overflow:hidden;
}
.hero__halo{
  position:absolute; top:46%; left:50%;
  width: min(96vmin, 760px); aspect-ratio:1;
  transform: translate(-50%,-50%);
  color: var(--gold); opacity:.6;
}
.halo--hero{ animation: spin 90s linear infinite; }
.halo--hero .halo__bagua{ animation: spin-rev 120s linear infinite; transform-origin:center; }

.smoke{ position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:300px; height:60vh; pointer-events:none; }
.smoke span{
  position:absolute; bottom:0; left:50%; width:2px; height:0;
  background: linear-gradient(to top, rgba(227,193,120,.5), transparent);
  filter: blur(3px);
  animation: rise 7s var(--ease) infinite;
}
.smoke span:nth-child(1){ left:42%; animation-delay:0s; }
.smoke span:nth-child(2){ left:50%; animation-delay:2.2s; }
.smoke span:nth-child(3){ left:58%; animation-delay:4.1s; }
@keyframes rise{
  0%{ height:0; opacity:0; transform:translateX(0) }
  15%{ opacity:.7 }
  100%{ height:55vh; opacity:0; transform:translateX(-26px) }
}

.hero__inner{ position:relative; z-index:2; text-align:center; }

.hero__kicker{
  display:flex; gap:.55em; justify-content:center; align-items:center;
  font-size: clamp(.85rem,1.7vw,1.05rem); letter-spacing:.5em;
  color: var(--gold); margin-bottom: clamp(2rem,5vh,3.4rem);
  text-indent:.5em;
}
.hero__kicker em{ font-style:normal; opacity:.5; }

.hero__title{
  writing-mode: vertical-rl;
  display:flex; flex-direction:row; justify-content:center; gap: clamp(.1em,1vw,.22em);
  font-weight: 200; line-height:1;
  /* 以視窗高度封頂，避免四字直書在矮視窗超出可視範圍 */
  font-size: min(clamp(4rem, 16vmin, 11rem), 15vh);
  margin: 0 auto;
}
.hero__col{
  background: linear-gradient(180deg, var(--gold-glow), var(--gold) 45%, var(--gold-deep));
  -webkit-background-clip:text; background-clip:text; color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 0 24px rgba(227,193,120,.18));
}
.hero__sub{
  margin-top: clamp(2rem,5vh,3.2rem);
  font-size: clamp(.95rem,2vw,1.2rem); letter-spacing:.42em;
  color: var(--paper-dim); text-indent:.42em;
}

.hero__scroll{
  /* 用 left/right + margin 置中，不用 translateX——
     進場動畫結束會把 transform 設回 none，translateX 置中會被蓋掉而偏右 */
  position:absolute; bottom: 4vh; left:0; right:0;
  margin-inline:auto; width:max-content;
  z-index:3; display:flex; flex-direction:column; align-items:center; gap:1rem;
  font-size:.85rem; letter-spacing:.42em; color: var(--gold); text-indent:.42em;
}
.hero__scrollline{ width:1px; height:64px; background: linear-gradient(var(--gold), transparent); position:relative; overflow:hidden; }
.hero__scrollline::after{ content:""; position:absolute; top:-30%; left:0; width:100%; height:30%; background: var(--gold-glow); animation: drop 2.4s var(--ease) infinite; }
@keyframes drop{ 0%{top:-30%} 70%,100%{top:100%} }

/* 矮 / 扁視窗：收緊間距，確保標題＋副標＋捲動提示不重疊 */
@media (max-height: 760px){
  .hero__kicker{ margin-bottom: clamp(1rem,3vh,1.8rem); }
  .hero__sub{ margin-top: clamp(1rem,3vh,1.8rem); }
  .hero__scroll{ bottom: 2.4vh; gap:.6rem; }
  .hero__scrollline{ height: 40px; }
}
@media (max-height: 560px){
  .hero__title{ font-size: min(clamp(3rem,13vmin,7rem), 17vh); }
  .hero__scroll{ display:none; }
}

/* ───────────── 經文跑馬 ───────────── */
.marquee{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding: 1.5rem 0; overflow:hidden; white-space:nowrap;
  background: linear-gradient(90deg, transparent, rgba(184,146,74,.04), transparent);
}
.marquee__track{ display:inline-flex; animation: marquee 38s linear infinite; }
.marquee__track span{
  font-family: var(--serif); font-weight:300;
  font-size: clamp(1rem,2.4vw,1.5rem); letter-spacing:.3em;
  color: var(--gold-soft); padding-right:2rem;
}
@keyframes marquee{ to{ transform: translateX(-33.333%); } }

/* ───────────── 共用 區段標頭 ───────────── */
section{ position:relative; padding: clamp(6rem,16vh,12rem) clamp(1.4rem,7vw,8rem); }

.section-head{ margin-bottom: clamp(3rem,8vh,6rem); max-width:60ch; }
.section-head--center{ text-align:center; margin-left:auto; margin-right:auto; }
.section-head__idx{
  display:block; font-family:var(--serif); font-weight:200;
  font-size: clamp(2.4rem,7vw,4.2rem); color: var(--gold-deep);
  line-height:1; margin-bottom:.4em;
}
.section-head__title{
  font-weight:300; font-size: clamp(1.8rem,5vw,3rem);
  letter-spacing:.28em; color: var(--paper); text-indent:.28em;
}
.section-head__note{ margin-top:1rem; font-size:.9rem; letter-spacing:.36em; color: var(--gold-soft); }

/* 直書標題 */
.vtitle{
  writing-mode: vertical-rl; font-weight:200; line-height:1.1;
  font-size: clamp(3rem,9vmin,6rem); letter-spacing:.1em;
  color: var(--gold); filter: drop-shadow(0 0 20px rgba(184,146,74,.12));
}

/* ───────────── 緣起 (不對稱 grid) ───────────── */
.origin{
  display:grid;
  grid-template-columns: minmax(3rem,.5fr) auto minmax(0, 52ch) minmax(19rem, 1.2fr);
  grid-template-areas: "idx head body fig";
  align-items:start; gap: clamp(2rem,5vw,5rem);
}
.origin__figure{ grid-area:fig; align-self:center; max-width: 31rem; width:100%; }
.origin__index{
  grid-area:idx; align-self:start;
  font-weight:200; font-size: clamp(2.4rem,6vw,3.6rem); color: var(--gold-deep);
  writing-mode: vertical-rl; letter-spacing:.2em;
}
.origin__heading{ grid-area:head; }
.origin__body{ grid-area:body; padding-top: clamp(1rem,4vh,3rem); }
.origin__body p{ margin-bottom: 1.8rem; color: var(--paper-dim); max-width: 52ch; }
.lede{ font-size: clamp(1.15rem,2.6vw,1.6rem) !important; line-height:1.8; color: var(--paper) !important; font-weight:300; }
.origin__seal{
  display:inline-flex; gap:.6rem; margin-top:1rem;
}
.origin__seal span{
  display:grid; place-items:center; width:2.8em; height:2.8em;
  border:1px solid var(--line); color: var(--gold);
  font-size:1.1rem; letter-spacing:0;
}
@media(max-width:900px){
  .origin{ grid-template-columns: auto 1fr; grid-template-areas: "idx head" "body body" "fig fig"; }
  .origin__figure{ justify-self:center; }
}

/* ───────────── 主祀神尊 ───────────── */
.deity-list{ list-style:none; border-top:1px solid var(--line); }
.deity{
  position:relative; display:grid;
  grid-template-columns: 5rem minmax(12rem,.9fr) 1.3fr;
  grid-template-areas: "no name desc" "no alt desc";
  column-gap: clamp(1rem,4vw,4rem); row-gap:0;
  align-items:baseline;
  padding: clamp(2rem,5vh,3.4rem) 0;
  border-bottom:1px solid var(--line);
  transition: background .6s var(--ease);
}
.deity__no{ grid-area:no; }
.deity__name{ grid-area:name; }
.deity__alt{ grid-area:alt; }
.deity__desc{ grid-area:desc; align-self:center; }
.deity:hover{ background: linear-gradient(90deg, rgba(184,146,74,.05), transparent); }
.deity__no{ font-family:var(--latin); font-size:.95rem; letter-spacing:.2em; color: var(--gold-deep); }
.deity__name{
  font-weight:400; font-size: clamp(1.5rem,4vw,2.4rem); letter-spacing:.1em;
  color: var(--paper); transition: color .5s var(--ease);
}
.deity:hover .deity__name{ color: var(--gold-glow); }
.deity--main{ background: linear-gradient(90deg, rgba(255,233,176,.07), transparent 70%); }
.deity--main .deity__no{ color: var(--gold); }
.deity--main .deity__name{
  color: var(--gold-glow);
  filter: drop-shadow(0 0 18px rgba(255,233,176,.28));
}
.deity__alt{ font-size:.92rem; letter-spacing:.18em; color: var(--gold-soft); margin-top:.5em; }
.deity__desc{ color: var(--paper-dim); font-size: clamp(.95rem,1.6vw,1.05rem); }

/* 主神兩尊並列 */
.deity-list--mains{
  display:grid; grid-template-columns:1fr 1fr;
}
.deity-list--mains .deity{
  grid-template-columns:1fr; row-gap:.4rem;
  grid-template-areas: "no" "name" "alt" "desc";
  padding: clamp(2rem,5vh,3.2rem) clamp(1.2rem,3vw,2.8rem);
}
.deity-list--mains .deity:first-child{ border-right:1px solid var(--line); }
.deity-list--mains .deity--main{ background: linear-gradient(180deg, rgba(255,233,176,.07), transparent 80%); }
.deity-list--mains .deity__desc{ margin-top:.6em; }

/* 其他神尊兩欄 */
.deity-list--grid{
  display:grid; grid-template-columns:1fr 1fr;
  border-top:none;
}
.deity-list--grid .deity{
  grid-template-columns:1fr; row-gap:.3rem;
  grid-template-areas: "no" "name" "alt" "desc";
  padding: clamp(1.5rem,3.5vh,2.4rem) clamp(1.2rem,3vw,2.8rem);
}
.deity-list--grid .deity:nth-child(odd){ border-right:1px solid var(--line); }
.deity-list--grid .deity:nth-child(odd):last-child{ grid-column:1 / -1; border-right:none; }
.deity-list--grid .deity__name{ font-size: clamp(1.35rem,2.6vw,1.9rem); }
.deity-list--grid .deity__desc{ margin-top:.5em; font-size: clamp(.9rem,1.4vw,1rem); }

@media(max-width:760px){
  .deity{
    grid-template-columns: 1fr; gap:.5rem;
    grid-template-areas: "no" "name" "alt" "desc";
  }
  .deity-list--mains,
  .deity-list--grid{ grid-template-columns:1fr; }
  .deity-list--mains .deity:first-child,
  .deity-list--grid .deity:nth-child(odd){ border-right:none; }
}

/* ───────────── 科儀法事 ───────────── */
.rites{ text-align:center; overflow:hidden; }
.rites__halo{ position:absolute; top:8%; left:50%; transform:translateX(-50%); width:min(70vmin,560px); color:var(--gold); opacity:.4; }
.rites__halo .halo{ animation: spin 70s linear infinite; }
.rite-grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,18rem),1fr));
  gap:1px; background: var(--line);
  border:1px solid var(--line); margin-top: clamp(2rem,5vh,4rem);
}
.rite{
  display:block; position:relative;
  background: var(--ink); text-align:left;
  padding: clamp(2rem,4vw,3rem) clamp(2rem,4vw,3rem) clamp(3rem,5vw,3.6rem);
  transition: background .6s var(--ease), transform .6s var(--ease);
}
.rite:hover{ background: var(--ink-soft); }
.rite::after{
  content:"洽詢此科儀　→";
  position:absolute; right: clamp(1.4rem,3vw,2rem); bottom: 1.1rem;
  font-size:.78rem; letter-spacing:.22em; color: var(--gold);
  opacity:0; transform: translateX(-8px);
  transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.rite:hover::after{ opacity:1; transform:none; }
@media (hover: none){ .rite::after{ opacity:.65; transform:none; } }
.rite h3{
  font-weight:400; font-size:1.35rem; letter-spacing:.16em; color: var(--gold);
  margin-bottom:1rem; position:relative; padding-left:1.4em;
}
.rite h3::before{ content:"☷"; position:absolute; left:0; top:0; font-size:.8em; opacity:.5; }
.rite p{ color: var(--paper-dim); font-size:.98rem; }
.rites__more{
  position:relative; z-index:2;
  display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;
  margin-top: clamp(2.5rem,6vh,4rem);
}

/* ───────────── 參拜資訊 ───────────── */
.visit__rows{ border-top:1px solid var(--line); max-width: 72ch; }
.visit__row{
  display:grid; grid-template-columns: 9rem 1fr; gap: clamp(1rem,4vw,3rem);
  padding: 1.6rem 0; border-bottom:1px solid var(--line); align-items:baseline;
}
.visit__label{ font-size:.9rem; letter-spacing:.36em; color: var(--gold-soft); }
.visit__value{ font-size: clamp(1.05rem,2vw,1.3rem); color: var(--paper); letter-spacing:.08em; }
.visit__bless{
  margin-top: clamp(3rem,8vh,5rem); text-align:center;
  font-size: clamp(1.1rem,3vw,1.8rem); letter-spacing:.5em; text-indent:.5em;
  color: var(--gold); font-weight:300;
}
@media(max-width:640px){ .visit__row{ grid-template-columns:1fr; gap:.4rem; } }

/* ───────────── Footer ───────────── */
.foot{ text-align:center; padding: clamp(4rem,10vh,7rem) 1.4rem 3rem; border-top:1px solid var(--line); }
.foot__mark{ font-size:1.6rem; color: var(--gold); opacity:.7; }
.foot__name{ margin-top:1rem; letter-spacing:.4em; font-size:1.1rem; text-indent:.4em; color: var(--paper); }
.foot__copy{ margin-top:1.4rem; font-size:.78rem; letter-spacing:.22em; color: var(--gold-deep); }

/* ───────────── 子頁：頁首 ───────────── */
.page-hero{
  min-height: 56vh; min-height: 56svh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-top: clamp(8rem,18vh,12rem); padding-bottom: clamp(2rem,4vh,3rem);
}
.page-hero__inner{
  display:flex; align-items:flex-end; gap: clamp(2.5rem,7vw,6rem); flex-wrap:wrap;
}
.page-hero__side{ max-width: 46ch; padding-bottom:.5rem; }
.page-hero__note{ font-size:.9rem; letter-spacing:.4em; color: var(--gold-soft); margin-bottom:1.4rem; }
.page-hero__lede{ color: var(--paper-dim); line-height:2.1; }
.page-hero__scroll{
  align-self:center; margin-top: clamp(2.4rem,6vh,4rem);
  display:flex; flex-direction:column; align-items:center; gap:.9rem;
  font-size:.85rem; letter-spacing:.42em; text-indent:.42em; color: var(--gold);
}
.page-hero__scroll .hero__scrollline{ height:48px; }

/* ───────────── 子頁：近期科儀卡 ───────────── */
.upcoming-wrap{ padding-top:0; }
/* 多場活動同時報名時自動並排；單場時維持單欄 */
.upcoming-grid{
  display:grid; gap: clamp(1.8rem,4vw,2.8rem);
  grid-template-columns: repeat(auto-fit, minmax(min(100%,32rem), 1fr));
}
.upcoming__deadline{
  margin-top:1.2rem;
  font-size:.92rem; letter-spacing:.2em;
  color: var(--gold);
}
.upcoming--none{ border-style:dashed; box-shadow:none; }
.upcoming--none .upcoming__date{ font-size:1.15rem; color: var(--paper); }
.upcoming{
  position:relative; max-width: 74ch;
  border:1px solid rgba(243,212,136,.45);
  padding: clamp(2.2rem,5vw,3.6rem);
  background: linear-gradient(140deg, rgba(255,233,176,.10), rgba(255,233,176,.02) 55%);
  box-shadow: 0 0 60px rgba(255,233,176,.08), inset 0 0 40px rgba(255,233,176,.04);
}
.upcoming__tag{
  position:absolute; top:-0.85em; left: clamp(1.6rem,4vw,3rem);
  background: var(--gold); color:#3a2c10;
  font-size:.82rem; letter-spacing:.34em; text-indent:.34em;
  padding:.35em 1em .3em; font-weight:500;
}
.upcoming__date{ font-size:.95rem; letter-spacing:.22em; color: var(--gold-soft); }
.upcoming__date em{ font-style:normal; opacity:.75; font-size:.85em; margin:0 .4em; }
.upcoming__title{
  font-weight:400; font-size: clamp(1.7rem,4.5vw,2.6rem);
  letter-spacing:.14em; color: var(--gold-glow);
  margin:.6em 0 .7em;
}
.upcoming__desc{ color: var(--paper-dim); max-width:58ch; }
.upcoming__cta{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:2rem; }
.btn-gold, .btn-line{
  display:inline-block; padding:.85em 1.8em;
  font-size:.92rem; letter-spacing:.2em; text-indent:.2em;
  transition: background .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);
}
.btn-gold{ background: var(--gold); color:#3a2c10; font-weight:500; }
.btn-gold:hover{ background: var(--gold-glow); }
.btn-line{ border:1px solid var(--line); color: var(--paper); }
.btn-line:hover{ border-color: var(--gold); color: var(--gold-glow); }

/* ───────────── 子頁：紀事年表 ───────────── */
.timeline{ list-style:none; max-width: 80ch; }
.tl{
  position:relative; display:grid;
  grid-template-columns: 8.5rem 1fr; gap: clamp(1.2rem,4vw,3.4rem);
  padding: 1.9rem 0 1.9rem 1.8rem;
  border-left:1px solid var(--line);
}
.tl::before{
  content:""; position:absolute; left:-4px; top:2.75rem;
  width:7px; height:7px; transform: rotate(45deg);
  background: var(--gold); box-shadow: 0 0 12px rgba(255,233,176,.5);
}
.tl__date{
  font-size:.95rem; letter-spacing:.24em; color: var(--gold-soft);
  padding-top:.25em; white-space:nowrap;
}
.tl__body h3{
  font-weight:400; font-size: clamp(1.15rem,2.6vw,1.45rem);
  letter-spacing:.08em; color: var(--paper); margin-bottom:.5em;
}
.tl__body p{ color: var(--paper-dim); font-size:.97rem; max-width:56ch; }
.tl:hover .tl__body h3{ color: var(--gold-glow); transition: color .5s var(--ease); }
.timeline__more{ margin-top:3rem; padding-left:1.8rem; color: var(--paper-dim); font-size:.95rem; letter-spacing:.1em; }
.timeline__more a{ color: var(--gold); border-bottom:1px solid var(--line); }
.timeline__more a:hover{ color: var(--gold-glow); }
@media(max-width:640px){
  .tl{ grid-template-columns:1fr; gap:.5rem; }
}

/* ───────────── 子頁：講堂 ─────────────
   內容欄置中，避免寬螢幕右側整片留白 */
.lessons{ max-width: 84ch; margin-inline: auto; }
.lesson{
  padding: clamp(2.6rem,7vh,4.5rem) 0;
  border-top:1px solid var(--line);
  display:grid; grid-template-columns: 7rem 1fr; gap: clamp(1.2rem,4vw,3rem);
}
.lesson__no{
  writing-mode: vertical-rl; letter-spacing:.3em;
  font-size:.95rem; color: var(--gold-deep);
  justify-self:start;
}
.lesson__q{
  grid-column:2; font-weight:400;
  font-size: clamp(1.4rem,3.4vw,2rem); letter-spacing:.1em;
  color: var(--gold); margin-bottom: 1.2rem;
}
.lesson__body{ grid-column:2; }
.lesson__body p{ color: var(--paper-dim); margin-bottom:1.4rem; max-width:62ch; }
.lesson__body strong{ color: var(--paper); font-weight:500; }
.lesson__body a{ color: var(--gold); border-bottom:1px solid var(--line); }
.lesson__body a:hover{ color: var(--gold-glow); }
.lesson__key{
  color: var(--gold) !important; border-left:2px solid var(--gold-deep);
  padding-left:1.2em; font-size:1.02rem;
}
.lesson{ grid-template-areas:"no q" "no body"; }
.lesson__no{ grid-area:no; } .lesson__q{ grid-area:q; } .lesson__body{ grid-area:body; }
.lessons__foot{
  border-top:1px solid var(--line); padding-top:2.6rem; margin-top:1rem;
  color: var(--paper-dim); letter-spacing:.06em;
}
.lessons__foot a{ color: var(--gold); border-bottom:1px solid var(--line); }
.lessons__foot a:hover{ color: var(--gold-glow); }
@media(max-width:640px){
  .lesson{ grid-template-columns:1fr; grid-template-areas:"no" "q" "body"; }
  .lesson__no{ writing-mode:horizontal-tb; }
  .lesson__q, .lesson__body{ grid-column:1; }
}

/* 參拜資訊連結 */
.visit__value a{ border-bottom:1px solid var(--line); transition: color .5s var(--ease); }
.visit__value a:hover{ color: var(--gold-glow); }

/* 外觀照（左）＋ LINE QR（右） */
.visit__media{
  display:flex; align-items:stretch; flex-wrap:wrap;
  gap: clamp(1.2rem,3vw,2rem);
  margin-top: clamp(2.5rem,6vh,4rem);
}
.visit__media .visit__figure{ flex:1 1 26rem; margin-top:0; max-width:none; }
.visit__lineqr{
  flex:0 1 15rem;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1.1rem; padding: clamp(1.4rem,3vw,2rem);
  border:1px solid var(--line); text-align:center;
  background: linear-gradient(160deg, rgba(255,233,176,.06), rgba(255,233,176,.01));
}
.visit__lineqr img{
  width: clamp(7rem,14vw,9.5rem); height:auto;
  background:#fff; padding:.5rem;
  border:1px solid rgba(243,212,136,.35);
}
.visit__lineqr p{
  font-size:.92rem; letter-spacing:.18em; line-height:2.2;
  color: var(--paper-dim);
}

/* ───────────── 圖位佔位（待換實照）───────────── */
figure.ph{ margin:0; }
.ph{
  position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.9rem;
  padding: clamp(1.2rem,3vw,2rem); text-align:center;
  background:
    linear-gradient(150deg, rgba(243,212,136,.12), rgba(243,212,136,.02) 60%),
    rgba(255,233,176,.04);
  border:1px dashed rgba(243,212,136,.45);
}
.ph--wide{ aspect-ratio:16/9; width:100%; }
.ph--tall{ aspect-ratio:3/4; }
.ph--sq{ aspect-ratio:1/1; }
.ph__tag{
  position:absolute; top:.9rem; left:.9rem;
  font-size:.78rem; letter-spacing:.3em; text-indent:.3em;
  color: var(--gold); border:1px solid rgba(243,212,136,.4);
  padding:.25em .7em;
}
.ph__name{
  font-weight:400; font-size: clamp(1rem,2vw,1.2rem);
  letter-spacing:.22em; text-indent:.22em; color: var(--gold-glow);
}
.ph__hint{
  font-size:.85rem; line-height:1.9; letter-spacing:.05em;
  color: var(--gold-soft); max-width: 34ch;
}
.ph-strip{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,15rem),1fr));
  gap: 1rem; margin-top: clamp(2rem,5vh,3.5rem);
  position:relative; z-index:2;
}
.visit__figure{ max-width: 72ch; margin-top: clamp(2.5rem,6vh,4rem); }
.upcoming__figure{ margin-top: 2rem; }
.lesson__figure{ margin-top: 1.8rem; max-width: 30rem; }

/* ───────────── 實景照片 ───────────── */
figure.photo{
  margin:0; position:relative; overflow:hidden;
  border:1px solid rgba(243,212,136,.28);
  background: rgba(255,233,176,.03);
}
.photo img{ display:block; width:100%; height:100%; object-fit:cover; }
.photo--wide{ aspect-ratio:16/9; width:100%; }
.photo--tall{ aspect-ratio:3/4; }
.photo--sq{ aspect-ratio:1/1; }
.photo--poster{ aspect-ratio:9/16; max-width: 20rem; }
.photo figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 2.2rem 1.1rem .8rem; text-align:left;
  font-size:.82rem; letter-spacing:.14em; color: var(--paper-dim);
  background: linear-gradient(transparent, rgba(20,14,5,.85));
}

/* 粉專動態項目 */
.tl__tag{
  display:inline-block; font-size:.78rem; letter-spacing:.24em; text-indent:.24em;
  color:#3a2c10; background: var(--gold); font-weight:500;
  padding:.2em .55em .15em; margin-right:.7em; vertical-align:.18em;
}
.tl__body h3 a{ transition: color .5s var(--ease); }
.tl__body h3 a:hover{ color: var(--gold-glow); }
.tl__fb{
  display:inline-block; margin-top:.5em;
  font-size:.85rem; letter-spacing:.14em; color: var(--gold);
  border-bottom:1px solid var(--line);
}
.tl__fb:hover{ color: var(--gold-glow); }

/* ───────────── 進場動畫 ───────────── */
[data-reveal]{ opacity:0; transform: translateY(34px); filter: blur(6px); transition: opacity var(--slow) var(--ease), transform var(--slow) var(--ease), filter var(--slow) var(--ease); }
[data-reveal].is-in{ opacity:1; transform:none; filter:blur(0); }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  [data-reveal]{ opacity:1; transform:none; filter:none; }
  html{ scroll-behavior:auto; }
}

/* ───────────── 共用旋轉 ───────────── */
@keyframes spin{ to{ transform: rotate(360deg); } }
@keyframes spin-rev{ to{ transform: rotate(-360deg); } }
.halo{ display:block; width:100%; height:100%; transform-origin:center; }
.halo__rays line{ stroke: currentColor; }
