.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@view-transition{navigation:auto}:root{color-scheme:light dark;--bg: #faf9f6;--surface: #f0efeb;--text: #20221f;--muted: #62675f;--line: #dcded8;--accent: #346452;--accent-text: #fff;--focus: #285fbb;--scroll-thumb: #9ca69e;--scroll-track: #f0efeb;--warning: #b42318;--layout-width: 1200px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}@media(prefers-color-scheme:dark){:root{--bg: #171a18;--surface: #222722;--text: #e8ebe5;--muted: #b1bab0;--line: #3b453d;--accent: #a4d9bd;--accent-text: #14231b;--focus: #9fc3ff;--scroll-thumb: #718078;--scroll-track: #222722;--warning: #ff958d}}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;overflow-y:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}@supports not (scrollbar-gutter: stable){html{overflow-y:scroll}}@supports not (scrollbar-color: auto){html::-webkit-scrollbar{width:10px}html::-webkit-scrollbar-track{background:var(--scroll-track)}html::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--scroll-track);border-radius:999px}}body{margin:0;color:var(--text);background:var(--bg);line-height:1.65}a{color:inherit;text-underline-offset:.22em}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}::selection{background:var(--accent);color:var(--accent-text)}.skip-link{position:fixed;z-index:10;top:10px;left:10px;transform:translateY(-150%);padding:.6rem 1rem;background:var(--text);color:var(--bg);border-radius:4px}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--line)}.header-inner,.footer-inner,.home-shell,.page-shell{width:min(100% - 48px,var(--layout-width));margin-inline:auto}.header-inner{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{font-weight:800;font-size:1.3rem;letter-spacing:-.06em;text-decoration:none}.brand span{color:var(--accent)}.site-header nav{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,3vw,34px)}.site-header nav a{position:relative;padding-block:8px;text-decoration:none;font-size:.9rem;color:var(--muted);transition:color .2s ease}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--text)}.site-header .nav-indicator{position:absolute;height:2px;left:0;right:0;bottom:1px;background:var(--accent);view-transition-name:nav-indicator}::view-transition-group(nav-indicator){animation-duration:.35s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}main{min-height:60vh}.hero{padding:clamp(96px,14vw,190px) 0 clamp(100px,12vw,160px)}.eyebrow{margin:0 0 1.7rem;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;line-height:1.3}.eyebrow-line{display:inline-block;width:28px;height:1px;margin-right:10px;vertical-align:middle;background:currentColor}h1,h2,h3,p{overflow-wrap:anywhere}.hero h1{margin:0;font-size:clamp(2.6rem,6.8vw,5.6rem);font-weight:650;letter-spacing:-.065em;line-height:1.2}.hero h1 span{color:var(--muted)}.hero-copy{margin:2rem 0 0;color:var(--muted);font-size:clamp(1rem,1.5vw,1.13rem);line-height:1.9}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-top:2.5rem}.primary-link{display:inline-flex;align-items:center;gap:22px;padding:12px 18px;background:var(--text);color:var(--bg);border-radius:4px;text-decoration:none;font-size:.9rem;transition:background .2s,color .2s,transform .2s}.primary-link:hover{background:var(--accent);color:var(--accent-text);transform:translateY(-2px)}.text-link,.subtle-link,.back-link{font-size:.9rem;text-decoration:none}.text-link:hover,.subtle-link:hover,.back-link:hover{color:var(--accent)}.home-section{padding:64px 0 80px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.section-heading .eyebrow,.closing .eyebrow{margin-bottom:.85rem}.section-heading h2,.closing h2{margin:0;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.04em;line-height:1.25}.section-heading>p{margin:0;color:var(--muted);font-size:.9rem}.subtle-link{color:var(--muted);white-space:nowrap}.service-row,.article-row{display:grid;align-items:center;gap:22px;border-top:1px solid var(--line);padding:24px 2px;text-decoration:none;transition:color .2s,padding .25s}.service-row{grid-template-columns:40px 1fr auto}.service-row:last-child,.article-row:last-child{border-bottom:1px solid var(--line)}.service-row:hover,.article-row:hover{color:var(--accent);padding-left:8px}.service-row strong,.article-row strong{display:block;font-weight:600;font-size:1.05rem}.service-row small,.article-row small{display:block;margin-top:.25rem;color:var(--muted);font-size:.82rem}.row-number{align-self:start;margin-top:4px;color:var(--muted);font-size:.75rem}.row-arrow{font-size:1.2rem;transition:transform .2s}a:hover .row-arrow{transform:translate(3px,-3px)}.article-row{grid-template-columns:1fr auto auto}.article-row small{margin:0 0 .35rem}.article-row time{color:var(--muted);font-size:.82rem;white-space:nowrap}.closing{display:flex;justify-content:space-between;gap:30px}.closing p:not(.eyebrow){color:var(--muted)}.closing-links{display:flex;gap:25px;align-items:end;padding-bottom:1rem}.closing-links a{font-size:.9rem;text-decoration:none}.closing-links a:hover{color:var(--accent)}.page-shell{padding:clamp(70px,10vw,120px) 0 120px}.page-heading{margin-bottom:56px}.page-heading .eyebrow{margin-bottom:1.2rem}.page-heading h1{margin:0;font-size:clamp(2.25rem,5vw,3.8rem);letter-spacing:-.045em;line-height:1.22}.page-meta,.page-intro{color:var(--muted);margin:1.2rem 0 0;font-size:.9rem}.back-link{display:inline-block;color:var(--muted);margin-bottom:3rem}.notice{padding:16px 20px;margin-bottom:32px;border-left:3px solid var(--accent);background:var(--surface);color:var(--text);font-size:.9rem;line-height:1.8}.notice a{color:var(--accent)}.article-layout{min-width:0}.article-layout.has-toc{display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:clamp(36px,5vw,80px)}.article-layout.has-toc>.prose{grid-column:1;grid-row:1;min-width:0}.toc{grid-column:2;grid-row:1;align-self:start;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;color:var(--muted);font-size:.85rem}.toc-mobile,.rail-slider{display:none}.reading-rail:not(.rail-ready) ol{list-style:none}html.has-reading-rail{scrollbar-width:none;scrollbar-gutter:auto;padding-right:var(--rail-gutter, 0px)}html.has-reading-rail::-webkit-scrollbar{display:none}@media(min-width:1051px){.article-shell:has(.has-toc)>.page-heading{max-width:calc(100% - 300px)}}.reading-rail.rail-ready{position:fixed;z-index:4;top:0;bottom:0;right:0;width:220px}.page-rail.rail-ready{width:14px}.reading-rail.rail-ready[hidden]{display:none}.rail-ready .rail-track{position:relative;height:100%;--rail-thumb-size: 8px}.rail-ready .rail-slider{display:block;position:absolute;z-index:1;right:0;top:0;width:14px;height:100%;margin:0;padding:0;appearance:none;writing-mode:vertical-lr;direction:ltr;cursor:pointer;border:0;background:linear-gradient(to bottom,var(--accent) var(--progress, 0%),var(--line) var(--progress, 0%)) center / 3px 100% no-repeat}.rail-ready .rail-slider::-webkit-slider-thumb{appearance:none;width:var(--rail-thumb-size);height:var(--rail-thumb-size);border-radius:50%;background:var(--accent);border:1px solid var(--bg)}.rail-ready .rail-slider::-moz-range-thumb{width:6px;height:6px;border-radius:50%;background:var(--accent);border:1px solid var(--bg)}.toc .rail-ready ol{position:absolute;z-index:2;inset:0;border:0;padding:0;margin:0;pointer-events:none}.rail-ready li,.rail-ready li.toc-sub{position:absolute;top:var(--position, 0px);right:0;width:100%;padding:0}.rail-ready li a{position:relative;display:block;padding:0;height:0;text-align:right}.rail-ready .rail-label{position:absolute;right:23px;top:0;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transform:translateY(calc(-50% + var(--label-offset, 0px)));pointer-events:auto;transition:color .2s}.rail-ready .rail-dot{position:absolute;right:5px;top:0;width:4px;height:4px;transform:translateY(-50%);border-radius:50%;background:var(--muted);pointer-events:auto}.rail-ready a[aria-current=location] .rail-label,.rail-ready a:hover .rail-label,.rail-ready a:focus-visible .rail-label{color:var(--accent)}.rail-ready a[aria-current=location] .rail-dot,.rail-ready a:hover .rail-dot{background:var(--accent);box-shadow:0 0 0 3px var(--bg)}.rail-ready a:focus-visible{outline:none}.rail-ready a:focus-visible .rail-label{outline:3px solid var(--focus);outline-offset:3px}.toc summary{color:var(--text);font-weight:600;cursor:pointer;list-style:none;padding-bottom:12px}.toc summary::-webkit-details-marker{display:none}.toc summary span{float:right}.toc ol{padding:0 0 0 14px;margin:0;list-style:none;border-left:1px solid var(--line)}.toc li{margin:0}.toc li.toc-sub{padding-left:12px}.toc a{display:block;padding:6px 0;text-decoration:none;line-height:1.5}.toc a:hover{color:var(--accent)}.prose{font-size:1rem;line-height:1.9;overflow-wrap:anywhere}.prose h2,.prose h3{line-height:1.4;letter-spacing:-.025em;scroll-margin-top:24px}.prose h2{font-size:1.55rem;margin:3rem 0 1rem}.prose h3{margin:2.2rem 0 .8rem;font-size:1.2rem}.prose p{margin:1rem 0}.prose a{color:var(--accent)}.prose .text-warning{color:var(--warning);background:transparent;font-weight:600}.prose img{max-width:100%;height:auto}.prose pre{position:relative;background:var(--surface);border-radius:5px;overflow-x:auto;padding:1.2rem;line-height:1.6}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em}.prose :not(pre)>code{background:var(--surface);padding:.1em .3em;border-radius:3px}.prose pre:has(.copy-button){padding-top:3rem}.copy-button{position:absolute;top:8px;right:8px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--text);padding:5px 10px;cursor:pointer}.prose table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:.9rem}.prose .table-scroll{max-width:100%;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:.7rem .85rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}@media(max-width:640px){.prose table{min-width:620px}}@media(prefers-color-scheme:dark){.prose pre.shiki,.prose pre.shiki span{color:var(--shiki-dark)!important}}.prose pre.shiki{background:var(--surface)!important}.prose th{background:var(--surface)}.prose td p,.prose th p{margin:0}.prose blockquote{border-left:3px solid var(--line);margin:1.5rem 0;padding-left:1.25rem;color:var(--muted)}.article-end{display:flex;justify-content:space-between;margin-top:5rem;padding-top:1.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}.article-end a{text-decoration:none}.friend{display:flex;align-items:center;gap:18px;padding:24px 0;border-block:1px solid var(--line);text-decoration:none}.friend img{border-radius:50%;object-fit:cover}.friend strong,.friend small{display:block}.friend small{color:var(--muted)}.friend .row-arrow{margin-left:auto}.site-footer{border-top:1px solid var(--line)}.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-block:28px;color:var(--muted);font-size:.78rem}.footer-inner a{text-decoration:none}.footer-dot{padding-inline:.3rem}.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}@keyframes enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.reveal{animation:enter .55s ease-out both}@media(max-width:1050px){.article-layout.has-toc{display:flex;flex-direction:column}.toc{position:static;max-height:none;overflow:visible;width:100%;margin-bottom:2rem;padding:1rem;background:var(--surface)}.reading-rail.rail-ready{display:block;width:14px}.reading-rail.rail-ready[hidden],.reading-rail.rail-ready ol,.toc-fallback{display:none}.toc-mobile{display:block}.toc summary{padding-bottom:0}.toc details[open] summary{padding-bottom:12px}}@media(max-width:600px){.header-inner,.footer-inner,.home-shell,.page-shell{width:min(100% - 36px,var(--layout-width))}.header-inner{align-items:flex-start;flex-direction:column;gap:4px;padding:18px 0 12px}.site-header nav{width:100%;gap:0;justify-content:space-between}.site-header nav a{font-size:.85rem}.hero{padding:88px 0 100px}.desktop-only{display:none}.section-heading{align-items:start}.section-heading>p{display:none}.home-section{padding:52px 0 65px}.service-row{grid-template-columns:24px 1fr auto;gap:12px}.article-row{grid-template-columns:1fr auto;gap:10px}.article-row time{grid-column:1;grid-row:2}.article-row .row-arrow{grid-column:2;grid-row:1 / 3}.closing{flex-direction:column}.page-shell{padding-bottom:80px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.01ms!important}}
