:root{--bg:#0e0e0c;--fg:#eeede6;--muted:#b1aea4;--accent:#f16a45;--paper:#eeede6;--rule:#ffffff26;--edge:clamp(22px,5vw,88px);--display:'Bricolage Grotesque',sans-serif;--body:'Instrument Sans',sans-serif;--mono:'IBM Plex Mono',monospace;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 var(--body)}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--bg)}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-family:var(--display);line-height:1;letter-spacing:-.055em}em{font-style:normal;color:var(--accent)}.wrap{padding-inline:var(--edge);max-width:1600px;margin-inline:auto}.eyebrow,.section-note,.pending{font:12px/1.6 var(--mono);letter-spacing:.06em}.eyebrow{text-transform:uppercase}.skip{position:fixed;top:-80px;left:20px;z-index:100;padding:12px;background:var(--fg);color:var(--bg)}.skip:focus{top:12px}.progress{position:fixed;top:0;height:2px;background:var(--accent);width:100%;transform:scaleX(0);transform-origin:left;z-index:30}.nav{height:80px;padding-inline:var(--edge);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:20;background:#0e0e0ced;backdrop-filter:blur(14px);border-bottom:1px solid var(--rule)}.brand{font:700 25px var(--display);display:inline-flex;align-items:center;gap:7px;letter-spacing:-2px}.brand__dot{height:6px;width:6px;border-radius:50%;background:var(--accent)}nav{display:flex;gap:36px;font-size:14px}nav a{position:relative;padding:9px 0}nav a::after{content:'';height:1px;background:var(--accent);position:absolute;bottom:4px;left:0;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover::after,nav a[aria-current]::after{transform:scaleX(1)}
.hero{position:relative;padding:28px var(--edge) 40px;max-width:1700px;margin:auto}.hero__meta{display:flex;justify-content:space-between;font:12px/1.6 var(--mono);color:var(--muted);margin-bottom:30px}.hero h1{text-align:center;text-transform:uppercase;font-size:clamp(90px,15.2vw,240px);line-height:.77;font-weight:800;letter-spacing:-.055em}.hero h1>span{display:block;animation:title-in .85s both}.hero__surname{margin-top:clamp(196px,23vw,352px);animation-delay:.15s!important}.hero__strip{position:absolute;top:calc(77px + clamp(90px,15.2vw,240px)*.77 + 19px);left:var(--edge);right:var(--edge);height:clamp(158px,20vw,310px);display:grid;grid-template-columns:1.35fr .7fr 1fr;gap:10px;animation:strip-in 1s .12s both}.hero__strip .film{margin:0;opacity:1;transform:none}.hero__strip .film__open{height:100%;aspect-ratio:auto}.hero__strip figcaption{display:none}.hero__strip .film__action{font-size:12px;padding:6px 10px;bottom:12px;right:12px}.hero__bottom{display:flex;justify-content:space-between;align-items:end;margin-top:35px;gap:24px}.hero__bottom p{font-size:17px;line-height:1.4}.text-link{display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid var(--muted);padding-block:10px;font-size:14px}.text-link span{transition:transform .25s}.text-link:hover span{transform:translate(3px,3px)}.intro{padding-block:100px 120px;display:grid;grid-template-columns:1fr 2fr;gap:26px;border-bottom:1px solid var(--rule)}.intro>.eyebrow{color:var(--accent)}.intro>p:not(.eyebrow){font:500 clamp(25px,3vw,46px)/1.18 var(--display);letter-spacing:-.035em}.intro>p span{color:var(--muted)}.intro>.text-link{grid-column:2;justify-self:start}
.section-heading{padding-block:80px 50px;position:relative}.section-heading .eyebrow{color:var(--accent);margin-bottom:28px}.section-heading h2{font-size:clamp(38px,5vw,76px);font-weight:500}.section-heading h2 span{color:var(--muted)}.section-note{position:absolute;right:var(--edge);bottom:55px;color:var(--muted)}.project__cover{position:relative;height:clamp(430px,65vw,750px);overflow:hidden;background:#292620}.project__cover>img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.cover__shade{position:absolute;inset:0;background:linear-gradient(180deg,#0005,transparent 35%,#000b)}.cover__top,.cover__bottom{position:absolute;left:var(--edge);right:var(--edge);font:12px var(--mono)}.cover__top{top:30px;display:flex;justify-content:space-between}.project__cover h3{position:absolute;left:var(--edge);bottom:70px;font-size:clamp(75px,12vw,185px);letter-spacing:-.065em}.project__cover em{color:var(--fg)}.cover__bottom{bottom:30px}.project__story{display:grid;grid-template-columns:1fr 2fr;padding-block:90px 70px;gap:30px}.project__story>.eyebrow{color:var(--accent)}.project__story h4{font-size:clamp(33px,4.5vw,62px);margin-bottom:30px;font-weight:500}.project__story p:not(.eyebrow){color:var(--muted);max-width:60ch;margin-top:18px;font-size:17px}.disciplines{font:12px/1.9 var(--mono);padding-top:25px;margin-top:28px;border-top:1px solid var(--rule);color:var(--muted)}
.films{display:grid;grid-template-columns:1.25fr 1fr;gap:65px 5vw;align-items:start}.film{min-width:0}.films>.film:nth-child(2){margin-top:150px}.films>.film:nth-child(3){width:75%;margin-left:auto;margin-top:-70px}.films>.film:nth-child(4){margin-top:120px}.film__open{position:relative;display:block;width:100%;padding:0;border:0;background:#24231f;overflow:hidden;cursor:pointer;aspect-ratio:3/4}.film--wide .film__open{aspect-ratio:5/4}.film__open img,.film__open video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .4s,filter .5s}.film__open img{filter:grayscale(.8);z-index:1}.film__open video{opacity:0}.film__open.is-playing video{opacity:1}.film__open.is-playing img{opacity:0}.film__open:hover img,.film__open:focus-visible img{filter:grayscale(0);transform:scale(1.035)}.film__open:hover video{transform:scale(1.035)}.film__action{position:absolute;right:18px;bottom:18px;z-index:2;padding:9px 15px;background:#eeede6;color:#141410;font-size:13px;display:flex;gap:28px}.film figcaption{display:flex;justify-content:space-between;gap:10px;padding-top:14px;font:12px/1.5 var(--mono)}.film figcaption>span:last-child{color:var(--muted);text-align:right}
.results{padding-block:100px}.results__heading{display:flex;justify-content:space-between;border-top:1px solid var(--rule);padding-top:25px;gap:20px}.results__heading .eyebrow{color:var(--accent)}.results__heading>span{font:12px var(--mono);color:var(--muted)}.results__main{display:flex;align-items:center;gap:5vw;padding-block:50px}.results__number{font:700 clamp(75px,15vw,230px)/.9 var(--display);letter-spacing:-.07em;color:var(--accent)}.results__main>p:last-child{font:500 clamp(22px,3vw,46px)/1.1 var(--display);letter-spacing:-.04em}.results__details{display:grid;grid-template-columns:1fr 1.5fr;gap:40px;border-top:1px solid var(--rule);padding-top:30px}.results__details>p{font-size:16px}.results__details>p span{display:block;color:var(--muted);font-size:12px;max-width:30ch;margin-top:8px}.results ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:25px}.results li strong{display:block;font:500 30px var(--display)}.results li span{font-size:13px;color:var(--muted)}
.fixup{background:#074de7;color:white;padding-block:38px 60px;margin-bottom:0}.fixup__top{display:flex;justify-content:space-between;gap:20px;font:12px var(--mono)}.fixup h3{font-size:clamp(100px,23vw,330px);font-weight:700;display:flex;justify-content:space-between;padding-block:55px;letter-spacing:-.075em}.fixup h3>span{font-weight:400;font-size:.7em;align-self:center}.fixup__bottom{display:grid;grid-template-columns:1fr 1fr;gap:10vw;border-top:1px solid #ffffff60;padding-top:30px}.fixup__bottom>p{font-size:clamp(20px,2.2vw,30px);line-height:1.35;max-width:30ch}.fixup .disciplines{padding:0;margin:0;border:0;color:white}.fixup .pending{margin-top:25px;color:#e1e8ff}.pending{color:var(--muted)}
.about{background:var(--paper);color:#171710;padding-block:80px 90px}.about>.wrap>.eyebrow{margin-bottom:45px;color:#57574e}.about__grid{display:grid;grid-template-columns:1fr 1.35fr;gap:9vw;align-items:center}.portrait{max-width:430px;position:relative}.portrait:before{content:' ';position:absolute;inset:-10px;border:1px solid #17171035;pointer-events:none}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}.portrait figcaption{display:flex;justify-content:space-between;gap:15px;font:12px var(--mono);margin-top:15px}.portrait figcaption>span{color:#59594f}.about h2{font-size:clamp(43px,5.5vw,80px);font-weight:500;margin-bottom:28px}.about h2 em{color:#8b4029}.about__text>p{margin-top:20px;color:#515149;font-size:16px}.about__text>.about__lead{font-size:21px;color:#171710;line-height:1.5}.experience{display:grid;grid-template-columns:1fr 1.35fr;gap:9vw;padding-top:70px;margin-top:70px;border-top:1px solid #17171035}.experience h3{font-size:34px;font-weight:500}.experience dl{margin:0}.experience dl>div{display:grid;grid-template-columns:110px 1fr;gap:20px;padding-block:20px;border-bottom:1px solid #17171035}.experience dl>div:first-child{padding-top:0}.experience dt{font:12px/1.8 var(--mono)}.experience dd{margin:0}.experience dd span{display:block;color:#626258;font-size:14px;margin-top:9px}
.contact{padding-block:100px 75px}.contact>.eyebrow{color:var(--accent)}.contact h2{font-size:clamp(65px,13vw,190px);font-weight:500;display:flex;justify-content:space-between;align-items:center;margin:40px 0;letter-spacing:-.07em}.contact h2 span{color:var(--accent);font-size:.7em}.contact__bottom{display:flex;justify-content:space-between;gap:30px;align-items:end}.contact__bottom>p:first-child{font-size:20px;line-height:1.4}footer{padding-block:25px;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:20px}footer>span,footer>a:last-child{font:12px var(--mono);color:var(--muted)}
.viewer{width:min(1100px,94vw);max-height:94dvh;background:#161612;border:1px solid var(--rule);padding:25px;color:var(--fg)}.viewer::backdrop{background:#000c;backdrop-filter:blur(8px)}.viewer__bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.viewer__bar h2{font-size:28px;letter-spacing:-.03em;margin-top:5px}.viewer__bar .eyebrow{color:var(--accent)}.viewer__close{background:transparent;border:1px solid #ffffff50;padding:10px 16px;cursor:pointer;font-size:14px}.viewer>video{display:block;width:100%;max-height:65dvh;background:#000}.viewer__note,.viewer__error{font-size:13px;color:var(--muted);margin-top:15px}.viewer__error{color:var(--accent)}
.motion-ready .enter{opacity:0;transform:translateY(24px);transition:opacity .75s,transform .75s cubic-bezier(.2,.7,.2,1)}.motion-ready .enter.in-view{opacity:1;transform:none}@keyframes title-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes strip-in{from{clip-path:inset(50% 0)}to{clip-path:inset(0)}}
@media(min-width:1700px){.hero__strip{top:281px}}
@media(max-width:900px){.section-note{position:static;display:block;margin-top:25px}.intro{grid-template-columns:1fr}.intro>.text-link{grid-column:1}.about__grid,.experience{gap:45px}.hero__meta>span:last-child{display:none}.project__story{grid-template-columns:1fr 2fr}.results__details{grid-template-columns:1fr 1.4fr}.hero h1{font-size:15.2vw}.hero__strip{top:calc(77px + 15.2vw*.77 + 19px)}.hero__surname{margin-top:clamp(196px,23vw,352px)}}
@media(max-width:600px){html{scroll-padding-top:76px}.nav{height:66px}nav{gap:20px;font-size:12px}.brand{font-size:23px}.hero{padding-top:22px;padding-bottom:28px}.hero__meta{font-size:10px;letter-spacing:-.02em;margin-bottom:26px}.hero h1{font-size:16vw;line-height:.8}.hero__surname{margin-top:208px}.hero__strip{top:calc(64px + 16vw*.8 + 18px);height:174px;gap:6px;grid-template-columns:1.2fr .85fr}.hero__strip>.film:last-child{display:none}.hero__bottom{margin-top:27px;align-items:start}.hero__bottom p{font-size:14px}.hero__bottom .text-link{font-size:12px;gap:12px;padding-top:0}.intro{padding-block:65px;gap:20px}.intro>p:not(.eyebrow){font-size:29px}.section-heading{padding-block:55px 35px}.section-heading h2{font-size:43px}.project__cover{height:480px}.project__cover h3{font-size:86px}.cover__top{font-size:11px}.project__story{grid-template-columns:1fr;padding-block:50px;gap:22px}.project__story h4{font-size:38px}.project__story p:not(.eyebrow){font-size:16px}.films{gap:35px 16px;grid-template-columns:1fr 1fr}.films>.film:nth-child(2){margin-top:65px}.films>.film:nth-child(3){width:100%;margin-top:-35px}.films>.film:nth-child(4){margin-top:35px}.film--wide .film__open{aspect-ratio:3/4}.film__action{right:8px;bottom:8px;font-size:11px;padding:7px 9px;gap:12px}.film figcaption{display:block;font-size:11px}.film figcaption>span:last-child{display:block;text-align:left;margin-top:4px}.results{padding-block:60px}.results__heading{display:block}.results__heading>span{display:block;margin-top:12px}.results__main{display:block;padding-block:30px}.results__number{font-size:21vw}.results__main>p:last-child{margin-top:20px;font-size:26px}.results__main>p:last-child br{display:none}.results__details{grid-template-columns:1fr;gap:25px}.results__details>p span{max-width:none}.results li strong{font-size:28px}.fixup{padding-block:30px 40px}.fixup__top{display:block}.fixup__top>span{display:block;margin-top:10px}.fixup h3{font-size:25vw;padding-block:40px}.fixup__bottom{grid-template-columns:1fr;gap:25px}.about{padding-block:55px}.about__grid,.experience{grid-template-columns:1fr;gap:40px}.portrait{max-width:80%;margin-bottom:10px}.about h2{font-size:49px}.experience{margin-top:45px;padding-top:40px}.experience dl>div{grid-template-columns:90px 1fr;gap:15px}.experience dd{font-size:15px}.contact{padding-block:60px 45px}.contact>.eyebrow{max-width:28ch}.contact h2{font-size:16vw;margin:30px 0}.contact__bottom{display:block}.contact__bottom>.pending{margin-top:25px}footer>span{display:none}.viewer{padding:16px}.viewer__bar h2{font-size:23px}.viewer__close{padding:9px 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready .enter{opacity:1;transform:none}}


/* Full-screen cover with a measured editorial rhythm below it. */
.wrap { max-width: 1280px; }
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto minmax(90px, 1fr) auto auto;
  row-gap: clamp(14px, 2.2svh, 24px);
  max-width: 1600px;
  height: calc(100svh - 80px);
  min-height: 460px;
  padding-block: clamp(20px, 3.2svh, 34px);
}
.hero__meta { grid-row: 1; margin: 0; }
.hero h1 { display: contents; }
.hero h1 > span {
  grid-row: 2;
  font: 800 min(15vw, 20svh, 205px)/.82 var(--display);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: -.055em;
}
.hero h1 > .hero__surname { grid-row: 4; margin: 0; }
.hero__strip {
  position: static;
  grid-row: 3;
  width: 100%;
  height: 100%;
  min-height: 0;
}
.hero__bottom { grid-row: 5; margin: 4px 0 0; align-items: center; }
.hero__bottom p { font-size: 16px; }
.intro { padding-block: 64px 68px; gap: 16px 26px; }
.intro > p:not(.eyebrow) { font-size: clamp(25px, 2.6vw, 36px); }
.section-heading { padding-block: 58px 40px; }
.section-heading .eyebrow { margin-bottom: 20px; }
.section-heading h2 { font-size: clamp(36px, 4vw, 54px); }
.section-note { bottom: 36px; }
.project__cover { height: clamp(280px, 45svh, 430px); }
.project__cover h3 { font-size: clamp(64px, 8vw, 112px); bottom: 60px; }
.project__story { padding-block: 60px 48px; }
.project__story h4 { font-size: clamp(32px, 3.5vw, 44px); margin-bottom: 20px; }
.project__story p:not(.eyebrow) { margin-top: 12px; }
.disciplines { margin-top: 20px; padding-top: 18px; }
.films { gap: 30px 4vw; }
.films .film__open { height: clamp(210px, 28vw, 320px); aspect-ratio: auto; }
.films > .film:nth-child(2) { margin-top: 45px; }
.films > .film:nth-child(3) { margin-top: -25px; width: 85%; }
.films > .film:nth-child(4) { margin-top: 20px; }
.results { padding-block: 62px 68px; }
.results__main { padding-block: 30px; }
.results__number { font-size: clamp(75px, 11vw, 145px); }
.results__main > p:last-child { font-size: clamp(22px, 2.5vw, 34px); }
.results__details { padding-top: 24px; }
.fixup { padding-block: 28px 35px; }
.fixup h3 { font-size: clamp(90px, 15vw, 185px); padding-block: 28px; }
.fixup__bottom { padding-top: 24px; gap: 6vw; }
.fixup__bottom > p { font-size: clamp(20px, 2vw, 25px); }
.about { padding-block: 62px 66px; }
.about > .wrap > .eyebrow { margin-bottom: 30px; }
.about__grid { grid-template-columns: .85fr 1.35fr; gap: 6vw; }
.portrait { max-width: 310px; }
.about h2 { font-size: clamp(40px, 4vw, 56px); margin-bottom: 22px; }
.about__text > p { margin-top: 14px; }
.about__text > .about__lead { font-size: 19px; }
.experience { padding-top: 35px; margin-top: 35px; gap: 6vw; }
.experience h3 { font-size: 29px; }
.contact { padding-block: 50px 40px; }
.contact h2 { font-size: clamp(62px, 9vw, 120px); margin-block: 25px; }
.contact__bottom > p:first-child { font-size: 18px; }
@media (max-width: 900px) {
  .section-note { margin-top: 18px; }
}
@media (max-width: 600px) {
  .hero { height: calc(100svh - 66px); min-height: 430px; row-gap: 18px; padding-block: 22px 28px; }
  .hero h1 > span { font-size: min(17vw, 18svh); }
  .hero__strip { height: 100%; }
  .hero__bottom { align-items: start; }
  .hero__bottom p { font-size: 14px; }
  .intro { padding-block: 46px 48px; }
  .intro > p:not(.eyebrow) { font-size: 26px; }
  .section-heading { padding-block: 35px 26px; }
  .project__cover { height: clamp(260px, 42svh, 340px); }
  .project__cover h3 { font-size: 72px; }
  .project__story { padding-block: 32px; gap: 16px; }
  .films { gap: 24px 14px; }
  .films .film__open { height: clamp(175px, 53vw, 265px); }
  .films > .film:nth-child(2) { margin-top: 26px; }
  .films > .film:nth-child(3) { margin-top: -12px; width: 100%; }
  .films > .film:nth-child(4) { margin-top: 14px; }
  .results { padding-block: 38px; }
  .results__number { font-size: 20vw; }
  .results__main { padding-block: 24px; }
  .fixup h3 { font-size: 23vw; }
  .fixup__bottom { gap: 20px; }
  .about { padding-block: 38px; }
  .about__grid { grid-template-columns: 1fr; gap: 30px; }
  .portrait { width: 68%; max-width: 260px; }
  .experience { gap: 25px; }
  .contact { padding-block: 38px 32px; }
  .contact h2 { font-size: 14vw; }
}
@media (max-height: 500px) and (min-width: 601px) {
  .nav { height: 58px; }
  .hero { height: calc(100svh - 58px); min-height: 0; row-gap: 8px; padding-block: 12px; }
  .hero__strip { min-height: 0; height: 100%; }
  .hero h1 > span { font-size: min(12vw, 15svh); }
}


/* Personal profile: an editorial CV, followed by the selected work. */
.about { position: relative; padding-block: clamp(44px,6vw,78px); }
.about .wrap { max-width: 1400px; }
.about__heading { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:24px; margin-bottom:40px; border-bottom:1px solid #17171040; }
.about__heading > span { font:12px/1.5 var(--mono); color:#626258; }
.about__grid { grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr); gap:clamp(35px,7vw,100px); align-items:center; }
.portrait { width:100%; max-width:420px; margin:0; transform-origin:center bottom; }
.portrait::before { display:none; }
.portrait__image { position:relative; background:#d0cec3; overflow:hidden; }
.portrait__image::after { content:''; position:absolute; left:0; bottom:0; width:28%; height:5px; background:var(--accent); }
.portrait img { aspect-ratio:4/5; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.portrait:hover img { transform:scale(1.035); }
.portrait figcaption { padding-top:4px; line-height:1.5; }
.about__text > .about__hello { font:13px var(--mono); color:#515149; margin:0 0 18px; }
.about h2 { font-size:clamp(45px,5.8vw,82px); line-height:.97; letter-spacing:-.06em; margin-bottom:26px; }
.about h2 em { color:#9b402a; }
.about__text > p { max-width:51ch; }
.about__text > .about__lead { font-size:clamp(18px,1.7vw,23px); line-height:1.4; }
.about__text .text-link { margin-top:20px; border-color:#17171070; }
.experience { grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr); gap:clamp(35px,7vw,100px); margin-top:45px; padding-top:32px; }
.experience__title > .eyebrow { color:#626258; margin-bottom:18px; }
.experience h3 { font-size:clamp(25px,2.7vw,35px); line-height:1.13; }
.experience dl > div { grid-template-columns:105px minmax(0,1fr); }
.experience dd strong { font-size:17px; font-weight:600; display:block; }
.experience dd p { color:#515149; font-size:15px; line-height:1.6; margin-top:5px; }
.experience dd p + strong { margin-top:18px; }
.experience dd { font-size:15px; }
.section-heading { padding-block:65px 40px; }
.section-heading h2 { font-size:clamp(44px,6vw,78px); line-height:.98; }
.section-heading h2 span { color:var(--fg); }
.section-heading .eyebrow { margin-bottom:24px; }
.project__cover { max-width:1600px; margin-inline:auto; height:clamp(310px,50svh,490px); }
.project__cover h3 { font-size:clamp(76px,9vw,135px); text-shadow:0 2px 35px #0006; }
.cover__shade { background:linear-gradient(90deg,#0009,transparent 75%),linear-gradient(0deg,#0008,transparent 70%); }
.films-heading { display:flex; justify-content:space-between; gap:20px; padding-bottom:20px; }
.films-heading .eyebrow { color:var(--accent); }
.films-heading > span { font:12px/1.6 var(--mono); color:var(--muted); }
.films { grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 4vw; align-items:start; }
.films > .film:nth-child(n) { margin:0; width:100%; }
.films > .film:first-child { grid-column:1/-1; width:80%; margin-bottom:8px; }
.films > .film:nth-child(3) { margin-top:55px; }
.films .film__open { height:auto; aspect-ratio:9/16; }
.films > .film:first-child .film__open { aspect-ratio:16/9; max-height:430px; }
.films > .film:first-child .film__open img,.films > .film:first-child .film__open video { object-fit:contain; }
.films .film figcaption { display:block; padding-top:14px; }
.films .film figcaption > span:last-child { display:block; text-align:left; margin-top:5px; }
.film__action { transition:opacity .25s,transform .25s; }
.fixup { max-width:1280px; margin:0 auto 65px; padding-block:28px 36px; }
.fixup h3 { font-size:clamp(85px,12vw,155px); padding-block:22px; }
.fixup__bottom { grid-template-columns:1fr 1fr; gap:5vw; }
.results__heading { border-top-color:#ffffff50; }
@media (hover:hover) and (pointer:fine) {
  .film__action { opacity:0; transform:translateY(8px); }
  .film__open:hover .film__action,.film__open:focus-visible .film__action { opacity:1; transform:none; }
}
@media (max-width:900px) {
  .about__grid,.experience { gap:35px; }
  .about h2 { font-size:clamp(43px,6.5vw,62px); }
  .experience { grid-template-columns:.7fr 1.3fr; }
  .experience dl > div { grid-template-columns:1fr; gap:8px; }
  .films { gap:26px; }
  .films > .film:first-child { width:100%; }
  .films > .film:nth-child(3) { margin-top:35px; }
}
@media (max-width:600px) {
  .about__heading { margin-bottom:30px; padding-bottom:18px; }
  .about__heading > span { font-size:10px; max-width:15ch; text-align:right; }
  .about__grid { grid-template-columns:1fr; gap:30px; }
  .portrait { width:82%; max-width:330px; }
  .portrait img { aspect-ratio:1; object-position:center 35%; }
  .about h2 { font-size:clamp(44px,12vw,66px); }
  .experience { grid-template-columns:1fr; gap:28px; margin-top:32px; padding-top:28px; }
  .experience dl > div { grid-template-columns:90px minmax(0,1fr); gap:15px; }
  .section-heading { padding-block:42px 30px; }
  .films-heading { display:block; }
  .films-heading > span { display:block; margin-top:8px; }
  .films { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 18px; }
  .films > .film:first-child { margin-bottom:0; }
  .films > .film:nth-child(3) { margin-top:28px; }
  .films > .film:last-child { grid-column:1/-1; width:65%; margin-inline:auto; }
  .fixup { margin-bottom:40px; }
  .fixup__bottom { grid-template-columns:1fr; gap:20px; }
}


/* Three distinct motion cues: portrait reveal, line entrances, expanding film. */
.about__grid { position:relative; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); column-gap:clamp(36px,6vw,84px); }
.portrait { position:relative; padding:0 22px 20px 0; max-width:440px; }
.portrait::before { display:block; inset:24px 0 0 24px; border:1px solid #17171040; z-index:0; }
.portrait__image { z-index:1; }
.portrait figcaption { position:relative; z-index:1; background:var(--paper); padding-block:14px 0; margin:0; }
.portrait img { aspect-ratio:4/5; object-position:center 40%; }
.about__text { padding-top:30px; }
.about__text .about__hello { display:flex; align-items:center; gap:12px; }
.about__hello::before { content:''; width:32px; height:2px; background:#9b402a; }
.about h2 { position:relative; margin-left:-.055em; }
.line-reveal { display:block; overflow:hidden; padding-bottom:.06em; margin-bottom:-.06em; }
.line-reveal > span { display:block; }
.about__text .text-link { border-bottom-color:#9b402a; }
.experience { margin-top:54px; }
.motion-ready .portrait.enter { transform:none; }
.motion-ready .portrait .portrait__image { clip-path:inset(0 0 100% 0); transition:clip-path 1.05s cubic-bezier(.16,.8,.24,1); }
.motion-ready .portrait.in-view .portrait__image { clip-path:inset(0); }
.motion-ready .about__text.enter { transform:none; }
.motion-ready .enter .line-reveal > span { transform:translateY(110%); transition:transform .85s cubic-bezier(.16,.8,.24,1); }
.motion-ready .enter.in-view .line-reveal > span { transform:none; }
.line-reveal:nth-child(2) > span { transition-delay:.09s!important; }
.line-reveal:nth-child(3) > span { transition-delay:.18s!important; }
.section-heading { overflow:hidden; }
.project__cover { --opening:1; clip-path:inset(0 calc((1 - var(--opening))*8%)); }
.project__cover > img,.project__cover > .cover__video { transform:scale(calc(1.06 - var(--opening)*.06)); }
.cover__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .5s; }
.cover__video.is-playing { opacity:1; }
.cover__motion { position:absolute; right:var(--edge); bottom:27px; z-index:3; background:#10100cd9; border:1px solid #ffffff70; color:white; padding:8px 12px; font:12px var(--mono); cursor:pointer; }
.cover__motion[hidden] { display:none; }
.cover__bottom { right:auto; max-width:55%; }
.cover__top,.cover__bottom,.project__cover h3 { z-index:2; }
.cover__shade { z-index:1; pointer-events:none; }
.hero__strip .film:nth-child(2) img,.hero__strip .film:nth-child(2) video { object-position:center 40%; }
.hero__strip .film:nth-child(3) img,.hero__strip .film:nth-child(3) video { object-position:center 38%; }
@media(min-width:1000px) { .about__text { margin-left:-22px; } .portrait { transform:rotate(-1.5deg); } .motion-ready .portrait.enter { transform:rotate(-1.5deg); } }
@media(max-width:600px) {
  .about__grid { grid-template-columns:1fr; }
  .portrait { width:84%; padding-right:18px; padding-bottom:14px; }
  .portrait img { aspect-ratio:1; }
  .about__text { padding-top:0; }
  .experience { margin-top:34px; }
  .cover__motion { right:18px; bottom:22px; font-size:11px; }
  .cover__bottom { font-size:11px; bottom:27px; }
}
@media(prefers-reduced-motion:reduce) {
  .motion-ready .portrait .portrait__image { clip-path:none; }
  .motion-ready .enter .line-reveal > span { transform:none; }
  .project__cover { clip-path:none; }
  .project__cover > img,.project__cover > .cover__video { transform:none; }
}

/* Contact: direct email and three clearly identified external destinations. */
.contact { padding-block:64px 44px; }
.contact__bottom { align-items:start; gap:36px; }
.contact__direct { min-width:0; }
.contact__direct > .eyebrow { color:var(--muted); display:block; margin-bottom:12px; }
.contact__mail { display:flex; align-items:center; gap:24px; font:500 clamp(20px,2.6vw,34px)/1.3 var(--display); letter-spacing:-.035em; overflow-wrap:anywhere; padding-bottom:14px; border-bottom:1px solid var(--rule); transition:color .25s,border-color .25s; }
.contact__mail > span { color:var(--accent); flex-shrink:0; transition:transform .25s; }
.contact__mail:hover { color:var(--accent); border-color:var(--accent); }
.contact__mail:hover > span { transform:translate(3px,-3px); }
.contact__links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin-top:46px; }
.contact__links a { display:grid; grid-template-columns:1fr auto; gap:6px 12px; padding:20px 0; border-top:1px solid var(--rule); }
.contact__links a::after { bottom:0; }
.contact__channel { font:500 21px var(--display); letter-spacing:-.02em; }
.contact__handle { grid-column:1; font:12px/1.5 var(--mono); color:var(--muted); overflow-wrap:anywhere; }
.contact__arrow { grid-column:2; grid-row:1/3; align-self:center; font-size:25px; color:var(--accent); transition:transform .25s; }
.contact__links a:hover .contact__arrow { transform:translate(3px,-3px); }
@media(max-width:900px) { .contact__bottom { flex-direction:column; } .contact__direct { width:100%; } .contact__mail { justify-content:space-between; } }
@media(max-width:600px) { .contact { padding-block:42px 32px; } .contact__bottom { display:flex; gap:28px; } .contact__mail { font-size:clamp(18px,5.6vw,27px); gap:12px; } .contact__links { grid-template-columns:1fr; gap:0; margin-top:30px; } .contact__links a { padding-block:18px; } }

/* Marca: retrato circular estable. */
.brand { gap:10px; }
.brand__face {
  position:relative; flex-shrink:0;
  width:44px; height:44px;
  border-radius:50%; overflow:hidden;
  background:#24231f;
  box-shadow:0 0 0 1px var(--rule);
  transition:box-shadow .25s ease;
}
.brand__face img { width:100%; height:100%; object-fit:cover; object-position:50% 0; transform:scale(1.9); }
.brand:hover .brand__face,.brand:focus-visible .brand__face { box-shadow:0 0 0 2px var(--accent); }

footer .brand__face { width:40px; height:40px; }
@media (max-width:600px) {
  .nav .brand__face { width:38px; height:38px; }
  footer .brand__face { width:34px; height:34px; }
}


/* Focused motion pass: preserves the selected layout, fonts and palette. */
.hero h1 > span { animation: name-arrive .75s cubic-bezier(.16,.8,.24,1) both; }
.hero h1 > .hero__surname { animation-delay:.16s!important; }
/* Explicit row sizing prevents intrinsic video ratios from expanding the strip. */
.hero__strip { animation:none; grid-template-rows:minmax(0,1fr); overflow:hidden; }
.hero__strip > .film { position:relative; min-width:0; min-height:0; height:100%; overflow:hidden; }
.hero__strip > .film > .film__open { position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:100%; aspect-ratio:auto; }
.hero__strip .film__open { animation: piece-arrive .85s cubic-bezier(.16,.8,.24,1) .15s both; }
.hero__strip .film:nth-child(2) .film__open { animation-delay:.25s; }
.hero__strip .film:nth-child(3) .film__open { animation-delay:.35s; }
.hero__meta,.hero__bottom { animation: detail-arrive .65s ease .5s both; }
@keyframes name-arrive { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes piece-arrive { from { clip-path:inset(100% 0 0); } to { clip-path:inset(0); } }
@keyframes detail-arrive { from { opacity:0; } to { opacity:1; } }
.about__heading,.experience,.results__heading { position:relative; }
.experience__title { align-self:start; }
.experience dd strong { position:relative; padding-left:14px; }
.experience dd strong::before { content:''; position:absolute; width:4px; height:4px; border-radius:50%; background:var(--accent); left:0; top:.65em; }
.experience dd p { padding-left:14px; }
.experience dl > div { transition:border-color .25s; }
.experience dl > div:hover { border-bottom-color:var(--accent); }
.about__text .about__lead { text-wrap:pretty; }
.project__cover h3 { transform:translateY(calc((1 - var(--opening,1))*20px)); }
.motion-ready .fixup h3.enter { opacity:0; transform:translateY(18px); clip-path:none; transition:opacity .7s ease,transform .7s cubic-bezier(.16,.8,.24,1); }
.motion-ready .fixup h3.in-view { opacity:1; transform:none; }
.text-link { position:relative; }
.text-link::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.16,.8,.24,1); }
.text-link:hover::after,.text-link:focus-visible::after { transform:scaleX(1); }
.contact__links a { transition:padding-inline .3s, border-color .3s; }
.contact__links a:hover,.contact__links a:focus-visible { padding-inline:8px; border-top-color:var(--accent); }
.viewer { transform-origin:top left; will-change:auto; }
.viewer.is-transitioning { will-change:transform,opacity; }
.viewer > video { height:65dvh; object-fit:contain; }
.viewer::backdrop { animation:backdrop-in .4s ease both; }
.viewer.is-closing::backdrop { animation:backdrop-out .3s ease both; }
@keyframes backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes backdrop-out { from { opacity:1; } to { opacity:0; } }
@media(prefers-reduced-motion:reduce) {
  .hero h1>span,.hero__strip .film__open,.hero__meta,.hero__bottom { animation:none!important; }
  .motion-ready .fixup h3.enter { clip-path:none; opacity:1; transform:none; }
  .project__cover h3 { transform:none; }
  .viewer::backdrop { animation:none; }
}


/* FixUp: creative strategy case, scoped independently from the hero and Jano's. */
.fixup { padding:0; background:#10151c; color:#f4f6fb; overflow:hidden; --fixup-blue:#387bff; }
.fixup__intro { background:#074de7; padding:32px clamp(24px,4vw,62px); }
.fixup .fixup__top { align-items:center; }
.fixup h3 { padding-block:24px 28px; }
.fixup__statement { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end; }
.fixup__statement h4 { font-size:clamp(30px,3.5vw,46px); line-height:1.06; }
.fixup__statement p { max-width:48ch; font-size:16px; line-height:1.65; }
.fixup__process { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); list-style:none; padding:22px 0 0; margin:30px 0 0; border-top:1px solid #ffffff50; gap:12px; }
.fixup__process li { font-size:13px; line-height:1.5; }
.fixup__process li span { display:block; font:11px var(--mono); margin-bottom:8px; color:#c5d6ff; }
.fixup__body { padding:44px clamp(24px,4vw,62px) 48px; }
.fixup__approach { display:grid; grid-template-columns:1fr 2fr; gap:32px; padding-bottom:40px; }
.fixup__body .eyebrow { color:#9bbcff; }
.fixup__body h4 { font-size:clamp(30px,3.3vw,44px); line-height:1.1; margin-bottom:18px; }
.fixup__approach p:not(.eyebrow),.fixup__section-head>p,.fixup__campaign-copy>p:not(.eyebrow) { color:#c1c9d5; max-width:64ch; }
.fixup__approach .fixup__skills { font-size:12px; margin-top:18px; color:#9bbcff; }
.fixup__section-head { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:end; border-top:1px solid #ffffff26; padding-top:30px; margin-bottom:24px; }
.fixup__section-head .eyebrow,.fixup__campaign .eyebrow { margin-bottom:14px; }
.fixup__section-head h4 { margin:0; }
.fixup__gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.fixup__gallery a { position:relative; display:block; background:#040b13; outline-offset:4px; }
.fixup__gallery img { width:100%; height:auto; aspect-ratio:4/5; object-fit:contain; transition:filter .3s; }
.fixup__gallery a>span { position:absolute; right:8px; bottom:8px; padding:5px 9px; background:#0e0e0ce8; color:white; font-size:11px; opacity:0; transform:translateY(4px); transition:opacity .25s,transform .25s; }
.fixup__gallery a:hover>span,.fixup__gallery a:focus-visible>span { opacity:1; transform:none; }
.fixup__gallery a:hover img { filter:brightness(1.12); }
.fixup__gallery figcaption { font-size:12px; color:#a8b4c6; padding-top:12px; line-height:1.55; }
.fixup__gallery figcaption>span { display:block; font-size:13px; color:#f4f6fb; margin-bottom:3px; }
.fixup__ai-note { margin-top:20px; max-width:85ch; color:#a8b4c6; font-size:12px; line-height:1.65; }
.fixup__campaign { display:grid; grid-template-columns:1fr minmax(0,310px); gap:clamp(30px,7vw,100px); align-items:center; padding-top:38px; margin-top:38px; border-top:1px solid #ffffff26; }
.fixup__campaign-copy dl { margin:24px 0; }
.fixup__campaign-copy dl>div { display:grid; grid-template-columns:85px 1fr; gap:16px; padding:12px 0; border-top:1px solid #ffffff18; font-size:14px; }
.fixup__campaign-copy dt { color:#9bbcff; }
.fixup__campaign-copy dd { margin:0; color:#c1c9d5; }
.fixup__tag { font:11px/1.5 var(--mono); color:#9bbcff; }
.fixup__film .film__open { aspect-ratio:9/16; }
.fixup__film figcaption { color:#a8b4c6; font-size:11px; }
@media(max-width:800px) {
 .fixup__statement,.fixup__section-head { grid-template-columns:1fr; gap:20px; }
 .fixup__approach { grid-template-columns:1fr; gap:20px; }
 .fixup__gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
 .fixup__campaign { grid-template-columns:1fr minmax(0,240px); gap:26px; }
}
@media(max-width:600px) {
 .fixup__intro { padding:24px; }
 .fixup__body { padding:30px 24px; }
 .fixup__process { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 12px; }
 .fixup__process li { font-size:11px; }
 .fixup__campaign { grid-template-columns:1fr; }
 .fixup__film { width:min(100%,290px); justify-self:center; }
 .fixup__gallery a>span { opacity:1; transform:none; font-size:10px; }
 .fixup__gallery figcaption { font-size:11px; }
 .fixup__gallery figcaption>span { font-size:12px; }
 .fixup__statement p,.fixup__approach p,.fixup__section-head>p,.fixup__campaign-copy>p { font-size:15px; }
}
@media(prefers-reduced-motion:reduce) { .fixup__gallery img,.fixup__gallery a>span { transition:none; } }

.fixup__film .film__open img { filter:none; }
.fixup__film .film__action { opacity:1; transform:none; }

/* Vector arrows use the same shape on desktop and mobile, without emoji fonts. */
.icon-arrow { display:inline-block; width:1em; height:1em; flex-shrink:0; vertical-align:-.12em; }
