/* ============================================================
   TERRA PLUMA · 大地之羽 — NASA 太空素材镜像
   palette: 夜棕 / 米白 / 琥珀 —— 星空是底色,生命是亮部
   ============================================================ */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-normal-500.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cormorant-garamond-normal-600.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/cormorant-garamond-normal-700.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-italic-500.woff2') format('woff2');}

:root{
  --bg0:#110c07;
  --bg1:#191209;
  --panel:#1f160d;
  --line:rgba(232,220,196,.13);
  --line-strong:rgba(232,220,196,.28);
  --cream:#efe5d0;
  --cream-dim:#bcad91;
  --faint:#8d7e64;
  --amber:#c89a5e;
  --amber-hi:#e3bb81;
  --paper:#f1e9d7;
  --paper-2:#e9deca;
  --paper-line:rgba(64,48,28,.16);
  --ink:#2c2114;
  --ink-soft:#6e5d43;
  --serif:'Cormorant Garamond','Songti SC','STSong','SimSun','Noto Serif CJK SC','Source Han Serif SC',serif;
  --mono:'SF Mono','JetBrains Mono','Menlo',ui-monospace,'Courier New',monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg0);
  color:var(--cream);
  font-family:var(--serif);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:rgba(143,29,36,.55);color:#ffefe2}
a{color:var(--amber-hi);text-decoration:none}
img{display:block;max-width:100%}

/* 胶片颗粒 —— 全站罩一层细噪点 */
body::after{
  content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{max-width:1180px;margin:0 auto;padding:0 28px}

/* ------------------------------------------------ nav ---- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  background:rgba(15,10,5,.58);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1180px;margin:0 auto;padding:14px 28px;
  display:flex;align-items:center;gap:14px;
}
.nav-mark{width:20px;height:38px;flex:none;opacity:.92;transform:rotate(18deg)}
.nav-mark svg{width:100%;height:100%}
.nav-title{display:flex;flex-direction:column;line-height:1.15}
.nav-title .en{
  font-weight:600;font-size:15px;letter-spacing:.34em;text-transform:uppercase;color:var(--cream);
}
.nav-title .cn{font-size:11.5px;letter-spacing:.5em;color:var(--faint)}
.nav-links{margin-left:auto;display:flex;gap:30px;align-items:center}
.nav-links a{
  font-size:14.5px;letter-spacing:.18em;color:var(--cream-dim);
  padding:4px 0;border-bottom:1px solid transparent;transition:.25s;
}
.nav-links a:hover,.nav-links a.active{color:var(--amber-hi);border-bottom-color:var(--amber)}
.nav-links a.cta{
  border:1px solid var(--line-strong);border-radius:99px;padding:7px 18px;color:var(--cream);
}
.nav-links a.cta:hover{border-color:var(--amber);background:rgba(200,154,94,.12);color:var(--amber-hi)}

/* ------------------------------------------------ hero ---- */
.hero{
  position:relative;min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;
  overflow:hidden;
  background:radial-gradient(120% 90% at 50% -10%, #2a140d 0%, var(--bg0) 55%);
}
.stars{position:absolute;inset:0;z-index:0}
.stars-svg{width:100%;height:100%}
.stars-twinkle-a{animation:twk 5.5s ease-in-out infinite alternate}
.stars-twinkle-b{animation:twk 3.8s ease-in-out -2s infinite alternate}
@keyframes twk{from{opacity:1}to{opacity:.35}}

.hero-inner{position:relative;z-index:3;padding:18vh 28px 34vh;max-width:1180px;margin:0 auto;width:100%}
.hero-kicker{
  display:flex;align-items:center;gap:16px;
  font-size:13.5px;letter-spacing:.46em;color:var(--amber);text-transform:uppercase;
  margin-bottom:3.2rem;
}
.hero-kicker::before{content:"";width:54px;height:1px;background:linear-gradient(90deg,var(--blood),var(--amber));opacity:.85}
.hero h1{
  font-weight:500;font-size:clamp(2.6rem,6.2vw,4.9rem);
  line-height:1.22;letter-spacing:.06em;max-width:21em;
}
.hero h1 .en{
  display:block;font-style:italic;font-weight:500;
  font-size:clamp(1.3rem,2.6vw,2rem);letter-spacing:.12em;
  color:var(--amber-hi);margin-top:1.4rem;
}
.hero-copy{
  margin-top:2.6rem;max-width:36em;
  color:var(--cream-dim);font-size:1.06rem;
}
.hero-actions{margin-top:3rem;display:flex;gap:18px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--serif);font-size:1rem;letter-spacing:.2em;
  padding:14px 34px;border-radius:2px;transition:.3s;cursor:pointer;
}
.btn-amber{
  background:var(--amber);color:#1c130a;border:1px solid var(--amber);
}
.btn-amber:hover{background:var(--amber-hi);border-color:var(--amber-hi);box-shadow:0 6px 30px rgba(199,91,42,.45)}
.btn-ghost{border:1px solid var(--line-strong);color:var(--cream)}
.btn-ghost:hover{border-color:var(--amber);color:var(--amber-hi)}

/* 夜面地球 —— 只露出弧顶,灯火即生命 */
.earth-limb{
  position:absolute;z-index:1;left:50%;transform:translateX(-50%);
  top:calc(100% - 26vh);
  width:185vw;max-width:2900px;aspect-ratio:1/1;border-radius:50%;
  background-image:url('../previews/hero_earth_night.jpg');
  background-size:cover;background-position:72% 0%;
  filter:brightness(1.18) saturate(1.1);
  animation:earthdrift 160s ease-in-out infinite alternate;
  box-shadow:
    0 -2px 0 0 rgba(227,187,129,.55),
    0 -18px 60px rgba(216,166,98,.28),
    0 -60px 160px rgba(200,144,70,.16),
    inset 0 30px 90px rgba(255,214,150,.18),
    inset 0 120px 220px rgba(10,6,2,.2);
}
@keyframes earthdrift{from{background-position:72% 0%}to{background-position:22% 0%}}
.earth-limb::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:linear-gradient(to bottom, rgba(17,12,7,0) 0%, rgba(17,12,7,0) 7%, rgba(17,12,7,.92) 16%, #110c07 22%);
}
.hero-cap{
  position:absolute;z-index:4;left:0;right:0;bottom:7vh;text-align:center;
  font-size:13px;letter-spacing:.4em;color:var(--faint);
}
.hero-cap .ln{display:block;width:1px;height:52px;background:linear-gradient(var(--amber),transparent);margin:14px auto 0;opacity:.7}

/* ------------------------------------------- butterfly ---- */
.butterfly{overflow:visible;display:block;width:100%;height:auto;aspect-ratio:240/170}
.bf-wing-fill{fill:url(#wingGrad);stroke:none}
.bf-hind{opacity:.8}
.bf-wing-line{fill:none;stroke:var(--bf-ink,#e3bb81);stroke-width:1.4;opacity:.9}
.bf-vein{fill:none;stroke:var(--bf-ink,#e3bb81);stroke-width:.7;opacity:.5}
.bf-spot{fill:var(--bf-ink,#f1e9d7);opacity:.85}
.bf-antenna{fill:none;stroke:var(--bf-ink,#e3bb81);stroke-width:1.2;opacity:.85}
.bf-club{fill:var(--bf-ink,#e3bb81)}
.bf-thorax,.bf-abdomen{fill:var(--bf-ink,#e3bb81)}
.bf-wing{transform-box:view-box;transform-origin:50% 50%}
.bf-right{animation:flapR 9s ease-in-out infinite}
.bf-left{animation:flapL 9s ease-in-out infinite}
@keyframes flapR{
  0%,72%,100%{transform:scaleX(1)}
  76%{transform:scaleX(.42)} 80%{transform:scaleX(.96)}
  84%{transform:scaleX(.55)} 89%{transform:scaleX(1)}
}
@keyframes flapL{
  0%,72%,100%{transform:scaleX(1)}
  76%{transform:scaleX(.42)} 80%{transform:scaleX(.96)}
  84%{transform:scaleX(.55)} 89%{transform:scaleX(1)}
}
.hero-butterfly{
  position:absolute;z-index:4;width:108px;
  right:max(6vw,calc(50% - 540px));top:21vh;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.5));
  animation:hover-drift 13s ease-in-out infinite;
}
@keyframes hover-drift{
  0%,100%{transform:translate(0,0) rotate(-6deg)}
  30%{transform:translate(-14px,10px) rotate(2deg)}
  60%{transform:translate(8px,-8px) rotate(-3deg)}
}

/* -------------------------------------------- camellia ---- */
:root{
  --cam-ink:#cdbb9b;
  --cam-line:rgba(224,126,96,.40);
  --cam-veinc:#f0d9c8;
  --camellia:#a2393d;
  --blood:#8f1d24;
  --ember:#c75b2a;
  --oldgold:#b08a45;
  --corner:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20100%20100%22%20aria-hidden=%22true%22%3E%3Cpath%20d=%22M%2086%207%20Q%2016%2016%207%2086%22%20fill=%22none%22%20stroke=%22%23b08a45%22%20stroke-width=%221.7%22%20stroke-linecap=%22round%22%20opacity=%22.9%22/%3E%3Cpath%20d=%22M%2070%2013%20Q%2021%2021%2013%2070%22%20fill=%22none%22%20stroke=%22%23b08a45%22%20stroke-width=%22.8%22%20stroke-linecap=%22round%22%20opacity=%22.5%22/%3E%3Cpath%20d=%22M%2086.0%205.0%20L%2084.3%205.7%20L%2082.8%206.7%20L%2081.7%208.0%20L%2081.0%209.3%20L%2080.6%2010.7%20L%2080.5%2012.0%20L%2080.6%2013.3%20L%2081.0%2014.4%20L%2081.7%2015.3%20L%2082.4%2016.0%20L%2083.2%2016.6%20L%2084.1%2016.9%20L%2084.9%2017.0%20L%2085.7%2016.9%20L%2086.4%2016.6%20L%2087.0%2016.3%20L%2087.5%2015.8%20L%2087.9%2015.3%20L%2088.1%2014.8%20L%2088.2%2014.3%20L%2088.1%2013.8%20L%2088.0%2013.3%20L%2087.8%2012.9%20L%2087.5%2012.6%20L%2087.2%2012.4%20L%2086.9%2012.2%20L%2086.5%2012.2%20L%2086.2%2012.2%20L%2085.9%2012.2%20L%2085.7%2012.4%20L%2085.5%2012.5%20L%2085.3%2012.7%20L%2085.2%2012.9%20L%2085.2%2013.1%20L%2085.2%2013.3%20L%2085.2%2013.5%20L%2085.3%2013.7%20L%2085.4%2013.8%20L%2085.5%2013.9%20L%2085.6%2014.0%20L%2085.7%2014.0%20L%2085.9%2014.0%20L%2086.0%2014.0%20L%2086.1%2014.0%20L%2086.2%2013.9%20L%2086.2%2013.8%22%20fill=%22none%22%20stroke=%22%23b08a45%22%20stroke-width=%221.3%22%20stroke-linecap=%22round%22%20opacity=%220.85%22/%3E%3Cpath%20d=%22M%2022.0%2086.0%20L%2021.3%2087.7%20L%2020.3%2089.2%20L%2019.0%2090.3%20L%2017.7%2091.0%20L%2016.3%2091.4%20L%2015.0%2091.5%20L%2013.7%2091.4%20L%2012.6%2091.0%20L%2011.7%2090.3%20L%2011.0%2089.6%20L%2010.4%2088.8%20L%2010.1%2087.9%20L%2010.0%2087.1%20L%2010.1%2086.3%20L%2010.4%2085.6%20L%2010.7%2085.0%20L%2011.2%2084.5%20L%2011.7%2084.1%20L%2012.2%2083.9%20L%2012.7%2083.8%20L%2013.2%2083.9%20L%2013.7%2084.0%20L%2014.1%2084.2%20L%2014.4%2084.5%20L%2014.6%2084.8%20L%2014.8%2085.1%20L%2014.8%2085.5%20L%2014.8%2085.8%20L%2014.8%2086.1%20L%2014.6%2086.3%20L%2014.5%2086.5%20L%2014.3%2086.7%20L%2014.1%2086.8%20L%2013.9%2086.8%20L%2013.7%2086.8%20L%2013.5%2086.8%20L%2013.3%2086.7%20L%2013.2%2086.6%20L%2013.1%2086.5%20L%2013.0%2086.4%20L%2013.0%2086.3%20L%2013.0%2086.1%20L%2013.0%2086.0%20L%2013.0%2085.9%20L%2013.1%2085.8%20L%2013.2%2085.8%22%20fill=%22none%22%20stroke=%22%23b08a45%22%20stroke-width=%221.3%22%20stroke-linecap=%22round%22%20opacity=%220.85%22/%3E%3Cpath%20d=%22M%2040%2011.5%20Q%2047%202%2056%206%20Q%2048%2013%2040%2011.5%20Z%22%20fill=%22%23b08a45%22%20opacity=%22.55%22/%3E%3Cpath%20d=%22M%2011.5%2040%20Q%202%2047%206%2056%20Q%2013%2048%2011.5%2040%20Z%22%20fill=%22%23b08a45%22%20opacity=%22.55%22/%3E%3Ccircle%20cx=%2211%22%20cy=%2211%22%20r=%222.6%22%20fill=%22%23b08a45%22%20opacity=%22.9%22/%3E%3Ccircle%20cx=%2219%22%20cy=%2219%22%20r=%221.2%22%20fill=%22%23b08a45%22%20opacity=%22.55%22/%3E%3Ccircle%20cx=%2292%22%20cy=%226%22%20r=%221.1%22%20fill=%22%23b08a45%22%20opacity=%22.6%22/%3E%3Ccircle%20cx=%226%22%20cy=%2292%22%20r=%221.1%22%20fill=%22%23b08a45%22%20opacity=%22.6%22/%3E%3C/svg%3E");
}
.camellia{display:block;width:100%;height:auto}
.cam-leaf{fill:#120b09;stroke:rgba(206,104,80,.42);stroke-width:1.1;opacity:.96}
.cam-leaf-vein{fill:none;stroke:#7e2424;stroke-width:.8;opacity:.55}
.paper .cam-leaf,.toc .cam-leaf{fill:#16100c;stroke:rgba(94,30,24,.6)}
.paper .cam-leaf-vein,.toc .cam-leaf-vein{stroke:#6e2020;opacity:.6}
.cam-l0,.cam-l1,.cam-l2,.cam-l3,.cam-l4,.cam-l5{
  fill:url(#camBloom);stroke:var(--cam-line);stroke-width:.9}
.cam-l0{fill-opacity:.97}
.cam-l1{fill-opacity:.96}
.cam-l2{fill-opacity:.96}
.cam-l3{fill-opacity:.95}
.cam-l4{fill-opacity:.95}
.cam-l5{fill-opacity:.94}
.cam-vein{fill:none;stroke:var(--cam-veinc);stroke-width:.55;opacity:.4}
.cam-heart{fill:#c8474c;stroke:var(--cam-line);stroke-width:.9}
.cam-heart2{fill:#e6938a;stroke:none;opacity:.9}
.paper,.toc{--cam-ink:#5d4322;--cam-line:rgba(46,10,10,.55);--cam-veinc:#702c28}

/* 落瓣 —— 地表的生命,坠向星球 */
.petals{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.petal-fall{position:absolute;top:-70px;width:31px;opacity:.62;will-change:transform;
  animation:pfall linear infinite}
.petal-fall .cam-petal{display:block;width:100%;height:auto;animation:psway ease-in-out infinite alternate}
@keyframes pfall{from{transform:translateY(-8vh) rotate(0deg)}to{transform:translateY(116vh) rotate(290deg)}}
@keyframes psway{from{transform:translateX(-16px) rotate(-24deg)}to{transform:translateX(18px) rotate(18deg)}}

/* --------------------------------------------- sections ---- */
.sec{padding:7.5rem 0}
.sec-head{display:flex;align-items:baseline;gap:26px;margin-bottom:3.4rem;flex-wrap:wrap}
.sec-no{
  font-style:italic;font-weight:500;font-size:1.1rem;color:var(--amber);letter-spacing:.2em;
}
.sec-head h2{
  font-weight:600;font-size:clamp(1.7rem,3.4vw,2.5rem);letter-spacing:.14em;
}
.sec-head .en{
  font-style:italic;font-weight:500;color:var(--faint);font-size:1.05rem;letter-spacing:.18em;
  margin-left:6px;
}
.sec-head .rule{flex:1;min-width:80px;height:1px;background:var(--line);align-self:center}
.sec-lede{max-width:42em;color:var(--cream-dim);margin:-1.8rem 0 3rem;font-size:1.02rem}

/* ------------------------------ 大阿卡纳 · tarot cards ---- */
.orn{display:flex;justify-content:center;margin:0 0 3rem;color:var(--oldgold);opacity:.85}
.orn svg{width:min(540px,86%)}
.tarots{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:30px 24px}
.tarot-hold{
  transform:rotate(var(--tilt,0deg));
  transition:transform .5s cubic-bezier(.2,.75,.25,1.1), filter .5s;
  filter:drop-shadow(0 16px 28px rgba(0,0,0,.55)) drop-shadow(0 0 1px rgba(212,176,110,.3));
}
.tarot-hold:hover{
  position:relative;z-index:5;
  transform:rotate(0deg) translateY(-12px) scale(1.025);
  filter:drop-shadow(0 26px 42px rgba(0,0,0,.68)) drop-shadow(0 0 24px rgba(160,42,22,.42));
}
.tarot{
  position:relative;display:flex;flex-direction:column;height:100%;
  aspect-ratio:11/18.4;
  padding:16px 15px 14px;
  border:1px solid rgba(176,138,69,.5);
  clip-path:var(--torn,none);
  background:
    radial-gradient(60% 26% at 50% 102%, rgba(118,24,22,.30), transparent 70%),
    radial-gradient(130% 80% at 50% -10%, #20120a 0%, #130b05 62%);
  color:var(--cream);
  transition:border-color .5s;
  box-shadow:inset 0 0 56px rgba(0,0,0,.55);
  overflow:hidden;
}
.tarot::before{ /* 岁月的褐斑 */
  content:"";position:absolute;inset:0;pointer-events:none;z-index:6;
  background:
    radial-gradient(22% 13% at 16% 20%, rgba(124,70,28,.20), transparent),
    radial-gradient(15% 9% at 84% 32%, rgba(124,70,28,.15), transparent),
    radial-gradient(28% 16% at 72% 90%, rgba(112,28,20,.18), transparent),
    radial-gradient(18% 11% at 26% 74%, rgba(124,70,28,.13), transparent),
    radial-gradient(9% 5% at 60% 12%, rgba(124,70,28,.16), transparent);
}
.tarot::after{ /* 内框 */
  content:"";position:absolute;inset:7px;pointer-events:none;z-index:7;
  border:1px solid rgba(176,138,69,.32);border-radius:4px;
}
.t-cn{position:absolute;width:46px;height:46px;z-index:8;color:var(--oldgold);opacity:.9;
  background:var(--corner) center/contain no-repeat}
.t-cn.p1{top:9px;left:9px}
.t-cn.p2{top:9px;right:9px;transform:scaleX(-1)}
.t-cn.p3{bottom:9px;left:9px;transform:scaleY(-1)}
.t-cn.p4{bottom:9px;right:9px;transform:scale(-1)}
.t-no{
  text-align:center;font-style:italic;font-weight:600;font-size:1.06rem;
  letter-spacing:.34em;color:#c9a25e;padding-top:4px;
}
.t-no::before,.t-no::after{content:"·";margin:0 10px;opacity:.55}
.t-art{position:relative;flex:1;margin:12px 7px 14px;z-index:2}
.t-main{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  border:1px solid rgba(176,138,69,.42);
  filter:sepia(.45) contrast(1.07) brightness(.86) saturate(.92);
  transition:filter .6s;
}
.t-sub{
  position:absolute;width:60%;height:44%;object-fit:cover;
  right:-6px;bottom:-12px;transform:rotate(-5deg);z-index:3;
  border:1px solid rgba(228,198,140,.55);
  box-shadow:0 9px 24px rgba(0,0,0,.65);
  filter:sepia(.5) contrast(1.05) brightness(.9);
  transition:filter .6s, transform .6s;
}
.t-flora{position:absolute;z-index:4;filter:drop-shadow(0 4px 9px rgba(0,0,0,.6))}
.t-flora.f-cam{width:54px;left:-12px;bottom:-16px}
.t-flora.f-bf{width:56px;left:-10px;bottom:-8px;transform:rotate(8deg)}
.t-flora.f-petal{width:30px;left:-6px;bottom:-10px;transform:rotate(-18deg)}
.t-flora.f-feather{width:30px;left:-8px;bottom:-16px;transform:rotate(22deg);--feather-ink:#cfa86a}
.t-banner{text-align:center;z-index:2}
.t-banner .cn{display:block;font-size:1.34rem;font-weight:600;letter-spacing:.18em}
.t-banner .en{
  display:block;font-style:italic;font-size:.84rem;letter-spacing:.3em;
  color:var(--ember);margin-top:3px;text-transform:uppercase;
}
.t-meta{
  text-align:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;
  color:var(--faint);margin-top:9px;padding-bottom:2px;z-index:2;
}
.tarot-hold:hover .tarot{border-color:rgba(212,166,90,.85)}
.tarot-hold:hover .t-main,.tarot-hold:hover .t-sub{filter:none}
.tarot-hold:hover .t-sub{transform:rotate(-7.5deg) translateY(-3px)}

/* 火漆印 */
.t-seal{
  position:absolute;z-index:9;width:62px;top:36px;right:7px;
  transform:rotate(var(--sr,-9deg));
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.55));
}
.waxseal{display:block;width:100%;height:auto}
.manifesto-seal{
  width:98px;margin-top:2.4rem;transform:rotate(7deg);
  filter:drop-shadow(2px 7px 11px rgba(90,30,20,.38));
}
.aside-card{position:relative}
.aside-seal{
  position:absolute;width:86px;top:-26px;right:-16px;z-index:3;
  transform:rotate(12deg);
  filter:drop-shadow(0 5px 10px rgba(90,40,24,.42));
}

/* legacy cards (kept for reference) */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:22px}
.card{
  position:relative;display:flex;flex-direction:column;
  background:var(--panel);border:1px solid var(--line);border-radius:3px;
  overflow:hidden;transition:.35s;color:var(--cream);
}
.card:hover{transform:translateY(-5px);border-color:rgba(200,154,94,.55);box-shadow:0 18px 50px rgba(0,0,0,.5)}
.card-img{aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--line)}
.card-img img{
  width:100%;height:100%;object-fit:cover;
  filter:sepia(.55) saturate(.75) brightness(.92) contrast(1.04);
  transition:filter .6s,transform .6s;
}
.card:hover .card-img img{filter:none;transform:scale(1.045)}
.card-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.card-body .cn{font-size:1.45rem;font-weight:600;letter-spacing:.12em}
.card-body .en{font-style:italic;color:var(--amber);font-size:.95rem;letter-spacing:.16em;margin-top:2px}
.card-body p{color:var(--cream-dim);font-size:.95rem;margin-top:12px;line-height:1.7;flex:1}
.card-meta{
  margin-top:18px;padding-top:14px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:.78rem;color:var(--faint);letter-spacing:.05em;
}
.card-meta .go{font-family:var(--serif);color:var(--amber-hi);letter-spacing:.2em;font-size:.9rem;transition:.25s}
.card:hover .card-meta .go{letter-spacing:.32em}

/* stats strip */
.stats{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(200,154,94,.05), transparent);
}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));}
.stat{padding:2.6rem 1rem;text-align:center;border-left:1px solid var(--line)}
.stat:first-child{border-left:none}
.stat .num{
  font-size:2.5rem;font-weight:700;color:var(--amber-hi);letter-spacing:.04em;line-height:1.1;
}
.stat .num small{font-size:1.2rem;font-style:italic;color:var(--ember)}
.stat .lab{margin-top:8px;font-size:.82rem;letter-spacing:.4em;color:var(--faint)}

/* ------------------------------------------ paper world ---- */
.paper{
  position:relative;background:var(--paper);color:var(--ink);
  border-top:1px solid rgba(227,187,129,.5);
}
.paper::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.6;
  background:
    radial-gradient(90% 60% at 20% 0%, rgba(255,252,243,.7), transparent 60%),
    radial-gradient(70% 50% at 90% 100%, rgba(196,168,124,.18), transparent 60%),
    radial-gradient(14% 9% at 12% 38%, rgba(150,98,42,.10), transparent),
    radial-gradient(10% 7% at 88% 22%, rgba(150,98,42,.09), transparent),
    radial-gradient(17% 11% at 72% 78%, rgba(140,80,36,.08), transparent),
    radial-gradient(8% 5% at 36% 88%, rgba(150,98,42,.09), transparent);
}
.paper > *{position:relative}
.manifesto{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}
.manifesto h2{font-weight:600;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:.14em;color:var(--ink)}
.manifesto h2 .en{display:block;font-style:italic;font-weight:500;font-size:1.05rem;color:#a3743c;letter-spacing:.2em;margin-top:8px}
.manifesto p{color:var(--ink-soft);margin-top:1.4rem;max-width:34em}
.manifesto blockquote{
  margin-top:2.2rem;padding-left:22px;border-left:2px solid var(--camellia);
  font-style:italic;font-size:1.18rem;color:#7a5a31;line-height:1.6;
}
.manifesto blockquote cite{display:block;font-size:.85rem;letter-spacing:.22em;margin-top:10px;color:#a08454;font-style:normal}
.manifesto-feather{display:flex;justify-content:center;position:relative}
.manifesto-feather .feather-svg{
  --feather-ink:#5d4322;
  width:min(300px,60vw);opacity:.8;transform:rotate(14deg);
  filter:drop-shadow(8px 18px 22px rgba(64,42,16,.22));
}
.manifesto-cam{
  position:absolute;width:min(170px,34vw);left:2%;bottom:-4%;
  transform:rotate(-14deg);
  filter:drop-shadow(5px 12px 16px rgba(64,28,20,.28));
}
.manifesto-cam .camellia{opacity:.96}

/* ---------------------------------------------- footer ---- */
footer{border-top:1px solid var(--line);background:var(--bg0)}
.foot{
  padding:3.6rem 0 3rem;display:flex;gap:40px;flex-wrap:wrap;align-items:flex-start;
  color:var(--faint);font-size:.92rem;
}
.foot .brand{flex:1;min-width:240px}
.foot .brand .en{letter-spacing:.34em;color:var(--cream-dim);font-size:1rem}
.foot .brand .cn{letter-spacing:.4em;font-size:.8rem;margin-top:4px}
.foot .brand p{margin-top:16px;max-width:30em;line-height:1.8}
.foot .quote{flex:1;min-width:260px;font-style:italic;color:var(--cream-dim);font-size:1.02rem;line-height:1.7}
.foot .quote cite{display:block;font-style:normal;font-size:.78rem;letter-spacing:.28em;margin-top:10px;color:var(--faint)}
.foot-bar{
  border-top:1px solid var(--line);padding:18px 0;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-family:var(--mono);font-size:.74rem;color:var(--faint);letter-spacing:.06em;
}
.foot-bar a{color:var(--cream-dim)}

/* ============================================================
   /downloads/ —— 标本馆目录
   ============================================================ */
.dl-hero{
  position:relative;padding:9.5rem 0 4.5rem;overflow:hidden;
  background:radial-gradient(130% 100% at 50% -20%, #2a150d 0%, var(--bg0) 60%);
  border-bottom:1px solid rgba(227,187,129,.4);
}
.dl-hero .stars{opacity:.8}
.dl-hero-inner{position:relative;z-index:2}
.dl-hero .crumb{
  font-size:.84rem;letter-spacing:.3em;color:var(--faint);
}
.dl-hero .crumb a{color:var(--cream-dim)}
.dl-hero .crumb a:hover{color:var(--amber-hi)}
.dl-hero h1{font-weight:600;font-size:clamp(2.1rem,4.6vw,3.4rem);letter-spacing:.12em;margin-top:1.6rem}
.dl-hero h1 .en{font-style:italic;font-weight:500;font-size:.45em;color:var(--amber);letter-spacing:.2em;margin-left:18px}
.dl-hero p{color:var(--cream-dim);max-width:46em;margin-top:1.2rem;font-size:1rem}
.dl-flora{position:absolute;right:4vw;bottom:-46px;width:172px;z-index:3}
.dl-flora .camellia{--cam-ink:#cdbb9b;--cam-line:rgba(224,126,96,.40);--cam-veinc:#f0d9c8}
.dl-flora .butterfly{
  position:absolute;width:88px;left:-32%;bottom:64%;
  transform:rotate(-10deg);
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.45));
}

/* sticky toc */
.toc{
  position:sticky;top:67px;z-index:40;
  background:rgba(241,233,215,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--paper-line);
}
.toc-inner{
  max-width:1180px;margin:0 auto;padding:13px 28px;
  display:flex;gap:10px;flex-wrap:wrap;align-items:center;
}
.toc a{
  font-size:.86rem;letter-spacing:.16em;color:#5d4a2e;
  border:1px solid rgba(93,67,34,.3);border-radius:99px;padding:5px 16px;transition:.25s;
}
.toc a:hover{background:#2c2114;color:var(--paper);border-color:#2c2114}
.toc .toc-label{font-size:.78rem;letter-spacing:.3em;color:#a08454;margin-right:8px}

/* collection blocks */
.coll{padding:4.6rem 0 1rem;scroll-margin-top:120px}
.sec,.dl-aside{scroll-margin-top:90px}
.coll-head{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap}
.coll-no{font-style:italic;font-size:1.05rem;color:var(--camellia);letter-spacing:.18em}
.coll-head h2{font-weight:600;font-size:1.9rem;letter-spacing:.14em;color:var(--ink)}
.coll-head .en{font-style:italic;font-weight:500;font-size:1rem;color:#a3743c;letter-spacing:.18em}
.coll-head .sum{
  margin-left:auto;font-family:var(--mono);font-size:.78rem;color:#8a7350;letter-spacing:.05em;
}
.coll-desc{color:var(--ink-soft);max-width:46em;margin:.8rem 0 2rem;font-size:.98rem}
.coll-rule{height:1px;background:linear-gradient(90deg,#b08a55,rgba(176,138,85,.12));margin:1.1rem 0 0}
.coll-orn{display:flex;justify-content:flex-start;color:#8a6a3a;opacity:.8;margin:.4rem 0 .6rem}
.coll-orn svg{width:min(440px,90%)}

/* file rows */
.files{display:flex;flex-direction:column}
.file{
  display:grid;grid-template-columns:96px 1fr auto auto auto;gap:22px;align-items:center;
  padding:16px 14px;border-bottom:1px solid var(--paper-line);
  transition:background .25s;
}
.file:hover{background:rgba(212,188,148,.22)}
.file-thumb{
  width:96px;height:64px;border-radius:2px;overflow:hidden;
  border:1px solid var(--paper-line);background:#241a10;
}
.file-thumb img{width:100%;height:100%;object-fit:cover;filter:sepia(.3) saturate(.85);transition:.45s}
.file:hover .file-thumb img{filter:none}
.file-id{min-width:0}
.file-id .fname{
  font-family:var(--mono);font-size:.85rem;color:#3d2d18;letter-spacing:.01em;
  word-break:break-all;font-weight:600;
}
.file-id .fname a{color:#3d2d18;border-bottom:1px dotted rgba(61,45,24,.4)}
.file-id .fname a:hover{color:#a3743c;border-bottom-color:#a3743c}
.file-id .ftitle{font-size:.9rem;color:var(--ink-soft);margin-top:3px;line-height:1.5}
.fdim,.fsize{font-family:var(--mono);font-size:.8rem;color:#6e5b3d;white-space:nowrap;text-align:right}
.fdim .badge{
  display:inline-block;border:1px solid rgba(110,91,61,.45);border-radius:3px;
  font-size:.66rem;letter-spacing:.12em;padding:1px 7px;margin-left:8px;vertical-align:1px;
}
.fbtn{
  display:inline-flex;align-items:center;gap:9px;white-space:nowrap;
  font-size:.9rem;letter-spacing:.22em;
  color:#4a3417;border:1px solid rgba(74,52,23,.5);border-radius:99px;
  padding:8px 20px;transition:.28s;
}
.fbtn:hover{background:#2c2114;border-color:#2c2114;color:#f1e9d7}
.fbtn .arr{font-family:var(--mono)}

/* aside blocks: checksum / usage */
.dl-aside{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:3.5rem 0 5rem;
}
.aside-card{
  border:1px solid var(--paper-line);border-radius:3px;background:rgba(255,251,240,.55);
  padding:26px 28px;
}
.aside-card h3{font-weight:600;letter-spacing:.18em;font-size:1.15rem;color:var(--ink)}
.aside-card h3 .en{font-style:italic;font-weight:500;color:#a3743c;font-size:.85rem;margin-left:10px;letter-spacing:.14em}
.aside-card p{color:var(--ink-soft);font-size:.92rem;margin-top:10px}
.aside-card pre{
  margin-top:14px;background:#241a10;color:#dcc9a4;border-radius:3px;
  font-family:var(--mono);font-size:.78rem;line-height:1.85;
  padding:16px 18px;overflow-x:auto;
}
.aside-card pre b{color:#e3bb81;font-weight:400}
.aside-card a.plain{border-bottom:1px dotted #a3743c}

/* downloads footer on paper edge */
.paper-end{height:1px;background:linear-gradient(90deg,transparent,#b08a55,transparent)}

/* --------------------------------------------- responsive ---- */
@media (max-width:880px){
  .tarots{grid-template-columns:repeat(2,1fr);gap:18px 14px}
  .tarot{padding:12px 10px 10px}
  .t-seal{width:44px;top:28px;right:4px}
  .aside-seal{width:64px;top:-18px;right:-8px}
  .t-cn{width:34px;height:34px}
  .t-banner .cn{font-size:1.1rem}
  .toc{top:73px}
  .coll{scroll-margin-top:170px}
  .nav-links{gap:16px}
  .nav-links a:not(.cta){display:none}
  .hero-inner{padding-top:22vh}
  .hero-butterfly{width:74px;top:12vh;right:7vw}
  .manifesto{grid-template-columns:1fr;gap:30px}
  .manifesto-feather{order:-1}
  .manifesto-feather .feather-svg{width:170px}
  .dl-flora{width:112px;right:5vw;bottom:-28px}
  .dl-flora .butterfly{width:58px}
  .manifesto-cam{width:120px;left:50%;bottom:-8%}
  .dl-aside{grid-template-columns:1fr}
  .file{grid-template-columns:64px 1fr;gap:6px 16px;padding:18px 6px}
  .file-thumb{width:64px;height:44px;grid-row:span 3;align-self:start}
  .fdim{display:none}
  .fsize{grid-column:2;text-align:left}
  .fbtn{grid-column:2;justify-self:start;margin-top:6px;padding:6px 18px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
