:root{
--primary:#9E1B24;--primary-hover:#86161E;--accent:#E2683C;--dark:#141830;--light:#FCFCFD;--surface:#FFFFFF;
--lav:#E7E5F6;--lav-ink:#1F1C4A;--sky:#DFEBF3;--sky-ink:#12344A;--sage:#E2EDE3;--sage-ink:#1D3A26;--cream:#F4EDD8;--cream-ink:#4A3A10;
--ink:#141830;--muted:#5B5F78;--soft:#65697E;--well:#F4F4F8;--row-alt:#F7F7FA;--line:#E1E1EA;--line-dark:#53576B;--input-line:#9295A8;
--lav-muted:#4A4775;--sky-muted:#3A5A70;--sage-muted:#405A47;--cream-muted:#65552D;
--f-head:"Chivo",-apple-system,"Helvetica Neue","Arial","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK TC","Hiragino Kaku Gothic ProN","Yu Gothic","Malgun Gothic",sans-serif;
--f-body:"Inter",-apple-system,"Segoe UI","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK TC","Hiragino Kaku Gothic ProN","Yu Gothic","Malgun Gothic",sans-serif;
--f-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,"PingFang SC","Microsoft YaHei",monospace;
--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-card:1.25rem;--text-reading:1.5rem;--text-section:2.5rem;--text-display:3.625rem;
--lh-body:1.6;--lh-small:1.5;--lh-heading:1.2;--lh-display:1.16;
--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:2.5rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;
--space-field:.5rem;--space-action:2rem;--space-close:13.75rem;
--hero-top:3.5rem;--hero-crumb-top:3rem;--crumb-after:1.5rem;
--gutter:1.5rem;--wrap:75rem;--wrap-wide:85rem;--wrap-reading:48rem;
--r-s:.625rem;--r-m:1rem;--r-l:1.75rem;--r-panel:2.25rem;--r-pill:999px;
--shadow:0 1px 2px rgba(20,24,48,.05),0 14px 34px -16px rgba(31,28,74,.22);
--shadow-menu:0 12px 32px rgba(20,24,48,.12);
--control-h:2.5rem;--control-lg:3rem;--lang-h:1.875rem;--nav-h:4.25rem;
--focus:0 0 0 3px rgba(158,27,36,.25);--duration:180ms;--ease:cubic-bezier(.2,.7,.2,1);
--hero-bg:radial-gradient(900px 520px at 12% 18%,#E7E5F6 0%,rgba(231,229,246,0) 70%),radial-gradient(760px 520px at 92% 30%,#DFEBF3 0%,rgba(223,235,243,0) 70%),radial-gradient(700px 420px at 50% 100%,#EFEDF9 0%,rgba(239,237,249,0) 70%),linear-gradient(180deg,#FCFCFD 0%,#F2F1FA 100%);
--close-bg:linear-gradient(180deg,#FCFCFD 0%,#ECEAF8 30%,#E7E5F6 55%,#E9EEF7 80%,#FCFCFD 100%);
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-font-smoothing:antialiased;text-size-adjust:100%;scroll-padding-top:6rem}
body{background:var(--light);color:var(--ink);font-family:var(--f-body);font-size:var(--text-base);line-height:var(--lh-body)}
main{overflow-x:clip;min-width:0}
h1,h2,h3,h4,h5,h6{font-family:var(--f-head);font-weight:800;overflow-wrap:break-word}
h1{font-size:var(--text-display);line-height:var(--lh-display);letter-spacing:-.028em}
h2{font-size:var(--text-section);line-height:var(--lh-heading);letter-spacing:-.025em}
h3{font-size:var(--text-card);line-height:1.35;letter-spacing:-.015em}
h4{font-size:var(--text-base);line-height:1.4}
h5{font-size:var(--text-sm);line-height:var(--lh-small)}
h6{font-size:var(--text-xs);line-height:var(--lh-small)}
p,li,blockquote,dt,dd,label{font-size:var(--text-base);line-height:var(--lh-body)}
small,figcaption{font-size:var(--text-xs);line-height:var(--lh-small)}
th,td{font-size:var(--text-sm);line-height:var(--lh-body)}
code{font-family:var(--f-mono);font-size:var(--text-sm);line-height:var(--lh-body)}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
button,select,input,textarea{max-width:100%}
button{line-height:var(--lh-small)}
img,svg,video{display:block;max-width:100%}
img{height:auto}
ul,ol{padding-inline-start:1.5rem}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
::selection{background:var(--lav);color:var(--lav-ink)}
.wrap,.container{width:calc(100% - var(--gutter)*2);max-width:var(--wrap);margin-inline:auto}
.container-wide{width:calc(100% - var(--gutter)*2);max-width:var(--wrap-wide);margin-inline:auto}
.container-reading{width:calc(100% - var(--gutter)*2);max-width:var(--wrap-reading);margin-inline:auto}
:where(.wrap,.container,.container-wide,.container-reading)>*{min-width:0}
:where(.grid,.c-card-grid,.c-usecase-cards)>*{min-width:0}
.grid{display:grid;gap:var(--space-4)}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stack{display:flex;flex-direction:column;gap:var(--space-4)}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.mono,.c-price,code,pre{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.text-xs{font-size:var(--text-xs);line-height:var(--lh-small)}
.text-sm{font-size:var(--text-sm);line-height:var(--lh-body)}
.text-base{font-size:var(--text-base);line-height:var(--lh-body)}
.text-muted{color:var(--muted)}
.text-center{text-align:center}
.mt-3{margin-top:var(--space-3)}
.mt-4{margin-top:var(--space-4)}
.mt-5{margin-top:var(--space-5)}
.mt-7{margin-top:var(--space-7)}
.gap-2{gap:var(--space-2)}
.gap-3{gap:var(--space-3)}
.gap-4{gap:var(--space-4)}
.py-8{padding-block:var(--space-8)}
.py-9{padding-block:var(--space-9)}
.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}
.reveal{opacity:1;transform:none}
.reveal.is-reveal-pending{opacity:0;transform:translateY(14px);transition:opacity 480ms var(--ease),transform 480ms var(--ease)}
.reveal.reveal-left.is-reveal-pending{transform:translate(-14px,0)}
.reveal.reveal-right.is-reveal-pending{transform:translate(14px,0)}
@media(min-width:90rem){:root{--gutter:2rem}}
@media(max-width:64rem){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:42rem){
:root{--gutter:1rem;--text-display:2.25rem;--text-section:2rem;--hero-top:3.5rem;--space-close:8rem}
.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}
.reveal.is-reveal-pending,.reveal.reveal-left.is-reveal-pending,.reveal.reveal-right.is-reveal-pending{opacity:1;transform:none}
}
