/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.contents{display:contents}.flex{display:flex}.hidden{display:none}.flex-shrink{flex-shrink:1}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.mask-repeat{mask-repeat:repeat}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/noto-sans-sc-chinese-simplified-400-normal.Ba7eOkfT.woff2)format("woff2"),url(/_astro/noto-sans-sc-chinese-simplified-400-normal.CN8EQoOj.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-700-normal.BYuf6tUa.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-700-normal.D3wTyLJW.woff)format("woff")}@font-face{font-family:Syne;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/syne-latin-700-normal.AF3Rs61n.woff2)format("woff2"),url(/_astro/syne-latin-700-normal.Cd-_iCn5.woff)format("woff")}@font-face{font-family:Syne;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/syne-latin-800-normal.EehdNYzx.woff2)format("woff2"),url(/_astro/syne-latin-800-normal.BuJcbPcX.woff)format("woff")}html[data-theme=light],:root{--color-canvas:#f5f3e9;--color-ink:#29271d;--color-body:#403d36;--color-muted:#6d675b;--color-primary:#b7791f;--color-hairline:#d8d2c3;--color-surface:#fff;--color-teal:#2c6f75;--color-syntax-bg:#f0eee4;--color-syntax-fg:#29271d;--color-bg-warm:var(--color-canvas);--color-bg-card:var(--color-surface);--color-text-primary:var(--color-ink);--color-text-secondary:var(--color-body);--color-text-muted:var(--color-muted);--color-accent:var(--color-primary);--color-accent-dim:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){html[data-theme=light],:root{--color-accent-dim:color-mix(in oklab, var(--color-primary) 80%, #000)}}html[data-theme=light],:root{--color-border:var(--color-hairline);--color-border-strong:var(--color-ink)}@supports (color:color-mix(in lab, red, red)){html[data-theme=light],:root{--color-border-strong:color-mix(in oklab, var(--color-ink) 28%, var(--color-hairline))}}html[data-theme=light],:root{--color-overlay:#1c1b16}html[data-theme=dark]{--color-canvas:#2d2e2d;--color-ink:#e9e6dc;--color-body:#ddd9cd;--color-muted:#bbb6a8;--color-primary:#e6bf7a;--color-hairline:#3d3d3a;--color-surface:#303030;--color-teal:#75b5bc;--color-syntax-bg:#252625;--color-syntax-fg:#e9e6dc;--color-accent-dim:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark]{--color-accent-dim:color-mix(in oklab, var(--color-primary) 85%, #fff)}}html[data-theme=dark]{--color-overlay:#141310}:root{--font-sans:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--font-display:"Syne", var(--font-sans);--container:1120px;--prose-width:760px;--page-pad:clamp(20px, 5vw, 48px);--page-top:32px;--nav-h:64px;--text-display:clamp(2rem, 11vw, 6rem);--text-title:clamp(28px, 4vw, 40px);--text-section:clamp(22px, 2.8vw, 32px);--text-body:17px;--text-meta:12px;--lh-display:.95;--lh-title:1.15;--lh-body:1.7;--ls-display:-.04em;--ls-meta:.08em;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.16s;--dur-med:.22s}*,:before,:after{box-sizing:border-box}html{color-scheme:light dark;scroll-behavior:smooth;overflow-x:clip}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--lh-body);background-color:var(--color-canvas);color:var(--color-ink);transition:background-color var(--dur-med) ease, color var(--dur-med) ease;margin:0}a{color:var(--color-primary);-webkit-text-decoration-color:var(--color-primary);-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){a{-webkit-text-decoration-color:color-mix(in oklab, var(--color-primary) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-primary) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}a{text-underline-offset:3px;transition:color var(--dur-fast) ease, text-decoration-color var(--dur-fast) ease}a:hover{color:var(--color-accent-dim);-webkit-text-decoration-color:var(--color-primary);-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}::selection{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){::selection{background-color:color-mix(in oklab, var(--color-primary) 28%, transparent)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.js .reveal{opacity:1!important;transform:none!important}}.main-full{width:100%}.container{width:100%;max-width:var(--container);padding-inline:var(--page-pad);margin-inline:auto}.section{padding-block:clamp(64px,8vw,96px)}.page-shell{padding-top:var(--page-top)}.section-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px;display:flex}.section-head__left{flex-direction:column;gap:10px;min-width:0;display:flex}.section-num{font:500 var(--text-meta)/1 var(--font-mono);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--color-primary)}.section-title{font-size:var(--text-section);letter-spacing:.04em;text-transform:uppercase;font-weight:700;line-height:var(--lh-title);color:var(--color-ink);margin:0}.section-desc{max-width:42ch;color:var(--color-muted);margin:0;font-size:15px;line-height:1.55}.section-link{font:500 var(--text-meta)/1 var(--font-mono);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--color-muted);transition:color var(--dur-fast), border-color var(--dur-fast);border-bottom:1px solid #0000;flex-shrink:0;padding-bottom:2px;text-decoration:none}.section-link:hover{color:var(--color-primary);border-bottom-color:var(--color-primary)}.page-header{padding-top:0;padding-bottom:var(--page-top);border-bottom:1px solid var(--color-hairline);margin-bottom:40px}.page-eyebrow{font:500 var(--text-meta)/1 var(--font-mono);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--color-primary);margin:0 0 12px}.page-title{font-size:var(--text-title);letter-spacing:.02em;text-transform:uppercase;font-weight:700;line-height:var(--lh-title);margin:0 0 12px}.page-lead{max-width:52ch;color:var(--color-muted);margin:0;font-size:16px;line-height:1.6}.nav-bar{z-index:40;height:var(--nav-h);border-bottom:1px solid var(--color-hairline);background:var(--color-canvas);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.nav-bar{background:color-mix(in oklab, var(--color-canvas) 88%, transparent)}}.nav-bar{-webkit-backdrop-filter:blur(12px)}.nav-inner{height:var(--nav-h);max-width:var(--container);padding-inline:var(--page-pad);align-items:center;gap:20px;margin-inline:auto;display:flex}.nav-brand{color:var(--color-ink);flex-shrink:0;text-decoration:none}.nav-brand:hover{color:var(--color-ink)}.nav-brand:hover .brand-logo__word{color:var(--color-primary)}.nav-links{align-items:center;gap:28px;margin:0 0 0 auto;padding:0;list-style:none;display:flex}.nav-link{font:500 12px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);padding-bottom:4px;text-decoration:none;position:relative}.nav-link:after{content:"";background:var(--color-primary);transform-origin:0;width:100%;height:1px;transition:transform var(--dur-fast) var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-link:hover,.nav-link--active{color:var(--color-ink)}.nav-link:hover:after,.nav-link--active:after{transform:scaleX(1)}.nav-actions{align-items:center;gap:8px;margin-left:8px;display:flex}.nav-toggle-btn{border:1px solid var(--color-hairline);width:40px;height:40px;color:var(--color-ink);cursor:pointer;background:0 0;margin-left:auto;padding:0;display:none}.theme-toggle{width:36px;height:36px;color:var(--color-ink);cursor:pointer;transition:color var(--dur-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{color:var(--color-primary)}.theme-toggle svg{width:16px;height:16px}html[data-theme=light] .theme-toggle .icon-sun,html[data-theme=dark] .theme-toggle .icon-moon{display:none}@media (width<=768px){.nav-toggle-btn{justify-content:center;align-items:center;display:inline-flex}.nav-actions{margin-left:0}.nav-links{top:var(--nav-h);background:var(--color-canvas);border-bottom:1px solid var(--color-hairline);padding:8px var(--page-pad) 16px;flex-direction:column;gap:0;margin:0;display:none;position:absolute;left:0;right:0}.nav-links.open{display:flex}.nav-links li{border-top:1px solid var(--color-hairline);width:100%;padding:14px 0}.nav-links li:first-child{border-top:none}}.site-footer{border-top:1px solid var(--color-hairline);margin-top:auto;padding:48px 0 56px}.site-footer-inner{max-width:var(--container);padding-inline:var(--page-pad);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-inline:auto;display:flex}.site-footer-copy{font:400 12px/1.5 var(--font-mono);color:var(--color-muted);letter-spacing:.04em;margin:0}.site-footer-social{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.site-footer-social a{width:32px;height:32px;color:var(--color-muted);transition:color var(--dur-fast);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.site-footer-social a:hover{color:var(--color-primary)}.site-footer-social a svg,.site-footer-social .social-icon-mask{width:16px;height:16px}.social-pills{flex-wrap:wrap;gap:10px;display:flex}.social-pill{color:var(--color-muted);font:500 12px/1 var(--font-mono);letter-spacing:.04em;transition:color var(--dur-fast);background:0 0;border:none;align-items:center;gap:8px;padding:0;text-decoration:none;display:inline-flex}.social-pill:hover{color:var(--color-primary)}.social-pill svg,.social-pill .social-icon-mask{flex-shrink:0;width:14px;height:14px}.work-card{aspect-ratio:16/10;color:inherit;border:1px solid var(--color-hairline);background:var(--color-surface);transition:border-color var(--dur-med), transform var(--dur-med) var(--ease-out);text-decoration:none;display:block;position:relative;overflow:hidden}.work-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.work-card--always-meta:hover{transform:none}.work-card__media{background:radial-gradient(ellipse 80% 60% at 30% 20%, var(--color-primary), transparent 60%), radial-gradient(ellipse 70% 50% at 80% 80%, var(--color-teal), transparent 55%), var(--color-canvas);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.work-card__media{background:radial-gradient(ellipse 80% 60% at 30% 20%, color-mix(in oklab, var(--color-primary) 35%, transparent), transparent 60%), radial-gradient(ellipse 70% 50% at 80% 80%, color-mix(in oklab, var(--color-teal) 18%, transparent), transparent 55%), var(--color-canvas)}}.work-card__media{transition:transform .4s var(--ease-out)}.work-card__media img{object-fit:cover;width:100%;height:100%;transition:filter var(--dur-med) ease;display:block}html[data-theme=dark] .work-card__media img{filter:brightness(.86)saturate(.9)}html[data-theme=dark] .work-card:hover .work-card__media img{filter:brightness(.92)saturate(.95)}.work-card:hover .work-card__media{transform:scale(1.03)}.work-card--always-meta:hover .work-card__title{color:#fff}@supports (color:color-mix(in lab, red, red)){.work-card--always-meta:hover .work-card__title{color:color-mix(in oklab, #fff 94%, var(--color-primary))}}.work-card--always-meta:hover .work-card__desc{color:oklab(100% 0 5.96046e-8/.88)}.work-card__scrim{background:linear-gradient(to top, var(--color-overlay) 0%, var(--color-overlay) 38%, var(--color-overlay) 62%, transparent 78%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.work-card__scrim{background:linear-gradient(to top, color-mix(in oklab, var(--color-overlay) 88%, transparent) 0%, color-mix(in oklab, var(--color-overlay) 52%, transparent) 38%, color-mix(in oklab, var(--color-overlay) 12%, transparent) 62%, transparent 78%)}}.work-card__scrim{opacity:0;transition:opacity var(--dur-med)}.work-card--always-meta .work-card__scrim,.work-card:hover .work-card__scrim,.work-card:focus-visible .work-card__scrim{opacity:1}.work-card__body{opacity:0;transition:opacity var(--dur-med), transform var(--dur-med) var(--ease-out);padding:20px 22px;position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.work-card--always-meta .work-card__body,.work-card:hover .work-card__body,.work-card:focus-visible .work-card__body{opacity:1;transform:translateY(0)}.work-card__meta{font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#fff;margin:0 0 8px}@supports (color:color-mix(in lab, red, red)){.work-card__meta{color:color-mix(in oklab, #fff 72%, var(--color-primary))}}.work-card__meta{text-shadow:0 1px 2px var(--color-overlay)}@supports (color:color-mix(in lab, red, red)){.work-card__meta{text-shadow:0 1px 2px color-mix(in oklab, var(--color-overlay) 55%, transparent)}}.work-card__title{letter-spacing:.02em;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px var(--color-overlay);margin:0 0 6px;font-size:clamp(18px,2vw,24px);font-weight:700;line-height:1.2}@supports (color:color-mix(in lab, red, red)){.work-card__title{text-shadow:0 1px 3px color-mix(in oklab, var(--color-overlay) 45%, transparent)}}.work-card__desc{color:oklab(100% 0 5.96046e-8/.82);-webkit-line-clamp:2;text-shadow:0 1px 2px var(--color-overlay);-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.work-card__desc{text-shadow:0 1px 2px color-mix(in oklab, var(--color-overlay) 40%, transparent)}}.work-card--list .work-card__scrim,.work-card--list .work-card__body{opacity:1;transform:none}.work-card--list .work-card__body{background:0 0}@media (prefers-reduced-motion:reduce){.work-card__scrim,.work-card__body{opacity:1!important;transform:none!important}}.article-row{color:inherit;border-bottom:1px solid var(--color-hairline);transition:background var(--dur-fast);grid-template-columns:1fr auto;align-items:baseline;gap:24px;padding:22px 18px 22px 22px;text-decoration:none;display:grid;position:relative}.article-row:before{content:"";background:var(--color-primary);opacity:0;width:3px;transition:opacity var(--dur-fast);position:absolute;top:10px;bottom:10px;left:0}.article-row:hover,.article-row:focus-visible{background:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.article-row:hover,.article-row:focus-visible{background:color-mix(in oklab, var(--color-primary) 8%, transparent)}}.article-row:hover:before,.article-row:focus-visible:before{opacity:1}.article-row__title{color:var(--color-ink);margin:0 0 6px;font-size:clamp(17px,1.6vw,20px);font-weight:600;line-height:1.35}.article-row__desc{color:var(--color-muted);margin:0;font-size:14px;line-height:1.5}.article-row__meta{font:400 12px/1.4 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);white-space:nowrap}@media (width<=640px){.article-row{grid-template-columns:1fr;gap:8px}.article-row__meta{white-space:normal}}.marquee{width:100%;overflow:hidden}.marquee__track{will-change:transform;gap:20px;width:max-content;animation:48s linear infinite marquee-x;display:flex}@media (hover:hover) and (pointer:fine){.marquee:hover .marquee__track,.marquee:focus-within .marquee__track{animation-play-state:paused}}.marquee__item{flex:0 0 min(86vw,640px)}@keyframes marquee-x{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (hover:none),(pointer:coarse){.marquee__track{will-change:auto;animation-duration:24s}.marquee .work-card__scrim,.marquee .work-card__body{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.marquee{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding-bottom:4px;overflow:auto hidden}.marquee__track{will-change:auto;width:max-content;padding-inline:var(--page-pad);animation:none!important;transform:none!important}}.hero{min-height:calc(100vh - var(--nav-h));border-bottom:1px solid var(--color-hairline);align-items:center;display:flex;position:relative;overflow:hidden}.hero__canvas{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hero__fallback{background:radial-gradient(ellipse 70% 50% at 60% 40%, var(--color-primary), transparent 65%), radial-gradient(ellipse 50% 40% at 20% 80%, var(--color-teal), transparent 60%), var(--color-canvas);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.hero__fallback{background:radial-gradient(ellipse 70% 50% at 60% 40%, color-mix(in oklab, var(--color-primary) 22%, transparent), transparent 65%), radial-gradient(ellipse 50% 40% at 20% 80%, color-mix(in oklab, var(--color-teal) 10%, transparent), transparent 60%), var(--color-canvas)}}.hero__content{z-index:1;width:100%;max-width:var(--container);padding:clamp(48px, 10vh, 96px) var(--page-pad);margin-inline:auto;position:relative}.hero__eyebrow{font:500 12px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin:0 0 20px}.hero__brand{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:var(--ls-display);font-weight:800;line-height:var(--lh-display);text-transform:uppercase;color:var(--color-ink);max-width:100%;margin:0 0 28px}@media (width<=480px){.hero__brand{font-size:clamp(1.75rem, calc((100vw - 2 * var(--page-pad)) / 9.5), 3.5rem);letter-spacing:-.06em;white-space:nowrap}}.hero__tagline{border-left:3px solid var(--color-primary);max-width:36ch;color:var(--color-body);margin:0 0 36px;padding-left:16px;font-size:clamp(18px,2.2vw,24px);font-weight:500;line-height:1.45}.hero__meta{font:400 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-top:28px}.about-note{grid-template-columns:auto 1fr;align-items:start;gap:20px;display:grid}.about-note__rail{background:var(--color-primary);align-self:stretch;width:3px;min-height:48px}.about-note__label{font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);margin:0 0 10px}.about-note p{color:var(--color-body);max-width:58ch;margin:0 0 12px;line-height:1.7}.about-note p:last-child{margin-bottom:0}html.js .reveal{opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);transform:translateY(12px)}html.js .reveal.visible{opacity:1;transform:none}html.js .reveal-delay-1{transition-delay:60ms}html.js .reveal-delay-2{transition-delay:.12s}html.js .reveal-delay-3{transition-delay:.18s}.prose-layout{grid-template-columns:1fr minmax(0, var(--prose-width)) 1fr;padding-top:var(--page-top);padding-bottom:80px;padding-inline:var(--page-pad);column-gap:0;display:grid}.prose-layout--solo{max-width:calc(var(--prose-width) + 2 * var(--page-pad));grid-template-columns:1fr;margin-inline:auto}.prose-layout--solo .prose-layout__main{grid-column:1}.prose-layout__main{grid-area:1/2;min-width:0}.prose-layout__toc{width:min(220px,100%);top:calc(var(--nav-h) + 16px);max-height:calc(100vh - var(--nav-h) - 48px);border-left:1px solid var(--color-hairline);grid-area:1/3;place-self:start;margin-left:32px;padding-left:16px;position:sticky;overflow:auto}@media (width<=1100px){.prose-layout{max-width:var(--prose-width);grid-template-columns:1fr;margin-inline:auto}.prose-layout__main,.prose-layout__toc{grid-area:auto/1;margin-left:0}.prose-layout__toc{border-left:none;border-bottom:1px solid var(--color-hairline);order:-1;width:100%;max-height:none;margin-bottom:28px;padding:0 0 16px;position:static}}.toc-title{font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin:0 0 12px}.toc-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.toc-list a{color:var(--color-muted);font-size:13px;line-height:1.4;text-decoration:none;display:block}.toc-list a:hover,.toc-list a[aria-current=true]{color:var(--color-primary)}.toc-list .toc-depth-3{padding-left:12px;font-size:12px}.prose-header{margin-bottom:36px}.prose-header h1{letter-spacing:-.02em;text-transform:none;margin:0 0 12px;font-size:clamp(28px,4vw,36px);font-weight:700;line-height:1.2}.prose-header__desc{color:var(--color-body);margin:0 0 16px;font-size:17px;line-height:1.6}.prose-header__time{font:400 12px/1.4 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin:0 0 12px}.prose-header__tags{flex-wrap:wrap;gap:8px;display:flex}.prose-tag{font:500 11px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-hairline);padding:6px 10px;text-decoration:none}.prose-tag:hover{color:var(--color-primary);border-color:var(--color-primary)}.prose{color:var(--color-body);font-size:1.0625rem;line-height:1.85}.prose h1{color:var(--color-ink);letter-spacing:-.025em;margin:3rem 0 1rem;font-size:clamp(1.65rem,2.4vw,1.9rem);font-weight:700;line-height:1.25}.prose h1:before,.prose h2:before,.prose h3:before{font-family:var(--font-mono);letter-spacing:.04em;color:var(--color-primary);vertical-align:.08em;margin-right:.45em;font-size:.72em;font-weight:500}.prose h1:before{content:"# "}.prose h2:before{content:"## "}.prose h3:before{content:"### "}.prose h2{color:var(--color-ink);border-bottom:1px solid var(--color-hairline);letter-spacing:-.02em;margin:2.75rem 0 .85rem;padding-bottom:.45rem;font-size:clamp(1.35rem,2vw,1.55rem);font-weight:700;line-height:1.3}.prose h3{color:var(--color-ink);border-left:3px solid var(--color-primary);letter-spacing:-.01em;margin:2.1rem 0 .55rem;padding-left:.75rem;font-size:1.15rem;font-weight:600;line-height:1.4}.prose h4{font-size:.95rem;font-weight:600;font-family:var(--font-mono);color:var(--color-muted);letter-spacing:.02em;margin:1.75rem 0 .45rem;line-height:1.45}.prose-header h1:before{content:none}.prose-header h1{border:none;padding:0}.prose p{margin:0 0 1.25rem}.prose ul,.prose ol{margin:0 0 1.25rem;padding-left:1.5rem}.prose li{margin-bottom:.35rem}.prose strong,.prose b{color:var(--color-ink);font-weight:700}html[data-theme=dark] .prose strong,html[data-theme=dark] .prose b{color:#f3f0e6}.prose blockquote{border-left:3px solid var(--color-primary);color:var(--color-ink);background:0 0;margin:1.5rem 0;padding:.6rem 0 .6rem 1.1rem}.prose hr{border:none;border-top:1px solid var(--color-hairline);margin:2.5rem 0}.prose img{border:1px solid var(--color-hairline);max-width:100%;height:auto;margin:1.5rem 0}.prose a{color:var(--color-primary)}.prose code:not(pre code){font-family:var(--font-mono);background:var(--color-primary);padding:.15em .4em;font-size:.86em}@supports (color:color-mix(in lab, red, red)){.prose code:not(pre code){background:color-mix(in oklab, var(--color-primary) 8%, var(--color-surface))}}.prose code:not(pre code){border:1px solid var(--color-hairline)}.prose .code-block-wrap{border:1px solid var(--color-hairline);background:var(--color-syntax-bg);margin:1.5rem 0}.code-block-header{font-family:var(--font-mono);background:0 0;justify-content:space-between;align-items:center;padding:.35rem .85rem 0;font-size:.7rem;display:flex}.code-block-header .code-lang{color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em}.code-block-header .copy-btn{color:var(--color-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;display:inline-flex}.code-block-header .copy-btn:hover,.code-block-header .copy-btn.copied{color:var(--color-primary)}.code-block-header .copy-btn svg{width:14px;height:14px}.prose .astro-code{border:none;margin:0;padding:.75rem 1rem 1.1rem;font-size:.875rem;overflow-x:auto;background:0 0!important}.prose .astro-code code{font-family:var(--font-mono)}.astro-code,.astro-code span{color:var(--shiki-light);background-color:#0000!important}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.prose table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.9375rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--color-hairline);text-align:left;padding:.55rem .75rem}.prose th{color:var(--color-ink);background:var(--color-primary);font-weight:600}@supports (color:color-mix(in lab, red, red)){.prose th{background:color-mix(in oklab, var(--color-primary) 6%, var(--color-surface))}}.prose tbody tr:hover{background:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.prose tbody tr:hover{background:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.prose .mermaid{text-align:center;margin:1.5rem 0;overflow-x:auto}.prose .mermaid svg{max-width:100%;height:auto}.prose .book-cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0;display:grid}.prose .book-cover-grid img{width:100%;margin:0;display:block}.chip-row{flex-wrap:wrap;gap:8px;margin:24px 0 8px;display:flex}.chip{font:500 11px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-hairline);background:0 0;padding:8px 12px}.chip--active{color:var(--color-primary);border-color:var(--color-primary)}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}@media (width<=720px){.work-grid{grid-template-columns:1fr}}.stat-bar{font:400 12px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);flex-wrap:wrap;gap:16px 28px;margin:16px 0 0;display:flex}.stat-bar strong{color:var(--color-ink);font-weight:500}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}.brand-logo[data-astro-cid-f7espo7c]{color:var(--color-ink);align-items:center;gap:10px;display:inline-flex}.brand-logo__mark[data-astro-cid-f7espo7c]{flex-shrink:0;display:block}.brand-logo__word[data-astro-cid-f7espo7c]{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:15px;font-weight:800;line-height:1}.social-icon-mask[data-astro-cid-g5kwm3ld]{background:currentColor;width:14px;height:14px;display:block;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}
