/* =========================================================
   Marvis Main Site — design system
   Shared by Home / Photography / Album / Video / Footprint / About
   ========================================================= */
:root{
  --bg:#f6f5f3;
  --bg-2:#efedea;
  --ink:#111111;
  --muted:#8b8b8b;
  --line:rgba(0,0,0,.12);
  --gap:clamp(10px,1.3vw,20px);
  --pad:clamp(16px,4vw,56px);
  --ease:cubic-bezier(.22,.61,.2,1);
  --serif:Georgia,"Times New Roman","Songti SC","Noto Serif SC","Noto Sans SC",serif;
  --sans:"Helvetica Neue",Helvetica,Arial,"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
::selection{background:#111;color:#fff;}

/* ---------------- header ---------------- */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--pad);color:#fff;
  transition:background .5s var(--ease),color .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease);
}
.site-head.is-solid{
  background:rgba(246,245,243,.9);-webkit-backdrop-filter:saturate(160%) blur(14px);
  backdrop-filter:saturate(160%) blur(14px);color:var(--ink);
  padding:13px var(--pad);box-shadow:0 1px 0 var(--line);
}
.site-head.is-light{color:var(--ink);}
.brand{font-size:13px;letter-spacing:.16em;text-transform:none;font-weight:500;line-height:1.1;}
.brand .brand-name{font-size:12.5px;letter-spacing:.12em;opacity:.92;margin-top:0;font-weight:500;text-transform:none;white-space:nowrap;}
.brand span{display:block;font-size:9px;letter-spacing:.3em;opacity:.55;margin-top:3px;font-weight:400;}
.nav{display:flex;align-items:center;gap:clamp(10px,1.5vw,24px);}
.nav > li{list-style:none;position:relative;}
.nav a,.nav .nav-link{
  font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;opacity:.78;
  position:relative;padding:6px 0;transition:opacity .3s;display:inline-flex;align-items:center;gap:5px;
}
.nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease);
}
.nav a:hover{opacity:1;}
.nav a:hover::after{transform:scaleX(1);transform-origin:left;}
.nav a.is-current{opacity:1;}
.nav a.is-current::after{transform:scaleX(1);}
.caret{width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-1px);opacity:.7;}

/* dropdown */
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;visibility:visible;transform:none;}
.drop{
  position:absolute;top:100%;left:50%;translate:-50% 0;min-width:230px;padding:14px 8px 12px;
  background:rgba(246,245,243,.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  color:var(--ink);box-shadow:0 24px 46px -24px rgba(0,0,0,.4),0 0 0 1px var(--line);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .32s var(--ease),visibility .32s,transform .32s var(--ease);
}
.drop::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;}
.drop a{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:9px 14px;font-size:11.5px;letter-spacing:.05em;opacity:.72;}
.drop a:hover{opacity:1;background:rgba(0,0,0,.045);}
.drop a span{font-size:9px;opacity:.5;letter-spacing:.1em;}
.menu-btn{display:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase;}

/* mobile sheet */
.sheet{
  position:fixed;inset:0;z-index:120;background:#0d0d0d;color:#fff;
  display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 var(--pad);
  opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s;
}
.sheet.is-open{opacity:1;visibility:visible;}
.sheet a{font-family:var(--serif);font-size:min(8.4vw,32px);line-height:1.9;letter-spacing:.04em;display:flex;justify-content:space-between;align-items:baseline;}
.sheet a small{font-family:var(--sans);font-size:9px;letter-spacing:.24em;opacity:.45;text-transform:uppercase;}
.sheet-close{position:absolute;top:16px;right:var(--pad);font-size:26px;line-height:1;}

/* ---------------- hero ---------------- */
.hero{position:relative;height:100svh;min-height:520px;overflow:hidden;background:#101010;}
.hero-media{position:absolute;inset:0;will-change:transform;}
.hero-media img{width:100%;height:100%;object-fit:cover;animation:heroZoom 22s ease-out forwards;}
@keyframes heroZoom{from{transform:scale(1.06);}to{transform:scale(1);}}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.46) 0%,rgba(0,0,0,.12) 30%,rgba(0,0,0,.22) 58%,rgba(0,0,0,.74) 100%);
}
.hero-inner{
  position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 var(--pad) clamp(64px,11vh,120px);color:#fff;
}
.hero-kicker{font-size:10px;letter-spacing:.42em;text-transform:uppercase;opacity:.8;margin-bottom:clamp(14px,2vh,24px);}
.hero-title{
  font-family:"Playfair Display 900",Georgia,"Times New Roman",serif;font-weight:900;font-size:clamp(34px,7.6vw,86px);line-height:1.08;
  letter-spacing:.005em;text-wrap:balance;max-width:18em;text-shadow:0 2px 30px rgba(0,0,0,.28);
}
.hero-title em{font-style:italic;}
.hero-title.is-poem{font-size:clamp(17px,2.2vw,30px);line-height:1.62;font-weight:400;font-style:italic;letter-spacing:.01em;max-width:32em;text-wrap:pretty}
.hero.is-compact .hero-title.is-poem{font-size:clamp(17px,2.2vw,30px)}
@media (max-width:780px){.hero-title.is-poem,.hero.is-compact .hero-title.is-poem{font-size:clamp(15px,4.3vw,19px);line-height:1.55;letter-spacing:0}}
.hero-sub{margin-top:clamp(16px,2.4vh,26px);font-size:11px;letter-spacing:.24em;text-transform:uppercase;opacity:.86;text-shadow:0 1px 14px rgba(0,0,0,.4);}
.hero-sub.is-poem{text-transform:none;letter-spacing:.06em;font-size:clamp(12px,.95vw,14px);line-height:1.95;font-style:italic;opacity:.92;max-width:46ch}
@media (max-width:780px){.hero-sub.is-poem{font-size:11.5px;line-height:1.8;letter-spacing:.04em}}
.hero-cta{display:flex;gap:26px;margin-top:clamp(22px,3.4vh,36px);font-size:10px;letter-spacing:.26em;text-transform:uppercase;}
.hero-cta a{opacity:.8;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px;transition:opacity .3s,border-color .3s;}
.hero-cta a:hover{opacity:1;border-color:#fff;}
.hero-inner .reveal{opacity:0;transform:translateY(26px);}
.loaded .hero-inner .reveal{opacity:1;transform:none;transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);}
.loaded .hero-inner .reveal:nth-child(1){transition-delay:.25s;}
.loaded .hero-inner .reveal:nth-child(2){transition-delay:.42s;}
.loaded .hero-inner .reveal:nth-child(3){transition-delay:.6s;}
.loaded .hero-inner .reveal:nth-child(4){transition-delay:.74s;}
.scroll-cue{
  position:absolute;left:50%;bottom:26px;z-index:3;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff;
  font-size:9px;letter-spacing:.32em;text-transform:uppercase;opacity:.7;
}
.scroll-cue i{display:block;width:1px;height:44px;background:rgba(255,255,255,.5);overflow:hidden;position:relative;}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:#fff;transform:translateY(-100%);animation:cue 2.4s var(--ease) infinite;}
@keyframes cue{0%{transform:translateY(-100%);}55%{transform:translateY(0);}100%{transform:translateY(100%);}}

/* compact hero for inner pages */
.hero.is-compact{height:clamp(380px,62vh,640px);min-height:0;}
.hero.is-compact .hero-inner{padding-bottom:clamp(38px,6vh,64px);}
.hero.is-compact .hero-title{font-size:clamp(30px,5.6vw,64px);}

/* ---------------- section ---------------- */
.section-head{
  max-width:1700px;margin:0 auto;padding:clamp(56px,9vh,110px) var(--pad) clamp(24px,4vh,44px);
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.section-kicker{font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.section-title{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.4vw,44px);line-height:1.14;letter-spacing:-.005em;}
.section-note{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);max-width:30ch;line-height:1.9;}
.section-link{font-size:10px;letter-spacing:.26em;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:5px;transition:border-color .3s;}
.section-link:hover{border-color:var(--ink);}

/* ---------------- album index ---------------- */
.album-grid{
  max-width:1700px;margin:0 auto;padding:0 var(--pad) clamp(40px,7vh,80px);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,26px);
}
/* 4 张合集必须成一行：1180 以下降 3 列，880 以下降 2 列，640 以下沿用移动端紧凑样式 */
@media (max-width:1180px){
  .album-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:880px){
  .album-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.album-card{position:relative;display:block;overflow:hidden;background:#e7e5e2;}
.album-card .ac-media{position:relative;aspect-ratio:4/5;overflow:hidden;}
.album-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s;}
.album-card:hover img{transform:scale(1.04);}
.album-card .ac-veil{
  position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(0,0,0,.62) 100%);
  opacity:.85;transition:opacity .5s;
}
.album-card:hover .ac-veil{opacity:1;}
.album-card .ac-meta{
  position:absolute;left:0;right:0;bottom:0;padding:clamp(16px,2.2vw,26px);color:#fff;
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
}
.album-card .ac-title{font-family:var(--serif);font-size:clamp(20px,2vw,28px);line-height:1.2;}
.album-card .ac-count{font-size:9px;letter-spacing:.26em;text-transform:uppercase;opacity:.72;white-space:nowrap;}
.album-card .ac-line{height:1px;background:rgba(255,255,255,.45);width:0;transition:width .7s var(--ease);}
.album-card:hover .ac-line{width:100%;}

/* ---------------- masonry ---------------- */
.masonry{
  max-width:1700px;margin:0 auto;padding:0 var(--pad) clamp(60px,10vh,120px);
  column-count:3;column-gap:var(--gap);
}
@media (max-width:1080px){.masonry{column-count:2;}}
@media (max-width:640px){.masonry{column-count:1;}}
.ph{
  break-inside:avoid;margin:0 0 var(--gap);position:relative;overflow:hidden;background:#e7e5e2;
  opacity:0;transform:translateY(52px) scale(.985);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
}
.ph.is-in{opacity:1;transform:none;}
/* 相册网格：多列布局下逐张位移入场会导致两列顶部错位，故仅保留淡入 */
.masonry .ph{transform:none;}
.ph img{width:100%;height:auto;display:block;transition:transform 1.4s var(--ease),filter .6s;}
.ph:hover img{transform:scale(1.025);}
.ph::after{
  content:attr(data-cap);position:absolute;left:0;right:0;bottom:0;
  padding:38px 16px 14px;color:#fff;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55));
  opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .45s var(--ease);
  pointer-events:none;
}
.ph.has-cap::after{content:attr(data-cap);}
.ph:hover::after,.ph:focus-visible::after{opacity:1;transform:none;}
.ph:focus-visible{outline:1px solid #fff;outline-offset:-1px;}

/* ---------------- lightbox ---------------- */
.lb{position:fixed;inset:0;z-index:200;background:#0a0a0a;color:#fff;display:flex;flex-direction:column;
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s;}
.lb.is-open{opacity:1;visibility:visible;}
.lb-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;
  padding:calc(14px + env(safe-area-inset-top)) clamp(14px,3vw,30px) 8px;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;}
.lb-album{justify-self:start;max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.5;}
.lb-count{justify-self:center;opacity:.72;font-variant-numeric:tabular-nums;}
.lb-close{justify-self:end;font-size:22px;line-height:1;letter-spacing:0;padding:2px 6px;opacity:.75;transition:opacity .3s,transform .3s;}
.lb-close:hover{opacity:1;transform:rotate(90deg);}
.lb-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:6px clamp(44px,6vw,80px) 4px;}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;opacity:0;transform:scale(.985);
  transition:opacity .45s var(--ease),transform .5s var(--ease);will-change:opacity,transform;}
.lb-img.is-ready{opacity:1;transform:none;}
.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.22);border-radius:50%;
  font-size:15px;opacity:.6;transition:opacity .3s,background .3s,border-color .3s;}
.lb-arrow:hover{opacity:1;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.45);}
.lb-prev{left:clamp(8px,1.6vw,22px);}
.lb-next{right:clamp(8px,1.6vw,22px);}
.lb-strip{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;
  padding:13px clamp(14px,3vw,30px) calc(15px + env(safe-area-inset-bottom));
  scrollbar-width:none;-ms-overflow-style:none;height:clamp(88px,15vh,128px);align-items:center;
  border-top:1px solid rgba(255,255,255,.09);}
.lb-strip::-webkit-scrollbar{display:none;}
.lb-thumb{flex:0 0 auto;height:calc(100% - 4px);padding:0;opacity:.3;transition:opacity .35s var(--ease);filter:grayscale(.25);}
.lb-thumb img{height:100%;width:auto;object-fit:cover;display:block;}
.lb-thumb:hover{opacity:.68;}
.lb-thumb.is-active{opacity:1;filter:none;}
.lb-thumb.is-active img{outline:2px solid rgba(255,255,255,.92);outline-offset:-2px;}

/* ---------------- editorial (about / text pages) ---------------- */
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad);}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 var(--pad);}
.about-grid{
  display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);
  align-items:start;padding:clamp(48px,8vh,96px) 0 clamp(56px,9vh,110px);
}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;gap:28px;}}
.about-figure{position:relative;overflow:hidden;background:#e7e5e2;}
.about-figure img{width:100%;height:auto;}
.about-figure figcaption{margin-top:10px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.about-body h1{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.6vw,46px);line-height:1.16;margin-bottom:22px;}
.about-body p{color:#333;margin-bottom:18px;max-width:62ch;}
.about-body p.lede{font-size:clamp(16px,1.5vw,19px);line-height:1.75;color:#1b1b1b;}
.about-links{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:30px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.about-links a{border-bottom:1px solid var(--line);padding-bottom:4px;transition:color .3s,border-color .3s;}
.about-links a:hover{color:var(--ink);border-color:var(--ink);}
.rule{height:1px;background:var(--line);margin:clamp(40px,7vh,72px) 0;}
.text-page{padding:clamp(120px,16vh,180px) 0 clamp(70px,10vh,120px);}
.text-page h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,52px);line-height:1.12;margin-bottom:10px;}
.text-page .tp-kicker{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}
.text-page article{max-width:70ch;margin-top:34px;}
.text-page article h2{font-family:var(--serif);font-weight:400;font-size:20px;margin:34px 0 10px;}
.text-page article p,.text-page article li{color:#333;margin-bottom:14px;}
.text-page article ul{padding-left:20px;margin-bottom:18px;}
.text-page article a{border-bottom:1px solid var(--line);}
.text-page article a:hover{border-color:var(--ink);}

/* ---------------- footer ---------------- */
.site-foot{background:#0d0d0d;color:#e9e7e4;padding:clamp(54px,9vh,100px) var(--pad) 30px;margin-top:clamp(30px,6vh,60px);}
.foot-top{max-width:1700px;margin:0 auto;display:grid;grid-template-columns:1.25fr 2fr;gap:clamp(28px,5vw,70px);align-items:start;}
@media (max-width:820px){.foot-top{grid-template-columns:1fr;gap:34px;}}
.foot-brand{font-family:var(--serif);font-size:clamp(26px,3vw,40px);line-height:1.14;letter-spacing:.01em;}
.foot-brand span{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.32em;text-transform:uppercase;opacity:.45;margin-top:16px;}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:26px 30px;}
.foot-cols h4{font-size:9px;letter-spacing:.32em;text-transform:uppercase;opacity:.42;margin-bottom:14px;font-weight:400;}
.foot-cols a{display:block;font-size:12px;letter-spacing:.06em;opacity:.74;padding:5px 0;transition:opacity .3s,transform .3s;}
.foot-cols a:hover{opacity:1;transform:translateX(3px);}
.foot-bottom{
  max-width:1700px;margin:clamp(40px,7vh,70px) auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.5;
}
.foot-bottom a:hover{opacity:1;}

/* ---------------- misc ---------------- */
.fade-up{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.fade-up.is-in{opacity:1;transform:none;}
@media (max-width:720px){
  .nav{display:none;}
  .menu-btn{display:block;color:inherit;}
  .lb-stage{padding:0 2px;}
  .lb-arrow{width:36px;height:36px;background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.18);}
  .lb-prev{left:4px;}
  .lb-next{right:4px;}
  .lb-album{display:none;}
  .lb-count{letter-spacing:.16em;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
  .ph{opacity:1;transform:none;}
}

/* =========================================================
   Footprint
   ========================================================= */
.fp-shell{max-width:1700px;margin:0 auto;padding:clamp(28px,4vh,48px) var(--pad) clamp(60px,10vh,110px);}
.fp-figures{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.fp-fig{display:flex;flex-direction:column;gap:7px;padding:clamp(18px,2.4vw,28px) 0;border-right:1px solid var(--line);}
.fp-fig:last-child{border-right:0;}
.fp-fig b{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.5vw,36px);line-height:1;}
.fp-fig em{font-style:normal;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);}
.fp-map-head{padding-left:0;padding-right:0;}
.fp-map-shell{position:relative;background:#e8e6e3;border:1px solid var(--line);overflow:hidden;}
.fp-map-shell .fp-map-wrap,.fp-map-shell .fp-map{position:static;}
.fp-map-shell #fp-live-map{height:clamp(400px,58vh,620px) !important;width:100%;}
.fp-map-shell #fp-legend{position:absolute;z-index:500;top:14px;right:14px;max-width:min(46vw,300px);}
.fp-tl-head{padding-left:0;padding-right:0;}
.fp-timeline{margin-top:6px;}
.fp-year{
  position:sticky;top:64px;z-index:5;background:linear-gradient(180deg,var(--bg) 62%,rgba(246,245,243,0));
  padding:26px 0 8px;margin-top:8px;pointer-events:none;
}
.fp-year span{font-family:var(--serif);font-size:clamp(30px,3.4vw,46px);line-height:1;letter-spacing:-.01em;}
.fp-row{
  display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 28px;
  padding:clamp(16px,2.2vw,24px) 0;border-bottom:1px solid var(--line);
}
.fp-row .fp-when{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding-top:5px;}
.fp-row .fp-place{font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.7vw,23px);line-height:1.32;grid-column:2;}
.fp-row .fp-desc{grid-column:2;color:#3a3a3a;font-size:14px;line-height:1.8;max-width:76ch;margin-top:4px;}
.fp-end{text-align:center;font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:#b9b7b4;padding:44px 0 0;}
@media (max-width:720px){
  .fp-row{grid-template-columns:1fr;gap:4px;}
  .fp-row .fp-when{padding-top:0;}
  .fp-row .fp-place,.fp-row .fp-desc{grid-column:1;}
  .fp-year{top:56px;}
}

/* =========================================================
   Video
   ========================================================= */
.video-grid{
  max-width:1700px;margin:0 auto;padding:clamp(26px,4vh,44px) var(--pad) clamp(60px,10vh,110px);
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:clamp(12px,1.6vw,22px);
}
.video-card{position:relative;}
.video-card.is-wide{grid-column:span 2;}
@media (max-width:640px){.video-card.is-wide{grid-column:span 1;}}
.vc-media{position:relative;aspect-ratio:9/16;overflow:hidden;background:#121212;cursor:pointer;}
.video-card.is-wide .vc-media{aspect-ratio:16/9;}
.vc-media > img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease),filter .5s;}
.vc-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s var(--ease);}
.video-card.is-playing .vc-preview{opacity:1;}
.video-card.is-playing .vc-media > img{transform:scale(1.02);}
.vc-play{
  position:absolute;left:50%;top:50%;translate:-50% -50%;width:54px;height:54px;border-radius:50%;
  border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.22);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  transition:opacity .4s var(--ease),transform .4s var(--ease);
}
.vc-play i{width:0;height:0;border-left:13px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px;}
.video-card:hover .vc-play{transform:translate(-50%,-50%) scale(.92);opacity:0;}
.vc-dur{position:absolute;right:10px;bottom:10px;font-size:10px;letter-spacing:.08em;color:#fff;background:rgba(0,0,0,.5);padding:3px 7px;border-radius:2px;}
.vc-meta{padding:13px 2px 0;}
.vc-meta h3{font-family:var(--serif);font-weight:400;font-size:17px;line-height:1.35;}
.vc-meta p{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:6px;}
.video-empty{max-width:820px;margin:0 auto;padding:clamp(50px,9vh,90px) var(--pad) clamp(70px,12vh,130px);}
.video-empty h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,3vw,36px);line-height:1.25;margin-bottom:22px;}
.video-empty-path{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:#1b1b1b;
  background:#efedea;border:1px solid var(--line);padding:14px 16px;word-break:break-all;
}
.video-steps{list-style:none;margin:34px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line);}
.video-steps li{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start;}
.video-steps li > span{font-size:10px;letter-spacing:.2em;color:#9a9a9a;padding-top:4px;}
.video-steps b{display:block;font-family:var(--serif);font-weight:400;font-size:17px;margin-bottom:6px;}
.video-steps code{display:inline-block;margin-top:2px;font-size:12px;background:#f0efec;border:1px solid var(--line);padding:4px 8px;color:#3a3a3a;word-break:break-all;}
.video-steps div{font-size:13.5px;line-height:1.8;color:#4a4a4a;max-width:62ch;}
.video-empty-note{margin-top:18px;color:#4a4a4a;font-size:13px;line-height:1.85;max-width:64ch;}

.video-theatre{
  position:fixed;inset:0;z-index:210;background:#080808;color:#fff;
  display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s;
}
.video-theatre.is-open{opacity:1;visibility:visible;}
.vt-top{display:grid;grid-template-columns:1fr auto;align-items:center;padding:calc(12px + env(safe-area-inset-top)) clamp(14px,3vw,28px) 6px;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;}
.vt-index{opacity:.6;font-variant-numeric:tabular-nums;}
.vt-close{font-size:22px;line-height:1;padding:2px 6px;opacity:.75;transition:opacity .3s,transform .3s;}
.vt-close:hover{opacity:1;transform:rotate(90deg);}
.vt-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;padding:2px clamp(48px,6vw,84px);}
#vtVideo{max-width:100%;max-height:100%;background:#000;box-shadow:0 30px 80px -40px rgba(0,0,0,.9);}
.vt-arrow{position:absolute;left:50%;translate:-50% 0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);border-radius:50%;font-size:15px;color:#fff;
  opacity:.72;backdrop-filter:blur(6px);transition:opacity .3s,background .3s,transform .3s;}
.vt-arrow:hover{opacity:1;background:rgba(255,255,255,.2);transform:translateY(-1px);}
.vt-prev{top:10px;}
.vt-next{bottom:10px;}
.vt-info{max-width:820px;margin:0 auto;padding:16px var(--pad) 6px;text-align:center;}
.vt-info h2{font-family:var(--serif);font-weight:400;font-size:clamp(18px,2vw,26px);line-height:1.3;}
.vt-info p{font-size:12px;color:rgba(255,255,255,.62);margin-top:7px;line-height:1.7;}
.vt-info #vtMeta{font-size:9px;letter-spacing:.24em;text-transform:uppercase;opacity:.55;}
.vt-strip{display:flex;gap:7px;overflow-x:auto;padding:10px clamp(14px,3vw,28px) calc(12px + env(safe-area-inset-bottom));
  height:clamp(74px,11vh,104px);border-top:1px solid rgba(255,255,255,.09);scrollbar-width:none;}
.vt-strip::-webkit-scrollbar{display:none;}
.vt-thumb{flex:0 0 auto;height:100%;aspect-ratio:9/16;overflow:hidden;opacity:.32;transition:opacity .3s;position:relative;background:#1a1a1a;}
.vt-thumb img{width:100%;height:100%;object-fit:cover;}
.vt-thumb.is-active{opacity:1;}
.vt-thumb.is-active img{outline:2px solid rgba(255,255,255,.9);outline-offset:-2px;}
@media (max-width:720px){
  .video-theatre{grid-template-rows:auto minmax(0,1fr) auto auto;}
  .vt-stage{padding:0 2px 2px;}
  .vt-arrow{display:none;}
  .vt-info{padding:10px var(--pad) 4px;text-align:left;}
  .vt-strip{height:64px;}
}

/* photo captions */
.ph-cap{
  position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;margin:0;
  color:#fff;font-size:12px;line-height:1.6;letter-spacing:.01em;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.66));
  opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease);
  pointer-events:none;
}
.ph:hover .ph-cap,.ph:focus-visible .ph-cap{opacity:1;transform:none;}
.lb-cap{
  position:absolute;left:50%;translate:-50% 0;bottom:calc(clamp(88px,15vh,128px) + 10px);
  max-width:min(70vw,760px);text-align:center;font-size:11.5px;line-height:1.65;
  color:rgba(255,255,255,.78);opacity:0;transition:opacity .4s var(--ease);pointer-events:none;
}
.lb-cap.is-on{opacity:1;}

/* ---------- video: hover caption + ambient theatre backdrop ---------- */
.video-theatre{overflow:hidden;}
.vt-bg{
  position:absolute;inset:-10%;background-position:center;background-size:cover;
  filter:blur(48px) brightness(.32) saturate(1.15);opacity:0;
  transition:opacity .9s var(--ease);z-index:0;pointer-events:none;transform:scale(1.05);
}
.vt-bg.is-on{opacity:1;}
.video-theatre > *:not(.vt-bg){position:relative;z-index:1;}
#vtVideo{background:transparent;}
.video-card .vc-media{transition:box-shadow .55s var(--ease),transform .55s var(--ease);}
.video-card:hover .vc-media{box-shadow:0 30px 64px -38px rgba(0,0,0,.75);}
.vc-hover{
  position:absolute;left:0;right:0;bottom:0;padding:40px 15px 15px;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.74));
  opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.video-card:hover .vc-hover{opacity:1;transform:none;}
.vc-hover h4{font-family:var(--serif);font-weight:400;font-size:16px;line-height:1.3;color:#fff;}
.vc-hover p{margin-top:5px;font-size:11.5px;line-height:1.6;color:rgba(255,255,255,.74);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
@media (hover:none){.vc-hover{display:none;}}

/* =========================================================
   首页模块化（Collections / Films / Footprint）
   ========================================================= */
.brand .brand-name{
  display:block;font-family:var(--serif);font-size:clamp(23px,2.25vw,31px);
  letter-spacing:.01em;text-transform:none;font-weight:400;line-height:1;opacity:1;margin-top:0;
  color:inherit;
}
.brand .brand-tag{display:block;font-size:8.5px;letter-spacing:.3em;text-transform:uppercase;opacity:.55;margin-top:4px;font-weight:400;}

/* hero 居中：文字压在天与地的分界线上 */
.hero.is-center .hero-inner{
  justify-content:center;align-items:center;text-align:center;padding-bottom:0;
  padding-top:0;transform:translateY(-12.5vh);
}
.hero.is-center .hero-kicker{margin-bottom:clamp(16px,2.4vh,26px);opacity:.86;}
.hero.is-center .hero-title{max-width:24em;text-shadow:0 2px 34px rgba(0,0,0,.42);}
.hero.is-center .hero-sub{margin-top:clamp(16px,2.4vh,26px);}
@media (max-width:860px){
  .hero.is-center .hero-title{font-size:clamp(32px,8.6vw,52px);}
  .hero.is-center .hero-inner{transform:translateY(-3vh);}
}

.home-mod{position:relative;}
.home-mod + .home-mod{border-top:1px solid var(--line);}

/* 首页视频空态 */
.video-empty.is-inline{
  max-width:1700px;margin:0;padding:0 var(--pad) clamp(40px,7vh,76px);
}
.video-empty.is-inline h2{font-size:clamp(20px,2.2vw,28px);margin-bottom:10px;}

/* 首页 Footprint 模块 */
.hf-wrap{
  max-width:1700px;margin:0 auto;padding:0 var(--pad) clamp(46px,8vh,92px);
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:clamp(16px,2vw,28px);
  align-items:start;
}
.hf-map{position:relative;background:#e8e6e3;border:1px solid var(--line);overflow:hidden;}
.hf-map .fp-map-wrap,.hf-map .fp-map{position:static;}
.hf-map #fp-live-map{height:clamp(330px,50vh,520px) !important;width:100%;}
.hf-map #fp-legend{display:none;}                 /* 首页右侧已列国家，地图内图例隐藏，避免遮挡 */
.hf-map .fp-tip{font-size:11px;}
.hf-map .marker-cluster{background:rgba(0,0,0,.06);}
.hf-side{display:flex;flex-direction:column;gap:clamp(14px,1.6vw,22px);}
.hf-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.hf-fig{display:flex;flex-direction:column;gap:6px;padding:clamp(14px,1.6vw,20px) 0;border-right:1px solid var(--line);}
.hf-fig:last-child{border-right:0;padding-left:14px;}
.hf-fig:nth-child(2){padding-left:14px;}
.hf-fig b{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.1vw,32px);line-height:1;}
.hf-fig em{font-style:normal;font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);}
.hf-countries{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px;}
.hf-countries li{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:7px 0;border-bottom:1px solid rgba(0,0,0,.06);
  font-size:13px;line-height:1.6;letter-spacing:.02em;
}
.hf-countries li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hf-countries li i{font-style:normal;font-size:10px;letter-spacing:.06em;color:var(--muted);}
@media (max-width:980px){
  .hf-wrap{grid-template-columns:1fr;}
  .hf-countries{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:640px){
  .hf-countries{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hf-fig{padding:12px 0;}
  .hf-fig b{font-size:20px;}
}

/* =========================================================
   2026-11-03 修订：品牌尺寸 / 下拉胶囊 / 单行主标题 / 三列视频
   / 首页足迹三行 / 页脚背景 / 回顶部 / 相册标题图 / 紧凑足迹
   ========================================================= */

/* ---- 品牌：向参考站的 LOGO 尺度靠拢 ---- */
.site-head{padding:20px var(--pad);}
.site-head.is-solid{padding:14px var(--pad);}
.brand .brand-name{
  font-size:clamp(26px,3.55vw,52px);line-height:.98;letter-spacing:-.012em;
  text-transform:none;font-weight:400;transition:font-size .5s var(--ease);
}
.site-head.is-solid .brand .brand-name{font-size:clamp(24px,3vw,44px);}
.brand .brand-tag{font-size:9.5px;letter-spacing:.34em;margin-top:7px;opacity:.62;}
.site-head.is-solid .brand .brand-tag{margin-top:6px;}

/* ---- Photography 下拉：半透明圆角胶囊，与导航项左对齐 ---- */
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;visibility:visible;transform:none;}
.drop{
  left:0;right:auto;translate:0 0;top:calc(100% + 14px);min-width:242px;
  padding:10px;border-radius:18px;border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.42);
  -webkit-backdrop-filter:blur(26px) saturate(180%);backdrop-filter:blur(26px) saturate(180%);
  box-shadow:0 26px 60px -30px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.6);
}
.drop::before{top:-16px;height:16px;}
.drop a{
  padding:10px 13px;border-radius:11px;font-size:11.5px;letter-spacing:.05em;opacity:.78;
  color:#141414;transition:background .3s var(--ease),opacity .3s,transform .3s var(--ease);
}
.drop a:hover{opacity:1;background:rgba(255,255,255,.62);transform:translateX(2px);}
.drop a span{font-size:9px;opacity:.45;}
.site-head.is-solid .drop{background:rgba(255,255,255,.5);border-color:rgba(255,255,255,.55);}

/* ---- 首页主标题：单行、非斜体 ---- */
.hero.is-center .hero-title{
  max-width:none;white-space:nowrap;text-wrap:nowrap;
  font-size:clamp(17px,4.75vw,68px);line-height:1.1;letter-spacing:.002em;font-style:normal;
}
.hero.is-center .hero-title em{font-style:normal;}
@media (max-width:860px){
  .hero.is-center .hero-title{font-size:clamp(15px,4.6vw,42px);white-space:nowrap;}
}

/* ---- 视频：首页三列；Video 页三列居中 ---- */
.video-grid.is-trio{grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:clamp(46px,8vh,92px);}
.video-grid.is-trio .video-card.is-wide,
.video-grid.is-page .video-card.is-wide{grid-column:auto;}
.video-grid.is-trio .vc-media,
.video-grid.is-page .vc-media{aspect-ratio:16/9;}
.video-shell{max-width:1360px;margin:0 auto;}
.video-grid.is-page{
  max-width:1360px;grid-template-columns:repeat(3,minmax(0,1fr));
  padding-left:0;padding-right:0;
}
@media (max-width:1000px){
  .video-grid.is-trio,.video-grid.is-page{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px){
  .video-grid.is-trio,.video-grid.is-page{grid-template-columns:minmax(0,1fr);}
}

/* ---- 首页 Footprint：统计条 → 国家卡片 → 地图 ---- */
.hf-stack{
  max-width:1700px;margin:0 auto;padding:0 var(--pad) clamp(46px,8vh,92px);
  display:flex;flex-direction:column;gap:clamp(16px,2.4vh,26px);
}
.hf-stats .fp-stats{border:0;background:none;padding:0;margin:0;box-shadow:none;}
.hf-stats .fps-nums{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:clamp(10px,2.4vw,30px);
  padding:clamp(14px,2.2vh,22px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.hf-stats .fps-num{display:flex;flex-direction:column;gap:6px;white-space:nowrap;}
.hf-stats .fps-num b{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2.2vw,30px);line-height:1;}
.hf-stats .fps-num em{font-style:normal;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.hf-legend{min-height:0;}
.hf-map #fp-live-map{height:clamp(360px,54vh,560px) !important;}

/* ---- 足迹图例（国家/地区胶囊）：主站统一外观 ---- */
.fp-legend,.hf-legend .fp-legend{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 7px;
  position:static;max-width:none;margin:0;padding:0;line-height:1;
}
.fp-lg-desc{
  display:inline-flex;align-items:center;gap:7px;margin-right:10px;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
}
.fp-lg-a{display:inline-block;width:14px;height:10px;border-radius:2px;background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.35);}
.fp-lg-d{display:inline-block;width:8px;height:8px;border-radius:50%;background:#111;box-shadow:0 0 0 3px rgba(0,0,0,.1);margin-left:6px;}
.fp-lg-chip{
  display:inline-flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;
  border:1px solid var(--line);border-radius:999px;background:#fff;color:#3a3a3a;
  font-size:11.5px;line-height:1;letter-spacing:.02em;white-space:nowrap;
  transition:border-color .3s var(--ease),color .3s,background .3s,transform .3s var(--ease),box-shadow .3s;
}
.fp-lg-chip em{font-style:normal;font-size:10px;color:var(--muted);}
.fp-lg-chip:hover,.fp-lg-chip.on{background:#9d2a22;border-color:#9d2a22;color:#fff;transform:translateY(-1px);box-shadow:0 10px 20px -14px rgba(157,42,34,.75);}
.fp-lg-chip:hover em,.fp-lg-chip.on em{color:rgba(255,255,255,.75);}
.fp-lg-chip.is-home{border-color:rgba(157,42,34,.35);}
.fp-lg-chip.is-home:hover{background:#8c231c;border-color:#8c231c;color:#fff;}
.fp-lg-chip.is-home.on{background:#9d2a22;border-color:#9d2a22;color:#fff;}

/* ---- 地图悬停提示：淡蓝雾面、圆角、分行排版 ---- */
.leaflet-tooltip.fp-tip{
  background:linear-gradient(160deg,rgba(243,250,252,.97) 0%,rgba(216,236,243,.96) 100%);
  border:1px solid rgba(88,134,150,.26);
  border-radius:14px;
  padding:10px 14px;
  color:#18363f;
  white-space:normal;
  width:max-content;
  max-width:230px;
  line-height:1.35;
  box-shadow:0 26px 52px -16px rgba(24,54,63,.46),0 10px 24px -8px rgba(24,54,63,.24),0 2px 6px rgba(24,54,63,.10);
  -webkit-backdrop-filter:blur(12px) saturate(1.15);
  backdrop-filter:blur(12px) saturate(1.15);
  animation:fpTipIn .2s var(--ease) both;
}
@keyframes fpTipIn{from{opacity:.35}to{opacity:1}}
.leaflet-tooltip.fp-tip .fp-tt-n{display:block;font-size:13.5px;font-weight:600;letter-spacing:.04em;color:#14343e;white-space:normal;}
.leaflet-tooltip.fp-tip .fp-tt-y{display:block;white-space:nowrap;margin-top:3px;font-size:10.5px;letter-spacing:.1em;color:#6b8791;font-variant-numeric:tabular-nums;}
.leaflet-tooltip.fp-tip .fp-tt-c{display:block;white-space:nowrap;margin-top:6px;padding-top:6px;border-top:1px solid rgba(88,134,150,.22);font-size:10.5px;letter-spacing:.12em;color:#9d2a22;}
.leaflet-tooltip.fp-tip .fp-tt-c:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:#c0392b;margin-right:5px;vertical-align:1px;}
.leaflet-tooltip-top.fp-tip:before{border-top-color:rgba(216,236,243,.96);}
.leaflet-tooltip-bottom.fp-tip:before{border-bottom-color:rgba(243,250,252,.97);}
.leaflet-tooltip-left.fp-tip:before{border-left-color:rgba(229,243,248,.96);}
.leaflet-tooltip-right.fp-tip:before{border-right-color:rgba(229,243,248,.96);}

/* 国家面悬停：淡蓝雾面胶囊 */
.leaflet-tooltip.fp-ctip{
  background:rgba(229,243,247,.95);
  border:1px solid rgba(88,134,150,.28);
  border-radius:999px;
  padding:5px 12px;
  color:#24444e;
  font-size:10.5px;
  letter-spacing:.08em;
  white-space:nowrap;
  box-shadow:0 18px 36px -14px rgba(24,54,63,.36),0 5px 12px -4px rgba(24,54,63,.18);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.leaflet-tooltip-top.fp-ctip:before{border-top-color:rgba(229,243,247,.95);}
.leaflet-tooltip-bottom.fp-ctip:before{border-bottom-color:rgba(229,243,247,.95);}

/* ---- 主站 Footprint 页：统计 → 国家卡片 → 地图 → 紧凑时间线 ---- */
.fp-stats-bar .fp-stats{border:0;background:none;padding:0;margin:0;box-shadow:none;}
.fp-stats-bar .fps-nums{
  display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(16px,3.6vw,58px);
  padding:clamp(14px,2.2vh,22px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.fp-stats-bar .fps-num{display:flex;flex-direction:column;align-items:center;gap:6px;white-space:nowrap;}
.fp-stats-bar .fps-num b{font-family:var(--serif);font-weight:400;font-size:clamp(19px,1.9vw,26px);line-height:1;}
.fp-stats-bar .fps-num em{font-style:normal;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.fp-legend-bar{margin:clamp(16px,2.4vh,26px) 0 clamp(16px,2.4vh,26px);}
.fp-map-shell #fp-live-map{height:clamp(380px,54vh,560px) !important;}
.fp-year{top:78px;}
.fp-row{
  grid-template-columns:112px minmax(0,1fr);gap:4px 22px;
  padding:clamp(12px,1.5vw,16px) 0;
}
.fp-row .fp-when{font-size:9.5px;letter-spacing:.16em;padding-top:3px;}
.fp-row .fp-place{font-size:clamp(14.5px,1.15vw,16.5px);line-height:1.45;letter-spacing:.005em;}
.fp-row .fp-desc{font-size:12.5px;line-height:1.72;margin-top:3px;max-width:80ch;color:#4a4a4a;}
.fp-year span{font-size:clamp(24px,2.4vw,34px);}
.fp-year{padding:18px 0 6px;}

/* ---- 页脚：照片背景 ---- */
.site-foot{position:relative;overflow:hidden;}
.site-foot::before{
  content:"";position:absolute;inset:0;
  background:url("/wp-content/uploads/photos/Landscape/FOJ_2785-fb6c7c76.webp") center 42%/cover no-repeat;
  opacity:.95;filter:brightness(.96) saturate(1.04);
}
.site-foot::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,10,10,.4) 0%,rgba(10,10,10,.58) 44%,rgba(10,10,10,.84) 100%);
}
.site-foot > *{position:relative;z-index:1;}

/* ---- 回到顶部 ---- */
.to-top{
  position:fixed;right:clamp(14px,2.4vw,30px);bottom:clamp(18px,3.2vh,36px);z-index:95;
  width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(17,17,17,.5);color:#fff;border:1px solid rgba(255,255,255,.3);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .45s var(--ease),transform .45s var(--ease),visibility .45s,background .3s,border-color .3s;
}
.to-top.is-on{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:#111;border-color:#fff;}
.to-top i{width:9px;height:9px;border-left:1px solid currentColor;border-top:1px solid currentColor;transform:rotate(45deg) translate(2px,2px);}
@media (max-width:720px){.to-top{width:40px;height:40px;}}

/* ---- About 照片墙 ---- */
.about-gallery-wrap{padding:0 0 clamp(40px,7vh,84px);}
.about-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.4vw,18px);}
.about-gallery .ag-item{overflow:hidden;background:#e7e5e2;}
.about-gallery img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease);}
.about-gallery .ag-item:hover img{transform:scale(1.03);}
@media (max-width:720px){.about-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ---- 导航在下拉展开时保持可读 ---- */
.has-drop > .nav-link{opacity:.9;}
.drop a:last-child{border-bottom:0;}

/* 页脚照片背景上的文字可读性 */
.site-foot{color:#f4f3f1;}
.site-foot::before{background-position:center 40%;}
.site-foot .foot-top,.site-foot .foot-mid{text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 22px rgba(0,0,0,.6);}
.site-foot .foot-bottom{color:rgba(255,255,255,.5);}

/* ============ 20261103-15：hero 下移 / 足迹单行倒序 / 首页足迹三行 ============ */
/* hero 文字下移：标题压到树林与云彩交界处上方（交界约在画面 48%） */
.hero.is-center .hero-inner{transform:translateY(-7.5vh);}
@media (max-width:860px){
  .hero.is-center .hero-inner{transform:translateY(-1.2vh);}
}

/* Footprint 页：地图更高 */
.fp-map-shell #fp-live-map{height:clamp(560px,74vh,820px) !important;}

/* Footprint 页：一条记录一行，不换行，desc 超长省略 */
.fp-row{
  display:grid;grid-template-columns:74px minmax(0,1fr) minmax(0,1.62fr);
  align-items:baseline;gap:0 22px;padding:9px 0;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.fp-row .fp-when{grid-column:1;margin:0;padding-top:0;font-size:9.5px;letter-spacing:.16em;white-space:nowrap;color:var(--muted);}
.fp-row .fp-place{grid-column:2;margin:0;font-size:clamp(15px,1.26vw,17.5px);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fp-row .fp-desc{grid-column:3;margin:0;font-size:12.5px;line-height:1.5;color:#4a4a4a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:none;}
@media (max-width:860px){
  .fp-row{grid-template-columns:56px minmax(0,1fr);gap:2px 12px;padding:8px 0;}
  .fp-row .fp-when{grid-column:1;grid-row:1;}
  .fp-row .fp-place{grid-column:2;grid-row:1;font-size:14.5px;}
  .fp-row .fp-desc{grid-column:2;grid-row:2;font-size:11.5px;}
}

/* 首页 Footprint 模块：第一行 到访国家/城市，第二行 国家胶囊（两行居中），第三行 地图 */
.hf-stats{display:none;}
.hf-legend{display:flex;justify-content:center;}
.hf-legend #fp-legend{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:8px 9px;max-width:1160px;margin:0 auto;padding:0;text-align:center;
}
.hf-legend .fp-lg-desc{
  flex:0 0 100%;display:flex;justify-content:center;align-items:center;gap:10px;
  font-family:var(--serif);font-size:clamp(14px,1.32vw,17px);letter-spacing:.02em;
  color:var(--ink);margin:0 0 14px;white-space:nowrap;
}
.hf-legend .fp-lg-desc .fp-lg-a{display:none;}
.hf-legend .fp-lg-desc .fp-lg-d{
  display:inline-block;width:3px;height:3px;border-radius:50%;
  background:rgba(0,0,0,.32);box-shadow:none;margin:0;
}
.hf-legend .fp-lg-chip{margin:0;font-size:11.5px;padding:4px 9px;}
.hf-map{width:100%;max-width:820px;margin:0 auto;background:#ebe9e6;}
.hf-map #fp-live-map{height:clamp(320px,44vh,430px) !important;}
@media (max-width:860px){
  .hf-legend #fp-legend{max-width:100%;gap:7px 7px;}
  .hf-legend .fp-lg-desc{font-size:13px;margin-bottom:10px;}
  .hf-map #fp-live-map{height:260px !important;}
}

/* 移动端：标题同样压天际线上方 */
@media (max-width:860px){
  .hero.is-center .hero-inner{transform:translateY(-8vh);}
  .hf-legend .fp-lg-chip{font-size:10.5px;padding:3px 7px;}
  .hf-legend #fp-legend{gap:6px 6px;}
}

/* ============ 20261103-21：字体 / LOGO 位移 / 足迹分行 / 地图铺满 / 页脚过渡 / About 轮播 ============ */

/* ---- 首页/足迹主标题：粗衬线体（保留衬线棱角 + 加厚笔画，自托管） ---- */
@font-face{
  font-family:"Playfair Display 900";
  src:url("/wp-content/uploads/main-site/fonts/playfair-900-latin.woff2") format("woff2");
  font-weight:900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Playfair Display 900";
  src:url("/wp-content/uploads/main-site/fonts/playfair-900-latinext.woff2") format("woff2");
  font-weight:900;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* ---- 20261106-08：页脚收尾语字体（Cormorant Garamond 可变字重，自托管） ---- */
@font-face{
  font-family:"Cormorant Garamond";
  src:url("/wp-content/uploads/main-site/fonts/cormorant-latin-var.woff2") format("woff2");
  font-weight:300 600;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Cormorant Garamond";
  src:url("/wp-content/uploads/main-site/fonts/cormorant-latin-var-italic.woff2") format("woff2");
  font-weight:300 600;font-style:italic;font-display:swap;
}
.hero.is-center .hero-title{
  font-family:"Playfair Display 900",Georgia,"Times New Roman",serif;
  font-weight:900;
  font-size:clamp(17px,4.55vw,68px);
  letter-spacing:.004em;
  line-height:1.06;
  text-shadow:0 2px 40px rgba(0,0,0,.45);
}
.hero.is-center .hero-title em{font-style:normal;}
@media (max-width:860px){
  .hero.is-center .hero-title{font-size:clamp(16px,4.95vw,38px);letter-spacing:0;}
}

/* ---- LOGO 轻微右下位移 ---- */
.site-head .brand{transform:translate(clamp(4px,.7vw,12px),clamp(3px,.55vw,9px));}
.site-head.is-solid .brand{transform:translate(clamp(4px,.7vw,12px),clamp(2px,.4vw,6px));}

/* ---- 足迹图例：整体分组成行，逐行居中 ---- */
.fp-legend,.hf-legend .fp-legend{flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;gap:clamp(8px,1.1vh,12px);}
.fp-lg-desc{gap:9px;margin:0 0 2px;justify-content:center;white-space:normal;}
.fp-lg-stat{display:inline-flex;align-items:center;gap:6px;}
.fp-lg-ic{display:inline-flex;width:14px;height:14px;opacity:.72;}
.fp-lg-ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.fp-lg-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 7px;max-width:100%;}
.hf-legend .fp-lg-desc .fp-lg-d{background:rgba(0,0,0,.3);}
/* 中国：红色背景常驻 */
.fp-lg-chip.is-home{background:#9d2a22;border-color:#9d2a22;color:#fff;}
.fp-lg-chip.is-home em{color:rgba(255,255,255,.72);}
.fp-lg-chip.is-home:hover{background:#8c231c;border-color:#8c231c;color:#fff;}
@media (max-width:860px){
  .fp-lg-row{flex-wrap:wrap;gap:6px;}
}

/* ---- 首页 Footprint 地图：宽高比 2:1，铺满容器两侧不留白，整体略放大 ---- */
.hf-map{width:100%;max-width:1160px;aspect-ratio:2/1;margin:0 auto;background:#ebe9e6;}
.hf-map .fp-map-wrap,.hf-map .fp-map{height:100%;}
.hf-map #fp-live-map{height:100% !important;width:100%;}
.hf-legend #fp-legend{max-width:1160px;}

/* ---- 足迹页：容器收窄 / 地图收窄 / 时间线三列靠近 ---- */
.fp-shell{max-width:1180px;}
.fp-map-shell #fp-live-map{height:clamp(430px,54vh,600px) !important;}
.fp-row{
  grid-template-columns:74px minmax(0,1fr);
  gap:0 14px;align-items:baseline;padding:clamp(10px,1.3vw,14px) 0;
}
.fp-row .fp-when{grid-column:1;grid-row:1;padding-top:1px;}
.fp-row .fp-line{grid-column:2;grid-row:1;display:flex;align-items:baseline;gap:14px;min-width:0;flex-wrap:wrap;}
.fp-row .fp-place{grid-column:auto;grid-row:auto;flex:0 0 auto;}
.fp-row .fp-desc{grid-column:auto;grid-row:auto;margin-top:0;padding-left:0;flex:1 1 240px;max-width:74ch;}
@media (max-width:860px){
  .fp-row{grid-template-columns:56px minmax(0,1fr);gap:2px 10px;}
  .fp-row .fp-when{grid-column:1;grid-row:1;}
  .fp-row .fp-line{grid-column:2;grid-row:1;flex-direction:column;gap:3px;}
  .fp-row .fp-desc{flex:1 1 auto;}
}

/* ---- 首页 Footprint → 页脚：过渡段 ---- */
.home-to-foot{
  position:relative;min-height:clamp(150px,22vh,240px);
  display:flex;align-items:flex-start;justify-content:center;gap:clamp(14px,2vw,26px);
  max-width:100%;margin:0 auto;padding:clamp(30px,5vh,52px) clamp(40px,10vw,170px) 0;
  background:linear-gradient(180deg,#f2f1ee 0%,#e9e7e3 12%,#ada9a6 36%,#4a4b52 64%,#1d1f26 84%,#12141a 100%);
}
.htf-line{flex:1;height:1px;margin-top:7px;background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,.14) 26%,rgba(0,0,0,.14) 74%,rgba(0,0,0,0));}
.htf-label{font-size:9.5px;letter-spacing:.4em;text-transform:uppercase;color:#6b6b6b;white-space:nowrap;}
/* 页脚照片背景与上方深色过渡自然衔接 */
.site-foot{margin-top:0;padding-top:clamp(96px,14vh,150px);}
.site-foot::after{
  background:linear-gradient(180deg,#12141a 0px,rgba(18,20,26,.84) 96px,rgba(12,12,14,.52) 230px,rgba(10,10,10,.66) 55%,rgba(10,10,10,.9) 100%);
}
@media (max-width:860px){
  .home-to-foot{min-height:120px;padding:26px 18px 0;gap:12px;}
  .hf-map{aspect-ratio:1/1;}
  .hf-legend{max-width:100%;}
}

/* ---- About：正文单列 + 下方个人照片轮播 ---- */
.about-grid.is-single{grid-template-columns:minmax(0,1fr);gap:0;}
.about-grid.is-single .about-body{max-width:80ch;}
.about-carousel{max-width:640px;margin:clamp(6px,1.4vh,14px) auto 0;}
.ac-stage{position:relative;aspect-ratio:4/5;overflow:hidden;background:#e7e5e2;}
.ac-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.05s var(--ease);}
.ac-slide.is-on{opacity:1;}
.ac-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.ac-dots{display:flex;justify-content:center;align-items:center;gap:9px;margin-top:16px;}
.ac-dot{width:28px;height:2px;border:0;padding:0;background:rgba(0,0,0,.16);cursor:pointer;transition:background .35s var(--ease),width .35s var(--ease);}
.ac-dot.is-on{background:var(--ink);width:40px;}
@media (max-width:720px){
  .about-carousel{max-width:100%;}
  .ac-stage{aspect-ratio:1/1;}
}

/* ---- 视频：剧场视频懒加载占位（避免一次性下载） ---- */
#vtVideo{background:#0d0d0d;}

/* ---- 移动端防横向溢出：图例换行 + 地图容器自适应 ---- */
.fp-lg-row{flex-wrap:wrap;}
#fp-live-map{max-width:100%;}
@media (max-width:860px){
  .fp-legend,.fp-legend-bar{max-width:100%;}
  .fp-legend{flex-direction:column;align-items:center;width:100%;}
  .fp-legend .fp-lg-row{flex:0 0 auto;width:100%;}
  .fp-lg-chip{flex:0 0 auto;}
  .fp-map-shell,.fp-map-wrap,.fp-map{width:100% !important;max-width:100% !important;}
  .fp-map-shell{padding:0 10px;box-sizing:border-box;}
  body,html{overflow-x:hidden;}
}

/* ---- 移动端图例：改用 grid 自动换行，避免 flex 行溢出 ---- */
@media (max-width:860px){
  .fp-legend{
    display:grid !important;
    grid-template-columns:repeat(auto-fill,minmax(68px,1fr));
    justify-items:stretch;align-content:center;
    gap:6px 5px;width:100%;max-width:100%;
  }
  .fp-legend .fp-lg-row{display:contents !important;}
  .fp-legend .fp-lg-desc{grid-column:1 / -1;justify-content:center;margin:0 0 4px;}
  .fp-legend .fp-lg-chip{justify-content:center;min-width:0;padding:4px 3px;font-size:10.5px;white-space:nowrap;overflow:hidden;}
  .fp-legend .fp-lg-chip em{font-size:9.5px;}
  .fp-legend-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
  .hf-legend{overflow:visible;}
  .fp-map-shell #fp-legend{max-width:100% !important;}
}

/* ============ 20261103-22：桌面图例两行居中、不越界 ============ */
@media (min-width:861px){
  .hf-legend #fp-legend,.fp-legend{display:flex;flex-direction:column;flex-wrap:nowrap !important;width:100%;max-width:1160px;margin:0 auto !important;align-items:center;justify-content:center;gap:8px 9px;}
  .fp-lg-row{display:flex !important;flex-wrap:wrap !important;justify-content:center !important;width:100%;max-width:100%;gap:7px 8px;}
  .fp-lg-desc{justify-content:center;margin:0 0 4px !important;}
}

/* ---- 移动端：足迹记录描述允许换行（原先 nowrap 会被裁切） ---- */
@media (max-width:860px){
  .fp-row .fp-desc{white-space:normal !important;overflow:visible !important;text-overflow:clip !important;min-width:0;word-break:break-word;}
  .fp-row .fp-line{min-width:0;}
  .fp-row .fp-place{white-space:normal !important;overflow:visible !important;}
}

/* ============ 20261103-23：首页图例/回顶按钮被地图遮挡修复 + 封面高清 ============ */
/* 图例与地图之间建立明确的层叠关系：图例永远在地图之上，地图不再撑高容器 */
.hf-stack{isolation:isolate;}
.hf-legend{position:relative;z-index:3;}
.hf-map{position:relative;z-index:1;overflow:hidden;}
.hf-map .fp-map-wrap{position:absolute;inset:0;height:auto !important;}
.hf-map #fp-live-map{height:100% !important;}
.hf-map::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);}
@media (max-width:860px){
  .hf-stack{gap:clamp(22px,3.4vh,32px);}
  .hf-legend{padding-bottom:2px;}
}
/* 矮视口（手机横屏）：地图按视口高度收缩，避免占满整屏压住列表 */
@media (max-height:560px){
  .hf-map{aspect-ratio:auto !important;height:min(62vh,420px);}
}
/* 回顶按钮高于 Leaflet 内部图层面（400–1000），不再被地图盖住 */
.to-top{z-index:1200;}
/* 相册封面：高清版不做额外放大处理 */
.album-card img{image-rendering:auto;}

/* ==========================================================================
   20261104：地图连续性 / 图例间距 / 页脚过渡 / 下拉下划线 / About 两栏 / Stories
   ========================================================================== */

/* ---- 1. 首页图例与地图：去掉横线，仅留间距 ---- */
.hf-stack{gap:clamp(24px,3.4vh,38px);}
.hf-legend{
  padding-bottom:clamp(10px,1.6vh,16px);
  margin-bottom:0;
  border-bottom:0;
}
.hf-map{background:#e9e7e4;}
@media (max-width:860px){
  .hf-stack{gap:24px;}
  .hf-legend{padding-bottom:18px;}
}

/* ---- 2. 足迹页图例与地图：拉开间距 ---- */
.fp-legend-bar{margin:clamp(20px,3vh,30px) 0 clamp(24px,3.6vh,36px) !important;}

/* ---- 3. 地图容器：始终保持连续底图，不留白边 ---- */
#fp-live-map{background:#e9e7e4;}
#fp-live-map .leaflet-container{background:#e9e7e4;}
.fp-map-shell,.hf-map{background:#e9e7e4;}

/* ---- 4. 下拉菜单：去掉黑色下划线 + 关注框 ---- */
.site-head .drop a::after{display:none !important;content:none !important;}
.site-head .drop a:focus{outline:none;}
.site-head .drop a:focus-visible{outline:1px solid rgba(0,0,0,.28);outline-offset:-2px;}

/* ---- 5. 页脚过渡：不用深色渐变板，改由照片自上方渐显，纸面直接溶解进照片 ---- */
.home-to-foot{
  min-height:0;align-items:center;gap:12px;
  padding:clamp(44px,7vh,72px) clamp(24px,7vw,72px) clamp(26px,4vh,42px);
  background:transparent;
}
.htf-label{color:#8a8a8a;font-size:9px;letter-spacing:.34em;text-transform:uppercase;}
.htf-line{height:1px;background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,.13) 30%,rgba(0,0,0,.13) 70%,rgba(0,0,0,0));}

.site-foot{margin-top:0;background:var(--bg);padding-top:clamp(200px,27vh,300px);}
.site-foot::before{
  opacity:1;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.10) 64px,rgba(0,0,0,.32) 130px,rgba(0,0,0,.62) 200px,rgba(0,0,0,.86) 262px,#000 320px);
  mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.10) 64px,rgba(0,0,0,.32) 130px,rgba(0,0,0,.62) 200px,rgba(0,0,0,.86) 262px,#000 320px);
}
.site-foot::after{
  background:linear-gradient(180deg,
    rgba(12,12,14,0) 0px,
    rgba(12,12,14,.06) 80px,
    rgba(12,12,14,.20) 150px,
    rgba(11,11,13,.36) 215px,
    rgba(10,10,12,.54) 280px,
    rgba(10,10,12,.72) 420px,
    rgba(9,9,11,.86) 70%,
    rgba(8,8,9,.94) 100%);
}
@media (max-width:860px){
  .home-to-foot{padding:30px 18px 20px;}
  .site-foot{padding-top:clamp(150px,22vh,210px);}
  .site-foot::before{
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.12) 46px,rgba(0,0,0,.42) 96px,rgba(0,0,0,.78) 146px,#000 196px);
    mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.12) 46px,rgba(0,0,0,.42) 96px,rgba(0,0,0,.78) 146px,#000 196px);
  }
  .site-foot::after{
    background:linear-gradient(180deg,
      rgba(12,12,14,0) 0px,
      rgba(12,12,14,.10) 56px,
      rgba(12,12,14,.30) 110px,
      rgba(11,11,13,.52) 165px,
      rgba(10,10,12,.72) 230px,
      rgba(9,9,11,.88) 70%,
      rgba(8,8,9,.95) 100%);
  }
}

/* ---- 6. About：人像轮播置于正文左侧，高度与文字块匹配 ---- */
.about-grid.is-split{
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(26px,4.4vw,68px);
  align-items:start;
}
.about-grid.is-split .about-carousel{margin:0;max-width:none;}
.about-grid.is-split .ac-stage{aspect-ratio:4/5;}
.about-grid.is-split .ac-dots{justify-content:flex-start;}
@media (max-width:960px){
  .about-grid.is-split{grid-template-columns:minmax(0,1fr);gap:26px;}
  .about-grid.is-split .about-carousel{max-width:540px;margin:0 auto;}
  .about-grid.is-split .ac-dots{justify-content:center;}
}
@media (max-width:720px){
  .about-grid.is-split .ac-stage{aspect-ratio:1/1;}
}

/* ---- 7. Photography：hero 与相册列表之间的区隔 ---- */
.album-head{
  max-width:1360px;margin:0 auto;
  padding:clamp(44px,7vh,84px) var(--pad) clamp(18px,2.6vh,28px);
  display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  border-bottom:1px solid var(--line);
}
.album-head .ah-kicker{font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.album-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.6vw,34px);line-height:1.2;}
.album-head .ah-note{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.hero + .album-head{margin-top:0;}
@media (max-width:720px){
  .album-head{flex-direction:column;align-items:flex-start;gap:8px;}
  .album-head .ah-note{white-space:normal;}
}

/* ---- 8. Stories 页面 ---- */
.stories-lead{
  max-width:1360px;margin:0 auto;padding:clamp(48px,8vh,96px) var(--pad) clamp(10px,2vh,20px);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(28px,5vw,80px);align-items:center;
}
.stories-lead .sl-kicker{font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;}
.stories-lead h1{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.6vw,46px);line-height:1.16;}
.stories-lead p{margin-top:18px;color:#3a3a3a;max-width:56ch;}
@media (max-width:900px){.stories-lead{grid-template-columns:minmax(0,1fr);}}

.wx-card{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,2.2vw,26px);
  align-items:center;padding:clamp(20px,2.6vw,30px);
  border:1px solid var(--line);background:#fff;
}
.wx-card .wx-avatar{width:clamp(64px,7vw,88px);height:clamp(64px,7vw,88px);border-radius:12px;overflow:hidden;background:#eceae7;}
.wx-card .wx-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.wx-card .wx-name{font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.2;}
.wx-card .wx-sign{margin-top:6px;font-size:12.5px;color:#5a5a5a;letter-spacing:.02em;}
.wx-card .wx-stats{display:flex;gap:clamp(16px,2.6vw,34px);margin-top:14px;padding-top:14px;border-top:1px solid rgba(0,0,0,.07);}
.wx-card .wx-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(16px,1.6vw,20px);line-height:1;}
.wx-card .wx-stat span{display:block;margin-top:5px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.wx-card .wx-qr{justify-self:end;width:clamp(84px,9vw,116px);text-align:center;}
.wx-card .wx-qr img{width:100%;height:auto;display:block;border:1px solid var(--line);background:#fff;}
.wx-card .wx-qr span{display:block;margin-top:8px;font-size:9px;letter-spacing:.14em;color:var(--muted);}
@media (max-width:640px){
  .wx-card{grid-template-columns:auto minmax(0,1fr);}
  .wx-card .wx-qr{grid-column:1 / -1;justify-self:center;width:132px;margin-top:6px;}
}

.wx-tabs{display:flex;flex-wrap:wrap;gap:10px;max-width:1360px;margin:0 auto;padding:clamp(22px,3vh,34px) var(--pad) 0;}
.wx-tabs a{
  display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);
  border-radius:999px;background:#fff;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#3a3a3a;
  transition:border-color .3s var(--ease),color .3s,transform .3s var(--ease),box-shadow .3s;
}
.wx-tabs a:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px);box-shadow:0 12px 24px -18px rgba(0,0,0,.6);}
.wx-tabs a i{width:5px;height:5px;border-radius:50%;background:#9d2a22;display:inline-block;}

.stories-grid{
  max-width:1360px;margin:0 auto;padding:clamp(26px,4vh,46px) var(--pad) clamp(56px,9vh,110px);
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px) clamp(18px,2.4vw,32px);
}
@media (max-width:1000px){.stories-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:640px){.stories-grid{grid-template-columns:minmax(0,1fr);}}
.story-card{display:block;}
.story-card .sc-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e7e5e2;}
.story-card .sc-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .6s;}
.story-card:hover .sc-media img{transform:scale(1.04);}
.story-card .sc-body{padding-top:16px;}
.story-card .sc-date{font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);}
.story-card .sc-title{
  margin-top:9px;font-family:var(--serif);font-size:clamp(18px,1.7vw,23px);line-height:1.3;
  transition:color .3s;
}
.story-card:hover .sc-title{color:#9d2a22;}
.story-card .sc-desc{margin-top:9px;font-size:12.5px;line-height:1.74;color:#4a4a4a;}
.story-card .sc-more{margin-top:12px;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);}

/* ---- 8. About 左图右文：两栏等高，人像随正文高度自适应 ---- */
@media (min-width:961px){
  .about-grid.is-split{align-items:stretch;}
  .about-grid.is-split .about-carousel{display:flex;flex-direction:column;height:100%;}
  .about-grid.is-split .ac-stage{aspect-ratio:auto;flex:1 1 auto;min-height:320px;max-height:none;}
}

/* ============================================================
   20261104-07 改版：首页 Stories 模块 / Stories 页重构 / About 法务合并 / 手机端修正
   ============================================================ */

/* ---------- 首页 Stories 模块 ---------- */
.hs-wrap{
  max-width:1700px;margin:0 auto;
  padding:0 var(--pad) clamp(44px,7vh,84px);
  display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);
  gap:clamp(18px,2.6vw,40px);align-items:stretch;
}
.hs-card{
  position:static;display:flex;flex-direction:column;
  padding:clamp(17px,1.7vw,23px);
  border:1px solid rgba(255,255,255,.66);border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,.42));
  backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);
  box-shadow:0 30px 60px -50px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.85);
}
.hs-head{display:flex;align-items:center;gap:12px;}
.hs-logo{width:52px;height:52px;border-radius:13px;object-fit:cover;flex:0 0 auto;box-shadow:0 8px 20px -14px rgba(0,0,0,.75);}
.hs-name{font-family:var(--serif);font-size:19px;line-height:1.2;}
.hs-sign{margin-top:3px;font-size:11.5px;line-height:1.4;color:#5f5f5f;}
.hs-bio{margin-top:14px;font-size:12px;line-height:1.75;color:#5b5b5b;}
.hs-stats{display:flex;gap:clamp(14px,1.8vw,26px);margin-top:14px;padding-top:13px;border-top:1px solid rgba(0,0,0,.08);}
.hs-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:18px;line-height:1;}
.hs-stat span{display:block;margin-top:5px;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.hs-follow{
  align-self:flex-start;display:inline-flex;align-items:center;margin-top:auto;padding-top:9px;padding:9px 17px;border-radius:999px;
  background:#111;color:#fff;font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  transition:background .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease);
}
.hs-follow{margin-top:16px;}
.hs-follow:hover{background:#9d2a22;transform:translateY(-2px);box-shadow:0 16px 28px -20px rgba(0,0,0,.75);}
.hs-cols{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;}
.hs-cols a{
  padding:6px 12px;border-radius:999px;border:1px solid rgba(0,0,0,.14);
  font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#3a3a3a;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);
}
.hs-cols a:hover{background:#111;border-color:#111;color:#fff;transform:translateY(-1px);}
.hs-list{
  padding:clamp(9px,1vw,14px);
  border:1px solid rgba(255,255,255,.62);border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.34));
  backdrop-filter:blur(14px) saturate(125%);-webkit-backdrop-filter:blur(14px) saturate(125%);
  box-shadow:0 26px 60px -54px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.8);
}
.hs-list-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:2px 8px 9px;font-size:8.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);}
.hs-row{
  display:grid;grid-template-columns:62px minmax(0,1fr) 15px;align-items:center;gap:12px;
  padding:7px 8px;border-radius:10px;transition:background .3s var(--ease);
}
.hs-row + .hs-row{box-shadow:inset 0 1px 0 rgba(0,0,0,.045);}
.hs-row:hover{background:rgba(255,255,255,.72);box-shadow:none;}
.hs-thumb{width:62px;aspect-ratio:16/11;border-radius:6px;overflow:hidden;background:#e7e5e2;}
.hs-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.hs-date{display:block;font-size:8px;letter-spacing:.2em;color:var(--muted);}
.hs-title{
  display:-webkit-box;margin-top:2px;font-size:13px;line-height:1.45;color:#262626;
  -webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.hs-row:hover .hs-title{color:#9d2a22;}
.hs-go{font-size:11px;color:var(--muted);opacity:0;transform:translateX(-3px);transition:.3s var(--ease);}
.hs-row:hover .hs-go{opacity:.85;transform:none;}
@media (max-width:1000px){
  .hs-wrap{grid-template-columns:minmax(0,1fr);}
  .hs-card{position:static;}
}
@media (max-width:640px){
  .hs-wrap{padding-bottom:clamp(34px,5vh,52px);}
  .hs-list{padding:7px;}
  .hs-row{grid-template-columns:54px minmax(0,1fr);gap:10px;padding:7px 6px;}
  .hs-thumb{width:54px;}
  .hs-go{display:none;}
  .hs-title{font-size:12.5px;}
  .hs-stats{gap:18px;}
}

/* ---------- Stories 页：半透明圆角卡片体系 ---------- */
.wx-card{
  display:block;
  padding:clamp(18px,2.2vw,26px);
  border:1px solid rgba(255,255,255,.7);border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.66),rgba(255,255,255,.4));
  backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);
  box-shadow:0 34px 70px -56px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.85);
}
.wx-id{display:flex;align-items:center;gap:14px;}
.wx-logo{
  width:clamp(56px,5.6vw,68px);height:clamp(56px,5.6vw,68px);flex:0 0 auto;
  border-radius:16px;object-fit:cover;background:#e7e5e2;
  box-shadow:0 10px 24px -16px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.4);
}
.wx-name{font-family:var(--serif);font-size:clamp(19px,1.9vw,23px);line-height:1.2;}
.wx-sign{margin-top:5px;font-size:11.5px;line-height:1.5;color:#5f5f5f;}
.wx-card .wx-stats{display:flex;gap:clamp(16px,2.4vw,30px);margin-top:18px;padding-top:15px;border-top:1px solid rgba(0,0,0,.08);}
.wx-card .wx-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:19px;line-height:1;}
.wx-card .wx-stat span{display:block;margin-top:5px;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.wx-acts{margin-top:17px;display:flex;flex-wrap:wrap;align-items:center;gap:9px;}
.wx-follow{
  padding:9px 18px;border-radius:999px;background:#111;color:#fff;
  font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  transition:background .35s var(--ease),transform .35s var(--ease);
}
.wx-follow:hover{background:#9d2a22;transform:translateY(-2px);}
.wx-cols{display:flex;flex-wrap:wrap;gap:8px;}
.wx-cols a{
  padding:8px 14px;border-radius:999px;border:1px solid rgba(0,0,0,.14);
  font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#3a3a3a;background:rgba(255,255,255,.5);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease);
}
.wx-cols a:hover{
  background:#111;border-color:#111;color:#fff;transform:translateY(-2px);
  box-shadow:0 16px 26px -20px rgba(0,0,0,.8);
}
/* 左侧三个合集按钮（悬停效果） */
.sl-cols{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px;}
.sl-cols a{
  position:relative;display:inline-flex;align-items:center;gap:9px;
  padding:10px 17px;border-radius:999px;border:1px solid rgba(0,0,0,.16);background:rgba(255,255,255,.55);
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  transition:background .38s var(--ease),color .38s var(--ease),border-color .38s var(--ease),transform .38s var(--ease),box-shadow .38s var(--ease);
}
.sl-cols a i{width:4px;height:4px;border-radius:50%;background:#9d2a22;transition:background .38s var(--ease),transform .38s var(--ease);}
.sl-cols a:hover{background:#111;border-color:#111;color:#fff;transform:translateY(-3px);box-shadow:0 20px 32px -24px rgba(0,0,0,.85);}
.sl-cols a:hover i{background:#fff;transform:scale(1.6);}

/* 文章容器 + 行式列表 */
.stories-shell{
  max-width:1360px;margin:0 auto;
  padding:clamp(6px,1.2vh,14px) var(--pad) clamp(54px,9vh,110px);
}
.ss-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:18px;
  padding:0 6px clamp(11px,1.6vh,16px);
  font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);
}
.stories-list{
  padding:clamp(8px,1vw,14px);
  border:1px solid rgba(255,255,255,.62);border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.36));
  backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%);
  box-shadow:0 44px 90px -70px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.85);
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px clamp(8px,1.4vw,16px);
}
.story-row{
  display:grid;grid-template-columns:92px minmax(0,1fr) 20px;align-items:center;
  gap:clamp(12px,1.5vw,17px);padding:clamp(9px,1.1vw,13px);border-radius:13px;
  transition:background .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease);
}
.story-row:hover{background:rgba(255,255,255,.75);transform:translateY(-1px);box-shadow:0 20px 40px -34px rgba(0,0,0,.7);}
.sr-thumb{width:92px;aspect-ratio:16/11;border-radius:9px;overflow:hidden;background:#e7e5e2;display:block;}
.sr-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease);}
.story-row:hover .sr-thumb img{transform:scale(1.05);}
.sr-body{display:block;min-width:0;}
.sr-date{display:block;font-size:8.5px;letter-spacing:.22em;color:var(--muted);}
.sr-title{
  display:-webkit-box;margin-top:4px;font-family:var(--serif);font-size:clamp(14.5px,1.1vw,16.5px);
  line-height:1.38;color:#222;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  transition:color .3s var(--ease);
}
.story-row:hover .sr-title{color:#9d2a22;}
.sr-desc{
  display:-webkit-box;margin-top:4px;font-size:11.5px;line-height:1.6;color:#6a6a6a;
  -webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.sr-go{font-size:12px;color:var(--muted);opacity:0;transform:translateX(-4px);transition:.3s var(--ease);}
.story-row:hover .sr-go{opacity:.85;transform:none;}

/* 合集页头部 */
.collection-lead{max-width:1360px;margin:0 auto;padding:clamp(42px,7vh,86px) var(--pad) clamp(16px,3vh,28px);}
.collection-lead h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.2vw,54px);line-height:1.08;margin-top:8px;}
.cl-desc{margin-top:14px;max-width:62ch;font-size:14.5px;line-height:1.75;color:#3a3a3a;}
.cl-back{margin-top:19px;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);}
.cl-back a:hover{color:#9d2a22;}

/* ---------- About：法务条款内联 ---------- */
.about-legal{margin-top:clamp(46px,8vh,96px);padding-top:clamp(26px,4vh,42px);border-top:1px solid var(--line);}
.al-item{padding:clamp(24px,3.6vh,40px) 0;border-bottom:1px solid rgba(0,0,0,.06);}
.al-item:last-child{border-bottom:0;}
.al-item h2{
  display:flex;align-items:baseline;gap:14px;
  font-family:var(--serif);font-weight:400;font-size:clamp(21px,2.3vw,29px);line-height:1.2;
  scroll-margin-top:96px;
}
.al-item h2 span{font-family:var(--sans);font-size:9px;letter-spacing:.24em;color:var(--muted);}
.al-body{margin-top:15px;max-width:78ch;font-size:14px;line-height:1.85;color:#3c3c3c;}
.al-body p{margin:0 0 12px;}
.al-body a{color:#9d2a22;text-decoration:underline;text-underline-offset:2px;}
.al-top{margin-top:13px;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}

/* ---------- 手机端 MENU 下拉：分组子链接 ---------- */
.sheet-sub{display:flex;flex-wrap:wrap;gap:4px 14px;margin:-4px 0 8px 2px;}
.sheet-sub a{
  font-family:var(--sans);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  opacity:.45;line-height:1.7;
}
.sheet-sub a:hover{opacity:1;}

/* ---------- 手机端：首屏文字左下 ---------- */
@media (max-width:860px){
  body .hero.is-center .hero-inner{
    justify-content:flex-end;align-items:flex-start;text-align:left;
    transform:none;padding:0 clamp(20px,6vw,30px) clamp(96px,15vh,126px);
  }
  body .hero.is-center .hero-kicker{opacity:.9;}
  body .hero.is-center .hero-title{
    white-space:normal;text-wrap:balance;
    font-size:clamp(25px,7.4vw,34px);line-height:1.16;letter-spacing:.002em;
    max-width:12.5em;text-shadow:0 2px 30px rgba(0,0,0,.5);
  }
  body .hero.is-center .hero-sub{margin-top:14px;}
}

/* ---------- 两列相册：统一等行网格（手机竖屏/横屏、平板） ---------- */
@media (max-width:1080px){
  .masonry{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:8px;row-gap:8px;column-count:auto;
  }
  .masonry .ph{margin:0;aspect-ratio:3/2;break-inside:auto;}
  .masonry .ph img{width:100%;height:100%;object-fit:cover;}
}

/* ---------- 手机端：相册与相片两列 ---------- */
@media (max-width:640px){
  .album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .album-card .ac-media{aspect-ratio:3/4;}
  .album-card .ac-meta{padding:10px 10px 11px;gap:6px;}
  .album-card .ac-title{font-size:15px;line-height:1.22;}
  .album-card .ac-count{display:none;}
  .stories-list{grid-template-columns:minmax(0,1fr);}
  .story-row{grid-template-columns:74px minmax(0,1fr);gap:11px;padding:9px;}
  .sr-thumb{width:74px;}
  .sr-desc,.sr-go{display:none;}
  .sr-title{font-size:14.5px;}
  .wx-acts{gap:8px;}
  .wx-card .wx-stats{gap:18px;}
}

/* 法务正文内的小标题 */
.al-body h2{
  font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:#111;margin:22px 0 8px;
}
.al-body h2:first-child{margin-top:0;}
.al-body ul{margin:0 0 12px;padding-left:18px;}
.al-body li{margin-bottom:6px;}

/* =========================================================
   2026-11-04 第二轮：About 手机版式 / 首页 Stories 精简 / 二维码 / 视频卡片
   ========================================================= */

/* ---- 首页 Stories：左侧仅公众号信息（LOGO+统计+二维码），右侧最新 5 篇 ---- */
.hs-wrap{grid-template-columns:minmax(0,300px) minmax(0,1fr);}
.hs-info{
  display:flex;align-items:flex-start;gap:14px;margin-top:14px;padding-top:13px;
  border-top:1px solid rgba(0,0,0,.08);
}
.hs-stats{flex:1 1 auto;flex-direction:column;gap:9px;margin-top:0;padding-top:0;border-top:0;}
.hs-stat b{font-size:15.5px;}
.hs-stat span{margin-top:2px;font-size:7.5px;}
.hs-qrwrap{flex:0 0 auto;width:112px;text-align:center;}
.hs-qr{
  display:block;position:relative;border-radius:9px;overflow:hidden;cursor:zoom-in;
  border:1px solid rgba(0,0,0,.1);background:#fff;
}
.hs-qr img{width:100%;display:block;}
.hs-qr::after{content:none;}
.hs-qr-zoom,.wx-qr-zoom{
  position:absolute;right:4px;bottom:4px;width:17px;height:17px;border-radius:50%;
  background:rgba(20,20,20,.62);display:flex;align-items:center;justify-content:center;
}
.hs-qr-zoom::before,.wx-qr-zoom::before{
  content:"";width:5px;height:5px;border:1.2px solid #fff;border-radius:50%;
}
.hs-qr-zoom::after,.wx-qr-zoom::after{
  content:"";position:absolute;right:4px;bottom:4px;width:4px;height:1.2px;background:#fff;
  transform:rotate(45deg);transform-origin:right center;
}
.hs-qr-cap{
  display:block;margin-top:5px;font-size:7.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
}
.hs-follow{margin-top:auto;align-self:flex-start;}
.hs-list-head a{color:inherit;}
.hs-list-head a:hover{color:var(--ink);}
.hs-txt{min-width:0;}
@media (max-width:1000px){
  .hs-wrap{grid-template-columns:minmax(0,1fr);}
  .hs-qrwrap{width:112px;}
}

/* ---- Stories 页公众号卡：红色小鱼 LOGO + 可点开放大的二维码 ---- */
.wx-logo{border-radius:0;object-fit:contain;background:transparent;box-shadow:none;}
.wx-acts{margin-top:16px;align-items:flex-end;}
.wx-qrwrap{display:flex;align-items:center;gap:10px;margin-left:auto;}
.wx-qr{
  display:block;position:relative;width:76px;border-radius:9px;overflow:hidden;cursor:zoom-in;
  border:1px solid rgba(0,0,0,.1);background:#fff;
}
.wx-qr img{width:100%;display:block;}
.wx-qr::after{content:none;}
.wx-qr-cap{
  font-size:7.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  line-height:1.6;max-width:54px;
}

/* ---- About 手机端：顶图人物居黄金分割点；介绍区左图右文 ---- */
.hero-media picture{display:block;width:100%;height:100%;}
@media (max-width:780px){
  .hero.is-about .hero-media img{object-position:82% 46%;}
  .about-grid.is-split{
    grid-template-columns:minmax(0,42%) minmax(0,1fr);
    gap:13px;align-items:start;
  }
  .about-grid.is-split .about-portrait{position:static;}
  .about-grid.is-split .about-carousel{max-width:none;margin:0;display:block;height:auto;}
  .about-grid.is-split .ac-stage{aspect-ratio:3/4;flex:none;min-height:0;}
  .about-grid.is-split .about-portrait .section-kicker{font-size:8px;letter-spacing:.24em;margin-bottom:7px;}
  .about-grid.is-split .about-body .section-kicker{font-size:8px;letter-spacing:.24em;margin-bottom:7px;}
  .about-grid.is-split .about-body h1{font-size:18px;line-height:1.3;letter-spacing:0;}
  .about-grid.is-split .about-body .lede{font-size:11.5px;line-height:1.7;margin-top:9px;}
  .about-grid.is-split .about-body p{font-size:11px;line-height:1.75;margin-top:8px;}
  .about-grid.is-split .about-links{margin-top:12px;gap:6px 10px;flex-wrap:wrap;}
  .about-grid.is-split .about-links a{font-size:9px;letter-spacing:.12em;}
}

/* ---- 视频缩略图：手机端卡片容器化 ---- */
@media (max-width:780px){
  .video-grid,.video-grid.is-page,.video-grid.is-trio{padding-left:16px;padding-right:16px;gap:16px;}
  .video-card{
    background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;overflow:hidden;
    padding:8px 8px 0;box-shadow:0 22px 46px -40px rgba(0,0,0,.55);
  }
  .vc-media{border-radius:12px;}
  .vc-meta{padding:11px 5px 13px;}
  .vc-meta h3{font-size:15px;}
}

/* =========================================================
   20261104-10：视频容器（桌面+手机）/ About 下拉右对齐 /
   首页 Stories 栏宽与居中 / 页脚照片底对齐版权横线 /
   Stories 卡片去按钮重排 + 半透明背景
   ========================================================= */

/* ---- 1. 视频缩略图：卡片容器，桌面与手机统一 ---- */
.video-card{
  background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;overflow:hidden;
  padding:8px 8px 0;box-shadow:0 22px 46px -40px rgba(0,0,0,.55);
  transition:box-shadow .5s var(--ease),transform .5s var(--ease);
}
.video-card:hover{box-shadow:0 30px 58px -40px rgba(0,0,0,.6);transform:translateY(-2px);}
.video-card .vc-media{border-radius:11px;}
.video-card:hover .vc-media{box-shadow:none;}
.vc-meta{padding:12px 7px 15px;}
.vc-meta h3{font-size:16px;}
@media (max-width:780px){
  .video-grid,.video-grid.is-page,.video-grid.is-trio{padding-left:16px;padding-right:16px;gap:16px;}
  .vc-meta{padding:11px 5px 13px;}
  .vc-meta h3{font-size:15px;}
}

/* ---- 2. 顶部 About 下拉：右对齐，避免溢出 ---- */
.nav > li.has-drop:last-child .drop{left:auto;right:0;translate:0 0;}
.drop{max-width:calc(100vw - 2 * var(--pad));}

/* ---- 3. 首页 Stories：左栏加宽、右栏收窄、整体居中 ---- */
.hs-wrap{
  max-width:1280px;margin:0 auto;
  grid-template-columns:minmax(0,460px) minmax(0,1fr);
  gap:clamp(22px,2.6vw,40px);
}
#stories .section-head{max-width:1280px;padding-left:0;padding-right:0;}
.hs-logo{width:56px;height:56px;}
.hs-name{font-size:20px;}
.hs-info{gap:16px;margin-top:16px;padding-top:15px;}
.hs-qrwrap{width:126px;}
.hs-stat b{font-size:17px;}
.hs-stat span{font-size:8px;}
.hs-card{padding:clamp(18px,1.8vw,24px) clamp(18px,1.8vw,24px) clamp(20px,2vw,26px);}
@media (max-width:1000px){
  .hs-wrap{grid-template-columns:minmax(0,1fr);max-width:none;}
  .hs-qrwrap{width:118px;}
}

/* ---- 4. 页脚：照片底部收在版权横线，横线以下为深色底 ---- */
.site-foot{background:var(--bg);padding-top:0;}
.site-foot::before,.site-foot::after{content:none;}
.foot-stage{position:relative;overflow:hidden;padding-top:clamp(200px,27vh,300px);padding-bottom:clamp(40px,7vh,70px);}
.foot-stage::before{
  content:"";position:absolute;inset:0;
  background:url("/wp-content/uploads/photos/Landscape/FOJ_2785-fb6c7c76.webp") center 42%/cover no-repeat;
  opacity:.95;filter:brightness(.96) saturate(1.04);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.10) 64px,rgba(0,0,0,.32) 130px,rgba(0,0,0,.62) 200px,rgba(0,0,0,.86) 262px,#000 320px);
  mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.10) 64px,rgba(0,0,0,.32) 130px,rgba(0,0,0,.62) 200px,rgba(0,0,0,.86) 262px,#000 320px);
}
.foot-stage::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(12,12,14,0) 0px,
    rgba(12,12,14,.06) 80px,
    rgba(12,12,14,.20) 150px,
    rgba(11,11,13,.36) 215px,
    rgba(10,10,12,.54) 280px,
    rgba(10,10,12,.70) 420px,
    rgba(9,9,11,.80) 70%,
    rgba(8,8,9,.84) 100%);
}
.foot-stage > *{position:relative;z-index:1;}
.site-foot .foot-bottom{color:#6d6d6d;border-top-color:rgba(0,0,0,.14);margin-top:0;}
@media (max-width:860px){
  .foot-stage{padding-top:clamp(150px,22vh,210px);padding-bottom:clamp(30px,5vh,46px);}
  .foot-stage::before{
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.12) 46px,rgba(0,0,0,.42) 96px,rgba(0,0,0,.78) 146px,#000 196px);
    mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.12) 46px,rgba(0,0,0,.42) 96px,rgba(0,0,0,.78) 146px,#000 196px);
  }
}

/* ---- 5. Stories 页公众号卡：去按钮后重排 + 半透明 ---- */
.wx-card{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(16px,2vw,24px) clamp(20px,2.6vw,34px);
  align-items:start;
  padding:clamp(20px,2.4vw,28px);
  border:1px solid rgba(255,255,255,.55);border-radius:20px;
  background:linear-gradient(150deg,rgba(255,255,255,.40),rgba(255,255,255,.18));
  -webkit-backdrop-filter:blur(22px) saturate(130%);backdrop-filter:blur(22px) saturate(130%);
  box-shadow:0 30px 64px -52px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.7);
}
.wx-card .wx-id{grid-column:1;grid-row:1;}
.wx-card .wx-stats{grid-column:1;grid-row:2;margin-top:0;}
.wx-qrwrap{
  grid-column:2;grid-row:1 / span 2;align-self:center;margin:0;
  display:flex;flex-direction:column;align-items:center;gap:9px;
}
.wx-qr{width:clamp(88px,9vw,112px);}
.wx-qr-cap{max-width:none;text-align:center;}
@media (max-width:900px){
  .wx-card{grid-template-columns:minmax(0,1fr);}
  .wx-qrwrap{grid-column:1;grid-row:3;flex-direction:row;justify-content:flex-start;gap:10px;margin-top:2px;}
  .wx-qr{width:96px;}
}

/* =========================================================
   20261104-15：页脚横向铺满 / LOGO 与菜单阴影及悬停 /
   About 手机顶图取右半 / 中文字体 / 容器 25% 透明
   ========================================================= */

/* ---- 1. 页脚：照片横向铺满整个视口 ---- */
.site-foot{padding-left:0;padding-right:0;}
.foot-stage{padding-left:var(--pad);padding-right:var(--pad);}
.site-foot .foot-bottom{padding-left:var(--pad);padding-right:var(--pad);box-sizing:border-box;}

/* ---- 2. 左上 LOGO 与右上菜单：阴影 + 悬停 ---- */
.site-head .brand{
  transition:filter .45s var(--ease),opacity .45s var(--ease);
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.9)) drop-shadow(0 4px 12px rgba(0,0,0,.72));
}
.site-head .brand:hover{opacity:.9;filter:drop-shadow(0 3px 4px rgba(0,0,0,.8)) drop-shadow(0 10px 28px rgba(0,0,0,.6));}
.site-head .nav a,.site-head .menu-btn{
  text-shadow:0 1px 2px rgba(0,0,0,.9),0 3px 12px rgba(0,0,0,.68);
  transition:opacity .3s var(--ease),text-shadow .3s var(--ease),transform .35s var(--ease);
}
.site-head .nav a:hover,.site-head .menu-btn:hover{
  transform:translateY(-1px);
  text-shadow:0 2px 4px rgba(0,0,0,.82),0 8px 26px rgba(0,0,0,.6);
}
.site-head .drop a{text-shadow:none;}
.site-head .drop a:hover{text-shadow:none;transform:none;}
.site-head.is-solid .brand{filter:none;}
.site-head.is-solid .brand:hover{filter:drop-shadow(0 3px 8px rgba(0,0,0,.16));}
.site-head.is-solid .nav a,.site-head.is-solid .menu-btn{text-shadow:none;}
.site-head.is-solid .nav a:hover,.site-head.is-solid .menu-btn:hover{text-shadow:0 2px 8px rgba(0,0,0,.14);}

/* ---- 3. About 手机端顶图：沿用电脑端大图，横向取右半（人物与车） ---- */
@media (max-width:780px){
  .hero.is-about .hero-media img{object-position:90% 50%;}
}

/* ---- 4. 容器 25% 透明 ---- */
.hs-card{background:rgba(255,255,255,.25);}
.hs-list{background:rgba(255,255,255,.25);}
.video-card{background:rgba(255,255,255,.25);}
.wx-card{background:rgba(255,255,255,.25);}

/* =========================================================
   20261104-17：页脚照片铺满到页面最底部（含版权行），不留白
   ========================================================= */
.site-foot{position:relative;overflow:hidden;background:var(--bg);}
.foot-stage{position:static;overflow:visible;}
.foot-stage::before,.foot-stage::after{content:none;}
.site-foot::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:url("/wp-content/uploads/photos/Landscape/FOJ_2785-fb6c7c76.webp") center 42%/cover no-repeat;
  opacity:.95;filter:brightness(.96) saturate(1.04);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.10) 64px,rgba(0,0,0,.32) 130px,rgba(0,0,0,.62) 200px,rgba(0,0,0,.86) 262px,#000 320px);
  mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.10) 64px,rgba(0,0,0,.32) 130px,rgba(0,0,0,.62) 200px,rgba(0,0,0,.86) 262px,#000 320px);
}
.site-foot::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(12,12,14,0) 0px,
    rgba(12,12,14,.05) 80px,
    rgba(12,12,14,.16) 150px,
    rgba(11,11,13,.26) 215px,
    rgba(10,10,12,.34) 280px,
    rgba(10,10,12,.40) 420px,
    rgba(9,9,11,.46) 70%,
    rgba(8,8,9,.50) 100%);
}
.site-foot > *{position:relative;z-index:1;}
.site-foot .foot-bottom{
  color:rgba(255,255,255,.72);border-top-color:rgba(255,255,255,.20);
  margin-top:0;padding-bottom:2px;
  text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 14px rgba(0,0,0,.5);
}
.site-foot .foot-bottom a{color:rgba(255,255,255,.86);}
@media (max-width:860px){
  .site-foot::before{
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.12) 46px,rgba(0,0,0,.42) 96px,rgba(0,0,0,.78) 146px,#000 196px);
    mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0px,rgba(0,0,0,.12) 46px,rgba(0,0,0,.42) 96px,rgba(0,0,0,.78) 146px,#000 196px);
  }
}

/* =========================================================
   20261104-19：
   1) Photography 页 Selected work / N collections 与相册网格左对齐
   2) 首页 Stories 标题与公众号卡片与其他模块对齐 + 卡片排版重排
   3) About 手机横屏保持左右结构；删除 More frames
   ========================================================= */

/* ---- 1. Photography：标题块与相册卡片同一左基准 ---- */
.album-head{
  max-width:none;border-bottom:0;position:relative;
  padding-left:var(--pad);padding-right:var(--pad);
}
.album-head::after{
  content:"";position:absolute;left:var(--pad);right:var(--pad);bottom:0;height:1px;background:var(--line);
}

/* ---- 2. 首页 Stories：section-head 回到统一版心 ---- */
#stories .section-head{max-width:none;padding-left:var(--pad);padding-right:var(--pad);}
#stories .hs-wrap{max-width:none;grid-template-columns:minmax(0,420px) minmax(0,1fr);}

/* ---- 2b. 公众号卡片排版：头部 / 三项数据横排 / 二维码横条 ---- */
#stories .hs-card{justify-content:space-between;}
#stories .hs-head{gap:14px;}
#stories .hs-logo{width:54px;height:54px;border-radius:14px;}
#stories .hs-name{font-size:20px;}
#stories .hs-sign{margin-top:4px;font-size:12px;}
.hs-info{
  display:block;margin-top:18px;padding-top:15px;border-top:1px solid rgba(0,0,0,.09);
}
.hs-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
  flex:none;margin:0;padding:0;border-top:0;
}
.hs-stats .hs-stat b{font-size:20px;line-height:1;}
.hs-stats .hs-stat span{margin-top:5px;font-size:7.5px;letter-spacing:.2em;}
.hs-qrwrap{
  width:100%;flex:none;display:flex;align-items:center;gap:14px;margin-top:18px;padding-top:16px;
  border-top:1px solid rgba(0,0,0,.09);text-align:left;
}
.hs-qr{width:96px;flex:0 0 auto;}
.hs-qr-cap{margin-top:0;font-size:8px;letter-spacing:.22em;line-height:1.9;text-align:left;}
@media (max-width:1000px){
  #stories .hs-wrap{grid-template-columns:minmax(0,1fr);max-width:none;}
  .hs-qrwrap{width:100%;}
}

/* ---- 3. About：手机横屏仍为左图右文 ---- */
@media (max-width:960px) and (orientation:landscape){
  .about-grid.is-split{
    grid-template-columns:minmax(0,40%) minmax(0,1fr);
    gap:clamp(14px,2.2vw,26px);align-items:start;
  }
  .about-grid.is-split .about-portrait{position:static;}
  .about-grid.is-split .about-carousel{max-width:none;margin:0;display:block;height:auto;}
  .about-grid.is-split .ac-stage{aspect-ratio:3/4;flex:none;min-height:0;}
  .about-grid.is-split .ac-dots{justify-content:flex-start;}
  .about-grid.is-split .about-portrait .section-kicker,
  .about-grid.is-split .about-body .section-kicker{font-size:8px;letter-spacing:.24em;margin-bottom:7px;}
  .about-grid.is-split .about-body h1{font-size:clamp(17px,2.4vw,22px);line-height:1.3;letter-spacing:0;}
  .about-grid.is-split .about-body .lede{font-size:12px;line-height:1.7;margin-top:9px;}
  .about-grid.is-split .about-body p{font-size:11.5px;line-height:1.75;margin-top:8px;}
  .about-grid.is-split .about-links{margin-top:12px;gap:6px 10px;flex-wrap:wrap;}
  .about-grid.is-split .about-links a{font-size:9px;letter-spacing:.12em;}
}
/* ---- 2c. 公众号二维码：解除 .ph 入场动画导致的不可见与零高度 ---- */
.hs-qr{
  opacity:1;transform:none;aspect-ratio:1/1;padding:0;background:#fff;
}
.hs-qr img{width:100%;height:100%;object-fit:contain;display:block;}
.hs-qr::after{content:none;}
.hs-qr-cap{max-width:none;}

/* ---- About 页：事实行（based in / since / gear / contact） ---- */
.about-facts{margin:26px 0 24px;border-top:1px solid var(--line);}
.about-facts > div{
  display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.about-facts dt{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;opacity:.48;padding-top:3px;line-height:1.4;}
.about-facts dd{margin:0;font-size:clamp(13.5px,1.05vw,14.5px);line-height:1.6;}
@media (max-width:640px){
  .about-facts > div{grid-template-columns:minmax(0,1fr);gap:3px;padding:9px 0;}
  .about-facts dt{font-size:8.5px;letter-spacing:.16em;padding-top:0;}
  .about-facts dd{font-size:12.5px;line-height:1.55;overflow-wrap:anywhere;}
}

/* ---- 4. 首页 Stories：二维码居中、Scan 置于其下；右侧文章两列共 10 篇（一列 5 篇） ---- */
.hs-qrwrap{
  flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;text-align:center;
}
.hs-qr{width:clamp(108px,8.6vw,130px);flex:0 0 auto;margin:0 auto;}
.hs-qr-cap{margin:0;text-align:center;letter-spacing:.28em;}

.hs-rows{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,auto);
  grid-auto-flow:column;column-gap:clamp(14px,1.6vw,26px);
}
.hs-rows .hs-row:nth-child(-n+5){box-shadow:inset 0 1px 0 rgba(0,0,0,.045),inset -1px 0 0 rgba(0,0,0,.045);}
.hs-rows .hs-row:nth-child(1){box-shadow:inset -1px 0 0 rgba(0,0,0,.045);}
@media (max-width:1000px){
  .hs-rows{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row;column-gap:0;}
  .hs-rows .hs-row:nth-child(-n+5){box-shadow:inset 0 1px 0 rgba(0,0,0,.045);}
  .hs-rows .hs-row:nth-child(1){box-shadow:none;}
  .hs-qr{width:118px;}
}

/* ---- 5. 手机端（竖屏/横屏）：公众号卡片与文章列表强制横排两栏 ---- */
@media (max-width:1000px){
  #stories .hs-wrap{
    grid-template-columns:minmax(0,45%) minmax(0,1fr);gap:12px;align-items:start;max-width:none;
  }
  #stories .hs-card{padding:14px 13px 16px;justify-content:flex-start;}
  #stories .hs-head{gap:9px;align-items:center;}
  #stories .hs-logo{width:36px;height:36px;border-radius:10px;}
  #stories .hs-name{font-size:14.5px;line-height:1.25;}
  #stories .hs-sign{font-size:9.5px;line-height:1.5;margin-top:3px;}
  .hs-info{margin-top:11px;padding-top:10px;}
  .hs-stats{gap:5px;}
  .hs-stats .hs-stat b{font-size:14px;}
  .hs-stats .hs-stat span{margin-top:4px;font-size:6px;letter-spacing:.1em;}
  .hs-qrwrap{margin-top:11px;padding-top:10px;gap:7px;}
  .hs-qr{width:min(100%,104px);}
  .hs-qr-cap{font-size:6.5px;letter-spacing:.2em;line-height:1.7;}
  .hs-list{padding:8px;min-width:0;}
  .hs-list-head{padding:0 2px 7px;font-size:6.5px;letter-spacing:.12em;gap:6px;}
  .hs-rows{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row;column-gap:0;}
  .hs-rows .hs-row:nth-child(-n+5){box-shadow:inset 0 1px 0 rgba(0,0,0,.045);}
  .hs-rows .hs-row:nth-child(1){box-shadow:none;}
  .hs-row{grid-template-columns:36px minmax(0,1fr);gap:8px;padding:6px 2px;align-items:center;}
  .hs-thumb{width:36px;border-radius:4px;}
  .hs-date{font-size:6.5px;letter-spacing:.14em;}
  .hs-title{font-size:10px;line-height:1.35;margin-top:2px;}
  .hs-go{display:none;}
  .hs-txt{min-width:0;}
}
/* 手机横屏/小平板（≥640 宽）仍两模块横排，卡片放宽、文章恢复 2×5 */
@media (min-width:640px) and (max-width:1000px){
  #stories .hs-wrap{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:16px;}
  #stories .hs-logo{width:44px;height:44px;}
  #stories .hs-name{font-size:17px;}
  #stories .hs-sign{font-size:11px;}
  .hs-qr{width:120px;}
  .hs-rows{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,auto);grid-auto-flow:column;column-gap:16px;}
  .hs-rows .hs-row:nth-child(-n+5){box-shadow:inset 0 1px 0 rgba(0,0,0,.045),inset -1px 0 0 rgba(0,0,0,.045);}
  .hs-rows .hs-row:nth-child(1){box-shadow:inset -1px 0 0 rgba(0,0,0,.045);}
  .hs-row{grid-template-columns:46px minmax(0,1fr);gap:9px;padding:7px 4px;}
  .hs-thumb{width:46px;}
  .hs-title{font-size:11.5px;}
  .hs-date{font-size:7.5px;}
  .hs-list-head{font-size:7.5px;letter-spacing:.16em;}
}

/* 摄影页首屏诗句：覆盖 compact 大标题字号 */
.hero .hero-title.is-poem,
.hero.is-compact .hero-title.is-poem{font-size:clamp(17px,2.15vw,30px);line-height:1.62;font-weight:400;font-style:italic;letter-spacing:.01em;max-width:32em;text-wrap:pretty}
@media (max-width:780px){
  .hero .hero-title.is-poem,
  .hero.is-compact .hero-title.is-poem{font-size:clamp(15px,4.2vw,19px);line-height:1.55;letter-spacing:0}
}

/* 页脚 Elsewhere 二维码弹层 + About 事实行链接 */
.about-facts dd a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.3);padding-bottom:1px}
.foot-cols a.foot-qr{cursor:pointer}
.foot-qr-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;background:rgba(10,15,21,.88);padding:24px}
.foot-qr-modal.is-open{display:flex}
.foot-qr-box{position:relative;background:#fff;border-radius:10px;padding:16px 16px 10px;max-width:min(86vw,340px);box-shadow:0 24px 60px rgba(0,0,0,.34)}
.foot-qr-box img{display:block;width:100%;height:auto;border-radius:4px}
.foot-qr-cap{margin:9px 0 0;text-align:center;color:#8a8a8a;font-size:12px;line-height:1.6;letter-spacing:.04em}
.foot-qr-close{position:absolute;top:6px;right:6px;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:rgba(17,17,17,.78);color:#fff;font-size:12px;line-height:26px;text-align:center;cursor:pointer}
.foot-qr-close:hover{background:#111}

@media (max-width:560px){
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));}
  .foot-cols > div:last-child{grid-column:1 / -1;}
}

/* =========================================================
   20261105-37：地图移动端留白 / 地图覆盖固定导航 / 首页地图重复署名 / 公众号卡片居中
   ========================================================= */

/* 1) 足迹页地图建立独立层叠上下文，Leaflet 内部 pane（z-index 400~1000）不再压住固定导航 */
#post_content .fp-live-map,
.fp-map-shell .fp-live-map,
#fp-live-map{
  position:relative;
  z-index:0;
  isolation:isolate;
}

/* 2) 移动端地图两侧留白：去掉移动端额外的 10px 内缩，仅保留页面版心边距 */
@media (max-width:860px){
  .fp-map-shell{padding-left:0 !important;padding-right:0 !important;}
  .fp-map-shell .fp-map-wrap,
  .fp-map-shell .fp-map{width:100% !important;max-width:100% !important;}
}

/* 3) 首页公众号信息卡片：内容整体居中，账号名加粗 */
#stories .hs-card{text-align:center;}
#stories .hs-head{justify-content:center;text-align:center;}
#stories .hs-head > div{text-align:left;}
#stories .hs-name{font-weight:700;letter-spacing:.01em;text-align:left;}
#stories .hs-sign{text-align:left;}
#stories .hs-info{text-align:center;}
#stories .hs-stats{justify-items:center;text-align:center;}
#stories .hs-stat{text-align:center;align-items:center;}
#stories .hs-qrwrap{justify-content:center;text-align:center;}
#stories .hs-qr{text-align:center;}
#stories .hs-qr-cap{text-align:center;}

/* ---- 2026-11-06 文案改版：For Jean 右侧题记 / 页脚收尾语 ---- */
.foot-brand{
  font-family:"Playfair Display 900",Georgia,"Times New Roman",serif;
  font-weight:900;font-size:clamp(28px,3.4vw,46px);line-height:1.06;letter-spacing:.002em;
}
.foot-brand em{font-style:normal;}

/* For Jean：左侧常规标题（与其他合集页一致）+ 右侧题记 */
.hero.is-right .hero-inner{align-items:flex-end;text-align:right;}
.hero.is-right .hero-title,
.hero.is-right .hero-sub,
.hero.is-right .hero-credit{margin-left:auto;}
.hero.is-right::after{
  background:
    linear-gradient(90deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.18) 42%,rgba(0,0,0,.60) 100%),
    linear-gradient(180deg,rgba(0,0,0,.40) 0%,rgba(0,0,0,.10) 32%,rgba(0,0,0,.20) 60%,rgba(0,0,0,.66) 100%);
}
.hero.has-aside .hero-title{max-width:8em;}
.hero.has-aside::after{
  background:
    linear-gradient(90deg,rgba(0,0,0,.16) 0%,rgba(0,0,0,.10) 38%,rgba(0,0,0,.34) 74%,rgba(0,0,0,.58) 100%),
    linear-gradient(180deg,rgba(0,0,0,.46) 0%,rgba(0,0,0,.12) 30%,rgba(0,0,0,.22) 58%,rgba(0,0,0,.74) 100%);
}
.hero-aside{
  position:absolute;right:var(--pad);bottom:clamp(38px,6vh,64px);
  max-width:min(40vw,28em);text-align:right;color:#fff;
}
.hero-aside .ha-text{
  font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  font-weight:400;font-style:italic;font-size:clamp(17px,1.9vw,26px);
  line-height:1.5;letter-spacing:.01em;text-shadow:0 2px 30px rgba(0,0,0,.42);
}
.hero-aside .ha-credit{
  margin-top:clamp(12px,1.8vh,18px);font-family:var(--sans);font-size:10px;
  letter-spacing:.16em;opacity:.62;font-style:normal;text-shadow:0 1px 16px rgba(0,0,0,.45);
}
.hero-aside .ha-credit em{font-style:italic;opacity:.9;}
.loaded .hero-inner .reveal:nth-child(5){transition-delay:.86s;}
.hero-credit{
  margin-top:clamp(14px,2.2vh,22px);font-family:var(--sans);font-size:10px;
  letter-spacing:.16em;opacity:.62;font-style:normal;text-transform:none;
  text-shadow:0 1px 16px rgba(0,0,0,.45);
}
.hero-credit em{font-style:italic;opacity:.9;}
@media (max-width:780px){
  .hero.is-right .hero-inner{align-items:flex-start;text-align:left;}
  .hero.is-right .hero-title,
  .hero.is-right .hero-sub,
  .hero.is-right .hero-credit{margin-left:0;}
  .hero.has-aside .hero-title{max-width:100%;}
  .hero.has-aside::after{
    background:linear-gradient(180deg,rgba(0,0,0,.52) 0%,rgba(0,0,0,.18) 26%,rgba(0,0,0,.34) 56%,rgba(0,0,0,.84) 100%);
  }
  .hero-aside{position:static;max-width:100%;text-align:left;margin-top:clamp(16px,2.6vh,24px);}
  .hero-aside .ha-text{font-size:clamp(15px,4.1vw,18px);line-height:1.45;}
  .hero-aside .ha-credit{margin-top:10px;font-size:9.5px;letter-spacing:.12em;}
  .foot-brand{font-size:clamp(28px,7.8vw,40px);}
  .hero-credit{font-size:9.5px;letter-spacing:.12em;}
}
