@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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: 31em;--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: rgba(243, 237, 226, .8)}: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{position:fixed;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;transform:translateZ(0);contain:paint}.content-layer{position:relative;z-index:2}.has-texture{position:relative;overflow:hidden}.has-texture:after{content:"";position:absolute;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;transform:translateZ(0);contain:paint}.has-texture-hover{position:relative;overflow:hidden}.has-texture-hover:after{content:"";position:absolute;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);transform:translateZ(0);contain:paint}@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:translateZ(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:translate(calc(var(--enter-distance, 40px) * -1))}to{opacity:1;transform:translate(0)}}@keyframes enter-from-right{0%{opacity:0;transform:translate(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:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@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 0 0 0)}}@keyframes wipe-out{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 100%)}}@keyframes sceneSettle{0%{transform:scale(var(--focus-scale))}to{transform:none}}@media(pointer:coarse),(max-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;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:var(--motion-none)!important;scroll-behavior:auto!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{animation:none}.has-texture:after,.has-texture-hover:after{animation: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{background:#fff!important;color:#000!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{display:block!important;margin:0 0 .18cm;padding-bottom:.1cm;border-bottom:1pt solid #444;color:#000;font-size:7.5pt;font-weight:700}main{padding:0!important}h1{font-size:15pt!important;line-height:1.1!important;margin:0!important}h2{font-size:10.5pt!important;line-height:1.2!important;margin:0 0 .1cm!important}h3{font-size:9.5pt!important;line-height:1.2!important}h4,h5{font-size:8.4pt!important;margin:.05cm 0!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{display:none!important}.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}}
