/* OV keeps the portfolio typography; the identity lives inside the project media. */
.project-ov{--ov-petrol:#004858;--ov-green:#00ff92}
.project-ov .project-title{font-size:clamp(60px,10vw,170px);max-width:93%;line-height:.98;letter-spacing:-.065em}
.ov-intro-info{display:grid;grid-template-columns:1fr 1fr;gap:var(--project-gap);padding:64px 0 60px}
.ov-facts{display:flex;flex-wrap:wrap;align-content:start;gap:30px 45px;font-size:11px;line-height:1.6}
.ov-facts dt{color:#777;margin-bottom:8px}.ov-facts dd{margin:0}
.ov-intro-info .project-summary{max-width:36ch;margin:0;align-self:end}
.project-ov .ov-cover{aspect-ratio:1.7;background:var(--ov-petrol)}
.ov-cover>img{object-position:center 54%}
.ov-gallery{gap:24px}
.ov-chapter{padding-top:clamp(85px,10vw,160px);padding-bottom:25px}
.ov-chapter .project-copy h2{max-width:23ch;letter-spacing:-.045em}
.ov-chapter .project-copy p{max-width:48ch}
.ov-photo{background:#f4f4f1}.ov-photo img{width:100%;height:auto}
.ov-tall{aspect-ratio:4/5}.ov-square{aspect-ratio:1}.ov-tall>img,.ov-square>img{height:100%;object-fit:cover}
.ov-photo figcaption,.ov-chef-film figcaption{position:absolute;bottom:0;left:0;right:0;padding:18px 22px;background:#fff;font-size:10px;color:#111}
.ov-chef-film{aspect-ratio:4/5;background:#e4cabb}
.ov-chef-film video{display:block;width:100%;height:100%;object-fit:cover;padding-bottom:45px}
.ov-alphabet{background:var(--ov-petrol)}
.ov-botanicals{padding:clamp(12px,3vw,45px);background:#fff}
.ov-palette{grid-column:1/-1;display:grid;grid-template-columns:2fr 1.2fr 1fr;min-height:140px;margin-top:-24px}
.ov-palette>div{display:flex;flex-direction:column;justify-content:space-between;padding:24px;font-size:11px}
.ov-palette>div:nth-child(1){background:var(--ov-petrol);color:#fff}.ov-palette>div:nth-child(2){background:var(--ov-green);color:var(--ov-petrol)}.ov-palette>div:nth-child(3){background:#f5f5f3;color:var(--ov-petrol)}
.ov-motion-panel{aspect-ratio:1.25;display:flex;flex-direction:column;padding:clamp(16px,2.2vw,36px)}
.ov-paper{background:#f5f5f3;color:var(--ov-petrol)}.ov-petrol{background:var(--ov-petrol);color:#fff}
.ov-vector{position:relative;flex:1;min-height:0;display:grid;place-items:center}
.ov-vector>img,.ov-vector>svg{position:absolute;width:80%;height:75%;object-fit:contain}
.ov-vector.is-ready>img{visibility:hidden}.ov-negative-still{filter:brightness(0) invert(1)}
.ov-media-bar{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:10px;line-height:1.5}
.ov-media-bar button{font:inherit;color:inherit;background:none;border:0;padding:12px 0;cursor:pointer;min-height:44px;white-space:nowrap}
.ov-media-bar button:focus-visible{outline:1px solid currentColor;outline-offset:5px}
.ov-pattern-panel{background:#f8f9f5;color:var(--ov-petrol)}
.ov-pattern{aspect-ratio:1920/1275;position:relative;overflow:hidden}
.ov-pattern>img,.ov-pattern>svg{position:absolute;inset:0;width:100%;height:100%}
.ov-pattern.is-ready>img{visibility:hidden}
.ov-pattern-panel .ov-media-bar{padding:8px clamp(18px,3vw,42px);background:var(--ov-petrol);color:var(--ov-green)}
.ov-finale{grid-column:1/-1;background:var(--ov-green);color:var(--ov-petrol);position:relative;overflow:hidden;padding:clamp(35px,5vw,90px);margin-top:64px;min-height:500px;display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.ov-finale h2{font-size:clamp(48px,7vw,115px);font-weight:500;line-height:1.05;letter-spacing:-.055em;max-width:85%}
.ov-finale>p{font-size:12px}.ov-finale>img{position:absolute;right:5%;bottom:7%;width:15%;height:24%;object-fit:contain}
.ov-credits{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:75px 0 100px;border-bottom:0}
.ov-credits>.mono{font-size:11px}.ov-credits p{font-size:14px;line-height:1.6;max-width:65ch}.ov-credits p+p{margin-top:18px;color:#666}
.work-image.ov-frames-cover{aspect-ratio:3/4!important;background:#004858}
.ov-frames-cover .orbit-media{position:absolute;inset:0;background:#004858}
.ov-frames-cover .orbit-media>img,.ov-frames-cover .orbit-media>video{object-fit:cover}
.project-next-preview.ov-next-cover{position:relative;aspect-ratio:3/4;background:#004858}
.ov-next-cover .orbit-media{position:absolute;inset:0;background:#004858}
@media(max-width:800px){
 .project-ov .project-topline{gap:12px}.project-ov .project-topline>.mono{font-size:9px;white-space:nowrap}
 .project-ov .project-title{font-size:clamp(54px,12.7vw,100px);max-width:90%}
 .ov-intro-info{grid-template-columns:1fr;padding:35px 0;gap:32px}
 .ov-facts{order:2;gap:22px 28px;font-size:10px}.ov-intro-info .project-summary{max-width:none;font-size:22px}
 .project-ov .ov-cover{aspect-ratio:1.15}
 .ov-gallery{gap:16px}.ov-chapter{grid-template-columns:1fr;gap:20px;padding:65px 0 20px}
 .ov-chapter .project-copy h2{font-size:34px;max-width:none}.ov-chapter .project-copy p{font-size:18px;max-width:none}
 .ov-motion-panel{aspect-ratio:1.2}.ov-media-bar{font-size:9px;gap:10px}
 .ov-palette{grid-template-columns:1.3fr 1fr 1fr;min-height:100px;margin-top:-16px}.ov-palette>div{padding:16px 12px;font-size:9px}
 .ov-pattern{aspect-ratio:1}.ov-pattern>img,.ov-pattern>svg{width:150%;max-width:none;left:-25%}
 .ov-finale{min-height:360px;padding:30px 22px;margin-top:35px}.ov-finale h2{font-size:clamp(42px,10vw,75px);max-width:100%}.ov-finale>img{width:21%;height:20%;bottom:5%}
 .ov-credits{grid-template-columns:1fr;padding:50px 0 65px}
}
@media(prefers-reduced-motion:reduce){.ov-vector>svg,.ov-pattern>svg{display:none}.ov-vector>img,.ov-pattern>img{visibility:visible!important}.ov-media-bar button{display:none}}

/* The mark itself is the interaction target: hover, keyboard or tap. */
button.ov-vector{width:100%;border:0;padding:0;background:transparent;color:inherit;cursor:pointer;appearance:none;font:inherit}
button.ov-vector:focus-visible{outline:1px solid currentColor;outline-offset:6px}
.ov-finale .ov-finale-mark{position:absolute;right:5%;bottom:7%;width:15%;height:24%;display:grid;place-items:center}
.ov-finale-mark>img,.ov-finale-mark>svg{width:100%;height:100%}
@media(max-width:800px){.ov-finale .ov-finale-mark{width:21%;height:20%;bottom:5%}}
@media(prefers-reduced-motion:reduce){button.ov-vector{cursor:default}}
