/* ==========================================================================
   妈祖善缘 · 妈祖文化公益平台
   设计系统 Design System
   零外部依赖：无 CDN、无外链字体、无外链图片
   视觉语汇：深海夜幕 / 庙宇朱红 / 鎏金 / 海浪纹 / 灯火 / 涟漪
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 设计令牌
   -------------------------------------------------------------------------- */
:root{
  /* 底色 —— 深海夜幕 */
  --deep:#08202e;
  --deep-2:#0c2b3d;
  --deep-3:#123c52;
  --deep-4:#1a4e68;

  /* 海青 */
  --sea:#12708a;
  --sea-l:#35a3ba;

  /* 庙宇朱红 —— 全站主行动色，与既往项目刻意区隔 */
  --crimson:#b23a34;
  --crimson-d:#8d2b26;
  --crimson-l:#cf5044;

  /* 鎏金 */
  --gold:#c9a227;
  --gold-l:#e6c65c;
  --gold-d:#a3821c;

  /* 纸与墨 */
  --paper:#fbf8f3;
  --paper-2:#f5f0e7;
  --paper-3:#efe8dc;
  --ink:#17222a;
  --ink-2:#33444f;
  --muted:#6c7a84;
  --muted-2:#8b979f;
  --line:#e5ddcf;
  --line-2:#d6cbb8;
  --white:#ffffff;
  --ok:#1f7a5a;

  /* 字体 */
  --f-serif:"Noto Serif CJK SC","Source Han Serif SC","Songti SC","STSong",SimSun,serif;
  --f-kai:"Kaiti SC",KaiTi,"STKaiti",STKai,serif;
  --f-sans:system-ui,-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --f-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;

  /* 尺度 */
  --max:1180px;
  --max-narrow:820px;
  --r-s:6px;
  --r:12px;
  --r-l:18px;
  --r-xl:26px;
  --r-full:999px;

  /* 阴影 */
  --sh-1:0 1px 2px rgba(8,32,46,.05),0 3px 10px rgba(8,32,46,.06);
  --sh-2:0 2px 6px rgba(8,32,46,.07),0 14px 36px rgba(8,32,46,.10);
  --sh-3:0 6px 16px rgba(8,32,46,.10),0 30px 70px rgba(8,32,46,.16);
  --sh-gold:0 0 0 1px rgba(201,162,39,.30),0 10px 44px rgba(201,162,39,.20);
  --sh-crimson:0 4px 14px rgba(178,58,52,.28),0 12px 32px rgba(178,58,52,.18);

  /* 动效 */
  --ease:cubic-bezier(.22,.68,.32,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --nav-h:70px;
}

/* --------------------------------------------------------------------------
   2. 基础重置
   -------------------------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--nav-h) + 16px);
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-sans);
  font-size:16px;
  line-height:1.78;
  letter-spacing:.012em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img,svg{ display:block; max-width:100%; }
img{ height:auto; }

p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

a{ color:var(--sea); text-decoration:none; transition:color .22s var(--ease); }
a:hover{ color:var(--crimson); }

strong,b{ font-weight:600; color:var(--ink); }

ul,ol{ margin:0 0 1.1em; padding-left:1.35em; }
li{ margin-bottom:.42em; }
li:last-child{ margin-bottom:0; }

hr{ border:0; border-top:1px solid var(--line); margin:2.4em 0; }

code{
  font-family:var(--f-mono);
  font-size:.9em;
  background:rgba(18,112,138,.09);
  color:var(--sea);
  padding:2px 6px;
  border-radius:4px;
  word-break:break-all;
}
.dark code{ background:rgba(255,255,255,.1); color:var(--gold-l); }

::selection{ background:rgba(201,162,39,.26); color:var(--ink); }

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:3px;
}

.skip{
  position:absolute; left:-9999px; top:10px; z-index:300;
  padding:12px 22px; border-radius:var(--r-s);
  background:var(--crimson); color:#fff; font-size:14.5px;
}
.skip:focus{ left:16px; color:#fff; }

.sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* --------------------------------------------------------------------------
   3. 排版系统
   -------------------------------------------------------------------------- */
h1,h2,h3,h4,h5{
  font-family:var(--f-serif);
  font-weight:600;
  line-height:1.24;
  letter-spacing:-.005em;
  color:var(--ink);
  margin:0 0 .5em;
  text-wrap:balance;
}

h1{ font-size:clamp(2.1rem,5.2vw,3.55rem); line-height:1.14; letter-spacing:-.02em; }
h2{ font-size:clamp(1.65rem,3.5vw,2.5rem); }
h3{ font-size:clamp(1.2rem,2.1vw,1.5rem); }
h4{ font-size:1.08rem; }

.h-hero{
  font-size:clamp(2.4rem,6.4vw,4.5rem);
  line-height:1.08;
  letter-spacing:.02em;
  font-weight:600;
}

.eyebrow{
  display:inline-block;
  font-family:var(--f-sans);
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-d);
  margin:0 0 18px;
}

.kai{ font-family:var(--f-kai); }
.mono{ font-family:var(--f-mono); }
.gold{ color:var(--gold); }
.gold-txt{ color:var(--gold-d); }
.crimson{ color:var(--crimson); }
.sea-txt{ color:var(--sea); }
.muted{ color:var(--muted); }
.center{ text-align:center; }

.lead{
  font-size:clamp(1.02rem,1.55vw,1.18rem);
  line-height:1.86;
  color:var(--ink-2);
}

.sec-lead{
  font-size:clamp(1rem,1.45vw,1.1rem);
  color:var(--muted);
  line-height:1.85;
  max-width:70ch;
}

.tabnum{ font-variant-numeric:tabular-nums; font-feature-settings:"tnum"; }

/* 引语 */
.quote{
  font-family:var(--f-kai);
  font-size:clamp(1.18rem,2.3vw,1.62rem);
  line-height:1.82;
  color:var(--ink);
  border-left:3px solid var(--gold);
  padding:6px 0 6px 26px;
  margin:1.9em 0;
}
.quote cite{
  display:block;
  margin-top:14px;
  font-family:var(--f-sans);
  font-size:13.5px;
  font-style:normal;
  color:var(--muted);
}

/* --------------------------------------------------------------------------
   4. 布局
   -------------------------------------------------------------------------- */
.wrap{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 24px;
}
.wrap--narrow{ max-width:var(--max-narrow); }

.section{ padding:clamp(60px,8.4vw,112px) 0; position:relative; }
.section--tight{ padding:clamp(46px,6vw,74px) 0; }
.section--paper{ background:var(--paper); }
.section--paper-2{ background:var(--paper-2); }
.section--white{ background:var(--white); }

.sec-head{ max-width:76ch; margin-bottom:clamp(34px,4.6vw,58px); }
.sec-head--center{ margin-left:auto; margin-right:auto; text-align:center; }

.grid{ display:grid; gap:22px; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
.grid-5{ grid-template-columns:repeat(5,1fr); }

.flow > * + *{ margin-top:18px; }

.mt-s{ margin-top:16px; }
.mt-m{ margin-top:26px; }
.mt-l{ margin-top:40px; }
.mb-0{ margin-bottom:0; }

.note{
  font-size:12.6px;
  color:var(--muted-2);
  line-height:1.74;
  max-width:84ch;
}
.note--center{ margin-left:auto; margin-right:auto; text-align:center; }
.dark .note{ color:rgba(255,255,255,.46); }

/* 深色区 —— 组件在同区内自动变色 */
.dark{
  --ink:#f1f6f9;
  --ink-2:#c3d6e0;
  --muted:#8ba4b2;
  --muted-2:#738d9c;
  --line:rgba(255,255,255,.14);
  --line-2:rgba(255,255,255,.22);
  --paper:#0f3346;
  --paper-2:#123a4f;
  --white:#0f3346;
  background:var(--deep);
  color:var(--ink);
}
.dark h1,.dark h2,.dark h3,.dark h4{ color:#fff; }
.dark a{ color:var(--gold-l); }
.dark a:hover{ color:#fff; }
.dark strong,.dark b{ color:#fff; }
.dark .eyebrow{ color:var(--gold-l); }
.dark ::selection{ background:rgba(201,162,39,.4); color:#fff; }

/* --------------------------------------------------------------------------
   5. 装饰语汇
   -------------------------------------------------------------------------- */

/* 海浪纹分割线 */
.wave{
  height:26px;
  background-repeat:repeat-x;
  background-position:center bottom;
  background-size:132px 26px;
  pointer-events:none;
}
.wave--on-paper{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 26' preserveAspectRatio='none'%3E%3Cpath d='M0 19 Q 16.5 7 33 19 T 66 19 T 99 19 T 132 19' fill='none' stroke='%23c9a227' stroke-width='1.1' stroke-opacity='.5'/%3E%3Cpath d='M0 24 Q 16.5 12 33 24 T 66 24 T 99 24 T 132 24' fill='none' stroke='%2312708a' stroke-width='1' stroke-opacity='.28'/%3E%3C/svg%3E");
}
.wave--on-deep{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 26' preserveAspectRatio='none'%3E%3Cpath d='M0 19 Q 16.5 7 33 19 T 66 19 T 99 19 T 132 19' fill='none' stroke='%23c9a227' stroke-width='1.1' stroke-opacity='.55'/%3E%3Cpath d='M0 24 Q 16.5 12 33 24 T 66 24 T 99 24 T 132 24' fill='none' stroke='%2335a3ba' stroke-width='1' stroke-opacity='.4'/%3E%3C/svg%3E");
}

/* 海面纹理底 */
.sea-bg{
  background-color:var(--deep);
  background-image:
    radial-gradient(ellipse 90% 60% at 50% 108%, rgba(18,112,138,.42), transparent 68%),
    radial-gradient(ellipse 60% 40% at 12% -10%, rgba(201,162,39,.13), transparent 62%),
    radial-gradient(ellipse 70% 50% at 92% 4%, rgba(53,163,186,.16), transparent 66%),
    linear-gradient(178deg,#061a26 0%,#08202e 42%,#0b2c3e 100%);
}
.sea-bg::before{
  content:"";
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  opacity:.035;
  pointer-events:none;
  mix-blend-mode:overlay;
}

/* 灯火漂浮 */
.lanterns{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.lantern{
  position:absolute;
  width:5px; height:5px;
  border-radius:50%;
  background:var(--gold-l);
  box-shadow:0 0 10px 3px rgba(230,198,92,.5),0 0 26px 9px rgba(201,162,39,.22);
  opacity:0;
  animation:float 15s linear infinite;
}
.lantern:nth-child(1){ left:8%;  bottom:-6%; animation-delay:0s;   animation-duration:17s; }
.lantern:nth-child(2){ left:19%; bottom:-6%; animation-delay:2.4s; animation-duration:21s; }
.lantern:nth-child(3){ left:31%; bottom:-6%; animation-delay:5.1s; animation-duration:15s; }
.lantern:nth-child(4){ left:44%; bottom:-6%; animation-delay:1.3s; animation-duration:23s; }
.lantern:nth-child(5){ left:57%; bottom:-6%; animation-delay:7.2s; animation-duration:18s; }
.lantern:nth-child(6){ left:68%; bottom:-6%; animation-delay:3.6s; animation-duration:20s; }
.lantern:nth-child(7){ left:79%; bottom:-6%; animation-delay:9.4s; animation-duration:16s; }
.lantern:nth-child(8){ left:90%; bottom:-6%; animation-delay:5.9s; animation-duration:22s; }

@keyframes float{
  0%{ transform:translateY(0) translateX(0); opacity:0; }
  12%{ opacity:.85; }
  50%{ transform:translateY(-46vh) translateX(14px); opacity:.6; }
  88%{ opacity:.3; }
  100%{ transform:translateY(-96vh) translateX(-10px); opacity:0; }
}

/* 回纹边框 */
.fret{
  position:relative;
  border:1px solid var(--line);
}
.fret::after{
  content:"";
  position:absolute; inset:5px;
  border:1px solid var(--line);
  opacity:.55;
  pointer-events:none;
  border-radius:inherit;
}

/* 涟漪 */
@keyframes ripple{
  0%{ transform:scale(.82); opacity:.7; }
  100%{ transform:scale(1.55); opacity:0; }
}

/* 朱红印章徽记 */
.seal{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--f-serif);
  font-size:12.5px;
  letter-spacing:.1em;
  color:#fff;
  background:var(--crimson);
  border-radius:4px;
  padding:5px 11px;
  line-height:1.3;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);
}
.seal--gold{ background:var(--gold-d); }
.seal--sea{ background:var(--sea); }
.seal--ghost{
  background:transparent;
  color:var(--gold-d);
  box-shadow:inset 0 0 0 1px rgba(201,162,39,.6);
}
.dark .seal--ghost{ color:var(--gold-l); }

/* --------------------------------------------------------------------------
   6. 按钮
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:14px 28px;
  border:1px solid transparent;
  border-radius:var(--r-full);
  font-family:var(--f-sans);
  font-size:15.5px;
  font-weight:600;
  letter-spacing:.03em;
  line-height:1.2;
  cursor:pointer;
  text-align:center;
  transition:transform .24s var(--ease),box-shadow .24s var(--ease),
             background-color .24s var(--ease),color .24s var(--ease),
             border-color .24s var(--ease);
  position:relative;
  overflow:hidden;
  -webkit-appearance:none;
  appearance:none;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn--primary{
  background:var(--crimson);
  color:#fff;
  box-shadow:var(--sh-crimson);
}
.btn--primary:hover{ background:var(--crimson-l); color:#fff; box-shadow:0 6px 20px rgba(178,58,52,.34),0 16px 42px rgba(178,58,52,.24); }

.btn--gold{
  background:linear-gradient(140deg,var(--gold-l),var(--gold));
  color:#3a2c05;
  box-shadow:var(--sh-gold);
}
.btn--gold:hover{ color:#2a1f03; box-shadow:0 0 0 1px rgba(201,162,39,.5),0 12px 52px rgba(201,162,39,.32); }

.btn--ghost{
  background:transparent;
  border-color:var(--line-2);
  color:var(--ink);
}
.btn--ghost:hover{ border-color:var(--gold); color:var(--gold-d); background:rgba(201,162,39,.06); }
.dark .btn--ghost{ border-color:rgba(255,255,255,.3); color:#fff; }
.dark .btn--ghost:hover{ border-color:var(--gold-l); color:var(--gold-l); background:rgba(201,162,39,.12); }

.btn--quiet{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);
  color:#fff;
}
.btn--quiet:hover{ background:rgba(255,255,255,.14); color:#fff; }

.btn--lg{ padding:17px 36px; font-size:16.5px; }
.btn--sm{ padding:9px 18px; font-size:14px; }
.btn--block{ width:100%; }

.btn-group{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.btn-group--center{ justify-content:center; }

/* 按钮内的箭头 */
.btn .arw{ transition:transform .24s var(--ease); }
.btn:hover .arw{ transform:translateX(3px); }

/* 文字链接 */
.tlink{
  display:inline-flex; align-items:center; gap:6px;
  font-weight:600; font-size:14.6px;
  color:var(--crimson);
  border-bottom:1px solid rgba(178,58,52,.3);
  padding-bottom:2px;
  transition:border-color .2s var(--ease),color .2s var(--ease);
}
.tlink:hover{ color:var(--crimson-d); border-color:var(--crimson-d); }
.dark .tlink{ color:var(--gold-l); border-color:rgba(230,198,92,.35); }
.dark .tlink:hover{ color:#fff; border-color:#fff; }

/* --------------------------------------------------------------------------
   7. 导航
   -------------------------------------------------------------------------- */
.nav{
  position:sticky;
  top:0;
  z-index:120;
  height:var(--nav-h);
  background:rgba(8,32,46,.86);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background-color .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.nav.is-stuck{
  background:rgba(6,26,38,.96);
  border-bottom-color:rgba(201,162,39,.22);
  box-shadow:0 8px 32px rgba(0,0,0,.32);
}
.nav-inner{
  height:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 24px;
  display:flex;
  align-items:center;
  gap:26px;
}

.brand{
  display:flex; align-items:center; gap:11px;
  color:#fff;
  font-family:var(--f-serif);
  font-size:19px;
  letter-spacing:.06em;
  font-weight:600;
  flex-shrink:0;
  transition:opacity .2s var(--ease);
}
.brand:hover{ color:#fff; opacity:.86; }
.brand-mark{ width:30px; height:30px; flex-shrink:0; }
.brand-sub{
  display:block;
  font-family:var(--f-sans);
  font-size:10.5px;
  font-weight:500;
  letter-spacing:.16em;
  color:var(--gold-l);
  opacity:.9;
  margin-top:-2px;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:4px;
  margin-left:auto;
  list-style:none;
  padding:0;
}
.nav-links li{ margin:0; }
.nav-links a{
  display:block;
  padding:9px 14px;
  border-radius:var(--r-s);
  font-size:14.6px;
  font-weight:500;
  color:rgba(255,255,255,.8);
  letter-spacing:.02em;
  transition:color .2s var(--ease),background-color .2s var(--ease);
}
.nav-links a:hover{ color:#fff; background:rgba(255,255,255,.08); }
.nav-links a[aria-current="page"]{ color:var(--gold-l); background:rgba(201,162,39,.12); }

.nav-cta{ margin-left:10px; flex-shrink:0; }

.nav-toggle{
  display:none;
  margin-left:auto;
  width:42px; height:42px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--r-s);
  background:transparent;
  cursor:pointer;
  padding:0;
  position:relative;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after{
  position:absolute;
  left:50%; margin-left:-9px;
  width:18px; height:1.6px;
  background:#fff;
  transition:transform .3s var(--ease),opacity .2s var(--ease);
}
.nav-toggle span{ top:50%; margin-top:-.8px; }
.nav-toggle span::before{ content:""; top:-6px; left:0; margin:0; }
.nav-toggle span::after{ content:""; top:6px; left:0; margin:0; }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after{ transform:translateY(-6px) rotate(-45deg); }

.drawer{
  position:fixed;
  inset:var(--nav-h) 0 auto 0;
  z-index:115;
  background:rgba(6,26,38,.985);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(201,162,39,.2);
  padding:14px 24px 28px;
  transform:translateY(-12px);
  opacity:0;
  visibility:hidden;
  transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
  max-height:calc(100vh - var(--nav-h));
  overflow-y:auto;
}
.drawer.is-open{ opacity:1; visibility:visible; transform:translateY(0); }
.drawer ul{ list-style:none; padding:0; margin:0; }
.drawer li{ margin:0; border-bottom:1px solid rgba(255,255,255,.07); }
.drawer a{
  display:block;
  padding:15px 4px;
  font-size:16.5px;
  color:rgba(255,255,255,.88);
}
.drawer a[aria-current="page"]{ color:var(--gold-l); }
.drawer .btn{ margin-top:20px; }

/* --------------------------------------------------------------------------
   8. Hero
   -------------------------------------------------------------------------- */
.hero{
  position:relative;
  overflow:hidden;
  padding:clamp(56px,8vw,96px) 0 clamp(54px,7vw,84px);
  isolation:isolate;
}
.hero-grid{
  display:grid;
  grid-template-columns:196px minmax(0,1fr) 296px;
  column-gap:clamp(26px,3vw,38px);
  row-gap:0;
  align-items:center;
  position:relative;
  z-index:2;
}
.hero-head{
  min-width:0;
  grid-column:2; grid-row:1;
  align-self:end;
}
.hero-copy{
  min-width:0;
  grid-column:2; grid-row:2;
  align-self:start;
}
.hero-portrait{ grid-column:1; grid-row:1 / span 2; align-self:center; }
.hero-grid > .donate-card{ grid-column:3; grid-row:1 / span 2; align-self:center; }
.hero-badge{ margin-bottom:22px; display:flex; flex-wrap:wrap; gap:9px; align-items:center; }
.hero h1{ margin-bottom:20px; }
.hero h1 .l1{ display:block; }
.hero h1 .l2{
  display:block;
  background:linear-gradient(100deg,var(--gold-l) 0%,var(--gold) 46%,#f0d68a 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero-sub{
  font-size:clamp(1.04rem,1.75vw,1.26rem);
  line-height:1.86;
  color:rgba(255,255,255,.82);
  max-width:52ch;
  margin-bottom:26px;
}
.hero-quote{
  font-family:var(--f-kai);
  font-size:clamp(1.06rem,1.85vw,1.34rem);
  line-height:1.8;
  color:var(--gold-l);
  padding-left:20px;
  border-left:2px solid rgba(201,162,39,.5);
  margin-bottom:26px;
}
.hero-body{
  color:rgba(255,255,255,.74);
  font-size:15.6px;
  line-height:1.88;
  max-width:56ch;
  margin-bottom:30px;
}
.hero-wave{
  position:absolute;
  left:0; right:0; bottom:-1px;
  z-index:1;
  opacity:.5;
}

/* ---- Hero 画像：立轴式妈祖画像（AI 插画 assets/img/mazu-portrait.jpg） ---- */
.hero-portrait{
  position:relative;
  margin:0;
  min-width:0;
}
.hero-portrait::before{
  content:"";
  position:absolute;
  inset:-18px -20px -26px;
  background:radial-gradient(56% 38% at 50% 32%,rgba(230,198,92,.22),transparent 72%);
  pointer-events:none;
  z-index:0;
  animation:hpGlow 7s ease-in-out infinite;
}
@keyframes hpGlow{
  0%,100%{ opacity:.5; }
  50%{ opacity:1; }
}
@keyframes hpIn{
  from{ opacity:0; transform:translateY(16px) scale(.982); }
  to{ opacity:1; transform:none; }
}
.hp-frame{
  position:relative;
  z-index:1;
  padding:8px;
  border:1px solid rgba(201,162,39,.5);
  border-radius:3px;
  background:linear-gradient(168deg,rgba(201,162,39,.11),rgba(255,255,255,.02));
  box-shadow:0 22px 58px rgba(0,0,0,.46),inset 0 0 0 1px rgba(201,162,39,.12);
  animation:hpIn .95s var(--ease) both;
}
.hp-frame::before{
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid rgba(201,162,39,.22);
  border-radius:1px;
  pointer-events:none;
}
.hp-art{
  display:block;
  width:100%;
  height:auto;
  border-radius:1px;
}
.hp-seal{
  position:absolute;
  right:-10px;
  bottom:32px;
  z-index:2;
  width:42px;
  height:42px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:linear-gradient(150deg,#b23a34,#7d231e);
  border:1px solid rgba(230,198,92,.62);
  border-radius:3px;
  font-family:var(--f-kai);
  font-size:14.5px;
  line-height:1.02;
  letter-spacing:.02em;
  color:#f7e7c0;
  box-shadow:0 8px 20px rgba(0,0,0,.44),inset 0 0 0 1px rgba(255,255,255,.13);
  text-shadow:0 1px 0 rgba(0,0,0,.32);
}
.hp-seal i{ display:block; font-style:normal; }
.hp-cap{
  margin-top:13px;
  text-align:center;
}
.hp-cap b{
  display:block;
  font-family:var(--f-serif);
  font-size:15.5px;
  font-weight:600;
  letter-spacing:.16em;
  text-indent:.16em;
  color:var(--gold-l);
}
.hp-cap span{
  display:block;
  margin-top:5px;
  font-size:12.1px;
  letter-spacing:.04em;
  line-height:1.6;
  color:rgba(255,255,255,.56);
}
.hp-cap em{
  display:block;
  margin-top:6px;
  font-style:normal;
  font-size:11.2px;
  letter-spacing:.06em;
  color:rgba(255,255,255,.3);
}

/* --------------------------------------------------------------------------
   9. 捐赠卡 / 二维码组件
   -------------------------------------------------------------------------- */
.donate-card{
  position:relative;
  background:linear-gradient(168deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
  border:1px solid rgba(201,162,39,.34);
  border-radius:var(--r-xl);
  padding:26px 24px 24px;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 20px 60px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.14);
  text-align:center;
}
.donate-card::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(150deg,rgba(230,198,92,.7),transparent 40%,transparent 62%,rgba(230,198,92,.44));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}
.dc-title{
  font-family:var(--f-serif);
  font-size:19px;
  color:#fff;
  letter-spacing:.08em;
  margin:0 0 5px;
}
.dc-sub{
  font-size:13px;
  color:rgba(255,255,255,.6);
  letter-spacing:.05em;
  margin:0 0 18px;
}

/* ---- 二维码占位组件 ---- */
.qr{
  position:relative;
  width:100%;
  max-width:216px;
  margin:0 auto 14px;
  aspect-ratio:1;
  border-radius:var(--r);
  overflow:hidden;
  background:#fff;
  box-shadow:0 10px 34px rgba(0,0,0,.34);
  border:6px solid #fff;
}
.qr svg{ width:100%; height:100%; }
.qr img.qr-img{ display:block; width:100%; height:100%; object-fit:cover; }
.qr-frame{
  position:absolute;
  inset:0;
  border:2px dashed rgba(18,112,138,.62);
  border-radius:var(--r-s);
  pointer-events:none;
}
.qr-badge{
  position:absolute;
  top:6px; right:6px;
  font-family:var(--f-sans);
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.1em;
  padding:3px 7px;
  border-radius:3px;
  background:rgba(178,58,52,.94);
  color:#fff;
  line-height:1.3;
  pointer-events:none;
}
.qr-note{
  font-size:11.4px;
  line-height:1.6;
  color:rgba(255,255,255,.52);
  margin:0 0 4px;
}
.qr-note code{
  font-family:var(--f-mono);
  font-size:10.6px;
  background:rgba(255,255,255,.1);
  padding:1px 5px;
  border-radius:3px;
  color:rgba(255,255,255,.78);
}

/* 当前金额显示 */
.dc-amount{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:8px;
  margin:16px 0 6px;
  font-family:var(--f-serif);
  color:var(--gold-l);
}
.dc-amount .cur{ font-size:19px; opacity:.85; }
.dc-amount .val{
  font-size:38px;
  font-weight:600;
  line-height:1;
  letter-spacing:-.02em;
  transition:transform .3s var(--ease);
}
.dc-amount .val.is-bump{ animation:bump .42s var(--ease); }
@keyframes bump{
  0%{ transform:scale(1); }
  42%{ transform:scale(1.14); }
  100%{ transform:scale(1); }
}
.dc-purpose{
  font-size:13.4px;
  color:rgba(255,255,255,.72);
  min-height:1.6em;
  margin:0 0 16px;
  letter-spacing:.03em;
}
.dc-hint{
  font-size:12.6px;
  color:rgba(255,255,255,.58);
  line-height:1.66;
  margin:14px 0 0;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.12);
}
.dc-hint b{ color:var(--gold-l); font-weight:600; }
.dc-actions{ display:flex; gap:9px; justify-content:center; margin-top:14px; flex-wrap:wrap; }

.qr-zoom{cursor:zoom-in;}

/* 二维码放大遮罩 */
.qr-modal{
  position:fixed;
  inset:0;
  z-index:400;
  background:rgba(4,16,24,.9);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity .28s var(--ease),visibility .28s;
}
.qr-modal.is-open{ opacity:1; visibility:visible; }
.qr-modal-inner{
  background:#fff;
  border-radius:var(--r-l);
  padding:22px;
  max-width:400px;
  width:100%;
  text-align:center;
  box-shadow:0 30px 90px rgba(0,0,0,.5);
}
.qr-modal-inner .qr{ max-width:300px; border-width:0; box-shadow:none; margin-bottom:10px; }
.qr-modal-amt{
  font-family:var(--serif); font-weight:700; font-size:2rem; line-height:1.1;
  color:#b23a34; letter-spacing:.01em; margin:0 0 12px;
}
.qr-modal-inner p b{ display:inline-block; color:#2f3d47; }
@media (max-width:680px){
  .qr-modal-amt{ font-size:1.65rem; margin-bottom:10px; }
  .qr-modal-inner .qr{ max-width:min(300px,68vw); }
}
.qr-modal-inner p{ font-size:12.6px; color:#6c7a84; margin:8px 0 0; line-height:1.65; }
.qr-modal-close{
  position:absolute; top:22px; right:24px;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.qr-modal-close:hover{ background:rgba(255,255,255,.2); }

/* --------------------------------------------------------------------------
   10. 数据条 / 统计
   -------------------------------------------------------------------------- */
.statbar{
  position:relative;
  border-top:1px solid rgba(201,162,39,.22);
  border-bottom:1px solid rgba(201,162,39,.22);
  background-color:var(--deep-2);
  background-image:linear-gradient(180deg,rgba(6,26,38,.92),rgba(12,43,61,.72));
}
.statbar-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.stat{
  padding:26px 20px;
  text-align:center;
  border-right:1px solid rgba(255,255,255,.1);
}
.stat:last-child{ border-right:0; }
.stat .n{
  font-family:var(--f-serif);
  font-size:clamp(1.7rem,3.4vw,2.4rem);
  font-weight:600;
  color:var(--gold-l);
  line-height:1.1;
  letter-spacing:-.01em;
  margin-bottom:6px;
  display:flex; align-items:baseline; justify-content:center; gap:2px;
}
.stat .n .u{ font-size:.58em; opacity:.82; margin-left:2px; }
.stat .k{
  font-size:13px;
  color:rgba(255,255,255,.68);
  letter-spacing:.06em;
}
.stat-note{
  font-size:11.5px;
  color:rgba(255,255,255,.42);
  text-align:center;
  padding:10px 16px 0;
  line-height:1.6;
}

/* --------------------------------------------------------------------------
   11. 精神三栏
   -------------------------------------------------------------------------- */
.virtue{
  position:relative;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-l);
  padding:32px 28px 30px;
  overflow:hidden;
  transition:transform .34s var(--ease),box-shadow .34s var(--ease),border-color .34s var(--ease);
}
.virtue:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); border-color:rgba(201,162,39,.5); }
.virtue::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg,var(--crimson),var(--gold));
  opacity:.75;
}
.virtue-idx{
  font-family:var(--f-serif);
  font-size:13px;
  letter-spacing:.24em;
  color:var(--gold-d);
  margin-bottom:12px;
}
.virtue h3{
  font-size:1.42rem;
  letter-spacing:.14em;
  margin-bottom:14px;
}
.virtue p{ font-size:15.2px; color:var(--ink-2); line-height:1.86; }

/* --------------------------------------------------------------------------
   12. 项目卡
   -------------------------------------------------------------------------- */
.proj{
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-l);
  padding:28px 26px 24px;
  overflow:hidden;
  transition:transform .34s var(--ease),box-shadow .34s var(--ease),border-color .34s var(--ease);
}
.proj:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); border-color:rgba(18,112,138,.4); }
.proj-icon{
  width:52px; height:52px;
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(145deg,rgba(178,58,52,.11),rgba(201,162,39,.13));
  border:1px solid rgba(201,162,39,.3);
  margin-bottom:18px;
  color:var(--crimson);
  flex-shrink:0;
}
.proj-icon svg{ width:26px; height:26px; }
.proj h3{ font-size:1.24rem; margin-bottom:10px; letter-spacing:.06em; }
.proj > p{ font-size:14.8px; color:var(--ink-2); line-height:1.84; }
.proj-conv{
  margin-top:auto;
  padding-top:16px;
  border-top:1px dashed var(--line-2);
  font-size:13.4px;
  color:var(--muted);
  line-height:1.7;
}
.proj-conv b{ color:var(--crimson); font-family:var(--f-serif); font-size:1.16em; }
.proj-link{ margin-top:12px; }

/* --------------------------------------------------------------------------
   13. 捐赠区（主转化）
   -------------------------------------------------------------------------- */
.donate-stage{
  position:relative;
  padding:clamp(56px,7.6vw,100px) 0;
  overflow:hidden;
}
.donate-grid{
  display:grid;
  grid-template-columns:1.06fr .94fr;
  gap:clamp(28px,3.6vw,52px);
  align-items:start;
  position:relative;
  z-index:2;
}

/* 金额档位 */
.tiers{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.tier{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
  padding:17px 18px;
  border-radius:var(--r);
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.045);
  color:#fff;
  cursor:pointer;
  text-align:left;
  font-family:var(--f-sans);
  transition:border-color .24s var(--ease),background-color .24s var(--ease),transform .24s var(--ease);
  -webkit-appearance:none;
  appearance:none;
}
.tier:hover{ border-color:rgba(230,198,92,.6); background:rgba(255,255,255,.09); transform:translateY(-2px); }
.tier[aria-pressed="true"]{
  border-color:var(--gold-l);
  background:linear-gradient(150deg,rgba(201,162,39,.26),rgba(201,162,39,.09));
  box-shadow:0 0 0 1px rgba(230,198,92,.5),0 8px 28px rgba(201,162,39,.22);
}
.tier-amt{
  font-family:var(--f-serif);
  font-size:23px;
  font-weight:600;
  line-height:1.15;
  color:#fff;
  letter-spacing:-.01em;
}
.tier[aria-pressed="true"] .tier-amt{ color:var(--gold-l); }
.tier-for{ font-size:12.6px; color:rgba(255,255,255,.66); line-height:1.55; }
.tier-tag{
  position:absolute;
  top:9px; right:11px;
  font-size:10px;
  letter-spacing:.08em;
  color:var(--gold-l);
  opacity:.9;
}

.tier-custom{
  grid-column:1 / -1;
  padding:15px 18px;
  border-radius:var(--r);
  border:1px dashed rgba(255,255,255,.26);
  background:rgba(255,255,255,.03);
}
.tier-custom label{
  display:block;
  font-size:12.6px;
  color:rgba(255,255,255,.62);
  margin-bottom:9px;
  letter-spacing:.04em;
}
.tier-custom-row{ display:flex; align-items:center; gap:10px; }
.tier-custom-row .cur{ font-family:var(--f-serif); font-size:19px; color:var(--gold-l); }
.tier-custom input{
  flex:1;
  min-width:0;
  padding:11px 14px;
  border-radius:var(--r-s);
  border:1px solid rgba(255,255,255,.24);
  background:rgba(4,16,24,.4);
  color:#fff;
  font-size:16px;
  font-family:var(--f-mono);
  letter-spacing:.04em;
}
.tier-custom input::placeholder{ color:rgba(255,255,255,.34); }
.tier-custom input:focus{ outline:none; border-color:var(--gold-l); background:rgba(4,16,24,.62); }

.tier-note{
  font-size:12.4px;
  color:rgba(255,255,255,.5);
  line-height:1.72;
  margin-top:16px;
}
.tier-note b{ color:var(--gold-l); }

/* 右栏二维码舞台 */
.qr-stage{
  background:linear-gradient(170deg,rgba(255,255,255,.10),rgba(255,255,255,.03));
  border:1px solid rgba(201,162,39,.32);
  border-radius:var(--r-xl);
  padding:28px 24px 24px;
  text-align:center;
  position:relative;
  box-shadow:0 22px 64px rgba(0,0,0,.34);
}
.qr-stage .qr{ max-width:240px; }
.qr-stage-label{
  font-size:12px;
  letter-spacing:.2em;
  color:var(--gold-l);
  margin-bottom:16px;
  text-transform:uppercase;
}
.qr-help{
  font-size:12.8px;
  color:rgba(255,255,255,.62);
  line-height:1.78;
  margin-top:16px;
  text-align:left;
}
.qr-help ol{ padding-left:0; list-style:none; counter-reset:qh; margin:0; }
.qr-help li{ margin-bottom:7px; }
.qr-help ol li{
  counter-increment:qh;
  padding-left:22px;
  position:relative;
}
.qr-help ol li::before{
  content:counter(qh);
  position:absolute;
  left:0; top:1px;
  width:15px; height:15px;
  border-radius:50%;
  background:rgba(201,162,39,.24);
  color:var(--gold-l);
  font-size:10px;
  font-weight:700;
  display:flex; align-items:center; justify-content:center;
  line-height:1;
}

/* 其他捐赠方式 */
.ways{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.way{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:22px 20px;
  position:relative;
}
.way--main{ border-color:rgba(178,58,52,.42); box-shadow:0 0 0 3px rgba(178,58,52,.06); }
.way-head{
  display:flex; align-items:center; gap:9px;
  margin-bottom:14px;
  font-family:var(--f-serif);
  font-size:16.5px;
  color:var(--ink);
}
.way-head svg{ width:19px; height:19px; color:var(--crimson); flex-shrink:0; }
.way dl{ margin:0; font-size:13.8px; line-height:1.9; }
.way dt{ color:var(--muted); font-size:12.6px; letter-spacing:.05em; }
.way dd{ margin:0 0 9px; color:var(--ink); font-family:var(--f-mono); font-size:13.4px; word-break:break-all; }
.way dd:last-child{ margin-bottom:0; }
.way .ph{
  display:inline-block;
  background:rgba(178,58,52,.08);
  color:var(--crimson);
  border:1px dashed rgba(178,58,52,.35);
  border-radius:4px;
  padding:0 6px;
  font-family:var(--f-sans);
  font-size:11.6px;
}
.copy-btn{
  margin-top:12px;
  width:100%;
}

/* --------------------------------------------------------------------------
   14. 善缘墙
   -------------------------------------------------------------------------- */
.wall{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.wall-item{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:18px 18px 16px;
  position:relative;
  overflow:hidden;
}
.wall-item::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--gold),var(--crimson));
  opacity:.66;
}
.wall-top{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  margin-bottom:8px;
}
.wall-name{ font-size:14.2px; font-weight:600; color:var(--ink); }
.wall-amt{
  font-family:var(--f-serif);
  font-size:16px;
  color:var(--crimson);
  white-space:nowrap;
}
.wall-msg{
  font-family:var(--f-kai);
  font-size:14.6px;
  color:var(--ink-2);
  line-height:1.74;
}
.wall-time{ font-size:11.6px; color:var(--muted-2); margin-top:9px; }

/* --------------------------------------------------------------------------
   15. 信任卡 / 须知
   -------------------------------------------------------------------------- */
.trust{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:24px 22px;
  transition:border-color .28s var(--ease),box-shadow .28s var(--ease);
}
.trust:hover{ border-color:rgba(201,162,39,.5); box-shadow:var(--sh-1); }
.trust-ico{
  width:38px; height:38px;
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(18,112,138,.09);
  color:var(--sea);
  margin-bottom:14px;
}
.trust-ico svg{ width:20px; height:20px; }
.trust h3{ font-size:1.04rem; margin-bottom:8px; letter-spacing:.03em; }
.trust p{ font-size:13.9px; color:var(--ink-2); line-height:1.82; }

/* 捐赠须知 */
.notice{
  position:relative;
  background:var(--paper-2);
  border:1px solid var(--line-2);
  border-radius:var(--r-l);
  padding:28px 30px 26px;
}
.notice::before{
  content:"";
  position:absolute;
  left:0; top:22px; bottom:22px;
  width:3px;
  background:var(--gold);
  border-radius:0 3px 3px 0;
}
.notice h3{
  font-size:1.06rem;
  letter-spacing:.14em;
  margin-bottom:14px;
  display:flex; align-items:center; gap:10px;
}
.notice p,.notice li{ font-size:14.1px; color:var(--ink-2); line-height:1.9; }
.notice ul{ padding-left:1.2em; }
.notice strong{ color:var(--crimson); }

/* --------------------------------------------------------------------------
   16. FAQ 折叠
   -------------------------------------------------------------------------- */
.faq{ border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px 4px;
  background:none;
  border:0;
  cursor:pointer;
  text-align:left;
  font-family:var(--f-serif);
  font-size:clamp(1.02rem,1.75vw,1.16rem);
  font-weight:600;
  color:var(--ink);
  line-height:1.6;
  transition:color .22s var(--ease);
}
.faq-q:hover{ color:var(--crimson); }
.faq-q::after{
  content:"";
  flex-shrink:0;
  width:12px; height:12px;
  margin-top:8px;
  border-right:1.8px solid var(--gold-d);
  border-bottom:1.8px solid var(--gold-d);
  transform:rotate(45deg);
  transition:transform .3s var(--ease);
}
.faq-item.is-open .faq-q::after{ transform:rotate(-135deg); }
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .36s var(--ease);
}
.faq-a-inner{
  padding:0 4px 24px;
  font-size:14.8px;
  line-height:1.9;
  color:var(--ink-2);
  max-width:74ch;
}
.faq-a-inner p:last-child{ margin-bottom:0; }

/* --------------------------------------------------------------------------
   17. 节庆历法
   -------------------------------------------------------------------------- */
.festivals{ position:relative; }
.fest{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:24px;
  padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
  align-items:start;
}
.fest:last-child{ border-bottom:0; }
.fest-date{
  font-family:var(--f-serif);
  color:var(--gold-l);
  line-height:1.5;
}
.fest-date .d{ display:block; font-size:1.02rem; letter-spacing:.06em; }
.fest-date .l{ display:block; font-size:12px; color:rgba(255,255,255,.5); letter-spacing:.1em; margin-top:3px; }
.fest-body h3{ font-size:1.1rem; margin-bottom:7px; letter-spacing:.05em; }
.fest-body p{ font-size:14.2px; color:rgba(255,255,255,.68); line-height:1.82; margin:0; }

/* --------------------------------------------------------------------------
   18. 终局 CTA
   -------------------------------------------------------------------------- */
.final-cta{
  position:relative;
  overflow:hidden;
  padding:clamp(60px,8vw,104px) 0;
  text-align:center;
}
.final-cta h2{
  font-size:clamp(1.7rem,4vw,2.9rem);
  line-height:1.3;
  margin-bottom:20px;
}
.final-cta .lead{ max-width:56ch; margin:0 auto 30px; }
.final-qr{
  display:inline-block;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(201,162,39,.3);
  border-radius:var(--r-l);
  padding:20px 22px 16px;
  margin-top:8px;
}
.final-qr .qr{ max-width:172px; margin-bottom:10px; }
.final-qr p{ font-size:12.4px; color:rgba(255,255,255,.6); margin:0; }

/* --------------------------------------------------------------------------
   19. 页脚
   -------------------------------------------------------------------------- */
.foot{
  background:#05161f;
  color:rgba(255,255,255,.62);
  padding:clamp(48px,6vw,72px) 0 30px;
  font-size:14.2px;
  border-top:1px solid rgba(201,162,39,.18);
}
.foot-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1.2fr;
  gap:34px;
  padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.foot h4{
  font-family:var(--f-serif);
  font-size:15px;
  color:#fff;
  letter-spacing:.1em;
  margin-bottom:16px;
}
.foot p{ font-size:13.7px; line-height:1.86; color:rgba(255,255,255,.56); }
.foot ul{ list-style:none; padding:0; margin:0; }
.foot li{ margin-bottom:10px; }
.foot a{ color:rgba(255,255,255,.66); font-size:13.8px; }
.foot a:hover{ color:var(--gold-l); }
.foot-brand{ display:flex; align-items:center; gap:11px; margin-bottom:16px; color:#fff; }
.foot-brand .brand-mark{ width:28px; height:28px; }
.foot-brand span{ font-family:var(--f-serif); font-size:18px; letter-spacing:.06em; }

.foot-disclaimer{
  margin-top:28px;
  padding:18px 20px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r);
  font-size:12.6px;
  line-height:1.86;
  color:rgba(255,255,255,.5);
}
.foot-disclaimer b{ color:rgba(201,162,39,.9); font-weight:600; }

.foot-bottom{
  margin-top:24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  font-size:12.6px;
  color:rgba(255,255,255,.4);
}
.foot-bottom a{ font-size:12.6px; color:rgba(255,255,255,.5); }

/* --------------------------------------------------------------------------
   20. 浮动捐赠条
   -------------------------------------------------------------------------- */
.dbar{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:130;
  background:rgba(6,26,38,.94);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-top:1px solid rgba(201,162,39,.34);
  box-shadow:0 -10px 40px rgba(0,0,0,.34);
  transform:translateY(102%);
  transition:transform .42s var(--ease-out);
  padding:11px 0;
}
.dbar.is-up{ transform:translateY(0); }
.dbar-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 24px;
  display:flex;
  align-items:center;
  gap:20px;
}
.dbar-text{ flex-shrink:0; }
.dbar-text strong{
  display:block;
  font-family:var(--f-serif);
  font-size:15.4px;
  color:var(--gold-l);
  letter-spacing:.1em;
  line-height:1.35;
}
.dbar-text span{ font-size:12.2px; color:rgba(255,255,255,.56); }
.dbar-tiers{ display:flex; gap:7px; margin-left:auto; }
.dbar-tier{
  padding:8px 15px;
  border-radius:var(--r-full);
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.9);
  font-family:var(--f-serif);
  font-size:14.4px;
  cursor:pointer;
  transition:border-color .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease);
  -webkit-appearance:none;
  appearance:none;
}
.dbar-tier:hover{ border-color:var(--gold-l); color:var(--gold-l); background:rgba(201,162,39,.14); }
.dbar-close{
  flex-shrink:0;
  width:30px; height:30px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:transparent;
  color:rgba(255,255,255,.6);
  font-size:16px;
  line-height:1;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.dbar-close:hover{ background:rgba(255,255,255,.1); color:#fff; }

/* --------------------------------------------------------------------------
   21. 内页通用组件
   -------------------------------------------------------------------------- */
.page-head{
  position:relative;
  overflow:hidden;
  padding:clamp(44px,6vw,74px) 0 clamp(36px,4.6vw,56px);
  border-bottom:1px solid rgba(201,162,39,.2);
}
.page-head h1{ font-size:clamp(1.85rem,4.4vw,3rem); margin-bottom:16px; }
.page-head .lead{ color:rgba(255,255,255,.78); max-width:62ch; margin-bottom:0; }

.crumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  font-size:12.8px;
  color:rgba(255,255,255,.5);
  margin-bottom:20px;
  list-style:none;
  padding:0;
}
.crumb li{ margin:0; display:flex; align-items:center; gap:8px; }
.crumb li + li::before{ content:"/"; opacity:.45; }
.crumb a{ color:rgba(255,255,255,.66); }
.crumb a:hover{ color:var(--gold-l); }
.crumb [aria-current="page"]{ color:var(--gold-l); }

/* 粘性子导航 */
.subnav{
  position:sticky;
  top:var(--nav-h);
  z-index:100;
  background:rgba(251,248,243,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.subnav-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 24px;
  display:flex;
  gap:6px;
  overflow-x:auto;
  scrollbar-width:none;
}
.subnav-inner::-webkit-scrollbar{ display:none; }
.subnav a{
  position:relative;
  padding:16px 14px;
  font-size:14.4px;
  font-weight:500;
  color:var(--muted);
  white-space:nowrap;
  border-bottom:2px solid transparent;
  transition:color .22s var(--ease),border-color .22s var(--ease);
}
.subnav a:hover{ color:var(--ink); }
.subnav a.is-active{ color:var(--crimson); border-bottom-color:var(--crimson); }

/* 内容排版块 */
.prose{ font-size:16.2px; line-height:1.92; color:var(--ink-2); max-width:76ch; }
.prose h2{ margin-top:2.2em; margin-bottom:.7em; font-size:clamp(1.42rem,2.7vw,1.94rem); color:var(--ink); }
.prose h2:first-child{ margin-top:0; }
.prose h3{ margin-top:1.8em; margin-bottom:.6em; font-size:1.18rem; color:var(--ink); }
.prose ul,.prose ol{ padding-left:1.4em; }
.prose li{ margin-bottom:.6em; }
.prose strong{ color:var(--ink); }

/* 数据表 */
.tbl-wrap{ overflow-x:auto; margin:1.8em 0; border:1px solid var(--line); border-radius:var(--r); }
table.data{
  width:100%;
  border-collapse:collapse;
  font-size:14.4px;
  min-width:520px;
  background:var(--white);
}
table.data th,table.data td{
  padding:14px 18px;
  text-align:left;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  line-height:1.72;
}
table.data thead th{
  background:var(--paper-2);
  font-family:var(--f-serif);
  font-weight:600;
  color:var(--ink);
  letter-spacing:.06em;
  font-size:14px;
  white-space:nowrap;
}
table.data tbody tr:last-child th,
table.data tbody tr:last-child td{ border-bottom:0; }
table.data tbody th{
  font-weight:600;
  color:var(--ink);
  background:rgba(245,240,231,.5);
  white-space:nowrap;
}
table.data td{ color:var(--ink-2); }
table.data .num{ font-family:var(--f-mono); font-variant-numeric:tabular-nums; white-space:nowrap; }

/* 时间轴 */
.tl{ position:relative; padding-left:30px; list-style:none; margin:0; }
.tl::before{
  content:"";
  position:absolute;
  left:7px; top:8px; bottom:8px;
  width:1.5px;
  background:linear-gradient(180deg,var(--gold),rgba(201,162,39,.14));
}
.tl li{ position:relative; padding-bottom:30px; margin:0; }
.tl li:last-child{ padding-bottom:0; }
.tl li::before{
  content:"";
  position:absolute;
  left:-30px; top:7px;
  width:15px; height:15px;
  border-radius:50%;
  background:var(--paper);
  border:2px solid var(--gold);
}
.tl-year{
  font-family:var(--f-serif);
  font-size:1.02rem;
  color:var(--gold-d);
  letter-spacing:.06em;
  margin-bottom:5px;
}
.tl-body h3{ font-size:1.04rem; margin-bottom:7px; }
.tl-body p{ font-size:14.4px; color:var(--ink-2); line-height:1.84; margin:0; }

/* 信息卡 / 联系卡 */
.info-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:24px 22px;
}
.info-card h3{
  font-size:1.04rem;
  letter-spacing:.06em;
  margin-bottom:14px;
  display:flex; align-items:center; gap:9px;
}
.info-card h3 svg{ width:17px; height:17px; color:var(--crimson); flex-shrink:0; }
.info-card dl{ margin:0; font-size:14.2px; }
.info-card dt{ color:var(--muted); font-size:12.6px; letter-spacing:.05em; margin-bottom:2px; }
.info-card dd{ margin:0 0 13px; color:var(--ink); line-height:1.72; }
.info-card dd:last-child{ margin-bottom:0; }

/* 表单 */
.form-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field--full{ grid-column:1 / -1; }
.field label{
  font-size:13.6px;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.03em;
}
.field label .req{ color:var(--crimson); margin-left:3px; }
.field input,.field select,.field textarea{
  width:100%;
  padding:12px 15px;
  border:1px solid var(--line-2);
  border-radius:var(--r-s);
  background:var(--white);
  color:var(--ink);
  font-family:var(--f-sans);
  font-size:15px;
  line-height:1.6;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.field textarea{ resize:vertical; min-height:126px; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,162,39,.14);
}
.field .hint{ font-size:12.2px; color:var(--muted-2); line-height:1.6; }
.form-ok{
  display:none;
  margin-top:18px;
  padding:15px 18px;
  border-radius:var(--r-s);
  background:rgba(31,122,90,.09);
  border:1px solid rgba(31,122,90,.28);
  color:#155f46;
  font-size:14.2px;
  line-height:1.72;
}

/* 双栏内容 */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,4vw,56px);
  align-items:start;
}
.split--wide-left{ grid-template-columns:1.22fr .78fr; }

/* 面板 */
.panel{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-l);
  padding:28px 26px;
}
.panel--accent{
  background:linear-gradient(160deg,rgba(178,58,52,.05),rgba(201,162,39,.06));
  border-color:rgba(201,162,39,.36);
}

/* 清单 */
.checks{ list-style:none; padding:0; margin:0; }
.checks li{
  position:relative;
  padding-left:30px;
  margin-bottom:14px;
  font-size:15.2px;
  line-height:1.84;
  color:var(--ink-2);
}
.checks li::before{
  content:"";
  position:absolute;
  left:0; top:8px;
  width:16px; height:16px;
  border-radius:50%;
  background:rgba(178,58,52,.1);
  border:1px solid rgba(178,58,52,.42);
}
.checks li::after{
  content:"";
  position:absolute;
  left:5px; top:12px;
  width:5px; height:8px;
  border-right:1.7px solid var(--crimson);
  border-bottom:1.7px solid var(--crimson);
  transform:rotate(42deg);
}
.checks strong{ color:var(--ink); }

/* 步骤 */
.steps{ display:grid; gap:0; counter-reset:st; }
.step{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:20px;
  padding:24px 0;
  border-bottom:1px solid var(--line);
  counter-increment:st;
}
.step:last-child{ border-bottom:0; }
.step-n{
  font-family:var(--f-serif);
  font-size:2rem;
  font-weight:600;
  color:rgba(201,162,39,.5);
  line-height:1;
  text-align:right;
}
.step-n::before{ content:counter(st,decimal-leading-zero); }
.step-body h3{ font-size:1.12rem; margin-bottom:8px; }
.step-body p{ font-size:14.8px; color:var(--ink-2); line-height:1.86; margin:0; }

/* 404 */
.e404{
  min-height:calc(100vh - var(--nav-h) - 260px);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:80px 24px;
}
.e404 .big{
  font-family:var(--f-serif);
  font-size:clamp(4rem,14vw,9rem);
  line-height:1;
  color:rgba(201,162,39,.28);
  letter-spacing:.04em;
  margin-bottom:8px;
}

/* --------------------------------------------------------------------------
   22. 滚动揭示
   -------------------------------------------------------------------------- */
.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .78s var(--ease-out),transform .78s var(--ease-out);
  will-change:opacity,transform;
}
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }
.reveal[data-d="5"]{ transition-delay:.4s; }

/* --------------------------------------------------------------------------
   23. 响应式
   -------------------------------------------------------------------------- */
@media (max-width:1240px){
  .hero-grid{ grid-template-columns:172px minmax(0,1fr) 272px; }
}

@media (max-width:1080px){
  .hero-grid{
    grid-template-columns:178px minmax(0,1fr);
    column-gap:32px;
  }
  .hero-head{ grid-column:2; grid-row:1; }
  .hero-copy{ grid-column:2; grid-row:2; }
  .hero-portrait{ grid-column:1; grid-row:1 / span 2; }
  .hero-grid > .donate-card{
    grid-column:1 / -1; grid-row:3;
    max-width:440px; margin:30px auto 0;
  }
  .hp-seal{ right:-8px; bottom:26px; width:38px; height:38px; font-size:13px; }
  .donate-card{ max-width:420px; margin:0 auto; }
  .donate-grid{ grid-template-columns:1fr; }
  .qr-stage{ max-width:460px; margin:0 auto; }
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .foot-grid{ grid-template-columns:1fr 1fr; gap:28px; }
  .dbar-tiers{ display:none; }
}

@media (max-width:900px){
  .nav-links{ display:none; }
  .nav-cta{ display:none; }
  .nav-toggle{ display:block; }
  .grid-3{ grid-template-columns:1fr; }
  .ways{ grid-template-columns:1fr; }
  .wall{ grid-template-columns:repeat(2,1fr); }
  .split,.split--wide-left{ grid-template-columns:1fr; }
  .statbar-grid{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2){ border-right:0; }
  .stat:nth-child(1),.stat:nth-child(2){ border-bottom:1px solid rgba(255,255,255,.1); }
  .fest{ grid-template-columns:1fr; gap:10px; }
}

@media (max-width:680px){
  body{ font-size:15.5px; }
  .wrap{ padding:0 18px; }
  .hero{ padding:40px 0 46px; }
  .hero-grid{ grid-template-columns:minmax(0,1fr); row-gap:0; }
  .hero-head{ grid-column:1; grid-row:1; align-self:start; }
  .hero-portrait{ grid-column:1; grid-row:2; width:min(238px,64vw); margin:30px auto 0; }
  .hero-copy{ grid-column:1; grid-row:3; margin-top:24px; }
  .hero-grid > .donate-card{ grid-column:1; grid-row:4; max-width:420px; margin:30px auto 0; }
  .hp-cap span{ font-size:11.8px; }
  .tiers{ grid-template-columns:1fr; }
  .grid-2,.grid-4{ grid-template-columns:1fr; }
  .wall{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .stat{ padding:20px 14px; }
  .step{ grid-template-columns:44px 1fr; gap:14px; }
  .step-n{ font-size:1.5rem; }
  .foot-grid{ grid-template-columns:1fr; }
  .foot-bottom{ flex-direction:column; align-items:flex-start; gap:10px; }
  .quote{ padding-left:18px; font-size:1.14rem; }
  .notice{ padding:22px 20px; }
  .dbar-inner{ gap:12px; }
  .dbar-text span{ display:none; }
  .dbar .btn{ padding:11px 20px; font-size:14px; }
  .qr-modal-inner{ padding:18px; }
}

/* --------------------------------------------------------------------------
   24. 打印 / 无障碍 / 动效降级
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{ opacity:1; transform:none; }
  .lantern{ display:none; }
  .dbar{ transition:none; }
}

@media print{
  .nav,.dbar,.drawer,.qr-modal,.skip{ display:none !important; }
  body{ background:#fff; color:#000; font-size:11pt; }
  .dark{ background:#fff !important; color:#000 !important; }
  .dark h1,.dark h2,.dark h3,.dark h4{ color:#000 !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  a{ color:#000; text-decoration:underline; }
  .section{ padding:16pt 0; }
  .donate-card,.qr-stage{ border:1px solid #999; }
}

/* ======================================================================
   许愿掷圣杯（#wish）
   ====================================================================== */
.wish-wrap{ max-width:960px; }
.wish-side{ min-width:0; }

.wish-stage{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:clamp(28px,4vw,56px);
  align-items:stretch;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r-l);
  padding:clamp(28px,4.4vw,52px);
  box-shadow:var(--sh-2);
}

.wish-label{
  display:block;
  font-weight:700;
  font-size:15px;
  color:var(--ink);
  margin-bottom:10px;
}
.wish-label .opt{ font-weight:400; color:var(--muted); font-size:13px; }
#wish-input{
  width:100%;
  border:1px solid var(--line-2);
  border-radius:var(--r);
  padding:13px 15px;
  font-size:15.5px;
  font-family:var(--f-kai);
  color:var(--ink);
  background:var(--paper);
  transition:border-color .18s,box-shadow .18s;
}
#wish-input:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,162,39,.16);
}
.wish-note{ font-size:12.6px; color:var(--muted); margin-top:8px; }

/* 筊杯 —— SVG 月牙实体杯 + 3D 掷杯动画 */
.pods{
  position:relative;
  display:flex;
  gap:30px;
  margin:30px 0 26px;
  min-height:158px;
  align-items:flex-end;
  justify-content:center;
  padding:10px 0 34px;
}
/* 杯落托盘投影 */
.pods::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:8px;
  transform:translateX(-50%);
  width:236px;
  height:24px;
  border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%,rgba(8,32,46,.26),transparent 72%);
}
.pod{ perspective:860px; }
.pod-inner{
  position:relative;
  width:96px;
  height:120px;
  transform-style:preserve-3d;
  transition:transform .5s var(--ease);
}
.pod[data-face="yang"] .pod-inner{ transform:rotateY(0deg); }
.pod[data-face="yin"]  .pod-inner{ transform:rotateY(180deg); }
.pod.tossing{ animation:podBounce 1.15s cubic-bezier(.34,.9,.4,1) both; }
.pod.tossing .pod-inner{ animation:podSpin 1.15s cubic-bezier(.3,.78,.4,1) both; }
/* 抛起-坠落-回弹的物理弧线 */
@keyframes podBounce{
  0%{ transform:translateY(0) rotate(0deg); }
  24%{ transform:translateY(-74px) rotate(-10deg); }
  50%{ transform:translateY(0) rotate(5deg); }
  66%{ transform:translateY(-24px) rotate(-3.5deg); }
  82%{ transform:translateY(0) rotate(1.6deg); }
  91%{ transform:translateY(-8px) rotate(0deg); }
  100%{ transform:translateY(0) rotate(0deg); }
}
/* 空中翻滚两周半，落定面与 data-face 严格一致 */
@keyframes podSpin{
  from{ transform:rotateY(calc(var(--spin,0deg) - 720deg)); }
  to{ transform:rotateY(var(--spin,0deg)); }
}
.pod-face{
  position:absolute;
  inset:0;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.pod-yin{ transform:rotateY(180deg); }
.pod-svg{
  display:block;
  width:100%;
  height:100%;
  filter:drop-shadow(0 10px 14px rgba(8,32,46,.3));
}
#pod-1 .pod-svg{ transform:rotate(-7deg); }
#pod-2 .pod-svg{ transform:rotate(6deg) translateY(4px); }

/* 结果 */
.wish-out{ display:flex; flex-direction:column; }
.wish-result{
  position:relative;
  flex:1;
  border:1px dashed rgba(201,162,39,.55);
  border-radius:var(--r-l);
  background:linear-gradient(170deg,rgba(201,162,39,.07),rgba(178,58,52,.05));
  padding:clamp(22px,3vw,34px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:12px;
  min-height:250px;
  transition:border-color .3s,background .3s;
}
.wish-result.is-hit{
  border-style:solid;
  border-color:rgba(178,58,52,.5);
  background:linear-gradient(170deg,rgba(178,58,52,.07),rgba(201,162,39,.08));
}
.wish-result.is-hit::before{
  content:"";
  position:absolute;
  inset:12px;
  border:2px solid rgba(201,162,39,.7);
  border-radius:var(--r-l);
  pointer-events:none;
  animation:ringPing 1.1s var(--ease) .15s both;
}
@keyframes ringPing{
  0%{ opacity:0; transform:scale(.84); }
  45%{ opacity:1; }
  100%{ opacity:0; transform:scale(1.07); }
}
.wr-emoji{
  width:64px;
  height:64px;
  border-radius:50%;
  background:linear-gradient(150deg,var(--crimson-l),var(--crimson-d));
  color:#fdf3e0;
  display:grid;
  place-items:center;
  font-size:27px;
  font-family:var(--f-kai);
  font-weight:700;
  box-shadow:0 12px 26px rgba(141,43,38,.32);
  animation:stampIn .55s cubic-bezier(.3,1.4,.4,1) .05s both;
}
/* 结果印章：放大旋转砸下来的盖章动作 */
@keyframes stampIn{
  0%{ opacity:0; transform:scale(1.9) rotate(-16deg); }
  62%{ opacity:1; transform:scale(.93) rotate(3deg); }
  100%{ opacity:1; transform:none; }
}
.wr-verdict{
  animation:wrIn .5s var(--ease) .2s both;
  font-size:26px;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--ink);
  font-family:var(--f-serif);
}
.wr-verdict small{
  display:block;
  font-size:12.5px;
  font-weight:400;
  letter-spacing:.06em;
  color:var(--muted);
  margin-top:6px;
}
.wr-text{
  animation:wrIn .5s var(--ease) .32s both;
  font-size:14.8px; color:var(--ink-2); line-height:1.9; margin:0; }
.wr-hint{ font-size:14.2px; color:var(--muted); line-height:1.9; margin:0; }
.wish-result .wr-in{ animation:wrIn .5s var(--ease) both; }
@keyframes wrIn{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:none; }
}
.wish-streak{
  margin-top:14px;
  text-align:center;
  font-size:13.6px;
  font-weight:700;
  color:var(--crimson);
  letter-spacing:.04em;
}
.wish-disclaimer{
  margin-top:26px;
  font-size:13px;
  color:var(--muted);
  line-height:1.9;
  text-align:center;
  max-width:640px;
  margin-left:auto;
  margin-right:auto;
}
.wish-disclaimer a{ color:var(--crimson); font-weight:600; }

@media (max-width:860px){
  .wish-stage{ grid-template-columns:1fr; }
  .wish-out{ min-height:0; }
  .wish-result{ min-height:210px; }
}
@media (prefers-reduced-motion:reduce){
  .pod.tossing{ animation:none; }
  .pod.tossing .pod-inner{ animation:none; }
  .pod-inner{ transition:none; }
  .wish-result .wr-in{ animation:none; }
  .wr-emoji,.wr-verdict,.wr-text{ animation:none; }
  .wish-result.is-hit::before{ display:none; }
}
