:root{
  --paper:#f6f2e9;
  --paper-2:#fffdf8;
  --ink:#1f2020;
  --ink-soft:#5c5b57;
  --line:rgba(31,32,32,.18);
  --blue:#b9e1e6;
  --pink:#efb4bf;
  --lime:#dfe662;
  --coral:#ef7a72;
  --violet:#c7b6ee;
  --shell:min(1480px,calc(100vw - 64px));
  --sans:"DM Sans","Segoe UI",Arial,sans-serif;
  --serif:"Instrument Serif",Georgia,serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-weight:400;overflow-x:hidden}
body.is-locked{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
img{display:block;width:100%;height:auto}
::selection{background:var(--blue);color:var(--ink)}
.section-shell{width:var(--shell);margin-inline:auto}

/* Intro */
.intro{position:fixed;inset:0;z-index:999;background:var(--ink);color:var(--paper);display:grid;grid-template-rows:auto 1fr auto;padding:24px 30px;transition:transform 1s var(--ease),visibility 1s}
.intro.is-done{transform:translateY(-105%);visibility:hidden}
.intro__top{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.intro__line{align-self:center;height:1px;background:rgba(255,255,255,.22);overflow:hidden}.intro__line i{display:block;height:100%;width:0;background:#fff;transition:width 1.2s var(--ease)}
.intro__word{font-size:clamp(42px,6vw,96px);font-weight:300;letter-spacing:-.045em;line-height:.88;padding-bottom:16px}.intro__word em{font-family:var(--serif);font-weight:400}

.scroll-progress{position:fixed;top:0;left:0;z-index:210;width:0;height:2px;background:var(--ink);pointer-events:none}
.cursor{position:fixed;z-index:400;left:0;top:0;width:58px;height:58px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.08em;pointer-events:none;transform:translate(-100px,-100px) scale(.2);opacity:0;transition:transform .18s ease,opacity .18s ease;mix-blend-mode:multiply}
.cursor.is-visible{opacity:1}.cursor.is-active{transform:translate(var(--cx),var(--cy)) scale(1)}

/* Header */
.header{position:fixed;z-index:200;top:0;left:0;right:0;height:76px;padding:0 max(24px,calc((100vw - 1480px)/2));display:flex;align-items:center;justify-content:space-between;background:linear-gradient(to bottom,rgba(246,242,233,.94),rgba(246,242,233,.72),transparent);backdrop-filter:blur(8px);transition:transform .45s var(--ease)}
.header.is-hidden{transform:translateY(-110%)}
.logo{display:flex;gap:8px;align-items:center;font-size:17px;font-weight:600;letter-spacing:-.03em}.logo i{font-style:normal;font-size:18px;color:#99cdd4}
.desktop-nav{display:flex;align-items:center;gap:30px;font-size:13px}.desktop-nav a{position:relative}.desktop-nav a:not(.nav-contact):after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:var(--ink);transition:right .3s ease}.desktop-nav a:hover:after{right:0}.nav-contact{padding:10px 14px;border:1px solid var(--ink);border-radius:999px;transition:.25s}.nav-contact:hover{background:var(--ink);color:var(--paper)}
.menu-button{display:none;font-size:13px}
.hire-pill{position:fixed;z-index:190;right:22px;bottom:22px;background:rgba(255,253,248,.9);border:1px solid rgba(31,32,32,.22);backdrop-filter:blur(10px);padding:11px 14px;border-radius:999px;font-size:12px;display:flex;align-items:center;gap:7px;box-shadow:0 12px 40px rgba(31,32,32,.08)}.hire-pill span{width:7px;height:7px;border-radius:50%;background:#7fb884;box-shadow:0 0 0 4px rgba(127,184,132,.12)}.hire-pill b{font-weight:500}
.mobile-menu{display:none}

/* Common */
.eyebrow,.section-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.in-view{opacity:1;transform:none}
h1,h2,h3,p{margin-top:0}
h2{font-size:clamp(46px,6.8vw,108px);font-weight:300;letter-spacing:-.055em;line-height:.87;margin-bottom:0}h2 em,h1 em{font-family:var(--serif);font-weight:400}

/* Hero */
.hero{min-height:100svh;width:var(--shell);margin:auto;padding:128px 0 58px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(460px,.95fr);gap:7vw;align-items:center}
.hero__copy{position:relative;z-index:2}.hero__title{font-size:clamp(68px,9vw,148px);line-height:.82;letter-spacing:-.07em;font-weight:300;margin:34px 0 42px}.hero__title em{display:inline-block;font-size:1.08em;white-space:nowrap}.hero__bottom{display:grid;grid-template-columns:minmax(220px,420px) auto;gap:34px;align-items:end}.hero__bottom p{font-size:clamp(15px,1.25vw,19px);line-height:1.55;color:#464642;margin:0}.hero__bottom a{font-size:12px;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}.hero__bottom a span{display:inline-block;margin-left:8px;transition:transform .3s}.hero__bottom a:hover span{transform:translateY(5px)}
.hero-scene{height:min(72vh,790px);min-height:560px;position:relative;isolation:isolate}.hero-shot{position:absolute;overflow:hidden;border-radius:2px;box-shadow:0 20px 60px rgba(31,32,32,.14);transform:translate3d(var(--mx,0),var(--my,0),0) rotate(var(--r,0deg));transition:box-shadow .4s var(--ease),filter .4s var(--ease);will-change:transform}.hero-shot img{height:100%;object-fit:cover;transition:transform .7s var(--ease)}.hero-shot:hover{z-index:8;box-shadow:0 28px 80px rgba(31,32,32,.22)}.hero-shot:hover img{transform:scale(1.035)}
.hero-shot--a{width:58%;height:48%;left:3%;top:8%;--r:-3deg}.hero-shot--b{width:50%;height:56%;right:0;top:27%;--r:2.5deg}.hero-shot--c{width:36%;height:37%;left:18%;bottom:2%;--r:-1.2deg}.hero-symbol{position:absolute;z-index:5;line-height:1;font-weight:300;pointer-events:none}.hero-symbol--star{right:10%;top:5%;font-size:64px;color:#86cbd3}.hero-symbol--plus{left:2%;bottom:12%;font-size:78px;color:#e9a7b3}.hero-caption{position:absolute;right:0;bottom:0;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft)}

/* Positioning */
.positioning{padding:140px 0 150px;border-top:1px solid var(--line);display:grid;grid-template-columns:100px minmax(0,1fr) 300px;gap:4vw;align-items:start}.positioning__number{font-size:12px;color:var(--ink-soft)}.positioning__statement{font-size:clamp(42px,6.3vw,96px);line-height:.98;letter-spacing:-.055em;font-weight:300;margin:0;max-width:1000px}.positioning__statement em{font-family:var(--serif);font-weight:400}.positioning__side{font-size:14px;line-height:1.6;color:var(--ink-soft);padding-top:12px}.positioning__side span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);display:block;margin-top:28px}

/* Capabilities */
.capabilities{padding:130px 0 150px;border-top:1px solid var(--line)}.capabilities__head{display:grid;grid-template-columns:1fr 360px;gap:8vw;align-items:end;margin:46px 0 90px}.capabilities__head p{margin:0;color:var(--ink-soft);line-height:1.65;font-size:16px}.capability-grid{border-top:1px solid var(--line)}.capability{display:grid;grid-template-columns:70px minmax(220px,1fr) 1.1fr;gap:3vw;align-items:center;padding:27px 0;border-bottom:1px solid var(--line);transition:padding .35s var(--ease),background .35s}.capability:hover{padding-left:14px;padding-right:14px;background:rgba(255,255,255,.32)}.capability>span{font-size:10px;color:var(--ink-soft)}.capability h3{font-size:clamp(20px,2.1vw,34px);font-weight:400;letter-spacing:-.035em;margin:0}.capability p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}

/* Work */
.work{background:var(--paper-2);padding:140px 0 100px;border-top:1px solid var(--line)}.work__intro{display:grid;grid-template-columns:1fr 360px;gap:8vw;align-items:end}.work__intro .section-label{margin-bottom:40px}.work__instructions{font-size:14px;line-height:1.6;color:var(--ink-soft)}.work__instructions p:last-child{margin-bottom:0}.work__instructions b{font-weight:500;color:var(--ink)}
.filter-bar{position:sticky;top:76px;z-index:80;background:rgba(255,253,248,.9);backdrop-filter:blur(16px);display:flex;gap:8px;flex-wrap:wrap;padding:28px 0;margin-top:80px;border-bottom:1px solid var(--line)}.filter{padding:9px 13px;border:1px solid var(--line);border-radius:999px;font-size:12px;transition:.25s}.filter:hover,.filter.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}.filter sup{font-size:8px;margin-left:3px;opacity:.6}
.project-stream{width:var(--shell);margin:0 auto}.project{min-height:760px;padding:120px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:370px minmax(0,1fr);gap:6vw;align-items:center}.project:nth-child(even){grid-template-columns:minmax(0,1fr) 370px}.project:nth-child(even) .project__info{order:2}.project:nth-child(even) .project__collage{order:1}.project.is-hiding{display:none}
.project__index{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:26px}.project__info h3{font-size:clamp(38px,4.3vw,70px);font-weight:300;letter-spacing:-.05em;line-height:.95;margin:0 0 18px}.project__subtitle{font-family:var(--serif);font-size:24px;margin-bottom:26px}.project__summary{font-size:14px;color:var(--ink-soft);line-height:1.65;margin-bottom:24px}.project__role{font-size:11px;line-height:1.5;text-transform:uppercase;letter-spacing:.08em;border-top:1px solid var(--line);padding-top:16px}.project__open{margin-top:30px;display:inline-flex;gap:10px;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.project__open i{font-style:normal;width:30px;height:30px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;transition:.3s}.project__open:hover i{background:var(--ink);color:#fff;transform:translateX(4px)}
.project__collage{position:relative;height:min(66vw,680px);max-height:680px;min-height:520px}.project__tile{position:absolute;overflow:hidden;background:#ddd;box-shadow:0 18px 50px rgba(31,32,32,.1);border-radius:2px;transition:transform .55s var(--ease),box-shadow .55s var(--ease),filter .45s;will-change:transform}.project__tile img{height:100%;object-fit:cover;transition:transform .65s var(--ease)}.project__collage:hover .project__tile:not(:hover){filter:saturate(.84) brightness(.97)}.project__tile:hover{z-index:20!important;box-shadow:0 30px 80px rgba(31,32,32,.2);transform:translateY(-8px) rotate(0deg)!important}.project__tile:hover img{transform:scale(1.025)}
.project__tile:nth-child(1){width:49%;height:61%;left:0;top:5%;z-index:3;transform:rotate(-1.5deg)}.project__tile:nth-child(2){width:45%;height:48%;right:1%;top:0;z-index:5;transform:rotate(1.2deg)}.project__tile:nth-child(3){width:42%;height:45%;left:17%;bottom:0;z-index:6;transform:rotate(.6deg)}.project__tile:nth-child(4){width:39%;height:43%;right:2%;bottom:5%;z-index:4;transform:rotate(-1.1deg)}.project__tile:nth-child(5){width:25%;height:32%;left:43%;top:34%;z-index:8;transform:rotate(2.5deg)}.project__tile:nth-child(6){width:22%;height:31%;right:23%;bottom:18%;z-index:9;transform:rotate(-2deg)}
.project[data-accent="cyan"] .project__info h3::selection{background:var(--blue)}

/* Corporate */
.brand-work{padding:150px 0;display:grid;grid-template-columns:390px minmax(0,1fr);gap:7vw;border-top:1px solid var(--line)}.brand-work__sticky{position:sticky;top:130px;align-self:start}.brand-work__sticky h2{font-size:clamp(42px,4.6vw,72px);margin:32px 0}.brand-work__sticky p{color:var(--ink-soft);line-height:1.65;font-size:14px}.brand-work__cards{display:grid;gap:70px}.brand-card{text-align:left;width:100%}.brand-card__visual{aspect-ratio:16/10;overflow:hidden;background:#eee}.brand-card__visual img{height:100%;object-fit:cover;transition:transform .8s var(--ease)}.brand-card:hover .brand-card__visual img{transform:scale(1.025)}.brand-card__meta{display:grid;grid-template-columns:180px 1fr;gap:30px;padding-top:20px}.brand-card__meta span,.brand-card__meta small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.brand-card__meta h3{font-size:clamp(26px,2.4vw,40px);font-weight:300;letter-spacing:-.04em;line-height:1.08;margin:0}.brand-card__meta small{grid-column:2}

/* About */
.about{padding:150px 0;display:grid;grid-template-columns:minmax(380px,.85fr) minmax(0,1.15fr);gap:8vw;align-items:center;border-top:1px solid var(--line)}.about__portrait{position:relative}.about__portrait-frame{width:78%;aspect-ratio:4/5;overflow:hidden;background:#ddd}.about__portrait-frame img{height:100%;object-fit:cover;filter:grayscale(100%);object-position:center 15%}.about__badge{position:absolute;right:0;bottom:8%;background:var(--lime);width:160px;height:160px;border-radius:50%;display:grid;place-items:center;text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.08em;line-height:1.6;transform:rotate(7deg)}.about__copy .section-label{margin-bottom:36px}.about__copy h2{font-size:clamp(52px,6vw,95px);margin-bottom:50px}.about__copy>p{max-width:720px;font-size:15px;line-height:1.7;color:var(--ink-soft)}.about__copy .about__lead{font-size:clamp(20px,2vw,30px);line-height:1.4;color:var(--ink);font-weight:300}.about__facts{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);margin-top:55px}.about__facts div{padding:22px 20px 22px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;flex-direction:column}.about__facts div:nth-child(odd){border-right:1px solid var(--line)}.about__facts div:nth-child(even){padding-left:20px}.about__facts b{font-size:28px;font-weight:400;letter-spacing:-.03em}.about__facts span{font-size:11px;line-height:1.5;color:var(--ink-soft)}

/* Contact */
.contact{position:relative;min-height:88vh;background:var(--ink);color:var(--paper);overflow:hidden;display:flex;align-items:center}.contact__image{position:absolute;right:-5%;bottom:-16%;width:min(42vw,670px);opacity:.7;mix-blend-mode:screen}.contact__image img{filter:grayscale(100%);mask-image:linear-gradient(to top,black 70%,transparent 100%)}.contact__content{position:relative;z-index:2;padding:130px 0 52px}.contact .section-label{color:rgba(246,242,233,.55)}.contact h2{font-size:clamp(58px,8vw,130px);max-width:1250px;margin:48px 0 80px}.contact__actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap}.contact__actions a{border-bottom:1px solid rgba(246,242,233,.4);padding-bottom:5px;font-size:14px}.contact__actions .contact-mail{font-size:clamp(20px,2.4vw,36px);font-weight:300}.contact-mail span{display:inline-block;transition:transform .3s}.contact-mail:hover span{transform:translate(5px,-5px)}.contact__footer{display:flex;justify-content:space-between;margin-top:100px;border-top:1px solid rgba(246,242,233,.2);padding-top:18px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:rgba(246,242,233,.55)}

/* Gallery */
.gallery{position:fixed;z-index:500;inset:0;visibility:hidden;pointer-events:none}.gallery.is-open{visibility:visible;pointer-events:auto}.gallery__backdrop{position:absolute;inset:0;background:rgba(14,15,15,.62);backdrop-filter:blur(12px);opacity:0;transition:opacity .5s}.gallery.is-open .gallery__backdrop{opacity:1}.gallery__panel{position:absolute;inset:14px;background:#151616;color:#f8f5ee;border-radius:5px;overflow-y:auto;overscroll-behavior:contain;transform:translateY(105%);transition:transform .65s var(--ease)}.gallery.is-open .gallery__panel{transform:none}.gallery__header{position:sticky;top:0;z-index:8;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:rgba(21,22,22,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.12)}.gallery__header span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.5)}.gallery__header h2{font-size:25px;line-height:1;margin:5px 0 0;font-weight:400;letter-spacing:-.03em}.gallery__close{border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:8px 12px;font-size:11px}.gallery__stage{min-height:70vh;display:grid;grid-template-columns:72px 1fr 72px;align-items:center;padding:24px}.gallery__stage figure{margin:0;height:64vh;min-height:440px;display:grid;grid-template-rows:1fr auto;gap:12px}.gallery__stage img{width:100%;height:100%;object-fit:contain;opacity:1;transition:opacity .18s ease,transform .35s var(--ease)}.gallery__stage img.is-changing{opacity:.15;transform:scale(.985)}.gallery__stage figcaption{text-align:center;font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.5)}.gallery__nav{width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:50%;justify-self:center;transition:.25s}.gallery__nav:hover{background:#fff;color:#111}.gallery__details{border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:.7fr 1.15fr 1.15fr;margin:0 24px}.gallery__details>div{padding:28px 30px 30px 0}.gallery__details>div+div{border-left:1px solid rgba(255,255,255,.12);padding-left:30px}.gallery__details span{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.45)}.gallery__details p{font-size:13px;line-height:1.6;color:rgba(255,255,255,.78);margin:10px 0 0}.gallery__thumbs{display:flex;gap:10px;overflow-x:auto;padding:24px;scrollbar-width:thin}.gallery__thumb{flex:0 0 120px;height:82px;opacity:.45;border:1px solid transparent;overflow:hidden;transition:.25s}.gallery__thumb img{height:100%;object-fit:cover}.gallery__thumb.is-active{opacity:1;border-color:#fff}

/* Responsive */
@media (max-width:1050px){
  :root{--shell:min(100% - 40px,980px)}
  .desktop-nav{display:none}.menu-button{display:block}.hire-pill{right:14px;bottom:14px}
  .mobile-menu{display:flex;position:fixed;z-index:180;inset:0;background:var(--paper);padding:110px 24px 40px;flex-direction:column;justify-content:center;gap:5px;transform:translateY(-105%);transition:transform .55s var(--ease);visibility:hidden}.mobile-menu.is-open{transform:none;visibility:visible}.mobile-menu a{font-size:clamp(48px,10vw,82px);font-weight:300;letter-spacing:-.055em;line-height:1}.mobile-menu small{margin-top:auto;color:var(--ink-soft)}.mobile-menu__number{position:absolute;top:115px;right:24px;font-size:10px;color:var(--ink-soft)}
  .hero{grid-template-columns:1fr;padding-top:120px;gap:50px}.hero__title{font-size:clamp(70px,14vw,130px)}.hero-scene{height:65vh;min-height:520px;max-height:700px}.hero__bottom{max-width:650px}
  .positioning{grid-template-columns:60px 1fr}.positioning__side{grid-column:2;max-width:520px}
  .capabilities__head,.work__intro{grid-template-columns:1fr 320px}
  .project,.project:nth-child(even){grid-template-columns:300px minmax(0,1fr);gap:40px}.project:nth-child(even) .project__info{order:0}.project:nth-child(even) .project__collage{order:0}
  .brand-work{grid-template-columns:300px 1fr;gap:45px}
  .about{grid-template-columns:.8fr 1.2fr;gap:45px}
}

@media (max-width:760px){
  :root{--shell:calc(100% - 28px)}
  .header{height:64px;padding:0 14px}.hire-pill{left:14px;right:14px;justify-content:center;bottom:max(10px,env(safe-area-inset-bottom));font-size:11px}
  .intro{padding:18px 16px}.intro__word{font-size:48px}
  .cursor{display:none}
  .hero{padding:96px 0 44px;min-height:auto}.hero__title{font-size:clamp(62px,19vw,96px);margin:25px 0 30px}.hero__title em{white-space:normal}.hero__bottom{grid-template-columns:1fr;gap:22px}.hero__bottom p{font-size:15px}.hero-scene{height:72vh;min-height:540px;margin-top:12px}.hero-shot--a{width:68%;height:46%;left:0;top:2%}.hero-shot--b{width:61%;height:48%;right:-3%;top:30%}.hero-shot--c{width:47%;height:35%;left:4%;bottom:0}.hero-symbol--star{font-size:46px}.hero-symbol--plus{font-size:58px}.hero-caption{display:none}
  .positioning{padding:90px 0 100px;grid-template-columns:1fr;gap:24px}.positioning__number{display:none}.positioning__statement{font-size:clamp(42px,12.5vw,68px)}.positioning__side{grid-column:auto;max-width:90%}
  .capabilities{padding:90px 0}.capabilities__head{grid-template-columns:1fr;gap:30px;margin:30px 0 55px}.capabilities__head h2{font-size:clamp(50px,14vw,72px)}.capabilities__head p{max-width:90%}.capability{grid-template-columns:35px 1fr;padding:22px 0}.capability p{grid-column:2}.capability h3{font-size:24px}
  .work{padding:90px 0 70px}.work__intro{grid-template-columns:1fr;gap:34px}.work__intro h2{font-size:clamp(50px,14vw,74px)}.work__instructions{max-width:88%}.filter-bar{top:64px;margin-top:48px;padding:14px 0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter{flex:none}
  .project,.project:nth-child(even){min-height:auto;padding:80px 0;grid-template-columns:1fr;gap:42px}.project:nth-child(even) .project__info{order:0}.project:nth-child(even) .project__collage{order:1}.project__info{max-width:92%}.project__info h3{font-size:48px}.project__subtitle{font-size:20px}.project__collage{height:72vh;min-height:560px;max-height:680px}.project__tile:nth-child(1){width:64%;height:52%;left:0;top:4%}.project__tile:nth-child(2){width:52%;height:42%;right:0;top:23%}.project__tile:nth-child(3){width:50%;height:38%;left:8%;bottom:2%}.project__tile:nth-child(4){width:38%;height:35%;right:2%;bottom:3%}.project__tile:nth-child(5){width:28%;height:25%;left:43%;top:44%}.project__tile:nth-child(n+6){display:none}
  .brand-work{padding:90px 0;grid-template-columns:1fr}.brand-work__sticky{position:static}.brand-work__sticky h2{font-size:50px}.brand-work__cards{gap:50px}.brand-card__meta{grid-template-columns:1fr;gap:10px}.brand-card__meta small{grid-column:auto}.brand-card__meta h3{font-size:28px}
  .about{padding:90px 0 110px;grid-template-columns:1fr}.about__portrait{max-width:520px}.about__portrait-frame{width:84%}.about__badge{width:125px;height:125px}.about__copy h2{font-size:54px;margin-bottom:38px}.about__facts{grid-template-columns:1fr}.about__facts div:nth-child(odd){border-right:0}.about__facts div:nth-child(even){padding-left:0}.about__facts b{font-size:24px}
  .contact{min-height:90svh}.contact__content{padding:100px 0 100px}.contact h2{font-size:clamp(54px,15vw,80px);margin:35px 0 55px}.contact__actions{align-items:flex-start;flex-direction:column}.contact__actions .contact-mail{font-size:20px;overflow-wrap:anywhere}.contact__image{width:80vw;opacity:.4;right:-24%;bottom:0}.contact__footer{flex-direction:column;gap:8px;margin-top:70px}
  .gallery__panel{inset:0;border-radius:0}.gallery__header{padding:14px}.gallery__stage{grid-template-columns:44px 1fr 44px;padding:12px 4px;min-height:62vh}.gallery__stage figure{height:55vh;min-height:320px}.gallery__nav{width:36px;height:36px}.gallery__details{grid-template-columns:1fr;margin:0 14px}.gallery__details>div{padding:18px 0}.gallery__details>div+div{border-left:0;border-top:1px solid rgba(255,255,255,.12);padding-left:0}.gallery__thumbs{padding:16px 14px 90px}.gallery__thumb{flex-basis:96px;height:68px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.intro{display:none}.reveal{opacity:1;transform:none}.hero-shot{transform:none!important}
}

/* =========================================================
   V2.1 — VIEWPORT-FIT GALLERY
   The project viewer is designed to fit laptop screens and
   keep photography fully visible without horizontal panning.
   ========================================================= */
:root{
  --gallery-paper:#f4f0e7;
  --gallery-paper-2:#ebe6dc;
  --gallery-ink:#252525;
  --gallery-copy:#4f4d48;
  --gallery-muted:#74716a;
  --gallery-accent:#815565;
  --gallery-line:rgba(37,37,37,.14);
}

.gallery__panel{
  background:var(--gallery-paper);
  color:var(--gallery-ink);
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(290px,340px);
  grid-template-rows:auto minmax(0,1fr) 102px;
  min-width:0;
  min-height:0;
}
.gallery__header{
  grid-column:1 / -1;
  grid-row:1;
  position:relative;
  top:auto;
  padding:15px 20px;
  min-height:66px;
  background:rgba(244,240,231,.94);
  color:var(--gallery-ink);
  border-bottom:1px solid var(--gallery-line);
  backdrop-filter:blur(18px);
}
.gallery__header span{
  color:var(--gallery-accent);
  font-weight:600;
}
.gallery__header h2{
  color:var(--gallery-ink);
  font-size:clamp(20px,2vw,27px);
  font-weight:450;
}
.gallery__close{
  color:var(--gallery-ink);
  border-color:rgba(37,37,37,.26);
  background:rgba(255,255,255,.44);
  transition:background .25s ease,border-color .25s ease;
}
.gallery__close:hover{background:#fff;border-color:rgba(37,37,37,.48)}

.gallery__stage{
  grid-column:1;
  grid-row:2;
  position:relative;
  min-width:0;
  min-height:0;
  height:100%;
  padding:18px 66px 10px;
  display:block;
  overflow:hidden;
  background:var(--gallery-paper);
}
.gallery__stage figure{
  width:100%;
  height:100%;
  min-height:0;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  overflow:hidden;
}
.gallery__stage img{
  flex:1 1 auto;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  max-width:100%;
  max-height:calc(100% - 24px);
  object-fit:contain;
  object-position:center center;
  box-shadow:0 14px 42px rgba(34,34,34,.09);
}
.gallery__stage figcaption{
  flex:0 0 auto;
  color:var(--gallery-muted);
  font-weight:600;
}
.gallery__nav{
  position:absolute;
  top:50%;
  z-index:4;
  width:42px;
  height:42px;
  transform:translateY(-50%);
  color:var(--gallery-ink);
  border-color:rgba(37,37,37,.22);
  background:rgba(255,255,255,.8);
  box-shadow:0 8px 24px rgba(37,37,37,.08);
  backdrop-filter:blur(8px);
}
.gallery__nav--prev{left:16px}
.gallery__nav--next{right:16px}
.gallery__nav:hover{background:var(--gallery-ink);color:var(--gallery-paper)}

.gallery__details{
  grid-column:2;
  grid-row:2 / 4;
  display:block;
  min-width:0;
  min-height:0;
  margin:0;
  padding:26px 26px 32px;
  overflow-y:auto;
  overflow-x:hidden;
  border:0;
  border-left:1px solid var(--gallery-line);
  background:rgba(255,255,255,.27);
  scrollbar-width:thin;
}
.gallery__details>div{
  padding:0 0 24px;
  margin:0 0 24px;
  border-bottom:1px solid var(--gallery-line);
}
.gallery__details>div+div{
  border-left:0;
  padding-left:0;
}
.gallery__details>div:last-child{margin-bottom:0;border-bottom:0}
.gallery__details span{
  color:var(--gallery-accent);
  font-weight:700;
}
.gallery__details p{
  color:var(--gallery-copy);
  font-size:13px;
  line-height:1.68;
  margin-top:9px;
}

.gallery__thumbs{
  grid-column:1;
  grid-row:3;
  min-width:0;
  min-height:0;
  gap:8px;
  padding:10px 16px 12px;
  background:var(--gallery-paper-2);
  border-top:1px solid var(--gallery-line);
  scrollbar-width:thin;
}
.gallery__thumb{
  flex:0 0 104px;
  height:76px;
  opacity:.6;
  border:1px solid transparent;
  border-radius:2px;
  background:#ded9cf;
}
.gallery__thumb.is-active{
  opacity:1;
  border-color:var(--gallery-accent);
  box-shadow:0 0 0 1px var(--gallery-accent);
}
.gallery__thumb img{width:100%;height:100%;object-fit:cover}

@media (max-width:1050px) and (min-width:761px){
  .gallery__panel{grid-template-columns:minmax(0,1fr) 280px;grid-template-rows:auto minmax(0,1fr) 92px}
  .gallery__stage{padding:14px 56px 8px}
  .gallery__details{padding:22px 20px 28px}
  .gallery__thumb{flex-basis:92px;height:66px}
}

@media (max-width:760px){
  .gallery__panel{
    inset:0;
    border-radius:0;
    display:block;
    overflow-y:auto;
    overflow-x:hidden;
    background:var(--gallery-paper);
    scroll-padding-top:64px;
  }
  .gallery__header{
    position:sticky;
    top:0;
    z-index:12;
    min-height:62px;
    padding:12px 14px;
    background:rgba(244,240,231,.96);
  }
  .gallery__header h2{font-size:20px;margin-top:4px;max-width:70vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gallery__close{padding:8px 10px;background:rgba(255,255,255,.72)}
  .gallery__stage{
    position:relative;
    width:100%;
    height:min(61svh,540px);
    min-height:390px;
    padding:12px 42px 8px;
    overflow:hidden;
    background:var(--gallery-paper);
  }
  .gallery__stage figure{
    width:100%;
    height:100%;
    min-height:0;
    justify-content:center;
  }
  .gallery__stage img{
    width:auto;
    height:auto;
    max-width:100%;
    max-height:calc(100% - 24px);
    object-fit:contain;
    object-position:center center;
    box-shadow:0 10px 28px rgba(34,34,34,.08);
  }
  .gallery__stage figcaption{font-size:9px;color:var(--gallery-muted)}
  .gallery__nav{
    width:34px;
    height:34px;
    background:rgba(255,255,255,.9);
  }
  .gallery__nav--prev{left:5px}
  .gallery__nav--next{right:5px}
  .gallery__details{
    display:block;
    width:auto;
    margin:0 14px;
    padding:20px 0 4px;
    overflow:visible;
    border-left:0;
    border-top:1px solid var(--gallery-line);
    background:transparent;
  }
  .gallery__details>div{
    padding:0 0 17px;
    margin:0 0 17px;
    border-bottom:1px solid var(--gallery-line);
  }
  .gallery__details>div+div{border-top:0;padding-left:0}
  .gallery__details span{font-size:9px;color:var(--gallery-accent)}
  .gallery__details p{font-size:13px;color:var(--gallery-copy);line-height:1.6}
  .gallery__thumbs{
    display:flex;
    width:100%;
    padding:12px 14px max(24px,env(safe-area-inset-bottom));
    background:var(--gallery-paper-2);
    border-top:1px solid var(--gallery-line);
  }
  .gallery__thumb{flex:0 0 88px;height:64px}
}

@media (max-width:420px){
  .gallery__stage{height:min(58svh,500px);min-height:350px;padding-inline:38px}
  .gallery__nav{width:32px;height:32px}
  .gallery__header span{font-size:8px}
  .gallery__header h2{font-size:18px}
}

/* V3 CMS-driven content */
.hire-pill i{font-style:normal}.hire-pill[data-availability="limited"] span{background:#d79a33}.hire-pill[data-availability="unavailable"] span{background:#999}.contact__footer a{text-decoration:underline;text-underline-offset:3px}
.project[data-layout="grid"] .project__collage{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,minmax(120px,1fr))}.project[data-layout="grid"] .project__tile{position:relative!important;inset:auto!important;width:auto!important;height:auto!important;transform:none!important}.project[data-layout="cinematic"] .project__collage{grid-template-columns:1.55fr .7fr;grid-template-rows:1fr 1fr}.project[data-layout="cinematic"] .project__tile{position:relative!important;inset:auto!important;width:auto!important;height:auto!important;transform:none!important}.project[data-layout="cinematic"] .project__tile:first-child{grid-row:1/3}.project[data-layout="minimal"] .project__collage{display:grid;grid-template-columns:1fr 1fr;gap:12px}.project[data-layout="minimal"] .project__tile{position:relative!important;inset:auto!important;width:auto!important;height:auto!important;transform:none!important}
.gallery__blocks{display:grid;gap:20px;padding:0!important;margin:0!important;border:0!important}.gallery__blocks .gallery__block,.gallery__blocks .gallery__video,.gallery__blocks blockquote{padding:0 0 20px;margin:0;border-bottom:1px solid var(--gallery-line)}.gallery__blocks h3{margin:0 0 8px;font-family:"Instrument Serif",serif;font-weight:400;font-size:24px;color:var(--gallery-ink)}.gallery__blocks p,.gallery__blocks blockquote{font-size:13px;line-height:1.68;color:var(--gallery-copy)}.gallery__blocks blockquote{font-family:"Instrument Serif",serif;font-size:22px;line-height:1.25;color:var(--gallery-ink)}.gallery__video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:8px;background:#ddd}.gallery__blocks a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.project[data-layout] .project__collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:8px}.project[data-layout] .project__tile{position:relative!important;inset:auto!important;width:auto!important;height:38vw!important;transform:none!important}.project[data-layout] .project__tile:first-child{grid-row:auto}.gallery__blocks h3{font-size:22px}.gallery__blocks blockquote{font-size:20px}}
