:root{--black:#050505;--surface:#0a0a09;--white:#f3f1ea;--muted:#98958b;--line:#ffffff1f;--line-strong:#fff3;--gold:#d0a83f;--gold-light:#f0d276;--serif:"Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--gutter:clamp(1.25rem,7vw,8rem);--ease-out:cubic-bezier(.22,1,.36,1);--ease-standard:cubic-bezier(.4,0,.2,1);--duration-fast:.18s;--duration-medium:.42s}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--black);scroll-padding-top:90px}body{background:var(--black);color:var(--white);font-family:var(--sans);margin:0;font-weight:300;overflow-x:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}::selection{background:var(--gold);color:#000}.skip-link{z-index:100;background:var(--gold);color:#000;transition:top var(--duration-fast)var(--ease-out);padding:.8rem 1rem;font-weight:600;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold-light);outline-offset:5px;border-radius:1px}.site-header{z-index:50;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:100%;height:82px;transition:background var(--duration-medium)var(--ease-standard),border-color var(--duration-medium)var(--ease-standard);animation:intro-in .52s var(--ease-out)both;background:#050505ad;justify-content:space-between;align-items:center;padding:0 clamp(1.25rem,4vw,4.5rem);display:flex;position:fixed;top:0;left:0}.site-header.is-scrolled{border-color:var(--line-strong);background:#050505eb}.brand-link{z-index:3}.mark{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.8rem;font-size:.78rem;font-weight:500;display:flex}.mark svg{fill:none;width:36px;height:36px;stroke:var(--gold);stroke-width:1.15px}.mark svg path{stroke:var(--white);stroke-width:1px}.desktop-nav{gap:2.2rem;display:flex}.desktop-nav a,.language{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;font-size:.64rem}.desktop-nav a{color:#bab7af;transition:color var(--duration-fast)var(--ease-standard);padding:.7rem 0;position:relative}.desktop-nav a:after{background:var(--gold);content:"";opacity:0;width:14px;height:1px;position:absolute;bottom:.25rem;left:50%;transform:translate(-50%)}.desktop-nav a:hover,.desktop-nav a[aria-current=location]{color:var(--gold-light)}.desktop-nav a[aria-current=location]:after{opacity:1}.header-actions{z-index:3;align-items:center;gap:1.5rem;display:flex}.language{cursor:pointer;background:0 0;border:0;padding:.6rem}.language span{color:#696760;transition:color var(--duration-fast)var(--ease-standard)}.language .active{color:var(--white)}.language i{color:#4c4a45;margin:0 .35rem;font-style:normal}.menu-button{cursor:pointer;background:0 0;border:0;width:38px;height:38px;padding:0;display:none}.menu-button span{background:var(--white);width:22px;height:1px;transition:transform .32s var(--ease-out),background var(--duration-fast)var(--ease-standard);margin:6px auto;display:block}.menu-button[aria-expanded=true] span{background:var(--gold-light)}.menu-button[aria-expanded=true] span:first-child{transform:translateY(3.5px)rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.5px)rotate(-45deg)}.mobile-nav{display:none}.hero{min-height:100svh;padding:82px var(--gutter)42px;align-items:stretch;display:flex;position:relative;overflow:hidden}.hero:before{z-index:1;content:"";pointer-events:none;background:radial-gradient(circle,#0000 18%,#05050514 50%,#050505 93%),linear-gradient(0deg,#050505 0,#0000 24%);position:absolute;inset:0}.hero-copy{z-index:3;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:calc(100svh - 124px);display:flex;position:relative}.availability{color:#c1beb5;font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:.7rem;font-size:.64rem;display:flex}.hero .availability{--intro-x:-50%;white-space:nowrap;animation:intro-lift .46s .14s var(--ease-out)both;margin:0;position:absolute;top:clamp(2rem,5vh,4rem);left:50%;transform:translate(-50%)}.availability span{background:var(--gold);width:6px;height:6px;box-shadow:0 0 12px var(--gold);border-radius:50%}h1{font-family:var(--serif);letter-spacing:-.055em;white-space:nowrap;text-shadow:0 2px 20px #000000b8,0 0 54px #00000075;animation:intro-lift .56s .23s var(--ease-out)both;margin:0;font-size:clamp(4.8rem,10.8vw,10.8rem);font-weight:400;line-height:.82}h1 em{color:var(--gold-light);font-weight:400}.hero-details{background:linear-gradient(#0000,#0505059e 44%,#050505f2);flex-direction:column;align-items:center;width:min(680px,90vw);padding-top:3rem;display:flex;position:absolute;bottom:clamp(2rem,5vh,4.4rem);left:50%;transform:translate(-50%)}.role{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;animation:intro-lift .48s .36s var(--ease-out)both;margin:0 0 .8rem;font-size:clamp(.72rem,1vw,.9rem)}.hero-intro{color:#aaa79f;max-width:600px;animation:intro-lift .48s .43s var(--ease-out)both;margin:.25rem auto 0;font-size:clamp(.9rem,1.15vw,1.08rem);line-height:1.55}.hero-actions{animation:intro-lift .48s .5s var(--ease-out)both;justify-content:center;gap:.8rem;margin-top:1.35rem;display:flex}.button{border:1px solid var(--line);letter-spacing:.04em;min-height:49px;transition:color var(--duration-fast)var(--ease-standard),background var(--duration-fast)var(--ease-standard),border-color var(--duration-fast)var(--ease-standard),transform var(--duration-fast)var(--ease-out);align-items:center;gap:.9rem;padding:0 1.25rem;font-size:.75rem;display:inline-flex}.button svg,.hero-github svg,.project-copy a svg{fill:none;stroke:currentColor;stroke-width:1.2px;width:17px;transition:transform .26s var(--ease-out)}.button:hover svg,.button:focus-visible svg,.hero-github:hover svg,.hero-github:focus-visible svg,.project-copy a:hover svg,.project-copy a:focus-visible svg{transform:translate(4px)}.button-primary{background:var(--white);color:#070707}.button-primary:hover{background:var(--gold-light)}.hero-github{color:#c0bdb4;letter-spacing:.04em;min-height:49px;transition:color var(--duration-fast)var(--ease-standard);align-items:center;gap:.8rem;padding:0 .35rem;font-size:.75rem;display:flex}.hero-github:hover{color:var(--gold-light)}@keyframes intro-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-lift{0%{opacity:0;transform:translate(var(--intro-x,0),12px)}to{opacity:1;transform:translate(var(--intro-x,0),0)}}.black-hole{z-index:0;filter:saturate(1.08);width:min(92vw,1180px);height:min(92vw,1180px);position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.black-hole:after{content:"";pointer-events:none;border:1px solid #d0a83f12;border-radius:50%;position:absolute;inset:16%}.black-hole canvas,.black-hole-fallback{width:100%;height:100%;position:absolute;inset:0}.black-hole canvas{opacity:0;transition:opacity 1.8s}.black-hole.is-ready canvas{opacity:1}.black-hole.is-ready .black-hole-fallback{opacity:0}.black-hole-fallback{filter:blur(.4px);background:radial-gradient(circle,#000 0 14%,#f0d276 14.3%,#d0a83f6b 15.5%,#0000 21%),linear-gradient(176deg,#0000 43%,#f0d2768c 48.8%,#000 50%,#d0a83f57 51.4%,#0000 57%);transition:opacity 1.2s}.section{padding:clamp(6.25rem,10vw,9.25rem)var(--gutter);border-top:1px solid var(--line);position:relative}.section-label{color:#aaa79f;font-family:var(--mono);letter-spacing:.17em;text-transform:uppercase;gap:1.1rem;font-size:.62rem;display:flex}.section-label span{color:var(--gold)}h2{font-family:var(--serif);letter-spacing:-.04em;text-wrap:balance;margin:clamp(2.25rem,3.5vw,3.5rem) 0;font-size:clamp(3.25rem,6.5vw,6.7rem);font-weight:400;line-height:.94}[data-reveal].reveal-pending{opacity:0;transition:opacity .48s var(--ease-out),transform .48s var(--ease-out);transform:translateY(14px)}[data-reveal].reveal-pending.is-revealed{opacity:1;transform:translateY(0)}.about{background:#050505;grid-template-columns:minmax(130px,.7fr) minmax(0,2.5fr);gap:clamp(3rem,8vw,9rem);padding-top:clamp(7rem,11.5vw,10.5rem);padding-bottom:clamp(7rem,11.5vw,10.5rem);display:grid}.about-content{max-width:900px}.about-content h2{max-width:820px;margin-top:0}.about-content>p{color:#aaa79f;max-width:740px;margin:0 0 clamp(3.5rem,6vw,5.5rem);font-size:clamp(1.1rem,1.65vw,1.45rem);line-height:1.72}.about ol{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.about li{border-bottom:1px solid var(--line);gap:2rem;padding:1.35rem 0;font-size:1rem;display:flex}.about li span{color:var(--gold);font:.63rem var(--mono);padding-top:.3rem}.expertise{background:#080807}.expertise h2{max-width:930px}.work>h2{max-width:850px}.capabilities{border-top:1px solid var(--line);margin-top:clamp(3.5rem,6vw,5.5rem)}.capabilities article{border-bottom:1px solid var(--line);grid-template-columns:minmax(44px,.3fr) minmax(170px,.9fr) minmax(260px,1.3fr) minmax(180px,.85fr);align-items:start;gap:clamp(1.25rem,3vw,3rem);padding:2.25rem 0;display:grid}.cap-number{color:var(--gold);font:.64rem var(--mono);padding-top:.4rem}.capabilities h3{font:400 clamp(1.65rem,2.15vw,2.25rem)var(--serif);letter-spacing:-.02em;margin:0}.capabilities p{color:#9b9890;max-width:430px;margin:0;line-height:1.68}.capabilities ul,.project-copy ul{flex-wrap:wrap;gap:0;margin:0;padding:0;list-style:none;display:flex}.capabilities li,.project-copy li{color:#aaa79f;font:.59rem/1.7 var(--mono);letter-spacing:.07em;text-transform:uppercase;align-items:center;display:flex}.capabilities li:not(:last-child):after,.project-copy li:not(:last-child):after{color:var(--gold);content:"·";margin:0 .6rem}.work{background:#050505}.project-list{margin-top:clamp(3.75rem,7vw,6.25rem)}.project{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr);align-items:center;gap:clamp(3rem,7vw,8rem);padding:clamp(3.5rem,6vw,6.1rem) 0;display:grid;position:relative}.project:nth-child(2n){grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr)}.project:nth-child(2n) .project-visual{order:2}.project-visual{aspect-ratio:1.46;border:1px solid var(--line);background:#0d0d0b;position:relative;overflow:hidden}.project-visual img{object-fit:cover}.project-meta{color:var(--gold);font:.6rem var(--mono);letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;gap:1rem;display:flex}.project-meta span:last-child{color:#b9a76f}.project-copy h3{font:400 clamp(2.55rem,4.25vw,4.7rem)/.98 var(--serif);letter-spacing:-.035em;text-wrap:balance;margin:1.5rem 0 clamp(2.25rem,4vw,3.5rem)}.project-copy dl{margin:0}.project-copy dl>div{border-top:1px solid var(--line);grid-template-columns:90px 1fr;gap:1rem;padding:1.3rem 0;display:grid}.project-copy dt{color:#8e8b83;font:.56rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.project-copy dd{color:#aaa79f;margin:0;line-height:1.6}.project-copy ul{margin:1.5rem 0 2rem}.project-copy>a{border-bottom:1px solid var(--gold);transition:color var(--duration-fast)var(--ease-standard);align-items:center;gap:.8rem;padding-bottom:.4rem;font-size:.74rem;display:inline-flex}.project-copy>a:hover{color:var(--gold-light)}.contact{background:#080807;padding-top:clamp(7rem,11.5vw,10.5rem);padding-bottom:clamp(7rem,11.5vw,10.5rem)}.contact-inner{grid-template-columns:minmax(0,.9fr) minmax(340px,.75fr);align-items:start;gap:clamp(4rem,9vw,9rem);max-width:1240px;margin:clamp(3.5rem,6vw,5rem) auto 0;display:grid}.contact-copy h2{max-width:680px;margin:0 0 2rem}.contact-copy p{color:#aaa79f;max-width:560px;margin:0;font-size:1.1rem;line-height:1.72}.contact-form{text-align:left;flex-direction:column;gap:1.75rem;width:100%;margin:0;display:flex;position:relative}.contact-field{flex-direction:column;gap:.65rem;display:flex}.contact-field span{color:#b5b1a8;font:.6rem var(--mono);letter-spacing:.12em;text-transform:uppercase}.contact-field input,.contact-field textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--white);font:300 1rem/1.55 var(--sans);transition:border-color var(--duration-fast)var(--ease-standard);background:0 0;border-radius:0}.contact-field input{min-height:44px;padding:0 0 .7rem}.contact-field textarea{resize:vertical;min-height:132px;padding:0 0 .7rem}.contact-field input:hover,.contact-field textarea:hover{border-color:var(--line-strong)}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--gold);outline:0}.contact-submit{cursor:pointer;align-self:flex-start}.form-honeypot{width:1px!important;height:1px!important;position:absolute!important;left:-10000px!important;overflow:hidden!important}footer{border-top:1px solid var(--line);color:#77746d;min-height:138px;font:.58rem var(--mono);letter-spacing:.06em;text-transform:uppercase;grid-template-columns:1.25fr 1.15fr .8fr auto;align-items:center;padding:2.75rem clamp(1.25rem,4vw,4.5rem);display:grid}footer p{margin:0}footer div{gap:1.4rem;display:flex}footer div a{transition:color var(--duration-fast)var(--ease-standard)}footer div a:hover{color:var(--gold)}footer>span{text-align:right}@media (max-width:960px){:root{--gutter:clamp(1.25rem,5.5vw,3.5rem)}html{scroll-padding-top:78px}.site-header{height:70px}.mark>span,.desktop-nav{display:none}.menu-button{display:block}.mobile-nav{height:calc(100dvh - 69px);padding:2.25rem var(--gutter)3rem;overscroll-behavior:contain;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .36s var(--ease-standard),transform .44s var(--ease-out),visibility 0s linear .44s;background:radial-gradient(circle at 88% 15%,#d0a83f1a,#0000 32%),#070707fb;flex-direction:column;justify-content:center;display:flex;position:fixed;inset:69px 0 auto;overflow-y:auto;transform:translate(7%)}.mobile-nav.open{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translate(0)}.mobile-nav a{border-bottom:1px solid var(--line);font:400 clamp(2.25rem,7vw,3.7rem)var(--serif);opacity:0;transition:color var(--duration-fast)var(--ease-standard),border-color var(--duration-fast)var(--ease-standard),opacity .32s var(--ease-out),transform .42s var(--ease-out);padding:clamp(1rem,3vh,1.5rem) 0;transform:translate(22px)}.mobile-nav.open a{opacity:1;transform:translate(0)}.mobile-nav.open a:first-child{transition-delay:80ms}.mobile-nav.open a:nth-child(2){transition-delay:.12s}.mobile-nav.open a:nth-child(3){transition-delay:.16s}.mobile-nav.open a:nth-child(4){transition-delay:.2s}.mobile-nav a:hover,.mobile-nav a[aria-current=location]{color:var(--gold-light);border-color:#d0a83f80}.mobile-nav a span{color:var(--gold);font:.57rem var(--mono);margin-right:1.3rem}.hero{min-height:100svh;padding:70px var(--gutter)18px}.hero-copy{justify-content:flex-start;min-height:calc(100svh - 88px)}.hero .availability{--intro-x:0;margin:clamp(1.25rem,4vh,2rem) 0 0;position:static;transform:none}.hero h1{white-space:normal;margin:auto 0 clamp(1.5rem,5vh,3rem);font-size:clamp(4.3rem,19vw,7rem);line-height:.74}.hero h1 em{display:block}.hero-details{background:linear-gradient(#0000,#050505b8 32%,#050505f5);width:min(620px,100%);margin:0;padding:2.25rem 0 0;position:static;transform:none}.hero-intro{max-width:540px;font-size:.9rem}.hero-actions{width:min(100%,340px)}.button{justify-content:center;padding:0 .85rem}.black-hole{width:128vw;height:128vw;top:42%}.section{padding-top:6.25rem;padding-bottom:6.25rem}.about{display:block}.about-content{max-width:820px}.about-content h2,.capabilities{margin-top:3.5rem}.capabilities article{grid-template-columns:44px minmax(0,1fr);padding-top:2.25rem;padding-bottom:2.25rem}.capabilities article p,.capabilities article ul{grid-column:2}.capabilities article p{max-width:620px}.project-list{margin-top:3.75rem}.project,.project:nth-child(2n){flex-direction:column;gap:2.25rem;padding:3.5rem 0;display:flex}.project:nth-child(2n) .project-visual{order:0}.project-visual{width:100%;max-width:820px}.project-copy{width:100%;max-width:720px}.project-copy h3{margin-bottom:2.25rem}.contact-inner{margin-top:3.5rem;display:block}.contact-copy{max-width:760px}.contact-form{max-width:720px;margin-top:3.5rem}footer{grid-template-columns:1fr 1fr;gap:2rem}footer>span{text-align:left}}@media (max-width:480px){.hero h1{font-size:clamp(4rem,20.5vw,5.25rem)}.hero-details{padding-top:1.75rem}.role{font-size:.68rem}.hero-intro{max-width:96%;line-height:1.5}.hero-actions{gap:1.1rem;margin-top:1.1rem}.button{gap:.55rem;min-height:46px;font-size:.67rem}.hero-github{min-height:46px;padding:0 .2rem;font-size:.67rem}h2{font-size:clamp(3rem,15vw,4.4rem)}.about-content>p{font-size:1.05rem}.about li{gap:1.25rem}.project-copy dl>div{grid-template-columns:72px 1fr}.project-meta{align-items:flex-start}.project-meta span:last-child{text-align:right;max-width:65%}.contact-submit{justify-content:center;width:100%}footer{grid-template-columns:1fr}}@media (max-width:960px) and (max-height:560px) and (orientation:landscape){.site-header{height:62px}.mobile-nav{height:calc(100dvh - 61px);padding-top:1rem;padding-bottom:1rem;top:61px}.mobile-nav a{padding:.65rem 0;font-size:clamp(1.8rem,6vh,2.6rem)}.hero{min-height:100svh;padding:62px 2rem 12px}.hero-copy{text-align:left;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1.05fr) minmax(275px,.95fr);gap:0 1.5rem;min-height:calc(100svh - 74px);display:grid}.hero .availability{grid-column:1/-1;justify-self:center;margin:.55rem 0 0}.hero h1{align-self:center;margin:0;font-size:clamp(3.5rem,11vw,6rem);line-height:.72}.hero-details{text-align:left;background:0 0;grid-area:2/2;align-self:center;align-items:flex-start;width:100%;padding:0}.hero-intro{max-width:100%;margin-left:0;font-size:.8rem;line-height:1.45}.role{margin-bottom:.45rem;font-size:.62rem}.hero-actions{width:100%;margin-top:.8rem}.button{min-height:42px;padding:0 .65rem;font-size:.62rem}.black-hole{width:78vw;height:78vw;top:55%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}[data-reveal].reveal-pending{opacity:1!important;transform:none!important}.black-hole canvas{display:none}.black-hole-fallback{opacity:1!important}}
