.article-dock{display:none}.article-bottom-sheet{background:var(--bg);color:var(--text);border:0;padding:0}.article-bottom-sheet:not([open]){display:none}.article-bottom-sheet::backdrop{background:#0000007a}.article-bottom-sheet .sheet-heading{border-bottom:1px solid var(--border);touch-action:pan-x;padding:12px 20px}.article-bottom-sheet .sheet-heading h2{font-size:22px}.article-bottom-sheet .sheet-body{overscroll-behavior:contain;padding:20px;overflow:auto}.article-sheet-main{grid-template-columns:1fr 1fr;gap:8px;display:grid}.article-sheet-main>a,.article-sheet-main>button{text-align:start;min-height:48px;color:var(--text);background:0 0;border:0;align-items:center;gap:10px;padding:8px;font-size:16px;text-decoration:none;display:flex}.article-sheet-main svg{width:20px;height:20px}.article-sheet-context{margin-top:24px}.article-sheet-context h3,.article-sheet-settings h3{color:var(--text-dim);margin:16px 0 8px;font-size:12px;font-weight:500}.article-sheet-context nav{display:grid}.article-sheet-context button,.article-sheet-context a{text-align:start;border:0;border-bottom:1px solid var(--border);min-height:44px;color:var(--text);background:0 0;padding:10px 0;font-size:14px;text-decoration:none}.article-sheet-context [aria-current]{font-weight:650}.article-sheet-camera{flex-wrap:wrap;align-items:center;gap:12px;padding-block:20px;display:flex}.article-sheet-camera>div{gap:4px;display:flex}.article-sheet-camera button{border:1px solid var(--border-strong);min-width:44px;min-height:44px;color:var(--text);background:var(--bg);border-radius:6px;padding:8px 12px}.article-sheet-home{align-items:center;min-height:48px;margin-top:20px;font-size:14px;display:inline-flex}.article-sheet-settings{border-top:1px solid var(--border)}.article-sheet-settings .language-options a{font-size:13px}.article-noscript-nav{gap:24px;padding:16px;display:flex}@media (width<=759px){.article-shell-header,.article-shell-corner,.article-shell .network-topbar,.article-shell .network-camera,.article-shell .network-scope-tools{display:none!important}.article-dock{inset-inline:12px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:45;pointer-events:auto;display:block;position:fixed}.article-dock>button{border:1px solid var(--border-strong);background:var(--bg);width:100%;min-height:58px;color:var(--text);touch-action:pan-x;border-radius:12px;align-items:center;gap:12px;padding:14px 16px 8px;display:flex;box-shadow:0 8px 24px #0000001f}.article-dock>button>svg{flex-shrink:0;width:20px;height:20px}.article-dock [data-dock-title]{text-align:start;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;font-weight:550;overflow:hidden}.article-dock-grip{background:var(--border-strong);border-radius:2px;width:28px;height:3px;position:absolute;top:6px;left:calc(50% - 14px)}.article-shell .article-bottom-sheet,.article-shell .network-search{width:100%;max-width:none;height:auto;max-height:calc(var(--article-available-height,100dvh) - env(safe-area-inset-top) - 12px);border-radius:16px 16px 0 0;margin:0;padding:0;position:fixed;inset:auto 0 0;overflow:hidden;transform:none}.article-shell .article-bottom-sheet[open]{flex-direction:column;animation:.18s cubic-bezier(.2,.8,.2,1) article-sheet-in;display:flex}.article-bottom-sheet .sheet-body{padding-bottom:calc(24px + env(safe-area-inset-bottom));min-height:0}.article-bottom-sheet .sheet-heading{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:68px;display:flex}.article-bottom-sheet .sheet-heading:before{content:"";background:var(--border-strong);border-radius:2px;width:28px;height:3px;position:absolute;top:6px;left:calc(50% - 14px)}.article-shell .network-search{padding:20px 16px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain;overflow:auto}.article-shell .network-search h2{font-size:24px}.article-shell .network-reader-top{display:none}.article-shell .network-reader-scroll{padding-bottom:100px}.article-shell .cv-page-scroll{padding-bottom:calc(110px + env(safe-area-inset-bottom))}html.article-html{scroll-padding-top:20px;scroll-padding-bottom:100px}.article-keyboard-open .article-dock{visibility:hidden}}@keyframes article-sheet-in{0%{opacity:.4;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.article-bottom-sheet[open]{animation:none!important}}@media (width>=760px){#article-navigation{display:none!important}}@media (width<=759px){.article-shell .article-location{display:none}}:root{--font-brand-sans:"Montserrat","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--font-brand-mono:"Geist Mono",ui-monospace,monospace}html[dir=rtl]{--font-brand-sans:"Montserrat","IBM Plex Sans Arabic",Tahoma,system-ui,sans-serif}html body.cv-page,html .cv-root{--sans:var(--font-brand-sans);--mono:var(--font-brand-mono)}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-ext-wght-normal.CO5hGrJv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-wght-normal.EAA9jha_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-vietnamese-wght-normal.k7S-YeeD.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-ext-wght-normal.BsZE-iaG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-wght-normal.l_AIctKy.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--bg:#f5f5f2;--bg-elev:#fff;--bg-elev-2:#eaece9;--text:#20272e;--text-dim:#505a64;--text-faint:#626c75;--border:#d6dcd9;--border-strong:#acb6ba;--accent:#2356a5;--on-accent:#fff;--accent-soft:#e5ebf4;--accent-wash:#edf1f5;--copper:#a64d30;--sans:Montserrat,"PingFang SC","Microsoft YaHei",Tahoma,sans-serif;--mono:"Geist Mono",monospace;--r-sm:6px;--r-card:12px;--header-height:64px;--bottom-height:68px}:root[data-theme=dark]{color-scheme:dark;--bg:#161b22;--bg-elev:#202731;--bg-elev-2:#293440;--text:#eef0f0;--text-dim:#bac3cb;--text-faint:#a4b0bb;--border:#37424d;--border-strong:#647483;--accent:#9dbfff;--on-accent:#172431;--accent-soft:#293c56;--accent-wash:#253143;--copper:#f2a384}*{box-sizing:border-box}html{font-family:var(--sans);background:var(--bg);color:var(--text);scroll-padding-top:90px;scroll-padding-bottom:calc(80px + env(safe-area-inset-bottom));scrollbar-gutter:stable;scrollbar-color:var(--border-strong) var(--bg)}body{margin:0;font-size:16px;line-height:1.65}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:5px}button{cursor:pointer;background:0 0}button:disabled{cursor:default;opacity:.5}a:hover{color:var(--accent)}[hidden]{display:none!important}img,svg{max-width:100%}img{display:block}h1,h2,h3,p,ul,ol,dl,dd{margin:0}h1,h2,h3{text-wrap:balance;letter-spacing:-.03em;line-height:1.18}h1{font-size:clamp(2rem,7vw,4.75rem);font-weight:650}h2{font-size:clamp(1.6rem,3vw,2.75rem);font-weight:600}h3{font-size:1.25rem;font-weight:600}p{overflow-wrap:anywhere}ul,ol{padding-inline-start:1.3em}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}input,textarea{caret-color:var(--accent)}input::placeholder{color:var(--text-faint)}.cv-root{min-height:100svh}.print-only{display:none}.skip-link{z-index:200;background:var(--bg-elev);padding:12px;position:fixed;inset-block-start:-100px;inset-inline-start:16px}.skip-link:focus{inset-block-start:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.sheet{width:100%;max-width:none;max-height:calc(100dvh - env(safe-area-inset-top));background:var(--bg);color:var(--text);border:0;border-radius:16px 16px 0 0;margin:0;padding:0;position:fixed;inset:auto 0 0;box-shadow:0 -12px 55px #0003}.sheet::backdrop{background:#080c15a3}.sheet[open]{flex-direction:column;display:flex}.sheet-heading{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.sheet-heading h2{font-size:22px}.sheet-body{overscroll-behavior:contain;padding:24px 20px calc(28px + env(safe-area-inset-bottom));min-height:0;overflow:auto}.sheet-actions{padding:16px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg);justify-content:space-between;display:flex}.menu-links{margin-bottom:28px;display:grid}.menu-links a{justify-content:space-between;align-items:center;min-height:54px;font-size:22px;text-decoration:none;display:flex}.sheet fieldset{border:0;margin:0 0 24px;padding:0}.sheet legend{color:var(--text-dim);margin-bottom:12px;font-size:13px}.theme-options,.language-options,.menu-contacts{flex-wrap:wrap;gap:8px;display:flex}.theme-options button,.language-options a,.menu-contacts a{border:1px solid var(--border);border-radius:6px;align-items:center;min-height:48px;padding:10px 14px;font-size:13px;text-decoration:none;display:inline-flex}.theme-options [aria-pressed=true],.language-options [aria-current=true]{border-color:var(--text);background:var(--bg-elev-2)}.chapter-links{gap:6px;display:grid}.chapter-links a{padding:12px 0;font-size:15px;display:block}.contents-launch{z-index:20;background:var(--bg);border-bottom:1px solid var(--border);padding:8px 20px;position:sticky;top:0}.button,.icon-button,.knowledge-button,.knowledge-primary{border:1px solid var(--border-strong);background:var(--bg-elev);min-width:48px;min-height:48px;color:var(--text);border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:11px 18px;font-size:14px;font-weight:500;line-height:1.5;text-decoration:none;display:inline-flex}.button:hover,.knowledge-button:hover{border-color:var(--text)}.button-primary,.knowledge-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.button-primary:hover{background:var(--accent);color:var(--on-accent)}.icon-button{padding:10px}.actions{flex-wrap:wrap;gap:10px;display:flex}.text-link{align-items:center;gap:12px;min-height:48px;font-size:14px;font-weight:600;display:inline-flex}.muted{color:var(--text-dim)}.meta{color:var(--text-faint);font-size:13px}.page,.cv-page-scroll{padding:36px 20px calc(112px + env(safe-area-inset-bottom));min-width:0;max-width:1440px;margin-inline:auto}.cv-cases{min-width:0;max-width:1280px;margin-inline:auto}.screen-title{font-size:clamp(2rem,6vw,4rem);font-weight:650}.screen-lead{max-width:65ch;color:var(--text-dim);font-size:18px;line-height:1.7}.section{margin-top:80px}.section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:28px;display:flex}.cv-chip,.chip{border:1px solid var(--border);border-radius:4px;padding:6px 10px;font-size:12px;line-height:1.5;display:inline-block}.skill-list{flex-wrap:wrap;gap:8px;display:flex}.screen-kicker{color:var(--text-dim);margin-bottom:12px;font-size:13px}.cv-hstrip{scrollbar-width:thin;gap:16px;padding-block:12px;display:flex;overflow-x:auto}.cv-case-kicker-line{color:var(--text-dim);align-items:center;gap:8px;font-size:13px;display:flex}.cv-cases-head{margin-bottom:36px}.cv-portfolio-bio{max-width:800px}.cv-portfolio-bio h1{margin-bottom:20px}.cv-portfolio-role{color:var(--text-dim);margin-bottom:16px}.cv-cases-intro{margin-top:48px}.cv-cases-title{font-size:28px}.cv-cases-filters{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.cv-cases-filter{border:1px solid var(--border);border-radius:6px;min-height:48px;padding:11px 16px;font-size:13px;text-decoration:none}.cv-cases-filter.on{background:var(--text);color:var(--bg);border-color:var(--text)}@media (width>=760px){.page,.cv-page-scroll{padding:56px 40px 100px}}@media print{html,body,body.cv-page,.cv-root{color:#18181b!important;background:#fff!important}.no-print{display:none!important}.print-only{display:block!important}}@media (width>=760px){.sheet{border-radius:16px;max-width:560px;max-height:88dvh;inset:50% auto auto 50%;transform:translate(-50%,-50%)}}html.article-html{scrollbar-gutter:stable;background:#0a0a0c;scroll-padding-top:100px}.article-shell .cv-root{font-family:var(--sans)}.article-shell [data-screen-root]{z-index:1;min-height:100svh;position:relative}.article-shell-header{z-index:30;justify-content:space-between;align-items:flex-start;gap:12px;height:64px;padding:20px clamp(16px,3vw,48px);display:flex;position:relative}.article-shell-nav{align-items:center;gap:clamp(12px,2vw,28px);padding-top:6px;font-size:14px;display:flex}.article-shell-nav a{min-height:44px;color:var(--text-dim);border-bottom:1px solid #0000;align-items:center;text-decoration:none;display:inline-flex}.article-shell-nav a:hover,.article-shell-nav [aria-current=page]{color:var(--text);border-bottom-color:var(--text-dim)}.article-shell-corner{flex-shrink:0;justify-items:end;gap:4px;display:grid}.article-shell-corner .cv-side-row{align-items:center;gap:8px;margin:0;display:flex}.article-shell-corner .cv-side-swatch{border:1px solid var(--text-dim);outline-offset:3px;border-radius:50%;outline:1px solid;width:24px;min-width:24px;height:24px;padding:0;position:relative}.article-shell-corner .cv-side-swatch:after{content:"";position:absolute;inset:-4px}.article-shell-corner .cv-side-lang{min-width:24px;min-height:32px;color:var(--text-dim);place-items:center;font-size:11px;text-decoration:none;display:grid}.article-shell-corner .cv-side-lang.on{color:var(--text);text-underline-offset:5px;text-decoration:underline}.article-shell .cv-page-scroll{max-width:1120px;height:auto;padding:32px clamp(16px,3vw,48px) 80px;overflow:visible}.article-shell .article-header{max-width:72ch}.article-shell .article-header h1{font-size:clamp(2rem,5vw,4rem)}.article-shell .article-surface .prose,.article-shell .article-surface .article-header,.article-shell .article-story{margin-inline:auto}.article-shell .knowledge-header{margin-bottom:40px}.article-shell .screen-title{letter-spacing:-.035em;font-weight:600}.article-shell .atlas-entry{border-color:var(--border-strong);background:0 0}.article-preview-row{border-bottom:1px solid var(--border-strong);grid-template-columns:144px minmax(0,1fr);align-items:start;gap:24px;padding:24px 0;display:grid}.article-preview-image{aspect-ratio:8/5;background:var(--bg-elev-2);border-radius:6px;display:block;overflow:hidden}.article-preview-image img{object-fit:cover;width:100%;height:100%;display:block}.article-preview-copy{min-width:0}.article-preview-copy h3{letter-spacing:-.02em;font-size:19px;line-height:1.4}.article-preview-copy h3 a{text-decoration:none}.article-preview-copy h3 a:hover{text-decoration:underline}.article-preview-excerpt{color:var(--text-dim);margin:10px 0 12px;font-size:14px;line-height:1.65}.article-preview-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:12px;display:flex}.article-preview-actions a{align-items:center;min-height:32px;display:inline-flex}.article-shell .network-dialog{background:var(--bg);color:var(--text);border-color:var(--border-strong)}.article-shell .network-reader-scroll{width:100%;max-width:82ch;margin-inline:auto}.article-shell .network-reader{max-width:1080px}@media (width<=600px){.article-shell-header{align-items:flex-start;gap:8px;height:64px}.article-shell-nav{gap:12px;font-size:12px}.article-shell-corner .cv-side-row{gap:6px}.article-shell-corner .cv-side-swatch{width:20px;min-width:20px;height:20px}.article-shell-corner .cv-side-lang{min-width:20px}.article-preview-row{grid-template-columns:88px minmax(0,1fr);gap:14px;padding-block:20px}.article-preview-copy h3{font-size:16px}.article-preview-excerpt{font-size:13px}.article-shell .cv-page-scroll{padding-top:12px}.article-shell .network-reader-top{flex-wrap:wrap}}@media (width<=350px){.article-shell-nav{gap:8px;font-size:11px}.article-shell-header{padding-inline:12px}.article-shell-corner .cv-side-row{gap:4px}}.article-shell:not(.canvas-page){height:auto;overflow:auto}.article-shell:not(.canvas-page) [data-screen-root],.article-shell:not(.canvas-page) .cv-page-scroll{height:auto;overflow:visible}.article-shell .journey-node-face :is(summary,details){pointer-events:auto}.article-shell-corner{inset-inline-end:clamp(16px,3vw,32px);bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;background:var(--bg);border-radius:6px;gap:2px;padding:8px;position:fixed}.article-shell-corner .cv-side-row{gap:8px}.article-shell-corner .cv-side-lang{min-width:16px;min-height:24px;font-size:10px}.article-shell .cv-page-scroll{padding-bottom:110px}.article-shell .atlas-entry{margin-block:24px 36px;padding:24px 0;display:block}.article-shell .atlas-entry-copy{max-width:65ch}.article-shell .atlas-entry-copy h2{font-size:24px}.article-shell .article-header,.article-shell .prose,.article-shell .article-story{width:min(100%,72ch);max-width:72ch;font-size:18px}.article-shell:not(.canvas-page) .article-shell-corner{background:0 0;margin-inline-start:auto;padding:0;position:relative;inset:auto}.article-shell:not(.canvas-page) .article-shell-header{flex-wrap:wrap;height:auto;min-height:88px}.article-shell-corner .cv-side-swatch{width:24px;min-width:24px;height:24px}.article-shell-corner .cv-side-lang{min-width:24px;min-height:28px}@media (width<=600px){.article-shell-corner .cv-side-row{gap:8px}.article-shell:not(.canvas-page) .article-shell-header{row-gap:10px;padding-bottom:12px}}.article-signals{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-block:18px;font-size:12px;display:flex}.article-signal{min-width:0;position:relative}.article-signal summary{cursor:pointer;border-radius:5px;align-items:center;gap:8px;min-height:44px;padding:3px 5px;list-style:none;display:flex}.article-signal summary::-webkit-details-marker{display:none}.article-signal svg{color:var(--text);flex:none}.article-signal summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.article-signal summary:hover,.article-signal[open] summary{background:var(--accent-soft);color:var(--text)}.signal-explanation{z-index:20;background:var(--text);width:max-content;max-width:min(230px,65vw);color:var(--bg);border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.5;display:block;position:absolute;inset-block-start:100%;inset-inline-start:0;box-shadow:0 6px 18px #0002}.article-signal:not([open])>.signal-explanation{display:none}@media (hover:hover){.article-signal:not([open]):hover>.signal-explanation,.article-signal:not([open]):focus-within>.signal-explanation{display:block}}.article-signals.is-compact{gap:2px;margin-block:8px}.is-compact .article-signal summary{justify-content:center;width:44px}.article-state{border:1px solid var(--border-strong);color:var(--text-dim);border-radius:5px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:inline-flex}.article-state:before{content:"";border:1px solid;border-radius:50%;width:7px;height:7px}.article-state[data-status=published]:before,.article-state[data-status=done]:before{background:currentColor}@media (width<=759px){.article-header .article-signals{gap:4px;margin-block:16px}.article-header .article-signal summary{justify-content:center;width:44px}.article-header .article-signal summary span{display:none}.article-header .article-signal:last-child .signal-explanation{inset-inline:auto 0}}.article-surface{color:var(--text)}.article-surface .article-empty{color:var(--text-dim);gap:24px;display:grid}.article-surface .article-card{min-height:180px}.article-surface .article-card .cv-case-meta{padding:24px}.article-surface .article-card .cv-case-title{margin-block:12px}.article-surface .article-header{max-width:72ch;margin-bottom:48px}.article-surface .article-header h1{margin-block:24px}.article-surface .article-dates{font-family:var(--mono);color:var(--text-faint);flex-wrap:wrap;gap:8px 24px;font-size:12px;display:flex}.article-surface .article-dates *{font-family:inherit}.article-surface .prose{overflow-wrap:break-word;max-width:72ch;font-size:18px;line-height:1.75}.article-surface .prose p,.article-surface .prose ul,.article-surface .prose ol{margin-bottom:24px}.article-surface .prose ul{padding-inline-start:24px;list-style:outside}.article-surface .prose ol{padding-inline-start:24px;list-style:decimal}.article-surface .prose h2{margin-block:48px 20px;font-size:28px;font-weight:700;line-height:1.2}.article-surface .prose h3{margin-block:32px 16px;font-size:22px;font-weight:700;line-height:1.3}.article-surface .prose li{margin-block:6px}.article-surface .prose a{text-underline-offset:4px;text-decoration:underline}.article-surface .prose pre{border-radius:var(--r-sm);margin-bottom:24px;padding:20px;font-size:14px;line-height:1.7;overflow:auto}.article-surface .prose code,.article-surface .prose code *{font-family:var(--mono)}.article-surface .prose :not(pre)>code{background:var(--bg-elev);border-radius:4px;padding:2px 4px}.article-surface .prose blockquote{border:1px solid var(--border);margin-bottom:24px;padding:16px 24px}.article-surface .prose table{border-collapse:collapse;max-width:100%;display:block;overflow:auto}.article-surface .prose th,.article-surface .prose td{border:1px solid var(--border);text-align:start;padding:8px 16px}.article-surface .prose :is(h2,h3){scroll-margin-top:88px}@media print{.article-surface{height:auto;overflow:visible}.article-surface .cv-cases{padding:0}}.article-location{flex-wrap:wrap;gap:12px 24px;font-size:13px;line-height:1.5;display:flex}.article-location a{text-underline-offset:4px;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}.article-position{color:var(--text-dim);font-size:12px;line-height:1.6}.article-story{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:32px;max-width:72ch;margin-block:64px 32px;padding-block:24px;display:grid}.article-story a{font-size:16px;line-height:1.6}.article-story small{color:var(--text-dim);margin-bottom:8px;font-size:12px;display:block}@media (width<=640px){.article-story{grid-template-columns:1fr}.article-surface .article-header h1{overflow-wrap:anywhere;font-size:clamp(1.8rem,6.5vw,3.5rem)}}
