
.staging-bar{position:fixed;inset:0 0 auto;height:30px;background:#e9eae5;color:#1b2529;z-index:100;font:10px/30px Manrope,Arial,sans-serif;letter-spacing:.7px;display:flex;justify-content:space-between;padding:0 22px}.staging-bar a{text-decoration:underline;text-underline-offset:3px}body.is-staging{padding-top:30px}.is-staging .header,.home.is-staging .header{top:30px}.is-staging .skip:focus{top:38px;z-index:110}.deliverables{background:#f0f1eb;color:#1a2427;padding:85px 0}.deliverables .chapter-label{border-color:#b9c2bf}.deliverables p{color:#566267}.deliverables .intro-split h2 span{color:#637373}.deliverable-rows>a{display:grid;grid-template-columns:42px 1fr 240px 28px;gap:24px;align-items:center;padding:25px 0;border-top:1px solid #bfc7c1}.deliverable-rows>a:last-child{border-bottom:1px solid #bfc7c1}.deliverable-rows h3{font-size:24px;letter-spacing:-1px;margin-bottom:12px}.deliverable-rows p{font-size:13px;max-width:620px;margin:0}.deliverable-rows img{width:240px;height:135px;object-fit:cover}.row-number{font-size:12px;color:#687976;align-self:start;padding-top:8px}.row-arrow{font-size:28px;color:#c62230}.capture-workflow{padding:80px 0;background:#17272a}.workflow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;padding:40px 0 25px}.step-label{display:block;font-size:10px;letter-spacing:1.5px;color:#96b8b8;margin-bottom:20px}.capture-workflow h3{font-size:24px}.capture-workflow p{font-size:13px;color:#bbc7ca}.contact-editorial{display:grid;grid-template-columns:1.2fr 1fr;gap:100px}.contact-caption{font-size:12px!important;margin-top:20px!important}.contact-details{margin:0}.contact-details>div{border-top:1px solid #bec5c2;padding:20px 0}.contact-details dt{text-transform:uppercase;font-size:10px;letter-spacing:1px;color:#556563}.contact-details dd{margin:8px 0 0;font-size:20px;line-height:1.6}.page-intro{max-width:750px}.resource-list{display:grid;grid-template-columns:1fr 1fr;gap:50px 80px}.resource-list>a{border-top:1px solid #b8c1bd;padding:30px 0}.resource-list span{font-size:10px;letter-spacing:1.4px}.resource-list h2{font-size:36px;margin:20px 0}.resource-list p{font-size:14px}.resource-list b{font-size:12px;color:#c5222f}.inline-link,.rich-content a:not(.btn){text-decoration:underline;text-underline-offset:4px}.reading{max-width:900px}.rich-content li{line-height:1.9;margin-bottom:12px}.rich-content h2{font-size:36px;margin-top:40px}.rich-content h2:first-child{margin-top:0}a[aria-current=page]{color:#fff}.side-nav a[aria-current=page]{color:#c5222f}@media(max-width:900px){.deliverable-rows h3{font-size:20px}.deliverable-rows>a{grid-template-columns:25px 1fr 150px;gap:20px}.deliverable-rows img{width:150px;height:100px}.row-arrow{display:none}.contact-editorial{gap:45px}.workflow-grid{gap:25px}}@media(max-width:650px){.staging-bar{font-size:8px;padding:0 10px;letter-spacing:0}.deliverables,.capture-workflow{padding:55px 0}.deliverable-rows>a{grid-template-columns:24px 1fr;gap:14px}.deliverable-rows h3{font-size:26px}.deliverable-rows img{grid-column:2;width:100%;height:160px}.workflow-grid,.contact-editorial,.resource-list{grid-template-columns:1fr;gap:25px}.contact-details{margin-top:15px}.workflow-grid>div{padding-bottom:12px}.resource-list h2{font-size:28px}.contact-editorial h2{font-size:36px}.rich-content h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Editorial pass: retain the established visual system. */
.service-family + .service-family{padding-top:0}.service-family h2{font-size:clamp(28px,3vw,42px);margin:22px 0}.service-family .service-lines{margin-top:24px}
.project-faq details{border-top:1px solid #bcc5c0;padding:22px 0}.project-faq summary{font-size:18px;font-weight:650;cursor:pointer;line-height:1.5}.project-faq details p{font-size:15px;margin:18px 0 0}.project-faq details:last-child{border-bottom:1px solid #bcc5c0}
.case-stories article{padding:20px 0 35px;border-bottom:1px solid #bcc5c0}.case-stories p{font-size:15px}.case-stories h3{font-size:26px}
.example-figure{margin:30px 0}.example-figure img{width:100%;height:auto;display:block}.example-figure figcaption{font-size:12px;line-height:1.7;margin-top:12px;color:#566169}
/* About: "What we do" as four families side by side, in the order of the intro sentence. Columns share
   row lines (subgrid) so headings, descriptions and link lists start level; 2 columns on tablets, 1 on phones. */
.offer-head{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end}.offer-head h2{margin:22px 0 0}.offer-head p{max-width:520px;margin:0}
.offer-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:56px;border-top:1px solid var(--ink)}
.offer-family{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;align-content:start;padding:30px 28px 0;border-left:1px solid #cbd0d2}
.offer-family:first-child{border-left:0;padding-left:0}.offer-family:last-child{padding-right:0}
.offer-family h3{margin:18px 0 10px}.offer-family p{font-size:14px;line-height:1.75;margin:0}
.offer-family ul{list-style:none;margin:24px 0 0;padding:0;align-self:start}
.offer-family li a{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:17px 0;border-top:1px solid #cbd0d2;font-size:15px;font-weight:600;line-height:1.45}
.offer-family li:last-child a{border-bottom:1px solid #cbd0d2}.offer-family .arrow{color:#67757b;flex-shrink:0}
.offer-family li a:hover,.offer-family li a:hover .arrow{color:#d52630}
.offer-note{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;margin:48px 0 0;font-size:14px}.offer-note .text-link{white-space:normal}
@media(max-width:1180px){.offer-head{gap:45px}.offer-grid{grid-template-columns:repeat(2,1fr)}
.offer-family:nth-child(odd){border-left:0;padding-left:0}.offer-family:nth-child(even){padding-right:0}.offer-family:nth-child(n+3){margin-top:44px;border-top:1px solid var(--ink)}}
@media(max-width:650px){.offer-head{display:block}.offer-head p{margin-top:18px}.offer-grid{display:block;margin-top:32px;border-top:0}
.offer-family{display:block;padding:22px 0 0;border-left:0;border-top:1px solid var(--ink)}.offer-family+.offer-family{margin-top:30px}
.offer-family h3{font-size:22px;margin:12px 0 6px}.offer-family p{font-size:13px;line-height:1.65}.offer-family ul{margin-top:14px}
.offer-family li a{font-size:14px;padding:12px 0}.offer-note{display:block;margin-top:34px}.offer-note .text-link{margin-top:10px}}
@media(min-width:901px){.nav-links{gap:14px}.nav{gap:25px}.nav-links a{font-size:13px}.nav-end{gap:18px}}@media(min-width:1024px){.nav-links{gap:26px}.nav-links a{font-size:15px}.nav-end .viewer{font-size:14px}.nav-end .btn.small{font-size:14px}}@media(min-width:1440px){.nav-links{gap:32px}.nav-links a{font-size:16px}.nav-end .viewer{font-size:15px}.nav-end .btn.small{font-size:15px}}
@media(max-width:360px){.nav{gap:8px}.brand{width:98px}.nav-end .btn{padding:11px 9px;gap:5px}.nav-end .btn .arrow{display:none}.menu-toggle{padding:5px}}

@media(max-width:650px){.nav-end .btn.small{min-height:44px;font-size:11px}.menu-toggle{min-height:44px;min-width:36px}}

.demo-review-note{font-size:12px;color:#b4c0c0;line-height:1.7;margin:0 0 30px}

/* Inspect report and screenshot details without leaving the page. */
.figure-enlarge{display:block}.figure-enlarge>span{display:block;padding:12px 0;min-height:44px;font-size:13px;font-weight:600}.figure-enlarge:focus-visible{outline:3px solid #c5222f;outline-offset:5px}
.image-tools{display:flex;align-items:center;gap:16px;padding:0 20px 12px;font-size:12px;color:#c1cbd0}.image-tools button{background:#26363e;border:1px solid #7b9099;color:#fff;padding:10px 14px;min-height:44px;cursor:pointer;font:inherit}.image-viewport{overflow:auto;max-height:72vh}.image-viewport img{display:block;width:100%;max-height:72vh;object-fit:contain}.image-viewport.is-zoomed img{width:auto;max-width:none;max-height:none}.image-tools button:focus-visible,.image-viewport:focus-visible{outline:2px solid #fff;outline-offset:-2px}#image-dialog .modal-close{min-width:44px;min-height:44px}
@media(max-width:650px){.image-tools{padding:0 12px 12px;gap:10px;font-size:11px}.image-tools button{flex-shrink:0}.image-tools span{max-width:160px}}
/* Small grey labels reach 4.5:1 contrast (WCAG AA); same hues, one step darker on paper or lighter on dark (#1259). */
.chapter-label>span:last-child{color:#676e6c}.capture-workflow .chapter-label>span:last-child{color:#878e8b}.twin-footnote{color:#676e6a}.applications .twin-footnote{color:#79807b}.row-number{color:#606f6d}.demo-tabs button>span:first-child{color:#748087}.service-row span:first-child{color:#666d72}.service-index{color:#666e66}.person span{color:#646e74}
/* Side images in reading layouts keep their proportions: crop to a tall frame instead of squeezing (#1259). */
.reading-layout aside img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}

/* Phones and small tablets: no text smaller than 11 px (#1266). Only the size of the smallest labels changes;
   fonts, colours, weights, capitals and layout stay as designed. Desktop sizes are untouched. */
@media(max-width:768px){
.eyebrow,.breadcrumbs,.footer-title,.footer-bottom,.window-bar span.title,.window-bar button,.service-row span:first-child,
.cinema-kicker,.film-trigger small,.scroll-cue,#motion-toggle,.proof-band small,.chapter-label,.client-proof .chapter-label,.client-proof .chapter-label a,
.explorer-top>span,.view-badge,.view-location,.view-modes button>span,.scene-choices button,.twin-footnote,
.demo-tabs button>span:first-child,.demo-play-pill,.demo-play-pill>span,.mini-label,.service-index,.service-answer .text-link,
.client-person>span,.modal-header,.step-label,.contact-details dt,.resource-list span{font-size:11px}
.cinema-kicker,.proof-band small,.chapter-label,.eyebrow{text-wrap:balance}
}
@media(max-width:650px){.view-modes button,.demo-description .text-link{font-size:11px}.window-bar span.title{letter-spacing:.4px}.window-bar button{white-space:nowrap}}
@media(max-width:360px){.window-bar span.title{letter-spacing:0}}

/* Approved Projects feature and results (#1308). All rules stay within this fragment. */
.projects-showcase { color:#15191b; background:#f2f2ec; }
.projects-showcase .container { width:min(1280px,calc(100% - 96px)); margin-inline:auto; }
.projects-showcase a { color:inherit; text-decoration:none; }
.projects-showcase a:focus-visible { outline:3px solid #e82035; outline-offset:6px; }
.projects-showcase #odot, .projects-showcase #results { scroll-margin-top:100px; }
.projects-showcase p { max-width:none; }
.projects-showcase .feature {background:#171d20;color:#fff;padding:62px 0 65px}
.projects-showcase .eyebrow {display:flex;align-items:center;gap:11px;text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:700;line-height:1.7;margin:0 0 30px}
.projects-showcase .eyebrow:before {content:"";height:6px;width:6px;background:#e82035;flex-shrink:0}
.projects-showcase .feature-grid {display:grid;grid-template-columns:1.05fr 1fr;gap:90px;align-items:start}
.projects-showcase #program-title {font-size:clamp(36px,3.7vw,54px);line-height:1.1;letter-spacing:-2px;margin:0 0 24px;font-weight:700}
.projects-showcase #program-title span {color:#bfc9c8}
.projects-showcase .intro {font-size:16px;line-height:1.9;color:#c8cece;max-width:520px;margin:0 0 30px}
.projects-showcase .action {display:inline-flex;align-items:center;gap:24px;font-size:13px;font-weight:700;border-bottom:1px solid #808889;padding-bottom:10px}
.projects-showcase .action span {color:#e82035;font-size:20px}
.projects-showcase .stats {display:grid;grid-template-columns:1.25fr 1fr;gap:24px;padding:3px 0 27px;border-bottom:1px solid #ffffff2b}
.projects-showcase .stat strong {display:block;font-size:52px;letter-spacing:-2px;line-height:1.15}
.projects-showcase .stat small {display:block;color:#b8c2c2;font-size:12px;margin-top:9px}
.projects-showcase .program-date {font-size:11px;letter-spacing:1.4px;color:#d3dbdb;margin:21px 0 24px;text-transform:uppercase}
.projects-showcase .program-detail {display:grid;grid-template-columns:75px 1fr;gap:15px;font-size:13px;line-height:1.8;margin-top:18px}
.projects-showcase .program-detail b {color:#fff;font-size:11px;letter-spacing:1px;text-transform:uppercase;padding-top:2px}
.projects-showcase .program-detail p {margin:0;color:#bdc8c8}
.projects-showcase .results {padding:66px 0 58px}
.projects-showcase .section-intro {display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:32px}
.projects-showcase .results .eyebrow {margin:0 0 15px;color:#626a66}
.projects-showcase h2 {font-size:35px;line-height:1.2;letter-spacing:-1.1px;margin:0}
.projects-showcase .section-intro>p {font-size:13px;line-height:1.8;color:#606965;max-width:330px;margin:0}
.projects-showcase .cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.projects-showcase .card {background:#fff;border:1px solid #d8dad3;padding:28px;display:flex;flex-direction:column;min-width:0}
.projects-showcase .card-top {display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.projects-showcase .card-number {font-size:11px;color:#858c87;letter-spacing:1px}
.projects-showcase .icon {width:30px;height:30px;color:#e82035}
.projects-showcase .place {font-size:11px;color:#626b65;line-height:1.6;margin:0 0 9px}
.projects-showcase h3 {font-size:23px;line-height:1.25;letter-spacing:-.6px;margin:0 0 22px;min-height:58px}
.projects-showcase .metric {border-top:1px solid #d8dad3;padding-top:19px;margin-bottom:20px}
.projects-showcase .metric strong {font-size:38px;line-height:1;letter-spacing:-1px}
.projects-showcase .metric span {font-size:12px;color:#626b65;margin-left:8px}
.projects-showcase .card p.description {font-size:13px;color:#555f59;line-height:1.9;margin:0 0 25px}
.projects-showcase .card a {margin-top:auto;border-top:1px solid #d8dad3;padding-top:18px;display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:700}
.projects-showcase .card a span {color:#e82035;font-size:17px}
.projects-showcase .archive {border-top:1px solid #d8dad3;margin-top:38px;padding-top:26px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.projects-showcase .archive p {font-size:12px;color:#656d66;margin:0}
.projects-showcase .archive strong {display:block;color:#15191b;font-size:16px;margin-bottom:5px}
.projects-showcase .years {display:flex;gap:12px}
.projects-showcase .years a {border:1px solid #cbd0c8;min-width:100px;padding:12px 15px;display:flex;justify-content:space-between;gap:20px;font-size:13px}
.projects-showcase .years a:hover, .projects-showcase .card a:hover {color:#e82035}
.projects-showcase .feature #program-title { color:#fff; font-family:Manrope,Arial,sans-serif; font-weight:700; }
.projects-showcase .feature .eyebrow { color:#fff; }
.projects-showcase .feature .stat strong { color:#fff; font-weight:700; }
.projects-showcase .metric strong { font-weight:700; }
.projects-showcase .program-detail p { font-size:13px; line-height:1.8; }
.projects-showcase .card-number { color:#626b65; }
.projects-showcase .results h2, .projects-showcase .results h3 { font-family:Manrope,Arial,sans-serif; font-weight:700; }
.projects-showcase .results h2 { color:#15191b; }
.projects-showcase .eyebrow { font-size:11px; }
.projects-showcase .place, .projects-showcase .card-number, .projects-showcase .program-detail b { font-size:11px; }
@media(min-width:1650px) {
  .projects-showcase .feature { padding:78px 0; }
  .projects-showcase .results { padding-top:76px; }
}
@media(max-width:1050px) {
  .projects-showcase .container { width:calc(100% - 56px); }
  .projects-showcase .feature-grid { gap:45px; }
  .projects-showcase .card { padding:23px; }
  .projects-showcase .cards { gap:15px; }
  .projects-showcase h3 { font-size:21px; }
  .projects-showcase .section-intro { gap:30px; }
  .projects-showcase .stat strong { font-size:43px; }
}
@media(max-width:760px) {
  .projects-showcase .container { width:calc(100% - 40px); }
  .projects-showcase .feature { padding:36px 0 40px; }
  .projects-showcase .eyebrow { font-size:11px; letter-spacing:1.5px; margin-bottom:23px; }
  .projects-showcase .feature-grid { grid-template-columns:1fr; gap:34px; }
  .projects-showcase #program-title { font-size:41px; letter-spacing:-1.7px; }
  .projects-showcase .intro { font-size:14px; line-height:1.85; margin-bottom:23px; }
  .projects-showcase .action { font-size:12px; gap:15px; }
  .projects-showcase .stats { gap:15px; padding-top:27px; border-top:1px solid #ffffff2b; padding-bottom:23px; }
  .projects-showcase .stat strong { font-size:43px; }
  .projects-showcase .stat small { font-size:11px; }
  .projects-showcase .program-date { margin:18px 0; }
  .projects-showcase .program-detail { font-size:12px; grid-template-columns:65px 1fr; gap:12px; }
  .projects-showcase .program-detail p { font-size:12px; }
  .projects-showcase .results { padding:40px 0; }
  .projects-showcase .section-intro { display:block; margin-bottom:25px; }
  .projects-showcase h2 { font-size:31px; }
  .projects-showcase .section-intro>p { margin-top:17px; font-size:12px; max-width:100%; }
  .projects-showcase .cards { grid-template-columns:1fr; gap:18px; }
  .projects-showcase .card { padding:24px; }
  .projects-showcase .card-top { margin-bottom:15px; }
  .projects-showcase h3 { min-height:0; font-size:25px; margin-bottom:20px; }
  .projects-showcase .metric { display:flex; align-items:baseline; margin-bottom:17px; }
  .projects-showcase .card p.description { font-size:13px; }
  .projects-showcase .archive { align-items:start; flex-direction:column; margin-top:28px; }
  .projects-showcase .years { width:100%; }
  .projects-showcase .years a { min-width:0; flex:1; padding:11px; font-size:12px; gap:8px; }
}
