:root{--bg:#081c20;--panel:#0e262b;--white:#f4f4ef;--muted:#a4b5b7;--line:rgba(177,204,205,.19);--accent:#f28a54;--gutter:clamp(24px,4.2vw,80px);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--white);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;transition:color .22s ease}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,video:focus-visible{outline:2px solid var(--accent);outline-offset:7px}button{font:inherit}img{display:block;width:100%;height:auto}p,h1,h2,h3{margin:0}::selection{background:var(--accent);color:var(--bg)}[hidden]{display:none!important}.wrap{width:100%;max-width:1800px;margin-inline:auto;padding-inline:var(--gutter)}.muted{color:var(--muted)}.accent{color:var(--accent)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:10px;line-height:1.5;font-weight:400}.skip-link{position:fixed;left:20px;top:16px;z-index:20;padding:12px 18px;background:var(--white);color:var(--bg);transform:translateY(-180%)}.skip-link:focus{transform:none}
.site-header{background:linear-gradient(180deg,rgba(8,28,32,.72),transparent);height:100px;display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;right:0;z-index:3}.wordmark{font-size:30px;font-weight:700;letter-spacing:-.08em}.brand-dot{color:var(--accent)}nav{display:flex;align-items:baseline;gap:36px;font-size:13px;line-height:1.5}nav a{display:inline-block;white-space:nowrap}nav a:last-child span{margin-left:9px;color:var(--accent)}
.hero{isolation:isolate;position:relative;min-height:740px;height:min(920px,100svh);overflow:hidden;background:#081c20}.hero-scene{position:absolute;z-index:-2;inset:0 0 0 20%;opacity:.94;mask-image:linear-gradient(to right,transparent,#000 20%);-webkit-mask-image:linear-gradient(to right,transparent,#000 20%)}.hero-scene img{width:100%;height:100%;object-fit:cover;object-position:58% center}.hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,#081c20 0%,rgba(8,28,32,.7) 9%,transparent 45%),linear-gradient(90deg,rgba(8,28,32,.65),transparent 70%)}.hero:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:url("assets/images/grain.svg") repeat;background-size:160px 160px;opacity:.28;mix-blend-mode:soft-light;mask-image:linear-gradient(to bottom,#000 85%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 85%,transparent)}.hero-inner{z-index:1;height:100%;display:flex;flex-direction:column;position:relative;padding-top:156px}.hero-heading .eyebrow{color:#c1cecd;display:flex;align-items:center;gap:12px;margin-bottom:28px}.tiny-line{width:25px;height:1px;background:var(--accent)}.name{font-weight:600;font-size:clamp(75px,10.5vw,165px);line-height:.86;letter-spacing:-.065em;position:relative;width:max-content;max-width:100%}.name-base{color:#303c3e}.name-white{position:absolute;inset:0;color:var(--white);animation:name-reveal 1.8s cubic-bezier(.25,.1,.25,1) .1s both;clip-path:inset(0 0 0 0)}@keyframes name-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto;padding-top:40px;padding-bottom:52px}.intro{max-width:380px}.intro h2{font-size:20px;font-weight:400;letter-spacing:-.025em;margin-bottom:17px}.intro p{font-size:14px;line-height:1.65;color:var(--muted);max-width:340px}.hero-links{display:flex;gap:29px;align-items:baseline;margin-top:28px;font-size:12px;line-height:1.5}.hero-caption{display:grid;gap:8px;text-align:right;font-size:11px;line-height:1.5;letter-spacing:.03em}.caption-secondary{color:var(--muted);font-size:10px}.hero-index{height:54px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.hero-index a span{margin-left:20px;color:var(--white)}
.section-space{padding-block:115px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:52px}.section-heading h2{font-size:clamp(30px,3.6vw,56px);font-weight:400;letter-spacing:-.045em;margin-top:21px}.section-note{font-size:12px;line-height:1.7;color:var(--muted)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:60px 28px}.project:nth-child(even){padding-top:90px}.project-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--panel)}.project-media img,.project-media video{height:100%;width:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.65,.3,1)}.project:hover .project-media img{transform:scale(1.035)}.preview-label{position:absolute;top:18px;left:18px;padding:7px 11px;border:1px solid #667e80;border-radius:2px;font-size:9px;text-transform:uppercase;letter-spacing:.14em;background:rgba(8,28,32,.8);color:var(--white)}.project-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:20px}.project-meta h3{font-size:19px;font-weight:400;letter-spacing:-.025em}.project-meta p{color:var(--muted);font-size:11px}.project a{display:block}.project a:focus-visible{outline-offset:8px}.project-play{position:absolute;right:18px;bottom:18px;border:1px solid #667e80;background:rgba(8,28,32,.92);color:white;padding:10px 15px;cursor:pointer}.work-footer{border-top:1px solid var(--line);margin-top:64px;padding-top:23px;display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:11px;line-height:1.6}.text-link{color:var(--white)}.text-link span{margin-left:17px;color:var(--accent)}
.about-section{background:linear-gradient(120deg,#0c252a,#0a2025)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.about-lead h2{font-size:clamp(32px,3.5vw,56px);line-height:1.13;font-weight:400;letter-spacing:-.045em;margin-top:34px}.about-body{padding-top:44px;max-width:540px}.about-copy{font-size:20px;line-height:1.55;letter-spacing:-.02em;margin-bottom:23px}.about-body>p.muted{font-size:14px;line-height:1.7}.inline-link{color:var(--white);border-bottom:1px solid #607b7e;padding-bottom:2px}.inline-link span{color:var(--accent)}.expertise{padding:0;margin:46px 0 0;list-style:none}.expertise li{border-top:1px solid var(--line);padding-block:19px;font-size:16px;display:flex;align-items:center;gap:32px}.expertise li:last-child{border-bottom:1px solid var(--line)}.expertise li span{font-size:10px;color:var(--muted)}
.contact-section{padding-top:125px;padding-bottom:94px}.contact-title-row{display:flex;justify-content:space-between;align-items:center;margin-top:38px}.contact-title-row h2{font-size:clamp(44px,6.9vw,112px);font-weight:400;letter-spacing:-.055em;line-height:1.04}.contact-title-row em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--accent);letter-spacing:-.055em}.contact-arrow{font-size:clamp(70px,10vw,150px);font-weight:200;color:var(--accent);padding-left:30px}.contact-bottom{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-top:55px}.contact-bottom p{font-size:13px;line-height:1.8}.contact-links{display:flex;gap:38px;font-size:16px;align-items:center;flex-wrap:wrap}.contact-links span{color:var(--accent);margin-left:22px}.site-footer{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:95px;font-size:10px;color:var(--muted)}.site-footer:before{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter);border-top:1px solid var(--line)}.footer-name{color:var(--white);font-size:13px}.site-footer>a:last-child span{margin-left:14px}
/* Contents are visible by default. Only a functioning observer adds this class. */
.reveal.is-pending{opacity:0;transform:translateY(20px)}.reveal{transition:opacity .7s ease,transform .7s ease;transition-delay:var(--reveal-delay,0ms)}
@media(min-width:1800px){.hero-scene{left:28%}.hero-inner{padding-top:170px}}
@media(max-width:1000px){.hero{min-height:730px}.hero-inner{padding-top:160px}.hero-scene{inset:150px -6% 95px -28%;opacity:.9;mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 83%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 83%,transparent)}.hero-scene img{object-position:65% center}.hero-caption{max-width:180px}.about-grid{gap:40px}.about-copy{font-size:18px}.project-meta{display:block}.project-meta p{margin-top:7px}.section-space{padding-block:85px}.contact-links{gap:20px;font-size:14px}}
@media(max-width:640px){:root{--gutter:24px}.site-header{height:80px}.wordmark{font-size:27px}nav{gap:23px;font-size:11px}nav a:last-child span{margin-left:3px}.hero{height:850px;min-height:0}.hero-inner{padding-top:119px}.hero-heading .eyebrow{font-size:8px;letter-spacing:.14em;margin-bottom:24px}.name{font-size:15.35vw;line-height:.92;letter-spacing:-.068em}.hero-scene{inset:235px -2% 180px -48%;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 75%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 75%,transparent);opacity:1}.hero-scene img{object-position:61% center}.hero:after{background:linear-gradient(to top,#081c20 0%,rgba(8,28,32,.97) 19%,transparent 50%)}.hero-bottom{padding-top:295px;padding-bottom:32px;align-items:start}.intro{max-width:100%}.intro h2{font-size:19px;margin-bottom:13px}.intro p{font-size:13px;max-width:315px}.hero-links{font-size:12px;gap:24px;margin-top:24px}.hero-caption{display:none}.hero-index{height:50px;flex-shrink:0;font-size:8px;letter-spacing:.08em}.hero-index a span{margin-left:10px}.section-space{padding-block:72px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{margin-top:16px;font-size:34px;max-width:280px;line-height:1.05}.section-note{margin-top:20px;font-size:11px}.section-note br{display:none}.projects{grid-template-columns:1fr;gap:35px}.project:nth-child(even){padding-top:0}.project-meta{display:flex;padding-top:16px}.project-meta h3{font-size:18px}.project-meta p{font-size:10px;margin-top:0}.preview-label{top:14px;left:14px}.work-footer{margin-top:36px;display:block;font-size:10px}.work-footer a{display:inline-block;margin-top:20px}.about-grid{grid-template-columns:1fr;gap:32px}.about-lead h2{margin-top:24px;font-size:35px}.about-body{padding:0}.about-copy{font-size:18px}.expertise{margin-top:32px}.expertise li{font-size:15px;padding-block:17px}.contact-title-row{margin-top:28px;position:relative}.contact-title-row h2{font-size:11.2vw;line-height:1.12}.contact-arrow{display:none}.contact-bottom{display:block;margin-top:30px}.contact-links{margin-top:30px;gap:28px;font-size:13px}.contact-links span{margin-left:9px}.site-footer{flex-wrap:wrap;gap:16px;padding-block:25px;font-size:9px}.footer-name{width:60%;font-size:12px}.site-footer>span{order:3;width:100%}.site-footer>a:last-child{margin-left:auto}.eyebrow{font-size:9px}}
@media(max-width:360px){.hero{height:840px}.hero-links{gap:20px}.project-meta{display:block}.project-meta p{margin-top:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.name-white{clip-path:none}.reveal.is-pending{opacity:1;transform:none}.project:hover .project-media img{transform:none}}
@media print{.name-white{clip-path:none;animation:none}.reveal.is-pending{opacity:1;transform:none}.hero{height:auto;min-height:700px}.project{break-inside:avoid}}

/* Motion carousel: independent visual roles keep navigation and focus stable. */
.motion-section{padding-bottom:32px}
.motion-carousel{--video-aspect:1.7777778;--center-fraction:.66;--center-width:66%;max-width:1400px;margin-inline:auto}
.motion-stage{position:relative;width:100%;aspect-ratio:calc(var(--video-aspect) / var(--center-fraction) / 1.06);isolation:isolate;overflow:hidden;padding:0}
.motion-slide{position:absolute;top:0;left:50%;width:var(--center-width);aspect-ratio:var(--video-aspect);margin:0;overflow:hidden;border-radius:22px;border:1px solid rgba(176,214,219,.26);background:#06181c;box-shadow:0 22px 45px rgba(0,0,0,.24);transition:transform .7s cubic-bezier(.22,.61,.36,1),opacity .7s ease,filter .7s ease}
.motion-slide video,.motion-slide img{display:block;width:100%;height:100%;object-fit:contain;background:#06181c}
.motion-slide.is-active{z-index:3;transform:translateX(-50%);opacity:1;filter:none}
.motion-slide.is-previous{z-index:1;transform:translateX(-85.5%) translateY(11%) scale(.8);opacity:.62;filter:brightness(.78)}
.motion-slide.is-next{z-index:1;transform:translateX(-14.5%) translateY(11%) scale(.8);opacity:.62;filter:brightness(.78)}
.motion-controls{position:absolute;top:0;left:50%;width:var(--center-width);aspect-ratio:var(--video-aspect);transform:translateX(-50%);z-index:4;pointer-events:none;display:flex;align-items:center;justify-content:space-between;padding:0 18px}
/* Translucent glass, with separate rim and raised chevron highlights. */
.motion-arrow{position:relative;display:grid;place-items:center;width:56px;height:56px;flex-shrink:0;border-radius:50%;border:1px solid rgba(249,252,255,.62);color:white;background:radial-gradient(ellipse at 28% 16%,rgba(255,255,255,.32),transparent 56%),linear-gradient(145deg,rgba(240,245,250,.18),rgba(208,217,226,.08) 52%,rgba(249,252,255,.2));backdrop-filter:blur(10px) saturate(115%);-webkit-backdrop-filter:blur(10px) saturate(115%);box-shadow:inset 0 1px 2px rgba(255,255,255,.82),inset 0 -1px 2px rgba(114,131,144,.38),0 0 0 1px rgba(99,116,127,.24),0 5px 13px rgba(0,0,0,.18);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s ease,background-color .3s ease,box-shadow .3s ease}
.motion-arrow:before{content:"";position:absolute;inset:3px;border-radius:inherit;pointer-events:none;border:1px solid rgba(255,255,255,.27);box-shadow:inset 0 1px 3px rgba(255,255,255,.42),0 1px 2px rgba(73,91,107,.12)}
.motion-arrow svg{position:relative;width:29px;height:29px;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgba(32,47,61,.3))}
.motion-back svg{transform:rotate(180deg)}
.chevron-edge{stroke:rgba(255,255,255,.73);stroke-width:8}
.chevron-body{stroke-width:6.5}
.chevron-shine{stroke:rgba(255,255,255,.72);stroke-width:1;filter:drop-shadow(0 1px 1px rgba(70,83,96,.22))}
.motion-stage:has(.motion-slide.is-active:hover) .motion-arrow,.motion-controls:hover .motion-arrow,.motion-controls:focus-within .motion-arrow{opacity:1;pointer-events:auto}
.motion-arrow:hover{background-color:rgba(244,248,252,.12);box-shadow:inset 0 1px 3px rgba(255,255,255,.92),inset 0 -1px 2px rgba(114,131,144,.38),0 0 0 1px rgba(99,116,127,.24),0 6px 17px rgba(0,0,0,.22)}
.motion-arrow:focus-visible{opacity:1;pointer-events:auto}
.motion-pagination{display:flex;justify-content:center;gap:8px;margin-top:34px}
.motion-pagination span{display:block;width:42px;height:2px;background:#2c5056;transition:background .35s ease}
.motion-pagination .is-current{background:var(--accent)}
.motion-count{text-align:center;font-size:10px;letter-spacing:.2em;color:var(--muted);margin-top:20px}
@media(max-width:640px){.motion-carousel{--center-fraction:.82;--center-width:82%}.motion-section{padding-bottom:12px}.motion-slide{border-radius:12px}.motion-slide.is-previous{transform:translateX(-74%) translateY(18%) scale(.72)}.motion-slide.is-next{transform:translateX(-26%) translateY(18%) scale(.72)}.motion-controls{padding-inline:9px}.motion-arrow{width:40px;height:40px}.motion-arrow svg{width:24px;height:24px}.motion-pagination{margin-top:24px}.motion-pagination span{width:32px}.motion-count{margin-top:14px}}
@media(hover:none),(pointer:coarse){.motion-arrow{opacity:1;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.motion-slide,.motion-arrow,.motion-pagination span{transition:none}}
