@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--p:0;--skills-lead-gap:0px}*,:before,:after,::backdrop{--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-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--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;--spacing:.25rem;--font-weight-semibold:600;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--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{*,:after,:before,::backdrop{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}html,:host{-webkit-text-size-adjust:100%;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]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.\!grid{display:grid!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-w-\[162px\]{min-width:162px}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow: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}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[var\(--ink\)\]{background-color:var(--ink)}.px-\[25px\]{padding-inline:25px}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.text-\[clamp\(17px\,1\.4vw\,22px\)\]{font-size:clamp(17px,1.4vw,22px)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-\[oklch\(0\.97_0_0\)\]{color:oklch(97% 0 0)}.no-underline{text-decoration-line:none}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.invert{--tw-invert:invert(100%);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,)}.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,)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}@media not all and (width>=640px){.max-\[640px\]\:min-h-8{min-height:calc(var(--spacing) * 8)}.max-\[640px\]\:min-w-\[82px\]{min-width:82px}.max-\[640px\]\:px-3{padding-inline:calc(var(--spacing) * 3)}.max-\[640px\]\:py-2{padding-block:calc(var(--spacing) * 2)}.max-\[640px\]\:text-\[11px\]{font-size:11px}}}:root{--ink:oklch(20.5% 0 0);--page-bg:#f5f5f5;--chrome-bg:#141414;--surface-card:#171717;--surface-panel:#262626;--surface-media:#202020;--surface-placeholder:#d9d9d9;--text-muted:oklch(70.8% 0 0);--text-on-dark:#fff;--text-on-dark-secondary:#f5f5f5;--text-on-dark-soft:oklch(87% 0 0);--text-on-dark-muted:#a1a1a1;--beam-green:#7cff55;--line-on-dark:#f5f5f524;--font-saans:"Saans", "saans Fallback", sans-serif;--font-lcddot:"lcddot", "lcddot Fallback", monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--text-display-xl:clamp(64px, 12.35vw, 420px);--text-display-lg:clamp(64px, 12.5vw, 232px);--text-display-md:clamp(40px, 8.5vw, 128px);--text-display-sm:clamp(28px, 5vw, 64px);--text-title-lg:clamp(28px, 4vw, 60px);--text-title-md:clamp(36px, 3.5vw, 54px);--text-title-sm:clamp(26px, 3.1vw, 50px);--text-body-xl:clamp(18px, 1.9vw, 30px);--text-body-lg:clamp(18px, 1.7vw, 28px);--text-body-md:clamp(15px, 1.3vw, 20px);--text-ui-xl:clamp(18px, 1.25vw, 24px);--text-ui-lg:clamp(18px, 1.4vw, 22px);--text-ui-md:clamp(16px, 1.55vw, 20px);--text-eyebrow:clamp(16px, 1.6vw, 26px);--text-tag:clamp(12px, 1vw, 15px);--text-micro:12px;--page-gutter:clamp(28px, 1.7vw, 36px);--hero-mobile-viewport-height:100svh;--radius-xs:6px;--radius-sm:12px;--radius-md:16px;--radius-lg:18px;--radius-pill:999px;--ease-out-expo:cubic-bezier(.19, 1, .22, 1);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--ease-out-cubic:cubic-bezier(.22, .61, .36, 1);--ease-in-out-quart:cubic-bezier(.76, 0, .24, 1);--z-nav:20;--z-canvas-beam:22;--z-lost-glass:22;--z-lost-home:23;--z-beam-spill:23;--z-profile-ticker:24;--z-scroll-cue:25;--z-loader:30;--z-mobile-chrome:80;--z-fixed-nav:90;--z-transition:100;--z-transition-chrome:120}@media (width<=640px){:root{--page-gutter:18px}}@font-face{font-family:Saans;src:url(/fonts/saans-400.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Saans;src:url(/fonts/saans-500.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Saans;src:url(/fonts/saans-600.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Saans;src:url(/fonts/saans-700.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:lcddot;src:url(/fonts/lcddot.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{color-scheme:dark;background-color:var(--chrome-bg)}::selection{background-color:var(--beam-green);color:var(--ink)}html{background:var(--chrome-bg);overscroll-behavior-y:none;height:100%}body{background:var(--chrome-bg);min-height:100svh;color:var(--ink);font-family:var(--font-saans);font-weight:var(--weight-semibold);font-synthesis:none;font-variation-settings:normal;overscroll-behavior-y:none;cursor:url(/cursors/arrow-cursor-outline.svg) 12 5,auto;margin:0;overflow-x:hidden}a[href],button,[role=button],label,select,summary,input[type=button],input[type=submit],input[type=reset]{cursor:pointer}html.is-loader-scroll-locked,html.is-loader-scroll-locked body{overscroll-behavior:none;touch-action:none;height:100%;overflow:hidden!important}html.is-loader-scroll-locked{scrollbar-gutter:stable}@media (hover:hover) and (pointer:fine){html.is-loader-scroll-locked{scrollbar-color:transparent transparent;overflow-y:scroll!important}html.is-loader-scroll-locked::-webkit-scrollbar-track{background:0 0}html.is-loader-scroll-locked::-webkit-scrollbar-thumb{background:0 0}}@supports (min-height:100dvh){body{min-height:100dvh}}body{font-family:var(--font-saans)}main{background:var(--page-bg)}.browser-bg{background:var(--chrome-bg);min-height:100svh}.mobile-bottom-chrome-backdrop{display:none}.page-surface{background:var(--page-bg);min-height:100svh;overflow:clip}@supports (-webkit-touch-callout:none){@media (hover:none) and (pointer:coarse){.mobile-bottom-chrome-backdrop{z-index:var(--z-mobile-chrome);height:max(0px, calc(env(safe-area-inset-bottom,0px) - 90px));background:var(--chrome-bg);pointer-events:none;transition:height .26s;display:block;position:fixed;bottom:0;left:0;right:0;transform:translateZ(0)}.is-page-entering .mobile-bottom-chrome-backdrop{z-index:var(--z-transition-chrome);transition:none}}}*{box-sizing:border-box;font-family:inherit}button,input,label{font:inherit}body:before{content:"";background:var(--chrome-bg);z-index:-1;pointer-events:none;width:100vw;height:100lvh;position:fixed;top:0;left:0}.scene-shell{background:var(--page-bg);width:100%;height:100svh;position:relative;overflow:hidden}.pin-spacer,[data-scrolltrigger-pin-spacer],.hero-section,.about-section,.projects-section,.tech-stack-section,.scene-shell{background:var(--page-bg)}@supports (height:100dvh){.scene-shell{height:100dvh}}.scene-panel{top:env(safe-area-inset-top);right:env(safe-area-inset-right);bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-left);background:var(--page-bg);position:absolute;overflow:hidden}.scene-canvas{pointer-events:none;display:block;position:absolute;width:100%!important;height:100%!important;inset:0!important}.scene-canvas-base{z-index:0}.scene-canvas-beam{z-index:var(--z-canvas-beam)}@media (width<=640px){html,body{background:var(--chrome-bg)}body{min-height:100svh}.scene-shell{height:var(--hero-mobile-viewport-height,100svh);min-height:var(--hero-mobile-viewport-height,100svh)}.scene-panel{top:env(safe-area-inset-top,0px);position:absolute;bottom:0;left:0;right:0}.typography-loader{position:absolute}}.profile-ticker,.profile-beam-spill{opacity:0;pointer-events:none}.scene-shell.is-hero-loading .site-nav,.scene-shell.is-hero-loading .hero-scroll-cue,.scene-shell.is-hero-loading .bottom-lockup{opacity:0;visibility:hidden}.scene-shell.is-hero-ready .site-nav,.scene-shell.is-hero-ready .hero-scroll-cue,.scene-shell.is-hero-ready .bottom-lockup{opacity:1;visibility:visible;transition:opacity .72s var(--ease-out-quint), visibility 0s linear 0s}.scene-shell.is-hero-ready~.profile-ticker,.scene-shell.is-hero-ready~.profile-beam-spill,main:has(.scene-shell.is-hero-ready) .profile-ticker,main:has(.scene-shell.is-hero-ready) .profile-beam-spill,.browser-bg:has(.scene-shell.is-hero-ready)~.profile-ticker,.browser-bg:has(.scene-shell.is-hero-ready)~.profile-beam-spill{opacity:1;pointer-events:auto;transition:opacity .72s var(--ease-out-quint)}.browser-bg:not(:has(.scene-shell))~.profile-ticker{opacity:1;pointer-events:auto}.typography-loader{z-index:var(--z-loader);background:var(--page-bg);pointer-events:none;perspective:900px;opacity:1;transition:opacity .56s var(--ease-out-quint), visibility 0s linear .56s;align-content:center;place-items:center;row-gap:clamp(8px,2.5vh,26px);display:grid;position:absolute;inset:0}.typography-loader.is-hidden{opacity:0;visibility:hidden}#hero-loader .loader-badge,#hero-loader .loader-progress{opacity:1}.loader-badge{z-index:1;aspect-ratio:1;place-items:center;width:clamp(120px,22vmin,176px);display:grid;position:relative}.loader-ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible;rotate:-90deg}.loader-ring circle{fill:none;stroke-width:.85px;stroke-dasharray:1}.loader-ring-track{stroke:var(--ink)}@supports (color:color-mix(in lab, red, red)){.loader-ring-track{stroke:color-mix(in oklab, var(--ink) 14%, var(--page-bg))}}.loader-ring-arc{stroke:var(--ink);stroke-linecap:round;stroke-dashoffset:calc(1 - var(--loader-arc,0))}.loader-logo{width:42%;height:auto;fill:var(--ink);fill-rule:evenodd;clip-rule:evenodd}.loader-progress{color:var(--ink);justify-content:center;align-items:baseline;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.loader-progress{color:color-mix(in oklab, var(--ink) 52%, var(--page-bg))}}.loader-progress{font-family:var(--font-saans);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:0;font-variant-numeric:tabular-nums;line-height:.76}.loader-digit{--digit-height:.86em;width:.58em;height:var(--digit-height);font-size:clamp(15px,2.4vmin,20px);line-height:var(--digit-height);text-align:center;font-variant-numeric:tabular-nums;transition:opacity .16s linear, width .16s var(--ease-out-quint);display:block;position:relative;overflow:hidden}.loader-digit.is-blank{opacity:0;width:0}.loader-digit-strip{will-change:transform;flex-direction:column;align-items:center;display:flex}.loader-digit-strip span{height:var(--digit-height);line-height:var(--digit-height);display:block}.loader-progress-mark{margin-left:.12em;font-size:clamp(11px,1.7vmin,14px);display:inline-block}.typography-loader.is-done .loader-ring,.typography-loader.is-done .loader-progress{opacity:0;transition:opacity .36s var(--ease-out-quint)}.typography-loader.is-intro .loader-badge{opacity:0;transition:opacity .38s var(--ease-out-quint), transform .52s var(--ease-out-expo);transform:scale(.94)}@media (prefers-reduced-motion:reduce){.typography-loader{transition:opacity .28s linear,visibility 0s linear .28s}.typography-loader.is-done .loader-ring,.typography-loader.is-done .loader-progress,.typography-loader.is-intro .loader-badge{transition-duration:.01ms}}.site-nav{z-index:var(--z-nav);width:100%;padding:22px var(--page-gutter) 0;pointer-events:none;grid-template-columns:1fr 1fr auto;align-items:start;column-gap:clamp(20px,5vw,92px);display:grid;position:absolute;top:0;left:0}.nav-item{font-family:var(--font-saans);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:0;color:var(--ink);text-transform:none;gap:0;line-height:1.5;display:grid}.nav-item strong{font-size:var(--text-ui-lg);font-weight:var(--weight-medium);font-variation-settings:normal;line-height:1.2}.nav-item>span{color:var(--text-muted);font-size:var(--text-ui-lg);font-weight:var(--weight-medium);font-variation-settings:normal;line-height:1.2}.nav-item-left{justify-self:start}.nav-item-center{justify-self:start;min-width:min(28vw,260px)}.nav-logo{pointer-events:auto;transition:opacity .2s var(--ease-out-cubic);justify-self:start;line-height:0;display:block}.nav-logo:hover{opacity:.62}.nav-logo:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.nav-logo img{width:auto;height:clamp(30px,2.6vw,40px);display:block}.contact-label-mobile{display:none}.site-contact-button{--contact-roll-bg:var(--ink);overflow:clip}.contact-roll,.profile-menu-roll{display:grid;overflow:clip}.contact-roll__layer{grid-area:1/1}.contact-roll__char{background-color:var(--contact-roll-bg,var(--ink))}.nav-copy-mobile{display:none}.hero-scroll-cue{z-index:var(--z-scroll-cue);color:var(--ink);font-family:var(--font-saans);font-size:var(--text-ui-lg);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:0;pointer-events:none;align-items:center;gap:9px;line-height:1.5;display:inline-flex;position:absolute;bottom:clamp(24px,2vw,34px)}.hero-scroll-cue-left{left:var(--page-gutter)}.hero-scroll-cue-right{right:var(--page-gutter)}.hero-scroll-arrow{font-size:1.08em;line-height:1;display:inline-block;transform:translateY(-.03em)}.bottom-lockup{--lockup-scale:1;z-index:var(--z-nav);pointer-events:none;width:max-content;max-width:none;transform:translateX(-50%) scale(var(--lockup-scale));transform-origin:50% 100%;justify-items:center;row-gap:clamp(8px,.65vw,14px);padding:0 0 clamp(2px,.45vw,6px);display:grid;position:absolute;bottom:0;left:50%;right:auto}.bottom-meta{width:100%;font-family:var(--font-saans);font-size:var(--text-ui-lg);font-weight:var(--weight-semibold);font-variation-settings:normal;color:var(--ink);grid-template-columns:1fr auto 1fr;align-items:start;padding:0;line-height:1.5;display:grid;transform:none}.beam-react-text{font-weight:var(--weight-semibold);font-variation-settings:normal;transform-origin:50% 80%;will-change:transform, filter, color;display:inline-block}.bottom-meta span:first-child{justify-self:start}.bottom-meta span:nth-child(2){justify-self:center}.bottom-meta span:nth-child(3){justify-self:end}.bottom-title{--beam-light-x:50%;--beam-light-width:22vw;width:max-content;height:.78em;color:var(--ink);font-family:var(--font-saans);font-size:var(--text-display-xl);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:0;text-transform:uppercase;white-space:nowrap;justify-content:center;align-items:flex-start;gap:0;margin:0 0 0 -.028em;padding-inline:0;line-height:.76;display:flex;overflow:visible}.title-letter,.title-space{flex:none;display:inline-block}.title-letter{font-weight:var(--weight-bold);font-variation-settings:normal;transform-origin:50% 88%;will-change:transform, filter, color;margin-right:-.018em;position:relative}.bottom-title,.bottom-title .title-letter{font-family:var(--font-saans);font-weight:var(--weight-bold);font-variation-settings:normal}.title-letter.is-in-beam{color:var(--ink)}.title-space{flex:0 0 clamp(22px,2.8vw,58px);width:clamp(22px,2.8vw,58px)}.profile-beam-spill{opacity:0;pointer-events:none;position:fixed}.beam-react-text.is-in-beam{color:var(--ink)}.beam-react-text.is-being-absorbed{color:var(--ink);filter:none}.scene-shell-profile .bottom-lockup{z-index:var(--z-nav);bottom:clamp(168px,18vw,214px)}.profile-beam-spill{z-index:var(--z-beam-spill);width:var(--spill-width,86px);height:var(--spill-height,190px);filter:blur(16px);mix-blend-mode:multiply;background:linear-gradient(oklab(91.7989% -.129298 .112162/.28),oklab(89.6304% -.171425 .144207/.13) 45%,#0000 100%);transition:opacity .12s linear}.profile-beam-spill-left{border-radius:74% 24% 68% 38%;transform:translate(-82%)skew(-11deg)}.profile-beam-spill-right{border-radius:24% 74% 38% 68%;transform:translate(-18%)skew(11deg)}.profile-ticker{--footer-nav-offset:0px;z-index:var(--z-profile-ticker);border-radius:var(--radius-lg);background:var(--surface-card);width:min(700px,100vw - 48px);min-height:98px;color:var(--text-on-dark);transform:translateX(-50%) translateY(var(--footer-nav-offset));pointer-events:auto;padding:0;display:block;position:fixed;bottom:clamp(8px,2vw,18px);left:50%;overflow:visible;box-shadow:0 0 0 1px oklab(100% 0 5.96046e-8/.08)}.about-section{isolation:isolate;min-height:100svh;padding:clamp(72px, 7vw, 112px) var(--page-gutter) clamp(148px, 15vw, 220px);background:var(--page-bg);color:var(--ink);position:relative;overflow:hidden}.about-text-overlay,.asteroid-overlay{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.about-text-overlay{z-index:1}.asteroid-overlay{z-index:2}.about-inner{z-index:0;position:relative}@supports (min-height:100dvh){.about-section{min-height:100dvh}}.about-inner{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;column-gap:clamp(16px,1.6vw,28px);width:100%;max-width:none;margin:0;display:grid}.about-content{flex-direction:column;align-items:flex-start;width:100%;display:flex}.about-title{color:var(--text-muted);font-family:var(--font-saans);font-size:var(--text-eyebrow);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:.02em;text-transform:uppercase;margin:0 0 clamp(20px,2.4vw,40px);line-height:1}.about-description{width:100%;color:var(--ink);font-family:var(--font-saans);font-size:var(--text-title-md);font-style:normal;font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:0;margin:0;line-height:1}@media (width>=2000px){.about-description{font-size:clamp(60px,3vw,76px);line-height:.98}}@media (width>=641px){.about-description{visibility:hidden}}.about-asteroid{flex-direction:column;align-items:stretch;width:100%;min-width:0;padding-top:clamp(40px,6vw,96px);display:flex}.asteroid-stage{aspect-ratio:1;pointer-events:none;width:100%;max-width:760px;margin:0 auto 0 0;position:relative;overflow:hidden}.projects-section{padding:clamp(58px, 7.5vw, 118px) var(--page-gutter) clamp(148px, 14vw, 220px);background:var(--page-bg);color:var(--ink);position:relative;overflow:hidden}.projects-title{color:var(--ink);font-family:var(--font-saans);font-size:var(--text-display-lg);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:0;text-transform:uppercase;justify-content:space-between;align-items:flex-start;gap:clamp(12px,2vw,32px);margin:0 0 clamp(28px,3vw,48px) -.03em;line-height:.72;display:flex}.projects-title-year{white-space:nowrap;flex:none;align-self:flex-start}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,1.5vw,28px);width:100%;display:grid}.project-card{border-radius:var(--radius-lg);background:var(--surface-card);min-width:0;color:var(--text-on-dark);contain:paint;transition:transform .24s var(--ease-out-cubic);grid-template-rows:auto auto auto;padding:clamp(14px,1.15vw,22px);text-decoration:none;display:grid;overflow:hidden}.project-card:hover{transform:translateY(-4px)}.project-card:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.project-media-frame{aspect-ratio:1.42;border-radius:var(--radius-sm);background:var(--surface-media);width:100%;overflow:hidden}.project-liquid-canvas{z-index:2;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.project-media{object-fit:cover;width:100%;height:100%;transform:translate3d(0, var(--project-media-y,0px), 0) scale(1.3);transform-origin:50%;will-change:transform;display:block}.project-media--liquid-ready{opacity:0}@media (prefers-reduced-motion:reduce){.project-media{will-change:auto;transform:none}}.project-meta{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(14px,1.3vw,22px);padding:clamp(18px,1.6vw,26px) clamp(4px,.35vw,8px) clamp(14px,1vw,18px);display:grid}.project-name,.project-type{min-width:0;color:var(--text-on-dark);font-family:var(--font-saans);font-size:var(--text-ui-xl);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:0;align-items:center;line-height:1;display:inline-flex}.project-name{gap:13px}.project-name img{border-radius:var(--radius-pill);background:var(--page-bg);object-fit:cover;flex:none;width:clamp(34px,2.3vw,44px);height:clamp(34px,2.3vw,44px)}.project-name img.project-logo--contain{object-fit:contain}.project-name strong{min-width:0;font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-type{color:var(--text-on-dark-soft);text-align:right;white-space:nowrap;justify-self:end;gap:clamp(18px,1.3vw,28px)}.project-ticker-window{contain:paint;min-width:0;display:flex;position:relative;overflow:hidden}.project-ticker-window:before,.project-ticker-window:after{content:"";z-index:1;pointer-events:none;position:absolute;top:0;bottom:0}.project-ticker-window:before{background:linear-gradient(90deg, var(--chrome-bg), #14141400);width:18px;left:0}.project-ticker-window:after{background:linear-gradient(90deg, #14141400, var(--chrome-bg));width:44px;right:0}.project-ticker-list{color:var(--text-on-dark-soft);font-family:var(--font-lcddot);font-size:var(--text-micro);font-weight:var(--weight-regular);letter-spacing:0;white-space:nowrap;backface-visibility:hidden;will-change:transform;flex:none;align-items:center;gap:11px;padding-right:11px;line-height:16px;animation:28s linear infinite paused ticker-marquee;display:flex;transform:translate(0)}.project-ticker-list span{align-items:center;display:inline-flex}.project-ticker-list span:after{content:","}.projects-see-all{width:fit-content;color:var(--ink);font-family:var(--font-saans);font-size:26px;font-weight:var(--weight-medium);align-items:center;gap:12px;margin:clamp(36px,4vw,64px) auto 0;padding:6px 4px;line-height:38px;text-decoration:none;transition:opacity .18s;display:flex}.projects-see-all svg{transition:transform .22s var(--ease-out-cubic)}.projects-see-all:hover svg,.projects-see-all:focus-visible svg{transform:translate(4px)}.projects-see-all:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:4px}.projects-page{position:relative}.projects-archive{padding:clamp(132px, 15vw, 220px) var(--page-gutter) clamp(120px, 12vw, 180px);background:var(--page-bg);color:var(--ink);position:relative}.projects-archive-title{text-align:center;justify-content:center;margin-bottom:clamp(44px,5.5vw,90px);margin-left:0}.projects-collection-head{color:var(--text-muted);font-family:var(--font-saans);font-size:clamp(14px,1.25vw,19px);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:0;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:clamp(12px,1.2vw,18px);line-height:1;display:flex}.projects-collection{background:var(--ink);border-radius:clamp(20px,2.2vw,34px);padding:clamp(14px,1.5vw,28px)}@supports (color:color-mix(in lab, red, red)){.projects-collection{background:color-mix(in oklab, var(--ink) 7%, var(--page-bg))}}.project-page{position:relative}.project-detail{--qual-card:var(--surface-card);--qual-panel:var(--surface-panel);--qual-fg:var(--text-on-dark-secondary);--qual-muted:var(--text-on-dark-muted);padding:clamp(120px, 14vw, 200px) var(--page-gutter) clamp(120px, 12vw, 180px);background:var(--page-bg)}.project-detail-card{background:var(--qual-card);color:var(--qual-fg);border-radius:clamp(24px,2.4vw,40px);padding:clamp(20px,2.4vw,44px)}.project-detail-title{font-family:var(--font-saans);font-size:var(--text-display-md);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:-.01em;text-align:center;text-transform:uppercase;margin:clamp(8px,1vw,22px) 0 clamp(26px,3vw,52px);line-height:.9}.project-detail-panel{background:var(--qual-panel);border-radius:clamp(18px,1.8vw,30px);padding:clamp(20px,2.4vw,44px)}.project-detail-specs{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:clamp(16px,2.4vw,48px);display:grid}.project-spec{align-content:start;gap:clamp(12px,1.1vw,18px);display:grid}.project-spec--year{text-align:right;justify-items:end}.project-spec--stack{text-align:center;justify-items:center;min-width:0}.project-spec--stack .project-stack{justify-content:center;width:100%}.project-spec-label{color:var(--qual-muted);font-family:var(--font-saans);font-size:clamp(13px,1.1vw,17px);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:.01em;line-height:1}.project-spec-value{color:var(--qual-fg);font-family:var(--font-saans);font-size:clamp(22px,2vw,34px);font-weight:var(--weight-semibold);font-variation-settings:normal;line-height:1}.project-spec-value--type{text-transform:capitalize}.project-stack{flex-wrap:wrap;gap:clamp(8px,.7vw,12px);margin:0;padding:0;list-style:none;display:flex}.project-stack li{border-radius:var(--radius-xs);background:var(--qual-fg);justify-content:center;align-items:center;min-height:clamp(28px,2.2vw,34px);padding:0 clamp(13px,1vw,16px);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.project-stack li{background:color-mix(in oklab, var(--qual-fg) 8%, transparent)}}.project-stack li{color:var(--qual-fg);font-family:var(--font-lcddot);font-size:var(--text-tag);font-weight:var(--weight-regular);letter-spacing:.04em;text-align:center;text-transform:uppercase;line-height:1}.project-summary{gap:clamp(12px,1.2vw,18px);margin-top:clamp(30px,3.4vw,56px);display:grid}.project-summary p{max-width:62ch;color:var(--qual-fg);font-family:var(--font-saans);font-size:var(--text-body-lg);font-weight:var(--weight-medium);font-variation-settings:normal;margin:0;line-height:1.25}.project-actions{flex-wrap:wrap;justify-content:center;gap:16px;margin:clamp(26px,3vw,48px) auto 0;display:flex}.project-visit{border-radius:var(--radius-pill);background:var(--ink);width:fit-content;color:var(--text-on-dark-secondary);box-shadow:0 0 0 4px var(--qual-panel), 0 0 0 5.5px #f5f5f580;font-family:var(--font-saans);font-size:clamp(15px,1.15vw,19px);font-weight:var(--weight-semibold);transition:transform .2s var(--ease-out-cubic);border:1.5px solid #f5f5f5bf;align-items:center;gap:10px;margin:0;padding:14px 26px;line-height:1;text-decoration:none;display:inline-flex}.project-visit svg{transition:transform .2s var(--ease-out-cubic)}.project-visit:hover{transform:translateY(-2px)}.project-visit:hover svg{transform:translate(2px,-2px)}.project-visit:focus-visible{outline:2px solid var(--text-on-dark-secondary);outline-offset:4px}.project-gallery{grid-template-columns:1fr 1fr;gap:clamp(12px,1.2vw,22px);margin-top:clamp(28px,3vw,48px);display:grid}.project-shot{aspect-ratio:1;background:var(--surface-placeholder);border-radius:clamp(10px,1vw,16px);overflow:hidden}.project-shot--lg{aspect-ratio:1.5;grid-column:1/-1}.project-shot img,.project-shot video{object-fit:cover;width:100%;height:100%;display:block}.about-page{background:var(--page-bg);color:var(--ink);position:relative}.ed-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ed-eyebrow{color:var(--text-muted);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:.01em;margin:0;line-height:1}.about-hero{padding:clamp(112px, 13vw, 190px) var(--page-gutter) clamp(76px, 9vw, 132px);background:var(--page-bg);flex-direction:column;gap:clamp(72px,10.5vw,180px);display:flex}.about-hero__word{color:var(--ink);font-family:var(--font-saans);font-size:var(--text-display-xl);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:0;text-transform:uppercase;margin:0 0 auto -.045em;line-height:.72}.about-hero__intro{position:relative}.about-hero__intro .ed-eyebrow{position:absolute;top:.5em;left:0}.about-hero__lead{color:var(--ink);font-family:var(--font-saans);font-size:clamp(24px,3.2vw,50px);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:-.018em;text-indent:clamp(132px,14vw,208px);margin:0;line-height:1.12}@property --p{syntax:"<number>";inherits:true;initial-value:0}.about-trace{background:var(--chrome-bg);height:320svh;color:var(--text-on-dark);position:relative}.about-trace__pin{place-items:center;height:100svh;display:grid;position:sticky;top:0;overflow:hidden}.about-trace__rules{pointer-events:none;flex-direction:column;justify-content:center;gap:clamp(76px,12svh,128px);display:flex;position:absolute;inset:0}.about-trace__rule{background:var(--text-on-dark);height:1px}@supports (color:color-mix(in lab, red, red)){.about-trace__rule{background:color-mix(in oklab, var(--text-on-dark) 24%, transparent)}}.about-trace__rule{transform:scaleX(clamp(0, calc((var(--p) - var(--i) * .015) / .09), 1));transform-origin:0}.about-trace__mark{--mark-stroke:2.8;width:min(44vw,54svh);height:auto;position:relative;overflow:visible}.about-trace__shape{--draw:clamp(0, calc((var(--p) - .1) / .64), 1);fill:var(--text-on-dark);fill-opacity:clamp(0, calc((var(--p) - .76) / .14), 1);stroke:var(--text-on-dark);stroke-width:var(--mark-stroke);stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--draw));stroke-opacity:clamp(0, calc(var(--p) / .05), 1)}.about-trace__eyebrow{top:clamp(88px,11svh,132px);left:var(--page-gutter);color:var(--text-on-dark-muted);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-medium);font-variation-settings:normal;opacity:clamp(0, calc(var(--p) / .08), 1);margin:0;line-height:1;position:absolute}.about-trace__caption{right:var(--page-gutter);max-width:30ch;color:var(--text-on-dark-soft);font-family:var(--font-saans);font-size:var(--text-body-md);font-weight:var(--weight-medium);font-variation-settings:normal;text-align:right;opacity:clamp(0, calc((var(--p) - .8) / .12), 1);margin:0;line-height:1.4;position:absolute;bottom:clamp(152px,20svh,220px)}.about-notes{padding:clamp(112px, 14vw, 200px) var(--page-gutter) clamp(120px, 15vw, 210px);background:var(--page-bg)}.ed-row{border-top:1px solid var(--ink);padding:clamp(38px,4.6vw,72px) 0;position:relative}@supports (color:color-mix(in lab, red, red)){.ed-row{border-top:1px solid color-mix(in oklab, var(--ink) 16%, transparent)}}.ed-row:last-child{border-bottom:1px solid var(--ink)}@supports (color:color-mix(in lab, red, red)){.ed-row:last-child{border-bottom:1px solid color-mix(in oklab, var(--ink) 16%, transparent)}}.ed-row__num,.ed-row__label{color:var(--text-muted);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:.01em;line-height:1;position:absolute;top:calc(clamp(38px,4.6vw,72px) + .5em)}.ed-row__num{left:0}.ed-row__label{left:clamp(64px,9vw,150px)}.ed-row__body{max-width:58ch;color:var(--ink);font-family:var(--font-saans);font-size:clamp(20px,2.3vw,38px);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:-.012em;text-indent:clamp(180px,22vw,340px);margin:0;line-height:1.22}.about-skills{padding:clamp(24px, 3vw, 48px) var(--page-gutter) clamp(120px, 15vw, 210px);background:var(--page-bg)}.about-skills__heading{color:var(--ink);font-family:var(--font-saans);font-size:var(--text-display-md);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:-.02em;text-transform:uppercase;margin:clamp(20px,2.4vw,40px) 0 clamp(56px,7vw,110px) -.035em;line-height:.86}.about-skills__list{border-bottom:1px solid var(--ink);margin:0;padding:0;list-style:none}@supports (color:color-mix(in lab, red, red)){.about-skills__list{border-bottom:1px solid color-mix(in oklab, var(--ink) 16%, transparent)}}.about-skills__row{border-top:1px solid var(--ink);grid-template-columns:clamp(56px,8vw,140px) minmax(0,.58fr) minmax(0,1fr);align-items:baseline;gap:clamp(12px,2.4vw,44px);padding:clamp(20px,2.4vw,38px) 0;display:grid}@supports (color:color-mix(in lab, red, red)){.about-skills__row{border-top:1px solid color-mix(in oklab, var(--ink) 16%, transparent)}}.about-skills__row{transition:padding-left .42s var(--ease-out-quint)}@media (hover:hover) and (pointer:fine){.about-skills__row:hover{padding-left:clamp(8px,1vw,20px)}}.about-skills__num{color:var(--text-muted);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:.01em;line-height:1}.about-skills__name{color:var(--ink);font-family:var(--font-saans);font-size:var(--text-title-sm);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:-.02em;text-transform:uppercase;margin:0;line-height:.94}.about-skills__detail{color:var(--text-muted);font-family:var(--font-saans);font-size:var(--text-body-md);font-weight:var(--weight-medium);font-variation-settings:normal;margin:0;line-height:1.35}@media (prefers-reduced-motion:reduce){.about-trace{--p:1}}@property --skills-lead-gap{syntax:"<length>";inherits:true;initial-value:0}.skills-section{--skills-lead-gap:clamp(92px, 12vw, 180px);--skills-card:var(--surface-card);--skills-panel:var(--surface-panel);--skills-fg:var(--text-on-dark-secondary);--skills-muted:var(--text-on-dark-muted);--skills-line:var(--line-on-dark);padding:clamp(216px, 23vw, 354px) var(--page-gutter) clamp(72px, 9vw, 132px);background:var(--page-bg);color:var(--skills-fg);position:relative;overflow:hidden}.skills-card{--skills-bezel:clamp(13px, 1.35vw, 22px);--skills-radius:clamp(24px, 2.4vw, 36px);--skills-glare-x:26%;--skills-glare-y:6%;z-index:1;width:100%;padding:var(--skills-bezel);border-radius:var(--skills-radius);background:linear-gradient(148deg, oklab(100% 0 5.96046e-8/.1) 0%, transparent 26%), linear-gradient(180deg, white 0%, var(--skills-card) 34%, black 100%);position:relative}@supports (color:color-mix(in lab, red, red)){.skills-card{background:linear-gradient(148deg, oklab(100% 0 5.96046e-8/.1) 0%, transparent 26%), linear-gradient(180deg, color-mix(in oklab, white 9%, var(--skills-card)) 0%, var(--skills-card) 34%, color-mix(in oklab, black 26%, var(--skills-card)) 100%)}}.skills-card{box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.22),inset 0 0 0 1px oklab(100% 0 5.96046e-8/.07),inset 0 -2px 4px oklab(0% none none/.55),0 2px #fff,0 5px 0 -1px #fff,0 9px 0 -3px #000,0 13px 0 -6px #000,0 26px 40px -20px #00000085,0 64px 90px -50px #00000070}@supports (color:color-mix(in lab, red, red)){.skills-card{box-shadow:inset 0 1px 0 oklab(100% 0 5.96046e-8/.22), inset 0 0 0 1px oklab(100% 0 5.96046e-8/.07), inset 0 -2px 4px oklab(0% none none/.55), 0 2px 0 color-mix(in oklab, white 20%, var(--skills-card)), 0 5px 0 -1px color-mix(in oklab, white 6%, var(--skills-card)), 0 9px 0 -3px color-mix(in oklab, black 55%, var(--skills-card)), 0 13px 0 -6px color-mix(in oklab, black 78%, var(--skills-card)), 0 26px 40px -20px oklab(0% none none/.52), 0 64px 90px -50px oklab(0% none none/.44)}}.skills-card:after{content:"";top:calc(var(--skills-bezel) / 2);aspect-ratio:1;background:radial-gradient(circle at 34% 30%,oklab(100% 0 5.96046e-8/.34),oklab(0% none none/.88) 62%);border-radius:50%;width:clamp(5px,.5vw,8px);position:absolute;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px oklab(100% 0 5.96046e-8/.09)}.skills-screen{border-radius:calc(var(--skills-radius) - var(--skills-bezel));background:radial-gradient(120% 80% at 50% -10%,oklab(100% 0 5.96046e-8/.05),#0000 60%),#000;padding-bottom:clamp(30px,2.6vw,44px);position:relative}@supports (color:color-mix(in lab, red, red)){.skills-screen{background:radial-gradient(120% 80% at 50% -10%, oklab(100% 0 5.96046e-8/.05), transparent 60%), color-mix(in oklab, black 42%, var(--skills-card))}}.skills-screen{overflow:hidden;box-shadow:inset 0 0 0 1px oklab(100% 0 5.96046e-8/.06),inset 0 3px 16px oklab(0% none none/.7),0 0 0 1px oklab(0% none none/.7),0 0 34px -8px oklab(100% 0 5.96046e-8/.1)}.skills-screen:before{content:"";z-index:2;pointer-events:none;background:linear-gradient(118deg,#0000 16%,oklab(100% 0 5.96046e-8/.03) 30%,oklab(100% 0 5.96046e-8/.05) 38%,#0000 54%),repeating-linear-gradient(90deg,oklab(100% 0 5.96046e-8/.03) 0 1px,#0000 1px 3px),repeating-linear-gradient(0deg,oklab(0% none none/.15) 0,oklab(0% none none/.15) 1px,#0000 1px 3px),radial-gradient(118% 92% at 50% 44%,#0000 54%,oklab(0% none none/.38) 100%);position:absolute;inset:0}.skills-screen:after{content:"";z-index:4;border-radius:var(--radius-pill);background:oklab(100% 0 5.96046e-8/.24);width:clamp(92px,9vw,150px);height:5px;position:absolute;bottom:clamp(11px,1vw,16px);left:50%;transform:translate(-50%)}.skills-glare{z-index:3;pointer-events:none;opacity:0;background:radial-gradient(38% 44% at var(--skills-glare-x) var(--skills-glare-y), oklab(100% 0 5.96046e-8/.14), transparent 72%);transition:opacity .42s var(--ease-out-cubic);position:absolute;inset:0}.skills-card.is-lit .skills-glare{opacity:1}.skills-screen.is-awake .skills-glare{animation:skills-power-on .76s var(--ease-out-cubic)}@keyframes skills-power-on{0%{opacity:0}12%{opacity:.95}26%{opacity:.12}40%{opacity:.72}to{opacity:0}}.skills-statusbar{z-index:1;color:var(--skills-fg);border-bottom:1px solid oklab(100% 0 5.96046e-8/.07);justify-content:space-between;align-items:center;gap:12px;padding:clamp(8px,.8vw,13px) clamp(16px,1.7vw,28px);display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.skills-statusbar{color:color-mix(in oklab, var(--skills-fg) 60%, transparent)}}.skills-statusbar{font-family:var(--font-lcddot);letter-spacing:.1em;font-size:clamp(11px,.85vw,14px);line-height:1}.skills-status-meta{align-items:center;gap:clamp(8px,.9vw,14px);display:flex}.skills-signal{align-items:flex-end;gap:2px;height:11px;display:flex}.skills-signal i{background:currentColor;border-radius:1px;width:2px}.skills-signal i:first-child{height:32%}.skills-signal i:nth-child(2){height:55%}.skills-signal i:nth-child(3){height:78%}.skills-signal i:nth-child(4){opacity:.35;height:100%}.skills-battery{border:1px solid;border-radius:3px;width:22px;height:11px;position:relative}.skills-battery:before{content:"";background:currentColor;border-radius:1px;width:62%;position:absolute;top:1.5px;bottom:1.5px;left:1.5px}.skills-battery:after{content:"";background:currentColor;border-radius:0 1px 1px 0;width:2px;height:4px;margin-left:1.5px;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.skills-ui{z-index:1;padding:clamp(22px,2.3vw,38px) clamp(20px,2.2vw,36px) 0;position:relative}.skills-statusbar,.skills-ui{transition:opacity .52s var(--ease-out-cubic) .12s}.skills-screen.is-sleeping .skills-statusbar,.skills-screen.is-sleeping .skills-ui{opacity:0}.skills-hand{pointer-events:none;width:100%;height:clamp(360px,46vw,680px);display:block;position:absolute;top:0;left:0}.skills-hand--back{z-index:0}.skills-hand--front{z-index:2}.skills-head{margin-bottom:clamp(72px,8vw,136px)}.skills-eyebrow{color:var(--skills-muted);font-family:var(--font-saans);font-size:clamp(13px,1.25vw,18px);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:.04em;text-transform:uppercase;margin:0 0 clamp(14px,1.5vw,24px);line-height:1}.skills-lead{max-width:24em;color:var(--skills-fg);font-family:var(--font-saans);font-size:var(--text-title-lg);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:-.01em;margin:0;line-height:1.06}.skills-list{background:var(--skills-panel);border-radius:clamp(18px,1.8vw,28px);margin:0;padding:0;list-style:none;overflow:hidden}.skills-row{transition:background-color .26s var(--ease-out-cubic), opacity .46s var(--ease-out-cubic), transform .46s var(--ease-out-cubic);transition-delay:0s, calc(var(--row-index,0) * 55ms + .24s), calc(var(--row-index,0) * 55ms + .24s);grid-template-columns:clamp(48px,5vw,76px) minmax(0,1fr);column-gap:clamp(16px,1.6vw,28px);padding:clamp(22px,2.4vw,38px) clamp(20px,2.4vw,40px);display:grid}.skills-screen.is-sleeping .skills-row{opacity:0;transform:translateY(12px)}@media (hover:hover) and (pointer:fine){.skills-row:hover{background-color:oklab(100% 0 5.96046e-8/.07)}.skills-row:hover .skills-num{color:var(--beam-green);text-shadow:0 0 12px var(--beam-green)}@supports (color:color-mix(in lab, red, red)){.skills-row:hover .skills-num{text-shadow:0 0 12px color-mix(in oklab, var(--beam-green) 55%, transparent)}}}.skills-row+.skills-row{border-top:1px solid var(--skills-line)}.skills-num{color:var(--skills-muted);transition:color .26s var(--ease-out-cubic), text-shadow .26s var(--ease-out-cubic);font-family:var(--font-lcddot);font-size:clamp(16px,1.5vw,22px);line-height:1.1}.skills-content{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:clamp(8px,1vw,20px);display:flex}.skills-name{color:var(--skills-fg);font-family:var(--font-saans);font-size:var(--text-title-sm);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:-.02em;margin:0;line-height:1.05}.skills-detail{color:var(--skills-muted);font-family:var(--font-saans);font-size:var(--text-body-md);font-weight:var(--weight-medium);font-variation-settings:normal;margin:0;line-height:1.3}.about-hobbies{padding:clamp(92px, 12vw, 180px) var(--page-gutter) clamp(140px, 15vw, 220px);background:var(--page-bg)}.about-hobbies-heading{max-width:16ch;font-family:var(--font-saans);font-size:clamp(48px,7.2vw,124px);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:-.035em;margin:0 0 clamp(56px,7vw,116px);line-height:.92}.hobby-field{position:relative}.hobby-canvas{z-index:0;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .52s var(--ease-out-cubic);display:block;position:absolute;inset:0}.hobby-canvas.is-ready{opacity:1}.hobby-grid{--hobby-rule:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hobby-grid{--hobby-rule:color-mix(in oklab, var(--ink) 16%, transparent)}}.hobby-grid{border:1px solid var(--hobby-rule);background:var(--hobby-rule);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;padding:0;list-style:none;display:grid}.hobby-cell{background:var(--page-bg);flex-direction:column;padding:clamp(16px,1.6vw,28px);display:flex}.hobby-cell__stage{aspect-ratio:1}.hobby-cell__footer{justify-content:space-between;align-items:baseline;gap:clamp(10px,1vw,18px);margin-top:clamp(10px,1.1vw,20px);display:flex}.hobby-cell__title{color:var(--ink);font-family:var(--font-saans);font-size:clamp(16px,1.6vw,28px);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:-.015em;margin:0;line-height:1.1}.hobby-cell__number{color:var(--text-muted);font-family:var(--font-saans);font-size:var(--text-tag);font-weight:var(--weight-medium);font-variation-settings:normal;line-height:1}.qualifications-section{--qual-card:var(--surface-card);--qual-panel:var(--surface-panel);--qual-fg:var(--text-on-dark-secondary);--qual-muted:var(--text-on-dark-muted);--qual-line:var(--line-on-dark);padding:clamp(216px, 23vw, 354px) var(--page-gutter) clamp(72px, 9vw, 132px);background:var(--page-bg);color:var(--qual-fg);position:relative;overflow:hidden}.qual-card{z-index:1;background:var(--qual-card);border-radius:clamp(24px,2.4vw,36px);width:100%;padding:clamp(24px,2.6vw,44px);position:relative}.qual-hand{pointer-events:none;width:100%;height:clamp(360px,46vw,680px);display:block;position:absolute;top:0;left:0}.qual-hand--back{z-index:0}.qual-hand--front{z-index:2}.qual-head{margin-bottom:clamp(72px,8vw,136px)}.qual-eyebrow{color:var(--qual-muted);font-family:var(--font-saans);font-size:clamp(13px,1.25vw,18px);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:.04em;text-transform:uppercase;margin:0 0 clamp(14px,1.5vw,24px);line-height:1}.qual-lead{max-width:24em;color:var(--qual-fg);font-family:var(--font-saans);font-size:var(--text-title-lg);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:-.01em;margin:0;line-height:1.06}.qual-list{background:var(--qual-panel);border-radius:clamp(18px,1.8vw,28px);margin:0;padding:0;list-style:none;overflow:hidden}.qual-row{outline:none;grid-template-columns:clamp(48px,5vw,76px) minmax(0,1fr);column-gap:clamp(16px,1.6vw,28px);padding:clamp(22px,2.4vw,38px) clamp(20px,2.4vw,40px) clamp(14px,1.4vw,22px);transition:background-color .35s;display:grid}.qual-row+.qual-row{border-top:1px solid var(--qual-line)}.qual-row.is-active{background:var(--qual-fg)}@supports (color:color-mix(in lab, red, red)){.qual-row.is-active{background:color-mix(in oklab, var(--qual-fg) 5%, transparent)}}.qual-numcol{align-self:stretch;position:relative}.qual-num{z-index:1;color:var(--qual-muted);font-family:var(--font-lcddot);font-size:clamp(20px,1.9vw,30px);font-weight:var(--weight-regular);letter-spacing:.06em;align-items:flex-start;gap:clamp(1px,.2vw,3px);line-height:1;transition:color .35s;display:inline-flex;position:relative}.qual-digit{will-change:transform;display:inline-block}.qual-row.is-active .qual-num{color:var(--beam-green)}.qual-content{padding-left:clamp(24px,3vw,56px);position:relative}.qual-content:before{content:"";background:var(--qual-line);width:1px;transition:background-color .35s;position:absolute;top:2px;bottom:2px;left:0}.qual-row.is-active .qual-content:before{background:var(--beam-green)}.qual-row-head{flex-direction:column;justify-content:center;min-height:clamp(112px,12vw,168px);padding-bottom:clamp(26px,2.6vw,40px);display:flex}.qual-name{color:var(--qual-fg);font-family:var(--font-saans);font-size:var(--text-title-sm);font-weight:var(--weight-semibold);font-variation-settings:normal;letter-spacing:-.01em;margin:0;line-height:1.04}.qual-tag{color:var(--qual-muted);font-family:var(--font-saans);font-size:clamp(11px,.95vw,15px);font-weight:var(--weight-medium);font-variation-settings:normal;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;align-items:center;gap:8px;line-height:1;text-decoration:none;transition:color .35s;display:inline-flex;position:absolute;bottom:0;right:0}.qual-tag svg{width:clamp(15px,1.1vw,18px);height:clamp(15px,1.1vw,18px);transition:transform .35s}.qual-row.is-active .qual-tag{color:var(--beam-green)}.qual-row.is-active .qual-tag svg{transform:translate(4px)}.qual-details{height:0;overflow:hidden}.qual-details-inner{gap:clamp(14px,1.4vw,22px);padding:clamp(2px,.5vw,8px) 0 clamp(8px,1vw,14px);display:grid}.qual-detail-group{grid-template-columns:clamp(82px,8vw,124px) minmax(0,1fr);align-items:start;gap:clamp(12px,1.4vw,24px);display:grid}.qual-detail-label{color:var(--qual-muted);font-family:var(--font-saans);font-size:clamp(11px,.95vw,14px);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;line-height:1.5}.qual-skills{flex-wrap:wrap;gap:clamp(8px,.7vw,12px);margin:0;padding:0;list-style:none;display:flex}.qual-skills li{border-radius:var(--radius-xs);background:var(--qual-fg);justify-content:center;align-items:center;min-height:clamp(28px,2.2vw,34px);padding:0 clamp(13px,1vw,16px);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.qual-skills li{background:color-mix(in oklab, var(--qual-fg) 8%, transparent)}}.qual-skills li{color:var(--qual-fg);font-family:var(--font-lcddot);font-size:var(--text-tag);font-weight:var(--weight-regular);letter-spacing:.04em;text-align:center;text-transform:uppercase;line-height:1}.qual-detail-value{color:var(--qual-fg);font-family:var(--font-saans);font-size:var(--text-body-md);font-weight:var(--weight-medium);line-height:1.4}.tech-stack-section{isolation:isolate;--bh-gap:16px;--bh-top-nudge:.12em;background:var(--page-bg);color:var(--ink);position:relative;overflow:hidden}.tech-stack-pin{width:100%;height:100svh;position:relative}@supports (height:100lvh){.tech-stack-pin{height:100lvh}}.tech-stack-stage{z-index:0;pointer-events:none;height:91svh;position:absolute;top:50svh;left:0;right:0;transform:translateY(-50%)}@supports (top:50dvh){.tech-stack-stage{top:50dvh}}.tech-stack-canvas{width:100%;height:100lvh;display:block;position:absolute;top:50%;left:0;transform:translateY(-50%)}.tech-stack-title{color:var(--ink);font-family:var(--font-saans);font-weight:var(--weight-bold);font-variation-settings:normal;text-transform:uppercase;margin:0}.tech-stack-word{white-space:nowrap;text-align:center;letter-spacing:-.01em;line-height:.82;font-size:min(clamp(46px, 9.5vw, 176px), calc((100vw - (var(--page-gutter) * 2)) / 5.9));pointer-events:auto;display:block;position:absolute;left:50%;transform:translate(-50%)}.tech-stack-word--top{bottom:calc(50% + var(--bh-radius,29%) + var(--bh-gap,16px) + var(--bh-top-nudge,.12em))}.tech-stack-word--bottom{top:calc(50% + var(--bh-radius,29%) + var(--bh-gap,16px))}.tech-stack-depth{z-index:1;opacity:0;pointer-events:none;will-change:opacity;width:100%;height:100lvh;display:block;position:absolute;top:50svh;left:0;right:0;transform:translateY(-50%)}.tech-stack-debris{z-index:2;pointer-events:none;width:100%;height:100lvh;display:block;position:absolute;top:50svh;left:0;right:0;transform:translateY(-50%)}@supports (top:50dvh){.tech-stack-depth,.tech-stack-debris{top:50dvh}}@media (prefers-reduced-motion:reduce){.tech-stack-debris{display:none}}.tech-stack-grid{z-index:2;pointer-events:none;perspective:900px;perspective-origin:50%;transform-style:preserve-3d;margin:0;padding:0;list-style:none;display:block;position:absolute;inset:0}.tech-tile{aspect-ratio:16/9;border:1px solid var(--page-bg);place-items:center;width:clamp(150px,19vw,250px);display:grid;position:absolute;top:50%;left:50%}@supports (color:color-mix(in lab, red, red)){.tech-tile{border:1px solid color-mix(in oklab, var(--page-bg) 24%, transparent)}}.tech-tile{border-radius:var(--radius-md);opacity:0;transform-style:preserve-3d;backface-visibility:hidden;will-change:opacity, transform;background-color:#0d0e14d1;background-image:linear-gradient(155deg,#ffffff1a,#ffffff05 55%,#fff0 100%);transform:translate(-50%,-50%)translateZ(-2400px);box-shadow:0 14px 34px #00000080,inset 0 1px #ffffff1f}.tech-tile__icon{object-fit:contain;pointer-events:none;user-select:none;width:72%;height:66%}@media (prefers-reduced-motion:reduce){.tech-stack-section{flex-direction:column;justify-content:center;align-items:center;padding-block:clamp(54px,10vw,110px);display:flex}.tech-stack-pin{height:auto}.tech-stack-stage{aspect-ratio:1;width:100%;max-width:720px;height:auto;margin-inline:auto;position:relative;inset:auto;transform:none}.tech-stack-canvas{height:100%;position:static;transform:none}.tech-stack-depth{display:none}.tech-stack-grid{width:min(1100px,92vw);padding:var(--page-gutter);perspective:none;opacity:1;pointer-events:auto;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;justify-items:center;gap:clamp(16px,3vw,40px);margin:clamp(40px,8vw,80px) auto 0;display:grid;position:static;inset:auto}.tech-tile{opacity:1;width:100%;max-width:280px;position:static;top:auto;left:auto;transform:none}}@media (width<=640px) and (prefers-reduced-motion:no-preference){.tech-tile{border-radius:13px;width:clamp(116px,34vw,180px)}}.profile-ticker:before{content:"";border-radius:var(--radius-pill);background:radial-gradient(ellipse at var(--bar-beam-x,50%) 0, oklab(93.0707% -.106662 .096549/.56) 0 16%, var(--beam-green) 30%, transparent 64%);height:18px;position:absolute;top:-1px;left:20px;right:20px}@supports (color:color-mix(in lab, red, red)){.profile-ticker:before{background:radial-gradient(ellipse at var(--bar-beam-x,50%) 0, oklab(93.0707% -.106662 .096549/.56) 0 16%, color-mix(in oklab, var(--beam-green) 26%, transparent) 30%, transparent 64%)}}.profile-ticker:before{filter:blur(8px);opacity:var(--bar-beam-opacity,0);pointer-events:none}.profile-ticker:after{content:"";background:radial-gradient(ellipse at var(--bar-beam-x,50%) 100%, oklab(93.1692% -.105283 .0979868/.26) 0 16%, var(--beam-green) 32%, transparent 68%);height:58px;position:absolute;inset:-34px -38px auto}@supports (color:color-mix(in lab, red, red)){.profile-ticker:after{background:radial-gradient(ellipse at var(--bar-beam-x,50%) 100%, oklab(93.1692% -.105283 .0979868/.26) 0 16%, color-mix(in oklab, var(--beam-green) 12%, transparent) 32%, transparent 68%)}}.profile-ticker:after{filter:blur(18px);opacity:var(--bar-beam-opacity,0);mix-blend-mode:multiply;pointer-events:none}.profile-menu-drawer{visibility:hidden;height:0;overflow:hidden}.profile-menu-panel{display:block}.profile-menu-header{justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 20px 24px;display:flex}.profile-menu-socials{gap:4px;margin:0;padding:0;list-style:none;display:grid}.profile-menu-socials a{color:var(--text-on-dark);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-medium);letter-spacing:0;opacity:.72;transition:opacity .18s var(--ease-out-quint);line-height:1.35;text-decoration:none}.profile-menu-socials a:hover,.profile-menu-socials a:focus-visible{opacity:1}.profile-menu-socials a:focus-visible{outline-offset:3px;border-radius:var(--radius-xs);outline:2px solid oklab(100% 0 5.96046e-8/.74)}.profile-menu-contact.site-contact-button{--contact-roll-bg:var(--text-on-dark);border-radius:var(--radius-pill);background:var(--text-on-dark);min-height:46px;color:var(--ink);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-semibold);letter-spacing:0;white-space:nowrap;flex:none;justify-content:center;align-items:center;padding:0 24px;line-height:1;text-decoration:none;display:inline-flex;overflow:clip}.profile-menu-contact.site-contact-button:focus-visible{outline-offset:3px;outline:2px solid oklab(100% 0 5.96046e-8/.74)}.profile-menu-list{border-bottom:1px solid var(--line-on-dark);padding:0;display:block}.profile-menu-link{--contact-roll-bg:var(--surface-card);border-top:1px solid var(--line-on-dark);min-height:80px;color:var(--text-on-dark);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-semibold);letter-spacing:0;transition:background-color .2s var(--ease-out-quint);border-radius:0;grid-template-columns:106px minmax(0,1fr);align-items:center;gap:clamp(22px,4vw,34px);padding:8px 20px;line-height:1;text-decoration:none;display:grid}.profile-menu-link:hover,.profile-menu-link:focus-visible{color:var(--text-on-dark);background-color:oklab(100% 0 5.96046e-8/.05)}.profile-menu-link:focus-visible{outline-offset:-3px;outline:2px solid oklab(100% 0 5.96046e-8/.74)}.profile-menu-link[aria-current=page]{color:var(--text-on-dark-muted)}.profile-menu-thumb{background:oklch(94% 0 0);border-radius:0;place-items:center;width:106px;height:80px;display:grid;overflow:hidden}.profile-menu-thumb img{object-fit:cover;width:100%;height:100%;display:block}.profile-menu-thumb--light{background:var(--page-bg)}.profile-menu-thumb--light img{object-fit:contain;padding:8px}.profile-menu-label{overflow-wrap:anywhere;min-width:0}.profile-ticker-row{z-index:1;grid-template-columns:80px minmax(0,1fr) 46px;align-items:center;column-gap:14px;min-height:98px;padding:9px 18px 9px 9px;display:grid;position:relative}.profile-avatar{object-fit:cover;border-radius:13px;width:80px;height:80px;display:block}.profile-copy{gap:13px;min-width:0;padding-left:0;display:grid;overflow:hidden}.profile-copy strong{color:var(--text-on-dark);font-family:var(--font-saans);font-size:var(--text-ui-md);font-weight:var(--weight-semibold);white-space:nowrap;line-height:1}.ticker-window{min-width:0;display:flex;overflow:hidden;mask-image:linear-gradient(90deg,#0000 0,#000 18px calc(100% - 44px),#0000 100%)}.ticker-list{color:var(--text-on-dark-soft);font-family:var(--font-lcddot);font-size:var(--text-micro);font-weight:var(--weight-regular);letter-spacing:0;white-space:nowrap;backface-visibility:hidden;will-change:transform;flex:none;align-items:center;gap:11px;padding-right:11px;line-height:16px;animation:28s linear infinite paused ticker-marquee;display:flex;transform:translate(0)}.ticker-list span{align-items:center;display:inline-flex}.ticker-list span:after{content:","}.profile-menu{border-radius:var(--radius-pill);width:42px;height:42px;color:var(--text-on-dark);cursor:pointer;background:0 0;border:0;justify-self:end;place-items:center;display:inline-grid;position:relative}.profile-menu:before{content:"";border-radius:inherit;opacity:0;background:oklab(100% 0 5.96046e-8/.05);transition:opacity .16s;position:absolute;inset:2px}.profile-menu:hover:before,.profile-ticker.is-menu-open .profile-menu:before{opacity:1}.profile-menu span{border-radius:var(--radius-pill);background:currentColor;width:22px;height:2px;transition:transform .18s,opacity .18s;display:block;position:absolute}.profile-menu span:first-child{transform:translateY(-7px)}.profile-menu span:nth-child(2){transform:translateY(0)}.profile-menu span:nth-child(3){transform:translateY(7px)}@keyframes ticker-marquee{0%{transform:translate(0)}to{transform:translate(-100%)}}@media (width<=640px){.site-nav{padding:40px var(--page-gutter) 0;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:14px;position:absolute}.hero-scroll-cue,.nav-item-center,.nav-copy-desktop{display:none}.nav-copy-mobile{display:inline}.contact-label-desktop{display:none}.contact-label-mobile{display:inline}.nav-item strong,.nav-item>span{font-size:clamp(18px,4.6vw,21px);line-height:1.2}.site-contact-button{border-radius:var(--radius-pill);min-width:122px;min-height:48px;padding:0 18px;font-size:16px;line-height:1}.scene-shell-profile .bottom-lockup{z-index:var(--z-nav);transform-origin:50% 0;row-gap:clamp(214px,32svh,306px);width:100%;max-width:none;padding:0 6px;display:grid;position:absolute;inset:clamp(150px,17svh,168px) 0 auto;transform:none}.bottom-meta{text-align:center;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%;padding:0 6px;font-size:clamp(18px,4.5vw,21px);line-height:1.5}.bottom-meta span:first-child{justify-self:start}.bottom-meta span:nth-child(2){justify-self:center}.bottom-meta span:nth-child(3){justify-self:end}.bottom-title{white-space:normal;flex-wrap:wrap;justify-content:center;align-items:flex-start;width:100%;max-width:100%;height:auto;margin-left:0;font-size:clamp(72px,20vw,96px);line-height:.77;display:flex}.title-space{flex:0 0 100%;width:100%;height:0}.profile-ticker{border-radius:var(--radius-md);width:calc(100vw - 36px);min-height:78px;position:fixed;bottom:12px}.profile-ticker-row{grid-template-columns:62px minmax(0,1fr) 32px;column-gap:12px;min-height:78px;padding:8px 14px 8px 8px}.about-section{padding:clamp(52px, 14vw, 76px) var(--page-gutter) clamp(128px, 34vw, 168px)}.about-inner{grid-template-columns:1fr;row-gap:clamp(28px,8vw,44px)}.about-description{white-space:normal;font-size:clamp(25px,6.7vw,31px);line-height:1.03}.about-break{display:none}.asteroid-stage{max-width:320px;margin:0 auto}.projects-section{padding:clamp(54px, 14vw, 82px) var(--page-gutter) clamp(132px, 34vw, 174px)}.projects-title{gap:8px;margin-bottom:clamp(22px,7vw,34px);font-size:clamp(40px,11.5vw,78px);line-height:.78}.projects-grid{grid-template-columns:1fr;gap:18px}.project-card{border-radius:var(--radius-md);padding:12px}.project-media-frame{aspect-ratio:1.18;border-radius:10px}.project-meta{grid-template-columns:1fr;gap:13px;padding:17px 4px 13px}.project-name,.project-type{width:100%;font-size:clamp(19px,5.1vw,23px)}.project-name img{width:38px;height:38px}.project-type{justify-content:space-between;justify-self:stretch;gap:16px}.project-ticker-list{font-size:14px;line-height:17px}.project-ticker-window:before{width:12px}.project-ticker-window:after{width:28px}.projects-archive{padding:clamp(148px, 38vw, 196px) var(--page-gutter) clamp(124px, 30vw, 168px)}.projects-collection{border-radius:var(--radius-lg);padding:10px}.project-detail{padding:clamp(188px, 48vw, 248px) var(--page-gutter) clamp(124px, 30vw, 168px)}.project-detail-card,.project-detail-panel{padding:clamp(16px,4.5vw,26px)}.project-detail-title{margin-bottom:clamp(22px,7vw,36px);font-size:clamp(34px,13vw,76px)}.project-detail-specs{grid-template-columns:1fr;gap:clamp(18px,5vw,26px)}.project-spec--year{text-align:left;justify-items:start}.project-spec--stack .project-stack{justify-content:center}.project-summary p{font-size:clamp(16px,4.4vw,20px)}.project-shot--lg{aspect-ratio:1.3}.about-hero{padding:clamp(132px, 34vw, 172px) var(--page-gutter) clamp(124px, 31vw, 158px);gap:clamp(48px,16vw,88px)}.about-hero__word{font-size:clamp(72px,23vw,124px)}.about-hero__intro .ed-eyebrow{margin-bottom:clamp(14px,4vw,22px);position:static}.about-hero__lead{text-indent:0;font-size:clamp(22px,6.4vw,30px)}.about-trace{height:260svh}.about-trace__rules{gap:clamp(52px,9svh,84px)}.about-trace__mark{--mark-stroke:4.5;width:min(68vw,42svh)}.about-trace__eyebrow{top:clamp(72px,12svh,104px)}.about-trace__caption{bottom:clamp(136px,19svh,184px);right:auto;left:var(--page-gutter);max-width:none;padding-right:var(--page-gutter);text-align:left}.about-notes{padding:clamp(84px, 24vw, 124px) var(--page-gutter) clamp(96px, 28vw, 148px)}.ed-row{padding:clamp(28px,8vw,44px) 0}.ed-row__num,.ed-row__label{position:static}.ed-row__label{margin-left:1.2em}.ed-row__body{text-indent:0;max-width:none;margin-top:clamp(14px,4vw,22px);font-size:clamp(19px,5.6vw,26px)}.about-skills{padding:0 var(--page-gutter) clamp(96px, 28vw, 148px)}.about-skills__heading{margin-bottom:clamp(36px,11vw,58px);font-size:clamp(44px,14vw,72px)}.about-skills__row{grid-template-columns:clamp(38px,11vw,52px) minmax(0,1fr);align-items:start;gap:8px clamp(10px,3vw,16px);padding:clamp(18px,5vw,26px) 0}.about-skills__detail{grid-column:2}.about-hobbies{padding:clamp(84px, 24vw, 124px) var(--page-gutter) clamp(132px, 36vw, 184px)}.about-hobbies-heading{margin-bottom:clamp(40px,12vw,64px);font-size:clamp(44px,14vw,72px)}.hobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qualifications-section{padding:clamp(40px, 12vw, 72px) var(--page-gutter) clamp(48px, 14vw, 92px)}.qual-card{border-radius:clamp(20px,5vw,28px);padding:clamp(16px,4.5vw,26px)}.qual-head{margin-bottom:clamp(40px,10vw,64px)}.qual-eyebrow{margin-bottom:clamp(12px,3.5vw,20px);font-size:clamp(12px,3.2vw,15px)}.qual-lead{max-width:none;font-size:clamp(24px,6.6vw,38px)}.qual-list{border-radius:clamp(16px,4vw,22px);padding:0}.qual-row{grid-template-columns:clamp(40px,11vw,56px) minmax(0,1fr);column-gap:clamp(10px,3vw,18px);padding:clamp(18px,5vw,28px) clamp(14px,4vw,22px) clamp(12px,3vw,18px)}.qual-num{min-width:clamp(32px,9vw,48px);font-size:clamp(16px,5vw,24px)}.qual-content{padding-left:clamp(16px,4.5vw,28px)}.qual-row-head{min-height:clamp(88px,24vw,124px);padding-bottom:clamp(22px,6vw,30px)}.qual-name{font-size:clamp(22px,6.4vw,34px)}.qual-tag{gap:6px;font-size:clamp(10px,2.8vw,13px)}.qual-tag svg{width:clamp(13px,3.6vw,16px);height:clamp(13px,3.6vw,16px)}.qual-details-inner{gap:clamp(12px,3.5vw,18px);padding-bottom:clamp(6px,2vw,12px)}.qual-detail-group{grid-template-columns:1fr;gap:clamp(8px,2.5vw,12px)}.qual-skills{gap:6px}.qual-skills li{border-radius:var(--radius-xs);min-height:26px;padding:0 9px;font-size:clamp(9px,2.45vw,11px)}.qual-detail-value{font-size:clamp(14px,3.8vw,17px)}.tech-stack-word{font-size:min(clamp(28px, 11vw, 72px), calc((100vw - (var(--page-gutter) * 2)) / 5.9))}.profile-menu-header{gap:16px;padding:16px 14px 18px}.profile-menu-socials{gap:2px}.profile-menu-socials a{font-size:clamp(15px,3.9vw,17px)}.profile-menu-contact.site-contact-button{min-height:38px;padding:0 18px;font-size:clamp(15px,3.9vw,17px)}.profile-menu-link{grid-template-columns:83px minmax(0,1fr);gap:18px;min-height:62px;padding:6px 14px;font-size:clamp(20px,5.1vw,23px)}.profile-menu-thumb{border-radius:0;width:83px;height:62px}.profile-avatar{border-radius:10px;width:62px;height:62px}.profile-copy{gap:10px}.profile-copy strong{font-size:clamp(20px,5.1vw,23px)}.ticker-list{font-size:14px;line-height:17px}.ticker-window{mask-image:linear-gradient(90deg,#0000 0,#000 12px calc(100% - 28px),#0000 100%)}.profile-menu{width:34px;height:34px}.profile-menu span{width:18px;height:2px}.profile-menu span:first-child{transform:translateY(-6px)}.profile-menu span:nth-child(3){transform:translateY(6px)}}@supports (-webkit-touch-callout:none){@media (hover:none) and (pointer:coarse){.profile-ticker{z-index:var(--z-fixed-nav);transform:translateX(-50%) translateY(var(--footer-nav-offset)) translateZ(0);position:fixed}.bottom-pill-nav,[data-bottom-nav]{z-index:var(--z-fixed-nav);position:fixed;transform:translateZ(0)}}@media (width<=640px) and (hover:none) and (pointer:coarse){.profile-ticker{bottom:max(12px, calc(env(safe-area-inset-bottom,0px) - 24px));transition:bottom .26s}}}.transition{z-index:var(--z-transition);pointer-events:none;position:fixed;inset:0;overflow:clip}.transition__panel{color:var(--surface-card);visibility:hidden;background-color:currentColor;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:100%;left:0}.transition__panel-top{transform-origin:bottom;flex-flow:column;align-items:center;width:100%;height:0%;display:flex;position:absolute;bottom:calc(100% - 1px);left:0;overflow:hidden}.transition__panel-bottom{transform-origin:top;flex-flow:column;justify-content:flex-end;align-items:center;width:100%;height:0%;display:flex;position:absolute;top:calc(100% - 1px);left:0;overflow:hidden}.transition__panel-circle{aspect-ratio:auto;background-color:currentColor;border-radius:50%;width:125%;height:500%;position:absolute}.transition__logo{color:var(--text-on-dark-secondary);opacity:0;font-family:var(--font-saans);font-weight:var(--weight-bold);font-size:var(--text-display-sm);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;line-height:1;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.transition__logo span{will-change:transform;display:inline-block}.transition__logo-space{width:.42em}@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-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.glass-cursor[data-astro-cid-34mcvkgq]{z-index:2;mix-blend-mode:screen;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}@media (hover:none),(pointer:coarse){.glass-cursor[data-astro-cid-34mcvkgq]{display:none}}.site-footer[data-astro-cid-yvkg62gd]{--footer-top-gap:clamp(72px, 10.2svh, 132px);min-height:100svh;padding:var(--footer-top-gap) 0 0;background:var(--page-bg);color:var(--text-on-dark-secondary);align-items:flex-end;display:flex;position:relative;overflow:hidden}.footer-card[data-astro-cid-yvkg62gd]{--footer-card:var(--surface-card);--footer-muted:var(--text-on-dark-muted);--footer-grid-gutter:var(--page-gutter);isolation:isolate;width:100%;min-height:calc(100svh - var(--footer-top-gap));padding:clamp(74px, 6.4vw, 116px) var(--footer-grid-gutter) clamp(18px, 2.2vw, 42px);background:var(--footer-card);border-radius:clamp(26px,2.2vw,44px) clamp(26px,2.2vw,44px) 0 0;place-items:stretch stretch;display:grid;position:relative;overflow:hidden}.footer-name[data-astro-cid-yvkg62gd]{z-index:0;width:calc(100% - clamp(96px,12vw,240px));color:var(--footer-muted);font-family:var(--font-saans);font-size:min(clamp(82px,14vw,260px),14.2857vw - clamp(96px,12vw,240px)/7);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:0;text-align:center;text-transform:uppercase;white-space:nowrap;opacity:.86;pointer-events:none;margin:0;line-height:.74;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.footer-grid[data-astro-cid-yvkg62gd]{z-index:1;width:100%;min-height:min(560px, calc(100svh - var(--footer-top-gap) - clamp(116px, 8.6vw, 158px)));grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));place-self:stretch stretch;gap:clamp(10px,1.45vw,24px);display:grid;position:relative}.footer-panel[data-astro-cid-yvkg62gd]{isolation:isolate;color:#171717e6;min-width:0;min-height:0;font-family:var(--font-saans);font-size:clamp(12px,.95vw,16px);font-weight:var(--weight-bold);font-variation-settings:normal;letter-spacing:0;text-transform:uppercase;background:#f5f5f513;border:1px solid #ffffff6b;border-radius:clamp(14px,1.7vw,28px);justify-content:flex-start;align-items:flex-end;padding:clamp(11px,1.25vw,20px);line-height:1;text-decoration:none;transition:transform .22s,border-color .22s,background-color .22s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffa3,inset 0 -22px 42px #ffffff0a,0 18px 42px #00000047}.footer-panel[data-astro-cid-yvkg62gd]:before{content:"";z-index:1;border-radius:inherit;opacity:.5;pointer-events:none;background:linear-gradient(132deg,#fff3,#ffffff09 42%,#ffffff21 100%),radial-gradient(circle at 86% 8%,#ffffff38,#0000 36%),radial-gradient(circle at 22% 88%,#ffffff13,#0000 42%);position:absolute;inset:0}.footer-panel[data-astro-cid-yvkg62gd]:after{content:"";z-index:3;border-radius:inherit;mix-blend-mode:screen;opacity:.28;pointer-events:none;-webkit-mask-composite:xor;background:linear-gradient(135deg,#fff0 0%,#ffffff1f 34%,#ffffff52 66%,#fff0 100%);padding:1.5px;position:absolute;inset:0;box-shadow:inset 0 0 0 .5px #fff6,inset 0 1px 3px #ffffff38,0 1px 4px #00000059;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.footer-panel-warp[data-astro-cid-yvkg62gd]{z-index:0;border-radius:inherit;-webkit-backdrop-filter:none;background:#f5f5f51a;position:absolute;inset:-1px;transform:translateZ(0)}@supports (backdrop-filter:blur(1px)){.footer-panel-warp[data-astro-cid-yvkg62gd]{-webkit-backdrop-filter:blur(11px)saturate(190%)contrast(1.08)brightness(1.08);background:linear-gradient(145deg,#ffffff1f,#d3d3d309),#f5f5f50b}}@supports not (backdrop-filter:blur(1px)){.footer-panel[data-astro-cid-yvkg62gd]{background:#f5f5f521}.footer-panel-warp[data-astro-cid-yvkg62gd]{background:linear-gradient(145deg,#ffffff1c,#ffffff06),#f5f5f516}}.footer-panel-label[data-astro-cid-yvkg62gd]{z-index:4;position:relative}a[data-astro-cid-yvkg62gd].footer-panel:hover,a[data-astro-cid-yvkg62gd].footer-panel:focus-visible{border-color:#ffffff9e;transform:translateY(-3px)}a[data-astro-cid-yvkg62gd].footer-panel:focus-visible{outline-offset:4px;outline:2px solid #f5f5f5db}.footer-panel--about[data-astro-cid-yvkg62gd]{grid-area:1/1/3/5}.footer-panel--lab[data-astro-cid-yvkg62gd]{grid-area:1/5/3/9}.footer-panel--projects[data-astro-cid-yvkg62gd]{grid-area:3/1/5/5}.footer-panel--instagram[data-astro-cid-yvkg62gd]{grid-area:3/5/4/6}.footer-panel--linkedin[data-astro-cid-yvkg62gd]{grid-area:3/6/4/7}.footer-panel--github[data-astro-cid-yvkg62gd]{grid-area:4/5/5/7}.footer-panel--contact[data-astro-cid-yvkg62gd]{grid-area:3/7/5/9}@media (width<=760px){.site-footer[data-astro-cid-yvkg62gd]{--footer-top-gap:clamp(72px, 18svh, 132px)}.footer-card[data-astro-cid-yvkg62gd]{min-height:calc(100svh - var(--footer-top-gap));padding:clamp(32px, 9vw, 52px) var(--footer-grid-gutter) clamp(26px, 7vw, 46px)}.footer-name[data-astro-cid-yvkg62gd]{white-space:normal;font-size:clamp(58px,18vw,116px);top:49%}.footer-grid[data-astro-cid-yvkg62gd]{grid-template-rows:repeat(8,minmax(56px,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;height:min(72svh,620px);min-height:520px}.footer-panel[data-astro-cid-yvkg62gd]{background:#f5f5f50b;border-radius:16px;padding:12px;font-size:clamp(11px,3vw,13px)}.footer-panel[data-astro-cid-yvkg62gd]:before{opacity:.36}.footer-panel[data-astro-cid-yvkg62gd]:after{opacity:.22}.footer-panel-warp[data-astro-cid-yvkg62gd]{background:#f5f5f50e}@supports (backdrop-filter:blur(1px)){.footer-panel-warp[data-astro-cid-yvkg62gd]{-webkit-backdrop-filter:blur(4px)saturate(180%)contrast(1.06)brightness(1.04);background:linear-gradient(145deg,#ffffff12,#d3d3d305),#f5f5f506}}.footer-panel--about[data-astro-cid-yvkg62gd]{grid-area:1/1/3/3}.footer-panel--lab[data-astro-cid-yvkg62gd]{grid-area:3/1/5/3}.footer-panel--projects[data-astro-cid-yvkg62gd]{grid-area:5/1/7/2}.footer-panel--contact[data-astro-cid-yvkg62gd]{grid-area:5/2/7/3}.footer-panel--instagram[data-astro-cid-yvkg62gd]{grid-area:7/1/8/2}.footer-panel--linkedin[data-astro-cid-yvkg62gd]{grid-area:7/2/8/3}.footer-panel--github[data-astro-cid-yvkg62gd]{grid-area:8/1/9/3}}html{color-scheme:dark;background:#141414}body{background:#141414;margin:0}#root[data-astro-cid-z4jru4n3],#app[data-astro-cid-z4jru4n3],main[data-astro-cid-z4jru4n3]{min-height:100%}
