*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0a0a0a;color:#f1f0ec;font-family:Manrope,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.loader{position:fixed;inset:0;background:#0a0a0a;z-index:1000;display:grid;place-content:center;gap:18px;transition:.8s ease}.loader span{font:500 12px "DM Mono",monospace;letter-spacing:.18em;text-align:center}.loader i{display:block;width:120px;height:1px;background:#f1f0ec;transform-origin:left;animation:load 1.2s ease forwards}@keyframes load{to{transform:scaleX(0)}}.loader.done{opacity:0;pointer-events:none}.site-header{position:fixed;z-index:20;top:0;left:0;width:100%;padding:25px 4vw;display:flex;justify-content:space-between;align-items:center;mix-blend-mode:difference}.brand{font-size:24px;font-weight:800;letter-spacing:-.08em}.brand span{font-size:13px}nav{display:flex;gap:35px;font:500 11px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em}nav a{opacity:.8;transition:.25s}nav a:hover{opacity:1}.menu{display:none;background:none;border:0}.hero{height:100svh;min-height:650px;position:relative;display:flex;align-items:flex-end;overflow:hidden}.hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 65% 35%,#444 0,#1a1a1a 25%,#090909 65%);transform:scale(1.05);animation:heroZoom 10s ease-out forwards}.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.75),transparent 60%),linear-gradient(0deg,rgba(0,0,0,.75),transparent 45%)}@keyframes heroZoom{to{transform:scale(1)}}.grain{position:absolute;inset:-50%;opacity:.07;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='.55'/%3E%3C/svg%3E");animation:grain .18s steps(2) infinite;pointer-events:none}@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}100%{transform:translate(-2%,-1%)}}.hero-content{position:relative;padding:0 8vw 7vh;z-index:2}.eyebrow,.section-label{font:500 10px "DM Mono",monospace;letter-spacing:.16em;text-transform:uppercase}.hero h1{font-size:clamp(76px,14vw,210px);line-height:.78;letter-spacing:-.09em;margin:25px 0 65px;font-weight:700}.hero h1 em,.statement em,.about h2 em,.contact h2 em{font-family:Georgia,serif;font-weight:400}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;width:min(900px,70vw);font-size:13px;line-height:1.5}.circle-arrow{width:52px;height:52px;border:1px solid #777;border-radius:50%;display:grid;place-content:center;font-size:20px;transition:.3s}.circle-arrow:hover{background:#f1f0ec;color:#0a0a0a;transform:rotate(-45deg)}.hero-meta{position:absolute;right:4vw;bottom:7vh;z-index:2;font:10px "DM Mono",monospace;letter-spacing:.1em;display:flex;gap:35px}.section-pad{padding:130px 8vw}.intro{display:grid;grid-template-columns:20% 1fr;border-bottom:1px solid #252525}.intro-copy{max-width:900px}.large{font-size:clamp(28px,4vw,60px);line-height:1.1;letter-spacing:-.045em;margin:0 0 45px}.intro-copy>p:last-child{max-width:470px;font-size:14px;line-height:1.8;color:#aaa}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:65px}.filters{display:flex;gap:22px}.filter{border:0;background:none;color:#777;padding:0;cursor:pointer;font:10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em}.filter.active,.filter:hover{color:#f1f0ec}.projects{display:grid;grid-template-columns:1.35fr .65fr;gap:70px 24px}.project-featured{grid-row:span 2}.project-wide{grid-column:span 2}.project-media{aspect-ratio:16/10;overflow:hidden;position:relative;background:#151515}.project-featured .project-media{aspect-ratio:4/5}.project-wide .project-media{aspect-ratio:2.5/1}.visual{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.visual:before{content:"";position:absolute;inset:0;transition:transform .8s,filter .8s}.visual-1:before{background:radial-gradient(circle at 70% 30%,#777,#222 32%,#050505 75%)}.visual-2:before{background:linear-gradient(130deg,#111 10%,#777 45%,#171717 80%)}.visual-3:before{background:linear-gradient(30deg,#151515,#555,#0b0b0b)}.visual-4:before{background:radial-gradient(circle at 25% 60%,#777,#202020 30%,#090909 70%)}.visual-5:before{background:linear-gradient(100deg,#080808,#555,#171717)}.project:hover .visual{transform:scale(1.025)}.project:hover .visual:before{filter:contrast(1.15);transform:scale(1.04)}.play{position:absolute;right:18px;top:18px;width:40px;height:40px;border:1px solid #aaa;border-radius:50%;display:grid;place-content:center;font-size:14px;z-index:1}.project-info{padding:17px 0 0;display:grid;grid-template-columns:1fr 2fr 1.4fr;gap:15px;align-items:baseline}.project-info span,.project-info p{font:9px "DM Mono",monospace;color:#777;text-transform:uppercase;letter-spacing:.06em;margin:0}.project-info h2{font-size:19px;margin:0;font-weight:500;letter-spacing:-.03em}.project-info p{text-align:right}.project.hidden{display:none}.statement{padding:220px 8vw;background:#e9e8e2;color:#0a0a0a}.statement-inner{max-width:1000px;margin:auto}.statement h2{font-size:clamp(55px,9vw,130px);line-height:.9;letter-spacing:-.075em;margin:35px 0 0}.about{border-bottom:1px solid #252525}.about-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:70px}.about h2,.contact h2{font-size:clamp(45px,6vw,85px);line-height:.95;letter-spacing:-.07em;margin:0}.about-text{max-width:600px}.about-text p{font-size:15px;line-height:1.8;color:#aaa;margin:0 0 25px}.skills{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}.skills span{border:1px solid #303030;border-radius:30px;padding:9px 13px;font:9px "DM Mono",monospace;text-transform:uppercase}.contact{padding-bottom:150px}.contact-details{display:flex;flex-direction:column;justify-content:flex-end}.email{font-size:clamp(22px,3vw,42px);letter-spacing:-.04em;border-bottom:1px solid #444;padding-bottom:15px;transition:.25s}.email:hover{border-color:#fff}.socials{display:flex;gap:25px;margin-top:25px}.socials a{font:10px "DM Mono",monospace;text-transform:uppercase;color:#999}.socials a:hover{color:#fff}footer{border-top:1px solid #252525;padding:22px 4vw;display:flex;justify-content:space-between;font:9px "DM Mono",monospace;color:#777;letter-spacing:.1em}.reveal{opacity:0;transform:translateY(30px);animation:reveal .9s .3s forwards}.reveal:nth-child(2){animation-delay:.45s}@keyframes reveal{to{opacity:1;transform:none}}@media(max-width:700px){.site-header{padding:20px 6vw}.menu{display:block;width:32px;height:25px;padding:0;position:relative}.menu span{display:block;height:1px;background:#fff;width:25px;position:absolute;right:0;top:8px}.menu span+span{top:16px;width:17px}nav{position:fixed;inset:0;background:#0a0a0a;display:none;flex-direction:column;justify-content:center;padding:20vw;gap:30px;font-size:22px}nav.open{display:flex}.hero-content{padding:0 7vw 9vh}.hero h1{font-size:25vw;margin:20px 0 55px}.hero-bottom{width:100%}.hero-meta{display:none}.section-pad{padding:90px 7vw}.intro{display:block}.intro .section-label{margin-bottom:45px}.large{font-size:35px}.section-head{display:block;margin-bottom:45px}.filters{margin-top:25px;flex-wrap:wrap}.projects{display:block}.project{margin-bottom:55px}.project-featured .project-media{aspect-ratio:4/5}.project-wide .project-media{aspect-ratio:16/10}.project-info{grid-template-columns:1fr;gap:7px}.project-info p{text-align:left}.statement{padding:130px 7vw}.statement h2{font-size:17vw}.about-grid,.contact-grid{grid-template-columns:1fr;gap:55px;margin-top:50px}.contact{padding-bottom:100px}.socials{flex-wrap:wrap}footer{padding:20px 7vw;gap:15px;flex-direction:column}.section-label{font-size:9px}}

/* Category-led portfolio layout */
.portfolio-intro{display:grid;grid-template-columns:20% 1fr;gap:2vw;margin-bottom:100px}.portfolio-intro .large{max-width:900px;margin:0}.category-section{padding:45px 0 75px;border-top:1px solid #292929}.category-heading{display:grid;grid-template-columns:8% 1fr 1fr;align-items:baseline;gap:20px;margin-bottom:30px}.category-heading h2{font-size:clamp(34px,5vw,65px);font-weight:500;letter-spacing:-.065em;margin:0}.category-heading p{font-size:12px;color:#888;justify-self:end;margin:0}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.category-grid .project{min-width:0}.category-grid .project-media{aspect-ratio:16/10}.category-grid .project-info{grid-template-columns:.8fr 1.5fr 1fr}.category-grid .project-info h3{font-size:17px;font-weight:500;letter-spacing:-.03em;margin:0}.placeholder-label{position:absolute;left:18px;bottom:18px;z-index:1;font:9px "DM Mono",monospace;letter-spacing:.12em;color:rgba(255,255,255,.55)}.visual-stars-1:before{background:radial-gradient(ellipse at 55% 35%,#8b7769 0,#40332d 24%,#151312 62%,#080808 100%)}.visual-stars-2:before{background:linear-gradient(125deg,#151515 0%,#74665d 45%,#27201d 70%,#090909 100%)}.visual-sports-1:before{background:linear-gradient(135deg,#171717 0%,#777 35%,#242424 60%,#080808 100%)}.visual-sports-2:before{background:radial-gradient(circle at 65% 35%,#8a8a8a 0,#343434 28%,#111 68%,#070707 100%)}.visual-food-1:before{background:radial-gradient(ellipse at 45% 50%,#8b6b4e 0,#493526 25%,#201811 52%,#080706 100%)}.visual-food-2:before{background:linear-gradient(125deg,#17120e 0%,#766047 42%,#32251b 70%,#090807 100%)}.visual-talk-1:before{background:radial-gradient(ellipse at 45% 38%,#777 0,#383838 27%,#181818 58%,#080808 100%)}.visual-talk-2:before{background:linear-gradient(115deg,#080808 0%,#333 35%,#686868 52%,#171717 80%,#080808 100%)}.showreel{background:#e9e8e2;color:#0a0a0a}.showreel-heading{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:25px;align-items:end;margin-bottom:45px}.showreel-heading h2{font-size:clamp(50px,8vw,115px);line-height:.86;letter-spacing:-.08em;font-weight:500;margin:0}.showreel-heading h2 em{font-family:Georgia,serif;font-weight:400}.showreel-heading p{font-size:12px;color:#555;max-width:190px;justify-self:end;line-height:1.7}.showreel-player{width:100%;aspect-ratio:16/9;background:#111;overflow:hidden}.showreel-player iframe{display:block;width:100%;height:100%;border:0}.reel-link{display:inline-block;margin-top:18px;font:10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #777;padding-bottom:7px}.reel-link:hover{border-color:#111}
@media(max-width:700px){.portfolio-intro{display:block;margin-bottom:55px}.portfolio-intro .section-label{margin-bottom:35px}.category-section{padding:35px 0 45px}.category-heading{grid-template-columns:30px 1fr;gap:10px;margin-bottom:20px}.category-heading p{grid-column:2;justify-self:start;margin-top:0}.category-grid{grid-template-columns:1fr;gap:35px}.category-grid .project-info{grid-template-columns:1fr;gap:7px}.category-grid .project-info p{text-align:left}.showreel-heading{grid-template-columns:1fr;gap:25px;margin-bottom:30px}.showreel-heading h2{font-size:18vw}.showreel-heading p{justify-self:start;margin:0}.showreel-player{aspect-ratio:16/9}}

/* Local portfolio videos */
.video-media{background:#111;isolation:isolate}
.video-media video{display:block;width:100%;height:100%;object-fit:contain;background:#111;position:absolute;inset:0}
.video-media:before{content:none!important}
.category-grid .project{display:block}
.category-grid .project-info{padding-bottom:5px}


/* Vimeo video background behind the hero name */
.hero-bg{overflow:hidden;transform:none!important;background:#090909;animation:none!important}
.hero-bg iframe{position:absolute;top:50%;left:50%;width:max(100vw,177.78vh);height:max(100vh,56.25vw);transform:translate(-50%,-50%);border:0;pointer-events:none}
.hero-bg:after{z-index:1;pointer-events:none}
