/* TUTAMEN — bundled stylesheet (generated; edit tokens/base/shell/reading + fonts.css) */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/space-grotesk-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-400-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-500-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/inter-600-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/inter-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/inter-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/inter-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/inter-700-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/inter-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/inter-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/inter-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-600-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --graph:#14181C;     
  --graph-2:#191E23;   
  --off:#F4F2ED;       
  --em:#1F6E55;        
  --em-hover:#27855F;
  --em-on-dark:#34A87D; 
  --amber:#C8842B;     
  --line:#2A3036;      
  --mut:#8A949B;       
  --paper:#FFFFFF;     
  --paper-2:#FCFBF9;   
  --ink:#16191C;       
  --ink-2:#3A4248;     
  --rule:#E6E3DC;      
  --link:#1A5C48;      
  --link-hover:#123F31;
  --amber-on-light:#9A6418; 
  --mark:rgba(31,110,85,.12); 
  --f-display:"Space Grotesk", system-ui, sans-serif;
  --f-body:"Inter", system-ui, -apple-system, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;
  --f-cjk:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif; 
  --t-h1:clamp(34px,5vw,52px);
  --t-h2:clamp(24px,3vw,32px);
  --t-h3:20px;
  --t-body:18px;          
  --t-ui:15px;            
  --t-small:13px;
  --t-mono:12.5px;
  --lh-read:1.7;
  --lh-tight:1.1;
  --measure:70ch;         
  --gutter:clamp(20px,4vw,44px);
  --maxw:1320px;
  --maxw-read:760px;
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:96px;
  --radius:10px;
  --radius-lg:14px;
  --shadow:0 18px 40px -28px rgba(0,0,0,.45);
  --ease:.2s cubic-bezier(.2,.6,.2,1);
}
html.zh{ --f-body:var(--f-cjk); --lh-read:1.85; }   
html.zh em, html.zh i{ font-style:normal; font-weight:600; }
html.zh .answer .tldr, html.zh .kicker, html.zh .kicker-l{ letter-spacing:normal; }
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ margin:0; font-family:var(--f-body); font-size:var(--t-ui); line-height:1.5;
  background:var(--graph); color:var(--off); -webkit-font-smoothing:antialiased; }
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,p,ul,ol,dl,figure{ margin:0; }
button{ font:inherit; cursor:pointer; }
:focus-visible{ outline:2px solid var(--amber); outline-offset:3px; border-radius:3px; }
.skip{ position:absolute; left:-9999px; top:0; background:var(--off); color:var(--graph);
  padding:10px 16px; z-index:200; border-radius:0 0 8px 0; }
.skip:focus{ left:0; }
.vh{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; animation:none !important; scroll-behavior:auto; } }
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.read{ max-width:var(--maxw-read); margin-inline:auto; }
.flow > * + *{ margin-top:var(--s3); }
.btn{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:var(--t-ui);
  text-decoration:none; padding:13px 24px; border-radius:8px; border:1px solid transparent;
  transition:background var(--ease),border-color var(--ease),color var(--ease); }
.btn-primary{ background:var(--em); color:#fff; }
.btn-primary:hover{ background:var(--em-hover); }
.btn-light{ background:var(--off); color:var(--graph); }
.btn-light:hover{ background:#fff; }
.btn-ghost-d{ color:var(--off); border-color:var(--line); }
.btn-ghost-d:hover{ border-color:var(--mut); }
.btn-ghost-l{ color:var(--ink); border-color:var(--rule); }
.btn-ghost-l:hover{ border-color:var(--ink-2); }
.topbar{ border-bottom:1px solid var(--line); font-family:var(--f-mono); font-size:var(--t-mono);
  letter-spacing:.05em; color:var(--mut); }
.topbar .row{ display:flex; justify-content:space-between; gap:16px; padding-block:10px; flex-wrap:wrap; }
.topbar .row > div span + span::before{ content:"/"; margin:0 9px; color:var(--line); }
.site-head{ position:sticky; top:0; z-index:100; background:var(--graph); border-bottom:1px solid var(--line); }
.site-head .row{ display:flex; align-items:center; gap:24px; padding-block:18px; }
.brandmark{ font-family:var(--f-display); font-weight:700; font-size:22px; letter-spacing:-.01em;
  text-decoration:none; color:var(--off); }
.brandmark .dot{ color:var(--em-on-dark); }
.mainnav{ display:flex; gap:26px; margin-left:auto; flex-wrap:wrap; }
.mainnav a{ text-decoration:none; color:var(--off); opacity:.82; font-size:var(--t-ui); }
.mainnav a:hover,.mainnav a[aria-current="page"]{ opacity:1; color:var(--em-on-dark); }
.head-actions{ display:flex; align-items:center; gap:16px; }
.langsw{ position:relative; font-family:var(--f-mono); font-size:var(--t-mono); }
.langsw button{ background:transparent; border:1px solid var(--line); color:var(--off);
  border-radius:999px; padding:6px 12px; letter-spacing:.04em; }
.langsw button:hover{ border-color:var(--mut); }
.langsw ul{ position:absolute; right:0; top:calc(100% + 8px); list-style:none; margin:0; padding:6px;
  background:var(--graph-2); border:1px solid var(--line); border-radius:10px; min-width:140px;
  box-shadow:var(--shadow); display:none; }
.langsw[data-open="true"] ul{ display:block; }
.langsw li a{ display:block; padding:8px 12px; border-radius:6px; text-decoration:none; color:var(--off); opacity:.85; }
.langsw li a:hover,.langsw li a[aria-current="true"]{ background:rgba(255,255,255,.05); opacity:1; }
.navtoggle{ display:none; background:transparent; border:1px solid var(--line); color:var(--off);
  border-radius:8px; padding:8px 12px; }
@media (max-width:880px){
  .site-head .row{ flex-wrap:wrap; gap:14px; }
  .mainnav{ flex-direction:column; gap:4px; width:100%; order:3; margin-left:0;
    max-height:0; overflow:hidden; transition:max-height var(--ease); }
  .site-head[data-nav="open"] .mainnav{ max-height:480px; padding-top:8px; }
  .mainnav a{ padding:10px 0; border-bottom:1px solid var(--line); }
  .navtoggle{ display:inline-block; margin-left:auto; }
  .head-actions{ order:2; flex-basis:100%; justify-content:flex-end; }
}
.site-foot{ background:var(--graph); border-top:1px solid var(--line); color:var(--mut);
  padding-block:var(--s5) var(--s4); margin-top:var(--s6); }
.site-foot .cols{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:var(--s4); }
.site-foot .foot-h{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.1em;
  text-transform:uppercase; color:var(--off); margin:0 0 var(--s2); font-weight:500; }
.site-foot a{ color:var(--mut); text-decoration:none; display:block; padding:5px 0; }
.site-foot a:hover{ color:var(--off); }
.site-foot .legal{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-top:1px solid var(--line); margin-top:var(--s4); padding-top:var(--s3);
  font-size:var(--t-small); }
.site-foot .disclaimer{ max-width:46ch; line-height:1.55; }
@media (max-width:760px){ .site-foot .cols{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .site-foot .cols{ grid-template-columns:1fr; } }
.section-dark{ background:var(--graph); color:var(--off); }
.hero{ padding-block:var(--s6) var(--s4); text-align:center; }
.kicker{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.22em;
  text-transform:uppercase; color:var(--amber); margin-bottom:var(--s3); }
.hero h1{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h1);
  line-height:var(--lh-tight); letter-spacing:-.02em; max-width:17ch; margin-inline:auto; }
.hero h1 .rel{ color:var(--em-on-dark); }
.hero .lede{ font-size:17px; color:var(--mut); margin:var(--s3) auto 0; max-width:60ch; line-height:1.6; }
.ledger{ margin:var(--s4) auto 0; max-width:720px; background:var(--graph-2);
  border:1px solid var(--line); border-radius:var(--radius-lg); padding:var(--s3) var(--s4); text-align:left; }
.ledger .ln{ display:flex; justify-content:space-between; align-items:center; gap:20px; }
.ledger .lbl{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.06em;
  text-transform:uppercase; color:var(--mut); }
.ledger .amt{ font-family:var(--f-mono); font-weight:600; font-size:clamp(26px,4vw,34px); letter-spacing:-.01em; }
.ledger .meta{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--mut); margin-top:4px; }
.ledger .arrow{ text-align:center; color:var(--line); font-size:22px; margin-block:var(--s2); }
.ledger .released .amt{ color:var(--em-on-dark); }
.pill{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.05em;
  padding:5px 11px; border-radius:999px; white-space:nowrap; }
.pill.held{ color:var(--amber); background:rgba(200,132,43,.13); border:1px solid rgba(200,132,43,.4); }
.pill.rel{ color:var(--em-on-dark); background:rgba(31,110,85,.15); border:1px solid rgba(31,110,85,.5); }
@media (max-width:560px){
  .ledger{ padding:var(--s3); }
  .ledger .ln{ flex-wrap:wrap; gap:10px; }
  .ledger .amt{ font-size:clamp(22px,7vw,30px); }
}
.pricestrip{ margin:var(--s3) auto 0; max-width:720px; display:flex; align-items:center;
  gap:10px; flex-wrap:wrap; justify-content:center; }
.pricestrip .pl{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.04em;
  text-transform:uppercase; color:var(--mut); }
.chip{ font-size:13px; color:var(--off); background:var(--graph-2);
  border:1px solid var(--line); border-radius:999px; padding:6px 13px; }
.chip b{ font-family:var(--f-mono); color:var(--em-on-dark); font-weight:600; margin-left:5px; }
.hero-cta{ margin-top:var(--s4); display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.proof{ border-top:1px solid var(--line); }
.proof .grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.proof .cell{ padding-block:var(--s4); border-right:1px solid var(--line); padding-right:var(--s3); }
.proof .cell:last-child{ border-right:none; }
.proof .num{ font-family:var(--f-mono); font-weight:600; font-size:clamp(24px,3.5vw,30px); color:var(--em-on-dark); }
.proof .cap{ font-size:13px; color:var(--mut); margin-top:9px; max-width:22ch; line-height:1.45; }
@media (max-width:760px){
  .proof .grid{ grid-template-columns:1fr 1fr; }
  .proof .cell:nth-child(2){ border-right:none; }
}
.cta-band{ background:var(--graph-2); border-block:1px solid var(--line);
  padding-block:var(--s5); text-align:center; }
.cta-band h2{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h2);
  color:var(--off); max-width:24ch; margin-inline:auto; }
.cta-band p{ color:var(--mut); margin-top:var(--s2); max-width:52ch; margin-inline:auto; }
.cta-band .row{ margin-top:var(--s3); display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.practices{ padding-block:var(--s6); }
.practices .head{ display:flex; justify-content:space-between; align-items:end; gap:20px;
  margin-bottom:var(--s4); flex-wrap:wrap; }
.practices h2{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h2); color:var(--off); }
.practices .head a{ color:var(--em-on-dark); text-decoration:none; font-size:var(--t-ui);
  display:inline-block; padding:6px 0; }
.pcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.pcard{ background:var(--graph); padding:var(--s4) var(--s3); text-decoration:none; color:var(--off);
  display:flex; flex-direction:column; gap:10px; transition:background var(--ease); }
.pcard:hover{ background:var(--graph-2); }
.pcard .no{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--amber); }
.pcard .t{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h3); }
.pcard .d{ color:var(--mut); font-size:14px; line-height:1.5; }
.pcard .price{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--em-on-dark); margin-top:auto; }
@media (max-width:860px){ .pcards{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .pcards{ grid-template-columns:1fr; } }
.practice-hero{ padding-block:var(--s6) var(--s5); }
.practice-hero .crumb{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--mut); margin-bottom:var(--s2); }
.practice-hero h1{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h1);
  line-height:var(--lh-tight); letter-spacing:-.02em; max-width:18ch; }
.practice-hero .lede{ font-size:17px; color:var(--mut); margin-top:var(--s3); max-width:58ch; line-height:1.6; }
.practice-hero .row{ margin-top:var(--s4); display:flex; gap:14px; flex-wrap:wrap; }
.surface-read{ background:var(--paper); color:var(--ink); }
.surface-read .wrap{ }
.article{ padding-block:var(--s5) var(--s6); }
.article .read{ max-width:var(--maxw-read); }
.crumbs{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--ink-2); margin-bottom:var(--s3); }
.crumbs a{ color:var(--ink-2); text-decoration:none; }
.crumbs a:hover{ color:var(--link); }
.crumbs span::before{ content:"›"; margin:0 8px; color:var(--rule); }
.article h1{ font-family:var(--f-display); font-weight:700; font-size:var(--t-h1);
  line-height:1.12; letter-spacing:-.02em; color:var(--ink); }
.answer{ font-size:19px; line-height:1.55; color:var(--ink); background:var(--paper-2);
  border-left:3px solid var(--em); padding:var(--s2) var(--s3); border-radius:0 8px 8px 0;
  margin-top:var(--s3); }
.answer .tldr{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.08em;
  text-transform:uppercase; color:var(--em); display:block; margin-bottom:6px; }
.byline{ display:flex; align-items:center; gap:12px; margin-top:var(--s3); padding-block:var(--s2);
  border-block:1px solid var(--rule); font-size:14px; color:var(--ink-2); flex-wrap:wrap; }
.byline .mono{ font-family:var(--f-mono); font-size:var(--t-mono); }
.byline .author{ font-weight:600; color:var(--ink); }
.prose{ font-size:var(--t-body); line-height:var(--lh-read); color:var(--ink); margin-top:var(--s4); }
.prose > * + *{ margin-top:var(--s3); }
.prose h2{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h2); color:var(--ink);
  line-height:1.2; margin-top:var(--s5); }
.prose h3{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h3); color:var(--ink); margin-top:var(--s4); }
.prose p,.prose li{ color:var(--ink); }
.prose a{ color:var(--link); text-underline-offset:3px; }
.prose a:hover{ color:var(--link-hover); }
.prose ul,.prose ol{ padding-left:1.3em; }
.prose li + li{ margin-top:8px; }
.prose strong{ color:var(--ink); }
.prose mark{ background:var(--mark); padding:1px 3px; }
.prose code,.prose .data{ font-family:var(--f-mono); font-size:.92em; background:var(--paper-2);
  border:1px solid var(--rule); border-radius:4px; padding:1px 5px; }
.prose blockquote{ border-left:3px solid var(--amber); padding-left:var(--s3); color:var(--ink-2);
  font-size:20px; line-height:1.5; }
.prose table{ width:100%; border-collapse:collapse; font-size:15px; }
.prose th,.prose td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--rule); vertical-align:top; }
.prose th{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-2); }
.prose dl{ display:grid; grid-template-columns:max-content 1fr; gap:8px 18px; }
.prose dt{ font-weight:600; color:var(--ink); }
.prose dd{ margin:0; color:var(--ink-2); }
.faq{ margin-top:var(--s5); }
.faq h2{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h2); color:var(--ink); margin-bottom:var(--s2); }
.faq details{ border-bottom:1px solid var(--rule); }
.faq summary{ list-style:none; cursor:pointer; padding-block:var(--s2); font-weight:600;
  font-size:17px; color:var(--ink); display:flex; justify-content:space-between; gap:16px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-family:var(--f-mono); color:var(--em); }
.faq details[open] summary::after{ content:"–"; }
.faq .a{ padding-bottom:var(--s3); color:var(--ink-2); font-size:16px; line-height:1.65; max-width:62ch; }
.related{ margin-top:var(--s5); padding-top:var(--s3); border-top:1px solid var(--rule); }
.related h2{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-2); margin-bottom:var(--s2); }
.related a{ color:var(--link); text-decoration:none; display:block; padding:6px 0; }
.related a:hover{ text-decoration:underline; }
.services{ padding-block:var(--s5); background:var(--paper); }
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s3); }
.svc{ border:1px solid var(--rule); border-radius:var(--radius); padding:var(--s3); background:var(--paper);
  display:flex; flex-direction:column; gap:10px; }
.svc .name{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h3); color:var(--ink); }
.svc .price{ font-family:var(--f-mono); font-size:18px; color:var(--link); }
.svc .price .unit{ font-size:var(--t-mono); color:var(--ink-2); }
.svc .desc{ font-size:15px; color:var(--ink-2); line-height:1.55; }
.svc .star{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--amber-on-light); }
.svc .go{ margin-top:auto; color:var(--link); text-decoration:none; font-weight:600; font-size:14px; }
.fees-note{ margin-top:var(--s3); font-size:14px; color:var(--ink-2); max-width:60ch; }
@media (max-width:860px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .svc-grid{ grid-template-columns:1fr; } }
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s3); }
.person{ border:1px solid var(--rule); border-radius:var(--radius); padding:var(--s3);
  text-decoration:none; color:var(--ink); display:flex; gap:16px; align-items:center; transition:border-color var(--ease); }
.person:hover{ border-color:var(--ink-2); }
.mono-ph{ width:56px; height:56px; flex:0 0 56px; border-radius:50%; background:var(--graph);
  color:var(--off); display:grid; place-items:center; font-family:var(--f-display); font-weight:600; font-size:18px; }
.person .n{ font-weight:600; }
.person .r{ font-size:13px; color:var(--ink-2); margin-top:2px; }
.person .langs{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--link); margin-top:4px; }
@media (max-width:860px){ .team-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .team-grid{ grid-template-columns:1fr; } }
.feed{ display:grid; gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:var(--radius); overflow:hidden; }
.feed a{ background:var(--paper); padding:var(--s3); text-decoration:none; color:var(--ink); display:block; transition:background var(--ease); }
.feed a:hover{ background:var(--paper-2); }
.feed .tag{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--amber-on-light); }
.feed .t{ font-family:var(--f-display); font-weight:600; font-size:18px; margin-top:6px; }
.feed .m{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--ink-2); margin-top:6px; }
.lead-light{ padding-block:var(--s5) var(--s3); }
.lead-light .kicker-l{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.18em;
  text-transform:uppercase; color:var(--link); margin-bottom:var(--s2); }
.lead-light h1{ font-family:var(--f-display); font-weight:700; font-size:var(--t-h1); color:var(--ink); line-height:1.12; letter-spacing:-.02em; }
.lead-light p{ font-size:18px; color:var(--ink-2); margin-top:var(--s2); max-width:60ch; line-height:1.6; }
.casenote{ border:1px solid var(--rule); border-left:3px solid var(--em); border-radius:0 var(--radius) var(--radius) 0;
  background:var(--paper-2); padding:var(--s3); margin-top:var(--s4); }
.casenote .cn-kicker{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.1em;
  text-transform:uppercase; color:var(--em); margin-bottom:var(--s2); }
.casenote dl{ display:grid; grid-template-columns:max-content 1fr; gap:10px 18px; margin:0; }
.casenote dt{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-2); padding-top:2px; }
.casenote dd{ margin:0; color:var(--ink); }
.casenote .amt{ font-family:var(--f-mono); font-weight:600; color:var(--ink); }
.casenote .released{ color:var(--link); }
.casenote .cn-note{ margin-top:var(--s3); padding-top:var(--s2); border-top:1px solid var(--rule);
  font-size:13px; color:var(--ink-2); font-style:italic; }
@media (max-width:520px){ .casenote dl{ grid-template-columns:1fr; gap:4px 0; }
  .casenote dt{ margin-top:8px; } }
.figure{ margin-top:var(--s4); }
.figure img,.figure svg{ width:100%; height:auto; border:1px solid var(--rule); border-radius:var(--radius);
  background:var(--paper-2); }
.figure figcaption{ font-size:14px; color:var(--ink-2); margin-top:var(--s2); line-height:1.5; }
.jnote{ display:flex; gap:12px; align-items:flex-start; border:1px dashed var(--rule);
  border-radius:var(--radius); background:var(--paper-2); padding:var(--s2) var(--s3);
  margin-top:var(--s3); font-size:14px; color:var(--ink-2); line-height:1.55; }
.jnote .ic{ font-family:var(--f-mono); color:var(--link); font-weight:600; }
.de-guard{ border:1px dashed var(--amber); border-radius:var(--radius); background:rgba(200,132,43,.07);
  padding:var(--s2) var(--s3); margin-top:var(--s3); font-size:13.5px; color:var(--ink-2); line-height:1.55; }
.proof-l{ padding-block:var(--s4); }
.proof-l .tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s3); }
.proof-l .tile{ border:1px solid var(--rule); border-radius:var(--radius); padding:var(--s3); background:var(--paper); }
.proof-l .tile .n{ font-family:var(--f-mono); font-weight:600; font-size:clamp(22px,3vw,28px); color:var(--link); }
.proof-l .tile .c{ font-size:14px; color:var(--ink-2); margin-top:8px; line-height:1.5; }
@media (max-width:680px){ .proof-l .tiles{ grid-template-columns:1fr; } }
.howto{ counter-reset:step; margin-top:var(--s4); list-style:none; padding-left:0; }
.howto > li{ position:relative; padding-left:46px; margin-top:var(--s3); }
.howto > li::before{ counter-increment:step; content:counter(step); position:absolute; left:0; top:0;
  width:30px; height:30px; border-radius:50%; background:var(--mark); color:var(--link);
  font-family:var(--f-mono); font-weight:600; display:grid; place-items:center; font-size:14px; }
.howto .st{ font-weight:600; color:var(--ink); }
.cta-inline{ margin-top:var(--s5); padding:var(--s4); border-radius:var(--radius-lg);
  background:var(--paper-2); border:1px solid var(--rule); text-align:center; }
.cta-inline h2{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h3); color:var(--ink); }
.cta-inline p{ color:var(--ink-2); margin-top:8px; max-width:54ch; margin-inline:auto; font-size:15px; }
.cta-inline .row{ margin-top:var(--s3); display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.section-head-l{ margin-bottom:var(--s3); }
.section-head-l h2{ font-family:var(--f-display); font-weight:600; font-size:var(--t-h2); color:var(--ink); }
.section-head-l p{ color:var(--ink-2); margin-top:8px; max-width:60ch; line-height:1.6; }
.profile-head{ display:flex; gap:var(--s3); align-items:center; flex-wrap:wrap; }
.profile-head .mono-ph{ width:84px; height:84px; flex:0 0 84px; font-size:26px; }
.profile-head h1{ font-family:var(--f-display); font-weight:700; font-size:var(--t-h2); color:var(--ink); }
.profile-head .role{ font-size:15px; color:var(--ink-2); margin-top:4px; }
.profile-head .langs{ font-family:var(--f-mono); font-size:var(--t-mono); color:var(--link); margin-top:6px; }
.profile-meta{ display:grid; grid-template-columns:max-content 1fr; gap:8px 18px; margin-top:var(--s4);
  font-size:15px; }
.profile-meta dt{ font-family:var(--f-mono); font-size:var(--t-mono); letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-2); }
.profile-meta dd{ margin:0; color:var(--ink); }
.form{ display:grid; gap:var(--s3); max-width:560px; margin-top:var(--s4); }
.form .field{ display:grid; gap:6px; }
.form label{ font-size:14px; font-weight:600; color:var(--ink); }
.form input,.form select,.form textarea{ font:inherit; font-size:16px; color:var(--ink);
  background:var(--paper); border:1px solid var(--rule); border-radius:8px; padding:11px 13px; width:100%; }
.form input:focus,.form select:focus,.form textarea:focus{ border-color:var(--link); outline:none;
  box-shadow:0 0 0 3px var(--mark); }
.form textarea{ min-height:140px; resize:vertical; }
.form .consent{ display:flex; gap:10px; align-items:flex-start; font-size:14px; font-weight:400; color:var(--ink-2); }
.form .consent input{ width:auto; margin-top:3px; }
.form .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-status{ font-size:14px; margin-top:8px; min-height:1.2em; }
.form-status[data-state="error"]{ color:#9a2b2b; }
.form-status[data-state="success"]{ color:var(--link); }
.legal-note{ border:1px dashed var(--amber); border-radius:var(--radius); background:rgba(200,132,43,.07);
  padding:var(--s2) var(--s3); margin-bottom:var(--s4); font-size:14px; color:var(--ink-2); }
