:root{--paper:#f2f0e9;--white:#fbfaf6;--ink:#111110;--muted:#6b6861;--line:#c8c5bb;--lime:#b8ff1f;--sans:"Archivo",Arial,sans-serif;--serif:"Fraunces",Georgia,serif;--mono:"IBM Plex Mono",monospace;--pad:clamp(18px,3vw,48px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}body.dialog-open{overflow:hidden}img,svg{display:block;max-width:100%}a{color:inherit}button{color:inherit;font:inherit}::selection{background:var(--lime);color:var(--ink)}
.skip-link{position:fixed;z-index:120;left:12px;top:-70px;padding:12px 16px;background:var(--lime);font:600 10px/1 var(--mono);text-decoration:none}.skip-link:focus{top:12px}
.site-header{position:fixed;z-index:80;inset:0 0 auto;height:76px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:30px;background:rgba(17,17,16,.94);color:var(--white);border-bottom:1px solid #ffffff30;backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:12px;color:var(--white);text-decoration:none}.brand>span:last-child{display:grid}.brand strong{font-size:14px;font-weight:850;line-height:1;text-transform:uppercase}.brand small{margin-top:5px;color:#9b9992;font:500 8px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.brand-mark,.mini-mark,.operator-mark{position:relative;display:block;flex:none;color:var(--lime)}.brand-mark{width:25px;height:25px;transition:transform .35s}.brand-mark:before,.brand-mark:after,.mini-mark:before,.mini-mark:after,.operator-mark:before,.operator-mark:after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transform:translate(-50%,-50%)}.brand-mark:before{width:25px;height:8px}.brand-mark:after{width:8px;height:25px}.brand:hover .brand-mark{transform:rotate(45deg)}
.site-menu{display:flex;align-items:center;gap:24px}.site-menu>a{font:600 9px/1 var(--mono);letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.site-menu>a:not(.linkedin-button):hover{text-decoration:underline 2px var(--lime);text-underline-offset:6px}.linkedin-button{padding:10px 12px;border:1px solid #ffffff70}.linkedin-button:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}.language-switcher{display:flex;border:1px solid #ffffff70}.language-switcher button{padding:8px;background:transparent;border:0;color:#918f89;font:600 8px/1 var(--mono);cursor:pointer}.language-switcher button[aria-pressed=true]{background:var(--lime);color:var(--ink)}.menu-button{display:none;padding:10px 12px;background:transparent;border:1px solid #ffffff70;font:600 9px/1 var(--mono);text-transform:uppercase}
.hero{position:relative;min-height:100svh;padding:150px var(--pad) 48px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr);grid-template-rows:1fr auto;gap:40px;background:var(--ink);color:var(--white);overflow:hidden}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff0e 1px,transparent 1px),linear-gradient(90deg,#ffffff0e 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to bottom,#000,transparent 82%)}.hero-vector{position:absolute;inset:76px 0 0;opacity:.45}.hero-vector svg{width:100%;height:100%}.hero-vector path,.hero-vector circle{fill:none;stroke:var(--lime);stroke-width:1;vector-effect:non-scaling-stroke}.path-a{stroke-dasharray:8 12;animation:dash 24s linear infinite}.path-b{opacity:.45}.hero-index{position:absolute;top:97px;right:var(--pad);margin:0;color:#77756e;font:500 9px/1 var(--mono);letter-spacing:.12em}.hero-copy{position:relative;z-index:2;align-self:center;max-width:1020px}.eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 26px;color:#8f8c84;font:600 10px/1.2 var(--mono);letter-spacing:.11em;text-transform:uppercase}.mini-mark{width:13px;height:13px}.mini-mark:before{width:13px;height:4px}.mini-mark:after{width:4px;height:13px}.hero .eyebrow,.contact .eyebrow{color:#aaa79f}.hero h1,.section-head h2,.about h2{margin:0;font-weight:850;letter-spacing:-.072em;line-height:.88;text-wrap:balance}.hero h1{font-size:clamp(60px,9vw,144px)}.hero h1 em,.section-head h2 em,.about h2 em{font-family:var(--serif);font-weight:440;font-style:italic;letter-spacing:-.045em}.hero h1 em{color:var(--lime)}.hero-intro{max-width:600px;margin:38px 0 0;color:#aaa79f;font-size:clamp(17px,1.5vw,22px)}
.operator{position:absolute;z-index:5;right:10vw;top:24%;width:136px;height:136px;display:grid;place-items:center;background:var(--lime);border:0;cursor:grab;touch-action:none;box-shadow:14px 14px 0 #000;transition:box-shadow .2s}.operator:active{cursor:grabbing;box-shadow:5px 5px 0 #000}.operator-mark{width:68px;height:68px;color:var(--ink)}.operator-mark:before{width:68px;height:20px}.operator-mark:after{width:20px;height:68px}.operator small{position:absolute;left:50%;bottom:-24px;width:max-content;transform:translateX(-50%);color:var(--lime);font:600 8px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.operator.signal .operator-mark{animation:multiply .45s steps(2,end)}
.hero-reel{position:relative;z-index:1;align-self:end;height:166px;display:flex;align-items:flex-end;gap:10px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.hero-reel figure{flex:0 0 220px;height:138px;margin:0;overflow:hidden;border:1px solid #ffffff60;transform:translateY(var(--lift,0)) rotate(var(--tilt,0));transition:transform .35s,filter .2s}.hero-reel figure:nth-child(2n){--lift:-24px}.hero-reel figure:nth-child(3n){--tilt:2deg}.hero-reel img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}.hero-reel figure:hover{transform:translateY(-30px) rotate(0);filter:drop-shadow(0 0 16px var(--lime))}.hero-reel figure:hover img{filter:none}.scroll-cue{position:relative;z-index:2;justify-self:end;align-self:end;font:600 9px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;text-underline-offset:5px}
.work{padding:120px var(--pad) 140px}.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);gap:9vw;align-items:start;padding-bottom:70px}.section-head h2,.about h2{font-size:clamp(50px,7vw,108px)}.section-note{padding-top:44px}.section-note p{max-width:650px;margin:0;color:var(--muted);font-size:clamp(18px,1.55vw,23px)}.project-count{display:block;margin-top:38px;padding-top:15px;border-top:1px solid var(--line);font:600 9px/1 var(--mono);letter-spacing:.1em}
.filter-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:38px}.filter-row button{padding:10px 13px;border:1px solid var(--ink);background:transparent;font:600 8px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.filter-row button[aria-pressed=true],.filter-row button:hover{background:var(--ink);color:var(--lime)}
.projects{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(28px,4vw,64px) 18px}.project{position:relative;grid-column:span 4;cursor:pointer}.project:nth-child(7n+1),.project:nth-child(7n+5){grid-column:span 7}.project:nth-child(7n+2),.project:nth-child(7n+6){grid-column:span 5}.project:nth-child(7n+3){grid-column:2/span 4}.project:nth-child(7n+4){grid-column:7/span 6}.project-button{width:100%;padding:0;background:none;border:0;text-align:left;cursor:pointer}.project-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#ddd;border:1px solid var(--ink)}.project:nth-child(7n+1) .project-media,.project:nth-child(7n+5) .project-media{aspect-ratio:16/9}.project-media:after{content:"OPEN +";position:absolute;right:0;bottom:0;padding:10px 12px;background:var(--lime);color:var(--ink);font:700 8px/1 var(--mono);letter-spacing:.08em;transform:translateY(100%);transition:transform .25s}.project img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .3s}.project-button:hover img{transform:scale(1.035)}.project-button:hover .project-media:after{transform:none}.project-meta{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding-top:13px;border-top:1px solid var(--ink)}.project-index{font:500 8px/1.4 var(--mono);color:var(--muted)}.project h3{margin:0;font-size:clamp(19px,2vw,30px);font-weight:820;letter-spacing:-.045em;line-height:1}.project-category{font:500 8px/1.4 var(--mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;text-align:right}.projects.empty{display:block;padding:80px 0;border-top:1px solid var(--ink);font-family:var(--mono)}
.about{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);background:var(--ink);color:var(--white)}.about-portrait{position:relative;min-height:760px;background:var(--lime);overflow:hidden}.about-portrait img{position:absolute;left:50%;bottom:-4%;height:96%;max-width:none;transform:translateX(-50%);filter:grayscale(1) contrast(1.06);transition:transform .5s}.about-portrait:hover img{transform:translateX(-50%) scale(1.025)}.portrait-crosshair:before,.portrait-crosshair:after{content:"";position:absolute;z-index:2;left:50%;top:25%;background:var(--ink);opacity:.6}.portrait-crosshair:before{width:65%;height:1px;transform:translateX(-50%)}.portrait-crosshair:after{width:1px;height:30%;transform:translateY(-50%)}.about-copy{padding:110px var(--pad)}.about h2{max-width:920px}.about h2 em{color:var(--lime)}.about-lead{max-width:830px;margin:56px 0 20px;font-size:clamp(21px,2.2vw,32px);line-height:1.35}.about-copy>p:not(.eyebrow,.about-lead){max-width:720px;color:#aaa79f}.about dl{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:68px 0 0;padding-top:20px;border-top:1px solid #ffffff35}.about dt{color:var(--lime);font:600 8px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.about dd{margin:10px 0 0;color:#c7c4bc}
.contact{padding:100px var(--pad) 34px;background:var(--lime)}.contact .eyebrow{color:#45453e}.contact-link{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:28px 0 50px;border-bottom:1px solid var(--ink);font-size:clamp(48px,9vw,150px);font-weight:850;letter-spacing:-.075em;line-height:.85;text-decoration:none}.contact-link span:last-child{font-family:var(--mono);font-size:.45em;transition:transform .25s}.contact-link:hover span:last-child{transform:translate(10px,-10px)}.contact-foot{display:flex;justify-content:space-between;gap:20px;padding-top:28px;font:600 8px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.contact-foot a{text-underline-offset:4px}
.project-dialog{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:var(--paper);color:var(--ink)}.project-dialog::backdrop{background:#000b}.dialog-close{position:fixed;z-index:3;right:20px;top:18px;padding:12px 15px;background:var(--lime);border:1px solid var(--ink);font:700 9px/1 var(--mono);text-transform:uppercase;cursor:pointer}.dialog-hero{min-height:64svh;padding:110px var(--pad) 60px;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;background:var(--ink);color:var(--white)}.dialog-number{color:var(--lime);font:600 9px/1 var(--mono);letter-spacing:.1em}.dialog-hero h2{margin:18px 0 0;font-size:clamp(54px,9vw,130px);font-weight:850;letter-spacing:-.07em;line-height:.86}.dialog-summary{padding-bottom:12px}.dialog-summary strong{color:var(--lime);font:600 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.dialog-summary p{max-width:660px;color:#bbb8af;font-size:clamp(18px,1.7vw,25px)}.dialog-gallery{padding:var(--pad);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--pad)}.dialog-gallery figure{margin:0;background:#ddd}.dialog-gallery figure:nth-child(3n){grid-column:1/-1}.dialog-gallery img{width:100%;height:auto}.dialog-empty{padding:80px var(--pad);font-family:var(--mono)}
@keyframes dash{to{stroke-dashoffset:-400}}@keyframes multiply{50%{transform:rotate(45deg) scale(1.18)}}
@media(max-width:900px){.site-menu{position:fixed;inset:76px 0 auto;padding:28px var(--pad);min-height:calc(100svh - 76px);display:flex;flex-direction:column;align-items:stretch;background:var(--ink);transform:translateX(100%);transition:transform .3s}.site-menu.open{transform:none}.site-menu>a{padding:14px 0;font-size:18px}.linkedin-button{padding:15px!important}.language-switcher{align-self:flex-start}.menu-button{display:block}.hero{grid-template-columns:1fr;padding-top:130px}.operator{right:7vw;top:18%;width:96px;height:96px}.operator-mark{width:50px;height:50px}.operator-mark:before{width:50px;height:15px}.operator-mark:after{width:15px;height:50px}.hero-reel{grid-column:1}.scroll-cue{display:none}.section-head{grid-template-columns:1fr;gap:20px}.section-note{padding-top:0}.about{grid-template-columns:1fr}.about-portrait{min-height:620px}.projects{gap:40px 14px}.project,.project:nth-child(n){grid-column:span 6}.dialog-hero{grid-template-columns:1fr;align-content:end}.dialog-gallery{grid-template-columns:1fr}.dialog-gallery figure:nth-child(n){grid-column:auto}}
@media(max-width:560px){.site-header{height:68px}.brand small{display:none}.hero{padding-top:112px;min-height:880px}.hero-index{top:86px}.hero h1{font-size:clamp(52px,17vw,78px)}.operator{top:48%;right:18px}.hero-reel{height:142px}.hero-reel figure{flex-basis:170px;height:110px}.work{padding-top:84px}.projects{display:block}.project{margin-bottom:42px}.project:nth-child(n) .project-media{aspect-ratio:4/3}.about-portrait{min-height:520px}.about-copy{padding-top:80px}.about dl{grid-template-columns:1fr}.contact-foot{flex-wrap:wrap}.project-dialog{height:100svh}.dialog-gallery{padding:18px;gap:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
