@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.2ytmazkdrg7t9.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.3j3877k49yy0l.woff2)format("woff2");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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.1icgra-w5i50b.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.1g73gv09-xcb6.woff2)format("woff2");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:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_a141959c-module__DkRRXa__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_a141959c-module__DkRRXa__variable{--font-serif:"Instrument Serif", "Instrument Serif Fallback"}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_ff61a596-module__UdeZcG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_ff61a596-module__UdeZcG__variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_d85583d7-module__1dHVEa__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_d85583d7-module__1dHVEa__variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--paper:#eeebe3;--ink:#0f0f0e;--signal:#ff4a1c;--signal-ink:#c92d05;--muted:color-mix(in srgb, var(--ink) 62%, transparent);--line:color-mix(in srgb, var(--ink) 16%, transparent);--chip:color-mix(in srgb, var(--ink) 6%, transparent);--serif:var(--font-serif), "Iowan Old Style", Georgia, serif;--sans:var(--font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;--pad:clamp(1.25rem, 4vw, 4rem);--max:90rem;--ease:cubic-bezier(.16, 1, .3, 1);--nav-h:4.8rem;--section-space:clamp(3rem, 1.25rem + 3.5vw + 2svh, 6rem);--content-space:clamp(1.5rem, 1rem + 1.5vw + 1svh, 3rem);--grid-space:clamp(1.5rem, 3vw, 3.5rem)}.dark{--muted:color-mix(in srgb, var(--paper) 62%, transparent);--line:color-mix(in srgb, var(--paper) 18%, transparent);--chip:color-mix(in srgb, var(--paper) 8%, transparent);background:var(--ink);color:var(--paper)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);background:var(--paper);-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:clamp(1rem,.96rem + .2vw,1.125rem);line-height:1.6;overflow-x:clip}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0;padding:0}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:0;padding:0}img,canvas{max-width:100%;display:block}em{font-style:italic}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:4px}::selection{background:var(--signal);color:var(--ink)}.mono{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--ink);color:var(--paper);border-radius:999px;padding:.6rem 1rem;transition:top .2s;position:fixed;top:-4rem;left:1rem}.skip:focus{top:1rem}body:before{content:"";z-index:60;background:var(--signal);height:2px;transform:scaleX(var(--scroll,0));transform-origin:0;pointer-events:none;position:fixed;inset:0 0 auto}body:after{content:"";z-index:55;pointer-events:none;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}.nav{z-index:50;height:var(--nav-h);padding:0 var(--pad);color:var(--ink);--nav-surface:var(--paper);isolation:isolate;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;transition:color .4s;display:grid;position:fixed;inset:0 0 auto}html[data-navtone=dark] .nav{color:var(--paper);--nav-surface:var(--ink)}.nav-glass{z-index:-1;pointer-events:none;position:absolute;inset:0 0 -2rem}.nav-glass:before{content:"";opacity:var(--nav-density,.76);background:linear-gradient(to bottom, var(--nav-surface) 0%, color-mix(in srgb, var(--nav-surface) 90%, transparent) 35%, color-mix(in srgb, var(--nav-surface) 60%, transparent) 64%, color-mix(in srgb, var(--nav-surface) 20%, transparent) 84%, transparent 100%);position:absolute;inset:0}.nav-glass i{-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));-webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 var(--start), transparent var(--end));-webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 var(--start), transparent var(--end));mask-image:linear-gradient(to bottom, #000 0%, #000 var(--start), transparent var(--end));position:absolute;inset:0}.nav-glass i:first-child{--blur:2px;--start:52%;--end:100%}.nav-glass i:nth-child(2){--blur:6px;--start:22%;--end:75%}.nav-glass i:nth-child(3){--blur:12px;--start:0%;--end:45%}.nav-mark{white-space:nowrap;font-family:var(--serif);--brand-cutout:var(--nav-surface);justify-self:start;align-items:center;gap:.65rem;min-height:44px;font-size:1.5rem;line-height:1;display:inline-flex}.brand-icon{flex-shrink:0;width:2.35rem;height:2.35rem}.arrow-icon{vertical-align:middle;flex-shrink:0;width:1.2rem;height:1.2rem;display:inline-block}.arrow-down{transform:rotate(135deg)}.nav nav{gap:clamp(1rem,2.4vw,2rem);font-size:.9rem;display:flex}.nav nav a{align-items:center;min-height:44px;display:inline-flex;position:relative}.nav nav a:after{content:"";background:var(--signal);transform-origin:0;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:.55rem;left:0;right:0;transform:scaleX(0)}.nav nav a:hover:after,.nav nav a[aria-current=true]:after{transform:scaleX(1)}.nav-clock{white-space:nowrap;justify-self:end}.hero{touch-action:pan-y;grid-template-rows:1fr auto;min-height:100svh;display:grid;position:relative;overflow:clip}.hero-stage{position:absolute;inset:0}.hero-stage canvas{width:100%;height:100%}.hero-title{text-align:center;padding:var(--nav-h) var(--pad) 8rem;font-family:var(--serif);letter-spacing:-.02em;opacity:0;pointer-events:none;place-items:center;font-size:clamp(4rem,17vw,16rem);font-weight:400;line-height:.9;transition:opacity .6s;display:grid;position:absolute;inset:0}.hero.no-gl .hero-title{opacity:1}.hero-foot{z-index:1;padding:0 var(--pad) clamp(1.25rem, 3vh, 2.25rem);opacity:calc(1 - var(--hp,0) * 1.4);grid-template-columns:minmax(0,28rem) 1fr;align-self:end;align-items:end;gap:1rem 2rem;display:grid;position:relative}.hero-lead{letter-spacing:-.01em;font-size:clamp(1.05rem,1.1rem + .3vw,1.35rem);line-height:1.35}.hero-lead span{color:var(--muted);display:block}.hero-explore{justify-self:end;align-items:center;gap:.9rem;min-height:48px;display:inline-flex}.round-arrow{border:1px solid var(--line);border-radius:50%;place-items:center;width:3.25rem;height:3.25rem;transition:color .25s,background .25s,border-color .25s;display:grid}.hero-explore:hover .round-arrow{background:var(--ink);color:var(--paper);border-color:var(--ink)}.statement{max-width:var(--max);padding:var(--section-space) var(--pad);margin:0 auto}.statement-text{font-family:var(--serif);letter-spacing:-.015em;text-wrap:balance;max-width:24em;font-size:clamp(1.9rem,1rem + 3.6vw,4.2rem);line-height:1.12}.js .statement-text .w{opacity:.16}.stats{margin-top:var(--content-space);border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stats dt{color:var(--muted);order:2;font-size:.9rem}.stats .stat-value{font-family:var(--serif);letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:clamp(3rem,7vw,7rem);line-height:1}.stats>div{border-right:1px solid var(--line);flex-direction:column;gap:.35rem;min-width:0;padding:1.5rem;display:flex}.stats>div:first-child{padding-left:0}.stats>div:last-child{border-right:0;padding-right:0}.stats .stat-detail{color:var(--muted);order:3;font-size:.85rem}.sec-head{max-width:var(--max);padding:0 var(--pad);gap:1rem var(--grid-space);grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);margin:0 auto;display:grid}.sec-head>.mono,.sec-head h2:only-of-type:last-child{grid-column:1/-1}.sec-head h2,.contact h2{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(2.75rem,1.5rem + 6vw,7rem);font-weight:400;line-height:.95}.sec-head em,.contact h2 em{color:var(--signal-ink)}.dark .sec-head em,.contact h2 em{color:var(--signal)}.sec-aside{color:var(--muted);align-self:end;max-width:26rem}.sheet{border-radius:clamp(1.25rem,3vw,2.5rem) clamp(1.25rem,3vw,2.5rem) 0 0;margin-top:-1px;position:relative}.work{padding:var(--section-space) 0}.featured-projects{max-width:var(--max);margin:var(--content-space) auto 0;padding:0 var(--pad);align-items:start;gap:var(--grid-space);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-feature{min-width:0}.project-feature summary{cursor:pointer;list-style:none}.project-feature summary::-webkit-details-marker{display:none}.feature-media{aspect-ratio:1.4;background:#91ada2;border:1px solid #ffffff12;border-radius:.8rem;align-items:center;padding:clamp(1.25rem,2.4vw,2.5rem) clamp(1.2rem,2.5vw,2.5rem);display:flex;overflow:hidden}.feature-nexdrop .feature-media{background:#94aab9}.feature-image-wrap{width:100%;transition:transform .8s var(--ease), box-shadow .8s;border-radius:.35rem;overflow:hidden;transform:rotate(-2deg);box-shadow:0 1.4rem 2.7rem #0005,0 0 0 1px #0001}.feature-nexdrop .feature-image-wrap{transform:rotate(2deg)}.feature-image-wrap img{aspect-ratio:1.5;object-fit:cover;object-position:top;width:100%;height:auto}.project-feature summary:hover .feature-image-wrap,.project-feature[open] .feature-image-wrap{transform:rotate(0)translateY(-.3rem);box-shadow:0 1.8rem 3rem #0006,0 0 0 1px #ffffff1a}.feature-heading{justify-content:space-between;align-items:center;gap:1rem;padding-top:1.4rem;display:flex}.feature-heading h3{font-family:var(--serif);letter-spacing:-.03em;font-size:clamp(2.4rem,3.8vw,4rem);font-weight:400;line-height:1}.feature-heading p{color:var(--muted);margin-top:.6rem}.feature-toggle{border:1px solid var(--line);width:2.75rem;height:2.75rem;transition:transform .4s var(--ease), color .3s, background .3s;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.3rem;font-weight:300;display:grid}.project-feature[open] .feature-toggle{background:var(--paper);color:var(--ink);transform:rotate(45deg)}.feature-award{align-items:center;gap:.5rem;margin-top:1.1rem;font-size:.85rem;display:inline-flex}.feature-award>span{background:var(--signal);border-radius:50%;flex-shrink:0;width:5px;height:5px}.feature-body{border-top:1px solid var(--line);gap:1.25rem;margin-top:1.3rem;padding-top:1.3rem;display:grid}.feature-body .link-arrow{justify-self:start}.rows{max-width:var(--max);margin:var(--content-space) auto 0;padding:0 var(--pad);border-top:1px solid var(--line)}.rows:has(.row:hover) .row:not(:hover,.on){opacity:.38}.row{border-bottom:1px solid var(--line);transition:opacity .35s}.row h3{font:inherit}.row button{grid-template-columns:3rem minmax(0,1fr) minmax(0,22rem) 1.5rem;align-items:center;gap:1rem;width:100%;min-height:44px;padding:clamp(1rem,2.4vh,1.75rem) 0;display:grid}.row-i{color:var(--muted)}.row-name{font-family:var(--serif);letter-spacing:-.02em;transition:transform .5s var(--ease), color .3s;font-size:clamp(2.25rem,1.2rem + 4.6vw,5.5rem);line-height:1}.row-line{color:var(--muted);font-size:.95rem}.row-plus{width:1.1rem;height:1.1rem;position:relative}.row-plus:before,.row-plus:after{content:"";height:1.5px;transition:transform .4s var(--ease);background:currentColor;position:absolute;top:50%;left:0;right:0}.row-plus:after{transform:rotate(90deg)}.row.on .row-plus:after{transform:rotate(0)}@media (hover:hover){.row button:hover .row-name{color:var(--signal);transform:translate(1rem)}}.row.on .row-name{color:var(--signal)}.panel{transition:grid-template-rows .55s var(--ease);grid-template-rows:0fr;display:grid}.row.on .panel{grid-template-rows:1fr}.panel-in{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.25rem,3vw,3rem);min-height:0;display:grid;overflow:hidden}.row.on .panel-in{padding-bottom:clamp(1.5rem,4vh,2.5rem)}.cover{background:var(--chip);aspect-ratio:3/2;border-radius:.9rem;overflow:hidden}.cover img,.cover canvas{object-fit:cover;width:100%;height:100%}.detail{flex-direction:column;align-self:center;gap:1.1rem;display:flex}.badge{background:var(--signal);color:var(--ink);border-radius:999px;align-self:flex-start;padding:.35rem .8rem}.points{gap:.7rem;display:grid}.points li{max-width:40rem;padding-left:1.2rem;position:relative}.points li:before{content:"";background:currentColor;width:.55rem;height:1px;position:absolute;top:.75em;left:0}.chips{flex-wrap:wrap;gap:.45rem;display:flex}.chips li{border:1px solid var(--line);background:var(--chip);border-radius:999px;padding:.2rem .7rem;font-size:.82rem}.link-arrow{border-bottom:1px solid;align-self:flex-start}.link-arrow:hover,.link-arrow:focus-visible{color:var(--signal);border-color:var(--signal)}.stage{z-index:40;pointer-events:none;will-change:transform;position:fixed;top:0;left:0}.about{padding:var(--section-space) 0}.about-grid{max-width:var(--max);margin:var(--content-space) auto 0;padding:0 var(--pad);gap:var(--grid-space);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;display:grid}.about-media{top:calc(var(--nav-h) + 1.5rem);position:sticky}.portrait-frame{--frame-padding:.65rem;width:min(100%, calc(clamp(20rem, 65svh, 40rem) * .8 + var(--frame-padding) * 2 + 2px));padding:var(--frame-padding);border:1px solid var(--line);border-radius:1rem}.portrait{aspect-ratio:4/5;background:var(--ink);border-radius:1rem;width:100%;position:relative;overflow:hidden}.portrait img,.portrait canvas{object-fit:cover;filter:saturate(.88)url(#portrait-cool);width:100%;height:100%;position:absolute;inset:0}.portrait canvas{opacity:0}.portrait.has-gl canvas{opacity:1}.portrait.has-gl img{opacity:0}.facts{border-top:1px solid var(--line);display:grid}.facts>div{border-bottom:1px solid var(--line);grid-template-columns:clamp(6rem,10vw,9rem) minmax(0,1fr);gap:1rem;padding:.9rem 0;display:grid}.facts dt{color:var(--muted)}.fact-secondary{color:var(--muted);margin-top:.4rem;display:block}.mini{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:clamp(2rem,5vh,3.25rem) 0 .9rem;font-size:.75rem;font-weight:400}.marquee{border-block:1px solid var(--line);margin-bottom:var(--content-space);padding:1.4rem 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000);mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000)}.track{width:max-content;animation:50s linear infinite slide;display:flex}.js .track{will-change:transform;animation:none}.skill-brand{white-space:nowrap;font-family:var(--sans);letter-spacing:-.04em;align-items:center;gap:.8rem;padding-right:clamp(2.5rem,5vw,5rem);font-size:clamp(1.5rem,1rem + 1.6vw,2.6rem);font-weight:600;line-height:1.2;display:inline-flex}.skill-brand img{object-fit:contain;flex-shrink:0;width:clamp(2.1rem,3.6vw,3.25rem);height:clamp(2.1rem,3.6vw,3.25rem)}.skill-brand[data-brand=nextjs]{letter-spacing:-.07em;font-weight:500}.skill-brand[data-brand=nodejs],.skill-brand[data-brand=typescript]{font-family:var(--mono);font-weight:500}.skill-brand[data-brand=oracle]{text-transform:uppercase;letter-spacing:.02em}.skill-concept{font-family:var(--mono);letter-spacing:-.03em;color:var(--muted);font-size:clamp(1.1rem,.9rem + .7vw,1.6rem);font-weight:400}@keyframes slide{to{transform:translate(-50%)}}.stack{height:clamp(36rem, 100svh - var(--nav-h), 64rem);flex-direction:column;padding:clamp(1.25rem,3svh,2rem) 0;display:flex}.stack .sec-head{flex-shrink:0;width:100%}.stack .sec-head h2{font-size:clamp(2.75rem,5.5vw,5.5rem)}.network-key{width:100%;max-width:var(--max);padding:.85rem var(--pad) 0;color:var(--muted);flex-wrap:wrap;flex-shrink:0;gap:.75rem 1.5rem;margin:0 auto;display:flex}.network-key li{align-items:center;gap:.5rem;display:inline-flex}.network-key i{border-radius:50%;width:6px;height:6px}.key-project{background:var(--signal)}.key-experience{border:1px solid var(--signal)}.key-group{border:1px solid var(--paper)}.key-tech{background:var(--paper)}.network{width:100%;max-width:var(--max);min-height:0;padding:0 var(--pad);flex:1;margin:clamp(1rem,3vh,2rem) auto 0;display:flex}.network canvas{touch-action:pan-y;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;height:100%;min-height:0}.experience{padding:var(--section-space) 0}.timeline{max-width:var(--max);margin:var(--content-space) auto 0;padding:0 var(--pad);--p:0;position:relative}.timeline:before,.timeline:after{content:"";left:calc(var(--pad) + 5px);width:1px;position:absolute;top:0;bottom:0}.timeline:before{background:var(--line)}.timeline:after{background:var(--signal-ink);transform:scaleY(var(--p));transform-origin:top}.timeline>li{border-top:1px solid var(--line);grid-template-columns:minmax(0,3fr) minmax(0,7fr);gap:1rem 3rem;padding:clamp(1.75rem,4vh,2.75rem) 0 clamp(1.75rem,4vh,2.75rem) 2.75rem;display:grid;position:relative}.timeline>li:last-child{border-bottom:1px solid var(--line)}.timeline>li:before{content:"";z-index:1;background:var(--paper);border:1px solid color-mix(in srgb, var(--ink) 40%, transparent);width:11px;height:11px;transition:background .5s, border-color .5s, box-shadow .5s var(--ease);border-radius:50%;position:absolute;top:calc(clamp(1.75rem,4vh,2.75rem) + .75rem);left:0}.timeline>li.reached:before{background:var(--signal-ink);border-color:var(--signal-ink);box-shadow:0 0 0 7px color-mix(in srgb, var(--signal-ink) 16%, transparent)}.when{color:var(--muted);padding-top:.55rem}.timeline h3{font-family:var(--serif);letter-spacing:-.01em;font-size:clamp(1.9rem,3.3vw,3.5rem);font-weight:400;line-height:1.05}.role{color:var(--signal-ink);margin:.3rem 0 1.1rem}.contact{min-height:min(100svh - var(--nav-h), 64rem);padding:var(--section-space) max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad))) 1.5rem;flex-direction:column;gap:1.25rem;display:flex;position:relative;overflow:clip}.contact>:not(.contact-field){z-index:1;position:relative}.contact>.foot{justify-self:stretch}.contact-field{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.contact-heading{justify-content:space-between;align-items:center;gap:2rem;margin-top:1rem;display:flex}.contact h2{letter-spacing:-.035em;font-size:clamp(4rem,min(12.8vw,20svh),13rem);line-height:.88}.contact-arrow{width:clamp(3rem,min(11vw,18svh),11rem);height:auto;color:var(--signal);stroke-width:.8px}.contact-bottom{padding-bottom:var(--content-space);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;margin-top:1rem;display:flex}.contact-email{border-bottom:1px solid color-mix(in srgb, var(--paper) 45%, transparent);font-family:var(--serif);letter-spacing:-.02em;align-items:center;gap:1.5rem;padding-bottom:.45rem;font-size:clamp(1.7rem,3.5vw,3.7rem);line-height:1.15;transition:color .25s,border-color .25s;display:inline-flex}.contact-email .arrow-icon{width:1.4rem;height:1.4rem;transition:transform .4s var(--ease)}.contact-email:hover{color:var(--signal);border-color:var(--signal)}.contact-email:hover .arrow-icon{transform:translate(3px,-3px)}.actions{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.contact-bottom .actions{margin-top:0}.btn{min-height:48px;transition:background .25s, color .25s, border-color .25s, transform .4s var(--ease);border:1px solid;border-radius:999px;align-items:center;gap:.65rem;padding:.7rem 1.5rem;font-size:.95rem;font-weight:500;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn.solid{background:var(--paper);color:var(--ink);border-color:var(--paper)}.btn.solid:hover{background:var(--signal);border-color:var(--signal)}.btn:not(.solid):hover{background:var(--paper);color:var(--ink)}.split{transition:transform .4s var(--ease);border:1px solid;border-radius:999px;display:inline-flex;overflow:hidden}.split .btn{border:0;border-radius:0;transition:background .25s,color .25s;transform:none}.split .btn.icon{border-left:1px solid;padding:.7rem 1rem}.split .btn:hover,.split .btn:focus-visible{background:var(--paper);color:var(--ink);transform:none}.split .btn:focus-visible{outline-offset:-4px}.foot{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:1fr auto;align-items:center;gap:1.5rem;margin-top:auto;padding-top:1.25rem;display:grid}.footer-brand{color:var(--paper);font-family:var(--serif);--brand-cutout:var(--ink);justify-self:start;align-items:center;gap:.75rem;font-size:1.5rem;display:inline-flex}.back-top{min-height:44px;color:var(--paper);justify-self:end;align-items:center;gap:.65rem;display:inline-flex}.back-top:hover{color:var(--signal)}.cursor{z-index:70;pointer-events:none;opacity:0;color:var(--ink);transition:opacity .3s;position:fixed;top:0;left:0}.cursor.inv{color:var(--paper)}.cursor.on{opacity:1}.cursor:before{content:"";width:28px;height:28px;transition:transform .35s var(--ease), opacity .3s;opacity:.7;border:1.5px solid;border-radius:50%;margin:-14px 0 0 -14px;position:absolute}.cursor:after{content:"";background:currentColor;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute}.cursor.link:before{opacity:.45;transform:scale(1.7)}.js [data-reveal]{opacity:0;transition:opacity .9s var(--ease) var(--d,0s), transform .9s var(--ease) var(--d,0s);transform:translateY(24px)}.js [data-reveal].in{opacity:1;transform:none}@media (max-width:960px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div:nth-child(2n){border-right:0;padding-right:0}.stats>div:nth-child(odd){padding-left:0}.stats>div:nth-child(n+3){border-top:1px solid var(--line)}.panel-in{grid-template-columns:1fr}.timeline>li{grid-template-columns:1fr;gap:.5rem}.row button{grid-template-columns:2.5rem minmax(0,1fr) 1.5rem}.row-line{grid-area:2/2}.row-plus{grid-area:1/3}}@media (max-width:800px){.sec-head{grid-template-columns:1fr}}@media (max-width:720px){.nav{grid-template-columns:1fr auto}.nav-mark{gap:.5rem;font-size:1.25rem}.nav .brand-icon{width:2rem;height:2rem}.nav-clock{display:none}.nav nav{gap:.65rem;font-size:.8rem}.hero-title{padding-bottom:12rem}.hero-foot{grid-template-columns:1fr}.hero-explore{justify-self:start}.featured-projects{gap:var(--content-space);grid-template-columns:1fr}.about-grid{grid-template-columns:1fr}.about-media{width:min(100%,28rem);position:static}.portrait-frame{width:100%}.facts>div{grid-template-columns:1fr;gap:.15rem}.stack{padding-block:1.5rem}.stack .sec-head{gap:.75rem}.stack .sec-aside{font-size:.9rem}.network-key{column-gap:1rem}.contact-heading{gap:.75rem}.contact h2{font-size:clamp(3.5rem,14vw,6rem)}.contact-arrow{width:3rem}.foot{grid-template-columns:1fr auto}}@media (max-width:380px){.nav-mark>span{display:none}.nav nav{gap:.6rem}.stats{grid-template-columns:1fr}.stats>div{border-right:0;padding-inline:0}.stats>div+div{border-top:1px solid var(--line)}.contact-arrow{display:none}.foot{grid-template-columns:1fr;gap:.75rem}.back-top{justify-self:start}}@media (hover:none){.cursor{display:none}}@media (max-height:600px){:root{--section-space:clamp(2rem, 1.5rem + 2vw, 4rem);--content-space:clamp(1.25rem, 1rem + 1vw, 2rem)}.about-media{position:static}.contact h2{font-size:clamp(3.5rem,min(12.8vw,16svh),7rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.track{animation:none}.js [data-reveal]{opacity:1;transition:none;transform:none}.js .statement-text .w{opacity:1}.panel,.row-name,.row-plus:before,.row-plus:after,.feature-image-wrap,.feature-toggle,.round-arrow,.contact-email,.contact-email .arrow-icon{transition:none}.project-feature summary:hover .feature-image-wrap,.project-feature[open] .feature-image-wrap{transform:none}}
