@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2) format("woff2-variations");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:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-sans-latin-400-normal.gapTbOY8.woff2) format("woff2"),url(/_astro/geist-sans-latin-400-normal.BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-sans-latin-500-normal.uokXdC-Q.woff2) format("woff2"),url(/_astro/geist-sans-latin-500-normal.CN2lyvyL.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-sans-latin-600-normal.DFOURf8L.woff2) format("woff2"),url(/_astro/geist-sans-latin-600-normal.CA1yjETN.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-cyrillic-400-normal.Ce5q_31Z.woff2) format("woff2"),url(/_astro/geist-mono-cyrillic-400-normal.BPBWmzPh.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-ext-400-normal.Cgks_Qgx.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-400-normal.CxNRRMGd.woff) format("woff");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:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-400-normal.LC9RFr9I.woff2) format("woff2"),url(/_astro/geist-mono-latin-400-normal.CoULgQGM.woff) format("woff");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:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-mono-cyrillic-500-normal.CJBLNVQT.woff2) format("woff2"),url(/_astro/geist-mono-cyrillic-500-normal.mNhfPmgl.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-mono-latin-ext-500-normal.CQcGuCNt.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-500-normal.diTenJ8L.woff) format("woff");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:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-mono-latin-500-normal.D3o2eNa9.woff2) format("woff2"),url(/_astro/geist-mono-latin-500-normal.DOxI7kZ4.woff) format("woff");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{--color-bg: #f5f1e8;--color-bg-soft: #efeadd;--color-surface: #faf7f0;--color-ink: #1a1f2c;--color-ink-soft: #3d4250;--color-ink-muted: #5c606e;--color-line: #cfc8b6;--color-line-soft: #e6e1d2;--color-overlay: rgba(26, 31, 44, .04);--color-accent: #3a4256;--color-accent-soft: #6a7390;--color-warm: #a89684;--color-warm-soft: #c2b3a3;--color-warm-bg: #ece4d8;--font-display: "Fraunces", Georgia, "Source Han Serif SC", "Songti SC", "STSong", serif;--font-body: "Geist", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Segoe UI", sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", "SF Mono", Menlo, monospace;--fs-1: clamp(2.8rem, 5.5vw + 1rem, 5.6rem);--fs-2: clamp(2rem, 3vw + 1rem, 3.4rem);--fs-3: clamp(1.4rem, 1.2vw + 1rem, 1.75rem);--fs-4: 1.125rem;--fs-body: 1.0625rem;--fs-small: .9375rem;--fs-xs: .8125rem;--fs-tiny: .72rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4.5rem;--space-9: 7rem;--space-10: 10rem;--track-tight: -.015em;--track-eyebrow: .22em;--track-nav: .16em;--track-button: .14em;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-pill: 999px;--shadow-xs: 0 1px 0 rgba(26, 31, 44, .04);--shadow-sm: 0 1px 2px rgba(26, 31, 44, .04);--shadow-md: 0 12px 32px rgba(26, 31, 44, .08);--container: 1320px;--container-narrow: 760px;--container-wide: 1480px;--ease: cubic-bezier(.16, 1, .3, 1);--duration: .36s;--duration-slow: .6s}:lang(zh){--font-display: "Source Han Serif SC", "Songti SC", "STSong", "SimSun", "Fraunces", Georgia, serif;--font-body: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Source Han Sans SC", "Geist", -apple-system, sans-serif;letter-spacing:0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:100%;overflow-x:hidden}body{font-family:var(--font-body);font-size:var(--fs-body);font-weight:400;line-height:1.65;color:var(--color-ink);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","calt";overflow-x:hidden;overflow-wrap:break-word;word-wrap:break-word;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.65 0 0 0 0 0.59 0 0 0 0 0.51 0 0 0 0.04 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:200px 200px;background-repeat:repeat}img,picture,svg,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none;transition:color .36s ease,opacity .36s ease,border-color .36s ease}a:hover{color:var(--color-ink-soft)}.editorial-link{position:relative;display:inline-block;font-style:normal;transition:font-style .24s ease,color .24s ease}.editorial-link:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:currentColor;opacity:0;transform:scaleX(.3);transform-origin:left;transition:opacity .36s var(--ease),transform .36s var(--ease)}.editorial-link:hover{font-style:italic}.editorial-link:hover:after{opacity:.4;transform:scaleX(1)}button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}::selection{background:var(--color-ink);color:var(--color-bg)}.h-display{font-family:var(--font-display);font-weight:400;line-height:1.05;letter-spacing:var(--track-tight)}.h-eyebrow{font-family:var(--font-body);font-size:var(--fs-tiny);font-weight:500;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-ink-soft)}.h-1{font-size:var(--fs-1);font-family:var(--font-display);font-weight:400;line-height:1.02;letter-spacing:var(--track-tight)}.h-2{font-size:var(--fs-2);font-family:var(--font-display);font-weight:400;line-height:1.08;letter-spacing:var(--track-tight)}.h-3{font-size:var(--fs-3);font-family:var(--font-display);font-weight:500;line-height:1.25;letter-spacing:-.005em}.lead{font-size:var(--fs-4);line-height:1.6;color:var(--color-ink-soft);max-width:60ch}.muted{color:var(--color-ink-muted)}em.flourish,.flourish{font-family:var(--font-display);font-style:italic;font-weight:400;color:var(--color-warm)}.prose-editorial p:first-of-type:first-letter,.drop-cap:first-letter{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:4.2em;line-height:.9;float:left;margin:.05em .1em -.1em 0;color:var(--color-warm);letter-spacing:-.02em}.pull-quote{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(1.6rem,2vw + .6rem,2.4rem);line-height:1.35;letter-spacing:-.01em;color:var(--color-ink);max-width:36ch;margin:var(--space-8) auto;padding:var(--space-6) 0;border-block:1px solid var(--color-line);text-align:center;position:relative}.pull-quote:before,.pull-quote:after{content:"";display:block;width:32px;height:1px;background:var(--color-warm);margin:0 auto var(--space-4)}.pull-quote:after{margin:var(--space-4) auto 0}.pull-quote cite{display:block;margin-top:var(--space-4);font-style:normal;font-family:var(--font-body);font-size:var(--fs-tiny);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-ink-muted)}.section-divider{display:flex;align-items:center;justify-content:center;gap:var(--space-5);padding-block:var(--space-7);color:var(--color-warm)}.section-divider:before,.section-divider:after{content:"";flex:1;max-width:80px;height:1px;background:var(--color-line)}.section-divider .ornament{font-family:var(--font-display);font-style:italic;font-size:1.2rem;color:var(--color-warm);opacity:.7}.has-marginalia{position:relative}.marginalia{font-family:var(--font-display);font-style:italic;font-size:var(--fs-small);color:var(--color-ink-muted);line-height:1.5;max-width:18ch}@media (min-width: 1100px){.marginalia{position:absolute;right:-200px;top:0;width:180px;text-align:left}.marginalia.left{right:auto;left:-200px;text-align:right}}@media (max-width: 1099px){.marginalia{display:block;margin-block:var(--space-5);padding-inline-start:var(--space-4);border-inline-start:1px solid var(--color-warm);color:var(--color-ink-soft)}}.issue-stamp{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-1);font-family:var(--font-body);font-size:var(--fs-tiny);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-ink-muted)}.issue-stamp .volume{font-family:var(--font-display);font-style:italic;font-size:1.05rem;letter-spacing:0;text-transform:none;color:var(--color-warm)}.issue-stamp .stamp-rule{width:24px;height:1px;background:var(--color-line)}.section-label{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-6);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-line)}.section-label .roman{font-family:var(--font-display);font-style:italic;font-size:1.4rem;font-weight:400;color:var(--color-warm);min-width:2ch}.section-label .label-text{font-family:var(--font-body);font-size:var(--fs-tiny);font-weight:500;letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-ink)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--space-6)}.container-narrow{max-width:var(--container-narrow);margin-inline:auto;padding-inline:var(--space-6)}.container-wide{max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--space-6)}.section{padding-block:var(--space-9)}.section-tight{padding-block:var(--space-8)}.section-loose{padding-block:var(--space-10)}@media (max-width: 640px){.container,.container-narrow,.container-wide{padding-inline:var(--space-5);padding-left:max(var(--space-5),env(safe-area-inset-left));padding-right:max(var(--space-5),env(safe-area-inset-right))}.section{padding-block:var(--space-8)}.section-loose{padding-block:var(--space-9)}}@media (max-width: 640px){h1,.h1{word-break:break-word;hyphens:auto}a,button{-webkit-tap-highlight-color:transparent}}.rule{width:56px;height:1px;background:var(--color-ink);border:0;margin:var(--space-5) 0;opacity:.5}.btn{display:inline-flex;align-items:center;gap:var(--space-3);padding:1rem 1.8rem;font-size:var(--fs-tiny);font-weight:500;letter-spacing:var(--track-button);text-transform:uppercase;border-radius:var(--radius-md);white-space:nowrap;border:1px solid transparent;transition:transform .24s cubic-bezier(.16,1,.3,1),background-color .36s ease,color .36s ease,border-color .36s ease,box-shadow .24s cubic-bezier(.16,1,.3,1);will-change:transform}.btn-primary{background:var(--color-ink);color:var(--color-bg);border-color:var(--color-ink)}.btn-primary:hover{background:transparent;color:var(--color-ink);transform:translateY(-1px);box-shadow:0 8px 24px -8px #1a1f2c2e,0 1px #1a1f2c0a}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px -2px #1a1f2c1f}.btn-secondary{background:transparent;color:var(--color-ink);border-color:var(--color-line)}.btn-secondary:hover{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-bg);transform:translateY(-1px);box-shadow:0 8px 24px -8px #1a1f2c2e}.btn-secondary:active{transform:translateY(0);box-shadow:0 2px 8px -2px #1a1f2c1f}.btn-ghost{padding:.4rem 0;color:var(--color-ink);font-size:var(--fs-tiny);letter-spacing:var(--track-nav);text-transform:uppercase;border-bottom:1px solid currentColor;border-radius:0;font-weight:500;transition:color .36s ease,border-color .36s ease}.btn-ghost:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.btn .arrow{font-size:1em;transition:transform .24s cubic-bezier(.16,1,.3,1);display:inline-block}.btn:hover .arrow,.btn-ghost:hover .arrow{transform:translate(4px)}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:0;padding:var(--space-6) var(--space-6) var(--space-7);transition:border-color var(--duration) var(--ease),transform var(--duration) var(--ease);position:relative}.card:hover{border-color:var(--color-ink)}.grid{display:grid;gap:var(--space-6)}.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: 920px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}@media (prefers-reduced-motion: no-preference){.reveal{animation:rise 1s var(--ease) both}.reveal-delay-1{animation-delay:.1s}.reveal-delay-2{animation-delay:.2s}.reveal-delay-3{animation-delay:.3s}.reveal-delay-4{animation-delay:.4s}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: no-preference){[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}[data-reveal].in-view{opacity:1;transform:translateY(0)}.services-grid>.service[data-reveal]{transition-delay:0ms}.services-grid>.service[data-reveal]:nth-child(1){transition-delay:0ms}.services-grid>.service[data-reveal]:nth-child(2){transition-delay:80ms}.services-grid>.service[data-reveal]:nth-child(3){transition-delay:.16s}.services-grid>.service[data-reveal]:nth-child(4){transition-delay:.24s}.services-grid>.service[data-reveal]:nth-child(5){transition-delay:.32s}.services-grid>.service[data-reveal]:nth-child(6){transition-delay:.4s}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-size:var(--fs-tiny);font-weight:500;letter-spacing:var(--track-nav);text-transform:uppercase;color:var(--color-ink-soft)}.field input,.field textarea{font:inherit;color:var(--color-ink);background:transparent;border:0;border-bottom:1px solid var(--color-line);border-radius:0;padding:.85rem 0;transition:border-color var(--duration) var(--ease)}.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--color-accent);box-shadow:0 1px 0 var(--color-accent)}.field textarea{min-height:140px;resize:vertical}.prose{max-width:68ch;font-size:1.1rem;line-height:1.75;color:var(--color-ink);font-family:var(--font-display);font-weight:400}.prose h2{font-family:var(--font-display);font-weight:500;font-size:1.85rem;margin-top:var(--space-7);margin-bottom:var(--space-3);letter-spacing:var(--track-tight)}.prose h3{font-family:var(--font-display);font-weight:500;font-size:1.35rem;margin-top:var(--space-6);margin-bottom:var(--space-3)}.prose p{margin-bottom:1.5em}.prose>p:first-of-type:first-letter{font-family:var(--font-display);font-weight:500;font-size:3.4em;float:left;line-height:.85;margin:.05em .12em 0 0}.prose ul,.prose ol{margin:0 0 1.5em 1.25rem;font-family:var(--font-body);font-size:1.05rem}.prose li{margin-bottom:.5em}.prose a{color:var(--color-ink);border-bottom:1px solid var(--color-line);transition:color .36s ease,border-color .36s ease}.prose a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.prose blockquote{margin:var(--space-6) 0;padding-left:var(--space-5);border-left:1px solid var(--color-ink);font-family:var(--font-display);font-style:italic;font-size:1.5rem;color:var(--color-ink-soft)}.prose code{font-family:var(--font-mono);font-size:.85em;padding:.1em .4em;background:var(--color-overlay);border-radius:2px}.prose table{width:100%;border-collapse:collapse;margin:var(--space-6) 0;font-family:var(--font-body);font-size:.94rem;line-height:1.5;color:var(--color-ink);display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose table thead{border-bottom:2px solid var(--color-ink)}.prose table th{font-family:var(--font-mono);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:.85rem 1rem;color:var(--color-ink);vertical-align:bottom;background:var(--color-surface);white-space:nowrap}.prose table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-line);vertical-align:top}.prose table tr:last-child td{border-bottom:none}.prose table tbody tr:hover{background:var(--color-bg-soft)}.prose table strong,.prose table b{font-weight:600;color:var(--color-accent)}.prose table td:nth-child(n+2),.prose table th:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 720px){.prose table{font-size:.82rem}.prose table th,.prose table td{padding:.55rem .65rem}}
