/* 骨架令牌归 site-core；站点只选主题、微调颜色并注入自托管字体变量。 */
.tpl {
  --tpl-u: 8px;
  --tpl-measure: 68ch;
  --tpl-size-xs: 13px;
  --tpl-size-sm: 14px;
  --tpl-size-label: 15px;
  --tpl-size-body: 16px;
  --tpl-size-action: 17px;
  --tpl-size-brand: 26px;
  --tpl-size-fact: clamp(22px, 2.2vw, 28px);
  --tpl-size-title: clamp(44px, 5.6vw, 80px);
  --tpl-header-height: 86px;
  min-height: 100vh;
  background: var(--tpl-paper);
  color: var(--tpl-ink);
  color-scheme: light;
  font: 400 var(--tpl-size-body)/1.55 var(--tpl-body);
  -webkit-font-smoothing: antialiased;
}
.tpl-theme-vellum {
  --tpl-paper: #EEE7DA; --tpl-sheet: #F8F4EC; --tpl-ink: #1F2429; --tpl-mute: #5F6670;
  --tpl-accent: #A8472A; --tpl-accent-ink: #FBF6EE; --tpl-wash: #6F7F5E; --tpl-line: #D3C8B4;
  --tpl-display: var(--tpl-font-display, "Instrument Serif"), "Iowan Old Style", Georgia, serif;
  --tpl-body: var(--tpl-font-body, "Instrument Sans"), "Segoe UI", system-ui, sans-serif;
  --tpl-measure-font: var(--tpl-font-measure, "IBM Plex Mono"), ui-monospace, "SFMono-Regular", monospace;
  --tpl-radius-sheet: 6px; --tpl-radius-input: 14px; --tpl-radius-button: 999px;
  --tpl-shadow-sheet: 0 30px 60px -30px rgba(60,45,25,.45), 0 2px 6px rgba(60,45,25,.08);
  --tpl-shadow-button: 0 10px 24px -12px rgba(168,71,42,.7);
}
.tpl-theme-editorial {
  --tpl-paper: #ece3d2; --tpl-sheet: #f6efe3; --tpl-ink: #2b211b; --tpl-mute: color-mix(in oklab, var(--tpl-ink) 68%, var(--tpl-paper));
  --tpl-accent: #b8622b; --tpl-accent-ink: #ffffff; --tpl-wash: #6f7a4a; --tpl-line: color-mix(in oklab, var(--tpl-ink) 22%, var(--tpl-paper));
  --tpl-display: var(--tpl-font-display, "Fraunces"), Georgia, serif;
  --tpl-body: var(--tpl-font-body, "Instrument Sans"), "Segoe UI", system-ui, sans-serif;
  --tpl-measure-font: var(--tpl-font-measure, "Overpass Mono"), ui-monospace, monospace;
  --tpl-radius-sheet: 24px; --tpl-radius-input: 14px; --tpl-radius-button: 999px;
  --tpl-shadow-sheet: 0 30px 60px -30px rgba(60,30,10,.5);
  --tpl-shadow-button: 0 18px 40px -24px rgba(60,30,10,.45);
}
.tpl-theme-collage {
  --tpl-paper: #f1c9b4; --tpl-sheet: #fff6ee; --tpl-ink: #1d2a8a; --tpl-mute: color-mix(in oklab, var(--tpl-ink) 68%, var(--tpl-paper));
  --tpl-accent: #ef5533; --tpl-accent-ink: #ffffff; --tpl-wash: #ffc83d; --tpl-line: color-mix(in oklab, var(--tpl-ink) 22%, var(--tpl-paper));
  --tpl-display: var(--tpl-font-display, "Bricolage Grotesque"), "Arial Black", system-ui, sans-serif;
  --tpl-body: var(--tpl-font-body, "Rethink Sans"), "Segoe UI", system-ui, sans-serif;
  --tpl-measure-font: var(--tpl-font-measure, "Overpass Mono"), ui-monospace, monospace;
  --tpl-radius-sheet: 14px; --tpl-radius-input: 14px; --tpl-radius-button: 999px;
  --tpl-shadow-sheet: inset 0 0 0 2px var(--tpl-ink), 6px 6px 0 var(--tpl-ink);
  --tpl-shadow-button: 3px 3px 0 var(--tpl-ink);
}
.tpl-theme-dusk {
  --tpl-paper: #1a0f2e; --tpl-sheet: #251543; --tpl-ink: #f6ecff; --tpl-mute: color-mix(in oklab, var(--tpl-ink) 72%, var(--tpl-paper));
  --tpl-accent: #ff4fa3; --tpl-accent-ink: #1a0f2e; --tpl-wash: #ff9a3c; --tpl-line: color-mix(in oklab, var(--tpl-ink) 22%, var(--tpl-paper));
  --tpl-display: var(--tpl-font-display, "Unbounded"), system-ui, sans-serif;
  --tpl-body: var(--tpl-font-body, "Rethink Sans"), "Segoe UI", system-ui, sans-serif;
  --tpl-measure-font: var(--tpl-font-measure, "JetBrains Mono"), ui-monospace, monospace;
  --tpl-radius-sheet: 24px; --tpl-radius-input: 14px; --tpl-radius-button: 999px;
  --tpl-shadow-sheet: 0 0 0 1px var(--tpl-line), 0 24px 48px -24px rgba(0,0,0,.7);
  --tpl-shadow-button: 0 8px 20px -10px rgba(0,0,0,.7);
}
.tpl.tpl-theme-dusk { color-scheme: dark; }
/* 仅清除使用模板的文档默认外边距，不影响未接入的页面。 */
body:has(.tpl) { margin: 0; }
.tpl, .tpl *, .tpl *::before, .tpl *::after { box-sizing: border-box; }
.tpl ::selection { background: var(--tpl-accent); color: var(--tpl-accent-ink); }
.tpl a { color: inherit; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.tpl :focus-visible { outline: 2px solid var(--tpl-accent); outline-offset: 3px; }
/* 有吸顶条时，侧栏卡片让出这段高度；站点吸顶条更高就覆盖 --tpl-topbar-height。 */
.tpl:has(> .tpl-topbar) { --tpl-topbar-height: 48px; }
.tpl .tpl-topbar { position: sticky; top: 0; z-index: 10; padding-block: var(--tpl-u); padding-inline: max(clamp(16px, 4vw, 48px), calc((100% - 1200px) / 2 + clamp(16px, 4vw, 48px))); background: var(--tpl-paper); border-bottom: 1px solid var(--tpl-line); }
.tpl-wrap { max-width: 1200px; margin: 0 auto; padding-inline: clamp(16px, 4vw, 48px); }
.tpl-header { min-height: var(--tpl-header-height); display: flex; align-items: center; justify-content: space-between; gap: calc(2 * var(--tpl-u)); padding-block: 22px; }
.tpl-brand { display: flex; align-items: center; gap: 10px; font: 400 var(--tpl-size-brand)/1 var(--tpl-display); letter-spacing: -.01em; text-decoration: none; }
.tpl-brand svg { width: 24px; height: 24px; flex-shrink: 0; }
.tpl-nav, .tpl-nav-links { display: flex; flex-wrap: wrap; gap: calc(3 * var(--tpl-u)); align-items: center; font-size: var(--tpl-size-label); color: var(--tpl-mute); }
.tpl-nav a { text-decoration: none; }
.tpl-nav a:hover { color: var(--tpl-ink); }
.tpl-nav .tpl-account { color: var(--tpl-ink); border: 1px solid currentColor; padding: 7px 16px; border-radius: var(--tpl-radius-button); }
.tpl-nav .tpl-account-accent { color: var(--tpl-accent); }
.tpl-hero { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(28px,4vw,64px); align-items: center; padding-block: clamp(8px,2vw,28px) calc(7 * var(--tpl-u)); min-height: calc(100svh - var(--tpl-header-height)); }
.tpl-hero-solo { grid-template-columns: minmax(0, 1fr); align-items: start; }
.tpl-hero-solo > .tpl-tool { max-width: 46rem; }
.tpl-tool { min-width: 0; }
.tpl h1 { font: 400 var(--tpl-size-title)/.98 var(--tpl-display); letter-spacing: -.02em; margin: 0 0 28px; text-wrap: balance; }
/* 标题 ≥6 词自动降一档（class 挂在 .tpl-tool 上，h1 标记保持 <h1>：image-describer 测试按 <h1>(.*?)</h1> 取标题，v0.18.0 发版闸拦下）；，避免折成 4–5 行把主操作挤出桌面首屏（word-factory 2026-10-07 13:59，FollowUp 实测） */
.tpl .tpl-title-long h1 { font-size: clamp(34px, 3.4vw, 52px); }
.tpl h1 em { font-style: italic; color: var(--tpl-accent); }
.tpl-theme-collage h1 { font-weight: 800; letter-spacing: -.045em; }
.tpl-theme-collage h1 em { font-style: normal; }
.tpl-lede { max-width: var(--tpl-measure); margin: 0 0 calc(3 * var(--tpl-u)); color: var(--tpl-mute); }
.tpl-primary { max-width: var(--tpl-measure); }
/* 插槽可选的工具样式；业务逻辑仍归站点。 */
.tpl-primary label { display: block; font-weight: 600; font-size: var(--tpl-size-label); margin-bottom: var(--tpl-u); }
.tpl-primary textarea { width: 100%; min-height: 104px; resize: vertical; border: 1px solid var(--tpl-line); border-radius: var(--tpl-radius-input); background: var(--tpl-sheet); color: var(--tpl-ink); font: 400 var(--tpl-size-body)/1.5 var(--tpl-body); padding: 14px 16px; box-shadow: 0 1px 0 color-mix(in oklab, var(--tpl-ink) 4%, transparent) inset; }
.tpl-primary textarea::placeholder { color: var(--tpl-mute); }
.tpl-chips { display: flex; flex-wrap: wrap; gap: var(--tpl-u); margin: 12px 0 18px; }
.tpl-chips button { font: 500 var(--tpl-size-sm)/1 var(--tpl-body); color: var(--tpl-ink); background: transparent; border: 1px dashed var(--tpl-line); border-radius: var(--tpl-radius-button); padding: 9px 14px; cursor: pointer; }
.tpl-chips button:hover { background: var(--tpl-sheet); border-style: solid; }
.tpl-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tpl .tpl-go { display: inline-flex; justify-content: center; align-items: center; border: 0; background: var(--tpl-accent); color: var(--tpl-accent-ink); font: 600 var(--tpl-size-action)/1 var(--tpl-body); padding: 17px 26px; border-radius: var(--tpl-radius-button); cursor: pointer; box-shadow: var(--tpl-shadow-button); text-decoration: none; }
.tpl-go:hover { filter: brightness(.9); }
.tpl-go:disabled, .tpl-go[aria-disabled="true"] { cursor: not-allowed; opacity: .6; }
.tpl-seg { display: inline-flex; border: 1px solid var(--tpl-line); border-radius: var(--tpl-radius-button); padding: 3px; background: var(--tpl-sheet); }
.tpl-seg button { border: 0; background: transparent; font: 500 var(--tpl-size-sm)/1 var(--tpl-measure-font); padding: 9px 12px; border-radius: var(--tpl-radius-button); color: var(--tpl-mute); cursor: pointer; }
.tpl-seg button[aria-pressed="true"] { background: var(--tpl-ink); color: var(--tpl-sheet); }
.tpl-remaining { font-size: var(--tpl-size-sm); color: var(--tpl-mute); margin-top: 14px; }
.tpl-showcase { position: relative; margin: 0; min-width: 0; background: var(--tpl-sheet); border-radius: var(--tpl-radius-sheet); padding: clamp(14px,2vw,22px); box-shadow: var(--tpl-shadow-sheet); }
.tpl-theme-vellum .tpl-showcase { transform: rotate(.6deg); }
.tpl-showcase-below { margin-block: 0 calc(6 * var(--tpl-u)); }
.tpl-theme-vellum .tpl-showcase-below { transform: none; }
.tpl-showcase svg, .tpl-showcase img { display: block; width: 100%; height: auto; }
.tpl-facts { border-top: 1px solid var(--tpl-line); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: calc(3 * var(--tpl-u)); padding-block: 36px; }
.tpl-facts p { margin: 0; font: 400 var(--tpl-size-fact)/1.15 var(--tpl-display); }
.tpl-facts p span { display: block; font: 400 var(--tpl-size-sm)/1.4 var(--tpl-body); color: var(--tpl-mute); margin-top: 6px; }
.tpl-prices { border-top: 1px solid var(--tpl-line); padding-block: 28px; display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: baseline; font-size: var(--tpl-size-label); color: var(--tpl-mute); }
.tpl-prices b { font-weight: 600; color: var(--tpl-ink); font-variant-numeric: tabular-nums; }
.tpl-more { display: flex; flex-wrap: wrap; gap: 8px 22px; padding-block: 8px 28px; font-size: var(--tpl-size-label); }
.tpl-block { max-width: var(--tpl-measure); padding-block: calc(3 * var(--tpl-u)); border-top: 1px solid var(--tpl-line); overflow-wrap: anywhere; }
.tpl-block h2 { font: 400 var(--tpl-size-fact)/1.15 var(--tpl-display); margin: 0 0 calc(2 * var(--tpl-u)); }
.tpl-footer { border-top: 1px solid var(--tpl-line); padding-block: 22px 40px; font-size: var(--tpl-size-xs); color: var(--tpl-mute); display: flex; flex-wrap: wrap; gap: 8px 20px; }
@media (max-width: 880px) {
  .tpl-hero { grid-template-columns: 1fr; }
  .tpl-theme-vellum .tpl-showcase { transform: none; }
  .tpl-facts { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 520px) {
  .tpl { --tpl-header-height: 128px; }
  .tpl .tpl-nav { flex: 1 1 100%; justify-content: flex-start; }
  .tpl .tpl-nav, .tpl .tpl-nav-links { flex-wrap: wrap; gap: var(--tpl-u) calc(2 * var(--tpl-u)); }
  .tpl h1 { margin-bottom: 20px; }
  .tpl-go { width: 100%; flex: 1 0 100%; }
  .tpl .tpl-header { flex-wrap: wrap; }
}
/* 唯一动效区域 = 主视觉；减弱动效时墙线与填色从一开始完整可见。 */
@media (prefers-reduced-motion: no-preference) {
  .tpl-theme-vellum .tpl-showcase .tpl-draw { stroke-dasharray: var(--tpl-len); stroke-dashoffset: var(--tpl-len); animation: tpl-draw 1.4s cubic-bezier(.16,1,.3,1) .2s forwards; }
  .tpl-theme-vellum .tpl-showcase .tpl-settle { opacity: 0; animation: tpl-settle .8s cubic-bezier(.16,1,.3,1) 1.2s forwards; }
  .tpl-theme-editorial .tpl-showcase { animation: tpl-float 7s ease-in-out infinite; }
  .tpl-theme-collage .tpl-showcase { animation: tpl-land .8s cubic-bezier(.16,1,.3,1) both; }
  @keyframes tpl-draw { to { stroke-dashoffset: 0; } }
  @keyframes tpl-settle { to { opacity: 1; } }
  @keyframes tpl-float { 50% { transform: translateY(-8px); } }
  @keyframes tpl-land { from { transform: translateY(8px) rotate(-2deg); } to { transform: none; } }
  @media (max-width: 880px) {
    @keyframes tpl-land { from { transform: translateY(8px); } to { transform: none; } }
  }
}
/* 子页共用主题和静态骨架；不使用首页主视觉的动效类。 */
.tpl-page { padding-block: calc(3 * var(--tpl-u)) calc(6 * var(--tpl-u)); overflow-wrap: anywhere; }
.tpl-page h1 { font-size: clamp(36px, 4.5vw, 64px); }
.tpl-page h2, .tpl-page h3 { font-family: var(--tpl-display); line-height: 1.2; }
.tpl-page h2 { font-size: var(--tpl-size-fact); }
.tpl-prose { max-width: var(--tpl-measure); min-width: 0; }
.tpl-prose h2, .tpl-prose h3 { margin-block: calc(4 * var(--tpl-u)) var(--tpl-u); }
.tpl-prose p { margin-block: 0 calc(2 * var(--tpl-u)); }
.tpl-prose img, .tpl-prose svg { max-width: 100%; height: auto; }
.tpl-prose pre { overflow-x: auto; }
.tpl-prose figure { margin: calc(3 * var(--tpl-u)) 0; }
.tpl-prose figure img { display: block; border-radius: var(--tpl-radius-input); }
.tpl-prose figcaption { margin-top: var(--tpl-u); color: var(--tpl-mute); font-size: var(--tpl-size-sm); }
.tpl-breadcrumbs, .tpl-sources, .tpl-related { display: flex; flex-wrap: wrap; gap: var(--tpl-u) calc(3 * var(--tpl-u)); font-size: var(--tpl-size-sm); }
.tpl-breadcrumbs { margin-bottom: calc(2 * var(--tpl-u)); color: var(--tpl-mute); }
.tpl-sources, .tpl-related { border-top: 1px solid var(--tpl-line); padding-block: calc(3 * var(--tpl-u)); margin-top: calc(3 * var(--tpl-u)); }
.tpl-landing-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); column-gap: calc(5 * var(--tpl-u)); align-content: start; padding-top: calc(4 * var(--tpl-u)); min-height: calc(100svh - var(--tpl-header-height) - 64px); padding-bottom: calc(4 * var(--tpl-u)); }
.tpl-landing-hero > h1, .tpl-landing-hero > .tpl-lede, .tpl-landing-hero > .tpl-specs, .tpl-landing-hero > .tpl-primary { grid-column: 1; }
.tpl-landing-hero > h1 { grid-row: 1; }
.tpl-landing-hero > .tpl-lede { grid-row: 2; }
.tpl-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 calc(3 * var(--tpl-u)); border-top: 1px solid var(--tpl-line); }
.tpl-specs > div { padding: var(--tpl-u); border-bottom: 1px solid var(--tpl-line); }
.tpl-specs dt { color: var(--tpl-mute); font-size: var(--tpl-size-xs); }
.tpl-specs dd { margin: 0; font-family: var(--tpl-measure-font); }
.tpl-landing-hero > .tpl-specs { grid-row: 3; }
.tpl-landing-hero > .tpl-primary { grid-row: 4; }
.tpl-figure { grid-column: 2; grid-row: 1 / 5; align-self: center; margin: 0; padding: calc(2 * var(--tpl-u)); border-radius: var(--tpl-radius-sheet); background: var(--tpl-sheet); box-shadow: var(--tpl-shadow-sheet); }
.tpl-figure svg, .tpl-figure img { display: block; width: 100%; max-height: 360px; object-fit: contain; }
.tpl-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(4 * var(--tpl-u)); margin-bottom: calc(4 * var(--tpl-u)); }
.tpl-group { min-width: 0; }
.tpl-group ul { list-style: none; margin: 0; padding: 0; }
.tpl-group li { border-top: 1px solid var(--tpl-line); }
.tpl-hub-item, .tpl-locked { display: flex; align-items: center; justify-content: space-between; gap: calc(2 * var(--tpl-u)); padding: calc(2 * var(--tpl-u)); text-decoration: none; }
.tpl-hub-item { flex-wrap: wrap; }
.tpl-note { color: var(--tpl-mute); font-size: var(--tpl-size-sm); }
.tpl-locked { background: var(--tpl-sheet); color: var(--tpl-mute); border-inline-start: 3px solid var(--tpl-line); }
.tpl-lock-label { border: 1px solid var(--tpl-line); border-radius: var(--tpl-radius-button); padding: 2px 10px; font: 500 var(--tpl-size-xs)/1.5 var(--tpl-measure-font); }
.tpl-hub-cover, .tpl-guide-cover { margin: 0 0 calc(3 * var(--tpl-u)); aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--tpl-radius-sheet); background: var(--tpl-sheet); box-shadow: var(--tpl-shadow-sheet); }
.tpl-hub-cover img, .tpl-hub-cover picture, .tpl-hub-cover svg,
.tpl-guide-cover img, .tpl-guide-cover picture, .tpl-guide-cover svg,
.tpl-card-media img, .tpl-card-media picture, .tpl-card-media svg { width: 100%; height: 100%; object-fit: cover; display: block; }
.tpl-hub-cover, .tpl-guide-cover { max-width: var(--tpl-measure); }
.tpl-group-cards { grid-column: 1 / -1; }
.tpl-group .tpl-cards { list-style: none; padding: 0; display: grid; gap: calc(3 * var(--tpl-u)); grid-template-columns: minmax(0, 1fr); }
.tpl-group .tpl-cards > li { border-top: 0; min-width: 0; }
.tpl-card { display: flex; flex-direction: column; gap: var(--tpl-u); text-decoration: none; color: inherit; padding-bottom: var(--tpl-u); }
.tpl-card-media { display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--tpl-radius-input); background: var(--tpl-sheet); }
.tpl-card-title { font-weight: 600; font-size: var(--tpl-size-body); line-height: 1.35; }
.tpl-card-meta { display: flex; flex-wrap: wrap; column-gap: var(--tpl-u); color: var(--tpl-mute); font-size: var(--tpl-size-xs); font-variant-numeric: tabular-nums; }
.tpl-card-meta > * + *::before { content: "·"; margin-inline-end: var(--tpl-u); }
.tpl-card:hover .tpl-card-title { text-decoration: underline; }
@media (min-width: 640px) {
  .tpl-group .tpl-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .tpl-group .tpl-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.tpl-updated { color: var(--tpl-mute); font-size: var(--tpl-size-sm); }
.tpl-toc { max-width: var(--tpl-measure); border-block: 1px solid var(--tpl-line); margin-block: calc(3 * var(--tpl-u)); }
.tpl-toc ol { padding-inline-start: calc(3 * var(--tpl-u)); }
.tpl-guide-layout { display: grid; gap: calc(4 * var(--tpl-u)); }
.tpl-guide-aside { min-width: 0; padding: calc(3 * var(--tpl-u)); background: var(--tpl-sheet); border-radius: var(--tpl-radius-sheet); box-shadow: var(--tpl-shadow-sheet); }
.tpl-faq .tpl-primary { margin-top: calc(4 * var(--tpl-u)); }
@media (min-width: 1024px) {
  .tpl-guide-layout { grid-template-columns: minmax(0, 1fr) minmax(240px, 280px); }
  .tpl-guide-aside { grid-column: 2; grid-row: 1; align-self: stretch; position: static; padding: 0; background: none; box-shadow: none; border-radius: 0; }
  .tpl-guide-aside > .tpl-primary { position: sticky; top: calc(var(--tpl-topbar-height, 0px) + 3 * var(--tpl-u)); padding: calc(3 * var(--tpl-u)); background: var(--tpl-sheet); border-radius: var(--tpl-radius-sheet); box-shadow: var(--tpl-shadow-sheet); }
  /* 侧栏只放一个主操作时：这一层撑满整列（两栏等高，design-check first-viewport-column-overflow），按钮本身吸顶；多个子元素时保持上面的吸顶卡片，避免互相叠住。 */
  .tpl-guide-aside > .tpl-primary:has(> :only-child) { position: static; min-height: 100%; padding: 0; background: none; border-radius: 0; box-shadow: none; }
  .tpl-guide-aside > .tpl-primary > :only-child { position: sticky; top: calc(var(--tpl-topbar-height, 0px) + 3 * var(--tpl-u)); }
  .tpl-guide-layout > .tpl-prose { grid-column: 1; grid-row: 1; }
}
@media (max-width: 880px) {
  .tpl-groups, .tpl-landing-hero { grid-template-columns: minmax(0, 1fr); }
  .tpl-landing-hero > .tpl-figure { grid-column: 1; grid-row: 4; margin-bottom: calc(2 * var(--tpl-u)); padding: var(--tpl-u); }
  .tpl-figure svg, .tpl-figure img { max-height: 160px; }
  .tpl-landing-hero > .tpl-primary { grid-row: 5; }
  .tpl-landing-hero { align-content: start; }
  .tpl-landing .tpl-page { padding-top: var(--tpl-u); }
  .tpl-landing-hero > h1 { margin-bottom: calc(2 * var(--tpl-u)); }
  .tpl-landing-hero > .tpl-lede, .tpl-landing-hero > .tpl-specs { margin-bottom: calc(2 * var(--tpl-u)); }
}

/* 定价、对比和账户外观；所有主题共用结构，不添加动效。 */
.tpl-pricing .tpl-page, .tpl-compare .tpl-page, .tpl-account-page .tpl-page { min-width: 0; }
.tpl-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: calc(2 * var(--tpl-u)); margin-block: calc(4 * var(--tpl-u)); }
.tpl-plan { display: flex; flex-direction: column; min-width: 0; padding: calc(3 * var(--tpl-u)); background: var(--tpl-sheet); border: 1px solid var(--tpl-line); border-radius: var(--tpl-radius-sheet); }
.tpl-plan-featured { border-color: var(--tpl-accent); box-shadow: inset 0 0 0 1px var(--tpl-accent); }
.tpl-plan h2 { margin: 0; }
.tpl-plan-price { font: 500 clamp(28px, 3vw, 40px)/1.3 var(--tpl-measure-font); margin-block: calc(2 * var(--tpl-u)); }
.tpl-plan-price span { display: block; font-size: var(--tpl-size-sm); color: var(--tpl-mute); }
.tpl-offer { color: var(--tpl-accent); font-weight: 600; margin-bottom: 0; }
.tpl-plan ul { padding-inline-start: calc(3 * var(--tpl-u)); }
.tpl-plan-cta { margin-top: auto; padding-top: calc(2 * var(--tpl-u)); }
.tpl-table-scroll { position: relative; max-width: 100%; min-width: 0; overflow-x: auto; margin-block: calc(3 * var(--tpl-u)); }
.tpl-comparison { width: 100%; min-width: 560px; border-collapse: collapse; text-align: start; }
.tpl-comparison th, .tpl-comparison td { text-align: start; padding: calc(2 * var(--tpl-u)); border-bottom: 1px solid var(--tpl-line); vertical-align: top; }
.tpl-comparison thead { background: var(--tpl-sheet); }
.tpl-comparison tbody th { font-weight: 500; }
.tpl-pricing-faq, .tpl-verdict { max-width: var(--tpl-measure); margin-block: calc(3 * var(--tpl-u)); }
.tpl-pricing-notes { max-width: var(--tpl-measure); margin-block: calc(3 * var(--tpl-u)); color: var(--tpl-mute); font-size: var(--tpl-size-sm); }
.tpl-pricing-notes > * { margin-block: 0 var(--tpl-u); }
.tpl-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.tpl-account-content { width: 100%; max-width: var(--tpl-measure); margin-inline: auto; min-width: 0; }
.tpl .account { font-family: var(--tpl-body); color: var(--tpl-ink); }
.tpl .account__title { font-family: var(--tpl-display); }
.tpl .account__signed-in, .tpl .account__empty, .tpl .account-purchase__purchased, .tpl .account-purchase__date, .tpl .account-purchase__note { color: var(--tpl-mute); }
.tpl .account__purchases { list-style: none; padding: 0; margin-block: calc(3 * var(--tpl-u)); }
.tpl .account-purchase { padding: calc(3 * var(--tpl-u)); border-block-start: 1px solid var(--tpl-line); background: var(--tpl-sheet); }
.tpl .account-purchase:last-child { border-block-end: 1px solid var(--tpl-line); }
.tpl .account-purchase__plan { margin-top: 0; }
.tpl .account-purchase__status { font-weight: 600; }
.tpl .account-purchase__credits { font-family: var(--tpl-measure-font); }
.tpl .account-purchase form { margin-block: var(--tpl-u); }
.tpl .account-purchase__use, .tpl .account-purchase__manage { display: inline-block; max-width: 100%; padding: var(--tpl-u) calc(2 * var(--tpl-u)); border: 1px solid var(--tpl-accent); border-radius: var(--tpl-radius-button); background: var(--tpl-accent); color: var(--tpl-accent-ink); font: 600 var(--tpl-size-body)/1.5 var(--tpl-body); text-decoration: none; white-space: normal; cursor: pointer; }
.tpl .account-purchase__receipt, .tpl .account__sign-out { display: inline-block; margin-block: var(--tpl-u); color: var(--tpl-accent); }
.tpl-pricing .tpl-plan, .tpl-compare .tpl-page, .tpl-account-content { overflow-wrap: anywhere; }
@media (max-width: 880px) {
  .tpl-plans { grid-template-columns: minmax(0, 1fr); }
}
