:root{--bg:#09090b;--text:#f1efe9;--muted:#aaa8a4;--line:#2b2b2e;--accent:#8b9dff;--blue:#4f6bff;--display:"Space Grotesk",sans-serif;--body:"Manrope",sans-serif;--mono:"DM Mono",monospace;--gutter:clamp(1.4rem,4.6vw,5rem);--space:clamp(6rem,12vw,11rem)}
*{box-sizing:border-box}html{overflow-x:clip}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--blue);color:white}.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip:focus{position:fixed;z-index:100;top:1rem;left:1rem;background:white;color:#000;padding:.7rem 1rem}
.header{position:fixed;inset:0 0 auto;z-index:50;height:5rem;padding:0 var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid transparent;transition:.2s}.header.scrolled{background:rgba(9,9,11,.93);border-color:var(--line);backdrop-filter:blur(16px)}.logo{font:600 1.45rem/1 var(--display);letter-spacing:-.07em}.logo span{color:var(--blue)}nav{display:flex;gap:3rem}nav a,.talk{font:500 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}nav a:hover,.talk:hover{color:white}.talk{justify-self:end;color:white}.talk span{color:var(--accent)}.menu{display:none;background:none;border:0;color:white}
.hero{position:relative;isolation:isolate;min-height:100svh;padding:clamp(8rem,15vh,11rem) var(--gutter) 5rem;display:flex;align-items:center;border-bottom:1px solid var(--line)}.hero-copy{position:relative;z-index:2;width:100%;min-width:0}.hero h1{max-width:13ch;margin:0;font:500 clamp(3.5rem,7.7vw,8.4rem)/.91 var(--display);letter-spacing:-.075em}.hero em,.about em,.contact em{color:var(--accent);font-style:normal}.hero-detail{display:grid;grid-template-columns:minmax(18rem,31rem) auto;gap:clamp(2rem,5vw,5rem);align-items:end;margin-top:clamp(3rem,7vh,5rem)}.hero-detail p{margin:0;color:#c1bfbb;font-size:clamp(1rem,1.3vw,1.2rem)}.actions{display:flex;align-items:center;gap:1.5rem}.primary,.secondary{font:500 .74rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.primary{display:flex;gap:1rem;padding:1.45rem;background:var(--blue);color:white}.primary:hover{background:#6279ff}.secondary{padding:.8rem 0;border-bottom:1px solid var(--muted)}.orbit{position:absolute;z-index:-1;width:min(54vw,48rem);right:clamp(-15rem,-8vw,-5rem);top:50%;transform:translateY(-50%);opacity:.7}.orbit svg{width:100%;overflow:visible}.orbit circle,.orbit path{fill:none;stroke:#3b3b40;stroke-width:1}.orbit .dash{stroke-dasharray:5 8;animation:dash 24s linear infinite}.orbit .dot{fill:var(--blue);stroke:none}.orbit .node{fill:var(--text);stroke:none}.orbit .cross{stroke:var(--accent)}.scroll{position:absolute;bottom:1.8rem;left:var(--gutter);font:400 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.section{padding:var(--space) var(--gutter)}.section-head{display:grid;grid-template-columns:minmax(8rem,.5fr) minmax(18rem,1.4fr) minmax(15rem,.7fr);gap:2rem;align-items:end;margin-bottom:clamp(4rem,8vw,7rem)}.section-head>span,.index{font:400 .68rem/1.4 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--accent)}.section h2{margin:0;font:500 clamp(3rem,6vw,7rem)/.95 var(--display);letter-spacing:-.065em}.section-head p{margin:0;color:var(--muted)}.work{background:#0d0d0f}.project{display:grid;grid-template-columns:minmax(4rem,.35fr) minmax(20rem,1.5fr) minmax(10rem,.55fr);gap:2rem;padding:clamp(2rem,4vw,3.5rem) 0;border-top:1px solid var(--line)}.project:last-child{border-bottom:1px solid var(--line)}.project>span{font:400 .68rem/1 var(--mono);color:var(--muted)}.project h3{margin:0;font:500 clamp(2rem,4vw,4.2rem)/1 var(--display);letter-spacing:-.05em}.project p{max-width:45rem;color:var(--muted)}.project small{font:400 .66rem/1.5 var(--mono);letter-spacing:.06em}.project aside{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.8rem}.project aside a,.all{font:500 .7rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid;padding-bottom:.25rem}.project aside a:hover,.all:hover{color:var(--accent)}.all{display:inline-block;margin-top:3rem;color:var(--accent);border:0}
.expertise{background:var(--text);color:var(--bg)}.expertise .section-head{grid-template-columns:minmax(8rem,.5fr) 2.1fr}.expertise .section-head>span{color:#4358d6}.skills{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #c9c7c1}.skills article{padding:2rem clamp(1.5rem,3vw,3.2rem) 0 0;min-height:30rem}.skills article+article{border-left:1px solid #c9c7c1;padding-left:clamp(1.5rem,3vw,3.2rem)}.skills span{font:400 .66rem/1 var(--mono)}.skills h3{margin:5rem 0 1.5rem;font:500 clamp(1.6rem,2.6vw,2.7rem)/1 var(--display);letter-spacing:-.045em}.skills p{color:#55545a}.skills ul{list-style:none;margin:2.5rem 0 0;padding:0}.skills li{padding:.7rem 0;border-bottom:1px solid #d5d2cc;font:500 .7rem/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.about{min-height:48rem}.about-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(4rem,12vw,12rem);align-items:end;margin-top:clamp(4rem,8vw,8rem)}.about h2{max-width:10ch}.about-copy{max-width:34rem;color:var(--muted)}.about-copy .lead{color:white;font-size:clamp(1.25rem,1.8vw,1.65rem);line-height:1.5}.about-copy small{display:block;margin-top:3rem;font:400 .67rem/1.4 var(--mono);letter-spacing:.06em;color:white}.contact{border-top:1px solid var(--line)}.contact-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:4rem;align-items:end;margin-top:clamp(4rem,8vw,8rem)}.contact h2{max-width:11ch}.contact-grid>a{display:flex;justify-content:space-between;padding:1.5rem 0;border-block:1px solid var(--line);font:500 .72rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.contact-grid>a:hover{color:var(--accent)}footer{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:1rem;padding:1.7rem var(--gutter);border-top:1px solid var(--line);color:var(--muted);font:400 .64rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}footer i{font-style:normal}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@keyframes dash{to{stroke-dashoffset:-260}}
@media(max-width:900px){.section-head{grid-template-columns:1fr 2fr}.section-head p{grid-column:2}.project{grid-template-columns:3rem 1fr}.project aside{grid-column:2;flex-direction:row}.skills{grid-template-columns:1fr}.skills article{min-height:auto;padding:2rem 0 3rem}.skills article+article{border-left:0;border-top:1px solid #c9c7c1;padding-left:0}.skills h3{margin-top:3rem}}
@media(max-width:700px){.header{height:4.5rem;grid-template-columns:1fr auto}.talk{display:none}.menu{display:grid;gap:.4rem;width:2.5rem;height:2.5rem;place-content:center;z-index:2}.menu i{display:block;width:1.2rem;height:1px;background:currentColor;transition:.2s}.menu[aria-expanded=true] i:first-child{transform:translateY(3.5px) rotate(45deg)}.menu[aria-expanded=true] i:last-child{transform:translateY(-3.5px) rotate(-45deg)}nav{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:rgba(9,9,11,.98);opacity:0;visibility:hidden;transform:translateY(-1rem);transition:.2s}nav.open{opacity:1;visibility:visible;transform:none}nav a{font-size:1.25rem}.hero{min-height:47rem;padding-top:7rem;padding-bottom:6rem}.hero h1{max-width:100%;font-size:clamp(3rem,13vw,5rem);letter-spacing:-.08em}.hero-detail{grid-template-columns:1fr;margin-top:2.5rem}.actions{flex-wrap:wrap}.orbit{width:110vw;right:-68vw;top:34%;opacity:.32}.section-head,.expertise .section-head{grid-template-columns:1fr}.section-head p{grid-column:auto}.project{grid-template-columns:1fr;gap:1rem}.project aside{grid-column:1;margin-top:.5rem}.about-grid,.contact-grid{grid-template-columns:1fr;gap:3.5rem}.about h2{font-size:clamp(3rem,14vw,5.2rem)}footer{grid-template-columns:1fr 1fr}footer>:nth-child(even){text-align:right}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
