@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.grid{display:grid}.hidden{display:none}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:u+460-52f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:u+301,u+400-45f,u+490-491,u+4b0-4b1,u+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:u+1f??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:u+370-377,u+37a-37f,u+384-38a,u+38c,u+38e-3a1,u+3a3-3ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal.Dx4kXJAl.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.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(./bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.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(./bricolage-grotesque-latin-wght-normal.DLoelf7F.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{--p-paper:#f3f0e8;--p-ink:#181916;--p-cobalt:#2947d7;--p-night:#111310;--p-bone:#f1eee5;--p-orange:#ff9858;--p-paper-surface:#e8e5dc;--p-ink-secondary:#52554e;--p-ink-muted:#62665d;--p-paper-border:#c9cbc0;--p-paper-border-strong:#9c9f94;--p-paper-image:#e1e0d7;--p-night-surface:#1e211c;--p-bone-secondary:#bdbfb3;--p-bone-muted:#9da493;--p-night-border:#373c32;--p-night-border-strong:#626959;--p-night-image:#20231c}html,html.dark,html.dark[data-variant=general],html[data-variant=general]{color-scheme:light;--bg-canvas:var(--p-paper);--bg-surface:var(--p-paper-surface);--fg-primary:var(--p-ink);--fg-secondary:var(--p-ink-secondary);--fg-muted:var(--p-ink-muted);--accent-lead:var(--p-cobalt);--accent-lead-foreground:var(--p-paper);--border:var(--p-paper-border);--border-strong:var(--p-paper-border-strong);--project-image-bg:var(--p-paper-image);--intro-bg:var(--p-night);--intro-ink:var(--p-bone);--font-sans:"Inter Variable","Inter",Arial,sans-serif;--font-display:"Bricolage Grotesque Variable","Inter Variable",Arial,sans-serif;--font-mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--container-max:1320px;--gutter:clamp(20px,4.45vw,64px);--nav-h:72px}html.dark[data-variant=game-design],html[data-variant=game-design]{color-scheme:dark;--bg-canvas:var(--p-night);--bg-surface:var(--p-night-surface);--fg-primary:var(--p-bone);--fg-secondary:var(--p-bone-secondary);--fg-muted:var(--p-bone-muted);--accent-lead:var(--p-orange);--accent-lead-foreground:var(--p-night);--border:var(--p-night-border);--border-strong:var(--p-night-border-strong);--project-image-bg:var(--p-night-image)}@media(max-width:767px){html{--nav-h:101px}}.folio-container{width:100%;max-width:var(--container-max);padding-inline:var(--gutter);margin-inline:auto}.folio-meta{font:400 13px/1.5 var(--font-sans);color:var(--fg-muted)}.folio-nav{z-index:40;background:var(--bg-canvas);border-bottom:1px solid var(--border);width:100%;position:sticky;top:0}.folio-nav__inner{min-height:calc(var(--nav-h) - 1px);width:100%;max-width:var(--container-max);padding-inline:var(--gutter);grid-template-columns:1fr auto auto auto;align-items:center;gap:clamp(20px,3vw,44px);margin-inline:auto;display:grid}.folio-brand{font:600 16px/1 var(--font-display);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;width:-moz-fit-content;width:fit-content;display:flex}.folio-mark{background:var(--fg-primary);width:30px;height:28px;display:block;-webkit-mask:url(../logo/frame0008.webp) 50%/contain no-repeat;-webkit-mask-source-type:luminance;-webkit-mask:url(../logo/frame0008.webp) 50%/contain no-repeat luminance;mask:url(../logo/frame0008.webp) 50%/contain no-repeat luminance}.world-nav{gap:22px;display:flex}.world-nav a{min-height:44px;color:var(--fg-muted);align-items:center;gap:8px;font-size:14px;display:flex}.world-nav a:hover,.world-nav a[aria-current]{color:var(--fg-primary)}.world-nav a[aria-current]{font-weight:600}.world-dot{border:1px solid var(--fg-muted);border-radius:50%;width:6px;height:6px}.world-nav a[aria-current] .world-dot{background:var(--accent-lead);border-color:var(--accent-lead)}.section-nav{gap:22px;font-size:14px;display:flex}.section-nav a{display:flex}.nav-resume,.section-nav a{align-items:center;min-height:44px}.nav-resume{white-space:nowrap;gap:8px;font-size:14px;display:inline-flex}.nav-resume .folio-arrow{width:15px;height:15px}.folio-text-link:hover,.footer-bottom a:hover,.nav-resume:hover,.section-nav a:hover{color:var(--accent-lead)}.folio-hero{padding-top:clamp(40px,6vw,88px)}.hero-composition{grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:center;gap:clamp(24px,4vw,64px);display:grid}.hero-copy{z-index:1;position:relative}.hero-role{margin-bottom:20px;font-size:15px}.hero-copy h1{letter-spacing:-.035em;text-wrap:balance;max-width:17ch;font-size:clamp(40px,5.3vw,78px);font-weight:600;line-height:1.04}.hero-intro{color:var(--fg-secondary);max-width:52ch;margin-top:28px;font-size:clamp(17px,1.4vw,20px);line-height:1.6}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:32px;display:flex}.folio-cta{background:var(--fg-primary);min-height:50px;color:var(--bg-canvas);border:0;justify-content:space-between;align-items:center;gap:22px;padding:13px 20px;font-size:15px;font-weight:500;display:inline-flex}.folio-cta:hover{color:var(--accent-lead-foreground)}.folio-text-link{align-items:center;gap:8px;min-height:44px;font-size:15px;display:inline-flex}.folio-text-link .folio-arrow{width:15px;height:15px}.hero-art{aspect-ratio:1;justify-self:end;width:100%;min-width:0;max-width:380px;position:relative}.hero-now{border-top:1px solid var(--border-strong);grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,4vw,64px);margin:clamp(48px,6vw,88px) 0 0;display:grid}.hero-now>div{border-bottom:1px solid var(--border);padding-block:20px}.hero-now dt{margin-bottom:6px}.hero-now dd{max-width:38ch;margin:0;font-size:16px;line-height:1.5}.hero-now a{text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:4px}.hero-now a:hover{color:var(--accent-lead);text-decoration-color:currentColor}.folio-section{padding-block:clamp(56px,7vw,104px);position:relative}.folio-hero+.folio-section{padding-top:clamp(48px,6vw,88px)}.folio-hero+.folio-section:before{display:none}.folio-section:before{content:"";top:0;inset-inline:var(--gutter);background:var(--border-strong);height:1px;position:absolute}.folio-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;padding-bottom:clamp(28px,3.5vw,48px);display:flex}.folio-section h2{letter-spacing:-.03em;font-size:clamp(30px,3.4vw,46px);font-weight:600;line-height:1.08}.folio-subheading{border-top:1px solid var(--border);margin-top:clamp(56px,7vw,96px);padding-top:clamp(28px,3.5vw,48px);padding-bottom:20px}.folio-section .folio-subheading h2{font-size:clamp(24px,2.4vw,32px)}.folio-project h3,.project-row h3{letter-spacing:-.025em;font-size:clamp(24px,2.3vw,32px);font-weight:600;line-height:1.12}.folio-project h3 a:hover,.project-row h3 a:hover{color:var(--accent-lead)}.project-blurb{color:var(--fg-secondary);max-width:58ch;font-size:16px;line-height:1.6}.project-part{color:var(--fg-muted);max-width:58ch;margin-top:8px;font-size:14px;line-height:1.55}.project-actions{flex-wrap:wrap;gap:0 24px;margin-top:12px;display:flex}.project-no-image{font:600 clamp(28px,4vw,44px)/1 var(--font-display);letter-spacing:-.03em;color:var(--fg-muted)}.project-image{aspect-ratio:16/9;background:var(--project-image-bg);justify-content:center;align-items:center;display:flex;overflow:hidden}.project-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1);display:block}.project-image-link{display:block}.project-image-link:hover img{transform:scale(1.02)}.project-caption{padding-top:18px}.project-caption .folio-meta{margin-bottom:4px}.project-caption h3{margin-bottom:10px}.folio-project--featured{grid-template-columns:minmax(0,8fr) minmax(0,4fr);align-items:end;gap:clamp(24px,3vw,48px);margin-bottom:clamp(48px,5vw,72px);display:grid}.folio-project--featured .project-caption{padding:0}.folio-project--featured h3{font-size:clamp(30px,3.2vw,44px)}.folio-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(40px,5vw,64px) clamp(24px,3vw,40px);display:grid}.project-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-content:start;gap:12px clamp(24px,4vw,56px);padding-block:clamp(28px,3vw,40px);display:grid}.project-row__image{aspect-ratio:16/10;background:var(--project-image-bg);border:1px solid var(--border);grid-row:1/span 2;justify-content:center;align-items:center;display:flex;overflow:hidden}.project-row__image img{-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1);display:block}.project-row__image:hover img{transform:scale(1.02)}.project-row h3{align-self:end}.project-row--compact{grid-template-columns:minmax(0,3fr) minmax(0,9fr);padding-block:24px}.project-row--compact h3{align-self:start;font-size:clamp(20px,1.8vw,24px)}.project-row--compact .project-blurb{font-size:15px}.experience-row{border-top:1px solid var(--border);grid-template-columns:3fr 7fr 2fr;gap:12px 36px;padding-block:28px;display:grid}.experience-row h3{letter-spacing:-.02em;font-size:22px;font-weight:600;line-height:1.2}.experience-row>.folio-meta{text-align:right}.experience-title{margin-bottom:10px;font-size:16px;font-weight:500}.experience-row ul{color:var(--fg-secondary);max-width:64ch;margin:0;padding:0;font-size:15px;line-height:1.65;list-style:none}.experience-row li+li{margin-top:8px}.folio-about{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px clamp(32px,5vw,80px);display:grid}.folio-about-copy{color:var(--fg-secondary);max-width:62ch;font-size:clamp(17px,1.35vw,19px);line-height:1.7}.folio-about-copy p+p{margin-top:1.2em}.folio-about-copy a,.folio-about-copy p:first-child{color:var(--fg-primary)}.folio-about-copy a{text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:4px}.folio-about-copy a:hover{color:var(--accent-lead);text-decoration-color:currentColor}.about-portrait{max-width:300px;margin:28px 0 0}.about-portrait img{aspect-ratio:4/5;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 45%;object-position:50% 45%;width:100%;display:block}.about-art{grid-column:1/-1;margin-top:24px}.about-art__heading{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:20px;padding-block:24px;display:flex}.about-art__heading h3{letter-spacing:-.02em;font-size:clamp(22px,2.2vw,28px);font-weight:600}.about-art__grid{grid-template-columns:.95fr .9fr 1.6fr;align-items:end;gap:24px;display:grid}.about-art__grid figure{margin:0}.about-art__grid img{width:100%;height:auto;display:block}.about-art figcaption{margin-top:10px}.folio-writing-row{border-top:1px solid var(--border);grid-template-columns:96px minmax(0,1fr) auto;align-items:baseline;gap:24px;padding-block:20px;display:grid}.folio-writing-row h3{font:600 clamp(18px,1.5vw,21px)/1.3 var(--font-display);letter-spacing:-.015em}.folio-writing-row p{color:var(--fg-secondary);max-width:80ch;margin-top:4px;font-size:15px;line-height:1.55}.folio-writing-row:hover h3{color:var(--accent-lead)}.folio-skills{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px clamp(32px,5vw,80px);display:grid}.folio-skills dl{margin:0}.folio-skills dl>div{border-top:1px solid var(--border);grid-template-columns:150px 1fr;gap:16px;padding-block:14px;display:grid}.folio-skills dd{color:var(--fg-secondary);margin:0;font-size:15px;line-height:1.6}.folio-footer{background:var(--bg-surface);border-top:1px solid var(--border-strong);padding-top:clamp(48px,6vw,88px)}.footer-lede{color:var(--fg-secondary);max-width:48ch;font-size:clamp(17px,1.4vw,20px);line-height:1.5}.footer-contact{width:-moz-fit-content;width:fit-content;max-width:100%;font:600 clamp(24px,6.2vw,84px)/1.1 var(--font-display);letter-spacing:-.035em;overflow-wrap:anywhere;text-underline-offset:.14em;text-decoration:underline;text-decoration-thickness:.04em;text-decoration-color:var(--border-strong);margin-block:16px clamp(40px,5vw,72px);transition:color .3s,text-decoration-color .3s;display:block}.footer-contact:hover{color:var(--accent-lead);text-decoration-color:currentColor}.footer-bottom{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-block:20px 28px;font-size:14px;display:flex}.footer-bottom nav{flex-wrap:wrap;gap:0 22px;display:flex}.footer-bottom a{align-items:center;gap:6px;min-height:44px;display:inline-flex}.footer-bottom .folio-arrow{width:13px;height:13px}.folio-empty{min-height:65vh;padding-top:100px}.folio-empty h1{margin-bottom:20px;font-size:clamp(32px,5vw,56px)}.folio-empty button{margin-top:24px}@media(max-width:1023px){.hero-composition{grid-template-columns:minmax(0,1fr)}.hero-art{display:none}.folio-project--featured{grid-template-columns:minmax(0,1fr);align-items:start;gap:0}.folio-project--featured .project-caption{padding-top:18px}}@media(max-width:767px){.folio-nav__inner{grid-template-columns:1fr auto;gap:0 12px;padding-block:6px}.folio-brand{grid-area:1/1;gap:8px;min-height:44px;font-size:15px}.folio-mark{flex-shrink:0;width:25px;height:24px}.world-nav{grid-area:2/1;gap:18px}.section-nav{grid-area:2/2;justify-content:end;gap:16px}.nav-resume{grid-area:1/2;justify-self:end}.hero-now{border-top:0;grid-template-columns:minmax(0,1fr)}.hero-now>div{border-top:1px solid var(--border);border-bottom:0;padding-block:14px}.hero-now>div:first-child{border-top-color:var(--border-strong)}.hero-now>div:last-child{border-bottom:1px solid var(--border)}.folio-project-grid,.project-row,.project-row--compact{grid-template-columns:minmax(0,1fr)}.project-row__image{grid-row:auto;margin-bottom:8px}.experience-row{grid-template-columns:minmax(0,1fr)}.experience-row>.folio-meta{text-align:left;order:-1}.folio-about,.folio-skills{grid-template-columns:minmax(0,1fr)}.about-portrait{max-width:240px;margin-top:20px}.about-art__heading{display:block}.about-art__heading .folio-meta{margin-top:6px;display:block}.about-art__grid{grid-template-columns:minmax(0,1fr);gap:28px}.folio-writing-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px}.folio-writing-row time{grid-column:1/-1}.folio-skills dl>div{grid-template-columns:minmax(0,1fr);gap:4px}}.folio-detail{font-family:var(--font-sans);padding-block:clamp(2.5rem,5vw,4.5rem) 6rem}.detail-back{min-height:44px;color:var(--fg-primary);text-underline-offset:.3em;align-items:center;font-size:.875rem;text-decoration:underline;display:inline-flex}.detail-actions a:hover,.detail-back:hover,.detail-project-link:hover,.detail-related-row:hover{color:var(--accent-lead)}.detail-header{padding-bottom:clamp(2rem,5vw,5rem)}.detail-eyebrow{color:var(--fg-muted);font-size:.875rem;line-height:1.6}.detail-header>.detail-eyebrow{margin-top:clamp(2rem,4vw,3.5rem)}.detail-title{letter-spacing:-.035em;overflow-wrap:anywhere;text-wrap:balance;color:var(--fg-primary);margin:.75rem 0 2rem;font-size:clamp(2.75rem,6.4vw,6rem);font-weight:600;line-height:1.02}.detail-intro{grid-template-columns:7fr 1fr 4fr;gap:1.5rem;display:grid}.detail-dek{letter-spacing:-.01em;color:var(--fg-secondary);max-width:45ch;font-size:clamp(1.2rem,1.9vw,1.6rem);line-height:1.5}.detail-facts{color:var(--fg-secondary);grid-column:3;align-content:start;gap:1.5rem;font-size:.9375rem;line-height:1.6;display:grid}.detail-label{color:var(--fg-muted);margin-bottom:.25rem;font-size:.8125rem;line-height:1.5;display:block}.detail-actions{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.detail-actions a{text-underline-offset:.3em;min-height:44px;color:var(--fg-primary);align-items:center;text-decoration:underline;display:inline-flex}.detail-cover{margin-bottom:clamp(4rem,8vw,8rem)}.detail-cover img{border:1px solid var(--border);width:100%;height:auto;display:block}.detail-cover figcaption,.detail-gallery figcaption{color:var(--fg-muted);justify-content:space-between;gap:1rem;padding-block:1rem;font-size:.8125rem;line-height:1.5;display:flex}.detail-body-grid{grid-template-columns:3fr 9fr;gap:2rem;display:grid}.detail-body-grid--solo{grid-template-columns:minmax(0,1fr);justify-items:center}.detail-side-label{align-self:start}.detail-prose{width:100%;max-width:68ch;color:var(--fg-secondary);overflow-wrap:anywhere;font-size:1.0625rem;line-height:1.8}.detail-prose>:first-child{margin-top:0}.detail-prose ol,.detail-prose p,.detail-prose ul{margin:0 0 1.5rem}.detail-prose h2,.detail-prose h3,.detail-prose h4{font-family:var(--font-display);color:var(--fg-primary);letter-spacing:-.025em;text-wrap:balance;margin:3rem 0 1.25rem;scroll-margin-top:7rem;font-weight:600;line-height:1.15}.detail-prose h2{font-size:clamp(1.6rem,2.4vw,2.1rem)}.detail-prose h3{font-size:1.5rem}.detail-prose h4{font-size:1.2rem}.detail-prose ul{padding-left:1.5rem;list-style:outside}.detail-prose ol{padding-left:1.5rem;list-style:decimal}.detail-prose li{margin-bottom:.65rem}.detail-prose a{color:var(--accent-lead);text-underline-offset:.2em;text-decoration:underline}.detail-prose strong{color:var(--fg-primary);font-weight:650}.detail-prose blockquote{border-left:2px solid var(--accent-lead);margin:2rem 0;padding-left:1.5rem}.detail-prose hr{border:0;border-top:1px solid var(--border);margin:3rem 0}.detail-prose code{font-family:var(--font-mono);background:var(--bg-surface);padding:.1em .25em;font-size:.85em}.detail-prose pre{background:var(--bg-surface);border:1px solid var(--border);white-space:pre;margin:2rem 0;padding:1.25rem;overflow-x:auto}.detail-prose pre code{padding:0}.detail-prose table{border-collapse:collapse;max-width:100%;margin:2rem 0;display:block;overflow-x:auto}.detail-prose td,.detail-prose th{text-align:left;border-bottom:1px solid var(--border);padding:.75rem}.detail-prose img{max-width:100%;height:auto;margin-block:2rem 1rem;display:block}.detail-prose figure{margin:2.5rem 0}.detail-prose figcaption{color:var(--fg-muted);font-size:.8125rem;line-height:1.5}.detail-prose .prose-media{aspect-ratio:auto;background:0 0;border-radius:0;animation:none}.detail-prose .prose-media:after,.detail-prose .prose-media:before{display:none}.detail-prose .prose-media img{opacity:1;height:auto;position:static}.detail-gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:2rem;margin-top:clamp(4rem,8vw,8rem);display:grid}.detail-gallery img{background:var(--bg-surface);width:100%;height:auto;display:block}.detail-gallery a{display:block}.detail-related{margin-top:clamp(4rem,8vw,8rem)}.detail-related h2{letter-spacing:-.03em;color:var(--fg-primary);margin-bottom:2rem;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:600;line-height:1.1}.detail-related-row{border-top:1px solid var(--border);font:600 clamp(1.15rem,1.7vw,1.4rem)/1.3 var(--font-display);letter-spacing:-.015em;color:var(--fg-primary);justify-content:space-between;align-items:baseline;gap:2rem;padding-block:1.25rem;display:flex}.detail-related-row small{max-width:68ch;font:400 .9375rem/1.55 var(--font-sans);letter-spacing:0;color:var(--fg-secondary);margin-top:.35rem;display:block}.detail-note .detail-title{max-width:20ch;font-size:clamp(2.25rem,4.8vw,4.5rem)}.detail-note .detail-header{border-bottom:1px solid var(--border);margin-bottom:3.5rem}.detail-note-tags{color:var(--fg-muted);margin-top:1.5rem;font-size:.8125rem;line-height:1.5}.detail-project-link{text-underline-offset:.3em;margin-top:1.5rem;font-size:.875rem;line-height:1.6;text-decoration:underline;display:inline-block}.detail-end-link{margin-top:3rem}.detail-status{flex-direction:column;align-items:flex-start;gap:1.5rem;min-height:65vh;padding-block:10rem 5rem;display:flex}.detail-status h1{letter-spacing:-.03em;font-size:clamp(2rem,4vw,3rem);line-height:1.1}.detail-status a:focus-visible,.detail-status button:focus-visible,.folio-detail a:focus-visible{outline:2px solid var(--accent-lead);outline-offset:5px}@media(max-width:767px){.detail-body-grid,.detail-gallery,.detail-intro{grid-template-columns:minmax(0,1fr)}.detail-facts{grid-column:1;margin-top:1rem}.detail-body-grid{gap:2rem}.detail-prose{font-size:1rem}.detail-title{margin-bottom:2rem}}:root{--mg-expo:cubic-bezier(.16,1,.3,1);--mg-out:cubic-bezier(.22,1,.36,1);--mg-inout:cubic-bezier(.65,0,.35,1)}@keyframes mg-word{0%{transform:translateY(112%)rotate(3deg)}}@keyframes mg-rise{0%{opacity:0;transform:translateY(24px)}}@keyframes mg-settle{0%{opacity:0;transform:scale(.88)rotate(-5deg)}}@keyframes mg-rule{0%{transform:scaleX(0)}}@keyframes mg-unclip{0%{clip-path:inset(100% 0 0)}}.kt-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute}.kt-sr,.kt-w{overflow:hidden}.kt-w{vertical-align:top;margin-block:-.1em -.14em;padding-block:.1em .14em}.kt-w,.kt-w>span{display:inline-block}.kt-w>span{transform-origin:0 100%}.kt-in .kt-w>span{animation:mg-word 1.05s var(--mg-expo) both;animation-delay:calc(var(--mg-at,.15s) + var(--i)*70ms)}.mg-enter{animation:mg-rise .9s var(--mg-expo) both;animation-delay:var(--mg-at,.3s)}.hero-art{animation:mg-settle 1.5s var(--mg-expo) .3s both}.detail-cover img{animation:mg-unclip 1.3s var(--mg-expo) .3s both}html[data-signature-intro] :is(.kt-in .kt-w>span,.mg-enter,.hero-art){animation-play-state:paused}.folio-section:before{transform:scaleX(var(--rule,1));transform-origin:0}.mg-row{border-top:0;position:relative}.mg-row:after,.mg-row:before{content:"";transform-origin:0;height:1px;position:absolute;inset:0 0 auto}.mg-row:before{background:var(--border);transform:scaleX(var(--rule,1))}.mg-row:after{background:var(--accent-lead);transform-origin:100%;transition:transform .7s var(--mg-expo);transform:scaleX(0)}.mg-row:is(a):hover:after{transform-origin:0;transform:scaleX(1)}.mg-parallax{scale:1.1}.project-row.mg-row{border-top:0}.about-portrait{overflow:hidden}.folio-arrow g{transition:transform .5s var(--mg-expo)}.folio-arrow .fa-b{transform:translate(-24px,24px)}:is(a,button):hover>.folio-arrow .fa-a{transform:translate(24px,-24px)}:is(a,button):hover>.folio-arrow .fa-b{transform:none}.folio-cta,.folio-cta:hover{background:var(--fg-primary) linear-gradient(var(--accent-lead),var(--accent-lead)) no-repeat left /0 100%}.folio-cta{transition:background-size .55s var(--mg-expo),color .3s}.folio-cta:hover{background-size:100% 100%}.folio-text-link>span,.footer-bottom a>span:first-child,.nav-resume>span,.section-nav a{background:linear-gradient(var(--accent-lead),var(--accent-lead)) no-repeat 0 100% /0 1px,linear-gradient(var(--border-strong),var(--border-strong)) no-repeat 0 100% /100% 1px;transition:background-size .55s var(--mg-expo),color .3s;padding-bottom:3px;text-decoration:none}.footer-bottom a>span:first-child,.nav-resume>span,.section-nav a{background-size:0 1px,0 1px}.section-nav a:hover,:is(.folio-text-link,.nav-resume,.footer-bottom a):hover>span{background-size:100% 1px,100% 1px}.folio-mark,.world-dot{transition:transform .5s var(--mg-expo),background .3s,border-color .3s}.folio-brand:hover .folio-mark{transform:rotate(-8deg)scale(1.08)}.world-nav a:hover .world-dot{transform:scale(1.7)}.detail-related-row>span:first-child,.folio-writing-row h3{transition:color .3s}.about-art__grid img,.detail-gallery img{transition:transform .8s var(--mg-expo)}.about-art__grid figure:hover img,.detail-gallery a:hover img{transform:scale(1.03)}.about-art__grid figure,.detail-gallery a{overflow:hidden}*{box-sizing:border-box}html{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;scroll-padding-top:calc(var(--nav-h) + 24px);scrollbar-gutter:stable;background:var(--bg-canvas);color:var(--fg-primary)}body{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}img{max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:600}::-moz-selection{background:var(--accent-lead);color:var(--accent-lead-foreground)}::selection{background:var(--accent-lead);color:var(--accent-lead-foreground)}:focus-visible{outline:2px solid var(--accent-lead);outline-offset:6px}#main:focus{outline:none}.skip-link{background:var(--fg-primary);color:var(--bg-canvas);z-index:200;padding:16px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
