/* Body and footer additions. Existing palette, header and background rules stay in site.css. */
:root{--fs-hero:clamp(2.25rem,4.5vw + 1rem,4rem);--fs-h2:clamp(1.5rem,1.6vw + 1rem,2.25rem);--fs-h3:1.125rem;--fs-body:1rem;--fs-small:.875rem;--fs-micro:.75rem;--lh-tight:1.15;--lh-body:1.6;--tracking-hero:-.02em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-16:64px;--sp-24:96px;--section-y:clamp(64px,8vw,128px);--btn-h:40px;--btn-px:18px;--btn-radius:999px;--btn-fs:.9375rem;--measure:68ch;--measure-narrow:52ch;--grid-gap:var(--sp-6);--radius-card:var(--radius-lg);--dur-ui:160ms;--ease-ui:var(--ease-out)}
main h1{font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:var(--tracking-hero);font-weight:600;text-wrap:balance}main h2{font-size:var(--fs-h2);line-height:var(--lh-tight);text-wrap:balance}main h3{font-size:var(--fs-h3);font-weight:600}main p{text-wrap:pretty}main .lede{max-width:var(--measure-narrow);font-size:var(--fs-h3);line-height:var(--lh-body);color:var(--text-2)}
main .section{padding:var(--section-y) 0}main .section-head{margin-bottom:var(--sp-12)}main .section+.section{border-top:1px solid var(--line)}main .eyebrow{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}main .narrow,main .prose{max-width:var(--measure)}main .prose{font-size:var(--fs-body);line-height:var(--lh-body)}main .prose h2{margin:var(--sp-12) 0 var(--sp-4)}main .prose h3{margin:var(--sp-8) 0 var(--sp-3)}main .prose p,main .prose li{margin:0 0 var(--sp-4)}:lang(zh) main .prose{line-height:1.7}
main .btn,.company-footer .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--btn-h);padding:var(--sp-2) var(--btn-px);border-radius:var(--btn-radius);font-size:var(--btn-fs);font-weight:500;text-decoration:none;transition:background var(--dur-ui) var(--ease-ui)}main .btn-secondary{background:transparent;color:var(--text);border:1px solid var(--line-strong)}main .btn-secondary:hover{background:var(--hover)}main .hero-cta{display:flex;gap:var(--sp-3);flex-wrap:wrap}main .link-arrow{color:var(--text);font-weight:500;text-decoration:none}main .link-arrow::after{content:' →';display:inline-block;transition:transform var(--dur-ui) var(--ease-ui)}main .link-arrow:hover::after{transform:translateX(2px)}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6)}.product-card{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-8);border:1px solid var(--line);border-radius:var(--radius-card);color:var(--text);text-decoration:none;background:var(--bg-main);min-width:0}.product-card:hover{border-color:var(--line-strong)}.product-card h3,.product-card p{margin:0}.product-card .spec-line{margin-top:auto;font-size:var(--fs-small);color:var(--text-3)}.related{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--sp-8)}
.company-footer{border-top:1px solid var(--line);padding:var(--sp-16) 0 var(--sp-8);font-size:var(--fs-small);color:var(--text-2)}.company-footer .footer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(16.5rem,1.3fr);gap:var(--sp-6)}.company-footer .footer-col{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.company-footer a{color:var(--text-2);text-decoration:none;overflow-wrap:anywhere}.company-footer a:hover{text-decoration:underline}.company-footer .footer-label{font-size:var(--fs-small);font-weight:600;color:var(--text);margin:0 0 var(--sp-2)}.company-footer .footer-brand{align-items:flex-start;gap:var(--sp-3)}.company-footer .brand-name{color:var(--text);font-size:var(--fs-h3)}.company-footer .footer-tagline{margin:0;font-size:var(--fs-small);line-height:var(--lh-body)}.company-footer .footer-bottom{margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--line);color:var(--text-3)}
.news-list{list-style:none;padding:0;margin:var(--sp-12) 0 0}.news-list article{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:var(--sp-2) var(--sp-6);padding:var(--sp-8) 0;border-top:1px solid var(--line)}.news-list time,.news-list .tag{font-size:var(--fs-small);color:var(--text-3)}.news-list h2,.news-list h3,.news-list p,.news-list a{grid-column:2;margin:0}.news-list h2,.news-list h3{font-size:var(--fs-h3)}.news-list p{max-width:var(--measure)}
.brand-assets{display:flex;flex-wrap:wrap;gap:var(--sp-8);align-items:end;margin:var(--sp-8) 0}.brand-assets figure{margin:0}.brand-assets img{object-fit:contain}.swatches{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--sp-4)}.swatches span{display:block;height:var(--sp-16);border-radius:var(--radius);border:1px solid var(--line);margin-bottom:var(--sp-2)}.sw-ink{background:var(--ink)}.sw-paper{background:var(--bg-main)}.sw-stage{background:var(--stage)}.sw-accent{background:var(--accent)}.sw-dark{background:var(--bg-app)}
main .spec-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}main .spec-table th,main .spec-table td{text-align:left;padding:var(--sp-3) var(--sp-4) var(--sp-3) 0;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}main .spec-table th{font-weight:500;color:var(--text-3)}main .trust-row{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);list-style:none;padding:0;margin:var(--sp-8) 0 0;font-size:var(--fs-small)}.trust-row a{color:var(--text-2)}
main .shot-frame,main .exhibit-stage,main .plate-stage{box-shadow:none;transform:none}main .shot img{border:1px solid var(--line);border-radius:var(--radius-card)}main .shot figcaption{font-size:var(--fs-small);line-height:var(--lh-body);color:var(--text-3)}.shot-frame picture{display:block}.shot-frame .shot-light,.shot-frame .shot-dark{width:100%}.shot-frame img{height:auto}html[data-theme="dark"] .shot-light{display:none}html[data-theme="light"] .shot-dark{display:none}html[data-theme="dark"] .shot-dark,html[data-theme="light"] .shot-light{display:block}
main .choice{min-width:0}main .choice .btn{max-width:100%;text-align:center}main .choice[aria-current="true"]{border-color:var(--line-strong)}main .install-details summary,main #versions>div>details>summary{cursor:pointer;font-size:var(--fs-h3);font-weight:600;padding:var(--sp-4) 0}main .install-details .wrap{width:100%;padding:0}.section-anchor{margin-left:var(--sp-2);font-size:var(--fs-small);color:var(--text-3);opacity:0;text-decoration:none}h2:hover>.section-anchor,h3:hover>.section-anchor,.section-anchor:focus-visible{opacity:1}.prose pre{max-width:100%;overflow:auto}.prose code{overflow-wrap:anywhere}.prose .section{padding:var(--sp-8) 0}
main [data-reveal]{transition-duration:var(--dur-ui);transform:translateY(8px)}main [data-reveal].is-in{transform:none}
@media(max-width:1100px){.company-footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.product-grid{grid-template-columns:1fr}.company-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.company-footer .footer-contact{grid-column:1/-1}}
@media(max-width:720px){.news-list article{grid-template-columns:1fr}.news-list h2,.news-list h3,.news-list p,.news-list a{grid-column:1}}
@media(max-width:480px){.company-footer .footer-grid{grid-template-columns:1fr}.company-footer .footer-brand{max-width:var(--measure-narrow)}main .sha{overflow-wrap:anywhere;word-break:break-all}}
@media(prefers-reduced-motion:reduce){main [data-reveal],main .btn,main .link-arrow::after,main .product-card{transition:none!important;animation:none!important;transform:none}}
@media print{.site-header,.site-footer,.sub-nav,.hero-cta,.docs-sidebar,.docs-toc,.doc-toc{display:none!important}main{color:var(--text);background:var(--bg-main)}a[href^="http"]::after{content:' (' attr(href) ')';font-size:var(--fs-small)}}

/* Screenshot frames stay flat; this does not touch the hero or header. */
html.js main .plate .shot-frame,html.js main .exhibit-stage .shot-frame{transform:none;box-shadow:none;transition:none}main .shot-frame::after{display:none}main .exhibit-stage img{border:1px solid var(--line);border-radius:var(--radius-card)}
main .hero h1,main .page-hero h1{font-size:var(--fs-hero);line-height:var(--lh-tight);font-weight:600;max-width:var(--measure-narrow)}
@media print{body,main{color:light-dark(var(--ink),var(--ink-on));background:light-dark(var(--bg-main),var(--text))}main p,main li,main h1,main h2,main h3,main a{color:inherit}}
/* Long provider endpoints wrap; in-page navigation scrolls within its own row. */
main :not(pre)>code{overflow-wrap:anywhere;word-break:break-word}main .jump{max-width:100%;min-width:0;overflow-x:auto}
