/* 拍搭 paida 官网样式 · 2026-10-06 重写
   方向：现场、两个人、互拍。浅色是「相纸」，深色是「暗房」，一种柿红强调色。
   母题：取景框的三分线与对焦角，只在主视觉和两人插图里出现。
   无渐变、无外部字体。动效只动 transform / opacity，reduced-motion 全关。
   法务页 /terms/ /privacy/ /support/ 由 tools/legal/build.py 生成，版式只靠本文件 .legalpage 一节。 */

/* ── tokens ─────────────────────────────────────────── */
:root{
  --paper:#F6F1E9; --paper-2:#EDE5D8; --paper-3:#E3D9C9;
  --ink:#1D1A16; --ink-2:#423C34; --ink-3:#6B6357;
  --line:rgba(29,26,22,.14); --line-2:rgba(29,26,22,.28);
  --accent:#B23F1B; --accent-ink:#FFF8F2; --accent-soft:rgba(178,63,27,.10);
  --band:#1D1A16; --band-ink:#F1EAE0; --band-ink-2:#BFB5A7;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Segoe UI",system-ui,sans-serif;
  --serif:"Iowan Old Style","New York",ui-serif,Georgia,"Songti SC","STSong",serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;
  --display:var(--sans);
  --ease:cubic-bezier(.2,.7,.2,1);
  --t1:160ms; --t2:240ms; --t3:600ms;
  --pad:clamp(20px,5vw,64px);
  --page:1240px;
  --r:10px;
  --navh:64px;
  color-scheme:light;
}
:lang(en){--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;--display:var(--serif)}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#15120F; --paper-2:#1D1915; --paper-3:#28231D;
    --ink:#F1EAE0; --ink-2:#CFC6B9; --ink-3:#9C9285;
    --line:rgba(241,234,224,.12); --line-2:rgba(241,234,224,.26);
    --accent:#E8794F; --accent-ink:#1A110C; --accent-soft:rgba(232,121,79,.12);
    --band:#0E0C0A; --band-ink:#F1EAE0; --band-ink-2:#A89E90;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#15120F; --paper-2:#1D1915; --paper-3:#28231D;
  --ink:#F1EAE0; --ink-2:#CFC6B9; --ink-3:#9C9285;
  --line:rgba(241,234,224,.12); --line-2:rgba(241,234,224,.26);
  --accent:#E8794F; --accent-ink:#1A110C; --accent-soft:rgba(232,121,79,.12);
  --band:#0E0C0A; --band-ink:#F1EAE0; --band-ink-2:#A89E90;
  color-scheme:dark;
}

/* ── base ───────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--navh) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink-2);font:400 17px/1.75 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}
ol,ul{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
b,strong{font-weight:600;color:var(--ink)}
h1,h2,h3{color:var(--ink);text-wrap:balance}
p,li,dd{text-wrap:pretty}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
html{scrollbar-color:var(--line-2) transparent}
.wrap{width:100%;max-width:calc(var(--page) + var(--pad)*2);margin-inline:auto;padding-inline:var(--pad)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}

/* 正文链接：下划线从左向右长出来。linear-gradient(currentColor,currentColor) 只是画一条 1px 实线，不是装饰渐变 */
.tl,.prose a,.foot a,.privacy-more a,.get-mail{color:var(--ink);text-decoration:none;
  background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;
  transition:background-size var(--t2) var(--ease),color var(--t1)}
.tl:hover,.prose a:hover,.foot a:hover,.privacy-more a:hover,.get-mail:hover{color:var(--accent);background-size:0 1px;animation:ul-grow var(--t2) var(--ease) forwards}
@keyframes ul-grow{from{background-size:0 1px}to{background-size:100% 1px}}

.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;background:var(--ink);color:var(--paper);border-radius:6px;text-decoration:none}
.skip:focus{top:12px}

/* ── buttons ────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;font:600 15px/1 var(--sans);text-decoration:none;white-space:nowrap;border:1px solid transparent;
  transition:background-color var(--t1) var(--ease),color var(--t1) var(--ease),border-color var(--t1),transform var(--t1) var(--ease)}
.btn-a{background:var(--accent);color:var(--accent-ink)}
.btn-a:hover{background:var(--ink);color:var(--paper);transform:translateY(-1px)}
.btn-b{border-color:var(--line-2);color:var(--ink)}
.btn-b:hover{border-color:var(--ink);transform:translateY(-1px)}
.btn:active{transform:none}

/* ── nav ────────────────────────────────────────────── */
.nav{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid transparent;
  transition:transform var(--t2) var(--ease),border-color var(--t2)}
.nav.lined{border-bottom-color:var(--line)}
.nav.tuck{transform:translateY(-100%)}
.nav>.wrap{display:flex;align-items:center;gap:24px;height:var(--navh)}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-height:44px}
.brand .mark{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--ink);color:var(--paper)}
.brand .mark svg{width:20px;height:20px}
.brand .cn{font-weight:700;font-size:17px;letter-spacing:.02em}
.brand .en{font-family:var(--mono);font-size:13px;color:var(--ink-3);letter-spacing:.04em}
.navlinks{display:flex;align-items:center;gap:4px;margin-left:auto}
.navlinks a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-size:15px;color:var(--ink-2);text-decoration:none;transition:color var(--t1)}
.navlinks a:hover{color:var(--accent)}
.navlinks .langlink{font-family:var(--mono);font-size:13px;letter-spacing:.04em}
.navtools{display:flex;align-items:center;gap:6px}
.navtools .btn{min-height:40px;padding:0 18px;font-size:14px}
.iconbtn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;transition:background-color var(--t1)}
.iconbtn:hover{background:var(--paper-2)}
.iconbtn svg{width:20px;height:20px}
.menubtn{display:none}
@media (max-width:900px){
  .navlinks{display:none}
  .navtools{margin-left:auto}
  .menubtn{display:inline-grid}
}
@media (max-width:420px){.brand .en{display:none}.navtools .btn{padding:0 14px}}

/* 抽屉：<dialog> 全屏纸面，淡入下落 */
.drawer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--paper);color:var(--ink);
  opacity:0;transform:translateY(-10px);
  transition:opacity var(--t2) var(--ease),transform var(--t2) var(--ease),overlay var(--t2) allow-discrete,display var(--t2) allow-discrete}
.drawer[open]{display:flex;flex-direction:column;opacity:1;transform:none}
@starting-style{.drawer[open]{opacity:0;transform:translateY(-10px)}}
.drawer::backdrop{background:transparent}
html:has(.drawer[open]){overflow:hidden}
.dhead{display:flex;align-items:center;justify-content:space-between;height:var(--navh);padding-inline:var(--pad);border-bottom:1px solid var(--line)}
.dbody{flex:1;overflow:auto;padding:28px var(--pad) 40px}
.dbody nav{display:flex;flex-direction:column}
.dbody nav:first-child a{font-size:28px;font-weight:600;letter-spacing:-.01em;padding:10px 0;color:var(--ink)}
.dbody a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:44px;padding:8px 0;text-decoration:none;color:var(--ink-2);border-bottom:1px solid var(--line)}
.dbody a:hover{color:var(--accent)}
.dbody small{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);font-weight:400}
.dsub{margin:36px 0 6px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}

/* ── hero ───────────────────────────────────────────── */
.hero{padding:clamp(32px,5vw,72px) 0 clamp(56px,7vw,104px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,96px);align-items:center}
.status{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.hero h1{margin-top:24px;font-family:var(--display);font-weight:700;font-size:clamp(40px,6.2vw,84px);line-height:1.08;letter-spacing:-.035em}
:lang(en) .hero h1{font-weight:500;letter-spacing:-.025em;line-height:1.04;font-size:clamp(38px,4.9vw,70px)}
:lang(en) .navlinks .langlink{font-family:var(--sans);font-size:14px}
.hero h1 em{font-style:normal;color:var(--accent)}
:lang(en) .hero h1 em{font-style:italic}
.hero .lede{margin-top:28px;max-width:30em;font-size:clamp(17px,1.5vw,19px);line-height:1.8;color:var(--ink-2)}
.hero .cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:36px}
.hero .tl{font-size:15px}

/* 主视觉：手机取景器。整块 aria-hidden，说明文字在 figcaption */
.shot{position:relative;justify-self:center;width:min(100%,312px)}
.phone{position:relative;aspect-ratio:9/17.6;padding:10px;border-radius:42px;background:#1A1714;box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 30px 60px -30px rgba(40,25,10,.45)}
.screen{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:35px;background:#0F0D0B;color:#EDE6DA;font-family:var(--sans)}
.p-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:30px 14px 10px}
.p-ref{display:flex;align-items:center;gap:8px;font-size:10px;line-height:1.3;color:#B5AB9C}
.p-ref i{width:22px;height:28px;border-radius:4px;background:#C9A988;border:1px solid rgba(255,255,255,.25)}
.p-ref b{display:block;color:#F1EAE0;font-size:11px;font-weight:600}
.p-auto{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:99px;background:rgba(255,255,255,.08);font-size:10px;color:#F1EAE0;white-space:nowrap}
.p-auto i{width:6px;height:6px;border-radius:50%;background:#7FBF8E}
.vf{position:relative;flex:1;overflow:hidden;background:#C9B08F}
.vf svg{position:absolute;inset:0;width:100%;height:100%}
.vf-score{position:absolute;left:12px;top:12px;display:flex;align-items:baseline;gap:4px;padding:4px 9px;border-radius:8px;background:rgba(15,13,11,.62);font-size:10px;color:#D9D0C3}
/* 分数压在 rgba(15,13,11,.62) 的深色药丸上，实测底色约 rgb(96,87,75)。
   原来的 #F2B48F 在这个底色上只有 3.93:1，而 18px/600 够不上 WCAG 的「大字」（要 ≥18.66px 且加粗），
   得按 4.5:1 算。提亮到 #F8C9A8，同色相，实测 4.70:1。 */
.vf-score b{font-family:var(--mono);font-size:18px;color:#F8C9A8;font-weight:600}
.vf-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:99px;background:rgba(15,13,11,.72);font-size:12px;font-weight:600;color:#fff;white-space:nowrap}
.vf-hint svg{position:static;width:11px;height:11px}
.p-tones{display:flex;justify-content:center;gap:12px;padding:12px 8px 4px;font-size:10px;color:#8E8577}
.p-tones .on{color:#F1EAE0;font-weight:600}
.p-shutter{display:flex;align-items:center;justify-content:space-between;padding:8px 34px}
.p-thumb{width:30px;height:30px;border-radius:7px;background:#8E7559}
.p-btn{width:54px;height:54px;border-radius:50%;border:3px solid #F1EAE0;box-shadow:0 0 0 3px #0F0D0B inset;background:#F1EAE0}
.p-flip{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.25)}
.p-modes{display:flex;justify-content:center;gap:16px;padding:4px 0 18px;font-size:10px;color:#8E8577}
.p-modes .on{color:#F2B48F;font-weight:600}
.chip{position:absolute;right:-28px;top:55%;display:flex;flex-direction:column;gap:2px;padding:10px 16px 11px;border-radius:14px 14px 14px 4px;background:var(--paper);border:1px solid var(--line-2);box-shadow:0 10px 30px -18px rgba(40,25,10,.5)}
.chip span{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.chip b{font-size:20px;line-height:1.3;color:var(--accent)}
.shot figcaption{margin-top:20px;font-size:12.5px;line-height:1.6;color:var(--ink-3);max-width:30em}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .shot{width:min(78%,300px);margin-top:12px}
  .chip{right:-14%}
}
@media (max-width:420px){.phone{border-radius:36px;padding:8px}.screen{border-radius:29px}.p-top{padding-top:22px}.p-shutter{padding-inline:22px}.p-btn{width:44px;height:44px}.chip{right:-10%;padding:8px 12px}.chip b{font-size:17px}}

/* 取景器里的动作：背景极慢推近，对焦角收拢锁定（只播一次） */
.vf-bg{transform-box:view-box;transform-origin:60% 50%;animation:push 9s var(--ease) both}
@keyframes push{from{transform:scale(1.06)}to{transform:none}}
.vf-lock{transform-box:fill-box;transform-origin:center;stroke:#fff;animation:lock 900ms var(--ease) 500ms both}
.vf-lock path{animation:lock-tint 300ms ease 1.4s both}
@keyframes lock{from{opacity:0;transform:scale(1.35)}60%{opacity:1}to{opacity:1;transform:none}}
@keyframes lock-tint{to{stroke:#F2B48F}}
.chip{animation:rise var(--t3) var(--ease) 1.5s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ── 区块通用 ──────────────────────────────────────── */
.sec{padding-block:clamp(72px,10vw,144px)}
.sec-tight{padding-block:clamp(56px,7vw,96px)}
.eyebrow{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.h2{font-family:var(--display);font-weight:700;font-size:clamp(30px,4vw,52px);line-height:1.15;letter-spacing:-.025em}
:lang(en) .h2{font-weight:500;letter-spacing:-.015em}
.sec-lede{margin-top:20px;max-width:32em;font-size:18px;line-height:1.8}

/* 01 怎么用：悬挂标题 + 编号列表 */
.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.split-head{position:sticky;top:calc(var(--navh) + 32px)}
.split-head .h2{margin-top:14px}
.steps{counter-reset:s;border-top:1px solid var(--line-2)}
.steps li{display:grid;grid-template-columns:clamp(56px,7vw,88px) minmax(0,1fr);gap:8px 20px;padding:clamp(28px,3.5vw,44px) 0;border-bottom:1px solid var(--line)}
.steps .n{grid-row:span 2;font-family:var(--serif);font-size:clamp(44px,5vw,64px);line-height:.9;color:var(--accent);font-feature-settings:"lnum"}
.steps h3{font-size:clamp(20px,2vw,24px);line-height:1.35;font-weight:600}
.steps p{max-width:34em}
@media (max-width:820px){.split{grid-template-columns:1fr}.split-head{position:static}}

/* 02 两个人：大插图是这一页的「空」段 */
.duo{background:var(--paper-2)}
.duo-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,80px);align-items:end}
.duo-head .sec-lede{margin-top:0}
.scene{margin-top:clamp(40px,6vw,80px)}
.scene svg{width:100%;height:auto;color:var(--ink)}
.scene .thirds{stroke:var(--ink);stroke-opacity:.16;stroke-dasharray:2 7}
.scene .ground{stroke:var(--line-2)}
.scene .who-a{stroke:var(--ink)}
.scene .who-b{stroke:var(--accent)}
.scene .joint{fill:var(--paper-2);stroke:var(--accent)}
.scene .waves{stroke:var(--accent)}
.scene .sight{stroke:var(--ink-3);stroke-dasharray:1 7}
.scene .corner{stroke:var(--ink);stroke-opacity:.5}
.scene-cap{display:grid;grid-template-columns:18% 45% minmax(0,1fr);margin-top:clamp(4px,1vw,12px)}
.scene-cap div{padding-top:16px;grid-column:2}
.scene-cap div+div{grid-column:3}


.scene-cap span{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.scene-cap b{display:block;margin-top:4px;font-size:clamp(20px,2.4vw,30px);line-height:1.3;font-weight:600}
.scene-cap div:last-child b{color:var(--accent)}
.solo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,80px);margin-top:clamp(56px,7vw,96px);padding-top:28px;border-top:1px solid var(--line)}
.solo h3{font-size:20px;font-weight:600}
.solo p{max-width:32em}
@media (max-width:820px){
  .duo-head,.solo{grid-template-columns:1fr}
  .scene{margin-inline:calc(var(--pad)*-.5)}
}

/* 03 价格：两栏排版，不做卡片 */
.price-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 40px}
.price-head .sec-lede{margin-top:0;max-width:24em}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:clamp(40px,5vw,64px);border-top:2px solid var(--ink)}
.plan{padding:28px 0 8px}
.plan+.plan{padding-left:clamp(24px,4vw,56px);border-left:1px solid var(--line)}
.plan:first-child{padding-right:clamp(24px,4vw,56px)}
.plan-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:64px}
.plan h3{font-size:22px;font-weight:600}
.plan .price{font-family:var(--serif);font-size:clamp(44px,5vw,60px);line-height:1;color:var(--ink);font-feature-settings:"lnum"}
.plan .price small{margin-left:8px;font-family:var(--sans);font-size:14px;color:var(--ink-3);font-weight:400}
.plan dl{margin-top:16px}
.plan dl div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}
.plan dd{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.plan dl,.plan ul{border-top:1px solid var(--line)}
.plan ul li{padding:12px 0;border-bottom:1px solid var(--line);font-size:16px;color:var(--ink)}
.plan .note{margin-top:18px;font-size:14.5px;line-height:1.7;color:var(--ink-3);max-width:30em}
@media (max-width:760px){
  .plans{grid-template-columns:1fr}
  .plan:first-child{padding-right:0}
  .plan+.plan{padding-left:0;border-left:0;margin-top:32px;border-top:1px solid var(--line-2)}
}

/* 04 隐私：深色带，三条细线分隔 */
.privacy{background:var(--band);color:var(--band-ink-2);border-block:1px solid var(--line)}
.privacy .h2,.privacy h3{color:var(--band-ink)}
.privacy .eyebrow{color:var(--band-ink-2)}
.privacy ::selection{background:#E8794F;color:#1A110C}
.privacy :focus-visible{outline-color:#E8794F}
.prows{border-top:1px solid rgba(241,234,224,.2)}
.prows li{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:8px 32px;padding:26px 0;border-bottom:1px solid rgba(241,234,224,.12)}
.prows h3{font-size:19px;font-weight:600;line-height:1.45}
.privacy-more{margin-top:28px;font-size:15px}
.privacy-more a{color:var(--band-ink)}
.privacy-more a:hover{color:#E8794F}
@media (max-width:700px){.prows li{grid-template-columns:1fr}}

/* 05 常见问题 */
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(32px,5vw,72px);margin-top:clamp(32px,4vw,48px)}
.faq div{padding:24px 0 28px;border-top:1px solid var(--line-2)}
.faq dt{font-size:18px;font-weight:600;color:var(--ink);line-height:1.5}
.faq dd{margin-top:10px}
@media (max-width:760px){.faq{grid-template-columns:1fr}}

/* 加入内测 */
.get-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,6vw,96px);align-items:center}
.get .h2{font-size:clamp(36px,5vw,64px)}
.get p{margin-top:20px;max-width:28em;font-size:18px}
.get-qq{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin-top:36px}
.get-qq span{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.get-qq b{font-family:var(--mono);font-size:clamp(26px,3vw,36px);font-weight:500;letter-spacing:.04em;font-variant-numeric:tabular-nums;user-select:all}
.get-mail{display:inline-block;margin-top:20px;font-size:15px}
.qr{position:relative;padding:18px;background:#fff;border-radius:var(--r);border:1px solid var(--line)}
.qr img{width:100%;border-radius:4px}
/* 二维码四角的对焦角 */
.qr::before,.qr::after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--accent)}
.qr::before{left:-10px;top:-10px;border-right:0;border-bottom:0}
.qr::after{right:-10px;bottom:-10px;border-left:0;border-top:0}
@media (max-width:760px){.get-grid{grid-template-columns:1fr}.get .qr{max-width:220px;justify-self:start}}

.pagemeta{padding-bottom:28px;font-size:13px;color:var(--ink-3)}

/* ── footer ─────────────────────────────────────────── */
.foot{border-top:1px solid var(--line);padding-block:48px 32px;font-size:14px;color:var(--ink-3)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:32px}
.foot h2{margin-bottom:12px;font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.foot ul li{padding:3px 0}
.foot a{color:var(--ink-2)}
.foot small{margin-left:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--ink-3)}
.foot-brand p{margin-top:12px;max-width:22em}
.foot-base{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media (pointer:coarse){.foot ul a{display:inline-block;padding:8px 0}}

/* ── 法务页 /terms/ /privacy/ /support/（生成页，只靠这里排版） ── */
.legalpage{padding-block:clamp(40px,6vw,88px) clamp(64px,9vw,128px)}
.legalpage>.wrap{display:grid;grid-template-columns:minmax(0,220px) minmax(0,44rem);gap:0 clamp(32px,6vw,88px);justify-content:start}
.legalpage>.wrap>*{grid-column:2}
.legalpage .crumbs{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.legalpage .crumbs a{color:var(--ink-2);text-decoration:none}
.legalpage .crumbs a:hover{color:var(--accent)}
.legalpage .crumbs i{font-style:normal;opacity:.6}
@media (pointer:coarse){.legalpage .crumbs a{display:inline-block;padding:12px 4px;margin:-12px -4px}}
.legalpage h1{margin-top:20px;font-family:var(--display);font-weight:700;font-size:clamp(32px,4.4vw,52px);line-height:1.15;letter-spacing:-.025em}
:lang(en) .legalpage h1{font-weight:500}
.legalpage .meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:18px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink-3)}
.legalpage .lede{margin-top:24px;font-size:19px;line-height:1.75;color:var(--ink)}
.legal-toc{grid-column:1!important;grid-row:1/span 6;align-self:start;position:sticky;top:calc(var(--navh) + 24px);margin-top:4px;font-size:14px}
.legal-toc ol{counter-reset:t;border-left:1px solid var(--line-2)}
.legal-toc li{counter-increment:t}
.legal-toc a{display:flex;gap:10px;padding:6px 0 6px 16px;margin-left:-1px;border-left:1px solid transparent;color:var(--ink-3);text-decoration:none;line-height:1.5;transition:color var(--t1),border-color var(--t1)}
.legal-toc a::before{content:counter(t,decimal-leading-zero);font-family:var(--mono);font-size:11px;padding-top:2px;color:var(--ink-3)}
.legal-toc a:hover{color:var(--ink);border-left-color:var(--accent)}
.prose{color:var(--ink-2);font-size:17px;line-height:1.85}
.legal-body{margin-top:clamp(32px,4vw,48px)}
.prose h2{margin-top:clamp(44px,5vw,64px);padding-top:20px;border-top:1px solid var(--line-2);font-size:clamp(21px,2.2vw,26px);line-height:1.4;font-weight:600;letter-spacing:-.01em;scroll-margin-top:calc(var(--navh) + 20px)}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:28px;font-size:18px;font-weight:600}
.prose p,.prose ul,.prose ol,.prose table{margin-top:14px}
.prose ul,.prose ol{padding-left:1.3em}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li{margin-top:6px;padding-left:4px}
.prose li::marker{color:var(--ink-3)}
.prose code{font-family:var(--mono);font-size:.88em;padding:1px 5px;border-radius:4px;background:var(--paper-2)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6;display:block;overflow-x:auto}
.prose th,.prose td{text-align:left;vertical-align:top;padding:10px 14px 10px 0;border-bottom:1px solid var(--line)}
.prose th{color:var(--ink);font-weight:600;border-bottom-color:var(--line-2)}
.prose a{word-break:break-word}
@media (max-width:900px){
  .legalpage>.wrap{grid-template-columns:minmax(0,1fr)}
  .legalpage>.wrap>*{grid-column:1}
  .legal-toc{grid-column:1!important;grid-row:auto;position:static;margin-top:32px}
}

/* 404 */
.lost{padding-block:clamp(56px,9vw,128px)}
.lost .wrap{max-width:calc(46rem + var(--pad)*2)}
.lost h1{margin-top:16px;font-weight:700;font-size:clamp(36px,5vw,60px);line-height:1.1;letter-spacing:-.03em}
.lost h2{font-size:24px;font-weight:600}
.lost .lede{margin-top:20px;font-size:19px}
.lost ul{margin-top:24px;border-top:1px solid var(--line-2)}
.lost ul li{padding:12px 0;border-bottom:1px solid var(--line)}
.lost p{margin-top:20px}
.lost section{margin-top:72px;padding-top:28px;border-top:1px solid var(--line)}

/* ── 进入视口：淡入上浮。nav.js 确认能观察后才给 html 加 .io，无 JS 时内容原样可见 ── */
html.io .rv{opacity:0;transform:translateY(16px);transition:opacity var(--t3) var(--ease),transform var(--t3) var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
html.io .rv.in{opacity:1;transform:none}

/* 跨页淡入淡出（Chromium；其他浏览器自然退化） */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:var(--t2);animation-timing-function:var(--ease)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  html.io .rv{opacity:1;transform:none}
  .nav.tuck{transform:none}
  @view-transition{navigation:none}
}
.foot-base:first-child{margin-top:0;padding-top:0;border-top:0}
.qr{width:100%;max-width:300px;justify-self:end}
.foot .brand{background:none}
/* 中文小标签不用等宽字体：等宽字体里没有汉字，回退后字距会散 */
:lang(zh) .eyebrow,:lang(zh) .scene-cap span,:lang(zh) .get-qq span,:lang(zh) .foot h2,:lang(zh) .dsub,:lang(zh) .status,:lang(zh) .chip span,:lang(zh) .legalpage .crumbs,:lang(zh) .legalpage .meta{font-family:var(--sans);letter-spacing:.06em}
.foot a{background-size:0 1px}
:lang(zh) .foot small,:lang(zh) .dbody small{font-family:var(--sans);letter-spacing:.02em}
@media (max-width:600px){.legalpage .lede{font-size:17.5px}.prose{font-size:16.5px}}
