@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-opsz-normal.D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-opsz-normal.IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-opsz-normal.Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--colour-bg:#f3f0e9;--colour-ink:#14130f;--colour-accent:#4c956c;--colour-muted:#625e55;--colour-hairline:#d8d3c7;--colour-on-accent:#f3f0e9;--font-family:"Bricolage Grotesque Variable", Helvetica, Arial, sans-serif;--weight-light:200;--weight-regular:400;--weight-medium:500;--weight-strong:600;--weight-heavy:700;--optical-display:"opsz" 96;--text-label:13px;--text-meta:14px;--text-body:17px;--text-role:clamp(20px, 1.8vw, 26px);--text-link-lg:clamp(18px, 1.6vw, 22px);--text-h3:clamp(26px, 2.4vw, 34px);--text-h2:clamp(28px, 2.8vw, 42px);--text-lead:clamp(24px, 2.6vw, 38px);--text-email:clamp(24px, 3.6vw, 56px);--text-numeral:clamp(64px, 7vw, 112px);--text-display:clamp(40px, 6.4vw, 108px);--text-h1:clamp(46px, 7.4vw, 107px);--leading-numeral:.9;--leading-h1:.94;--leading-display:.95;--leading-h2:1.05;--leading-h3:1.1;--leading-lead:1.25;--leading-body:1.5;--leading-prose:1.55;--tracking-numeral:-.04em;--tracking-display:-.035em;--tracking-h2:-.025em;--tracking-h3:-.02em;--tracking-lead:-.015em;--tracking-meta:.01em;--tracking-nav:.02em;--tracking-label:.12em;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:20px;--space-7:22px;--space-8:24px;--space-9:28px;--space-10:32px;--space-11:40px;--space-12:48px;--space-13:56px;--space-14:64px;--space-section:clamp(72px, 10vw, 140px);--space-section-end:clamp(48px, 6vw, 96px);--space-heading:clamp(40px, 5vw, 72px);--space-heading-lg:clamp(40px, 5vw, 64px);--space-heading-sm:clamp(32px, 4vw, 56px);--space-heading-xl:clamp(32px, 4vw, 64px);--space-gap-wide:clamp(32px, 5vw, 96px);--space-grid-row:clamp(48px, 6vw, 88px);--space-grid-col:clamp(32px, 4vw, 64px);--layout-max:1360px;--layout-gutter:clamp(20px, 5vw, 72px);--layout-label:200px;--layout-content:480px;--layout-portrait:360px;--layout-portrait-min:240px;--portrait-ratio:4 / 5;--layout-hero-line:520px;--layout-skill-heading:260px;--layout-skill-detail:280px;--layout-principle:280px;--hero-min-height:100svh;--measure-heading:20em;--measure-principle-heading:11em;--measure-display:12em;--measure-principle:26em;--measure-prose:32em;--measure-prose-wide:36em;--ease:cubic-bezier(.2, .7, .2, 1);--duration-fast:.2s;--duration-base:.3s;--duration-nudge:.35s;--duration-word:.26s;--duration-reveal:.7s;--interval-word:2.8s;--distance-nudge:10px;--distance-reveal:18px;--distance-word:.12em;--rule:1px solid var(--colour-hairline);--rule-strong:1px solid var(--colour-ink);--underline-word:.05em;--underline-word-offset:.08em;--underline-email:1px;--underline-email-offset:.12em;--dot-size:9px;--dot-scale-hover:1.35;--focus-ring:2px solid var(--colour-accent);--focus-offset:4px;--focus-offset-lg:6px;--focus-offset-xl:8px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,ol,ul{margin:0}img,picture,svg{max-width:100%;height:auto;display:block}body{background:var(--colour-bg);color:var(--colour-ink);font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);text-wrap:pretty;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-medium)}::selection{background:var(--colour-accent);color:var(--colour-on-accent)}a{color:var(--colour-ink);transition:color var(--duration-fast) var(--ease);text-decoration:none;&:hover,&:focus-visible{color:var(--colour-accent)}}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}[data-reveal].is-hidden{opacity:0;transform:translateY(var(--distance-reveal))}[data-reveal].is-revealed{animation:reveal var(--duration-reveal) var(--ease) both}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}@keyframes word-cycle{0%{opacity:0}2.32%,22.68%{opacity:1}25%,to{opacity:0}}@keyframes word-cycle-hold{0%{opacity:0}1.16%,11.34%{opacity:1}12.5%,50%{opacity:0}51.16%,to{opacity:1}}@keyframes reveal{0%{opacity:0;transform:translateY(var(--distance-reveal))}to{opacity:1;transform:none}}@keyframes draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes work-rule-focus{0%,to{border-color:var(--colour-hairline)}20%,80%{border-color:var(--colour-ink)}}@keyframes work-numeral-focus{0%,to{font-weight:var(--weight-medium)}20%,80%{font-weight:var(--weight-heavy)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important}}.notice[data-astro-cid-5krk3x6l]{z-index:1;background-color:var(--colour-bg);border-top:var(--rule);font-size:var(--text-meta);position:fixed;inset-block-end:0;inset-inline:0}.notice[data-astro-cid-5krk3x6l][hidden]{display:none}body:has(.notice:not([hidden])){padding-block-end:calc(var(--space-14) + var(--space-14) + var(--space-6))}.inner[data-astro-cid-5krk3x6l]{justify-content:space-between;align-items:baseline;gap:var(--space-5) var(--space-8);max-width:var(--layout-max);padding-block:var(--space-6);padding-inline:var(--layout-gutter);flex-wrap:wrap;margin-inline:auto;display:flex}p[data-astro-cid-5krk3x6l]{max-width:var(--measure-prose)}.choices[data-astro-cid-5krk3x6l]{gap:var(--space-8);display:flex}button[data-astro-cid-5krk3x6l]{color:var(--colour-ink);font:inherit;font-weight:var(--weight-medium);letter-spacing:var(--tracking-nav);cursor:pointer;background:0 0;border:none;padding:0}button[data-astro-cid-5krk3x6l][data-analytics-choice=deny]{color:var(--colour-muted);font-weight:var(--weight-regular)}button[data-astro-cid-5krk3x6l]:hover,button[data-astro-cid-5krk3x6l]:focus-visible{color:var(--colour-accent)}footer[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--space-5) var(--space-10);border-top:var(--rule);padding-block:var(--space-8) var(--space-10);color:var(--colour-muted);font-size:var(--text-label);flex-wrap:wrap;display:flex;container-type:inline-size}p[data-astro-cid-jo6i4kqk]{flex-basis:100%;order:1}@container (width>=480px){p[data-astro-cid-jo6i4kqk]{flex-basis:auto;order:0}}ul[data-astro-cid-jo6i4kqk]{gap:var(--space-8);margin:0;padding:0;list-style:none;display:flex}a[data-astro-cid-jo6i4kqk]{color:var(--colour-muted);&:hover,&:focus-visible{color:var(--colour-accent)}}header[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:baseline;gap:var(--space-8);font-size:var(--text-meta);font-weight:var(--weight-medium);letter-spacing:var(--tracking-nav);padding-block-start:var(--space-8);display:flex}.name[data-astro-cid-nen7h5rs]:hover,.name[data-astro-cid-nen7h5rs]:focus-visible{color:var(--colour-ink)}.page[data-astro-cid-z4jru4n3]{max-width:var(--layout-max);padding-inline:var(--layout-gutter);margin-inline:auto}.skip-link[data-astro-cid-z4jru4n3]{z-index:1;padding-block:var(--space-3);padding-inline:var(--space-5);background-color:var(--colour-bg);color:var(--colour-ink);font-size:var(--text-meta);font-weight:var(--weight-medium);letter-spacing:var(--tracking-meta);transform:translateY(calc(var(--hero-min-height) * -1));position:fixed;inset-block-start:var(--space-4);inset-inline-start:var(--space-4)}.skip-link[data-astro-cid-z4jru4n3]:focus-visible{background-color:var(--colour-bg);color:var(--colour-ink);outline:var(--focus-ring);outline-offset:var(--focus-offset);transform:none}
