@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-400-normal.ao2e9zgx.woff2)format("woff2"),url(/_astro/geist-mono-latin-400-normal.CQcZBlNU.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-mono-latin-500-normal.BVhiqmI_.woff2)format("woff2"),url(/_astro/geist-mono-latin-500-normal.CFjnXB2L.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-mono-latin-600-normal.9yAI_Y7m.woff2)format("woff2"),url(/_astro/geist-mono-latin-600-normal.BvpJM-TR.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/geist-mono-latin-700-normal.3h8dqSJy.woff2)format("woff2"),url(/_astro/geist-mono-latin-700-normal.6Y0jea9D.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/geist-mono-latin-800-normal.BS6WxoE-.woff2)format("woff2"),url(/_astro/geist-mono-latin-800-normal.CaOT9VAx.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/geist-mono-latin-900-normal.C6ysQWWk.woff2)format("woff2"),url(/_astro/geist-mono-latin-900-normal.DIb-yZKL.woff)format("woff")}@font-face{font-family:National Park Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/national-park-vietnamese-wght-normal.dK2aCobl.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:National Park Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/national-park-latin-ext-wght-normal.BUVPbxTy.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:National Park Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/national-park-latin-wght-normal.WIjTj1VI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Switchback;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/switchback/Switchback-Regular.woff2)format("woff2")}@font-face{font-family:Switchback Rough;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/switchback/Switchback-Rough.woff2)format("woff2")}:root{--ink-950:#001a11;--paper-50:#fff8ed;--paper-100:#f3ede2;--paper-200:#e0e0e0;--earth-400:#a89762;--earth-500:#887850;--earth-600:#6f613e;--signal-500:#00bc44;--signal-700:#007a33;--blueprint-500:#42a5ff;--bg-canvas:var(--ink-950);--bg-raised:color-mix(in srgb, var(--paper-200) 3.5%, transparent);--bg-muted:color-mix(in srgb, var(--paper-200) 8%, transparent);--bg-inverse:var(--paper-200);--bg-plate:var(--bg-canvas);--text-primary:var(--paper-200);--text-muted:color-mix(in srgb, var(--paper-200) 82%, transparent);--text-inverse:var(--ink-950);--text-on-art:var(--paper-100);--text-on-art-muted:color-mix(in oklab, var(--paper-100) 88%, var(--signal-500));--text-accent:var(--signal-500);--action-primary:var(--signal-500);--focus-ring:var(--signal-500);--accent-ground:var(--earth-400);--accent-construction:var(--blueprint-500);--border-strong:var(--text-primary);--border-muted:color-mix(in srgb, var(--paper-200) 18%, transparent);--scrim:color-mix(in srgb, var(--ink-950) 60%, transparent);--art-june-sky:#6a9de8;--art-june-far:#365ea0;--art-june-snow:#e6eef6;--art-june-forest:#1c2c1d;--art-june-ground:#737741;--art-july-sky:#bed4e3;--art-july-far:#9aa7ab;--art-july-snow:#e2ecf1;--art-july-forest:#202118;--art-july-ground:#656b61;--art-august-sky:#93c7fa;--art-august-far:#8e9dad;--art-august-snow:#dae6f1;--art-august-forest:#2b3026;--art-august-ground:#9a7d47;--art-september-sky:#4885e3;--art-september-far:#38618c;--art-september-snow:#d4dce4;--art-september-forest:#323f44;--art-september-ground:#7c6145;--art-october-sky:#a1abbf;--art-october-far:#717172;--art-october-snow:#c0cee4;--art-october-forest:#3c3c2c;--art-october-ground:#8b7b66;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--font-title:"National Park Variable", "National Park", var(--font-mono);--font-read:"Geist Variable", "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-place:"Switchback", var(--font-mono);--font-place-rough:"Switchback Rough", var(--font-place);--type-display-hero:clamp(4.5rem, 10vw, 10rem);--type-page-title:clamp(2.5rem, 8vw, 4rem);--type-section-title:clamp(2rem, 5vw, 3rem);--type-heading:1.5rem;--type-title:1.25rem;--type-body-lg:1.1rem;--type-body:1rem;--type-ui:.9rem;--type-small:.85rem;--type-label:.75rem;--type-display-scene:clamp(3.25rem, 6.4vw, 6rem);--type-display-card:clamp(2.75rem, 5.4vw, 5.25rem);--type-hero-line:clamp(1.45rem, 2.4vw, 2.1rem);--type-place-name:clamp(1.75rem, 3vw, 2.4rem);--type-place-label:.8125rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--weight-black:900;--leading-display:.95;--leading-tight:1.1;--leading-heading:1.2;--leading-title:1.3;--leading-ui:1.4;--leading-small:1.55;--leading-read:1.75;--track-tight:-.04em;--track-caps:.05em;--track-wide:.1em;--space-4:.25rem;--space-8:.5rem;--space-12:.75rem;--space-16:1rem;--space-20:1.25rem;--space-24:1.5rem;--space-32:2rem;--space-40:2.5rem;--space-48:3rem;--space-64:4rem;--space-96:6rem;--layout-container:1100px;--layout-container-wide:1500px;--layout-gutter:clamp(1rem, 4vw, 2rem);--layout-measure:68ch;--layout-measure-read:38em;--layout-measure-narrow:46ch;--touch-target:44px;--radius-circle:50%;--stroke-rule:1px;--stroke-control:2px;--stroke-frame:3px;--stroke-bar:4px;--shadow-offset:10px;--ease-out:cubic-bezier(.16, 1, .3, 1);--motion-ui:.3s;--motion-entry:.6s;--motion-stagger:60ms;--motion-stagger-dense:30ms;--motion-page-wipe:.45s;--motion-logo-loop:12s;--motion-logo-break:.7s;--motion-arrival-stagger:.12s;--motion-arrival-overshoot:.107;--motion-focus:.55s;--motion-scene-fade:.7s;--motion-handoff:.4s;--motion-none:0s;--motion-reading-active:24s;--motion-reading-rest:60s;--motion-reading-strength:.2;--scene-bar:4rem;--focus-halo:var(--ink-950);--scene-copy-start:43vw;--scene-copy-end:7vw;--scene-copy-bottom:10vh;--focus-blur:7px;--focus-brightness:.45;--focus-saturate:.65;--focus-blur-mobile:5px;--focus-brightness-mobile:.36;--focus-saturate-mobile:.6;--focus-scale:1.025;--focus-filter:blur(var(--focus-blur)) brightness(var(--focus-brightness)) saturate(var(--focus-saturate));--focus-filter-mobile:blur(var(--focus-blur-mobile)) brightness(var(--focus-brightness-mobile)) saturate(var(--focus-saturate-mobile));--scrim-copy:64%;--scrim-copy-mobile:70%;--scrim-copy-ecola:85%;--scrim-copy-ecola-mobile:80%;--scrim-copy-fill:color-mix(in srgb, var(--ink-950) var(--scrim-copy-strength,var(--scrim-copy)), transparent);--scrim-copy-mask:linear-gradient(to bottom, transparent, #000 26%, #000 80%, transparent), linear-gradient(to right, transparent, #000 22%, #000 80%, transparent);--atmos-arrive:linear-gradient(0deg, color-mix(in srgb, var(--ink-950) 93%, transparent) 0%, color-mix(in srgb, var(--ink-950) 49%, transparent) 25%, transparent 55%);--atmos-arrive-mobile:linear-gradient(0deg, color-mix(in srgb, var(--ink-950) 96%, transparent) 0%, color-mix(in srgb, var(--ink-950) 76%, transparent) 28%, color-mix(in srgb, var(--ink-950) 24%, transparent) 50%, transparent 68%);--atmos-view:linear-gradient(0deg, color-mix(in srgb, var(--ink-950) 62%, transparent), transparent 32%);--atmos-read:color-mix(in srgb, var(--ink-950) 36%, transparent);--atmos-dusk:color-mix(in srgb, var(--ink-950) 60%, transparent);--ds-color-ink-950:var(--ink-950);--ds-color-paper-50:var(--paper-50);--ds-color-paper-100:var(--paper-100);--ds-color-paper-200:var(--paper-200);--ds-color-earth-500:var(--earth-500);--ds-color-earth-600:var(--earth-600);--ds-color-earth-400:var(--earth-400);--ds-color-signal-500:var(--signal-500);--ds-color-blueprint-500:var(--blueprint-500);--ds-font-family-mono:var(--font-mono);--ds-font-weight-regular:var(--weight-regular);--ds-font-weight-medium:var(--weight-medium);--ds-font-weight-semibold:var(--weight-semibold);--ds-font-weight-bold:var(--weight-bold);--ds-font-weight-black:var(--weight-black);--ds-letter-tight:var(--track-tight);--ds-letter-normal:0;--ds-letter-wide:var(--track-caps);--ds-letter-wider:var(--track-wide);--ds-leading-none:var(--leading-display);--ds-leading-tight:var(--leading-tight);--ds-leading-copy:1.7;--ds-text-xs:.7rem;--ds-text-sm:var(--type-small);--ds-text-base:var(--type-body);--ds-text-md:var(--type-body-lg);--ds-text-lg:clamp(1.2rem, 2vw, 1.5rem);--ds-text-xl:clamp(1.5rem, 3vw, 2rem);--ds-text-2xl:var(--type-section-title);--ds-text-display:clamp(3.5rem, 10vw, 6rem);--ds-text-hero:var(--type-display-hero);--ds-space-0:0;--ds-space-1:var(--space-4);--ds-space-2:var(--space-8);--ds-space-3:var(--space-12);--ds-space-4:var(--space-16);--ds-space-5:var(--space-20);--ds-space-6:var(--space-24);--ds-space-8:var(--space-32);--ds-space-10:var(--space-40);--ds-space-12:var(--space-48);--ds-space-16:var(--space-64);--ds-space-24:var(--space-96);--ds-container:var(--layout-container);--ds-container-wide:var(--layout-container-wide);--ds-page-gutter:var(--layout-gutter);--ds-touch-target:var(--touch-target);--ds-radius-none:0;--ds-stroke-sm:var(--stroke-rule);--ds-stroke-md:var(--stroke-control);--ds-stroke-lg:var(--stroke-frame);--ds-stroke-xl:var(--stroke-bar);--ds-offset-shadow:var(--shadow-offset);--ds-ease-out:var(--ease-out);--ds-ease-emphasized:cubic-bezier(.25, 1, .5, 1);--ds-duration-fast:.18s;--ds-duration-base:var(--motion-ui);--ds-duration-slow:.72s;--surface-base:var(--bg-canvas);--surface-raised:var(--bg-raised);--surface-muted:var(--bg-muted);--accent-primary:var(--action-primary);--accent-secondary:var(--accent-ground);--accent-blueprint:var(--accent-construction);--color-midnight:var(--ink-950);--color-midnight-rgb:0, 26, 17;--color-starlight:var(--paper-200);--color-starlight-rgb:224, 224, 224;--color-treescape:var(--earth-500);--color-treescape-rgb:136, 120, 80;--color-treescape-deep:var(--earth-600);--color-treescape-deep-rgb:111, 97, 62;--color-treescape-bright:var(--earth-400);--color-treescape-bright-rgb:168, 151, 98;--color-night-shine:var(--signal-500);--color-night-shine-rgb:0, 188, 68;--color-paper:var(--paper-50);--color-background-opacity:.8;--color-background:var(--bg-canvas);--color-background-rgb:0, 26, 17;--color-text:var(--text-primary);--color-text-rgb:224, 224, 224;--color-accent:var(--action-primary);--color-accent-rgb:0, 188, 68;--color-accent-secondary:var(--accent-ground);--color-accent-secondary-rgb:168, 151, 98;--color-visual-accent:var(--earth-400);--color-visual-accent-rgb:168, 151, 98;--color-background-translucent:#001a11cc}:root[data-theme=light]{--bg-canvas:var(--paper-100);--bg-raised:color-mix(in srgb, var(--ink-950) 3.5%, transparent);--bg-muted:color-mix(in srgb, var(--ink-950) 8%, transparent);--bg-inverse:var(--ink-950);--bg-plate:var(--bg-canvas);--text-primary:var(--ink-950);--text-muted:color-mix(in srgb, var(--ink-950) 78%, transparent);--text-inverse:var(--paper-100);--text-accent:var(--signal-700);--action-primary:var(--signal-700);--focus-ring:var(--signal-700);--accent-ground:var(--earth-600);--border-strong:var(--text-primary);--border-muted:color-mix(in srgb, var(--ink-950) 18%, transparent);--scrim:color-mix(in srgb, var(--paper-100) 60%, transparent);--color-background:var(--bg-canvas);--color-background-rgb:243, 237, 226;--color-text:var(--text-primary);--color-text-rgb:0, 26, 17;--color-accent:var(--action-primary);--color-accent-rgb:0, 122, 51;--color-accent-secondary:var(--accent-ground);--color-accent-secondary-rgb:111, 97, 62;--color-visual-accent:var(--earth-600);--color-visual-accent-rgb:111, 97, 62;--color-background-translucent:#f3ede2cc}:root{--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--motion-fast:.18s;--motion-base:.32s;--motion-slow:.72s;--texture-size:512px;--texture-travel:512px;--texture-opacity:.25;--texture-overlay-opacity:.08;--texture-hover-opacity:.07;--texture-duration:40s}.texture-layer{top:calc(var(--texture-travel) * -1);left:calc(var(--texture-travel) * -1);width:calc(100% + (var(--texture-travel) * 2));height:calc(100% + (var(--texture-travel) * 2));pointer-events:none;opacity:var(--texture-opacity);z-index:1;background-image:url(/images/noise-mosaic.webp);background-repeat:repeat;background-size:var(--texture-size) var(--texture-size);mix-blend-mode:overlay;animation:noiseScroll var(--texture-duration) linear infinite;contain:paint;position:fixed;transform:translate(0,0)}.content-layer{z-index:2;position:relative}.has-texture{position:relative;overflow:hidden}.has-texture:after{content:"";top:calc(var(--texture-travel) * -1);left:calc(var(--texture-travel) * -1);width:calc(100% + (var(--texture-travel) * 2));height:calc(100% + (var(--texture-travel) * 2));pointer-events:none;opacity:var(--texture-overlay-opacity);background-image:url(/images/noise-mosaic.webp);background-repeat:repeat;background-size:var(--texture-size) var(--texture-size);mix-blend-mode:overlay;animation:noiseScroll var(--texture-duration) linear infinite;z-index:1;contain:paint;position:absolute;transform:translate(0,0)}.has-texture-hover{position:relative;overflow:hidden}.has-texture-hover:after{content:"";top:calc(var(--texture-travel) * -1);left:calc(var(--texture-travel) * -1);width:calc(100% + (var(--texture-travel) * 2));height:calc(100% + (var(--texture-travel) * 2));pointer-events:none;opacity:0;background-image:url(/images/noise-mosaic.webp);background-repeat:repeat;background-size:var(--texture-size) var(--texture-size);mix-blend-mode:overlay;animation:noiseScroll var(--texture-duration) linear infinite;z-index:1;transition:opacity var(--motion-base) var(--ease-out);contain:paint;position:absolute;transform:translate(0,0)}@media (hover:hover) and (pointer:fine){.has-texture-hover:hover:after{opacity:var(--texture-hover-opacity)}}.card.has-texture-hover:after{z-index:2}@keyframes noiseScroll{0%{transform:translate(0,0)}to{transform:translate3d(calc(var(--texture-travel) * -1), calc(var(--texture-travel) * -1), 0)}}@keyframes enter-rise{0%{opacity:0;transform:translateY(var(--enter-distance,30px))}to{opacity:1;transform:translateY(0)}}@keyframes enter-from-left{0%{opacity:0;transform:translateX(calc(var(--enter-distance,40px) * -1))}to{opacity:1;transform:translate(0)}}@keyframes enter-from-right{0%{opacity:0;transform:translateX(var(--enter-distance,40px))}to{opacity:1;transform:translate(0)}}@keyframes enter-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes enter-wipe{0%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}@keyframes enter-fade{0%{opacity:0}to{opacity:1}}@keyframes headerSlideLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes headerSlideRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes logoSlideFromLeft{0%{opacity:0;transform:translate(-30px)rotate(-10deg)}15%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1;transform:translate(0)rotate(0)}95%{opacity:0;transform:translate(-20px)rotate(-5deg)}to{opacity:0;transform:translate(-30px)rotate(-10deg)}}@keyframes logoSlideFromTopRight{0%{opacity:0;transform:translate(20px,-30px)rotate(15deg)}20%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1;transform:translate(0)rotate(0)}95%{opacity:0;transform:translate(15px,-20px)rotate(10deg)}to{opacity:0;transform:translate(20px,-30px)rotate(15deg)}}@keyframes logoSlideFromBottom{0%{opacity:0;transform:translateY(30px)}25%{opacity:1;transform:translateY(0)}85%{opacity:1;transform:translateY(0)}95%{opacity:0;transform:translateY(20px)}to{opacity:0;transform:translateY(30px)}}@keyframes breakC{0%{transform:translate(0)rotate(0)}60%{transform:translate(-28px)rotate(-14deg)}80%{transform:translate(-24px)rotate(-11deg)}to{transform:translate(-25px)rotate(-12deg)}}@keyframes breakSun{0%{transform:translate(0)rotate(0)}60%{transform:translate(23px,-32px)rotate(17deg)}80%{transform:translate(19px,-26px)rotate(14deg)}to{transform:translate(20px,-28px)rotate(15deg)}}@keyframes breakTriangle{0%{transform:translateY(0)rotate(0)}60%{transform:translateY(32px)rotate(6deg)}80%{transform:translateY(26px)rotate(4deg)}to{transform:translateY(28px)rotate(5deg)}}@keyframes skillSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes wipe-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes wipe-out{0%{clip-path:inset(0)}to{clip-path:inset(0 0 0 100%)}}@keyframes sceneSettle{0%{transform:scale(var(--focus-scale))}to{transform:none}}@media (pointer:coarse),(width<=700px){:root{--texture-opacity:.14;--texture-overlay-opacity:.05;--texture-hover-opacity:0;--texture-duration:72s}.has-texture-hover:after{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-delay:var(--motion-none)!important;transition-duration:.01ms!important;transition-delay:var(--motion-none)!important;scroll-behavior:auto!important;animation-iteration-count:1!important}::view-transition-new(root),::view-transition-old(root){animation:none!important}[data-reveal]{opacity:1!important;transform:none!important}[data-reveal=line]:before{transform:scaleX(1)!important}.texture-layer,.has-texture:after,.has-texture-hover:after{animation:none}}@keyframes guide-idle{0%{translate:0}to{translate:0 calc(var(--space-4) * -.75)}}@keyframes guide-hello{25%{rotate:-3deg}60%{rotate:2deg}to{rotate:0deg}}@keyframes guide-wave{0%,16%,to{rotate:0deg}4%{rotate:-3deg}9%{rotate:2deg}13%{rotate:-1deg}}@keyframes markAssembleC{0%{opacity:0;transform:translate(-30px)rotate(-10deg)}to{opacity:1;transform:none}}@keyframes markAssembleSun{0%{opacity:0;transform:translate(20px,-30px)rotate(15deg)}to{opacity:1;transform:none}}@keyframes markAssembleGround{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}:focus-visible{outline:var(--stroke-frame) solid var(--focus-ring);outline-offset:var(--stroke-frame)}@media print{@page{margin:.7cm 1cm}:root{--color-background:#fff!important;--color-text:#000!important;--color-accent:#444!important;--color-accent-rgb:68, 68, 68!important;--color-text-rgb:0, 0, 0!important}html,body{color:#000!important;background:#fff!important}body{font-size:8.4pt;line-height:1.24}.site-header,.site-footer,.download-btn,.keyboard-menu,.no-print,[class*=texture]{display:none!important}.print-header{color:#000;border-bottom:1pt solid #444;margin:0 0 .18cm;padding-bottom:.1cm;font-size:7.5pt;font-weight:700;display:block!important}main{padding:0!important}h1{margin:0!important;font-size:15pt!important;line-height:1.1!important}h2{margin:0 0 .1cm!important;font-size:10.5pt!important;line-height:1.2!important}h3{font-size:9.5pt!important;line-height:1.2!important}h4,h5{margin:.05cm 0!important;font-size:8.4pt!important}p,li{font-size:8.4pt!important;line-height:1.24!important}h1,h2,h3,h4,p{color:#000!important}section{margin:0 auto .2cm!important;padding-inline:0!important}.section-head{margin-bottom:.1cm!important}.section-divider,.image-frame,figure{display:none!important}section ul{gap:.1cm!important;margin:.06cm 0 0!important}section ul li{padding-top:.08cm!important}.highlights{gap:.02cm!important;margin:.04cm 0 0!important}.highlights li{padding-top:0!important}.date-range,time{border-width:1pt!important;padding:.5pt 3pt!important;font-size:8pt!important}section ul li svg{display:none!important}section li[style]{border-width:1pt!important;padding:1pt 4pt!important}section li[style] span{font-size:7.5pt!important}.keywords{display:none!important}.keyword{border-width:1pt!important;padding:1pt 4pt!important;font-size:7.5pt!important}article,li{break-inside:avoid}h2,h3{break-after:avoid}}
