@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-vietnamese-wdth-normal-Rd0aZl9c.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-latin-ext-wdth-normal-CQ1tG6In.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-latin-wdth-normal-BMVx8nn_.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,oklch(98.2% .003 46))var(--lightningcss-dark,oklch(16.5% .004 46));--line:var(--lightningcss-light,oklch(90.5% .005 46))var(--lightningcss-dark,oklch(27% .006 46));--line-strong:var(--lightningcss-light,oklch(80% .006 46))var(--lightningcss-dark,oklch(38% .006 46));--text:var(--lightningcss-light,oklch(20% .006 46))var(--lightningcss-dark,oklch(93.5% .004 46));--text-2:var(--lightningcss-light,oklch(47% .008 46))var(--lightningcss-dark,oklch(72% .006 46));--accent:var(--lightningcss-light,oklch(78% .155 86))var(--lightningcss-dark,oklch(86% .15 92));--selection:var(--lightningcss-light,oklch(88% .006 46))var(--lightningcss-dark,oklch(34% .006 46));--image-edge:var(--lightningcss-light,oklch(20% .006 46/.1))var(--lightningcss-dark,oklch(100% 0 0/.1));--surface:var(--lightningcss-light,oklch(99.5% .002 46))var(--lightningcss-dark,oklch(21.5% .005 46));--shadow-card:0 1px 2px var(--lightningcss-light,oklch(20% .006 46/.04))var(--lightningcss-dark,oklch(0% 0 0/.3)), 0 8px 24px -6px var(--lightningcss-light,oklch(20% .006 46/.1))var(--lightningcss-dark,oklch(0% 0 0/.45));--font:"Mona Sans Variable", ui-sans-serif, system-ui, sans-serif;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-title:clamp(1.1875rem, 1.1rem + .35vw, 1.375rem);--text-lead:clamp(1.25rem, 1.1rem + .65vw, 1.625rem);--text-email:clamp(1.375rem, .75rem + 3.2vw, 3rem);--text-display:clamp(2.75rem, 1.4rem + 6vw, 6.25rem);--leading-body:1.6;--gutter:clamp(1.25rem, .5rem + 3.5vw, 3rem);--section-space:clamp(5.5rem, 3rem + 8vw, 10rem);--max-width:78rem;--header-h:5rem;--hero-pad:clamp(3rem, 1rem + 8vw, 8rem);--frame:min(var(--max-width), 100vw - var(--gutter));--x-center:.123;--ease-out:cubic-bezier(.23, 1, .32, 1);--header-ease:var(--ease-out)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{color:var(--text);font-family:var(--font);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2,h3,p,ul,ol,dl,dd{margin:0}h1,h2,h3{font-weight:inherit;text-wrap:balance}p,li,dd{text-wrap:pretty}img{max-width:100%;height:auto;display:block}::selection{background:var(--selection);color:var(--text)}a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.22em;transition:text-decoration-color .15s,color .15s}:focus-visible{outline:1.5px solid var(--text);outline-offset:3px;border-radius:2px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--max-width);padding-inline:max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right));margin-inline:auto}.arrow{vertical-align:.05em;width:.75em;height:.75em;color:var(--text-2);transition:transform .2s var(--ease-out), color .15s ease;display:inline-block}.page{--guide-arm:4.5rem;overflow-x:clip}.hero,.section,.footer{position:relative}:is(.section,.footer):before{content:"";top:calc(var(--section-space) / 2);left:calc(50% - var(--frame) / 2);width:var(--frame);background:var(--line);pointer-events:none;height:1px;position:absolute;-webkit-mask-image:linear-gradient(90deg,#0000,#000 25% 75%,#0000);mask-image:linear-gradient(90deg,#0000,#000 25% 75%,#0000)}.footer:before{top:calc(var(--section-space) / -2)}@media (width>=48rem){:is(.section,.footer):before{left:calc(50% - var(--frame) / 2 - var(--guide-arm));width:calc(var(--frame) + var(--guide-arm) * 2);-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--guide-arm), transparent calc(var(--guide-arm) * 2), transparent calc(100% - var(--guide-arm) * 2), #000 calc(100% - var(--guide-arm)), transparent);mask-image:linear-gradient(to right, transparent, #000 var(--guide-arm), transparent calc(var(--guide-arm) * 2), transparent calc(100% - var(--guide-arm) * 2), #000 calc(100% - var(--guide-arm)), transparent)}:is(.hero,.section,.footer):after{content:"";top:calc(var(--section-space) / 2);bottom:calc(var(--section-space) / -2);left:calc(50% - var(--frame) / 2);width:var(--frame);border-inline:1px solid var(--line);pointer-events:none;-webkit-mask-image:linear-gradient(to bottom, #000, transparent var(--guide-arm), transparent calc(100% - var(--guide-arm)), #000);mask-image:linear-gradient(to bottom, #000, transparent var(--guide-arm), transparent calc(100% - var(--guide-arm)), #000);position:absolute}.hero:after{-webkit-mask-image:linear-gradient(to bottom, transparent calc(100% - var(--guide-arm)), #000);mask-image:linear-gradient(to bottom, transparent calc(100% - var(--guide-arm)), #000);top:0}.footer:after{top:calc(var(--section-space) / -2);-webkit-mask-image:linear-gradient(to bottom, #000, transparent var(--guide-arm));mask-image:linear-gradient(to bottom, #000, transparent var(--guide-arm));bottom:0}}.section.reveal:before{opacity:0;transition:opacity .9s ease var(--reveal-base,0s)}.section.reveal[data-visible]:before{opacity:1}.skip-link{top:.75rem;left:var(--gutter);z-index:40;background:var(--surface);box-shadow:var(--shadow-card);color:var(--text);font-size:var(--text-sm);border-radius:2px;padding:.5rem .75rem;position:fixed;translate:0 -200%}.skip-link:focus,.skip-link:focus-visible{translate:none}#main:focus{outline:none}.site-header{--backdrop-fade:1rem;z-index:30;-webkit-user-select:none;user-select:none;transition:translate .38s var(--header-ease);position:sticky;top:0}:root[data-header=hidden]{--header-ease:cubic-bezier(.68, 0, .77, 0)}:root[data-header=hidden] .site-header{translate:0 calc(-100% - var(--backdrop-fade))}.header-backdrop{height:calc(100% + var(--backdrop-fade));pointer-events:none;position:absolute;inset:0 0 auto}.header-backdrop:before,.header-backdrop>span{opacity:0;transition:opacity .2s;position:absolute;inset:0}:root[data-scrolled] .header-backdrop:before,:root[data-scrolled] .header-backdrop>span{opacity:1}.header-backdrop:before{content:"";background:linear-gradient(to bottom, color-mix(in oklch, var(--bg) 78%, transparent) 0%, color-mix(in oklch, var(--bg) 72%, transparent) 45%, color-mix(in oklch, var(--bg) 55%, transparent) 62%, color-mix(in oklch, var(--bg) 33%, transparent) 76%, color-mix(in oklch, var(--bg) 12%, transparent) 88%, transparent)}.header-backdrop>span{-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));-webkit-mask-image:linear-gradient(to top, var(--band));mask-image:linear-gradient(to top, var(--band))}.header-backdrop>:first-child{--blur:.5px;--band:transparent 0%, #000 10%, #000 20%, transparent 30%}.header-backdrop>:nth-child(2){--blur:1px;--band:transparent 10%, #000 20%, #000 30%, transparent 40%}.header-backdrop>:nth-child(3){--blur:2px;--band:transparent 20%, #000 30%, #000 40%, transparent 50%}.header-backdrop>:nth-child(4){--blur:4px;--band:transparent 30%, #000 40%, #000 50%, transparent 60%}.header-backdrop>:nth-child(5){--blur:8px;--band:transparent 40%, #000 50%, #000 60%, transparent 70%}.header-backdrop>:nth-child(6){--blur:16px;--band:transparent 50%, #000 60%}@media (prefers-reduced-transparency:reduce){.header-backdrop{height:100%}.header-backdrop:before{background:var(--bg)}.header-backdrop>span{display:none}}.header{height:var(--header-h);font-size:var(--text-sm);align-items:center;gap:1.25rem;display:flex;position:relative}.wordmark{letter-spacing:-.005em;white-space:nowrap;--lift:.3em;--fade:.3s;--move:.4s;--sweep:14ms;margin-right:auto;font-weight:500;text-decoration:none}.wordmark[data-direct]{--sweep:0s}.swap{width:var(--from);white-space:pre;transition:width var(--move) var(--ease-out) calc((var(--slots) - var(--i)) * var(--sweep));display:inline-grid}.swap>span{transition:opacity var(--fade) var(--ease-out), filter var(--fade) var(--ease-out), translate var(--move) var(--ease-out);transition-delay:inherit;grid-area:1/1;justify-self:start}.swap>span+span{opacity:0;filter:blur(3px);translate:0 var(--lift)}.wordmark[data-turned] .swap{width:var(--to);transition-delay:calc(var(--i) * var(--sweep))}.wordmark[data-turned] .swap>span:first-child{opacity:0;filter:blur(3px);translate:0 calc(var(--lift) * -1)}.wordmark[data-turned] .swap>span+span{opacity:1;filter:none;translate:none}.nav li:not(:last-child){display:none}@media (width<=22.49rem){.nav{display:none}}.nav ul{gap:1.75rem;padding:0;list-style:none;display:flex}.nav a{min-height:2.5rem;color:var(--text-2);align-items:center;text-decoration:none;display:inline-flex}.header-controls{align-items:center;margin-right:-.75rem;display:flex}.lang-switch{display:flex}.theme-toggle{width:2.5rem;height:2.5rem;color:var(--text-2);transition:color .15s ease, transform .16s var(--ease-out);place-items:center;display:inline-grid}.theme-toggle svg{width:1rem;height:1rem;overflow:visible}.theme-toggle :is(.orb,.bite,.rays){transform-origin:8px 8px}.theme-toggle .orb{transition:transform .44s var(--ease-out) 40ms;transform:scale(.545)}.theme-toggle .bite{transition:transform .34s var(--ease-out);transform:translate(5px,-5px)}.theme-toggle .rays{transition:transform .42s var(--ease-out) .15s, opacity .22s ease .15s}.theme-toggle[data-current=light] .orb{transition-delay:50ms;transform:translate(.25px,-.25px)}.theme-toggle[data-current=light] .bite{transition-duration:.44s;transition-delay:.11s;transform:none}.theme-toggle[data-current=light] .rays{opacity:0;transition:transform .3s var(--ease-out), opacity .12s ease;transform:rotate(45deg)scale(.75)}.theme-toggle:active{transform:scale(.94)}.lang-switch button{min-width:2.5rem;min-height:2.5rem;color:var(--text-2);font-size:var(--text-xs);letter-spacing:.04em;transition:color .15s ease, transform .16s var(--ease-out)}.lang-switch button[aria-pressed=true]{color:var(--text);cursor:default;font-weight:550}.lang-switch button:active{transform:scale(.94)}@media (width>=48rem){.header{gap:2rem}.nav li:not(:last-child){display:list-item}}.hero{padding-block:var(--hero-pad) 0;display:grid;position:relative}.hero-name{font-size:var(--text-display);letter-spacing:-.045em;margin-left:-.04em;font-weight:300;font-stretch:108%;line-height:.98}.hero-intro{max-width:30ch;color:var(--text-2);font-size:var(--text-lead);letter-spacing:-.01em;margin-top:clamp(1.5rem,1rem + 1.5vw,2.25rem);font-weight:350;line-height:1.4}.status{font-size:var(--text-sm);align-items:center;gap:.625rem;margin-top:1rem;display:flex}.status-dot{background:var(--accent);width:.4375rem;height:.4375rem;translate:0 calc(var(--x-center) * 1em);border-radius:50%;flex:none}.hero-links{font-size:var(--text-base);margin-top:clamp(2rem,1.5rem + 1.5vw,2.75rem)}.primary-link{font-weight:500}.link-list{font-size:var(--text-sm);flex-wrap:wrap;gap:.5rem 1.75rem;padding:0;list-style:none;display:flex}.link-list a{align-items:center;gap:.25rem;min-height:2.75rem;display:inline-flex}.link-list a.cv-link{margin-inline:-.5rem;padding-inline:.5rem}.hero-links a{min-height:2rem}@media (pointer:coarse){.hero-links a{min-height:2.75rem}}.section{padding-top:var(--section-space);scroll-margin-top:calc(2.5rem - var(--section-space));gap:2rem;display:grid}.section-label{color:var(--text-2);font-size:var(--text-sm);font-weight:450}.section-body{row-gap:3rem;min-width:0;display:grid}@media (width>=48rem){.section{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:2rem}.section-rail{transition:top .38s var(--header-ease);grid-column:1/span 3;align-self:baseline;position:sticky;top:2.5rem}:root[data-header=shown] .section-rail{top:calc(var(--header-h) + 1.5rem)}.section-body{grid-column:4/-1;grid-template-columns:subgrid;align-self:baseline}.section-body>*{grid-column:1/-1}}.prose{max-width:36em;font-size:var(--text-lead);letter-spacing:-.01em;gap:1.25rem;font-weight:350;line-height:1.45;display:grid}.prose p+p{color:var(--text-2)}.section-aside{aspect-ratio:4/5;width:8rem;position:relative}.about-photo{object-fit:cover;object-position:50% 22%;outline:1px solid var(--image-edge);outline-offset:-1px;border-radius:2px;width:100%;height:100%;position:absolute;inset:0}@media (hover:hover){.about-photo,.place-logo{filter:grayscale();transition:filter .4s var(--ease-out)}.about-photo{filter:grayscale()contrast(1.05)}.about-photo:hover,.place:hover .place-logo,.place-link:focus-visible .place-logo{filter:none}}@media (width<=47.99rem){#about{grid-template-columns:minmax(0,1fr)}#about .section-body{display:contents}#about .section-aside{order:1;width:7.5rem}#about .facts{order:2;margin-top:1rem}}@media (width>=48rem){#about{--half-leading:calc((var(--leading-body) - 1.41) / 2);row-gap:0}#about .section-body{grid-row:1/span 2;grid-template-rows:subgrid;align-self:stretch;row-gap:0}#about .section-rail{margin-top:calc(var(--text-lead) * 1.11 - var(--text-sm) * (var(--half-leading) + 1.09));margin-bottom:calc(1.5rem - 3rem - var(--text-sm) * (var(--half-leading) + .361));grid-row:1;align-self:stretch;position:static}#about .section-label{transition:top .38s var(--header-ease);position:sticky;top:2.5rem}:root[data-header=shown] #about .section-label{top:calc(var(--header-h) + 1.5rem)}#about .facts{margin-top:3rem}#about .section-aside{aspect-ratio:auto;width:auto;margin-top:calc(3rem + var(--text-sm) * (var(--half-leading) + .361));margin-bottom:calc(var(--text-sm) * (var(--half-leading) + .32));grid-area:2/1/auto/span 2}}@media (width>=48rem) and (width<=63.99rem){#about .section-aside{grid-column:1/span 3}}.place{white-space:nowrap;position:relative}.place-link{-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.place-link:focus-visible{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text);outline:none;text-decoration-thickness:2px}.place-logo,.place-card-logo{object-fit:contain;display:inline-block}img.logo-dark,:root[data-theme=dark] img.logo-light{display:none}:root[data-theme=dark] img.logo-dark{display:inline-block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) img.logo-light{display:none}:root:not([data-theme=light]) img.logo-dark{display:inline-block}}.place-logo{vertical-align:-.12em;width:.92em;height:.92em;margin-right:.28em}.place-card{z-index:20;background:var(--surface);outline:1px solid var(--line);width:18rem;box-shadow:var(--shadow-card);color:var(--text-2);font-size:var(--text-sm);letter-spacing:0;white-space:normal;pointer-events:none;visibility:hidden;opacity:0;transform-origin:var(--origin-x,left) var(--origin-y,bottom);border-radius:10px;gap:.375rem;padding:1rem 1.125rem;font-weight:400;line-height:1.45;transition:opacity .12s,transform .12s,visibility 0s linear .12s;display:grid;position:absolute;bottom:calc(100% + .625rem);left:0;transform:translateY(4px)scale(.97)}.place[data-align=end] .place-card{--origin-x:right;left:auto;right:0}.place[data-side=below] .place-card{--origin-y:top;top:calc(100% + .625rem);bottom:auto;transform:translateY(-4px)scale(.97)}.place-card-head{align-items:center;gap:.625rem;margin-bottom:.25rem;display:flex}.place-card-logo{width:1.75rem;height:1.75rem}.place-card-name{color:var(--text);font-weight:500}.place-card-role,.place-card-url{font-size:var(--text-xs)}.place-card-role{color:var(--text)}@media (hover:hover) and (pointer:fine){.place:hover .place-card{visibility:visible;opacity:1;transition:opacity .18s var(--ease-out) .25s, transform .18s var(--ease-out) .25s, visibility 0s linear .25s;transform:none}}.place:has(.place-link:focus-visible) .place-card{visibility:visible;opacity:1;transition:opacity .18s var(--ease-out), transform .18s var(--ease-out), visibility 0s;transform:none}:is(.place[data-dismissed] .place-card,.place[data-dismissed]:has(.place-link:focus-visible) .place-card){visibility:hidden;opacity:0;transition:opacity .12s,transform .12s,visibility 0s linear .12s;transform:translateY(4px)scale(.97)}:is(.place[data-dismissed][data-side=below] .place-card,.place[data-dismissed][data-side=below]:has(.place-link:focus-visible) .place-card){transform:translateY(-4px)scale(.97)}.facts{font-size:var(--text-sm);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:2.5rem 2rem;display:grid}.facts-title{color:var(--text-2);font-size:var(--text-sm);margin-bottom:1rem;font-weight:450}.facts dl{gap:.75rem;display:grid}.facts dl>div{grid-template-columns:7.5rem 1fr;gap:1rem;display:grid}.facts dd{color:var(--text-2)}@media (width>=48rem){.facts,.fact-group{grid-template-columns:subgrid;column-gap:normal}.fact-group{grid-column:1/-1;display:grid}.facts-title{grid-column:1/span 3;margin-bottom:0}.facts dl{grid-column:4/-1}}.rows{padding:0;list-style:none}.row+.row{border-top:1px solid var(--line)}.row-grid:is(.row:first-child,.row:first-child>*){padding-top:0}.row-grid:is(.row:last-child,.row:last-child>*){padding-bottom:0}.row-grid{gap:.5rem 2rem;padding-block:1.75rem 2rem;display:grid}.project{text-decoration:none}.row-meta{color:var(--text-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.row-main{gap:.75rem;max-width:38em;display:grid}.row-title{color:var(--text);font-size:var(--text-title);letter-spacing:-.015em;font-weight:400;line-height:1.3}.project .row-meta{align-content:start;gap:.25rem;display:grid}.row-sub{color:var(--text-2);font-size:var(--text-sm)}.row-sub a{align-items:center;gap:.25rem;display:inline-flex}.points{color:var(--text-2);gap:.375rem;padding:0;list-style:none;display:grid}.tags{color:var(--text-2);font-size:var(--text-xs);letter-spacing:.01em}.project .row-main>p:first-child{color:var(--text-2);transition:color .15s}@media (width>=48rem){.rows,.rows>li,.row-grid{grid-column:1/-1;grid-template-columns:subgrid;column-gap:normal;display:grid}.row-grid>.row-meta{grid-column:1/span 3}.row-grid>.row-main{grid-column:4/-1}.row-grid{align-items:baseline}}.contact-text{max-width:34em;color:var(--text-2);font-size:var(--text-lead);letter-spacing:-.01em;font-weight:350;line-height:1.45}.email-row{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex;container-type:inline-size}.email-row>*{--email-size:min(var(--text-email), 6.7cqi)}@media (width>=48rem){.email-row>*{--email-size:min(var(--text-email), (100cqi - 7.5rem) / 14.5)}}.email{font-size:var(--email-size);letter-spacing:-.035em;overflow-wrap:anywhere;text-underline-offset:.18em;font-weight:300;font-stretch:104%;line-height:1.15;text-decoration-thickness:1px}.copy{translate:0 calc(var(--x-center) * var(--email-size));border:1px solid var(--line-strong);min-height:2.25rem;color:var(--text-2);font-size:var(--text-sm);transition:transform .16s var(--ease-out), border-color .15s ease, color .15s ease;border-radius:999px;padding:0 1rem;display:inline-grid;position:relative}.copy:after{content:"";position:absolute;inset:-.25rem 0}.copy>span{grid-area:1/1;align-self:center;transition:opacity .2s,filter .2s}.copy:not([data-copied]) .copy-done,.copy[data-copied] .copy-idle{opacity:0;filter:blur(2px)}.copy[data-copied]{color:var(--text)}.copy:active{transform:scale(.97)}.footer{margin-top:var(--section-space);padding-block:2rem max(2rem, env(safe-area-inset-bottom));color:var(--text-2);font-size:var(--text-xs);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;display:flex}@media (hover:hover) and (pointer:fine){a:hover{text-decoration-color:currentColor}.nav a:hover,.lang-switch button:hover,.theme-toggle:hover{color:var(--text)}a:hover .arrow{color:var(--text);transform:translate(1.5px,-1.5px)}.project-link:hover .row-main>p:first-child{color:var(--text)}.copy:hover{border-color:var(--text-2);color:var(--text)}}.reveal{--reveal-step:70ms}.hero.reveal[data-visible=load]{--reveal-base:80ms}.section.reveal[data-visible=load]{--reveal-base:calc(80ms + 4 * var(--reveal-step))}.section-rail{--i:0}.section-body>:first-child{--i:1}.section-body>:nth-child(2),.section-aside{--i:2}.section-body>:nth-child(3){--i:3}.reveal :is(.hero>*,.section-rail,.section-aside,.section-body>:not(.rows),.rows>li){--reveal-delay:calc(var(--reveal-base,0s) + var(--i,0) * var(--reveal-step));opacity:0;filter:blur(4px);transition:opacity .7s var(--ease-out) var(--reveal-delay), transform .9s var(--ease-out) var(--reveal-delay), filter .7s var(--ease-out) var(--reveal-delay), top .38s var(--header-ease);transform:translateY(12px)}.reveal[data-visible] :is(.hero>*,.section-rail,.section-aside,.section-body>:not(.rows),.rows>li){opacity:1;filter:none;transform:none}::view-transition-old(root){animation-duration:.24s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.24s;animation-timing-function:ease}:root[data-transition=theme] :not(.theme-toggle,.theme-toggle *){transition:none!important}:root[data-transition=theme] .theme-toggle{view-transition-name:theme-toggle;transition:color .24s ease, transform .16s var(--ease-out)}::view-transition-group(theme-toggle){animation:none}::view-transition-new(theme-toggle){animation:none}::view-transition-old(theme-toggle){display:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal :is(.hero>*,.section-rail,.section-aside,.section-body>:not(.rows),.rows>li){filter:none;transition:opacity .4s ease var(--reveal-delay);transform:none}.copy:active,.lang-switch button:active,.theme-toggle:active,a:hover .arrow{transform:none}.theme-toggle :is(.orb,.bite,.rays){transition:opacity .2s}.place-card{filter:none;transform:none}.wordmark{--lift:0}.site-header{transition:opacity .2s,visibility .2s}:root[data-header=hidden] .site-header{opacity:0;visibility:hidden;translate:none}}@media print{.reveal :is(.hero>*,.section-rail,.section-aside,.section-body>:not(.rows),.rows>li){opacity:1!important;filter:none!important;transform:none!important}.section.reveal:before{opacity:1!important}}.page{flex-direction:column;min-height:100svh;display:flex}.page>main{flex:1}.page>main:has(>.not-found){flex-direction:column;display:flex}.not-found{padding-block:2rem calc(var(--header-h) / 2);text-align:center;flex:1;align-content:center;justify-items:center}.not-found .hero-links{justify-content:center}.nf-path{color:var(--text);overflow-wrap:anywhere}.nf-address{max-width:100%;font-size:var(--text-email);letter-spacing:-.03em;white-space:nowrap;grid-template-columns:auto minmax(0,1fr);font-weight:350;line-height:1.1;display:inline-grid}.nf-address-path{text-overflow:ellipsis;color:var(--text-2);overflow-x:clip}.reveal[data-visible] .nf-address{--nf-delay:calc(var(--reveal-base,0s) + 1.1s);transition:opacity .7s var(--ease-out) var(--reveal-delay), transform .9s var(--ease-out) var(--reveal-delay), filter .7s var(--ease-out) var(--reveal-delay), grid-template-columns .7s var(--ease-out) calc(var(--nf-delay) + .15s);grid-template-columns:auto minmax(0,0fr)}.reveal[data-visible] .nf-address-path{animation:nf-path-out .6s var(--ease-out) var(--nf-delay) both}@keyframes nf-path-out{to{opacity:0;filter:blur(4px);transform:translateY(-12px)}}@media (prefers-reduced-motion:reduce){.reveal[data-visible] .nf-address{transition:opacity .4s ease var(--reveal-delay), grid-template-columns 0s calc(var(--nf-delay) + .4s)}.reveal[data-visible] .nf-address-path{animation:nf-path-fade .4s ease var(--nf-delay) both}@keyframes nf-path-fade{to{opacity:0}}}
