:root{--black:#090909;--ink:#171716;--cream:#eeeae0;--acid:#f26d21;--muted:#aaa69d;--line:rgba(255,255,255,.18);--pad:clamp(1.25rem,4vw,5rem);--max:1600px}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--black)}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.45;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}.skip{position:fixed;left:1rem;top:-5rem;background:#fff;color:#111;padding:.8rem 1rem;z-index:100}.skip:focus{top:1rem}.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:90}.progress span{display:block;height:100%;width:100%;background:var(--acid);transform:scaleX(0);transform-origin:left}.topbar{height:96px;position:absolute;inset:0 0 auto;z-index:50;padding:0 var(--pad);display:grid;grid-template-columns:280px 1fr auto;align-items:center;gap:2rem;color:#fff}.wordmark{width:min(250px,40vw)}.wordmark img{filter:brightness(0) invert(1)}.availability{justify-self:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:#aaa;margin:0}.availability i{display:inline-block;width:7px;height:7px;background:#77c56d;border-radius:50%;margin-right:.7rem;box-shadow:0 0 0 5px rgba(119,197,109,.1)}.menu-toggle{border:1px solid #555;background:rgba(10,10,10,.6);color:#fff;border-radius:100px;padding:.75rem 1rem;display:flex;gap:1rem;align-items:center;cursor:pointer}.menu-toggle b,.menu-toggle b:after{display:block;width:18px;height:1px;background:currentColor;content:"";transition:.3s}.menu-toggle b:after{transform:translateY(5px)}.menu-toggle[aria-expanded=true] b{transform:rotate(45deg)}.menu-toggle[aria-expanded=true] b:after{transform:rotate(90deg)}.nav{position:fixed;inset:0;background:var(--acid);color:#111;z-index:-1;padding:clamp(8rem,14vh,12rem) var(--pad) 4rem;display:flex;flex-direction:column;justify-content:center;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}.nav.open{opacity:1;visibility:visible}.nav>a{font-weight:600;font-size:clamp(2.8rem,7vw,7.5rem);letter-spacing:-.065em;line-height:.86;border-bottom:1px solid rgba(0,0,0,.22);padding:.12em 0}.nav>a:hover{padding-left:.15em}.nav sup{font-size:.12em;letter-spacing:0}.nav .nav-action{margin-top:1rem;font-size:clamp(1.4rem,3vw,3rem);border:0}.hero{min-height:900px;height:100svh;background:var(--black);color:#fff;position:relative;overflow:hidden;padding:clamp(9rem,16vh,13rem) var(--pad) 4rem;display:flex;align-items:flex-end}.hero-grain{position:absolute;inset:0;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}.hero:after{content:"";position:absolute;width:55vw;height:55vw;background:var(--acid);border-radius:50%;right:-22vw;top:-23vw;filter:blur(1px)}.hero-copy{width:100%;position:relative;z-index:2}.signal{display:flex;justify-content:space-between;max-width:920px;text-transform:uppercase;letter-spacing:.14em;font-size:.67rem;color:#a8a8a3;margin:0 0 4vh}.hero h1{font-size:clamp(5rem,12vw,13rem);line-height:.73;letter-spacing:-.082em;margin:0;font-weight:600;max-width:1400px}.hero h1 span{display:block}.hero h1 span:last-child{padding-left:12vw}.hero h1 em{font-style:normal;color:var(--acid)}.hero-foot{display:flex;gap:3rem;align-items:end;justify-content:flex-end;margin-top:5vh;padding-right:8vw}.hero-foot>p{max-width:580px;color:#b9b8b2;font-size:clamp(1rem,1.35vw,1.25rem);margin:0}.round-link{flex:0 0 118px;height:118px;border:1px solid #555;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:.8rem;text-transform:uppercase;font-size:.62rem;letter-spacing:.08em;transition:.3s}.round-link:hover{background:var(--acid);color:#111;border-color:var(--acid);transform:rotate(-6deg)}.round-link b{font-size:1.6rem}.hero-orbit{position:absolute;width:min(34vw,520px);aspect-ratio:1;right:9vw;top:14vh;z-index:1;display:grid;place-items:center}.hero-orbit span{position:absolute;inset:0;border:1px solid #373735;border-radius:50%}.hero-orbit span:nth-child(2){inset:16%;border-color:#242422}.hero-orbit img{width:30%;filter:brightness(0) invert(1);z-index:2}.vertical-note{position:absolute;right:var(--pad);bottom:3rem;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.15em;font-size:.58rem;color:#777}.marquee{background:var(--acid);overflow:hidden;border-block:1px solid #111}.marquee div{display:flex;width:max-content;animation:travel 30s linear infinite;padding:.65rem 0}.marquee span{font-size:clamp(1rem,1.6vw,1.5rem);font-weight:600;text-transform:uppercase;letter-spacing:-.02em}.marquee i{font-style:normal;margin:0 2rem}@keyframes travel{to{transform:translateX(-50%)}}.pad{padding:clamp(6rem,11vw,11rem) var(--pad)}.section-tag{text-transform:uppercase;letter-spacing:.16em;font-size:.65rem;font-weight:600;margin:0}.intro{max-width:var(--max);margin:auto;display:grid;grid-template-columns:.38fr 1.1fr .62fr;gap:clamp(2rem,5vw,7rem);align-items:end}.intro h2,.section-head h2,.cap-intro h2,.process h2{font-size:clamp(3.2rem,7.2vw,8rem);line-height:.84;letter-spacing:-.07em;margin:0;font-weight:600}.intro h2 em,.section-head h2 em,.cap-intro h2 em,.process h2 em{font-style:normal;color:var(--acid)}.intro-copy{max-width:540px;font-size:1.05rem}.line-link{display:inline-flex;justify-content:space-between;gap:2rem;border-bottom:1px solid;padding:.8rem 0;font-weight:600}.work{background:var(--black);color:#fff}.section-head{max-width:var(--max);margin:0 auto clamp(4rem,8vw,8rem);display:grid;grid-template-columns:.45fr 1.25fr .55fr;gap:2rem;align-items:end}.section-head>p:last-child{color:#999;max-width:360px}.project-stack{max-width:var(--max);margin:auto}.project{display:block;position:relative}.project figure{margin:0;overflow:hidden;background:#222;position:relative}.project figure img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1),filter .5s}.project:hover figure img{transform:scale(1.025);filter:saturate(1.1)}.project-hero{display:grid;grid-template-columns:1.25fr .75fr;background:#121212}.project-hero figure{min-height:690px}.project-hero figure img{object-fit:contain;padding:5vw;background:#121212}.project-wash{position:absolute;inset:auto -10% -40% 10%;height:70%;background:var(--acid);border-radius:50%;filter:blur(130px);opacity:.2}.project-info{padding:1.5rem 0}.project-hero .project-info{padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:flex-end}.project-info>span{font-size:.63rem;text-transform:uppercase;letter-spacing:.13em;color:#999}.project-info h3{font-size:clamp(2rem,4.3vw,5.5rem);line-height:.9;letter-spacing:-.055em;margin:1rem 0}.project-info p{color:#aaa;max-width:460px}.project-info b{display:inline-block;margin-top:1.5rem;color:var(--acid);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.project-pair{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,5vw,6rem);margin-top:clamp(5rem,10vw,11rem)}.project-pair .project figure{aspect-ratio:4/3}.project-offset{margin-top:10vw}.project-wide{margin-top:clamp(5rem,10vw,11rem);display:grid;grid-template-columns:1.45fr .55fr;gap:clamp(2rem,5vw,6rem);align-items:end}.project-wide figure{aspect-ratio:16/10}.all-work{max-width:var(--max);margin:clamp(5rem,9vw,9rem) auto 0;border-block:1px solid #3d3d3a;padding:2rem 0;display:grid;grid-template-columns:1fr 1fr auto;align-items:center}.all-work span{font-size:clamp(1.3rem,2.5vw,2.6rem);font-weight:600}.all-work b{color:#888;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em}.all-work i{font-style:normal;font-size:2.5rem;color:var(--acid)}.capabilities{background:var(--acid)}.cap-intro{max-width:var(--max);margin:auto;display:grid;grid-template-columns:.45fr 1.55fr;gap:2rem}.cap-intro h2 em{color:#111;font-weight:400}.cap-list{max-width:var(--max);margin:7rem auto 0}.cap{display:grid;grid-template-columns:70px 1fr 1fr auto;gap:2rem;align-items:center;border-top:1px solid rgba(0,0,0,.35);padding:2rem 0;transition:.25s}.cap:last-child{border-bottom:1px solid rgba(0,0,0,.35)}.cap:hover{padding-left:1rem;background:rgba(255,255,255,.08)}.cap>span{font-size:.67rem}.cap h3{font-size:clamp(1.6rem,3vw,3.3rem);letter-spacing:-.045em;margin:0}.cap p{max-width:420px;margin:0;color:#4b2410}.cap b{font-size:2rem}.proof{min-height:800px;background:#d9d5cc;position:relative;display:grid;grid-template-columns:.35fr 1.2fr .45fr;gap:2rem;align-items:start;overflow:hidden}.proof-mark{position:absolute;width:55vw;right:-10vw;bottom:-27vw;opacity:.05}.proof blockquote{font-size:clamp(2.5rem,5.4vw,6.2rem);line-height:.98;letter-spacing:-.055em;margin:0;position:relative;z-index:2}.proof-foot{align-self:end}.proof-foot>p{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:2rem}.process{background:var(--cream);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(3rem,9vw,10rem)}.process-copy{position:sticky;top:3rem;align-self:start}.process-copy .section-tag{margin-bottom:4rem}.process-copy>p:last-child{max-width:520px;color:#65625d;margin-top:3rem}.process-list{margin:0;padding:0;list-style:none}.process-list li{display:grid;grid-template-columns:60px 1fr;gap:1rem;border-top:1px solid #aaa59b;padding:2rem 0;min-height:180px}.process-list li:last-child{border-bottom:1px solid #aaa59b}.process-list span{color:var(--acid);font-size:.7rem}.process-list h3{font-size:clamp(1.7rem,3vw,3.2rem);letter-spacing:-.04em;margin:0 0 1rem}.process-list p{color:#666;max-width:500px}.contact-stage{min-height:900px;background:#0c0c0c;color:#fff;display:grid;grid-template-columns:.65fr 1.35fr;position:relative;overflow:hidden}.contact-image{position:relative;overflow:hidden}.contact-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#0c0c0c)}.contact-image img{width:100%;height:100%;object-fit:cover;opacity:.6;filter:grayscale(1)}.contact-copy{padding:var(--pad);align-self:center;position:relative;z-index:2}.contact-copy h2{font-size:clamp(3.7rem,7.8vw,9rem);line-height:.8;letter-spacing:-.075em;margin:3rem 0}.contact-copy h2 em{color:var(--acid);font-style:normal}.contact-copy>p:not(.section-tag){color:#aaa;max-width:600px;font-size:1.1rem}.contact-button{margin-top:3rem;display:flex;align-items:center;justify-content:space-between;max-width:650px;border-block:1px solid #555;padding:1.5rem 0;font-size:clamp(1.4rem,3vw,3rem);font-weight:600}.contact-button b{color:var(--acid)}footer{background:#0c0c0c;color:#888;border-top:1px solid #333;padding:3rem var(--pad);display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:3rem;align-items:start;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em}.footer-logo{width:240px}.footer-logo img{filter:brightness(0) invert(1);opacity:.75}footer p{margin:0}footer div{display:grid;gap:.5rem}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(40px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}.js .reveal.visible{opacity:1;transform:none}@media(max-width:950px){.topbar{grid-template-columns:1fr auto}.availability{display:none}.hero h1{font-size:clamp(4.5rem,15vw,9rem)}.hero-orbit{right:-12vw;top:20vh;width:52vw}.intro,.section-head{grid-template-columns:1fr}.intro-copy{margin-left:auto}.project-hero,.project-wide{grid-template-columns:1fr}.project-hero figure{min-height:540px}.project-pair{gap:1.5rem}.cap-intro,.proof,.process{grid-template-columns:1fr}.cap{grid-template-columns:45px 1fr auto}.cap p{grid-column:2}.proof{min-height:700px}.proof-foot{max-width:400px}.process-copy{position:static}.contact-stage{grid-template-columns:1fr}.contact-image{position:absolute;inset:0;opacity:.35}.contact-image:after{background:#0c0c0caa}.contact-copy{padding:var(--pad)}footer{grid-template-columns:1fr 1fr}.footer-logo{grid-column:1/-1}}@media(max-width:620px){.topbar{height:78px}.wordmark{width:190px}.menu-toggle span{display:none}.hero{min-height:720px;padding-top:8rem}.signal span:last-child{display:none}.hero h1{font-size:clamp(4.1rem,20vw,7rem);line-height:.78}.hero h1 span:last-child{padding-left:0}.hero-foot{justify-content:flex-start;padding:0;align-items:flex-start;flex-direction:column}.round-link{width:88px;height:88px;flex-basis:88px}.vertical-note{display:none}.marquee i{margin:0 1rem}.pad{padding-block:5.5rem}.intro h2,.section-head h2,.cap-intro h2,.process h2{font-size:clamp(3.2rem,15vw,5.5rem)}.project-hero figure{min-height:380px}.project-pair{grid-template-columns:1fr}.project-offset{margin-top:3rem}.all-work{grid-template-columns:1fr auto}.all-work b{display:none}.cap-list{margin-top:4rem}.cap{grid-template-columns:35px 1fr auto;gap:1rem}.cap p{grid-column:2/-1}.proof{min-height:620px}.proof blockquote{font-size:clamp(2.5rem,11vw,4rem)}.contact-stage{min-height:720px}.contact-copy h2{font-size:clamp(3.6rem,17vw,6rem)}footer{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee div{animation:none}.js .reveal{opacity:1;transform:none;transition:none}.project figure img,.nav{transition:none}}

/* Seamless capability ticker: two identical groups cross the loop point. */
.marquee .marquee-track{display:flex;width:max-content;padding:.65rem 0;animation:marquee-loop 30s linear infinite;will-change:transform}
.marquee .marquee-group{display:flex;flex:none;width:max-content;padding:0;animation:none}
@keyframes marquee-loop{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.marquee .marquee-track{animation:none;transform:none}}
@media(max-width:620px){.topbar{gap:1rem}.wordmark{width:175px}.hero-copy{min-width:0}.hero h1{font-size:clamp(3.65rem,17vw,4.25rem);line-height:.8;max-width:100%}.hero-foot{width:100%}.hero-foot>p{width:100%;font-size:.98rem}}

/* Hero v2: the original site's clarity, pushed to an Extreme scale. */
.hero-v2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);align-items:end;gap:2vw}.hero-v2:after{display:none}.hero-v2 .hero-copy{align-self:end}.hero-v2 h1{font-size:clamp(4.4rem,9.4vw,11.5rem);line-height:.76}.hero-v2 h1 span:nth-child(2){padding-left:8vw}.hero-v2 h1 span:nth-child(3){padding-left:0;margin-top:.2em;font-size:.31em;line-height:1;text-transform:uppercase;letter-spacing:.015em;color:#aaa}.hero-v2 .hero-foot{justify-content:flex-start;padding:0 0 0 8vw}.hero-stage{height:min(65vw,720px);position:relative;display:grid;place-items:center}.hero-stage .hero-sun{position:absolute;width:min(32vw,500px);aspect-ratio:1;background:var(--acid);border-radius:50%;animation:pulse-sun 7s ease-in-out infinite}.hero-stage>img{position:relative;width:min(13vw,190px);filter:brightness(0) invert(1);z-index:3}.hero-ring{position:absolute;border:1px solid rgba(255,255,255,.25);border-radius:50%;z-index:2}.ring-a{width:95%;aspect-ratio:1}.ring-b{width:67%;aspect-ratio:1}.hero-stage p{position:absolute;right:0;bottom:6%;z-index:4;text-transform:uppercase;letter-spacing:.13em;font-size:.62rem;color:#aaa}.hero-stage p strong{display:block;font-size:clamp(2.5rem,5vw,5rem);line-height:.8;letter-spacing:-.06em;color:#fff}.hero-v2 .vertical-note{color:#888}@keyframes pulse-sun{50%{transform:scale(1.035);filter:saturate(1.15)}}
@media(max-width:950px){.hero-v2{grid-template-columns:1fr;align-items:center}.hero-stage{position:absolute;width:55vw;height:55vw;right:-10vw;top:13vh;opacity:.75}.hero-v2 .hero-copy{align-self:end}.hero-v2 h1{font-size:clamp(4rem,14vw,8rem);position:relative;z-index:5}.hero-v2 .hero-foot{padding-left:0;position:relative;z-index:5}}
@media(max-width:620px){.hero-v2{min-height:760px}.hero-stage{width:72vw;height:72vw;right:-25vw;top:12vh}.hero-stage>img{width:22vw}.hero-v2 h1{font-size:clamp(3.65rem,16.5vw,4.6rem);line-height:.8}.hero-v2 h1 span:nth-child(2){padding-left:0}.hero-v2 h1 span:nth-child(3){font-size:.28em;margin-top:.55em}.hero-v2 .hero-foot{margin-top:3rem}.hero-v2 .hero-foot>p{max-width:310px}.hero-stage p{display:none}}
@media(prefers-reduced-motion:reduce){.hero-stage .hero-sun{animation:none}}

/* Final layout rails: homepage sections share one consistent grid. */
.intro.pad{width:100%;max-width:calc(var(--max) + (2 * var(--pad)));grid-template-columns:.45fr 1.25fr .55fr}
.intro h2,.section-head h2{max-width:10ch}
.intro-copy,.section-head>p:last-child{align-self:end}
.menu-toggle{justify-self:end}
@media(max-width:950px){.intro.pad{grid-template-columns:1fr;max-width:var(--max)}.intro h2,.section-head h2{max-width:none}.intro-copy{margin-left:0}.project-offset{margin-top:0}}

/* 2026-10-16 deep polish: make the portfolio feel authored, tactile and cohesive. */
::selection{background:var(--acid);color:#111}
:focus-visible{outline:3px solid var(--acid);outline-offset:5px}
.topbar{transition:transform .35s ease,background .35s ease,backdrop-filter .35s ease}
.topbar.is-scrolled{position:fixed;height:76px;background:rgba(9,9,9,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.1)}
.topbar.is-scrolled .wordmark{width:min(210px,38vw)}
.hero-stage{isolation:isolate}
.hero-stage:before{content:"";position:absolute;width:54%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(242,109,33,.38),transparent 68%);filter:blur(28px);z-index:1}
.hero-ring{animation:orbit-breathe 9s ease-in-out infinite}
.ring-b{animation-delay:-4.5s}
@keyframes orbit-breathe{50%{transform:scale(1.035);border-color:rgba(255,255,255,.42)}}
.project figure:after{content:"View project  \2197";position:absolute;right:1rem;bottom:1rem;padding:.7rem 1rem;border-radius:99px;background:rgba(9,9,9,.82);color:#fff;font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(10px);transition:.3s;backdrop-filter:blur(12px)}
.project:hover figure:after,.project:focus-visible figure:after{opacity:1;transform:none}
.project-info h3{transition:color .25s}
.project:hover .project-info h3{color:var(--acid)}
.project-hero{overflow:hidden;border:1px solid #2e2e2c}
.project-hero .project-info{position:relative}
.project-hero .project-info:before{content:"Featured";position:absolute;top:clamp(2rem,5vw,5rem);left:clamp(2rem,5vw,5rem);padding:.45rem .7rem;border:1px solid #41413e;border-radius:99px;color:#aaa;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase}
.cap{position:relative;overflow:hidden}
.cap:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.13),transparent 58%);transform:translateX(-105%);transition:transform .55s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.cap:hover:after{transform:none}
.cap b{transition:transform .25s}.cap:hover b{transform:translate(5px,-5px)}
.proof{background:linear-gradient(125deg,#dedad1 0%,#c9c4b9 100%)}
.proof blockquote:before{content:"\201C";display:block;color:var(--acid);font-size:.8em;line-height:.5;margin-bottom:.3em}
.process-list li{transition:padding .3s,background .3s}
.process-list li:hover{padding-left:1rem;background:rgba(242,109,33,.06)}
.contact-button{transition:color .25s,padding .25s}.contact-button:hover{color:var(--acid);padding-inline:1rem}
footer a{transition:color .2s}footer a:hover{color:#fff}
@media(max-width:620px){.topbar.is-scrolled{height:68px}.project figure:after{display:none}.project-hero .project-info:before{position:static;align-self:flex-start;margin-bottom:2rem}.project-hero{border-inline:0}.process-list li:hover{padding-left:0}}
@media(prefers-reduced-motion:reduce){.hero-ring{animation:none}.cap:after{display:none}}
