/* Visual portfolio and dedicated case studies. */
.portfolio-page header,.project-page header{position:relative}
.portfolio-intro{padding-top:74px;padding-bottom:52px}
.portfolio-intro .eyebrow{margin-bottom:25px}
.portfolio-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:7%;align-items:end}
.portfolio-heading h1{font-size:clamp(48px,5.8vw,88px);line-height:1.08;margin:0}
.portfolio-heading>p{color:var(--muted);font-size:17px;line-height:1.75;margin:0 0 8px;max-width:390px}
.portfolio-heading em{display:inline-block;padding:0 .1em .14em 0;margin:0 -.1em -.14em 0}
.portfolio-collection{padding:0;max-width:none;margin:0}
.portfolio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 3% 25px}
.portfolio-filters{display:flex;gap:8px;flex-wrap:wrap}
.portfolio-filters button{padding:10px 16px;border:1px solid transparent;border-radius:28px;background:transparent;color:var(--muted);font-size:13px;transition:color .25s,background .25s,border-color .25s}
.portfolio-filters button:hover{color:#f5ddaa;border-color:#f5c67155}
.portfolio-filters button.active{color:#fff0c4;border-color:#dfb76a60;background:linear-gradient(120deg,#b5802833,#0e455344)}
.portfolio-count{font-size:10px;white-space:nowrap;color:#9bbcc6}
.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.portfolio-tile{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#07141a;isolation:isolate}
.portfolio-tile[hidden]{display:none}
.portfolio-tile>img,.portfolio-tile>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease,opacity .45s ease}
.portfolio-tile>video{opacity:0;pointer-events:none}
.portfolio-tile.preview-playing>video{opacity:1}
.portfolio-tile.character-tile{background:radial-gradient(ellipse at 50% 38%,#1d4857,#071920 72%)}
.portfolio-tile.character-tile>img{object-fit:contain;padding:0}
.portfolio-tile:is(:hover,:focus-visible)>img,.portfolio-tile:is(:hover,:focus-visible)>video{transform:scale(1.035)}
.portfolio-tile:focus-visible{outline:2px solid #f8ca70;outline-offset:4px;z-index:2}

.tile-caption{position:absolute;inset:auto 0 0;min-height:38%;display:flex;justify-content:space-between;align-items:end;gap:20px;padding:65px 30px 29px;background:linear-gradient(transparent,#021118d9 48%,#020d14f5);opacity:0;transform:translateY(12px);transition:opacity .35s,transform .45s;pointer-events:none}
.portfolio-tile:is(:hover,:focus-visible) .tile-caption{opacity:1;transform:translateY(0)}
.tile-copy{display:flex;flex-direction:column;gap:9px}
.tile-category{font-size:9px;color:#ffd181;text-transform:uppercase;letter-spacing:1.4px}
.tile-copy strong{font-family:Manrope,sans-serif;font-size:clamp(23px,2.6vw,39px);font-weight:500;letter-spacing:-.045em;line-height:1.15;color:#f3f9f7}
.tile-specialty{font-size:12px;color:#bfd5da;line-height:1.5}
.tile-arrow{font-size:25px;color:#f6d08b;padding-bottom:2px}
.portfolio-outro{padding-top:80px;padding-bottom:100px;border-top:1px solid var(--line);text-align:center}
.portfolio-outro h2{font-size:clamp(42px,5.3vw,76px)}
.portfolio-outro>p:not(.eyebrow){color:var(--muted);line-height:1.8;margin:25px auto 32px}
.portfolio-outro .pill{justify-content:center;min-width:225px}
.project-page main{background:radial-gradient(ellipse at 100% 20%,#0d405247,transparent 38%),#051923}
.case-hero{position:relative;isolation:isolate;height:clamp(440px,63svh,760px);background:#061a23;overflow:hidden}
.case-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.case-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#02131d60,transparent 25%,#02131d40 45%,#02131de8 100%)}
.case-hero.case-character>img{object-fit:contain;object-position:78% 50%;padding:25px}
.case-character .case-hero-shade{background:linear-gradient(90deg,#041722d9,#04172220 80%),linear-gradient(0deg,#041722a6,transparent 45%)}
.case-back{position:absolute;top:34px;left:7%;color:#fff8e5;font-size:11px;text-shadow:0 2px 10px #000}
.case-hero-copy{position:absolute;left:7%;right:7%;bottom:42px}
.case-hero-copy .eyebrow{margin-bottom:17px;color:#ffdc98;text-transform:uppercase}
.case-hero h1{font-size:clamp(48px,7.4vw,108px);margin-bottom:16px;line-height:1.08;color:#f0f7f5}
.case-hero-copy>p:not(.eyebrow){font-size:clamp(18px,2.1vw,28px);margin-bottom:15px;color:#e6eff0}
.case-specialties{font-size:12px;color:#c1d8de;line-height:1.6}
.case-summary{padding-top:75px;padding-bottom:65px;display:grid;grid-template-columns:1fr 2fr;gap:40px}
.case-summary .eyebrow{padding-top:8px}
.case-deck{font-family:Manrope,sans-serif;font-size:clamp(25px,3vw,42px);line-height:1.4;letter-spacing:-.04em;max-width:900px;margin:0}
.case-film{margin:0 auto;max-width:1800px;padding:0 4%}
.case-film video{display:block;width:100%;max-height:85svh;background:#02090e;aspect-ratio:16/9;object-fit:contain}
.case-film figcaption{display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.4px;color:#9cb7c1;padding:18px 0}
.case-story{padding-top:90px;padding-bottom:90px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(230px,.7fr);gap:12%}
.case-story h2{font-size:clamp(35px,4.3vw,62px);max-width:750px;margin-bottom:43px}
.case-narrative{display:grid;gap:25px;max-width:730px}
.case-narrative h3{font-size:18px;font-weight:500;color:#efcd8b;margin-bottom:10px}
.case-narrative p{font-size:16px;color:#b5cbd2;line-height:1.85;margin:0}
.case-facts{align-self:start;border-top:1px solid #dcba714f;padding-top:23px;margin-top:5px}
.case-facts h3{font-size:17px;font-weight:500;margin-bottom:28px}
.case-facts dl{margin:0}.case-facts dl>div{padding:20px 0;border-top:1px solid var(--line)}
.case-facts dt{font-family:monospace;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#7ebac8;margin-bottom:10px}
.case-facts dd{font-size:15px;line-height:1.6;margin:0;color:#e4efef}
.case-gallery{padding-top:60px;padding-bottom:100px;border-top:1px solid var(--line)}
.case-stills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 24px}
.case-stills figure{margin:0;min-width:0}
.still-link{display:block;position:relative;background:#07141c;overflow:hidden}
.still-link img{display:block;width:100%;height:auto;transition:transform .6s ease}
.still-link:hover img{transform:scale(1.025)}
.still-link>span{position:absolute;right:15px;bottom:15px;border:1px solid #ffffff4d;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;background:#061c28a8;color:#fff}
.character-study{margin:0 auto;max-width:900px}
.character-study .still-link{background:radial-gradient(ellipse,#204b5a,#071a24 70%)}
.character-study img{max-height:800px;object-fit:contain;padding:30px}
.case-end{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-top:55px;padding-bottom:75px}
.still-dialog{position:fixed;inset:0;padding:52px 20px 16px;border:1px solid #a6d5df33;width:min(95vw,1600px);max-width:95vw;max-height:95svh;background:#03151cf5;overflow:auto}
.still-dialog::backdrop{background:#020a10eb;backdrop-filter:blur(14px)}
.still-dialog img{display:block;width:100%;height:auto;max-height:78svh;object-fit:contain;background:transparent}
.still-close{position:absolute;top:9px;right:14px;border:1px solid #9ecad33b;background:#173541;color:#fff;border-radius:50%;width:34px;height:34px;font-size:17px}
html:has(.still-dialog[open]){overflow:hidden}
@media(hover:none),(pointer:coarse){.tile-caption{opacity:1;transform:none}.portfolio-tile>video{display:none}}
@media(max-width:900px){.portfolio-heading{grid-template-columns:1fr;gap:24px}.portfolio-heading>p{max-width:600px}.portfolio-intro{padding-top:55px;padding-bottom:35px}.portfolio-toolbar{align-items:start}.portfolio-count{padding-top:12px}.portfolio-filters{gap:3px}.portfolio-filters button{padding:9px 11px;font-size:12px}.tile-caption{padding:48px 20px 20px}.tile-specialty{font-size:11px}.case-story{gap:7%;grid-template-columns:minmax(0,1.5fr) minmax(190px,.7fr)}.case-hero{height:550px}}
@media(max-width:600px){.portfolio-heading h1{font-size:clamp(39px,9.8vw,58px)}.portfolio-intro{padding-top:39px;padding-bottom:28px}.portfolio-intro .eyebrow{font-size:10px;margin-bottom:18px}.portfolio-heading>p{font-size:15px}.portfolio-collection{padding:0}.portfolio-toolbar{padding-bottom:20px}.portfolio-count{display:none}.portfolio-filters button{font-size:11px;padding:9px 11px}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.portfolio-tile{aspect-ratio:16/11}.tile-caption{opacity:1;transform:none;padding:50px 22px 22px}.tile-copy strong{font-size:29px}.tile-copy{gap:7px}.tile-specialty{font-size:11px}.portfolio-outro{padding:55px 7% 70px}.portfolio-outro>p:not(.eyebrow){font-size:15px}.portfolio-outro br{display:none}.case-hero{height:470px}.case-back{top:24px;left:6%}.case-hero-copy{left:6%;right:6%;bottom:30px}.case-hero h1{font-size:48px}.case-hero-copy .eyebrow{font-size:9px}.case-specialties{font-size:11px}.case-summary{padding-top:42px;padding-bottom:38px;grid-template-columns:1fr;gap:14px}.case-summary .eyebrow{margin:0}.case-deck{font-size:26px}.case-film{padding:0 4%}.case-film figcaption{font-size:10px;line-height:1.6}.case-film figcaption span:last-child{display:none}.case-story{padding-top:48px;padding-bottom:48px;grid-template-columns:1fr;gap:38px}.case-story h2{font-size:37px;margin-bottom:28px}.case-narrative p{font-size:15px}.case-facts dl{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.case-facts dd{font-size:14px}.case-gallery{padding-top:40px;padding-bottom:55px}.case-stills{grid-template-columns:1fr;gap:28px}.case-gallery h2{margin-bottom:27px;font-size:39px}.case-next>a{min-height:270px}.case-next-copy{padding:45px 7%;max-width:87%}.case-next-copy strong{font-size:36px}.case-next-copy>span:last-child{font-size:11px;line-height:1.6}.case-next-copy .eyebrow{font-size:8px}.case-next-arrow{font-size:28px;right:5%}.case-end{padding-top:35px;padding-bottom:50px;flex-direction:column-reverse}.case-end .pill{font-size:13px}.still-dialog{padding:48px 10px 15px}.case-character>img{object-position:center!important}.case-character .case-hero-shade{background:linear-gradient(0deg,#041722f5,transparent 90%)}}
@media(prefers-reduced-motion:reduce){.portfolio-tile>video{display:none}.tile-caption{transition:none}.portfolio-tile>img,.still-link img,.case-next img{transition:none}}
@media(min-width:901px){.portfolio-heading{grid-template-columns:1.8fr 1fr;gap:5%}.portfolio-heading h1{font-size:clamp(48px,4.7vw,76px)}}
@media(max-width:600px){.portfolio-filters{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:5px}.portfolio-filters button{text-align:center}.portfolio-toolbar{padding-bottom:22px}}

/* Image-only editorial galleries: full-width frames alternating with paired stills. */
.project-page .case-gallery{width:100%;max-width:none;margin:0;padding:0;border:0}
.project-page .case-stills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.project-page .case-stills figure{margin:0;min-width:0}
.project-page .case-stills figure:nth-child(4n+1),
.project-page .case-stills figure:nth-child(4n){grid-column:1/-1}
.project-page .case-gallery .still-link{cursor:zoom-in}
.project-page .case-gallery .still-link img{display:block;width:100%;height:auto;transform:none}
.project-page .case-gallery .still-link:focus-visible{outline:3px solid #ffd77b;outline-offset:-5px}
.project-page .character-study{width:100%;max-width:none;margin:0}
.project-page .character-study img{width:100%;height:80svh;max-height:1050px;object-fit:contain;padding:0}
.project-page .case-end{padding-top:50px}
@media(max-width:600px){
 .project-page .case-stills{grid-template-columns:1fr;gap:6px}
 .project-page .case-stills figure{grid-column:1/-1}
 .project-page .character-study img{height:auto;max-height:none}
 .project-page .case-end{padding-top:35px}
}

/* Films and stills meet the viewport edges, with no gutters between frames. */
.project-page .case-film{width:100%;max-width:none;margin:0;padding:0}
.project-page .case-film video{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;margin:0;padding:0;border:0}
.project-page .case-film figcaption{padding:18px 7%}
.project-page .case-stills{grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:0;margin:0}
.project-page .case-stills figure{grid-column:span 3;margin:0;padding:0;border:0}
.project-page .case-stills figure:nth-child(1),
.project-page .case-stills figure:nth-child(4),
.project-page .case-stills figure:nth-child(8){grid-column:1/-1}
.project-page .case-stills figure:nth-child(5),
.project-page .case-stills figure:nth-child(6),
.project-page .case-stills figure:nth-child(7){grid-column:span 2}
.project-page .case-gallery .still-link,.project-page .case-gallery .still-link img{margin:0;padding:0;border:0;border-radius:0}
@media(max-width:600px){.project-page .case-stills{grid-template-columns:1fr;gap:0}.project-page .case-stills figure:nth-child(n){grid-column:1/-1}}

.project-page .case-stills{grid-auto-flow:row dense}
.project-page .case-stills figure:nth-child(n){grid-column:span 3}
.project-page .case-stills figure:nth-child(8n+1),.project-page .case-stills figure:nth-child(8n+4),.project-page .case-stills figure:nth-child(8n){grid-column:1/-1}
.project-page .case-stills figure:nth-child(8n+5),.project-page .case-stills figure:nth-child(8n+6),.project-page .case-stills figure:nth-child(8n+7){grid-column:span 2}
.project-page .case-stills .still-link{height:100%;display:flex;align-items:center}
.project-page .case-stills .still-link img{height:100%;object-fit:cover}
.portfolio-placeholder{background:radial-gradient(ellipse at 80% 20%,#0f4653,#061921 75%);border:1px solid #679da32b}
.placeholder-current{position:absolute;width:100%;height:100%;color:#7cbec8;opacity:.22}
.placeholder-copy{position:absolute;inset:auto 8% 10%}
.placeholder-copy>.mono{font-size:11px;letter-spacing:.16em;color:#edc980}
.placeholder-copy h2{font-size:clamp(26px,3vw,45px);line-height:1.2;margin:16px 0 10px}
.placeholder-copy p{font-size:14px;color:#acc5ca;margin:0}
@media(max-width:600px){.project-page .case-stills figure:nth-child(n){grid-column:1/-1}.project-page .case-stills .still-link img{height:auto}.case-more>summary{padding:24px 6%;gap:12px}.case-more>summary>span:last-child{font-size:10px}.portfolio-count{white-space:normal}}

/* Compact portfolio tiles and shorter project stories. */
.tile-caption{padding:38px 18px 16px;gap:8px}
.tile-copy{gap:5px;min-width:0}
.tile-copy strong{font-size:clamp(17px,1.65vw,28px)}
.tile-category{font-size:8px;letter-spacing:1px}
.tile-specialty{font-size:11px;line-height:1.4}
.tile-arrow{font-size:19px;flex-shrink:0}
.portfolio-placeholder{border:0}
.placeholder-copy h2{font-size:clamp(20px,2vw,32px);margin:10px 0}
.placeholder-copy p{font-size:12px}
.case-story{padding-top:48px;padding-bottom:48px;gap:8%}
.case-story .eyebrow{margin-bottom:20px}
.case-story h2{font-size:clamp(32px,3.5vw,48px);margin-bottom:24px}
.case-narrative{gap:16px}
.case-narrative p{line-height:1.75}
.case-facts{padding-top:16px}
.case-facts h3{margin-bottom:16px}
.case-facts dl>div{padding:12px 0}
.case-facts dt{margin-bottom:6px}
@media(max-width:900px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-copy strong{font-size:clamp(17px,3vw,26px)}}
@media(max-width:600px){
 .portfolio-tile{aspect-ratio:1/1}
 .tile-caption{padding:32px 12px 12px;gap:0}
 .tile-category,.tile-arrow{display:none}
 .tile-copy{gap:5px}
 .tile-copy strong{font-size:clamp(16px,4.1vw,23px);line-height:1.15}
 .tile-specialty{font-size:10px;line-height:1.35}
 .placeholder-copy{inset:auto 12px 14px}
 .placeholder-copy>.mono{font-size:9px}
 .placeholder-copy h2{font-size:20px;margin:9px 0 6px}
 .placeholder-copy p{font-size:11px}
 .case-story{padding-top:32px;padding-bottom:32px;gap:26px}
 .case-story h2{font-size:32px;margin-bottom:20px}
}

/* Justified photo rows preserve aspect ratios without cropping or gutters. */
.project-page .photography-gallery .case-stills{display:block}
.photo-row{display:flex;align-items:flex-start;gap:0}
.project-page .photography-gallery .photo-row figure{min-width:0;margin:0}
.project-page .photography-gallery .still-link{display:block;height:auto}
.project-page .photography-gallery .still-link img{height:auto;object-fit:contain}
@media(max-width:600px){.photo-row{display:block}}

/* Dense project galleries retain complete photographs and full-size viewing. */
.project-page .case-gallery .case-stills.compact-gallery{display:block;margin:0;padding:0}
.compact-gallery-row{display:flex;align-items:flex-start;width:100%;gap:0;margin:0;padding:0}
.project-page .case-gallery .compact-gallery-row figure{min-width:0;margin:0;padding:0}
.project-page .case-gallery .compact-gallery-row .still-link{display:block;height:auto}
.project-page .case-gallery .compact-gallery-row img{display:block;width:100%;height:auto;object-fit:contain;margin:0;padding:0}
