:root{--bg: #fcfcfa;--bg-soft: #f4f4f0;--bg-tint: #eeede8;--ink: #121211;--ink-2: #55554f;--muted: #8c8c84;--line: #e8e7e1;--line-strong: #d4d3cc;--accent: #121211;--accent-ink: #121211;--accent-soft: #f1f0ea;--stage: #f3f2ed;--tone: #2f5bd8;--green: #3b7d63;--green-soft: #eaf2ed;--tone-ink: #2449b8;--tone-soft: #eaf0ff;--radius: 14px;--radius-s: 8px;--maxw: 1120px;--prose: 700px;--rail: 240px;--font: "Inter", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.8 var(--font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum","cv11"}img,svg,video{max-width:100%;height:auto}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}h1,h2,h3,h4{line-height:1.3;letter-spacing:-.02em;margin:0;font-weight:500}p,dl,dd,ol,ul{margin:0}::selection{background:#e6e2d6}.container{width:min(var(--maxw),100% - 48px);margin-inline:auto}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:var(--radius-s);z-index:100}.skip-link:focus{left:16px}.site-header{position:sticky;top:0;z-index:50;background:#f3f2edd6;backdrop-filter:saturate(1.2) blur(16px);color:var(--ink)}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}.brand{display:flex;align-items:center;gap:10px}.brand svg{width:28px;height:28px;flex:none}.brand strong{display:block;font-size:16px;font-weight:500;letter-spacing:0;line-height:1.25}.brand small{display:block;font-size:10.5px;opacity:.55;letter-spacing:.14em;line-height:1.4}.nav{display:flex;align-items:center;gap:28px}.nav a:not(.btn){color:#12121194;font-size:14.5px;transition:color .2s}.nav a:not(.btn):hover,.nav a[aria-current=page]{color:var(--ink)}.nav-menu{display:none}.nav-menu summary{list-style:none;cursor:pointer;padding:7px 14px;border:1px solid rgb(18 18 17 / .28);border-radius:999px;font-size:14px}.nav-menu summary::-webkit-details-marker{display:none}@media(max-width:860px){.site-header .container{height:64px}.site-header .container>.nav{display:none}.nav-menu{display:block;position:relative}.nav-menu .nav{display:none}.nav-menu[open] .nav{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;right:0;top:calc(100% + 10px);min-width:210px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px;box-shadow:0 24px 60px #1212111f}.nav-menu[open] .nav a:not(.btn){padding:9px 12px}.nav-menu[open] .nav .btn{margin-top:8px;justify-content:center}}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:999px;font-size:14.5px;font-weight:500;border:1px solid transparent;transition:background .2s,border-color .2s,color .2s;white-space:nowrap}.btn--primary{background:var(--ink);color:var(--bg)}.btn--primary:hover{background:#3a3a37}.btn--ghost{border-color:var(--line-strong);color:var(--ink)}.btn--ghost:hover{border-color:var(--ink)}.btn--small{padding:7px 16px;font-size:13.5px}.btn--light{background:var(--ink);color:var(--bg)}.btn--light:hover{background:#3a3a37}.btn--line{border-color:var(--line-strong);color:var(--ink)}.btn--line:hover{border-color:var(--ink)}.arrow{display:inline-block;transition:transform .25s}a:hover>.arrow,.work-row:hover .arrow,.row-item:hover .arrow{transform:translate(3px,-3px)}.tag{display:inline-flex;align-items:center;padding:1px 10px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2);font-size:12.5px;line-height:1.75}.tags{display:flex;flex-wrap:wrap;gap:6px}.pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--line-strong)}.pill--green:before{background:var(--green)}.pill--blue:before{background:var(--ink)}.pill--gold:before{background:var(--tone)}.eyebrow,.label{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:400}.label b{color:var(--ink);font-weight:500}.text-link{color:var(--ink);font-size:14px;white-space:nowrap;border-bottom:1px solid var(--line-strong);padding-bottom:2px;transition:border-color .2s}.text-link:hover{border-color:var(--ink)}.section{padding:112px 0}.section+.section:not(.section--soft):not(.section--ink){border-top:1px solid var(--line)}.section--soft{background:var(--bg-soft)}.section--tight{padding:72px 0}.section--ink{background:var(--stage);color:var(--ink)}.split{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:72px}.split>header{align-self:start;position:sticky;top:104px}.split>header h2{font-size:24px;margin-top:14px;line-height:1.35}.split>header p{color:var(--ink-2);font-size:14.5px;margin-top:12px}.split>header .text-link{display:inline-block;margin-top:20px}.section--ink .split>header p,.section--ink .label{color:#1212118c}.section--ink .label b{color:var(--ink)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:40px}.section-head h2{font-size:clamp(24px,2.8vw,32px);margin-top:12px}.section-head p{color:var(--ink-2);margin-top:10px;max-width:620px}.grid{display:grid;gap:20px}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}@media(max-width:960px){.split{grid-template-columns:1fr;gap:32px}.split>header{position:static}.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}.section{padding:72px 0}.section--tight{padding:56px 0}.section-head{flex-direction:column;align-items:start}}.card{position:relative;display:flex;flex-direction:column;gap:12px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.card h3{font-size:18px}.card p{color:var(--ink-2);font-size:15px}.card .card-top{display:flex;justify-content:space-between;align-items:center}.card .meta{font-size:13px;color:var(--muted)}.facts{display:flex;flex-wrap:wrap;gap:6px 28px}.fact{display:inline-flex;align-items:baseline;gap:8px;font-size:13px;color:var(--muted)}.fact strong{font-size:14.5px;font-weight:500;color:var(--ink)}.work-list{border-top:1px solid var(--line)}.work-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;padding:32px 0;border-bottom:1px solid var(--line)}.work-row .head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}.work-row h3{font-size:21px;letter-spacing:-.02em;background:linear-gradient(var(--ink),var(--ink)) 0 100% / 0 1px no-repeat;transition:background-size .3s}.work-row:hover h3{background-size:100% 1px}.work-row .new{font-size:12px;color:var(--tone-ink);letter-spacing:.08em}.work-row p{color:var(--ink-2);font-size:15.5px;margin-top:8px;max-width:640px}.work-row .facts{margin-top:16px}.work-row .arrow{align-self:start;padding-top:5px;color:var(--muted)}@media(max-width:640px){.work-row{grid-template-columns:1fr;padding:26px 0}.work-row .arrow{display:none}}.page-hero{position:relative;isolation:isolate;overflow:hidden;margin-top:-72px;padding:184px 0 88px;background:var(--stage);color:var(--ink)}.page-hero:before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(900px 420px at 88% -10%,rgb(47 91 216 / .12),transparent 70%),repeating-linear-gradient(180deg,transparent 0 27px,rgb(18 18 17 / .035) 27px 28px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 55%);mask-image:linear-gradient(90deg,transparent,#000 55%)}.page-hero--ridge:before{display:none}.page-hero .ridge{z-index:-1;opacity:.8}.page-hero .eyebrow,.page-hero .detail-meta,.page-hero .back,.page-hero .fact{color:#1212118c}.page-hero .back:hover,.page-hero .fact strong{color:var(--ink)}.page-hero .tag{border-color:#12121138;color:#121211bf}.page-hero h1{animation:hero-rise 1s cubic-bezier(.2,.8,.2,1) both}.page-hero .lead{animation:hero-rise 1s .12s cubic-bezier(.2,.8,.2,1) both}@keyframes hero-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.page-hero h1{font-size:clamp(34px,5vw,60px);letter-spacing:-.04em;line-height:1.16;margin-top:18px;max-width:880px}.page-hero .lead{font-size:18px;line-height:1.75;color:#121211a8;margin-top:22px;max-width:660px}.page-hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.back{display:inline-block;font-size:14px;color:var(--muted);margin-bottom:28px;transition:color .2s}.back:hover{color:var(--ink)}.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:13.5px;color:var(--muted)}.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.jump a{padding:6px 16px;border:1px solid rgb(18 18 17 / .25);border-radius:999px;font-size:13.5px;color:#121211cc;transition:border-color .2s,color .2s}.jump a:hover{border-color:var(--ink);color:var(--ink)}.jump a span{opacity:.5;margin-left:8px}@media(max-width:860px){.page-hero{margin-top:-64px;padding:128px 0 56px}}.detail{display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:96px;padding:80px 0 112px}.detail>.prose,.detail>div>.prose{margin-inline:0}.side{align-self:start;position:sticky;top:104px;display:grid;gap:36px;font-size:14px}.side h2{font-size:12px;font-weight:400;letter-spacing:.1em;color:var(--muted);margin-bottom:14px}.side dl{display:grid;gap:14px}.side dt{font-size:12.5px;color:var(--muted)}.side dd{margin-top:2px;line-height:1.6}.toc{display:grid;gap:8px}.toc a{color:var(--ink-2);font-size:13.5px;line-height:1.5;transition:color .2s}.toc a:hover{color:var(--ink)}.detail-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:72px;padding-top:32px;border-top:1px solid var(--line);max-width:var(--prose)}@media(max-width:960px){.detail{grid-template-columns:1fr;gap:40px;padding:40px 0 72px}.side{position:static;order:-1;padding-bottom:32px;border-bottom:1px solid var(--line)}.side .toc-block{display:none}}.prose{max-width:var(--prose);margin-inline:auto;font-size:17px;line-height:1.95;color:var(--ink)}.prose>*+*{margin-top:1.1em}.prose h2{font-size:24px;margin-top:2.6em;letter-spacing:-.02em}.prose>h2:first-child{margin-top:0}.prose h3{font-size:18.5px;margin-top:2em}.prose h2+*,.prose h3+*{margin-top:.8em}.prose a{text-decoration:underline;text-decoration-color:var(--line-strong);text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-color .2s}.prose a:hover{text-decoration-color:var(--ink)}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.5em}.prose li::marker{color:var(--muted)}.prose strong{font-weight:600}.prose blockquote{margin-inline:0;padding:4px 0 4px 22px;border-left:2px solid var(--ink);color:var(--ink-2)}.prose code{font-family:var(--mono);font-size:.86em;background:var(--bg-soft);padding:.14em .42em;border-radius:5px}.prose pre{overflow-x:auto;padding:20px 22px;border-radius:var(--radius-s);background:var(--bg-soft)!important;font-size:14px;line-height:1.7}.prose pre code{background:none;padding:0;font-size:inherit}.prose img{border-radius:var(--radius-s)}.prose figure{margin:2em 0}.prose figcaption{font-size:13.5px;color:var(--muted);margin-top:10px}.prose hr{border:0;border-top:1px solid var(--line);margin:2.6em 0}.prose table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.65;font-variant-numeric:tabular-nums}.prose th,.prose td{padding:11px 14px 11px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.prose th{font-size:12.5px;font-weight:400;color:var(--muted);border-bottom-color:var(--ink);letter-spacing:.02em}.prose .table-wrap,.prose>table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose .table-wrap table{min-width:560px}.prose .table-wrap td,.prose .table-wrap th{white-space:nowrap;text-align:right;padding-right:0;padding-left:14px}.prose .table-wrap td:first-child,.prose .table-wrap th:first-child{text-align:left;padding-left:0}.prose .table-wrap--prose td,.prose .table-wrap--prose th{white-space:normal;text-align:left;padding:11px 14px 11px 0}.prose .table-wrap--prose table{min-width:0}.prose tr.is-unfilled td{color:var(--muted)}.prose .note-meta{font-size:13.5px;color:var(--muted)}.prose .katex-display{overflow-x:auto;overflow-y:hidden;padding:4px 0}.prose section>eqn,.prose eqn{display:block}.row-list{border-top:1px solid var(--line)}.row-item{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:24px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line)}.row-item .date{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.row-item h3{display:inline;font-size:18px;line-height:1.5;background:linear-gradient(var(--ink),var(--ink)) 0 100% / 0 1px no-repeat;transition:background-size .3s}.row-item:hover h3{background-size:100% 1px}.row-item p{font-size:14.5px;color:var(--ink-2);margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row-item .meta{display:block;font-size:12.5px;color:var(--muted);margin-top:10px}.row-item .arrow{color:var(--muted)}@media(max-width:640px){.row-item{grid-template-columns:1fr;gap:6px;padding:22px 0}.row-item .arrow{display:none}}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 36px}.step .num{display:block;font-size:12.5px;color:var(--muted);letter-spacing:.08em;padding-bottom:16px;border-bottom:1px solid var(--line-strong)}.step h3{font-size:17.5px;margin-top:18px}.step p{font-size:14.5px;color:var(--ink-2);margin-top:8px}.section--ink .step .num{color:#12121180;border-bottom-color:#12121138}.section--ink .step p{color:#121211a8}@media(max-width:860px){.steps{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.steps{grid-template-columns:1fr;gap:32px}}.cta{padding:72px 64px;border-radius:24px;background:var(--stage);color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:40px}.cta h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.03em;line-height:1.3;max-width:560px}.cta p{color:#12121199;margin-top:14px}.cta .actions{display:flex;flex-wrap:wrap;gap:12px;flex:none}@media(max-width:760px){.cta{flex-direction:column;align-items:start;padding:44px 28px;border-radius:18px}}.site-footer{padding:80px 0 32px;background:var(--stage);font-size:14px;color:#1212119e}.site-footer .brand{color:var(--ink)}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px}.footer-grid h2{font-size:12px;font-weight:400;color:#12121166;letter-spacing:.1em;margin-bottom:16px}.footer-grid nav,.footer-grid .contact{display:flex;flex-direction:column;gap:10px}.footer-grid a{transition:color .2s}.footer-grid a:hover{color:var(--ink)}.footer-motto{margin-top:16px;color:#12121173;max-width:300px}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:64px;padding-top:24px;border-top:1px solid rgb(18 18 17 / .14);font-size:12.5px;color:#12121166}.footer-bottom details{display:inline}.footer-bottom summary{display:inline;cursor:pointer}.footer-bottom .traffic{display:flex;flex-wrap:wrap;gap:16px;align-items:baseline}.footer-bottom .traffic strong{font-weight:500;color:#121211b3}.footer-bottom .traffic p{margin-top:6px;max-width:420px}@media(max-width:760px){.footer-grid{grid-template-columns:1fr;gap:32px}}@supports (animation-timeline: view()){.work-row,.row-item,.step,.section-head,.flow li{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 38%}@keyframes reveal{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}@media print{.site-header,.site-footer,.detail-nav,.side{display:none}.detail{display:block}}
