@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.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:Garamondt;src:url(/fonts/Garamondt-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Garamondt;src:url(/fonts/Garamondt-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:CM Geom;src:url(/fonts/CMGeom-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Gap Sans;src:url(/fonts/GapSans-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Gap Sans;src:url(/fonts/GapSans-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@media (pointer:coarse){:root{--text-micro:.6875rem;--text-caption:.8125rem;--text-small:1rem;--text-lead:clamp(1.25rem, 2.2vw, 1.5rem)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);background:var(--bg);color:var(--text);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}#root{min-height:100dvh}@media (width>=861px){html,body{height:100%;overflow:hidden}}@media (pointer:coarse) and (width<=1366px) and (height>=600px){html,body{height:100%;overflow:hidden}}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}button,input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}img,svg,video{max-width:100%;display:block}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}html{scroll-behavior:auto}}.subject{z-index:2;cursor:pointer;--glow:0;--glow-core:#cfeeff;--glow-halo:#0b8bff;--glow-wash:#0a46ff;background:0 0;border:0;margin:auto;padding:0;position:absolute;inset:0;overflow:hidden}.subject:focus-visible{outline:2px solid var(--element,var(--text));outline-offset:3px}.subject__layer{opacity:0;isolation:isolate;transition:opacity var(--dur) var(--ease);position:absolute;inset:0}.subject__layer[data-on]{opacity:1}.subject__img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.subject__glow{width:100%;height:100%;opacity:var(--glow);mix-blend-mode:screen;pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.subject__layer{transition:none}}.backdrop{z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--font-mono);letter-spacing:0;white-space:pre;color:var(--element,var(--text-muted));opacity:var(--backdrop-opacity,.26);transition:color var(--dur-slow) var(--ease);margin:0;font-size:10px;line-height:1.1;position:absolute;inset:0;overflow:hidden}:root[data-theme=dark] .backdrop{--backdrop-opacity:.18}.backdrop--orbs{z-index:1;color:var(--element,var(--text));opacity:.45}.backdrop--orbs-front{z-index:3}:root[data-theme=dark] .backdrop--orbs{opacity:.38}.flow{margin:var(--space-5) 0}.flow__board{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"mcp mcp mcp owner""designer agent figma review";gap:72px 56px;display:grid;position:relative}.flow__node{z-index:1;gap:var(--space-1);min-width:0;padding:var(--space-3);border:1px solid var(--divider);background:var(--surface);cursor:pointer;transition:opacity var(--dur) var(--ease), border-color var(--dur) var(--ease);border-radius:10px;flex-direction:column;display:flex;position:relative}.flow__node--mcp{grid-area:mcp}.flow__node--owner{grid-area:owner}.flow__node--designer{grid-area:designer}.flow__node--agent{grid-area:agent}.flow__node--figma{grid-area:figma}.flow__node--review{grid-area:review}.flow__node--agent{border-color:var(--text);background:var(--text);color:var(--bg)}.flow__node--agent .flow__kicker,.flow__node--agent .flow__note{color:color-mix(in srgb, var(--bg) 70%, transparent)}.flow__node:not([data-lit]){opacity:.42}.flow__node[data-lit]{border-color:var(--el-ai)}.flow__kicker{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:var(--tracking-caption);text-transform:uppercase;color:var(--text-muted)}.flow__name{font-family:var(--font-display);font-size:var(--text-body);letter-spacing:var(--tracking-display);line-height:var(--leading-tight)}.flow__note{font-size:var(--text-caption);color:var(--text-secondary);line-height:1.45}.flow__parts{gap:var(--space-2);margin:var(--space-2) 0 0;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;list-style:none;display:grid}.flow__part{padding:var(--space-2) var(--space-3);background:var(--bento-bg);border-radius:6px;flex-direction:column;gap:2px;display:flex}.flow__part-name{font-size:var(--text-caption)}.flow__part-note{font-size:var(--text-micro);color:var(--text-muted);line-height:1.4}.flow__wires{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.flow__wire{stroke:var(--text-muted);stroke-width:1px;transition:stroke var(--dur) var(--ease)}.flow__wire[data-lit]{stroke:var(--el-ai);stroke-width:2px}.flow__head{fill:var(--text-muted)}.flow__head--lit{fill:var(--el-ai)}.flow__badge{z-index:2;width:24px;height:24px;font-family:var(--font-mono);font-size:var(--text-micro);color:var(--bg);background:var(--text);cursor:pointer;transition:background var(--dur) var(--ease);border:0;border-radius:50%;place-items:center;margin:-12px 0 0 -12px;padding:0;display:grid;position:absolute}.flow__badge[data-lit]{background:var(--el-ai)}.flow__badge:focus{outline:none}.flow__badge:focus-visible{outline:2px solid var(--text);outline-offset:2px}.flow__steps{gap:var(--space-2);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.flow__step{appearance:none;align-items:center;gap:var(--space-2);border:1px solid var(--divider);font:inherit;font-size:var(--text-caption);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px 6px 6px;display:inline-flex}.flow__step-n{width:20px;height:20px;font-family:var(--font-mono);font-size:var(--text-micro);background:var(--divider);color:var(--text);border-radius:50%;place-items:center;display:grid}.flow__step[aria-pressed=true]{border-color:var(--el-ai);color:var(--text)}.flow__step[aria-pressed=true] .flow__step-n{background:var(--el-ai);color:#fff}.flow__step:focus{outline:none}.flow__step:focus-visible{outline:2px solid var(--text);outline-offset:2px}.flow__caption{min-height:3em;margin:var(--space-3) 0 0;font-size:var(--text-small);line-height:var(--leading-body)}.flow__rule{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--divider);font-size:var(--text-caption);color:var(--text-muted)}.flow--narrow .flow__board{row-gap:var(--space-2);grid-template-columns:minmax(0,1fr);grid-template-areas:none}.flow--narrow .flow__node{grid-area:auto}.flow--narrow .flow__parts{grid-template-columns:repeat(2,minmax(0,1fr))}@media (prefers-reduced-motion:reduce){.flow__node,.flow__wire,.flow__badge{transition:none}}.orbit{--ink:var(--element,var(--text-muted));--ink-field:.26;justify-content:center;align-items:center;height:100%;min-height:100dvh;display:flex;position:relative;overflow:hidden;container-type:inline-size}:root[data-theme=dark] .orbit{--ink-field:.18}.orbit-ellipse{pointer-events:none;z-index:1;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.orbit-dot{pointer-events:none;z-index:2;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:absolute;overflow:hidden}.orbit-clip{pointer-events:none;position:absolute;inset:0;overflow:hidden}.orbit-clip>.subject{pointer-events:auto}.orbit-name{z-index:4;color:#fff;mix-blend-mode:difference;white-space:nowrap;font-family:var(--font-display);font-size:var(--text-small);letter-spacing:var(--tracking-display);pointer-events:none;opacity:0;transition:opacity var(--dur) var(--ease);margin:0;line-height:1;position:absolute;translate:-50%}.orbit-name[data-on]{opacity:1}.orbit[data-open] .orbit-name{opacity:0}.orbit-dot-img{background-color:var(--orb);background-image:linear-gradient(45deg, var(--orb-check) 25%, transparent 25%, transparent 75%, var(--orb-check) 75%), linear-gradient(45deg, var(--orb-check) 25%, transparent 25%, transparent 75%, var(--orb-check) 75%);background-size:var(--sq,36px) var(--sq,36px);background-position:0 0, calc(var(--sq,36px) / 2) calc(var(--sq,36px) / 2);width:200%;height:200%;transition:transform .35s cubic-bezier(.16,1,.3,1);position:absolute;top:-50%;left:-50%}img.orbit-dot-img{max-width:none;height:calc(var(--dz,1.3) * 100%);width:calc(var(--dz,1.3) * 150%);top:calc(50% - var(--fy,.5) * var(--dz,1.3) * 100%);left:calc(50% - var(--fx,.5) * var(--dz,1.3) * 150%)}.orbit-dot[data-lit]{pointer-events:auto;cursor:pointer;--dot-swell:1.2}.orbit-dot{appearance:none;color:inherit;font:inherit;background:0 0;border:0;padding:0}.orbit-dot:focus{outline:none}.orbit-dot:focus-visible{outline:2px solid var(--text);outline-offset:4px}.orbit-plate{--plate-dur:.72s;z-index:5;transition:inset var(--plate-dur) var(--ease), border-radius var(--plate-dur) var(--ease);border-radius:0;position:absolute;inset:0;overflow:hidden}.orbit-plate__scroll{overscroll-behavior:contain;scrollbar-width:none;padding-bottom:var(--gutter);position:absolute;inset:0;overflow-y:auto}.orbit-plate__scroll::-webkit-scrollbar{display:none}.orbit-plate__sheet{margin:var(--gutter) var(--gutter) 0;width:calc(100cqw - 2 * var(--gutter));min-height:calc(100% - var(--gutter) * 2);border-radius:var(--radius);transition:translate var(--plate-dur) var(--ease);flex-direction:column;display:flex;overflow:hidden}.project__aside{right:var(--space-4);bottom:var(--space-4);z-index:1;max-width:calc(100% - 2 * var(--space-4));padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:color-mix(in oklab, var(--bg) 62%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.1);backdrop-filter:blur(16px)saturate(1.1);scrollbar-width:none;position:absolute;overflow-x:auto}.project__aside::-webkit-scrollbar{display:none}.orbit-plate__media{height:min(calc((100cqw - 2 * var(--gutter)) / 1.5), 78vh);background-color:var(--orb);background-image:linear-gradient(45deg, var(--orb-check) 25%, transparent 25%, transparent 75%, var(--orb-check) 75%), linear-gradient(45deg, var(--orb-check) 25%, transparent 25%, transparent 75%, var(--orb-check) 75%);background-size:var(--sq,36px) var(--sq,36px);background-position:0 0, calc(var(--sq,36px) / 2) calc(var(--sq,36px) / 2);flex:none;position:relative}.orbit-plate__body{padding:var(--space-4) var(--space-4) 0;background:color-mix(in oklab, var(--panel-bg) 90%, transparent);-webkit-backdrop-filter:blur(40px)saturate(1.2);backdrop-filter:blur(40px)saturate(1.2);flex:1}.orbit-plate__close{z-index:2;top:calc(var(--gutter) + var(--space-3));right:calc(var(--gutter) + var(--space-3));background:color-mix(in oklab, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;width:2rem;height:2rem;color:var(--text);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.orbit-plate[data-grown] .orbit-plate__close{opacity:.75;pointer-events:auto;transition-delay:var(--plate-dur)}.orbit-plate[data-grown] .orbit-plate__close:hover,.orbit-plate__close:focus-visible{opacity:1;transition-delay:0s}.orbit-plate__close span{width:.75rem;height:.75rem;display:block;position:relative}.orbit-plate__close span:before,.orbit-plate__close span:after{content:"";background:currentColor;width:100%;height:1.5px;margin:auto;position:absolute;inset:0}.orbit-plate__close span:before{transform:rotate(45deg)}.orbit-plate__close span:after{transform:rotate(-45deg)}@media (prefers-reduced-motion:reduce){.orbit-plate{opacity:0;transition:opacity var(--dur) var(--ease)}.orbit-plate[data-grown]{opacity:1}.orbit-plate[data-grown] .orbit-plate__close{transition-delay:0s}}.project__title,.project__meta,.project__summary,.project__hmw,.project__outcome-lead,.project__line,.project__step-name{max-width:60ch}.project__title{font-family:var(--font-display);font-size:clamp(1.75rem,3.6vw,2.5rem);font-weight:400;line-height:var(--leading-tight);letter-spacing:var(--tracking-display);color:var(--text)}.project__meta{margin-top:var(--space-2);font-family:var(--font-mono);letter-spacing:.1em;color:var(--element,var(--text-muted));font-size:.6875rem}.project__line{margin-top:var(--space-3);font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--text-secondary)}.project__details{gap:var(--space-5);margin:0;display:flex}.project__detail dt{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.project__detail dd{white-space:nowrap;font-family:var(--font-body);font-size:var(--text-small);color:var(--text);margin:.2em 0 0}.project__summary,.project__hmw,.project__outcome-lead,.project__beat-head--shown{font-family:var(--font-display);font-size:var(--text-lead);font-weight:400;line-height:var(--leading-lead);letter-spacing:var(--tracking-display);color:var(--text)}.project__summary{margin-top:var(--space-3)}.project__beat{margin-top:var(--space-5)}.project__beat-head{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.project__beat-head--shown{clip:auto;white-space:normal;width:auto;height:auto;margin-bottom:var(--space-3);position:static;overflow:visible}.project__steps,.project__stack{counter-reset:step;margin:0;padding:0;list-style:none}.project__step,.project__layer{margin-top:var(--space-4)}.project__step{counter-increment:step}.project__step-name{font-family:var(--font-body);font-size:var(--text-small);font-weight:500;line-height:var(--leading-tight);color:var(--text)}.project__step .project__step-name:before{content:counter(step, decimal-leading-zero) "  ";font-family:var(--font-mono);color:var(--element,var(--text-muted))}.project__step .project__line,.project__layer .project__line{margin-top:var(--space-2)}.project__tech{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.project__tech li{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;color:var(--text-muted);border:1px solid var(--divider);border-radius:999px;padding:.25em .6em}.project__hmw{margin-top:var(--space-4)}.project__learnings{grid-template-columns:repeat(3,1fr);gap:16px;margin:0;padding:0;list-style:none;display:grid}@container (width<=760px){.project__details{gap:var(--space-3) var(--space-4);flex-wrap:wrap}.project__learnings{grid-template-columns:1fr}}.project__learning{padding:var(--space-3) 0;border-top:1px solid var(--divider);font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--text-secondary)}.skills{margin:var(--space-5) calc(var(--space-4) * -1) 0;padding:var(--space-1) 0;overflow:hidden}.project-nav.project-nav--under-skills{margin-top:var(--space-5);border-top:0}.skills__track{width:max-content;animation:skills-scroll var(--skills-dur,56s) linear infinite;display:flex}@keyframes skills-scroll{to{transform:translate(-25%)}}@media (prefers-reduced-motion:reduce){.skills__track{animation:none}}.skills__set{align-items:center;gap:var(--space-3);padding:0 var(--space-3) 0 0;margin:0;list-style:none;display:flex}.skills__item{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--el);font-size:.75rem}.skills__item[data-element=ai]{--el:var(--el-ai)}.skills__item[data-element=design]{--el:var(--el-design)}.skills__item[data-element=engineering]{--el:var(--el-engineering)}.skills__item[data-element=strategy]{--el:var(--el-strategy)}.project-nav{justify-content:space-between;align-items:flex-start;gap:var(--space-5);margin-top:var(--space-7);padding:var(--space-5) 0;border-top:1px solid var(--divider);display:flex}.project__xref{appearance:none;font:inherit;color:inherit;text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline;text-decoration-thickness:1px}.project__xref:hover{text-decoration-thickness:2px}.project__xref:focus{outline:none}.project__xref:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:2px}.project-nav__link{gap:var(--space-2);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1 1 0;min-width:0;margin:0;padding:0;display:flex}.project-nav__link--next{text-align:right;align-items:flex-end}.project-nav__link:focus{outline:none}.project-nav__link:focus-visible{outline:2px solid var(--text);outline-offset:4px}.project-nav__dir{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);transition:color var(--dur) var(--ease);font-size:.7rem}.project-nav__name{font-family:var(--font-display);font-size:var(--text-lead);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);color:var(--text);transition:color var(--dur) var(--ease)}.project-nav__link:hover .project-nav__dir,.project-nav__link:focus-visible .project-nav__dir{color:var(--text-secondary)}.project-nav__link:hover .project-nav__name,.project-nav__link:focus-visible .project-nav__name{color:var(--element,var(--text))}.orbit-resume{z-index:2;top:50%;left:var(--gutter);right:var(--gutter);margin-top:calc(var(--subject-half,calc(17 * var(--u))) + 6 * var(--u));opacity:0;pointer-events:none;position:absolute}.orbit-resume__card{padding:var(--space-5);border-radius:var(--radius);background:color-mix(in oklab, var(--panel-bg) 88%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.1);backdrop-filter:blur(16px)saturate(1.1)}.resume{gap:var(--space-5);display:grid}.resume__row{gap:var(--space-4);grid-template-columns:9rem minmax(0,1fr);display:grid}.resume__row+.resume__row{padding-top:var(--space-5);border-top:1px solid var(--divider)}@container (width<=760px){.resume__row{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}}.resume__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.6875rem;font-weight:400}.resume__body{gap:var(--space-6);display:grid}.resume__lead{max-width:68ch;font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--text)}.resume__role{gap:var(--space-3);display:grid}.resume__org{font-family:var(--font-display);letter-spacing:var(--tracking-display);color:var(--text);font-size:1rem;font-weight:400}.resume__title{font-family:var(--font-body);font-size:var(--text-small);letter-spacing:var(--tracking-body);color:var(--text-secondary);margin-left:.6em}.resume__dates{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;color:var(--text-muted)}.resume__logos{place-items:center;gap:var(--space-6) var(--space-5);margin:var(--space-3) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;list-style:none;display:grid}@container (width<=760px){.resume__logos{grid-template-columns:repeat(2,minmax(0,1fr))}}.resume__logo{height:calc(26px * var(--logo-scale,1));filter:grayscale();opacity:.55;width:auto;max-width:100%;transition:filter var(--dur) var(--ease), opacity var(--dur) var(--ease);display:block}.resume__logo:hover{filter:none;opacity:1}:root[data-theme=dark] .resume__logo{filter:grayscale()invert()}:root[data-theme=dark] .resume__logo:hover{filter:none}.resume__clients{gap:var(--space-2) 0;font-family:var(--font-body);font-size:var(--text-small);letter-spacing:var(--tracking-body);color:var(--text-secondary);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.resume__clients li:not(:last-child):after{content:"·";color:var(--text-muted);margin:0 .6em}.resume__bullets{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.resume__bullets li{max-width:76ch;font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--text-secondary);padding-left:1.1em;position:relative}.resume__bullets li:before{content:"—";color:var(--text-muted);position:absolute;left:0}.resume__line{max-width:76ch;font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--text-secondary)}.resume__tags{font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.resume__tags li{color:var(--el)}.resume__tags li:not(:last-child):after{content:"·";color:var(--text-muted);margin:0 .5em}.resume__tags li[data-element=ai]{--el:var(--el-ai)}.resume__tags li[data-element=design]{--el:var(--el-design)}.resume__tags li[data-element=engineering]{--el:var(--el-engineering)}.resume__tags li[data-element=strategy]{--el:var(--el-strategy)}.resume__skills{gap:var(--space-3);margin:0;display:grid}.resume__skill{gap:var(--space-3);grid-template-columns:11rem minmax(0,1fr);display:grid}@container (width<=760px){.resume__skill{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}}.resume__skill dt{font-family:var(--font-body);font-size:var(--text-small);letter-spacing:var(--tracking-body);color:var(--text)}.resume__skill dd{font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--text-secondary);margin:0}.resume strong{color:var(--text);font-weight:500}.bento{margin:var(--space-5) 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bento__tile{aspect-ratio:4/3;background:var(--bento-bg);border-radius:12px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.bento__cell{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.bento__cell:first-child,.bento__cell:last-child:nth-child(2n){grid-column:1/-1}.bento__cell:first-child .bento__tile,.bento__cell:last-child:nth-child(2n) .bento__tile{aspect-ratio:16/9}@container (width<=520px){.bento{grid-template-columns:minmax(0,1fr)}}.bento__cap-name{display:block}.bento__cap.bento__cap--noted{justify-content:flex-end;align-items:flex-start;gap:var(--space-1);background:linear-gradient(#0000 25%,#0009 65%,#000000d9 100%);flex-direction:column}.bento__cap-note{max-width:46ch;font-family:var(--font-body);font-size:var(--text-small);letter-spacing:normal;text-transform:none;color:#ffffffd9;line-height:1.45}.bento__below{font-size:var(--text-small);line-height:var(--leading-body);color:var(--text-secondary);margin:0;display:none}.bento__below .bento__cap-name{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:var(--tracking-caption);text-transform:uppercase;color:var(--text);margin-bottom:2px}.bento__cap{z-index:2;padding:var(--space-3) var(--space-4);font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:var(--tracking-caption);text-transform:uppercase;color:#fff;opacity:0;transition:opacity var(--dur-fast) var(--ease);pointer-events:none;background:linear-gradient(#0000 45%,#00000059 75%,#000000b3 100%);justify-content:flex-start;align-items:flex-end;display:flex;position:absolute;inset:0}@media (hover:hover){.bento__tile:hover .bento__cap{opacity:1}}@media (hover:none){.bento__cap{opacity:1}.bento__cell--noted .bento__cap{display:none}.bento__below{display:block}}.bento__chips{flex-direction:column;justify-content:center;align-items:center;gap:.6rem;margin:0;padding:0;list-style:none;display:flex;position:absolute;inset:0}.bento__chip{border:1px solid var(--divider);font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-secondary);border-radius:999px;padding:.3rem .7rem;font-size:.72rem}.bento__shot{filter:drop-shadow(0 16px 34px #00000080);max-width:90%;max-height:86%;margin:auto;position:absolute;inset:0}.bento__shot--edge{box-shadow:0 0 0 1px var(--divider);border-radius:8px}.bento__pair{justify-content:center;align-items:center;gap:3%;padding:4%;display:flex;position:absolute;inset:0}.bento__pair-img{filter:drop-shadow(0 14px 30px #00000080);max-width:48%;max-height:94%}.bento__pages{--h:min(100cqh, (100cqw - var(--gaps,0) * 3cqw) / var(--ratio-sum,1.6));justify-content:center;align-items:center;gap:3cqw;display:flex;position:absolute;inset:7% 5%;container-type:size}.bento__page{height:var(--h);width:calc(var(--h) * var(--ratio));box-shadow:0 0 0 1px var(--divider), 0 16px 34px #0000004d;background:#fff;border-radius:8px;flex:none;position:relative;overflow:hidden}.bento__page--mobile{border-radius:14px}.bento__page-img{will-change:transform;width:100%;max-width:none;height:auto;display:block}@media (hover:none),(prefers-reduced-motion:reduce){.bento__page{overscroll-behavior:contain;scrollbar-width:none;overflow-y:auto}.bento__page::-webkit-scrollbar{display:none}}.bento__video{background:#000;border-radius:10px;width:auto;max-width:88%;height:auto;max-height:82%;margin:auto;position:absolute;inset:0;box-shadow:0 16px 34px #00000059}.bento__frame{position:absolute;overflow:hidden}.bento__frame iframe{display:block}.bento__frame--card{background:#1b1b1e;border-radius:16px;width:80%;height:82%;margin:auto;inset:0;box-shadow:0 24px 60px #00000080}.bento__frame--fill{background:#1b1b1e;border-radius:12px;inset:0}.bento__frame--float{background:0 0;inset:0}.project__link{margin-top:var(--space-3);font-family:var(--font-body);font-size:var(--text-small);color:var(--element,var(--text));border-bottom:1px solid;text-decoration:none;display:inline-block}.cta{padding:var(--space-3) var(--gutter) 0;justify-content:center;display:flex}.cta__line{font-family:var(--font-mono);font-size:var(--text-small);font-weight:400;line-height:var(--leading-lead);letter-spacing:var(--tracking-body);color:var(--text-secondary);cursor:pointer;text-underline-offset:.22em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in oklab, var(--text) 34%, transparent);text-decoration-color:color-mix(in oklab, var(--text) 34%, transparent);transition:color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease);background:0 0;border:0;margin:0;padding:0}.cta__line:hover,.cta__line:focus-visible{color:var(--text);-webkit-text-decoration-color:var(--element,var(--text));text-decoration-color:var(--element,var(--text))}.cta__line:focus-visible{outline:2px solid var(--text);outline-offset:8px;border-radius:2px}@media (pointer:coarse) and (width<=1366px) and (height>=600px){.orbit{height:100%;min-height:0;overflow:visible}.orbit .backdrop{inset:calc(-1 * var(--bleed,0px)) 0}.orbit{background:var(--bg);transition:background var(--dur-slow) var(--ease)}.home[data-element] .orbit{background:color-mix(in oklab, var(--element) var(--tint), var(--bg))}.orbit-plate{inset:auto;top:calc(-1 * var(--ring-drop,0px));bottom:calc(-1 * var(--below,0px));border-radius:var(--radius) var(--radius) 0 0;transition:translate var(--plate-dur) var(--ease);left:0;right:0;translate:0 100%}.orbit-plate[data-grown]{translate:0}.orbit:after{content:"";inset:calc(-1 * var(--bleed,0px)) 0;z-index:4;opacity:0;pointer-events:none;transition:opacity .72s var(--ease);background:#00000073;position:absolute}.orbit[data-open]:after{opacity:1}.project__aside{--chip-w:7.25rem;--fold-dur:.55s;--fold-ease:cubic-bezier(.32, .72, 0, 1);max-width:none;width:calc(100% - 2 * var(--space-4));transition:width var(--fold-dur) var(--fold-ease), grid-template-rows var(--fold-dur) var(--fold-ease);grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr);padding:0;display:grid;overflow:hidden}.project__aside[data-folded]{width:var(--chip-w);grid-template-rows:0fr auto}.project__details{width:calc(100cqw - 2 * var(--space-4));justify-self:unsafe end;gap:var(--space-3) var(--space-4);min-height:0;padding:var(--space-3) var(--space-4) 0;transition:opacity var(--dur) var(--ease) .15s, padding var(--fold-dur) var(--fold-ease), visibility 0s;flex-wrap:wrap;overflow:hidden}.project__detail dd{white-space:normal}.project__aside[data-folded] .project__details{opacity:0;visibility:hidden;transition:opacity var(--dur-fast) var(--ease), padding var(--fold-dur) var(--fold-ease), visibility 0s linear var(--fold-dur);padding-top:0}.project__facts-toggle{justify-content:center;justify-self:end;align-items:center;gap:var(--space-2);width:var(--chip-w);min-height:var(--tap-row);font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--text);cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.project__facts-caret{width:.5em;height:.5em;transition:rotate var(--dur) var(--ease), margin var(--dur) var(--ease);border-top:1.5px solid;border-left:1.5px solid;margin-top:.25em;rotate:45deg}.project__aside:not([data-folded]) .project__facts-caret{margin-top:-.25em;rotate:225deg}.cta{display:none}.orbit-plate__sheet{border-radius:0;width:100cqw;min-height:100%;margin:0;transition:none}.orbit-plate__scroll{padding-bottom:env(safe-area-inset-bottom)}.orbit-plate__close{top:var(--space-4);right:var(--space-4);background:var(--bg)}.orbit-plate[data-grown] .orbit-plate__close{opacity:1}@media (prefers-reduced-motion:reduce){.orbit-plate{transition:opacity var(--dur) var(--ease);translate:none}}.orbit-plate__media{height:58dvh}}.project__heroframe{position:absolute;inset:0;overflow:hidden;container-type:size}.project__hero{--w:max(100cqw, 150cqh);--h:max(100cqh, 100cqw / 1.5);width:var(--w);height:var(--h);max-width:none;left:clamp(100cqw - var(--w), 50cqw - var(--fx,.5) * var(--w), 0px);top:clamp(100cqh - var(--h), 50cqh - var(--fy,.5) * var(--h), 0px);background:0 0;position:absolute}:root:not([data-theme=dark]) .shot--night,:root[data-theme=dark] .shot--day{display:none}.console{--console-line:1.7em;font-family:var(--font-mono);font-size:.6875rem;line-height:var(--console-line);color:var(--text-muted)}.console__log{opacity:.6;height:min(calc(16 * var(--console-line)), 34vh);overflow-wrap:break-word;-webkit-user-select:none;user-select:none;align-items:flex-end;display:flex;overflow:hidden}.console__list{width:100%;animation:console-up var(--dur-fast) var(--ease);list-style:none}.console__line{gap:.6em;display:flex}.console__prompt{margin-top:var(--space-2);align-items:baseline;gap:.6em;display:flex}.console__input::placeholder{color:var(--text-muted);opacity:.7}.console__input{min-width:0;font:inherit;letter-spacing:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:0}.console__prompt--off{color:var(--text-muted);margin-bottom:0}.console__prompt--off span:last-child{opacity:.7}.console__prompt:focus-within .console__el[data-el=ai]{color:var(--el-ai)}.console__mark{opacity:1}.console__line{--fade:1;--dim:1;opacity:calc(var(--fade) * var(--dim))}.console__line[data-kind=story]{--dim:.6}.console__el[data-el=ai]{color:var(--el-ai)}.console__el[data-el=design]{color:var(--el-design)}.console__el[data-el=engineering]{color:var(--el-engineering)}.console__el[data-el=strategy]{color:var(--el-strategy)}.console__mark{color:var(--element,var(--text-secondary));opacity:.8;transition:opacity var(--dur-fast) var(--ease)}@keyframes console-up{0%{transform:translateY(var(--console-line))}}@media (prefers-reduced-motion:reduce){.console__list{animation:none}}@media (pointer:coarse) and (width<=1366px) and (height>=600px){.console__log{height:min(calc(4 * var(--console-line)), 14vh)}}.contact{z-index:60;position:fixed;inset:0}.contact__veil{pointer-events:none;background:linear-gradient(to bottom, transparent 0 18%, color-mix(in oklab, var(--bg) 52%, transparent) 100%);opacity:0;transition:opacity .38s var(--ease);position:absolute;inset:0}.contact[data-shown] .contact__veil{opacity:1;transition-duration:.24s}.contact__stack{pointer-events:none;position:absolute;inset:0}.contact__opener{--pill-pad-y:.42em;--pill-pad-x:1.1em;--arrow:.7179em;--arrow-gap:.3em;will-change:transform;visibility:hidden;padding:var(--pill-pad-y) var(--pill-pad-x);border:1px solid var(--divider);border-radius:calc((var(--leading-lead) * 1em + 2 * var(--pill-pad-y)) / 2);background:color-mix(in oklab, var(--panel-bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;font-family:var(--font-display);font-size:clamp(1.375rem,2.9vw,2.5rem);font-weight:400;line-height:var(--leading-lead);letter-spacing:var(--tracking-display);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), padding var(--dur) var(--ease),  min-width var(--dur) var(--ease);display:block;position:absolute;top:0;left:0}.contact__opener[data-live]{visibility:visible}.contact__opener:hover{color:var(--text);border-color:color-mix(in oklab, var(--text) 32%, transparent)}.contact__opener[data-picked]{z-index:2;border-color:color-mix(in oklab, var(--element,var(--text)) 26%, transparent);color:var(--text);cursor:text;-webkit-user-select:auto;user-select:auto;white-space:normal;padding:.52em 1.3em}.contact__opener[data-asking]{cursor:default}.contact__opener[data-posted]{pointer-events:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000}.contact__opener[data-posted]>:not(.contact__rig){visibility:hidden}.contact__gauge{pointer-events:none;color:var(--element,var(--text));transition:color var(--dur-fast) var(--ease);position:absolute;inset:-1px}.contact__opener[data-full]:not([data-posted]){border-color:color-mix(in oklab, var(--stop) 30%, transparent)}.contact__opener[data-full] .contact__gauge{color:var(--stop)}.contact__label{font:inherit;letter-spacing:inherit;color:inherit;text-align:center;white-space:nowrap;cursor:inherit;background:0 0;border:0;margin:0;padding:0;display:inline}.contact__label:focus{outline:none}.contact__label:focus-visible{outline:2px solid var(--text);outline-offset:6px}.contact__opener[data-picked] .contact__label{display:inline}.contact__note{font:inherit;letter-spacing:inherit;color:var(--text);overflow-wrap:anywhere;padding-right:calc(var(--arrow-gap) + var(--arrow));-webkit-user-select:text;user-select:text;outline:none;margin-left:.3em;display:inline}.contact__note[data-done]{padding-right:0}.contact__note[data-empty]{white-space:nowrap;min-width:.6ch;display:inline-block}.contact__note[data-empty]:before{content:attr(data-hint);color:var(--text-muted);margin-left:.16em}@media (pointer:coarse){.contact__address{font-size:16px}}.contact__send{font-size:inherit;width:0;color:var(--text);vertical-align:baseline;opacity:.9;cursor:pointer;transition:opacity var(--dur-fast) var(--ease);background:0 0;border:0;margin:0;padding:0;display:inline-block;position:relative;overflow:visible}.contact__send:disabled{opacity:.22;cursor:default}.contact__arrow{left:calc(-1 * var(--arrow));width:var(--arrow);pointer-events:auto;max-width:none;height:.8203em;position:absolute;bottom:0}.contact__from{transition:background var(--dur-fast) var(--ease);background:var(--text);color:var(--bg);font-family:var(--font-mono);font-size:var(--text-small);letter-spacing:0;white-space:nowrap;-webkit-user-select:text;user-select:text;cursor:auto;border-radius:.28em;flex-direction:column;align-items:flex-start;gap:.2em;padding:.34em .7em;line-height:1.4;display:flex;position:absolute;top:calc(100% + 1px);left:50%;transform:translate(-50%,-50%)rotate(-3deg)}.contact__from[data-bad]{background:var(--stop);animation:contact-no .32s var(--ease)}@keyframes contact-no{0%,to{translate:0}15%{translate:-5px}38%{translate:4px}61%{translate:-3px}84%{translate:2px}}.contact__from-row{align-items:baseline;gap:0;display:flex}.contact__from-label{opacity:.6;white-space:pre}.contact__address{font:inherit;letter-spacing:inherit;color:inherit;-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;flex:none;margin:0;padding:0}.contact__address::placeholder{color:currentColor;opacity:.52}.contact__go{font-size:inherit;color:inherit;cursor:pointer;opacity:.9;transition:opacity var(--dur-fast) var(--ease);background:0 0;border:0;flex:none;margin:0;padding:0;line-height:1;display:inline-block}.contact__go:disabled{opacity:.3;cursor:default}.contact__go-arrow{width:.7179em;max-width:none;height:.8203em;display:block}.contact__said{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);margin-left:.5em;font-size:.5em;display:inline}.contact__said a{color:var(--text)}.contact__from .contact__said{letter-spacing:0;color:inherit;opacity:.68;white-space:normal;max-width:26ch;margin:0;font-family:inherit;font-size:.86em;display:block}.contact__from .contact__said a{color:inherit}@media (prefers-reduced-motion:reduce){.contact__veil{transition:none}}.contact__rig{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:-1px}.contact__stage{transform-style:preserve-3d;position:absolute;inset:0}.contact__leaf,.contact__face,.contact__back{position:absolute;top:0;left:0;overflow:hidden}.contact__flap{transform-origin:top;transform-style:preserve-3d;position:absolute;left:0}.contact__face,.contact__back{backface-visibility:hidden}.contact__back,.contact__paper{background:var(--panel-bg);border:1px solid var(--divider);box-sizing:border-box}.contact__rig .contact__opener{visibility:inherit;will-change:auto;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--panel-bg);min-width:0;max-width:none;position:relative;transform:none}.resume-drawer{z-index:40;pointer-events:none;position:fixed;inset:0}.resume-drawer[data-open]{pointer-events:auto}.resume-drawer__scrim{opacity:0;transition:opacity .72s var(--ease);background:#00000073;position:absolute;inset:0}.resume-drawer[data-open] .resume-drawer__scrim{opacity:1}.resume-drawer__sheet{border-radius:var(--radius) var(--radius) 0 0;background:color-mix(in oklab, var(--panel-bg) 90%, transparent);-webkit-backdrop-filter:blur(40px)saturate(1.2);backdrop-filter:blur(40px)saturate(1.2);transition:translate .72s var(--ease);position:absolute;bottom:0;left:0;right:0;overflow:hidden;translate:0 100%}.resume-drawer[data-open] .resume-drawer__sheet{translate:0}.resume-drawer__scroll{overscroll-behavior:contain;scrollbar-width:none;padding:var(--space-5) var(--space-4) max(var(--space-5), env(safe-area-inset-bottom));position:absolute;inset:0;overflow-y:auto}.resume-drawer__scroll::-webkit-scrollbar{display:none}.resume-drawer__close{z-index:2;top:var(--space-4);right:var(--space-4);background:color-mix(in oklab, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:2rem;height:2rem;color:var(--text);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.resume-drawer__close span{width:.75rem;height:.75rem;display:block;position:relative}.resume-drawer__close span:before,.resume-drawer__close span:after{content:"";background:currentColor;width:100%;height:1.5px;margin:auto;position:absolute;inset:0}.resume-drawer__close span:before{transform:rotate(45deg)}.resume-drawer__close span:after{transform:rotate(-45deg)}.resume-drawer__contact{appearance:none;margin:var(--space-5) 0 0;font:inherit;font-family:var(--font-display);font-size:var(--text-lead);color:var(--text);text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline;display:block}@media (prefers-reduced-motion:reduce){.resume-drawer__sheet{opacity:0;transition:opacity var(--dur) var(--ease);translate:none}.resume-drawer[data-open] .resume-drawer__sheet{opacity:1}}.resume-drawer .resume__row{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}.reach{z-index:40;pointer-events:none;--reach-dim:.78;--reach-draw-dur:.9s;--reach-out:.72s;position:fixed;inset:0}.reach[data-leaving]{opacity:0;transition:opacity var(--reach-out) var(--ease)}.reach__dim{opacity:0;animation:reach-dim var(--dur) var(--ease) forwards;background:#000;position:absolute;inset:0}@keyframes reach-dim{to{opacity:var(--reach-dim)}}.reach__word{white-space:pre;color:#fff;opacity:0;animation:reach-lit var(--dur) var(--ease) forwards;text-decoration-color:#fff;position:absolute}@keyframes reach-lit{to{opacity:1}}.reach__drawing{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.reach__sweep{stroke-width:30px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:reach-draw var(--reach-draw-dur) var(--ease) .12s forwards}@keyframes reach-draw{to{stroke-dashoffset:0}}.reach__line,.reach__head{stroke:#ffffffeb;stroke-width:1.5px;stroke-linecap:round}.reach__line{stroke-dasharray:5 7}.reach__head{stroke-linejoin:round}@media (prefers-reduced-motion:reduce){.reach__sweep{stroke-dashoffset:0;animation:none}}.home{background:var(--bg);height:100dvh;color:var(--text);transition:background var(--dur-slow) var(--ease);grid-template-columns:minmax(14rem,min(24%,22rem)) 1fr;display:grid}.home[data-element=ai]{--element:var(--el-ai)}.home[data-element=design]{--element:var(--el-design)}.home[data-element=engineering]{--element:var(--el-engineering)}.home[data-element=strategy]{--element:var(--el-strategy)}.home[data-element]{background:color-mix(in oklab, var(--element) var(--tint), var(--bg))}.home[data-element] .panel{background:color-mix(in oklab, var(--element) var(--tint), var(--panel-bg))}.panel{scrollbar-width:none;padding:var(--gutter);background:var(--panel-bg);border-right:1px solid var(--divider);transition:background var(--dur-slow) var(--ease);text-wrap:balance;flex-direction:column;display:flex;overflow-y:auto}.panel__name{font-family:var(--font-display);font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:400;line-height:var(--leading-tight);letter-spacing:var(--tracking-display);margin-bottom:var(--space-2)}.panel__line{font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--text-secondary);max-width:30ch}.panel__nav{margin-top:var(--space-6);font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body)}.panel__lead{color:var(--text-secondary)}.panel__elements{margin:var(--space-2) 0 0;list-style:none}.panel__elements li[data-el=ai]{--el:var(--el-ai)}.panel__elements li[data-el=design]{--el:var(--el-design)}.panel__elements li[data-el=engineering]{--el:var(--el-engineering)}.panel__elements li[data-el=strategy]{--el:var(--el-strategy)}.panel__elements button{text-align:left;width:100%;font:inherit;letter-spacing:inherit;color:var(--text-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease);background:0 0;border:0;padding:0;display:block}.panel__clear{vertical-align:.02em;opacity:0;width:.62em;height:.62em;transition:opacity var(--dur-fast) var(--ease), transform var(--dur) var(--ease);margin-left:.5em;display:inline-block;position:relative;transform:scale(.55)}.panel__clear:before,.panel__clear:after{content:"";background:currentColor;width:100%;height:1.5px;margin:auto;position:absolute;inset:0}.panel__clear:before{transform:rotate(45deg)}.panel__clear:after{transform:rotate(-45deg)}.panel__elements button.is-on .panel__clear{opacity:.75;transform:scale(1)}.panel__elements button.is-on:hover .panel__clear{opacity:1}@media (prefers-reduced-motion:reduce){.panel__clear{transition:opacity var(--dur-fast) var(--ease);transform:none}}.panel__elements button:hover,.panel__elements li[data-open] button{color:var(--el)}.panel__note{opacity:0;transition:grid-template-rows var(--dur) var(--ease), opacity var(--dur-fast) var(--ease);grid-template-rows:0fr;display:grid}.panel__note-clip{min-height:0;overflow:hidden}.panel__note p{color:var(--text-secondary);max-width:34ch;padding:var(--space-2) 0 var(--space-2) var(--space-3)}.panel__elements li[data-open] .panel__note{opacity:1;transition:grid-template-rows var(--dur) var(--ease), opacity var(--dur) var(--ease) 80ms;grid-template-rows:1fr}.panel__note-el{color:var(--el);font-weight:500}.panel__head,.panel__lead,.panel__links li,.panel__foot,.panel__elements li{transition:opacity var(--dur) var(--ease)}.home[data-project] .panel__head,.home[data-project] .panel__lead,.home[data-project] .panel__links li,.home[data-project] .panel__elements li{opacity:.22;transition-delay:.2s}.home[data-project] .panel__elements li[data-tagged]{opacity:1}.home[data-project][data-end] .panel__contact{opacity:1;transition-delay:0s}.home[data-project][data-end] .panel__contact button{color:var(--element,var(--text))}.home[data-project] .panel__elements li[data-tagged] button{color:var(--el)}.panel__links{margin-top:var(--space-6);font-family:var(--font-body);font-size:var(--text-small);line-height:var(--leading-body);letter-spacing:var(--tracking-body);list-style:none}.panel__links a,.panel__links button{font:inherit;letter-spacing:inherit;text-align:left;color:var(--text-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease);background:0 0;border:0;padding:0;text-decoration:none}.panel__links a:hover,.panel__links button:hover{color:var(--element,var(--text))}.panel__links [aria-current]{color:var(--text)}.panel__links button:focus{outline:none}.panel__links button:focus-visible{outline:2px solid var(--text);outline-offset:3px}.panel__foot{margin-top:auto}.stage{position:relative;overflow:hidden}.panel::-webkit-scrollbar{display:none}@media (width<=699px){.home{grid-template-columns:1fr;height:auto;min-height:100dvh}.panel{border-right:0;border-bottom:1px solid var(--divider);overflow-y:visible}.stage{min-height:70vh}.panel__line,.panel__note p{max-width:40ch}.panel__nav,.panel__links{margin-top:var(--space-4)}}@media (pointer:coarse){.panel__links a,.panel__links button,.panel__elements button{padding-block:var(--space-2);margin-block:calc(-1 * var(--space-2) / 2)}}@media (pointer:coarse) and (width<=1366px) and (height>=600px){.home{grid-template-rows:auto auto auto minmax(0,1fr) auto;grid-template-columns:auto 1fr;height:100dvh;min-height:0;overflow:clip}.panel__name,.panel__line,.panel__elements,.panel__links,.panel__foot{z-index:1;pointer-events:none;position:relative}.panel__elements button,.panel__links a,.panel__links button{pointer-events:auto}.panel,.panel__nav,.panel__head{display:contents}.panel__name{padding:var(--gutter) 0 0 var(--gutter);white-space:nowrap;grid-area:1/1;align-self:baseline;margin-bottom:0;font-size:clamp(1.5rem,2.2vw,1.75rem)}.panel__line{padding:var(--gutter) var(--gutter) 0 var(--space-3);text-align:right;text-wrap:balance;max-width:34ch;font-size:var(--text-caption);grid-area:1/2/span 2;align-self:baseline;margin-inline-start:auto}.home[data-project] .panel__elements,.home[data-project] .panel__links{z-index:3}.panel__elements li[data-el=ai]{--el-lit:var(--el-ai-lit)}.panel__elements li[data-el=design]{--el-lit:var(--el-design-lit)}.panel__elements li[data-el=engineering]{--el-lit:var(--el-engineering-lit)}.panel__elements li[data-el=strategy]{--el-lit:var(--el-strategy-lit)}.home[data-project] .panel__elements li[data-tagged] button{color:var(--el-lit)}.home[data-project][data-end] .panel__contact button{color:#fff}.panel__lead{display:none}.panel__elements{max-width:calc(28rem + 2 * var(--gutter));margin:var(--space-2) 0 0;padding-inline:var(--gutter);flex-wrap:wrap;grid-area:3/1/auto/-1;justify-content:space-between;align-items:center;display:flex;position:relative}.panel__links{padding-left:var(--gutter);flex-direction:row;grid-area:2/1;align-self:start;align-items:center;margin:0;display:flex}.panel__elements button,.panel__links a,.panel__links button{white-space:nowrap;width:auto}.panel__elements,.panel__links{font-size:var(--text-caption)}.panel__elements button,.panel__links a,.panel__links button{min-height:var(--tap-row);align-items:center;margin-block:0;padding-block:0;display:inline-flex}.panel__elements button{padding-inline:var(--space-2)}.panel__elements li:first-child button{margin-left:calc(-1 * var(--gutter));padding-left:var(--gutter)}.panel__elements li:last-child button{margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter)}.panel__links a,.panel__links button{padding-inline:var(--space-2);margin-inline:0}.panel__resume button{margin-left:calc(-1 * var(--gutter));padding-left:var(--gutter)}.panel__note{top:100%;bottom:auto;left:var(--gutter);width:max-content;max-width:calc(100vw - 2 * var(--gutter));z-index:6;pointer-events:none;grid-template-rows:none;display:block;position:absolute;right:auto}.panel__note-clip{overflow:visible}.panel__note p{max-width:42ch;padding:var(--space-2) 0 0}.stage{--ring-drop:2.5rem;margin-top:var(--ring-drop);z-index:0;grid-area:4/1/auto/-1;min-height:0;transition:z-index 0s linear .72s;overflow:visible}.home[data-project] .stage{z-index:2;transition-delay:0s}.panel__foot{padding:0 var(--gutter) max(var(--gutter), env(safe-area-inset-bottom));grid-area:5/1/auto/-1}}@font-face{font-family:Garamondt;src:url(/fonts/Garamondt-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Garamondt;src:url(/fonts/Garamondt-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:CM Geom;src:url(/fonts/CMGeom-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Gap Sans;src:url(/fonts/GapSans-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Gap Sans;src:url(/fonts/GapSans-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#e9eaec;--surface:#f5f6f7;--panel-bg:#f0f1f2;--bento-bg:#dcdee1;--el-ai:#c9512a;--el-design:#2f6fb5;--el-engineering:#5c7a3e;--el-strategy:#8a7220;--el-ai-lit:#f08358;--el-design-lit:#6aa9e8;--el-engineering-lit:#9bbd78;--el-strategy-lit:#e0cb7d;--on-element:#f0f1f2;--tint:7%;--stop:#b8372c;--text:#111113;--text-secondary:#1111139e;--text-muted:#1111136b;--divider:#11111324;--accent:#6b6bff;--orb:#0c1330;--orb-check:#1a2450;--subject-bg:#f3f4f6;--subject-line:#c3c6cc;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Gap Sans", system-ui, sans-serif;--font-body:"Geist Variable", system-ui, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, monospace;--text-display:clamp(2.5rem, 8vw, 6rem);--text-h1:clamp(2rem, 5vw, 3.5rem);--text-h2:clamp(1.5rem, 3vw, 2.25rem);--text-body:1.125rem;--text-small:.875rem;--text-caption:.75rem;--text-micro:.625rem;--text-lead:clamp(1.125rem, 2.2vw, 1.5rem);--leading-tight:1.1;--leading-body:1.6;--leading-lead:1.35;--tracking-tight:-.02em;--tracking-caption:.12em;--tracking-display:.03em;--tracking-body:.01em;--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2.5rem;--space-6:4rem;--space-7:6rem;--space-8:10rem;--max-width:1200px;--gutter:clamp(1rem, 2vw, 2rem);--tap-row:36px;--radius:12px;--ease:cubic-bezier(.22, 1, .36, 1);--dur-fast:.2s;--dur:.4s;--dur-slow:.8s}[data-display=garamondt]{--font-display:"Garamondt", Georgia, serif}[data-display=cmgeom]{--font-display:"CM Geom", system-ui, sans-serif}[data-display=gapsans]{--font-display:"Gap Sans", system-ui, sans-serif}:root[data-theme=dark]{--bg:#18191b;--surface:#232427;--panel-bg:#1e1f22;--bento-bg:#0f1012;--el-ai:#f08358;--el-design:#6aa9e8;--el-engineering:#9bbd78;--el-strategy:#e0cb7d;--on-element:#18191b;--tint:9%;--stop:#f0756a;--text:#f4f4f5;--text-secondary:#f4f4f59e;--text-muted:#f4f4f56b;--divider:#f4f4f524;--orb:#e6e8f0;--orb-check:#c4c9dd;--subject-bg:#232428;--subject-line:#3b3d44;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (pointer:coarse){:root{--text-micro:.6875rem;--text-caption:.8125rem;--text-small:1rem;--text-lead:clamp(1.25rem, 2.2vw, 1.5rem)}}.type{font-family:var(--font-body);color:#111;background:#fff;max-width:62rem;min-height:100vh;margin:0 auto;padding:2rem 1.5rem 6rem}.type__bar{z-index:10;background:#fff;border-bottom:1px solid #e5e5e5;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:2.5rem;padding:.75rem 0;display:flex;position:sticky;top:0}.type__bar button{font-family:var(--font-mono);cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:.4rem .7rem;font-size:.75rem}.type__bar button.is-on{color:#fff;background:#111;border-color:#111}.type__note{font-family:var(--font-mono);color:#888;margin-left:auto;font-size:.7rem}.type__block{margin-bottom:4rem}.label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#999;margin-bottom:1rem;font-size:.7rem}.d1{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:1.5rem;font-size:clamp(3rem,9vw,6.5rem);font-weight:400;line-height:1.02}.d2{font-family:var(--font-display);margin-bottom:1rem;font-size:clamp(1.5rem,3.4vw,2.5rem);font-weight:400;line-height:1.18}.d3{font-family:var(--font-display);font-size:1.25rem;font-weight:400}.body{max-width:34em;margin-bottom:1.25rem;font-size:1rem;line-height:1.6}.body.small{color:#444;font-size:.875rem}.mono{font-family:var(--font-mono);font-size:.875rem;line-height:1.7}.mono.small{color:#666;font-size:.75rem}.glyphs{font-family:var(--font-display);font-size:1.75rem;line-height:1.6}.glyphs.italic{font-style:italic}.lab{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-body)}.lab__bar{top:var(--gutter);right:var(--gutter);z-index:80;align-items:center;gap:var(--space-2,.5rem);border:1px solid var(--divider);background:var(--panel-bg);font-family:var(--font-mono);letter-spacing:.04em;border-radius:999px;padding:.35rem .5rem;font-size:.75rem;display:flex;position:fixed}.lab__bar button{font:inherit;letter-spacing:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.3rem .7rem}.lab__bar button:hover{background:color-mix(in oklab, var(--text) 8%, transparent);color:var(--text)}.lab__note{color:var(--text-muted);padding-right:.4rem}.lab__page{grid-template-columns:minmax(16rem,24vw) 1fr;min-height:100vh;display:grid}.lab__panel{gap:var(--space-4);padding:var(--gutter);border-right:1px solid var(--divider);background:var(--panel-bg);flex-direction:column;display:flex}.lab__name{font-family:var(--font-display);font-size:var(--text-lead);line-height:var(--leading-lead);letter-spacing:var(--tracking-display);margin:0}.lab__role{color:var(--text-secondary);margin:0}.lab__nav,.lab__els{flex-direction:column;gap:.35rem;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.lab__nav li{color:var(--text-secondary)}.lab__els li[data-element=ai]{color:var(--el-ai)}.lab__els li[data-element=design]{color:var(--el-design)}.lab__els li[data-element=engineering]{color:var(--el-engineering)}.lab__els li[data-element=strategy]{color:var(--el-strategy)}.lab__stage{gap:var(--space-4);max-width:44ch;padding:var(--gutter);flex-direction:column;justify-content:center;display:flex}.lab__h{font-family:var(--font-display);letter-spacing:var(--tracking-display);margin:0;font-size:clamp(2rem,5vw,3.5rem);font-weight:400;line-height:1.05}.lab__body{color:var(--text-secondary);margin:0}.lab__muted{color:var(--text-muted)}.fold-lab{background:var(--bg);min-height:100vh;color:var(--text);grid-template-rows:1fr auto;display:grid}.fold-lab__stage{padding:25vh var(--gutter,24px);place-items:center;display:grid;overflow:visible}.fold-lab__panel{padding:16px var(--gutter,24px) 22px;border-top:1px solid var(--divider);background:var(--panel-bg);font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:0;flex-direction:column;gap:10px;display:flex}.fold-lab__scrub{align-items:center;gap:12px;display:flex}.fold-lab__bar{min-width:0;height:28px;accent-color:var(--text);flex:1}.fold-lab__read{text-align:right;min-width:11ch;color:var(--text-secondary)}.fold-lab__rows{flex-direction:column;gap:4px;display:flex}.fold-lab__row{color:var(--text-secondary);grid-template-columns:9ch 1fr 22ch;align-items:center;gap:10px;display:grid}.fold-lab__row[data-two]{grid-template-columns:9ch 1fr 1fr 22ch}.fold-lab__row input{min-width:0;accent-color:var(--text)}.fold-lab__row code{color:var(--text)}.fold-lab__buttons{flex-wrap:wrap;gap:6px;display:flex}.fold-lab__panel button{border:1px solid var(--divider);background:var(--bg);font:inherit;letter-spacing:0;color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:5px 11px}.fold-lab__panel button:hover,.fold-lab__panel button[data-on]{border-color:color-mix(in oklab, var(--text) 40%, transparent);color:var(--text)}.fold-lab__note{color:var(--text-muted);margin:0}.cursor{z-index:100;mix-blend-mode:difference;pointer-events:none;opacity:0;--swell-dur:.35s;--swell-ease:cubic-bezier(.33, 1, .68, 1);width:0;height:0;transition:opacity var(--dur-fast) var(--ease);position:fixed;top:0;left:0}.cursor[data-on]{opacity:1}.cursor[data-over] .cursor__dot{scale:1.7}.cursor__dot{width:var(--cursor-size,12px);height:var(--cursor-size,12px);margin:calc(var(--cursor-size,12px) / -2);transition:scale var(--swell-dur) var(--swell-ease), opacity var(--dur-fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:0;left:0;scale:1}.cursor__pill{--pill-shut:calc(50% - var(--cursor-size,12px) / 2);top:0;left:calc(var(--cursor-size,12px) / -2);color:#000;font-family:var(--font-display);font-size:var(--text-body);letter-spacing:var(--tracking-display);white-space:nowrap;clip-path:inset(var(--pill-shut) calc(100% - var(--cursor-size,12px)) var(--pill-shut) 0 round 999px);transition:clip-path var(--swell-dur) var(--swell-ease);background:#fff;border-radius:999px;padding:.5em .85em;line-height:1;position:absolute;transform:translateY(-50%)}.cursor[data-pill] .cursor__dot{opacity:0;transition:none}.cursor[data-pill] .cursor__pill{clip-path:inset(0 round 999px)}.cursor__icon{color:#000;opacity:0;width:2.1rem;height:2.1rem;transition:opacity var(--dur-fast) var(--ease), transform var(--swell-dur) var(--swell-ease);background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(.35)}.cursor__icon svg{width:1.05rem;height:1.05rem}.cursor[data-icon] .cursor__dot{opacity:0;transition:none}.cursor[data-icon] .cursor__icon{opacity:1;transform:translate(-50%,-50%)scale(1)}.cursor__label{opacity:0;transition:opacity var(--dur-fast) var(--ease);display:block}.cursor[data-pill] .cursor__label{opacity:1;transition-delay:.12s}@media (pointer:fine){*,:before,:after{cursor:none!important}}@media not (pointer:fine){.cursor{display:none}}@media (prefers-reduced-motion:reduce){.cursor__dot{transition:opacity var(--dur-fast) var(--ease)}.cursor__pill,.cursor__icon{transition:none}.cursor__label{transition-delay:0s}}
