@font-face{font-family:'Newsreader';src:url('assets/fonts/newsreader-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Newsreader';src:url('assets/fonts/newsreader-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Newsreader Fallback';src:local('Georgia'),local('Times New Roman');size-adjust:94.8%}:root{--ink:#242a2b;--blue:#363f40;--cyan:#e6e9e9;--paper:#f7f8f8;--line:#d8dfe1;--muted:#546263;--max:1360px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--ink);background:#fff;font:16px/1.65 Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #ca0c2a;outline-offset:6px}button{border:0}p{margin:0 0 1.25rem}h1,h2,h3{font-weight:400;margin:0;line-height:1.12}h1,h2{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;letter-spacing:-.045em}h1 em,h2 em,.visual-type em{font-weight:400}h3{letter-spacing:-.035em}h1{font-size:clamp(3.3rem,5.8vw,5.8rem)}h2{font-size:clamp(2.4rem,3.9vw,3.8rem)}.eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.14em;line-height:1.6;margin-bottom:28px}.light{color:var(--cyan)}.header{height:105px;display:flex;align-items:center;justify-content:space-between;max-width:1536px;margin:auto;padding:0 5%}.brand{display:flex;align-items:center;gap:15px;font-size:1rem;font-weight:700;letter-spacing:.16em;line-height:1.2}.brand-bottom{display:block;font-size:.71rem;letter-spacing:.32em;margin-top:5px}.brand-mark span{color:#ca0c2a}.header nav{display:flex;gap:35px;align-items:center;font-size:.875rem}.nav-contact{border-bottom:1px solid var(--ink);padding:10px 0;margin-left:20px}.nav-contact span{margin-left:25px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.2fr 1fr;min-height:650px;background:var(--ink);color:white;max-width:1536px;margin:auto}.hero-copy{padding:64px 6% 30px 8.3%;display:flex;flex-direction:column;align-items:flex-start}.hero h1{position:relative;z-index:1;white-space:nowrap}.hero h1 em{color:var(--cyan)}.hero-description{max-width:460px;color:#d1dce2;font-size:1.12rem;line-height:1.75;margin:28px 0 33px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;padding:16px 23px;font-size:.875rem;font-weight:bold;min-height:54px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--cyan);color:var(--ink)}.primary:hover{background:#a80b23}.dark{background:var(--ink);color:#fff}.hero-foot{margin-top:auto;padding-top:42px;display:flex;justify-content:space-between;align-items:end;width:100%;font-size:.72rem;letter-spacing:.09em;line-height:1.65;color:#afc3cd}.hero-foot a{font-size:.82rem;letter-spacing:0;color:#fff}.hero-foot a span{margin-left:18px}.hero-image{position:relative;overflow:hidden;min-width:0;background:#546263}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,#242a2b88)}.hero-image img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center}.image-caption{position:absolute;bottom:30px;left:30px;right:24px;z-index:1;font-size:.67rem;letter-spacing:.13em;color:#fff}.credentials{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 5%;border-bottom:1px solid var(--line);font-size:.8rem;max-width:1536px;margin:auto}.credentials>span:first-child{color:var(--muted)}.credentials strong{font-weight:500}.credential-years{border-left:1px solid var(--line);padding-left:25px;color:var(--muted)}.section{max-width:1536px;margin:auto;padding:100px 5%}.expertise{display:grid;grid-template-columns:1fr 1.5fr;gap:60px}.section-intro>p:last-child{max-width:330px;color:var(--muted);margin-top:28px}.section-intro h2{font-size:clamp(2.3rem,3.3vw,3.2rem)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.service{background:var(--paper);padding:30px}.service.technology{background:#f2f3f3}.service-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.number{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-style:italic;font-size:1.3rem;color:#667e89}.service-symbol{font-size:1.7rem}.service h3{font-size:1.7rem;line-height:1.2;margin-bottom:22px}.service p{font-size:.94rem;color:var(--muted)}.service ul{list-style:none;padding:0;margin:26px 0 28px;font-size:.85rem}.service li{border-top:1px solid #cddbdc;padding:10px 0}.service a,.project a,.text-link{font-size:.87rem;font-weight:600;padding:0;background:none;text-align:left}.service a span,.project a span[aria-hidden],.text-link span{margin-left:14px}.service a:hover,.project a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:5px}.audience{grid-column:1/-1;display:flex;gap:40px;align-items:center;border-top:1px solid var(--line);padding-top:27px;margin-top:0}.audience>span{color:var(--muted);font-size:.8rem}.audience p{font-size:.9rem;margin:0}.audience p span{margin:0 25px;color:#8ca1aa}.work{background:var(--paper)}.work-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:45px}.work-heading>p{max-width:335px;color:var(--muted);margin-bottom:5px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.project{background:white}.project-visual{min-height:290px;display:flex;flex-direction:column;padding:25px 28px;overflow:hidden}.pmq{background:var(--ink);color:#fff}.pension,.property{background:var(--cyan)}.project-category,.visual-bottom{font-size:.66rem;letter-spacing:.1em;font-weight:600}.visual-type{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-size:2.9rem;line-height:1.02;letter-spacing:-.04em;margin:25px 0 0;margin-top:auto}.visual-type em{color:#546263}.pmq .visual-type em{color:var(--cyan)}.project-body{padding:28px}.status{font-size:.66rem;letter-spacing:.09em;font-weight:bold;color:#546263}.project-body h3{font-size:1.43rem;margin:14px 0 18px}.project-body p{font-size:.94rem;color:var(--muted);min-height:100px}.consultancy-case{margin-top:45px;padding-top:34px;border-top:1px solid #ccd8dc;display:grid;grid-template-columns:.6fr 1.8fr .8fr;gap:35px;align-items:center}.case-index{font-size:.72rem;letter-spacing:.08em;line-height:1.7;color:var(--muted)}.consultancy-case h3{font-size:1.3rem;margin-bottom:12px}.consultancy-case p{color:var(--muted);font-size:.92rem;max-width:650px;margin:0}.consultancy-case .text-link{justify-self:end}.about{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding-top:110px;padding-bottom:110px}.signature{margin-top:42px;font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-style:italic;font-size:2rem}.signature span{display:block;font-family:Arial,sans-serif;font-size:.68rem;font-style:normal;letter-spacing:.12em;margin-top:8px}.about-copy>p{color:var(--muted)}.about-copy .large-copy{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-size:1.63rem;line-height:1.5;color:var(--ink);margin-bottom:28px}.about-copy .qualifications{font-size:.8rem;border-top:1px solid var(--line);padding-top:22px;margin:30px 0 0}.contact{background:var(--ink);color:#fff;padding:75px 8%;max-width:1536px;margin:auto;display:grid;grid-template-columns:1fr minmax(320px,420px);gap:0 65px;align-items:center}.contact h2{font-size:clamp(2.5rem,4vw,3.9rem)}.contact h2 em{color:var(--cyan)}.contact p:not(.eyebrow){max-width:555px;color:#c8d6dd;margin:25px 0 0}.contact-form{grid-column:2;display:grid;gap:15px;width:100%}.contact-form .field{display:grid;gap:7px}.contact-form label{font-size:.68rem;letter-spacing:.09em;font-weight:600;color:#c8d6dd}.contact-form input,.contact-form textarea{width:100%;box-sizing:border-box;font:inherit;font-size:.95rem;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.24);padding:12px 14px}.contact-form textarea{resize:vertical;min-height:104px}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:3px solid #ca0c2a;outline-offset:2px}.contact-form .button{margin-top:4px;justify-self:start;border:0;cursor:pointer;font-family:inherit}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}footer{max-width:1536px;margin:auto;display:flex;justify-content:space-between;gap:35px;align-items:center;padding:40px 5%;font-size:.76rem;color:var(--muted)}footer .brand{color:var(--ink)}footer p{margin:4px 0}footer>a:last-child{font-size:.85rem}dialog{border:0;padding:45px;width:min(650px,calc(100% - 32px));max-height:85vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#071e2bd9}dialog h2{font-size:2.6rem;margin:20px 0 25px}dialog h3{margin:25px 0 10px;font-size:1.2rem}dialog p,dialog li{color:var(--muted)}dialog li{margin:9px 0}dialog .button{margin-top:15px}.dialog-close{display:block;margin:0 0 30px auto;background:transparent;font-size:.9rem;border-bottom:1px solid var(--line);padding:5px}.skip{position:absolute;left:15px;top:-100px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1600px){body{background:#eef1f2}.header,.credentials,.section,footer{background-color:#fff}.work{background:var(--paper)}}@media(max-width:1100px){.hero{min-height:590px}.hero-copy{padding-top:48px}.hero h1{font-size:4.3rem}.hero-image{margin-left:20px}.expertise{gap:35px;grid-template-columns:.8fr 1.4fr}.service{padding:22px}.section{padding-top:75px;padding-bottom:75px}.about{gap:60px}.project-body{padding:23px}.project-visual{padding:23px;min-height:275px}.visual-type{font-size:2.55rem}.credentials{flex-wrap:wrap;justify-content:center}.credentials>span:first-child{display:none}.consultancy-case{grid-template-columns:.6fr 1.8fr}.consultancy-case .text-link{grid-column:2;justify-self:start}.audience{gap:20px}.audience p span{margin:0 12px}}@media(max-width:800px){.header{height:85px}.header nav{gap:20px}.nav-contact{margin-left:0}.hero{grid-template-columns:1.25fr 1fr;min-height:590px}.hero h1{font-size:3.4rem;white-space:normal}.hero-copy{padding:45px 5% 28px 8%}.hero-description{font-size:1rem}.hero-foot{display:none}.hero-image{margin:0}.hero .button{gap:20px;font-size:.8rem}.expertise{display:block}.section-intro{margin-bottom:35px}.section-intro>p:last-child{max-width:550px}.section-intro h2 br:nth-child(1){display:none}.audience{margin-top:35px;display:block}.audience p{margin-top:12px}.work-heading{display:block}.work-heading>p{margin-top:25px;max-width:500px}.project-grid{gap:15px}.project-visual{min-height:220px;padding:18px}.visual-type,.pension .visual-type{font-size:2rem}.project-category{font-size:.6rem}.project-body{padding:20px}.project-body h3{font-size:1.2rem}.project-body p{min-height:155px}.about{gap:35px}.contact{grid-template-columns:1fr;padding:60px 6%}.contact .button{margin-top:30px;justify-self:start}.contact-form{grid-column:1;margin-top:32px;max-width:480px}footer{flex-wrap:wrap}footer>div{order:3;width:100%}}@media(max-width:600px){html{scroll-padding-top:20px}.header{position:relative;padding:0 6%;height:80px}.brand{font-size:.86rem;gap:12px}.brand-bottom{font-size:.61rem}.brand-mark{font-size:2.5rem}.menu-toggle{display:flex;gap:20px;align-items:center;background:none;padding:10px 0;font-size:.875rem}.menu-toggle span{font-size:1.3rem}.header nav{display:none;position:absolute;top:80px;left:0;right:0;padding:20px 6% 28px;background:white;z-index:5;box-shadow:0 14px 18px #242a2b1a}.header nav.open{display:flex;align-items:stretch;flex-direction:column;gap:8px}.header nav a{padding:12px 0}.nav-contact{border:0}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:42px 6% 45px}.hero .eyebrow{font-size:.67rem;margin-bottom:25px}.hero h1{font-size:clamp(2.8rem,10.8vw,4rem);white-space:nowrap;letter-spacing:-.05em}.hero-description{max-width:390px;margin:24px 0 28px}.hero-image{height:245px}.hero-image img{object-position:center 40%}.image-caption{font-size:.61rem;left:6%;bottom:20px}.credentials{gap:12px 25px;padding:23px 6%;justify-content:flex-start;font-size:.74rem}.credential-years{border:0;padding:0}.section{padding:60px 6%}.section-intro h2{font-size:2.4rem}.section-intro h2 br:nth-child(1){display:block}.eyebrow{font-size:.68rem;margin-bottom:24px}.service-grid{grid-template-columns:1fr;gap:18px}.service{padding:27px}.service h3 br{display:none}.service h3{font-size:1.75rem}.service ul{font-size:.91rem}.service p{font-size:1rem}.audience p span{display:none}.audience p{display:flex;flex-direction:column;line-height:2}.project-grid{grid-template-columns:1fr;gap:28px}.project-visual{min-height:255px;padding:25px}.project-category,.visual-bottom{font-size:.69rem}.visual-type,.pension .visual-type{font-size:2.7rem}.project-body{padding:26px}.project-body h3{font-size:1.5rem}.project-body p{min-height:0;margin-bottom:25px;font-size:1rem}.status{font-size:.72rem}.consultancy-case{display:block;margin-top:32px}.consultancy-case>div{margin:20px 0}.case-index br{display:none}.consultancy-case h3{font-size:1.5rem}.about{display:block}.about-copy{margin-top:38px}.about-copy .large-copy{font-size:1.5rem}.contact{padding:55px 6%}.contact h2{font-size:2.6rem}footer{padding:32px 6%;gap:25px;font-size:.72rem}dialog{padding:26px}dialog h2{font-size:2.25rem}.button{min-height:54px}.header nav a,.text-link{min-height:44px}.text-link{padding:8px 0}.project-category{line-height:1.5}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Keep the architecture visible within the portrait hero crop. */
.hero-image img{object-position:26% center}
@media(max-width:600px){.hero-image img{object-position:center 65%}}

/* Original Forward Projects identity, sampled from supplied artwork. */
.header{height:148px}.official-logo{display:block;width:218px;height:auto;max-width:100%}.brand{display:block}footer .official-logo{width:190px}.primary{background:#ca0c2a;color:white}.primary:hover{background:#a80b23}.hero .eyebrow{border-left:3px solid #ca0c2a;padding-left:12px}.hero h1 em{color:#e6e9e9}.signature{margin-top:36px}.about-title .qualifications{font-family:Arial,Helvetica,sans-serif;font-size:.8rem;line-height:1.8;margin:12px 0 10px;color:#546263}.founder-role{font-size:.68rem;letter-spacing:.12em}.portrait{display:block;width:100%;max-width:326px;height:auto;margin-top:46px}.nav-contact{border-color:#ca0c2a}html{scroll-padding-top:25px}
@media(max-width:600px){.header{height:115px}.header .official-logo{width:172px}.header nav{top:115px}footer .official-logo{width:172px}.about-title .qualifications{font-size:.8rem;max-width:300px}}

/* Readable secondary labels and narrow-screen heading sizes. */
.eyebrow,.project-category,.visual-bottom,.status,.case-index,.founder-role,.image-caption{font-size:.75rem}.service p,.project-body p,.consultancy-case p{font-size:1rem}.service a,.project a,.text-link{font-size:.875rem}.credentials{font-size:.875rem}.hero-foot{font-size:.75rem}footer{font-size:.75rem}
@media(max-width:600px){.hero h1{font-size:clamp(2.25rem,10vw,3.8rem)}.hero .eyebrow,.eyebrow,.project-category,.visual-bottom,.status,.case-index,.founder-role,.image-caption{font-size:.75rem}}

/* Technical image sequence with accessible user control. */
.technical-montage{background:#171b1c}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.3s ease;overflow:hidden}.hero-slide.active{opacity:1}.hero-slide img{object-position:center!important;transform:scale(1.025)}.technical-montage.is-playing .hero-slide.active img{animation:technical-drift 9s ease-in-out both}.technical-montage:after{background:linear-gradient(180deg,#11181b80,transparent 25%,transparent 55%,#11181bd9);pointer-events:none}.montage-top,.montage-bottom{position:absolute;z-index:2;left:30px;right:30px}.montage-top{top:28px;display:flex;justify-content:space-between;gap:25px;font-size:.75rem;letter-spacing:.1em;line-height:1.5;color:#e4e9e9}.montage-top span:last-child{white-space:nowrap}.montage-bottom{bottom:28px}.montage-title{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-size:1.9rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:12px;color:white}.montage-note{font-size:.75rem;color:#c8ced0;margin-bottom:20px}.montage-controls{display:flex;gap:9px;align-items:center}.montage-controls button{min-width:44px;min-height:44px;background:#1c2526a6;color:#fff;border:1px solid #8b9395;font-size:.8rem;padding:8px 12px}.montage-controls button[aria-pressed=true]{background:#ca0c2a;border-color:#ca0c2a}.montage-controls button:hover{background:#546263}.motion-toggle{margin-left:auto;min-width:65px!important}.hero .button{position:relative;z-index:1}@keyframes technical-drift{from{transform:scale(1.025)}to{transform:scale(1.105)}}
@media(max-width:800px){.montage-top{left:20px;right:20px;font-size:.7rem}.montage-top span:last-child{display:none}.montage-bottom{left:20px;right:20px}.montage-title{font-size:1.6rem}.montage-controls{gap:6px}.montage-controls button{padding:7px}}
@media(max-width:600px){.hero-image.technical-montage{height:370px}.montage-top{top:22px;left:6%;right:6%;font-size:.75rem}.montage-bottom{left:6%;right:6%;bottom:22px}.montage-title{font-size:1.7rem}.hero-slide img{object-position:center!important}.montage-note{margin-bottom:12px}.montage-controls{max-width:250px}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}.technical-montage.is-playing .hero-slide.active img{animation:none}}
.case{max-width:748px;margin:0 auto;padding:70px 6% 90px}.case-meta{color:var(--muted);margin:0 0 22px}.case h1{font-size:clamp(2.3rem,4.4vw,3.5rem);letter-spacing:-.04em;margin:0 0 34px}.case-hook{border-left:3px solid #ca0c2a;padding:4px 0 4px 26px;margin:0 0 44px}.case-hook .hook-h{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-size:1.6rem;line-height:1.32;letter-spacing:-.02em;color:var(--ink);margin:0 0 14px}.case-hook p{color:var(--muted);margin:0}.case-body p{margin:0 0 22px;font-size:1.02rem;line-height:1.72}.case-body strong{color:var(--ink)}.case-figures{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:36px 0 44px}.case-figures figure{margin:0}.case-figures img{width:100%;height:auto;display:block}.case-figures figcaption{font-size:.78rem;color:var(--muted);margin-top:9px}.case-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin:44px 0}.case-facts h2{font-family:Arial,Helvetica,sans-serif;font-size:.68rem;letter-spacing:.11em;font-weight:600;color:var(--muted);margin:0 0 18px;text-transform:uppercase}.case-facts dl{display:grid;grid-template-columns:1fr;gap:13px;margin:0}.case-facts dl>div{display:grid;grid-template-columns:150px 1fr;gap:18px}.case-facts dt{font-size:.78rem;letter-spacing:.05em;color:var(--muted)}.case-facts dd{margin:0;font-size:.94rem;color:var(--ink)}.case-close{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-size:1.3rem;line-height:1.5;color:var(--ink);margin:0 0 34px}.case-back{margin:38px 0 0;font-size:.85rem}.case-back a{color:var(--muted)}.case .button{margin-top:4px}@media(max-width:600px){.case-header{height:auto;flex-direction:column;align-items:flex-start;gap:14px;padding:18px 6%}.case-header nav{display:flex;position:static;flex-direction:row;flex-wrap:wrap;gap:16px 20px;padding:0;background:none;box-shadow:none;top:auto}.case-header nav a{padding:6px 0;min-height:0}.case-header .nav-contact{margin-left:0}.case{padding:44px 6% 64px}.case-figures{grid-template-columns:1fr}.case-facts dl>div{grid-template-columns:1fr;gap:4px}}.work-group{display:flex;justify-content:space-between;align-items:baseline;gap:40px;border-top:1px solid var(--line);padding-top:20px;margin:0 0 26px}.work-group.second{margin-top:58px}.group-label{font-family:'Newsreader','Newsreader Fallback',Georgia,'Times New Roman',serif;font-size:1.5rem;letter-spacing:-.02em;font-weight:400;margin:0}.group-note{font-size:.86rem;color:var(--muted);margin:0;text-align:right;max-width:360px}.case-grid{margin-bottom:0}.case-grid{grid-template-columns:repeat(4,1fr);gap:20px}.case-grid .visual-type{font-size:1.85rem}.case-grid .project-visual{min-height:228px;text-decoration:none}.case-grid .project-body p{min-height:86px;font-size:.9rem}.case-grid .project-body h3{font-size:1.12rem;line-height:1.28}.case-grid .status{color:var(--muted)}a.project-visual{display:flex;transition:opacity .2s}a.project-visual:hover{opacity:.87}a.case-stop{background:var(--ink);color:#fff}a.case-stop .visual-type em{color:var(--cyan)}a.case-fleet{background:var(--blue);color:#fff}a.case-fleet .visual-type em{color:var(--cyan)}a.case-outside{background:var(--cyan);color:var(--ink)}a.case-small{background:var(--cyan);color:var(--ink)}.project a.project-visual:hover{text-decoration:none}.project a.project-visual{font-size:inherit;font-weight:inherit;padding:25px 28px}.case-grid .project{display:flex;flex-direction:column}.case-grid .project-body{display:flex;flex-direction:column;flex:1}.case-grid .project-body p{flex:1;min-height:0}.case-grid .project-body>a{margin-top:18px}@media(max-width:1100px){.case-grid{grid-template-columns:repeat(2,1fr)}.project a.project-visual{padding:23px}.work-group{flex-direction:column;gap:8px}.group-note{text-align:left}}@media(max-width:600px){.case-grid{grid-template-columns:1fr}.project a.project-visual{padding:20px}.case-grid .project-body p{min-height:0}}
/* ── Film: hero loop + short film (Oct 2026) ─────────────────────────────── */
.hero-film{background:#1b2021}
.hero-film .hero-loop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}
.hero-film .montage-controls{justify-content:space-between}
.film-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;padding:8px 16px;background:#ca0c2a;color:#fff;font-size:.82rem;font-weight:700;transition:background .2s}
.film-link:before{content:'';width:0;height:0;border-left:9px solid #fff;border-top:6px solid transparent;border-bottom:6px solid transparent}
.film-link:hover{background:#a80b23}
.film-link .film-length{font-weight:400;opacity:.85;letter-spacing:.06em}
.film{display:grid;grid-template-columns:minmax(270px,.75fr) 2fr;gap:64px;align-items:center;border-bottom:1px solid var(--line)}
.film-intro h2{font-size:clamp(2.3rem,3.3vw,3.2rem)}
.film-intro>p{color:var(--muted);margin-top:28px;max-width:360px}
.film-frame{position:relative;aspect-ratio:16/9;background:#242a2b;overflow:hidden;box-shadow:0 34px 70px -38px rgba(36,42,43,.7)}
.film-frame video{position:absolute;inset:0;width:100%;height:100%;display:block;background:#242a2b}
.film-play{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:16px;padding:16px 24px;min-height:58px;background:#ca0c2a;color:#fff;font-weight:700;font-size:.92rem;white-space:nowrap;transition:background .2s,transform .2s;box-shadow:0 14px 30px -14px rgba(0,0,0,.6)}
.film-play:hover{background:#a80b23;transform:translate(-50%,-2px)}
.film-play-icon{width:0;height:0;border-left:13px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
.film-play .film-length{font-weight:400;opacity:.85;letter-spacing:.06em}
.film-frame.is-playing .film-play{display:none}
.film-frame video:focus-visible{outline:3px solid #ca0c2a;outline-offset:4px}
.film-transcript{margin-top:26px;font-size:.85rem;color:var(--muted);max-width:420px}
.film-transcript summary{cursor:pointer;font-weight:600;color:var(--ink)}
.film-transcript summary:focus-visible{outline:3px solid #ca0c2a;outline-offset:4px}
.film-transcript ol{padding-left:18px;margin:14px 0 0}
.film-transcript li{margin-bottom:9px;line-height:1.55}
.film-transcript strong{color:var(--ink);font-weight:600}
@media(max-width:1000px){.film{grid-template-columns:1fr;gap:34px}.film-intro>p{max-width:560px}}
@media(max-width:600px){.film-play{padding:8px 13px;min-height:44px;font-size:.76rem;gap:10px;bottom:5%}.film-play-icon{border-left-width:10px;border-top-width:6px;border-bottom-width:6px}.film-link{font-size:.76rem;padding:8px 12px}}
@media(max-width:600px){.hero-image.technical-montage.hero-film{height:480px}.hero-film .hero-loop{object-position:center 30%}}

/* ── v2: shop window (Oct 2026) ──────────────────────────────────────────── */
.who,.services,.tools{display:block}
.who .section-intro,.services .section-intro{max-width:760px;margin-bottom:46px}
.who .section-intro>p:last-child,.services .section-intro>p:last-child{max-width:600px}
.who-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.who-card{background:var(--paper);display:flex;flex-direction:column}
.who-visual{position:relative;background:var(--cyan);padding:28px 34px 22px;display:flex;justify-content:center}
.who-visual .number{position:absolute;left:24px;top:16px}
.who-visual svg{width:min(78%,300px);height:auto;overflow:visible}
.who-visual path{fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.who-visual path.accent{stroke:#ca0c2a;stroke-width:4}
.who-body{padding:28px 30px 30px;display:flex;flex-direction:column;flex:1}
.who-tag{font-size:.72rem;font-weight:700;letter-spacing:.12em;color:#ca0c2a;margin-bottom:12px}
.who-body h3{font-size:1.45rem;line-height:1.25;margin-bottom:14px}
.who-body>p:not(.who-tag){font-size:.94rem;color:var(--muted)}
.who-body ul{list-style:none;padding:0;margin:8px 0 26px;font-size:.88rem}
.who-body li{border-top:1px solid #cddbdc;padding:10px 0}
.who-body a{margin-top:auto;font-size:.87rem;font-weight:600}
.who-body a span{margin-left:14px}
.who-body a:hover{text-decoration:underline;text-underline-offset:5px}
.service-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.services .service h3{font-size:2rem}
.how-it-works{margin-top:46px;padding-top:30px;border-top:1px solid var(--line)}
.how-it-works .group-label{margin-bottom:22px}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.steps li{display:grid;grid-template-columns:auto 1fr;column-gap:16px;row-gap:4px;align-items:start}
.step-n{grid-row:span 2;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:'Newsreader','Newsreader Fallback',Georgia,serif;font-size:1.2rem}
.steps strong{font-weight:600;font-size:1.02rem}
.steps li>span:last-child{color:var(--muted);font-size:.92rem;line-height:1.55}
.honest-note{margin:26px 0 0;font-family:'Newsreader','Newsreader Fallback',Georgia,serif;font-style:italic;font-size:1.35rem;color:var(--ink)}

.chpp{background:#363f40;color:#fff}
.chpp .visual-type em{color:var(--cyan)}
.also-built{margin:26px 0 0;padding-top:22px;border-top:1px solid #ccd8dc;display:flex;gap:26px;align-items:baseline;font-size:.92rem;color:var(--muted)}
.also-built>span{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.also-built a strong{color:var(--ink);font-weight:600}
.also-built a:hover{text-decoration:underline;text-underline-offset:4px}
.tools{background:#fff}
.contact-form select{width:100%;font:inherit;font-size:.95rem;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.24);padding:12px 14px;border-radius:0;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#c8d6dd 50%),linear-gradient(135deg,#c8d6dd 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.contact-form select option{color:#242a2b}
.contact-form select:focus-visible{outline:3px solid #ca0c2a;outline-offset:2px}
.footer-family{display:flex;flex-direction:column;gap:4px;font-size:.78rem}
.footer-family>span:first-child{font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;color:var(--ink);margin-bottom:2px}
.footer-family a:hover{text-decoration:underline;text-underline-offset:3px}
.footer-family .soon{color:#8ca1aa}
.header nav{gap:28px}
@media(max-width:1100px){.who-grid,.service-grid.three{grid-template-columns:1fr 1fr}.who-property{grid-column:1/-1}.steps{grid-template-columns:1fr}}
@media(max-width:800px){.who-grid,.service-grid.three{grid-template-columns:1fr}.who-property{grid-column:auto}.also-built{flex-direction:column;gap:8px}}

/* Experience: drawings that draw themselves on scroll. --p runs 0 to 1 and defaults to 1, so they stay fully drawn without JavaScript or with reduced motion. */
.drawn{background:var(--ink);color:#fff;max-width:1536px;margin:auto;padding:100px 5%}
.drawn .work-heading h2,.drawn .eyebrow{color:#fff}
.drawn .work-heading h2 em{color:var(--cyan)}
.drawn .work-heading p{color:#d1dce2}
.drawn-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #434d4f;border-left:1px solid #434d4f}
.drawn-card{--p:1;padding:26px 26px 28px;border-right:1px solid #434d4f;border-bottom:1px solid #434d4f}
.drawn-card svg{display:block;width:100%;height:auto;margin-bottom:16px;overflow:visible}
.drawn-card path,.drawn-card circle{fill:none;stroke:#a9b6b8;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100 100;--t:clamp(0,calc((var(--p) - var(--s,0)) / .55),1);stroke-dashoffset:calc((1 - var(--t)) * 100px)}
.drawn-card .accent{stroke:#ca0c2a;stroke-width:2.2}
.drawn-label{font-size:.72rem;font-weight:700;letter-spacing:.12em;color:#c8d6dd;margin:0 0 8px}
.drawn-card h3{font-family:'Newsreader','Newsreader Fallback',Georgia,serif;font-size:1.5rem;letter-spacing:-.03em;margin:0 0 8px}
.drawn-card p:last-child{font-size:.88rem;line-height:1.5;margin:0;color:#c8d6dd}
.drawn-card.is-ai .drawn-label{color:#ff6b7f}
.xp-foot{margin:26px 0 0;font-size:.86rem;line-height:1.6;color:#c8d6dd;max-width:980px}
.xp-foot strong{color:#fff}
@media(max-width:1000px){.drawn{padding:64px 6%}.drawn-grid{grid-template-columns:1fr}}

/* Enquiry form: optional updates box and privacy note. */
.contact-form label.form-check{margin:0;display:flex;gap:10px;align-items:flex-start;font-size:.82rem;font-weight:400;letter-spacing:0;line-height:1.45;color:#d1dce2;cursor:pointer}
.contact-form .form-check input{flex:none;width:18px;height:18px;margin:1px 0 0;padding:0;accent-color:#ca0c2a}
.contact .contact-form p.form-note{font-size:.8rem;line-height:1.45;color:#c8d6dd;margin:0}
.form-note a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.footer-legal{text-decoration:underline;text-underline-offset:2px}

/* Privacy and company details page. */
.legal h2{font-family:'Newsreader','Newsreader Fallback',Georgia,serif;font-size:1.65rem;letter-spacing:-.03em;margin:38px 0 12px}
.legal p,.legal li{font-size:1.02rem;line-height:1.72}
.legal p{margin:0 0 16px}
.legal ul{margin:0 0 16px;padding-left:22px}
.legal a{text-decoration:underline;text-underline-offset:3px}

/* Inner pages on phones: the logo links home, so keep just the contact link rather than wrapping the menu. */
@media(max-width:600px){.case-header nav a:not(.nav-contact){display:none}}

/* Back-to-top button: hidden until the hero has scrolled away (app.js adds .show), so it never covers the hero. */
.to-top{position:fixed;right:max(32px,env(safe-area-inset-right));bottom:max(32px,env(safe-area-inset-bottom));z-index:4;width:52px;height:52px;display:grid;place-items:center;padding:0;border:0;background:#ca0c2a;color:#fff;font:inherit;font-size:1.35rem;line-height:1;cursor:pointer;box-shadow:0 6px 18px #242a2b40;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .25s,visibility 0s .25s,background .2s}
.to-top.show{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .25s,visibility 0s,background .2s}
.to-top:hover{background:#a80b23}
/* Room under the footer so the button never sits on the last line (e.g. the privacy link) at the bottom of the page. */
footer{padding-bottom:100px}
@media(max-width:600px){.to-top{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:46px;height:46px}footer{padding-bottom:80px}}
@media(prefers-reduced-motion:reduce){.to-top,.to-top.show{transition:none}}
@media print{.to-top{display:none}}
