:root{color-scheme:light dark;--bg:#faf9f6;--surface-soft:#f0eee9;--ink:#292823;--ink-soft:#56554f;--ink-muted:#706e67;--line:#ddd9d1;--accent:#a83d30;--accent-soft:#f4e7e2;--footer-bg:#292823;--footer-ink:#faf9f6;--footer-ink-muted:#c3c0b7;--footer-line:#56554f;--code-bg:#f0eee9;--max-width:1040px;--reading-width:720px;--page-inset:40px;--header-height:80px;--layer-header:20;--layer-skip-link:30;--label-width:136px;--avatar-size:176px;--sans:"Helvetica Neue", "Hiragino Kaku Gothic ProN", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--display:"Iowan Old Style", "Yu Mincho", "Hiragino Mincho ProN", "Songti SC", "Noto Serif CJK SC", serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-small:.8125rem;--text-meta:.75rem;--icon-size:16px;--icon-stroke:1.5;--text-body:1rem;--text-lead:1.0625rem;--text-title:1.375rem;--text-section:1.1875rem;--text-display:clamp(2rem, 3.2vw, 2.75rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4rem;--space-7:6rem;--radius:2px;--transition:.18s ease;font-family:var(--sans);color:var(--ink);background:var(--bg);text-rendering:optimizelegibility}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-4))}body{min-width:320px;font-size:var(--text-body);background:var(--bg);margin:0;line-height:1.9}a{color:var(--accent);transition:color var(--transition);text-decoration:none}a:hover{text-underline-offset:5px;text-decoration:underline 1px}a:active{opacity:.75}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent-soft);color:var(--ink)}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{text-wrap:pretty}p{margin:0 0 var(--space-3)}.site-shell{min-height:100dvh;padding-top:var(--header-height);flex-direction:column;display:flex}main{flex:1;position:relative}.container,.header-inner,.footer-inner{width:min(calc(100% - var(--page-inset) * 2), var(--max-width));margin-inline:auto}.skip-link{top:var(--space-2);left:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--bg);border:1px solid var(--accent);z-index:var(--layer-skip-link);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}site-navigation{display:block}.site-header{height:var(--header-height);z-index:var(--layer-header);background:var(--bg);border-bottom:1px solid var(--line);transform:translateY(calc(var(--header-collapse,0) * -100%));position:fixed;inset:0 0 auto}.site-header:focus-within{transform:translateY(0)}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-3);height:100%;display:flex}.brand{align-items:center;gap:var(--space-2);min-height:44px;color:var(--ink);display:inline-flex}.brand:hover{color:var(--ink);text-decoration:none}.brand-mark{background:var(--ink);width:30px;height:30px;color:var(--bg);border-radius:var(--radius);font:600 .65rem/1 var(--mono);place-items:center;display:grid}.brand-name{font-size:var(--text-small);letter-spacing:.06em}.site-nav{align-items:center;gap:var(--space-3);display:flex}.header-inner .site-nav{margin-left:auto}html:lang(en){--sans:"Helvetica Neue", Arial, sans-serif}html:lang(zh-Hant){--sans:"Helvetica Neue", "PingFang TC", "Microsoft JhengHei", sans-serif;--display:"Iowan Old Style", "Songti TC", "Noto Serif CJK TC", serif}html:lang(ja){--sans:"Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--display:"Iowan Old Style", "Yu Mincho", "Hiragino Mincho ProN", serif}.nav-link{min-width:44px;min-height:44px;color:var(--ink-soft);font-size:var(--text-small);letter-spacing:.08em;justify-content:center;align-items:center;display:inline-flex;position:relative}.nav-link:after{background:var(--accent);content:"";height:1px;transition:transform var(--transition);position:absolute;bottom:4px;left:0;right:0;transform:scaleX(0)}.nav-link:hover,.nav-link[aria-current=page]{color:var(--accent);text-decoration:none}.nav-link:hover:after,.nav-link[aria-current=page]:after{transform:scaleX(1)}.more-link{align-items:center;gap:var(--space-1);min-height:44px;font-size:var(--text-small);letter-spacing:.025em;display:inline-flex}.ui-icon{width:var(--icon-size);height:var(--icon-size);stroke-width:var(--icon-stroke);flex-shrink:0;display:block}.link-arrow{transition:transform var(--transition)}.more-link:hover .link-arrow,.more-link:focus-visible .link-arrow{transform:translate(3px)}.more-link-back:hover .link-arrow,.more-link-back:focus-visible .link-arrow{transform:translate(-3px)}.author-intro{grid-template-columns:minmax(0, 1fr) var(--avatar-size);gap:var(--space-6);padding-block:var(--space-7);align-items:center;display:grid}.author-intro h1{margin:0 0 var(--space-3);font:500 var(--text-display)/1.5 var(--display);letter-spacing:.025em}.author-intro p{max-width:36em;margin-bottom:var(--space-2);color:var(--ink-soft);font-size:var(--text-lead)}.intro-links{gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.profile-link{min-height:44px;padding:var(--space-1) var(--space-3);border-radius:var(--radius);color:var(--accent);font-size:var(--text-small);letter-spacing:.025em;transition:color var(--transition), background-color var(--transition), border-color var(--transition);background:0 0;border:1px solid;justify-content:center;align-items:center;display:inline-flex}.profile-link:hover,.profile-link:focus-visible{color:var(--bg);background:var(--accent);border-color:var(--accent);text-decoration:none}.profile-avatar{width:var(--avatar-size);height:var(--avatar-size);object-fit:cover;aspect-ratio:1;filter:grayscale();mix-blend-mode:multiply}.editorial-section{grid-template-columns:var(--label-width) minmax(0, 1fr);gap:var(--space-5);padding-block:var(--space-5);border-top:1px solid var(--line);display:grid}.editorial-section:last-child{padding-bottom:var(--space-7)}.section-label h2{margin:0 0 var(--space-1);font-size:var(--text-body);letter-spacing:.1em;font-weight:500}.section-label .more-link{color:var(--ink-muted);font-size:var(--text-meta)}.about-content{min-width:0}.about-content p{color:var(--ink-soft)}.article-list{min-width:0}.article-card{gap:var(--space-3);padding-block:var(--space-4);color:var(--ink);grid-template-columns:minmax(0,1fr) 20px;display:grid}.article-card:first-child{padding-top:0}.article-card+.article-card{border-top:1px solid var(--line)}.article-card:last-child{padding-bottom:0}.article-card:hover{text-decoration:none}.article-card h2,.article-card h3{margin:0 0 var(--space-1);font-size:var(--text-title);letter-spacing:.025em;transition:color var(--transition);font-weight:500;line-height:1.65}.article-card:hover h2,.article-card:hover h3,.article-card:focus-visible h2,.article-card:focus-visible h3{color:var(--accent)}.article-card p{color:var(--ink-soft);font-size:var(--text-small);margin:0}.article-card-meta{gap:var(--space-1) var(--space-3);margin-top:var(--space-2);color:var(--ink-muted);font-size:var(--text-meta);flex-wrap:wrap;display:flex}.article-arrow{color:var(--ink-muted);transition:color var(--transition), transform var(--transition);padding-top:4px}.article-card:hover .article-arrow,.article-card:focus-visible .article-arrow{color:var(--accent);transform:translate(2px,-2px)}.empty-state{color:var(--ink-soft);padding-block:var(--space-4)}.page-hero{padding-block:var(--space-6);max-width:var(--reading-width)}.section-title{font:500 var(--text-display)/1.5 var(--display);letter-spacing:.06em;margin:0}.page-hero>p{margin:var(--space-3) 0 0;color:var(--ink-soft)}.page-hero>.more-link{margin-top:var(--space-2)}.listing-section{border-top:1px solid var(--line);padding-block:var(--space-5) var(--space-7)}.tag-row{gap:var(--space-1) var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.tag{color:var(--ink-muted);font-size:var(--text-meta)}.domain-tags{gap:var(--space-1) 0;margin-bottom:0;padding:0;list-style:none}.domain-tag{color:var(--ink-soft);font-size:var(--text-small);letter-spacing:.04em;white-space:nowrap;align-items:center;font-weight:500;line-height:1.6;display:inline-flex}.domain-tag+.domain-tag:before{content:"";width:1px;height:.75em;margin-inline:var(--space-2);background:var(--line)}.project-list-card{grid-template-columns:var(--label-width) minmax(0, 1fr) 20px;gap:var(--space-5);padding-block:var(--space-5)}.project-list-card:first-child{padding-top:0}.project-list-card:last-child{padding-bottom:0}.project-list-category{color:var(--ink-muted);font-size:var(--text-small);padding-top:5px}.project-list-card h2{margin-bottom:var(--space-2);font:500 var(--text-title)/1.5 var(--display);letter-spacing:.025em}.project-list-name,.project-list-purpose{display:block}.project-list-purpose{color:var(--ink-soft);font:400 var(--text-body)/1.7 var(--sans);letter-spacing:0;margin-top:3px}.project-list-card p{max-width:52em;line-height:1.85}.project-list-card .article-card-meta{margin-top:var(--space-2)}.project-audience{color:var(--ink-soft)}.project-shell{padding-block:var(--space-5) var(--space-7)}.project-header{padding-bottom:var(--space-5);border-bottom:1px solid var(--line)}.project-header h1{margin:0 0 var(--space-3);font:500 var(--text-display)/1.5 var(--display);letter-spacing:.025em}.project-header h1>span{margin-top:var(--space-1);font-size:var(--text-title);letter-spacing:.02em;line-height:1.7;display:block}.project-kicker{margin:0 0 var(--space-2);color:var(--accent);font-size:var(--text-small);letter-spacing:.08em}.project-flow{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-soft)}.project-flow h2,.project-related h2{margin:0 0 var(--space-2);font:500 var(--text-section)/1.6 var(--display);letter-spacing:.04em}.project-flow h2{color:var(--ink-muted);font:500 var(--text-small)/1.8 var(--sans)}.project-flow ol{gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.project-flow li{align-items:center;gap:var(--space-2);color:var(--ink);font-size:var(--text-body);display:inline-flex}.project-flow .ui-icon{color:var(--accent)}.project-related{margin-top:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--line)}.project-related a{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-block:var(--space-2);border-bottom:1px solid var(--line);color:var(--ink);font-size:var(--text-small);display:flex}.project-related a .ui-icon{color:var(--accent);transition:transform var(--transition);flex-shrink:0}.project-related a:hover{color:var(--accent);text-decoration:none}.project-related a:hover .ui-icon{transform:translate(2px,-2px)}.project-followup{margin-top:var(--space-5);border-top:1px solid var(--line)}.project-return{margin-top:var(--space-1)}.project-next{padding-block:var(--space-4);color:var(--ink);display:block}.project-next-label{margin-bottom:var(--space-1);color:var(--ink-muted);font-size:var(--text-meta);display:block}.project-next-name{justify-content:space-between;align-items:center;gap:var(--space-3);font:500 var(--text-title)/1.6 var(--display);display:flex}.project-next-name .ui-icon{transition:transform var(--transition)}.project-next-description{margin-top:var(--space-1);color:var(--ink-soft);font-size:var(--text-small);display:block}.project-next:hover{color:var(--accent);text-decoration:none}.project-next:hover .ui-icon,.project-next:focus-visible .ui-icon{transform:translate(2px,-2px)}.article-back{margin-bottom:var(--space-4)}.article-header{padding-bottom:var(--space-4);border-bottom:1px solid var(--line)}.article-header h1{margin:0 0 var(--space-3);font:500 clamp(1.75rem, 3vw, 2.375rem)/1.65 var(--display);letter-spacing:.03em}.article-description{color:var(--ink-soft);font-size:var(--text-body);margin:0}.article-meta{gap:var(--space-1) var(--space-3);margin-top:var(--space-3);color:var(--ink-muted);font-size:var(--text-meta);flex-wrap:wrap;display:flex}.article-body{padding-top:var(--space-4);overflow-wrap:anywhere;line-height:2}.article-body h2{margin:var(--space-5) 0 var(--space-3);font:600 var(--text-title)/1.65 var(--display);color:var(--ink);letter-spacing:.025em}.article-body h3{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-section);font-weight:600}.article-body>:first-child{margin-top:0}.article-body p{margin-block:0 var(--space-3)}.article-body ul,.article-body ol{padding-left:var(--space-3);margin-block:var(--space-2) var(--space-3)}.article-body li{padding-left:var(--space-1);margin-bottom:var(--space-1)}.article-body strong{font-weight:600}.article-body a{text-underline-offset:4px;text-decoration:underline}.article-body blockquote{margin:var(--space-4) 0;padding:var(--space-1) var(--space-3);border-left:2px solid var(--accent);color:var(--ink-soft);background:var(--surface-soft)}.article-body blockquote p:last-child{margin-bottom:0}.article-body code{background:var(--code-bg);border-radius:var(--radius);font:.85em/1.7 var(--mono);padding:.15em .35em}.article-body pre{max-width:100%;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--code-bg);color:var(--ink);font-size:var(--text-small);overflow-wrap:normal;line-height:1.8;overflow-x:auto}.article-body pre code{color:inherit;background:0 0;padding:0}.article-body table{width:max-content;min-width:100%;max-width:100%;margin-block:var(--space-4);border-collapse:collapse;font-size:var(--text-small);display:block;overflow-x:auto}.article-body th,.article-body td{padding:var(--space-2);border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.article-body th{background:var(--surface-soft);font-weight:600}.article-body hr{border:0;border-top:1px solid var(--line);margin-block:var(--space-5)}.project-body{padding-top:var(--space-5);color:var(--ink-soft)}.project-body h2{margin-top:var(--space-6);margin-bottom:var(--space-3);font-weight:500}.project-body>:first-child{color:var(--ink);margin-top:0}.project-body table{table-layout:fixed;width:100%;line-height:1.9;display:table}.project-body th,.project-body td{padding:var(--space-2) var(--space-3)}.project-body th{color:var(--ink-muted);font-size:var(--text-meta);font-weight:500}.project-body th:first-child,.project-body td:first-child{width:24%;color:var(--ink);padding-left:0}.project-body th:last-child,.project-body td:last-child{padding-right:0}.project-body th{background:0 0}.site-footer{background:var(--footer-bg);color:var(--footer-ink);font-size:var(--text-small);position:relative}.header-retract-trigger{top:calc(-1 * var(--header-height));width:1px;height:calc(2 * var(--header-height));pointer-events:none;position:absolute}.site-footer p{margin:0}.footer-main{gap:var(--space-5);padding-block:var(--space-5);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1.2fr);display:grid}.site-footer .footer-name{margin-bottom:var(--space-1);font:500 var(--text-title)/1.5 var(--display);letter-spacing:.015em}.footer-description{color:var(--footer-ink-muted);line-height:1.9}.footer-heading{margin:0 0 var(--space-2);font-size:var(--text-meta);color:var(--footer-ink-muted);letter-spacing:.06em;font-weight:500}.footer-nav-links{column-gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.footer-social-links{gap:var(--space-3);flex-wrap:wrap;display:flex}.site-footer a{align-items:center;gap:var(--space-1);width:fit-content;max-width:100%;min-height:44px;color:var(--footer-ink);text-underline-offset:5px;transition:text-decoration-color var(--transition);text-decoration:underline #0000;display:inline-flex}.site-footer a:hover,.site-footer a:focus-visible{text-decoration-color:currentColor}.site-footer a:focus-visible{outline-color:var(--footer-ink)}.site-footer .footer-email{color:var(--footer-ink-muted)}.footer-email span{overflow-wrap:anywhere}.footer-bottom{justify-content:space-between;align-items:center;gap:var(--space-3);padding-block:var(--space-2);border-top:1px solid var(--footer-line);display:flex}.footer-copyright{color:var(--footer-ink-muted);font-size:var(--text-meta)}.footer-copyright span{display:inline-block}.site-footer .footer-top-link{color:var(--footer-ink-muted);font-size:var(--text-meta);flex-shrink:0}@media (prefers-color-scheme:dark){:root{--bg:#22221f;--surface-soft:#2d2d28;--ink:#e5e3db;--ink-soft:#c3c0b7;--ink-muted:#aaa79e;--line:#45443d;--accent:#e2917e;--accent-soft:#48302a;--code-bg:#2d2d28}.profile-avatar{mix-blend-mode:normal;opacity:.88}.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}@media (width<=1024px){:root{--label-width:112px;--avatar-size:144px}.author-intro{gap:var(--space-4)}}@media (width<=767px){:root{--page-inset:24px;--avatar-size:104px;--text-title:1.1875rem;--text-display:2rem}body{overflow-x:hidden}.container,.header-inner,.footer-inner{width:calc(100vw - var(--page-inset) * 2);min-width:0;max-width:none}.site-nav{flex:1;justify-content:flex-end;gap:0}.nav-link{min-width:40px;min-height:40px;font-size:var(--text-meta);letter-spacing:0;white-space:nowrap;padding-inline:2px}:root{--header-height:112px}.header-inner{gap:0 var(--space-2);grid-template-rows:60px 52px;grid-template-columns:minmax(0,1fr) auto;display:grid}.header-inner .brand{gap:var(--space-1);grid-area:1/1;width:fit-content}.header-inner .brand-name{font-size:var(--text-meta);display:inline}.header-inner .language-picker{grid-area:1/2}.header-inner .site-nav{grid-area:2/1/auto/-1;justify-content:space-between;align-self:start;width:100%;margin:0}.header-inner .nav-link{min-height:44px;padding-inline:var(--space-1)}.author-intro{grid-template-columns:minmax(0, 1fr) var(--avatar-size);padding-block:var(--space-5);gap:var(--space-3);align-items:start}.author-intro h1{font-size:1.75rem}.author-intro p{font-size:var(--text-body)}.editorial-section{gap:var(--space-3);grid-template-columns:1fr}.section-label{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.section-label h2{margin:0}.article-card{column-gap:var(--space-2);row-gap:var(--space-1);grid-template-columns:minmax(0,1fr) 20px}.page-hero{padding-block:var(--space-5)}.project-list-card{gap:var(--space-1) var(--space-2);grid-template-columns:minmax(0,1fr) 20px}.project-list-category{font-size:var(--text-meta);grid-column:1;padding:0}.project-list-card .article-card-content{grid-column:1}.project-list-card .article-arrow{grid-area:2/2}.project-header{padding-bottom:var(--space-4)}.project-header h1{font-size:var(--text-display)}.project-header h1>span{font-size:var(--text-section)}.project-flow{padding:var(--space-3)}.project-flow ol{gap:var(--space-1);flex-direction:column}.project-flow li{align-items:flex-start;gap:var(--space-1);flex-direction:column;line-height:1.8}.project-flow .ui-icon{transform:rotate(90deg)}.project-body h2{margin-top:var(--space-5)}.project-body th,.project-body td{padding:var(--space-2) var(--space-1)}.project-body th:first-child,.project-body td:first-child{width:30%}.article-header h1{font-size:1.75rem}.footer-main{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.footer-identity{grid-column:1/-1}}@media (width<=480px){:root{--page-inset:20px;--avatar-size:88px}.brand{gap:var(--space-1)}.site-nav{flex:1;justify-content:flex-end;gap:0}.nav-link{min-width:36px;min-height:40px;font-size:var(--text-meta);letter-spacing:0;white-space:nowrap;padding-inline:2px}.author-intro{gap:var(--space-3);grid-template-columns:1fr}.profile-avatar{grid-row:1}.author-intro h1{font-size:1.75rem}.footer-main{grid-template-columns:1fr}.footer-identity{grid-column:auto}.footer-nav-links{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-bottom{gap:var(--space-1) var(--space-3);flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}.site-header{transform:none}}@media print{:root{--bg:#fff;--ink:#222;--ink-soft:#444;--ink-muted:#555;--line:#ccc;--accent:#333;--code-bg:#f4f4f4;--surface-soft:#f4f4f4}.site-header,.site-footer,.skip-link,.article-back{display:none}.site-shell{padding-top:0}.container{width:100%}}.language-picker[data-astro-cid-gtewornt]{--language-menu-width:172px;font-size:var(--text-small);flex-shrink:0;position:relative}summary[data-astro-cid-gtewornt]{align-items:center;gap:var(--space-1);min-height:44px;padding-inline:var(--space-1);color:var(--ink-soft);cursor:pointer;border-radius:var(--radius);list-style:none;display:flex}summary[data-astro-cid-gtewornt]::-webkit-details-marker{display:none}summary[data-astro-cid-gtewornt]:hover,.language-picker[data-astro-cid-gtewornt][open] summary[data-astro-cid-gtewornt]{color:var(--accent);background:var(--surface-soft)}.language-chevron[data-astro-cid-gtewornt]{width:12px;height:12px;transition:transform var(--transition)}.language-picker[data-astro-cid-gtewornt][open] .language-chevron[data-astro-cid-gtewornt]{transform:rotate(180deg)}.language-options[data-astro-cid-gtewornt]{right:0;top:calc(100% + var(--space-1));width:var(--language-menu-width);padding:var(--space-1);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px color-mix(in srgb, var(--ink) 8%, transparent);position:absolute}.language-options[data-astro-cid-gtewornt] a[data-astro-cid-gtewornt]{justify-content:space-between;align-items:center;gap:var(--space-1);min-height:44px;padding:var(--space-1);color:var(--ink-soft);display:flex}.language-options[data-astro-cid-gtewornt] a[data-astro-cid-gtewornt]:hover,.language-options[data-astro-cid-gtewornt] a[data-astro-cid-gtewornt][aria-current]{color:var(--accent);background:var(--surface-soft);text-decoration:none}@media (width>=768px) and (width<=1024px){.language-current[data-astro-cid-gtewornt]{display:none}}@media print{.language-picker[data-astro-cid-gtewornt]{display:none}}.site-botanicals[data-astro-cid-b5m44mjj]{--botanical-stroke:1.2;--botanical-flower-width:132px;--botanical-dandelion-width:142px;--botanical-gutter:max(var(--space-3), calc((100vw - var(--max-width)) / 4));--flower-head-height:calc(var(--botanical-flower-width) * 278 / 160);top:calc(-1 * var(--header-height));pointer-events:none;user-select:none;color:var(--ink);display:none;position:absolute;bottom:0;left:0;right:0}.botanical-stage[data-astro-cid-b5m44mjj]{height:min(100dvh,100%);position:sticky;top:0}.botanical[data-astro-cid-b5m44mjj]{stroke:currentColor;height:auto;stroke-width:var(--botanical-stroke);stroke-linecap:round;stroke-linejoin:round;opacity:.65;display:block;position:absolute;bottom:0;overflow:visible}.botanical-flower[data-astro-cid-b5m44mjj]{width:var(--botanical-flower-width);left:calc(var(--botanical-gutter) - var(--botanical-flower-width) / 2)}.botanical-right-rail[data-astro-cid-b5m44mjj]{width:max(0px, calc((100% - var(--max-width)) / 2 - var(--space-3)));pointer-events:none;position:absolute;inset:0 0 0 auto;overflow:clip}.botanical-dandelion[data-astro-cid-b5m44mjj]{width:min(var(--botanical-dandelion-width), calc(100% - var(--space-2)));max-width:100%;left:auto;right:max(var(--space-2), calc(var(--botanical-gutter) - var(--botanical-dandelion-width) / 2))}.flower-sway[data-astro-cid-b5m44mjj]{transform-origin:80px 354px}.dandelion-sway[data-astro-cid-b5m44mjj]{transform-origin:85px 335px}.seed-leaves[data-astro-cid-b5m44mjj]{transform-origin:80px 338px}.flower-leaf-lower[data-astro-cid-b5m44mjj]{transform-origin:79px 285px}.flower-leaf-middle[data-astro-cid-b5m44mjj]{transform-origin:79px 225px}.flower-leaf-upper[data-astro-cid-b5m44mjj]{transform-origin:78px 166px}.dandelion-leaf-left[data-astro-cid-b5m44mjj],.dandelion-leaf-right[data-astro-cid-b5m44mjj]{transform-origin:85px 326px}.dandelion-crown[data-astro-cid-b5m44mjj],.dandelion-seed[data-astro-cid-b5m44mjj]{transform-origin:98px 88px}.dandelion-filament[data-astro-cid-b5m44mjj]{stroke-width:.8px;opacity:.65}.dandelion-tuft[data-astro-cid-b5m44mjj]{stroke-width:.85px}.dandelion-achene[data-astro-cid-b5m44mjj]{stroke-width:1.4px}.dandelion-core[data-astro-cid-b5m44mjj]{fill:var(--bg)}.seed-flight-first[data-astro-cid-b5m44mjj]{--seed-drift-x:37px;--seed-drift-y:-106px;--seed-tilt:24deg}.seed-flight-second[data-astro-cid-b5m44mjj]{--seed-drift-x:54px;--seed-drift-y:-74px;--seed-tilt:35deg}.seed-flight-third[data-astro-cid-b5m44mjj]{--seed-drift-x:-33px;--seed-drift-y:-138px;--seed-tilt:-22deg}.flower-bud[data-astro-cid-b5m44mjj],.flower-blossom[data-astro-cid-b5m44mjj]{transform-origin:80px 92px}.flower-bud[data-astro-cid-b5m44mjj]{opacity:0}.flower-center[data-astro-cid-b5m44mjj]{fill:var(--bg)}.leaf-vein[data-astro-cid-b5m44mjj],.petal-vein[data-astro-cid-b5m44mjj],.botanical-ground[data-astro-cid-b5m44mjj]{opacity:.5}.butterfly-arrival[data-astro-cid-b5m44mjj]{left:calc(var(--botanical-gutter) + var(--space-1));bottom:calc(var(--flower-head-height) + var(--space-1));opacity:.75;width:42px;height:32.6667px;position:absolute}.butterfly-flight[data-astro-cid-b5m44mjj]{width:100%;height:100%}.butterfly[data-astro-cid-b5m44mjj]{stroke:currentColor;stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;display:block}.butterfly-wing[data-astro-cid-b5m44mjj]{transform-origin:27px 22px}@media (width>=1440px){.site-botanicals[data-astro-cid-b5m44mjj]{display:block}}@media (width>=1440px) and (prefers-reduced-motion:no-preference){@supports (animation-timeline:scroll()){.growth-stroke[data-astro-cid-b5m44mjj]{stroke-dasharray:1;animation:linear both stem-grow}.seed-leaves[data-astro-cid-b5m44mjj]{animation:linear both seed-unfurl}.plant-leaf[data-astro-cid-b5m44mjj]{animation:ease-out both leaf-unfurl}.flower-bud[data-astro-cid-b5m44mjj]{animation:linear both bud-form}.flower-blossom[data-astro-cid-b5m44mjj]{animation:ease-in-out both flower-open}.butterfly-arrival[data-astro-cid-b5m44mjj]{animation:ease-in-out both butterfly-approach}.dandelion-crown[data-astro-cid-b5m44mjj]{animation:ease-out both dandelion-open}.seed-flight-first[data-astro-cid-b5m44mjj],.seed-flight-second[data-astro-cid-b5m44mjj],.seed-flight-third[data-astro-cid-b5m44mjj]{animation:ease-in-out both seed-depart}.growth-stroke[data-astro-cid-b5m44mjj],.seed-leaves[data-astro-cid-b5m44mjj],.plant-leaf[data-astro-cid-b5m44mjj],.flower-bud[data-astro-cid-b5m44mjj],.flower-blossom[data-astro-cid-b5m44mjj],.butterfly-arrival[data-astro-cid-b5m44mjj],.dandelion-crown[data-astro-cid-b5m44mjj],.seed-flight-first[data-astro-cid-b5m44mjj],.seed-flight-second[data-astro-cid-b5m44mjj],.seed-flight-third[data-astro-cid-b5m44mjj]{animation-timeline:scroll(root)}.growing-stem[data-astro-cid-b5m44mjj]{animation-range:0% 56%}.dandelion-growing-stem[data-astro-cid-b5m44mjj]{animation-range:4% 52%}.seed-leaves[data-astro-cid-b5m44mjj]{animation-range:0% 16%}.flower-leaf-lower[data-astro-cid-b5m44mjj]{animation-range:12% 30%}.flower-leaf-middle[data-astro-cid-b5m44mjj]{animation-range:27% 45%}.flower-leaf-upper[data-astro-cid-b5m44mjj]{animation-range:40% 58%}.dandelion-leaf-left[data-astro-cid-b5m44mjj]{animation-range:6% 28%}.dandelion-leaf-right[data-astro-cid-b5m44mjj]{animation-range:14% 36%}.dandelion-crown[data-astro-cid-b5m44mjj]{animation-range:52% 72%}.seed-flight-first[data-astro-cid-b5m44mjj]{animation-range:78% 98%}.seed-flight-second[data-astro-cid-b5m44mjj]{animation-range:84% 100%}.seed-flight-third[data-astro-cid-b5m44mjj]{animation-range:88% 100%}.flower-bud[data-astro-cid-b5m44mjj]{animation-range:56% 70%}.flower-blossom[data-astro-cid-b5m44mjj]{animation-range:58% 76%}.butterfly-arrival[data-astro-cid-b5m44mjj]{animation-range:74% 88%}.flower-sway[data-astro-cid-b5m44mjj]{animation:12s ease-in-out -3s infinite botanical-sway}.dandelion-sway[data-astro-cid-b5m44mjj]{animation:14s ease-in-out -7s infinite reverse botanical-sway}.butterfly-flight[data-astro-cid-b5m44mjj]{animation:10s ease-in-out -2s infinite butterfly-orbit}.butterfly-wing[data-astro-cid-b5m44mjj]{animation:.48s ease-in-out infinite alternate butterfly-flutter}}}@keyframes stem-grow{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes seed-unfurl{0%{transform:scale(.65)}to{transform:scale(1)}}@keyframes leaf-unfurl{0%{opacity:0;transform:scale(.08)rotate(-18deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes dandelion-open{0%{opacity:0;transform:scale(.12)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes seed-depart{0%{opacity:1;transform:translate(0)rotate(0)}40%{opacity:.9;transform:translate(calc(var(--seed-drift-x) * .35), calc(var(--seed-drift-y) * .45)) rotate(calc(var(--seed-tilt) * -.25))}75%{opacity:.7;transform:translate(calc(var(--seed-drift-x) * .85), calc(var(--seed-drift-y) * .8)) rotate(var(--seed-tilt))}to{opacity:0;transform:translate(var(--seed-drift-x), var(--seed-drift-y)) rotate(calc(var(--seed-tilt) * .6))}}@keyframes bud-form{0%{opacity:0;transform:scale(.1)}35%,65%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.7)}}@keyframes flower-open{0%{opacity:0;transform:scale(.12)rotate(-16deg)}25%{opacity:1;transform:scale(.3)rotate(-10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes butterfly-approach{0%{opacity:0;transform:translate(-78px,44px)rotate(-18deg)}25%{opacity:.65;transform:translate(-48px,6px)rotate(-6deg)}65%{opacity:.75;transform:translate(-12px,-14px)rotate(10deg)}to{opacity:.75;transform:translate(0)rotate(0)}}@keyframes botanical-sway{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}@keyframes butterfly-orbit{0%,to{transform:translate(-20px,2px)rotate(-12deg)}25%{transform:translate(8px,-20px)rotate(9deg)}50%{transform:translate(22px,6px)rotate(14deg)}75%{transform:translate(-1px,26px)rotate(-7deg)}}@keyframes butterfly-flutter{0%{transform:scaleX(1)}to{transform:scaleX(.4)}}@media print{.site-botanicals[data-astro-cid-b5m44mjj]{display:none}}.home-page{--hero-name-size:clamp(3rem, 6.2vw, 5rem);--hero-portrait-size:224px;--home-heading-size:1.5rem;--home-feature-size:clamp(1.5rem, 2.3vw, 1.875rem);--home-summary-size:var(--text-small);--home-section-gap:var(--space-6);--home-label-width:160px;--home-ease:.24s cubic-bezier(.2, .7, .2, 1)}.home-page .author-intro{grid-template-columns:minmax(0, 1fr) var(--hero-portrait-size);gap:var(--space-6);padding-block:var(--space-6) var(--space-7);position:relative}.home-page .author-intro h1{margin-bottom:var(--space-4);font-size:var(--hero-name-size);letter-spacing:-.045em;line-height:1.12}.home-page .author-intro p{margin-bottom:var(--space-4)}.intro-statement,.intro-description{display:block}.intro-statement{color:var(--ink);font-size:var(--text-section)}.intro-description{margin-top:var(--space-1);font-size:var(--text-body)}.home-page .profile-avatar{width:var(--hero-portrait-size);height:var(--hero-portrait-size)}.home-page .intro-links{gap:var(--space-2)}.home-page .profile-link{isolation:isolate;border-radius:var(--radius);min-width:112px;transition:color var(--home-ease), border-color var(--home-ease), transform var(--home-ease);position:relative;overflow:hidden}.home-page .profile-link:before{z-index:-1;content:"";background:var(--accent);transition:transform var(--home-ease);position:absolute;inset:0;transform:translateY(101%)}.home-page .profile-link:hover,.home-page .profile-link:focus-visible{background:0 0}.home-page .profile-link:hover:before,.home-page .profile-link:focus-visible:before{transform:translateY(0)}.home-page .profile-link:active{opacity:1;transform:translateY(1px)}.home-page .home-about{grid-template-columns:var(--home-label-width) minmax(0, 1fr);gap:var(--space-5);padding-block:var(--home-section-gap)}.home-page .section-label h2,.home-section-heading h2{font:500 var(--home-heading-size)/1.5 var(--display);letter-spacing:.045em;margin:0}.home-page .about-content{max-width:var(--reading-width)}.home-page .about-content p{line-height:2}.home-page .about-content p:first-child{color:var(--ink)}.home-page .domain-tags{margin-top:var(--space-4)}.home-page .domain-tag{color:var(--accent)}.home-page .domain-tag+.domain-tag:before{margin-inline:var(--space-3)}.home-section{border-top:1px solid var(--line);padding-block:var(--home-section-gap)}.home-section-heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.home-section-heading .more-link{color:var(--ink-soft)}.home-section-heading .more-link:hover{color:var(--accent)}.home-page .featured-writing{column-gap:var(--space-6);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);display:grid}.home-page .featured-writing .article-card{padding-block:var(--space-4)}.home-page .featured-writing .article-card:first-child{padding:var(--space-4);background:var(--surface-soft);border-radius:var(--radius);grid-row:span 2;align-content:start}.home-page .featured-writing .article-card:nth-child(2){border-top:0;padding-top:0}.home-page .featured-writing .article-card:last-child{padding-bottom:0}.home-page .featured-writing h3{font-size:var(--text-section);line-height:1.7}.home-page .featured-writing .article-card:first-child h3{margin-bottom:var(--space-3);font-family:var(--display);font-size:var(--home-feature-size);line-height:1.65}.home-page .featured-writing p{font-size:var(--home-summary-size);line-height:1.95}.home-page .featured-writing .article-card:first-child .article-card-meta{margin-top:var(--space-4);color:var(--ink-soft)}.home-page .article-arrow{transition:color var(--home-ease), transform var(--home-ease)}.home-page .article-card:active{opacity:1}.home-page .project-showcase .article-card{grid-template-columns:var(--home-label-width) minmax(0, 1fr) 20px;column-gap:var(--space-5);padding-block:var(--space-5)}.home-page .project-showcase .article-card:first-child{padding-top:0}.home-page .project-showcase .article-card:last-child{padding-bottom:0}.showcase-category{color:var(--ink-muted);font-size:var(--text-small);padding-top:6px}.home-page .project-showcase h3{margin-bottom:var(--space-2)}.showcase-name{font-size:var(--text-title);letter-spacing:-.02em;display:block}.showcase-purpose{font-size:var(--text-body);color:var(--ink-soft);margin-top:2px;font-weight:400;display:block}.home-page .project-showcase p{max-width:45em;font-size:var(--text-body);line-height:1.9}.home-page .project-showcase .article-card-meta{margin-top:var(--space-2)}.home-projects{padding-bottom:var(--space-7)}@media (width<=1024px){.home-page{--hero-portrait-size:192px;--home-label-width:128px}.home-page .author-intro{gap:var(--space-5)}.home-page .featured-writing{column-gap:var(--space-4)}}@media (width<=767px){.home-page{--hero-name-size:3rem;--hero-portrait-size:128px;--home-section-gap:var(--space-5);--home-heading-size:1.3125rem;--home-summary-size:.875rem}.home-page .author-intro{grid-template-columns:minmax(0, 1fr) var(--hero-portrait-size);gap:var(--space-3);padding-block:var(--space-5)}.home-page .author-intro h1{margin-bottom:var(--space-3)}.intro-statement{font-size:var(--text-lead)}.intro-description{font-size:var(--text-small)}.home-page .home-about{gap:var(--space-3);grid-template-columns:1fr}.home-section-heading{margin-bottom:var(--space-3)}.home-page .featured-writing{gap:var(--space-4);grid-template-columns:1fr}.home-page .featured-writing .article-card:first-child{grid-row:auto}.home-page .featured-writing .article-card:nth-child(2){padding-block:0}.home-page .featured-writing .article-card:last-child{padding-top:var(--space-4)}.home-page .project-showcase .article-card{gap:var(--space-1) var(--space-2);padding-block:var(--space-4);grid-template-columns:minmax(0,1fr) 20px}.showcase-category{font-size:var(--text-meta);grid-column:1;padding:0}.home-page .project-showcase .article-card-content{grid-column:1}.home-page .project-showcase .article-arrow{grid-area:2/2}.home-page .project-showcase p{font-size:var(--text-small)}.home-projects{padding-bottom:var(--space-6)}}@media (width<=480px){.home-page{--hero-name-size:3.25rem;--hero-portrait-size:104px}.home-page .author-intro{grid-template-columns:1fr;position:relative}.home-page .profile-avatar{top:var(--space-5);grid-row:auto;width:64px;height:64px;position:absolute;right:0}.home-page .author-intro h1{padding-right:72px;font-size:clamp(2.375rem,10.5vw,3rem);line-height:1.4}.home-page .author-intro p{margin-bottom:var(--space-3)}.home-page .domain-tag+.domain-tag:before{margin-inline:var(--space-2)}.home-page .featured-writing .article-card:first-child{padding:var(--space-3)}}@media (prefers-color-scheme:dark){.home-page .profile-avatar{filter:grayscale()invert();mix-blend-mode:screen;opacity:.85}}@media (prefers-reduced-motion:reduce){.home-page .profile-link:before{opacity:0;transform:none}.home-page .profile-link:hover:before,.home-page .profile-link:focus-visible:before{opacity:1}.home-page .profile-link:active{transform:none}}.writing-archive .article-card{grid-template-columns:var(--label-width) minmax(0, 1fr) var(--icon-size);gap:var(--space-5);padding-block:var(--space-5)}.writing-archive .article-card:first-child{padding-top:0}.writing-archive .article-card:last-child{padding-bottom:0}.writing-topic{align-items:flex-start;gap:var(--space-1);padding-top:var(--space-1);font-size:var(--text-small);color:var(--ink-soft);flex-direction:column;display:flex}.writing-topic span:last-child{font-size:var(--text-meta);color:var(--ink-muted)}.writing-archive .article-card h2{margin-bottom:var(--space-2);font:500 var(--text-title)/1.7 var(--display)}.writing-archive .article-card p{font-size:var(--text-body);line-height:1.9}.writing-shell{--outline-width:12rem;padding-block:var(--space-5) var(--space-7)}.writing-shell .article-header{padding-bottom:var(--space-5)}.writing-shell .article-header h1{margin-bottom:var(--space-3);letter-spacing:.02em;line-height:1.55}.writing-shell .article-description{color:var(--ink-soft);font-size:var(--text-lead);line-height:1.9}.writing-shell .article-meta{margin-top:var(--space-3)}.writing-layout{padding-top:var(--space-5);min-width:0}.writing-layout.has-outline{grid-template-columns:var(--outline-width) minmax(0, 1fr);gap:var(--space-5);display:grid}.writing-body{min-width:0;color:var(--ink-soft);padding-top:0}.writing-body h2{margin-top:var(--space-6);margin-bottom:var(--space-3);font-weight:500}.writing-body h3{font-size:var(--text-section);color:var(--ink);font-weight:500}.writing-body>:first-child{color:var(--ink);margin-top:0}.writing-body strong{color:var(--ink)}.writing-body blockquote{padding-block:var(--space-1);background:0 0}.writing-body pre{font-size:var(--text-small);border:0}.writing-body table{line-height:1.85}.writing-body th{color:var(--ink);font-weight:500}.writing-body th,.writing-body td{min-width:7em;padding:var(--space-2) var(--space-1)}.writing-outline{min-width:0}.writing-outline-inner{top:calc(var(--header-height) + var(--space-4));max-height:calc(100dvh - var(--header-height) - var(--space-6));position:sticky;overflow-y:auto}.writing-outline h2{margin:0 0 var(--space-2);color:var(--ink);font-size:var(--text-small);font-weight:500}.writing-contents ol{margin:0;padding:0;list-style:none}.writing-contents a{min-height:44px;padding-block:var(--space-1);color:var(--ink-muted);font-size:var(--text-small);line-height:1.8;text-decoration:none;display:block}.writing-contents a:hover,.writing-contents a:focus-visible{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.writing-contents a:focus-visible{outline-offset:-2px}.writing-mobile-contents{display:none}.writing-end{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--line)}.writing-next>h2{margin:0 0 var(--space-3);font-size:var(--text-small);color:var(--ink-muted);font-weight:400}.writing-next .article-card h3{font:500 var(--text-title)/1.7 var(--display)}.writing-next .article-card p{font-size:var(--text-small)}.writing-return{margin-top:var(--space-4)}@media (width<=1024px){.writing-layout.has-outline{display:block}.writing-outline{display:none}.writing-mobile-contents{padding-block:var(--space-2);border-bottom:1px solid var(--line);display:block}.writing-mobile-contents summary{min-height:44px;color:var(--ink-soft);cursor:pointer;font-size:var(--text-small);justify-content:space-between;align-items:center;list-style:none;display:flex}.writing-mobile-contents summary::-webkit-details-marker{display:none}.writing-mobile-contents summary .ui-icon{transition:transform var(--transition)}.writing-mobile-contents[open] summary .ui-icon{transform:rotate(180deg)}.writing-mobile-contents .writing-contents{padding-block:var(--space-1)}}@media (width<=767px){.writing-archive .article-card{grid-template-columns:minmax(0, 1fr) var(--icon-size);gap:var(--space-2);padding-block:var(--space-4)}.writing-topic{align-items:baseline;gap:var(--space-2);flex-direction:row;grid-column:1;padding:0}.writing-archive .article-card-content{grid-column:1;min-width:0}.writing-archive .article-arrow{grid-area:2/2}.writing-archive .article-card h2{font-size:var(--text-section);margin-bottom:var(--space-1)}.writing-archive .article-card p{font-size:var(--text-small)}.writing-shell .article-header{padding-bottom:var(--space-4)}.writing-shell .article-header h1{font-size:1.75rem;line-height:1.6}.writing-shell .article-description{font-size:var(--text-body)}.writing-body h2{margin-top:var(--space-5);font-size:var(--text-section)}.writing-body h3{font-size:var(--text-body)}.writing-next .article-card h3{font-size:var(--text-section)}}@media print{.writing-shell{width:100%;padding:0}.writing-layout.has-outline{display:block}.writing-outline,.writing-mobile-contents,.writing-end{display:none}}.resume-page[data-astro-cid-xu2ergbo]{--resume-label-width:160px;--resume-heading-size:1.5rem;--resume-name-size:clamp(3rem, 6.2vw, 5rem);padding-bottom:var(--space-7)}.resume-hero[data-astro-cid-xu2ergbo]{justify-content:space-between;align-items:end;gap:var(--space-5);padding-block:var(--space-6);display:flex}.resume-eyebrow[data-astro-cid-xu2ergbo]{margin:0 0 var(--space-2);color:var(--accent);font-size:var(--text-small);letter-spacing:.08em}.resume-hero[data-astro-cid-xu2ergbo] h1[data-astro-cid-xu2ergbo]{color:var(--ink);font:500 var(--resume-name-size)/1.12 var(--display);letter-spacing:-.045em;margin:0}.resume-role[data-astro-cid-xu2ergbo]{margin:var(--space-2) 0 0;color:var(--ink-muted);font-size:var(--text-body);letter-spacing:.08em}.resume-contact[data-astro-cid-xu2ergbo]{color:var(--ink-muted);font-size:var(--text-small);justify-items:end;gap:0;margin:0;line-height:1.7;display:grid}.resume-contact[data-astro-cid-xu2ergbo] a[data-astro-cid-xu2ergbo]{min-height:44px;color:var(--ink-soft);align-items:center;display:inline-flex}.resume-contact[data-astro-cid-xu2ergbo] span[data-astro-cid-xu2ergbo]{padding-top:var(--space-1)}.resume-contact[data-astro-cid-xu2ergbo] a[data-astro-cid-xu2ergbo]:hover{color:var(--accent)}.resume-section[data-astro-cid-xu2ergbo]{grid-template-columns:var(--resume-label-width) minmax(0, 1fr);gap:var(--space-5);padding-block:var(--space-6);display:grid}.resume-section-label[data-astro-cid-xu2ergbo] h2[data-astro-cid-xu2ergbo]{color:var(--ink);font:500 var(--resume-heading-size)/1.5 var(--display);letter-spacing:.045em;margin:0}.resume-section-body[data-astro-cid-xu2ergbo]{min-width:0}.resume-summary[data-astro-cid-xu2ergbo]{gap:var(--space-4);padding:var(--space-4);background:var(--surface-soft);border-radius:var(--radius);grid-template-columns:minmax(0,1fr)}.resume-strengths[data-astro-cid-xu2ergbo]{gap:var(--space-2);grid-template-columns:minmax(0,1fr);margin:0;padding:0;display:grid}.resume-strength-item[data-astro-cid-xu2ergbo] p[data-astro-cid-xu2ergbo]{color:var(--ink-soft);font-size:var(--text-body);margin:0;line-height:2}.resume-experience-list[data-astro-cid-xu2ergbo]{gap:var(--space-5);display:grid}.resume-job-heading[data-astro-cid-xu2ergbo]{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.resume-experience-item[data-astro-cid-xu2ergbo] h3[data-astro-cid-xu2ergbo]{color:var(--ink);font-size:var(--text-section);margin:0;font-weight:500;line-height:1.65}.resume-job-role[data-astro-cid-xu2ergbo]{margin:var(--space-1) 0 0;color:var(--accent);font-size:var(--text-small)}.resume-period[data-astro-cid-xu2ergbo]{color:var(--ink-muted);font-size:var(--text-meta);font-variant-numeric:tabular-nums;flex-shrink:0;margin:0}.resume-job-detail[data-astro-cid-xu2ergbo]{color:var(--ink-soft);font-size:var(--text-body);margin:0;line-height:1.95}.resume-related[data-astro-cid-xu2ergbo]{margin-top:var(--space-2)}.resume-related[data-astro-cid-xu2ergbo] ul[data-astro-cid-xu2ergbo]{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.resume-related[data-astro-cid-xu2ergbo] .resume-case-link{max-width:100%;padding:var(--space-1) var(--space-2);border-radius:var(--radius);background:var(--surface-soft);color:var(--ink-soft);letter-spacing:0;transition:color var(--transition), background-color var(--transition)}.resume-related[data-astro-cid-xu2ergbo] .resume-case-link:hover,.resume-related[data-astro-cid-xu2ergbo] .resume-case-link:focus-visible{background:var(--accent-soft);color:var(--accent);text-decoration:none}.resume-skills[data-astro-cid-xu2ergbo]{border-top:1px solid var(--line);padding-bottom:0}.resume-skill-list[data-astro-cid-xu2ergbo]{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.resume-skill-row[data-astro-cid-xu2ergbo] h3[data-astro-cid-xu2ergbo]{margin:0 0 var(--space-2);color:var(--accent);font-size:var(--text-body);font-weight:500}.resume-skill-row[data-astro-cid-xu2ergbo] ul[data-astro-cid-xu2ergbo]{gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.resume-skill-row[data-astro-cid-xu2ergbo] li[data-astro-cid-xu2ergbo]{color:var(--ink-soft);font-size:var(--text-small);line-height:1.7}@media (width<=1024px){.resume-page[data-astro-cid-xu2ergbo]{--resume-label-width:128px}.resume-section[data-astro-cid-xu2ergbo]{gap:var(--space-4)}.resume-summary[data-astro-cid-xu2ergbo]{padding:var(--space-3)}.resume-job-heading[data-astro-cid-xu2ergbo]{gap:var(--space-1);flex-direction:column}}@media (width<=767px){.resume-page[data-astro-cid-xu2ergbo]{--resume-name-size:3rem;--resume-heading-size:1.3125rem;padding-bottom:var(--space-6)}.resume-hero[data-astro-cid-xu2ergbo]{padding-block:var(--space-5);display:block}.resume-role[data-astro-cid-xu2ergbo]{margin-top:var(--space-2);font-size:var(--text-body)}.resume-contact[data-astro-cid-xu2ergbo]{margin-top:var(--space-3);justify-items:start}.resume-section[data-astro-cid-xu2ergbo]{gap:var(--space-3);padding-block:var(--space-5);grid-template-columns:1fr}.resume-summary[data-astro-cid-xu2ergbo]{padding:var(--space-3)}.resume-strengths[data-astro-cid-xu2ergbo]{gap:var(--space-2)}.resume-skill-list[data-astro-cid-xu2ergbo]{gap:var(--space-3);grid-template-columns:1fr}.resume-strength-item[data-astro-cid-xu2ergbo] p[data-astro-cid-xu2ergbo],.resume-skill-row[data-astro-cid-xu2ergbo] li[data-astro-cid-xu2ergbo]{font-size:.875rem}.resume-experience-list[data-astro-cid-xu2ergbo]{gap:var(--space-4)}.resume-job-detail[data-astro-cid-xu2ergbo]{font-size:.9375rem}.resume-skills[data-astro-cid-xu2ergbo]{padding-bottom:0}}@media print{.resume-page[data-astro-cid-xu2ergbo]{padding:0}.resume-hero[data-astro-cid-xu2ergbo]{padding-block:0 var(--space-4)}.resume-section[data-astro-cid-xu2ergbo]{padding-block:var(--space-4)}.resume-summary[data-astro-cid-xu2ergbo]{background:0 0;padding:0}.resume-strength-item[data-astro-cid-xu2ergbo],.resume-experience-item[data-astro-cid-xu2ergbo],.resume-skill-row[data-astro-cid-xu2ergbo]{break-inside:avoid}}
