:root{--bg:#F2F0E8;--card:#FFFFFF;--line:#E3E1D6;--line-soft:#EDEBE1;--ink:#14201A;--ink2:#455049;--mut:#8A928A;--on-dark:#F2F0E8;--on-dark-mut:#9AA69E;--green:#0E6E5A;--green2:#2E8B6E;--sand:#C99A4E;--grad-brand:linear-gradient(96deg,#0E6E5A,#2E8B6E 50%,#C99A4E);--green-tint:#E6F2ED;--green-line:#B9D6CC;--sand-tint:#FBF3DF;--sand-line:#EAD6A0;--good:#1E8E6A;--warn:#D99A13;--serious:#C46A2E;--crit:#C0392B;--sans:"Inter","PingFang SC","Noto Sans SC",system-ui,sans-serif;--mono:"JetBrains Mono","Menlo",ui-monospace,monospace;--sh-1:0 1px 2px rgba(20,32,26,.05);--sh-2:0 4px 14px rgba(20,32,26,.07);--sh-3:0 18px 44px rgba(20,32,26,.12);--page:1200px;--gutter:56px;--measure:720px;--deep-1:#10261F;--deep-2:#0A1A15}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}.prose p a:hover,.prose li a:hover,.prose td a:hover,.lead a:hover,.body a:hover,.dek a:hover,.x a:hover,.caliber a:hover,.legal a:hover,.tm a:hover{text-decoration:underline;text-underline-offset:3px}.prov:hover,.more:hover,.crumb:hover,.dp-card .go:hover{color:var(--green2)}.band .prov:hover,.band a:hover{color:#9fd9c4}.case .more:hover{color:inherit}img{max-width:100%;display:block}.wrap{max-width:var(--page);margin:0 auto;padding:0 var(--gutter)}.measure{max-width:var(--measure)}.measure.center{margin-left:auto;margin-right:auto}.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:center}.cols.wide-r{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.quad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.sec{padding:104px 0}.sec.tight{padding:72px 0}.sec+.sec{border-top:1px solid var(--line)}.sec-h{margin-bottom:52px}.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:0 0 18px}h1.display{font-size:clamp(46px,5vw,62px);font-weight:800;letter-spacing:-.035em;line-height:1.03;margin:0 0 22px}h2.display{font-size:clamp(34px,3.4vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.08;margin:0 0 18px}h3.sub{font-size:21px;font-weight:750;letter-spacing:-.015em;line-height:1.3;margin:0 0 10px}.lead{font-size:18px;color:var(--ink2);line-height:1.65;margin:0}.body{font-size:16px;color:var(--ink2);line-height:1.7;margin:0}.caption{font-size:13.5px;color:var(--ink2);line-height:1.6;margin:0}.grad{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.band{background:linear-gradient(168deg,var(--deep-1),var(--deep-2));color:var(--on-dark);position:relative;padding:88px 0}.band:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-brand)}.band h2.display,.band h1.display{color:var(--on-dark)}.band .lead,.band .body{color:#b9c6bf}.band .eyebrow{color:#7fc4ac}.band .caption{color:#b9c6bf}.band .prov{color:#7fc4ac}.band-cta{display:flex;align-items:flex-end;justify-content:space-between;gap:56px;flex-wrap:wrap}.band-cta .t{max-width:640px}.band-cta .a{display:flex;gap:12px;flex:none;padding-bottom:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:11px;font-size:15px;font-weight:650;padding:13px 22px;border:1px solid transparent;cursor:pointer;line-height:1.2;white-space:nowrap;font-family:inherit}.btn.primary{background:var(--green);color:#fff}.btn.primary:hover{background:#0b5b4b}.btn.secondary{background:var(--card);color:var(--ink);border-color:var(--line)}.btn.secondary:hover{border-color:var(--green-line);color:var(--green)}.btn.ghost{background:transparent;color:var(--green);padding:13px 4px}.btn.sm{font-size:13.5px;padding:9px 16px;border-radius:9px}.band .btn.primary{background:var(--card);color:var(--ink)}.band .btn.primary:hover{background:#fff}.band .btn.secondary{background:transparent;color:var(--on-dark);border-color:#f2f0e847}.band .btn.secondary:hover{border-color:#f2f0e899}.code{--code-bg:#E8E3D1;--code-line:#D6CFB8;position:relative;background:var(--code-bg);border:1px solid var(--code-line);border-radius:8px;overflow:hidden;font-family:var(--mono);max-width:100%;box-shadow:inset 0 1px 2px #14201a12}.code .code-h{display:flex;align-items:center;gap:10px;padding:10px 46px 0 18px}.code .code-h+pre{padding-top:6px}.code .tag{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#57625b}.code .ro{margin-left:auto;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#57625b}.code .copy{position:absolute;top:8px;right:8px;width:28px;height:28px;padding:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:#57625b;background:#ffffff8c;border:1px solid var(--code-line);cursor:pointer;opacity:0;transition:opacity .18s,color .18s,background .18s,border-color .18s}.code:hover .copy,.code .copy:focus-visible,.code .copy.done{opacity:1}.code .copy:hover{color:var(--green);border-color:var(--green-line);background:var(--green-tint)}.code .copy .si{width:14px;height:14px;vertical-align:0}.code .copy .ok-glyph{display:none}.code .copy.done{color:var(--green);border-color:var(--green-line);background:var(--green-tint)}.code .copy.done .cp-glyph{display:none}.code .copy.done .ok-glyph{display:inline-block}@media(hover:none){.code .copy{opacity:1}}.code pre{margin:0;padding:14px 18px;font-size:13.5px;line-height:1.9;color:var(--ink);overflow-x:auto;tab-size:2;background:transparent}.code.sm pre{font-size:12.5px;padding:12px 15px}.code .cm{color:#57625b}.code .cmd{color:var(--green);font-weight:700}.code .arg{color:#704c1c}.code .ok{color:#196b41;font-weight:700}.code .pr{color:#5f6963;user-select:none}.code pre .ln{display:block}.code .hl{display:block;background:#0e6e5a21;margin:0 -18px;padding:0 18px}.code.out{--code-bg:#E3DDC9}.code.out pre{color:var(--ink2);user-select:none}.foot-slot{position:relative;display:flex;align-items:center;gap:11px;min-height:48px;background:#efebdd;border:1px solid var(--line);border-radius:11px;padding:8px 44px 8px 10px;box-shadow:inset 0 1px 2px #14201a0f;font-family:var(--mono);font-size:13px;color:var(--ink);max-width:100%}.foot-slot .pb{flex:none;width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--line);color:var(--green)}.foot-slot .pb .si{width:13px;height:13px;vertical-align:0}.foot-slot code{font-family:inherit;white-space:nowrap;overflow-x:auto;min-width:0}.foot-slot .cmd{color:var(--green);font-weight:700}.foot-slot .arg{color:#704c1c}.foot-slot .copy{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:28px;height:28px;padding:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:#57625b;background:var(--card);border:1px solid var(--line);cursor:pointer;opacity:0;transition:opacity .18s,color .18s,border-color .18s}.foot-slot:hover .copy,.foot-slot .copy:focus-visible,.foot-slot .copy.done{opacity:1}.foot-slot .copy:hover,.foot-slot .copy.done{color:var(--green);border-color:var(--green-line)}.foot-slot .copy .si{width:14px;height:14px;vertical-align:0}.foot-slot .copy .ok-glyph,.foot-slot .copy.done .cp-glyph{display:none}.foot-slot .copy.done .ok-glyph{display:inline-block}@media(hover:none){.foot-slot .copy{opacity:1}}.evid{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--line)}.evid .pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.evid .pair.one{grid-template-columns:1fr}.evid .pair div{min-width:0}.evid .pair b{display:block;font-family:var(--mono);font-size:19px;font-weight:700;color:var(--ink);letter-spacing:0;font-variant-numeric:tabular-nums;line-height:1.1}.evid .pair span{display:block;margin-top:5px;font-size:12px;line-height:1.4;color:var(--ink2)}.evid .w{margin:13px 0 0;font-size:12.5px;line-height:1.55;color:var(--ink2)}.evid .w .prov{font-size:12.5px;margin-left:2px;vertical-align:baseline}.band .evid{border-top-color:#f2f0e829}.band .evid .pair b{color:var(--on-dark)}.band .evid .pair span,.band .evid .w{color:#b9c6bf}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--sh-1)}.stat{font-family:var(--mono);font-size:clamp(38px,4vw,52px);font-weight:700;letter-spacing:0;line-height:1.05;margin:0 0 12px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.prov{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:650;color:var(--green)}.prov:before{content:"";width:13px;height:13px;flex:none;background:currentColor;-webkit-mask:var(--m-arr) center/contain no-repeat;mask:var(--m-arr) center/contain no-repeat}:root{--m-arr:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 12h13'/><path d='m12.5 7 5 5-5 5'/></svg>")}.caliber{font-family:var(--mono);font-size:12.5px;color:var(--ink2);margin-top:10px}.band .caliber{color:#8fa79c}.rule{height:1px;background:var(--line);border:0;margin:0}.nav{position:sticky;top:0;z-index:50;background:#f2f0e8e0;backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav .inner{display:flex;align-items:center;gap:34px;padding:16px var(--gutter);max-width:var(--page);margin:0 auto}.nav a.item{font-size:14.5px;font-weight:550;color:var(--ink2)}.nav a.item:hover,.nav a.item.on{color:var(--green)}.nav .sp{flex:1}.wm{font-weight:800;font-size:20px;letter-spacing:-.03em;display:inline-flex;align-items:center;gap:9px}.wm .mk{width:19px;height:19px;border-radius:50%;background:var(--grad-brand);position:relative;flex:none;box-shadow:0 0 0 3px var(--bg),0 0 0 4px var(--green-line)}.wm .mk:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--bg)}.wm i{font-style:normal;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.foot{border-top:1px solid var(--line);padding:52px 0 64px;font-size:13.5px;color:var(--ink2)}.tm{display:block;margin-top:7px;color:var(--mut)}.legal .tm{color:var(--mut)}.foot.tight{padding:52px 0 34px}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}.foot .tag{font-size:13.5px;color:var(--ink2);max-width:34ch;margin:14px 0 0;line-height:1.6}.foot h4{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin:0 0 14px}.foot .col a{display:block;font-size:14px;color:var(--ink2);margin-bottom:10px}.foot .col a:hover{color:var(--green)}.foot .col a{display:flex;align-items:center;gap:8px}.bmark.s15{width:15px;height:15px}.foot .col a .si{width:14px;height:14px;flex:none}.legal{border-top:1px solid var(--line-soft);padding:20px 0 48px}.legal .wrap{font-family:var(--mono);font-size:12.5px;color:var(--ink2);line-height:1.7}.callout{display:flex;gap:13px;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:16px 18px;margin:0 0 14px}.callout .ic{flex:none;width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;background:var(--green-tint);color:var(--green)}.callout .t{font-size:14px;font-weight:750;color:var(--ink);margin:0 0 3px}.callout .x{font-size:14px;color:var(--ink2);line-height:1.62}.callout .x b{color:var(--ink)}.callout .x a{color:var(--green);font-weight:650}.callout.tip{background:var(--green-tint);border-color:var(--green-line)}.callout.tip .ic{background:var(--card)}.callout.warn{background:var(--sand-tint);border-color:var(--sand-line)}.callout.warn .ic{background:#f3e4be;color:var(--serious)}.callout.danger{background:var(--crit-tint);border-color:var(--crit-line)}.callout.danger .ic{background:#f3d3ce;color:var(--crit)}.tablewrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);box-shadow:var(--sh-1)}table.dt{width:100%;border-collapse:collapse}.dt th{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);text-align:left;padding:12px 18px;background:var(--bg);border-bottom:1px solid var(--line)}.dt td{padding:12px 18px;border-bottom:1px solid var(--line-soft);font-size:14px;color:var(--ink2)}.dt tr:last-child td{border-bottom:0}.dt td b{color:var(--ink)}.dt td .mono{font-family:var(--mono);font-weight:700;color:var(--ink)}.dt td .pass{font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--good)}.tbadge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;border-radius:999px;padding:4px 11px;border:1px solid var(--line);background:var(--card);color:var(--ink2)}.tb-field{background:var(--green-tint);border-color:var(--green-line);color:var(--green)}.tb-camp{background:var(--sand-tint);border-color:var(--sand-line);color:#8a6a22}.tb-tut{background:var(--green);border-color:var(--green);color:var(--on-dark)}.meta{font-family:var(--mono);font-size:12.5px;color:var(--ink2);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.meta b{color:var(--ink);font-weight:600}.meta .sep{color:var(--mut)}.prose h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:42px 0 14px;scroll-margin-top:96px}.prose h3{font-size:18px;font-weight:750;margin:26px 0 10px}.prose p{font-size:16px;color:var(--ink2);line-height:1.75;margin:0 0 16px}.prose p b,.prose li b{color:var(--ink)}.prose ul,.prose ol{margin:0 0 18px;padding-left:22px;color:var(--ink2);font-size:16px;line-height:1.75}.prose li{margin-bottom:6px}.prose a{color:var(--green);font-weight:600}.prose code{font-family:var(--mono);font-size:13.5px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:2px 6px;color:var(--ink);white-space:nowrap}.prose>.code,.prose>.callout,.prose>.tablewrap,.prose>.fig{margin-bottom:22px}.toc .h{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);margin:0 0 10px}.toc a{display:block;font-size:13.5px;color:var(--ink2);padding:6px 12px;border-radius:8px;line-height:1.4}.toc a:hover{color:var(--ink);background:var(--line-soft)}.toc a.on{color:var(--green);font-weight:650;background:var(--green-tint)}.fig{margin:0 0 24px}.fig figcaption{font-size:13.5px;color:var(--ink2);line-height:1.6;margin-top:10px}.fig figcaption .fno{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink2);margin-right:8px}.si{width:16px;height:16px;flex:none;display:inline-block;vertical-align:-3px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.si.s13{width:13px;height:13px;vertical-align:-2px}.si.s14{width:14px;height:14px;vertical-align:-2px}.si.s18{width:18px;height:18px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.nav .nav-links{display:contents}.nav .nav-more{display:none;position:relative}.nav .nav-more summary{list-style:none;cursor:pointer;width:38px;height:36px;border-radius:9px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink2);background:transparent}.nav .nav-more summary::-webkit-details-marker{display:none}.nav .nav-more[open] summary,.nav .nav-more summary:hover{color:var(--green);border-color:var(--green-line);background:var(--green-tint)}.nav .nav-drop{position:absolute;top:calc(100% + 11px);right:0;min-width:210px;z-index:60;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-3);padding:8px}.nav .nav-drop a{display:block;font-size:14px;font-weight:600;color:var(--ink2);padding:9px 12px;border-radius:9px}.nav .nav-drop a+a{margin-top:2px}.nav .nav-drop a:hover,.nav .nav-drop a.on{background:var(--green-tint);color:var(--green)}.nav .nav-drop .only-xs{display:none}@media(max-width:980px){.nav .inner{gap:18px}.nav .nav-links{display:none}.nav .nav-more{display:block}}@media(max-width:480px){.nav .inner{gap:12px}.nav a.item.signin{display:none}.nav .nav-drop .only-xs{display:block}.wm{font-size:18px}}.legal .wrap a{color:inherit}@media(max-width:640px){:root{--gutter:20px}.sec{padding:64px 0}.sec.tight{padding:52px 0}.band{padding:60px 0}.sec-h{margin-bottom:36px}.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>:first-child{grid-column:1/-1}.band-cta{gap:24px}.band-cta .a{flex-wrap:wrap;flex:1 1 100%}}
