.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-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}.content-end{padding-top:var(--space-4);border-top:1px solid var(--line);margin-top:clamp(3rem,8vw,5rem)}.content-end-grid{gap:var(--space-5);display:grid}.content-end.has-related .content-end-grid{gap:clamp(var(--space-4), 7vw, var(--space-6));grid-template-columns:repeat(2,minmax(0,1fr))}.content-end-grid>.related-content{border:0;min-width:0;margin-top:0;padding:0}.content-next{min-width:0}.content-actions{--content-action-height:44px;justify-content:flex-end;align-items:center;gap:var(--space-1);margin-top:var(--space-4);grid-template-columns:repeat(2,minmax(0,max-content));display:grid}.content-actions .content-return,.content-actions .share-action button{justify-content:center;align-items:center;gap:var(--space-1);height:var(--content-action-height);min-height:var(--content-action-height);padding:var(--space-1) var(--space-2);border-radius:var(--radius);color:var(--ink-soft);background:var(--surface-soft);font:400 var(--text-small)/1 var(--sans);letter-spacing:.025em;white-space:nowrap;transition:color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition);border:1px solid #0000;grid-row:1;margin:0;display:inline-flex}.content-actions .share-action button{grid-column:1}.content-actions .content-return{grid-column:2}.content-actions .content-return:hover,.content-actions .content-return:focus-visible,.content-actions .share-action button:hover,.content-actions .share-action button:focus-visible{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);text-decoration:none;transform:translateY(-1px)}.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){.content-end.has-related .content-end-grid{gap:var(--space-4);grid-template-columns:1fr}.content-end{margin-top:var(--space-5)}.content-actions{margin-top:var(--space-3)}.content-actions .content-return,.content-actions .share-action button{padding-inline:var(--space-1)}.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)}}@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}}.related-content[data-astro-cid-s562ojll]{margin-top:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--line)}@media print{.related-content[data-astro-cid-s562ojll]{display:none}}.share-action[data-astro-cid-zbdvqbsf]{display:contents}.share-action[data-astro-cid-zbdvqbsf][hidden],input[data-astro-cid-zbdvqbsf][hidden]{display:none}button[data-astro-cid-zbdvqbsf]{align-items:center;gap:var(--space-1);min-height:44px;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-soft);font:inherit;cursor:pointer;transition:color var(--transition), border-color var(--transition), background var(--transition);background:0 0;display:inline-flex}button[data-astro-cid-zbdvqbsf]:hover,button[data-astro-cid-zbdvqbsf]:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:currentColor}button[data-astro-cid-zbdvqbsf]:disabled{cursor:wait;opacity:.6}.share-status[data-astro-cid-zbdvqbsf]{min-width:0;color:var(--ink-muted);font-size:var(--text-small);text-align:right;grid-area:2/1/auto/-1}.share-status[data-astro-cid-zbdvqbsf]:empty{display:none}input[data-astro-cid-zbdvqbsf]{width:100%;min-width:0;max-width:100%;padding:var(--space-1);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--surface-soft);font:inherit;grid-area:3/1/auto/-1}@media print{.share-action[data-astro-cid-zbdvqbsf]{display:none}}@media (prefers-reduced-motion:reduce){button[data-astro-cid-zbdvqbsf]{transition:none}}
