/* ═══ 基础 ═══ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper);
  scroll-padding-top:calc(var(--topbar-h) + var(--navbar-h) + 12px)}
body{
  margin:0;min-width:320px;overflow-x:hidden;
  color:var(--ink);background:var(--paper);
  font-family:var(--sans);line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
img{max-width:100%;display:block}
/* 组件上写了 display:flex/grid 会盖掉 [hidden]，这里兜一次 */
[hidden]{display:none !important}
:focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px}
.stage :focus-visible,.page-hero :focus-visible,.hero :focus-visible{outline-color:var(--gold-bright)}
h1,h2,h3,.lede{text-wrap:balance}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

.container{width:min(calc(100% - 44px),var(--container));margin-inline:auto}
.container-wide{width:min(calc(100% - 44px),var(--container-wide));margin-inline:auto}
.section{position:relative;padding:104px 0}
.section-tight{padding:72px 0}
.stage{background:var(--stage);color:var(--paper-on-stage)}
.paper-hi{background:var(--paper-hi);border-block:1px solid var(--rule)}

/* ═══ 排版指纹 1–5 ═══ */
.kicker{margin:0 0 20px;font:600 .74rem/1.4 var(--num);
  letter-spacing:.24em;text-transform:uppercase;color:var(--gold-ink)}
.stage .kicker,.page-hero .kicker{color:var(--gold)}
.title{margin:0;font:500 clamp(2rem,4vw,3.4rem)/1.32 var(--serif);letter-spacing:.06em}
.title-sm{margin:0;font:500 clamp(1.5rem,2.6vw,2.1rem)/1.4 var(--serif);letter-spacing:.05em}
.gold-rule{display:block;width:96px;height:1px;margin:28px 0;background:var(--gold-ink)}
.stage .gold-rule,.page-hero .gold-rule{background:var(--gold)}
.lede{max-width:640px;margin:22px 0 0;color:var(--ink-muted);font-size:1.02rem}
.stage .lede,.page-hero .lede{color:var(--on-stage-muted)}
.photo-frame{margin:0;border:1px solid var(--gold);background:var(--stage-2);
  overflow:hidden;box-shadow:0 24px 60px rgba(28,26,22,.22);-webkit-touch-callout:none}
.photo-frame img{width:100%;height:auto}
.num{font-family:var(--num);letter-spacing:.13em}

.skip-link{position:fixed;left:16px;top:-80px;z-index:2000;padding:12px 18px;
  color:var(--paper-hi);background:var(--stage);border-radius:6px;transition:top .2s}
.skip-link:focus{top:12px}

/* ═══ 顶栏 ═══ */
.topbar{position:fixed;inset:0 0 auto;z-index:900;padding-top:env(safe-area-inset-top);
  background:rgba(251,248,242,.94);border-bottom:1px solid var(--rule);
  backdrop-filter:blur(14px);transition:background .25s,border-color .25s}
.topbar.at-top{background:transparent;border-bottom-color:transparent;backdrop-filter:none}
.topbar-inner{height:var(--topbar-h);display:flex;align-items:center;gap:14px}
.brand{display:inline-flex;align-items:center;gap:11px;min-height:var(--tap);flex:none;
  font:600 1rem/1 var(--serif);letter-spacing:.14em;color:var(--ink);
  transition:color .25s,text-shadow .25s}
.topbar.at-top .brand{color:var(--paper-hi);text-shadow:0 1px 14px rgba(0,0,0,.6)}
.brand-seal{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:50%;
  background:var(--gold-ink);color:var(--paper-hi);font:500 14px/1 var(--serif);transition:.25s}
.topbar.at-top .brand-seal{background:var(--gold-bright);color:var(--stage)}

.nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 12px;
  font-size:.92rem;letter-spacing:.03em;color:var(--ink-muted);transition:color .2s}
.nav a:hover{color:var(--gold-ink)}
.nav a[aria-current="page"]{color:var(--ink);font-weight:600;box-shadow:inset 0 -1px 0 var(--gold-ink)}
.topbar.at-top .nav a{color:rgba(247,234,212,.84);text-shadow:0 1px 12px rgba(0,0,0,.75)}
.topbar.at-top .nav a:hover,.topbar.at-top .nav a[aria-current="page"]{color:var(--gold-bright)}
.topbar.at-top .nav a[aria-current="page"]{box-shadow:inset 0 -1px 0 var(--gold-bright)}

.topbar-cta{flex:none;display:inline-flex;align-items:center;min-height:var(--tap);padding:0 18px;
  margin-left:8px;border:1px solid var(--stage);border-radius:2px;cursor:pointer;
  color:var(--paper-hi);background:var(--stage);font-size:.9rem;letter-spacing:.06em;
  transition:transform .2s,background .25s,border-color .25s,color .25s}
.topbar.at-top .topbar-cta{color:var(--stage);background:var(--gold-bright);border-color:var(--gold-bright)}
.topbar-cta:hover{transform:translateY(-1px)}

/* 移动端导航条：横向可滚，不做汉堡菜单 */
.navbar{position:fixed;left:0;right:0;z-index:899;display:none;
  top:calc(var(--topbar-h) + env(safe-area-inset-top));height:var(--navbar-h);
  background:var(--paper-hi);border-bottom:1px solid var(--rule)}
.navbar-scroll{display:flex;height:100%;align-items:stretch;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-inline:14px}
.navbar-scroll::-webkit-scrollbar{display:none}
.navbar-scroll a{flex:none;display:inline-flex;align-items:center;padding:0 14px;
  font-size:.88rem;letter-spacing:.02em;color:var(--ink-muted);white-space:nowrap}
.navbar-scroll a[aria-current="page"]{color:var(--ink);font-weight:600;
  box-shadow:inset 0 -2px 0 var(--gold-ink)}

/* ═══ 按钮 ═══ */
.btn{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:0 26px;border:1px solid transparent;border-radius:2px;cursor:pointer;
  font-weight:600;letter-spacing:.06em;text-align:center;
  transition:transform .2s,background .2s,border-color .2s,color .2s}
.btn:hover{transform:translateY(-2px)}
.btn-gold{color:var(--stage);background:var(--gold-bright);box-shadow:0 14px 34px rgba(0,0,0,.35)}
.btn-ghost{color:var(--paper-on-stage);border-color:rgba(237,201,141,.5);background:rgba(9,7,6,.4)}
.btn-ghost:hover{border-color:var(--gold-bright)}
.btn-ink{color:var(--paper-hi);background:var(--stage);border-color:var(--stage)}
.btn-ink-ghost{color:var(--ink);border-color:var(--rule);background:transparent}
.btn-ink-ghost:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.btn-sm{min-height:var(--tap);padding:0 18px;font-size:.9rem}

/* ═══ 通栏英雄区（各页共用，背景走 atmos 图） ═══ */
.page-hero{position:relative;overflow:hidden;color:var(--paper-on-stage);background:var(--stage);
  display:grid;align-items:end;
  padding:calc(var(--topbar-h) + var(--navbar-h) + env(safe-area-inset-top) + 88px) 0 64px}
.page-hero-bg{position:absolute;inset:0;z-index:0}
.page-hero-bg img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:var(--focal,center)}
.page-hero-bg::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(9,7,6,.80) 0%,rgba(9,7,6,.30) 36%,rgba(9,7,6,.88) 100%),
    linear-gradient(90deg,rgba(9,7,6,.76) 0%,rgba(9,7,6,.10) 64%)}
.page-hero .container,.page-hero .container-wide{position:relative;z-index:2}
.page-hero .title{text-shadow:0 2px 30px rgba(0,0,0,.7)}
.page-hero .lede{color:rgba(247,234,212,.88);text-shadow:0 1px 18px rgba(0,0,0,.8)}
.grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}

/* ═══ 首屏（首页专用）══════════════════════════════════════
   桌面：左文右图。竖构图的插画在 1.4 的宽屏里全幅铺底必被裁烂
   （门和狗不可能同框），所以给它一整根立柱，当插画版面用。
   窄屏：退回全幅铺底 + 遮罩，此时容器本身就是竖的，构图能成立。
   ═════════════════════════════════════════════════════════ */
.hero{position:relative;overflow:hidden;color:var(--paper-on-stage);background:var(--stage);
  min-height:760px;min-height:max(760px,100svh);
  display:grid;grid-template-columns:1.02fr .98fr}
@supports not (height:100svh){.hero{min-height:max(760px,100vh)}}
.hero-copy{position:relative;z-index:2;display:grid;align-content:center;
  padding-block:calc(var(--topbar-h) + env(safe-area-inset-top) + 64px) 56px;
  padding-right:clamp(32px,5vw,72px);
  padding-left:max(22px,calc((100vw - var(--container-wide)) / 2));
  background:
    radial-gradient(120% 88% at 8% 10%,rgba(46,35,23,.9) 0%,rgba(9,7,6,0) 62%),
    linear-gradient(165deg,var(--stage-2) 0%,var(--stage) 62%,#050403 100%)}
.hero-plate{position:relative;overflow:hidden;background:var(--stage)}
/* 必须绝对定位：img 的 height:100% 在自动高度的网格行里会退化成固有高度，
   一张 1400×2497 的竖图能把首屏撑到 1231px 高。 */
.hero-plate img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:var(--focal,50% 34%)}
.hero-plate::after{content:"";position:absolute;inset:0;
  background:
    /* 顶部压暗，给顶栏导航一块稳定的深色底，免得压在亮云上看不清 */
    linear-gradient(180deg,rgba(9,7,6,.74) 0%,rgba(9,7,6,0) 20%),
    linear-gradient(90deg,var(--stage) 0%,rgba(9,7,6,.62) 12%,rgba(9,7,6,0) 44%),
    linear-gradient(0deg,rgba(9,7,6,.6) 0%,rgba(9,7,6,0) 32%)}
.hero-inner{position:relative;z-index:2;max-width:620px}
.hero-kicker{margin:0 0 22px;color:var(--gold-bright);font:600 .72rem/1.5 var(--num);letter-spacing:.28em}
.hero-line{margin:0;font:500 clamp(1.9rem,4.4vw,3.15rem)/1.5 var(--serif);
  letter-spacing:.07em;text-shadow:0 2px 30px rgba(0,0,0,.8)}
.hero-sub{margin:20px 0 0;max-width:30em;color:rgba(247,234,212,.88);
  font-size:1rem;text-shadow:0 1px 18px rgba(0,0,0,.85)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-note{position:relative;z-index:2;margin:44px 0 0;max-width:34em;
  color:rgba(247,234,212,.78);font-size:.86rem;letter-spacing:.04em;
  padding-top:18px;border-top:1px solid rgba(205,165,103,.28)}
.hero-note b{font-weight:600;color:var(--gold-bright)}

/* ═══ 通用两栏 ═══ */
.split{display:grid;grid-template-columns:.82fr 1.18fr;gap:72px;align-items:start}
.split-even{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}

/* ═══ 标签 ═══ */
.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;
  font:600 .72rem/1.4 var(--num);letter-spacing:.14em;text-transform:uppercase;border-radius:2px}
.badge-free{color:var(--paper-hi);background:var(--gold-ink)}
.badge-verified{color:var(--verified);background:var(--verified-soft);border:1px solid rgba(63,125,92,.32)}
.badge-line{color:var(--gold-ink);border:1px solid var(--gold-ink);background:transparent}
.stage .badge-line,.page-hero .badge-line{color:var(--gold);border-color:var(--gold)}

/* ═══ 卡片通用 ═══ */
.cards{display:grid;gap:20px}
.cards-3{grid-template-columns:repeat(3,1fr)}
.cards-2{grid-template-columns:repeat(2,1fr)}
.card{padding:32px 28px;border:1px solid var(--rule);background:var(--paper-hi)}
.card h3{margin:0 0 12px;font:500 1.24rem/1.5 var(--serif);letter-spacing:.04em}
.card p{margin:0;color:var(--ink-muted);font-size:.95rem}
.card strong{color:var(--ink);font-weight:600}
.card-no{display:block;margin-bottom:14px;color:var(--gold-ink);font:600 .76rem/1 var(--num);letter-spacing:.2em}

/* ═══ v2 继承的列表组件 ═══ */
.define-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.define-list li{display:grid;grid-template-columns:120px 1fr;gap:26px;align-items:baseline;
  padding:22px 0;border-bottom:1px solid var(--rule)}
.define-list b{color:var(--gold-ink);font:600 .8rem/1.7 var(--num);letter-spacing:.16em}
.define-list span{color:var(--ink-muted)}
.timeline{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.timeline li{display:grid;grid-template-columns:96px 1fr;gap:24px;align-items:baseline;
  padding:18px 0;border-bottom:1px solid var(--rule)}
.timeline b{color:var(--gold-ink);font-family:var(--num);letter-spacing:.13em;font-weight:600}
.timeline span{color:var(--ink-muted);font-size:.95rem}
.pullquote{margin:44px 0 0;padding:30px 32px;border-left:2px solid var(--gold-ink);
  background:var(--paper-hi);font:500 1.06rem/2 var(--serif);letter-spacing:.02em}
.pullquote + .pullquote{margin-top:20px}
.privacy-list{margin:0;padding:0;list-style:none;display:grid;gap:14px}
.privacy-list li{display:grid;grid-template-columns:22px 1fr;gap:14px;color:var(--ink-muted)}
.privacy-list li::before{content:"—";color:var(--gold-ink)}
.privacy-list strong{color:var(--ink);font-weight:600}
.stage .privacy-list li{color:var(--on-stage-muted)}
.stage .privacy-list li::before{color:var(--gold)}
.stage .privacy-list strong{color:var(--paper-on-stage)}

/* ═══ 联系区 ═══ */
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.qr-block{display:grid;justify-items:center;gap:16px;padding:34px;
  border:1px solid rgba(205,165,103,.42);background:var(--stage-2)}
.qr-block img{width:240px;height:240px;background:#fff}
.qr-hint{margin:0;color:var(--on-stage-muted);font-size:.86rem;text-align:center}
.wechat-row{display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:84px;margin-top:26px;padding:14px 16px 14px 22px;
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04)}
.wechat-label{display:block;color:var(--on-stage-faint);font-size:.68rem;letter-spacing:.15em}
.wechat-value{display:block;margin-top:2px;font:600 1.1rem/1.3 var(--num);letter-spacing:.14em}
.copy-btn{min-width:76px;min-height:var(--tap);padding:0 16px;cursor:pointer;
  color:var(--gold-bright);border:1px solid rgba(237,201,141,.36);background:rgba(237,201,141,.08)}
.copy-status{min-height:24px;margin:12px 0 0;color:var(--gold-bright);font-size:.86rem}
.contact-note{margin:26px 0 0;color:var(--on-stage-muted);font-size:.95rem}

/* ═══ 页脚 + 常驻信任栏 ═══ */
.trustbar{padding:48px 0;background:var(--paper-sink);border-top:1px solid var(--rule)}
.trustbar-inner{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:start}
.trustbar-title{margin:0;font:600 .74rem/1.6 var(--num);letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-ink);white-space:nowrap}
footer{padding:34px 0 calc(34px + env(safe-area-inset-bottom));
  border-top:1px solid var(--rule);background:var(--paper-hi)}
.footer-nav{display:flex;flex-wrap:wrap;gap:4px 20px;margin-bottom:22px;font-size:.9rem}
.footer-nav a{color:var(--ink-muted);min-height:36px;display:inline-flex;align-items:center}
.footer-nav a:hover{color:var(--gold-ink)}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;
  color:var(--ink-muted);font-size:.8rem}
.footer-inner a:hover{color:var(--gold-ink)}

/* ═══ 移动端 sticky CTA ═══ */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:800;display:none;
  padding-bottom:env(safe-area-inset-bottom);
  background:var(--stage);border-top:1px solid var(--gold);
  transform:translateY(110%);transition:transform .3s ease}
.sticky-cta.show{transform:none}
.sticky-inner{display:flex;height:56px}
.sticky-cta button,.sticky-cta a{display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--tap);border:0;cursor:pointer;
  color:var(--stage);background:var(--gold-bright);font-weight:600;letter-spacing:.05em}
.sticky-cta .sticky-main{flex:65}
.sticky-cta .sticky-alt{flex:35;color:var(--paper-on-stage);background:transparent;
  border-left:1px solid rgba(205,165,103,.35);font-weight:500}

/* ═══ 二维码浮层 ═══ */
.qr-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(9,7,6,.92);backdrop-filter:blur(10px)}
.qr-modal.open{display:flex}
.qr-modal-card{width:min(380px,100%);padding:32px 26px;text-align:center;
  border:1px solid rgba(205,165,103,.42);background:var(--stage-2);color:var(--paper-on-stage)}
.qr-modal-card h2{margin:0 0 20px;font:500 1.24rem/1.5 var(--serif);letter-spacing:.06em}
.qr-modal-card .qr-block{border:0;background:transparent;padding:0}
.qr-close{min-width:100px;min-height:var(--tap);margin-top:22px;padding:0 20px;cursor:pointer;
  color:var(--paper-on-stage);border:1px solid rgba(255,255,255,.2);background:transparent}

/* ═══ 入场动画 ═══ */
.reveal{opacity:0;transform:translateY(20px);
  transition:opacity .8s ease,transform .9s cubic-bezier(.2,.74,.2,1)}
.reveal.visible{opacity:1;transform:none}

/* ═══ 响应式 ═══ */
@media (max-width:1120px){
  .nav a{padding:0 9px;font-size:.87rem}
  .topbar-cta{padding:0 14px;font-size:.86rem}
}
@media (max-width:960px){
  /* 窄屏退回全幅铺底：容器变竖，构图重新成立 */
  .hero{grid-template-columns:1fr}
  .hero-plate{position:absolute;inset:0;z-index:0}
  .hero-plate img{object-position:var(--focal-sm,50% 40%)}
  /* 上端压暗给顶栏，中段够读字，下端放亮一点让画面里的狗露出来 */
  .hero-plate::after{background:
    linear-gradient(180deg,
      rgba(9,7,6,.90) 0%,
      rgba(9,7,6,.46) 24%,
      rgba(9,7,6,.56) 56%,
      rgba(9,7,6,.78) 100%)}
  .hero-copy{background:none;padding-inline:22px;
    padding-block:calc(var(--topbar-h) + var(--navbar-h) + env(safe-area-inset-top) + 56px) 48px}
  .hero-line,.hero-sub{text-shadow:0 2px 30px rgba(0,0,0,.9)}
  .hero-note{border-top-color:rgba(205,165,103,.42);color:rgba(247,234,212,.9);
    text-shadow:0 1px 16px rgba(0,0,0,.9)}

  .split,.split-even{grid-template-columns:1fr;gap:34px}
  .cards-3,.cards-2{grid-template-columns:1fr;gap:14px}
  .contact-grid{grid-template-columns:1fr;gap:36px}
  .trustbar-inner{grid-template-columns:1fr;gap:20px}
  .sticky-cta{display:block}
  body{padding-bottom:60px}
}
@media (max-width:860px){
  .nav{display:none}
  .navbar{display:block}
  body{padding-top:var(--navbar-h)}
  .topbar,.topbar.at-top{background:rgba(251,248,242,.94);
    border-bottom-color:var(--rule);backdrop-filter:blur(14px)}
  .topbar.at-top .brand{color:var(--ink);text-shadow:none}
  .topbar.at-top .brand-seal{background:var(--gold-ink);color:var(--paper-hi)}
  .topbar.at-top .topbar-cta{color:var(--paper-hi);background:var(--stage);border-color:var(--stage)}
  .topbar-inner{gap:10px}
}
@media (max-width:720px){
  .container,.container-wide{width:min(calc(100% - 36px),var(--container))}
  .section{padding:76px 0}
  .section-tight{padding:56px 0}
  .brand{font-size:.9rem;letter-spacing:.1em}
  .brand span:last-child{max-width:8.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar-cta{padding:0 13px;font-size:.82rem}
  .hero{min-height:640px;min-height:max(640px,100svh)}
  .hero-copy{padding-inline:18px}
  .page-hero{padding-top:calc(var(--topbar-h) + var(--navbar-h) + env(safe-area-inset-top) + 56px);
    padding-bottom:48px}
  .hero-actions{flex-direction:column;align-items:stretch}
  .btn{width:100%}
  .hero-actions .btn-ghost{display:none}
  .define-list li,.timeline li{grid-template-columns:1fr;gap:6px}
  .pullquote{padding:24px 22px;font-size:1rem}
  .qr-block{padding:24px}
  .qr-block img{width:200px;height:200px}
  .footer-inner{flex-direction:column;align-items:center;text-align:center}
  .footer-nav{justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .btn:hover,.topbar-cta:hover{transform:none}
}
