/* /assets/home-fonts.css */
/* Official Google Fonts Latin subsets; licence notices are stored alongside them. */
@font-face {
  font-family:'Antonio'; font-style:normal; font-weight:400 600;
  font-display:swap; src:url("/assets/antonio-latin.woff2") format('woff2');
}
@font-face {
  font-family:'Chivo'; font-style:normal; font-weight:400 600;
  font-display:swap; src:url("/assets/chivo-latin.woff2") format('woff2');
}
@font-face {
  font-family:'Fragment Mono'; font-style:normal; font-weight:400;
  font-display:swap; src:url("/assets/fragment-mono-latin.woff2") format('woff2');
}

/* /design-tokens.css */
/* Cloudfusion shell tokens. Client artwork never inherits a colour treatment. */
:root {
  --cf-night: #080b12;
  --cf-ink: #edf3fa;
  --cf-surface: #111722;
  --cf-surface-raised: #101622;
  --cf-surface-deep: #0d121c;
  --cf-muted: #a8b6c9;
  --cf-label: #91a8c6;
  --cf-line: #29364a;
  --cf-blue: #019edb;
  --cf-light: var(--cf-service-build, #67ddff);
  --cf-violet: var(--cf-service-improve, #a7abff);
  --cf-frost: #e2ebf1;
  --cf-emphasis: #9fb4d2;
  --cf-display: 'Antonio', 'Arial Narrow', sans-serif;
  --cf-body: 'Chivo', sans-serif;
  --cf-mono: 'Fragment Mono', monospace;
  --cf-rail-home: 1800px;
  --cf-rail-story: 1740px;
  --cf-rail-reading: 1560px;
  --cf-rail-media: 2300px;
  --cf-gutter: clamp(20px, 4vw, 110px);
  --cf-section-space: clamp(56px, 5vw, 100px);
  --cf-radius-media: 8px;
  --cf-radius-panel: 12px;
  --cf-radius-story: 18px;
  --cf-radius-pill: 999px;
  --cf-ease: cubic-bezier(.22, 1, .36, 1);
}
/* Lenis moves the real document. Never combine it with CSS smooth scroll. */
html.lenis, html.lenis body {height: auto}
html.lenis {scroll-behavior: auto !important}
.lenis-stopped {overflow: hidden}
.lenis-smooth iframe {pointer-events: none}

/* The reversed official symbol already contains white + brand blue. */
.site-header .brand-symbol,.gallery-header .gallery-brand .brand-symbol {filter:none}

/* Shared accessible status text, including pages without the legacy base CSS. */
.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}

/* /liquid-surface.css */
/* The sheen stays behind content; its shared flow refracts live content above. */
.liquid-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.cf-liquid-section{position:relative;isolation:isolate}
.cf-liquid-section>.cf-liquid-content{position:relative;z-index:2}
.cf-liquid-section>.cf-liquid-stage{display:block;position:absolute;inset:0;z-index:1;pointer-events:none;overflow:clip;contain:strict;opacity:0}
.cf-liquid-stage.is-active{opacity:1}
.cf-liquid-stage>.liquid-sheen{position:absolute;top:0;left:0;max-width:none;pointer-events:none}
html[data-motion="off"] .cf-liquid-stage{display:none}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse),(max-width:950px){.cf-liquid-section>.cf-liquid-stage{display:none}}

/* A single viewport layer crosses panels, images and navigation continuously. */
body>.cf-liquid-overlay{display:block;position:fixed;inset:0;z-index:9998;pointer-events:none;overflow:clip;contain:strict;opacity:0}
body>.cf-liquid-overlay.is-active{opacity:1}
html[data-motion="off"] body>.cf-liquid-overlay,html[data-case-motion="off"] body>.cf-liquid-overlay{display:none}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse),(max-width:950px){body>.cf-liquid-overlay{display:none}}

/* /projects/directory.css */
 .projects-intro,.projects-browser,.projects-close{width:min(1800px,92%);margin:auto}
*{box-sizing:border-box}html{background:var(--cf-night);color:var(--cf-ink);color-scheme:dark;scroll-padding-top:190px}body{margin:0;font:400 16px/1.6 var(--cf-body);font-synthesis:none}a{color:inherit;text-decoration:none}button,summary{font:inherit;cursor:pointer}button{color:inherit}h1,h2,p,figure{margin:0}img{display:block;max-width:100%}[hidden]{display:none!important}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--cf-light);outline-offset:6px}
.projects-intro{padding:72px 0 20px;position:relative;overflow:hidden}.projects-kicker{font:11px var(--cf-mono);color:var(--cf-label);letter-spacing:.06em;display:flex;justify-content:space-between;gap:20px}.projects-kicker>span:first-child{color:var(--cf-light)}.projects-heading{display:flex;align-items:end;gap:6%;padding:46px 0 42px}.projects-heading h1{font:500 clamp(56px,6.6vw,116px)/1.08 var(--cf-display);text-transform:uppercase;letter-spacing:-.012em;flex:1;min-width:0}.projects-heading h1 span{display:block}.projects-emphasis{color:var(--cf-emphasis)}.projects-heading p{font-size:15px;color:var(--cf-muted);max-width:290px;padding-bottom:8px}.projects-signal{width:100%;height:52px;display:block;fill:none;stroke:var(--cf-line);stroke-width:1;overflow:visible}.projects-signal-light{stroke:var(--cf-blue);stroke-width:1.5;stroke-dasharray:1;animation:project-trace 1.3s var(--cf-ease) both}.projects-heading h1 span{animation:project-enter .85s var(--cf-ease) both}.projects-heading h1 span:nth-child(2){animation-delay:.09s}
.projects-filter-bar{position:sticky;top:96px;z-index:10;background:var(--cf-night);border-bottom:1px solid var(--cf-line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0}.project-filters{display:flex;flex-wrap:wrap;gap:8px}.project-filters button{border:1px solid var(--cf-line);border-radius:30px;background:transparent;padding:10px 16px;min-height:44px;font-size:13px;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}.project-filters button span{font:10px var(--cf-mono);margin-left:8px;color:var(--cf-label)}.project-filters button:hover{border-color:var(--cf-light)}.project-filters button[aria-pressed=true]{background:var(--cf-ink);color:var(--cf-night);border-color:var(--cf-ink)}.project-filters button[aria-pressed=true] span{color:#365b71}.projects-count{flex:none;font:11px var(--cf-mono);color:var(--cf-muted);min-width:75px;text-align:right}.projects-no-script{margin:20px 0;color:var(--cf-muted)}
.projects-close{padding:90px 0;display:grid;grid-template-columns:1fr 1fr;gap:24px 36px;margin-top:90px;border-top:1px solid var(--cf-line)}.eyebrow{font:11px var(--cf-mono);color:var(--cf-light);grid-column:1/-1}.projects-close h2{font:500 clamp(54px,6vw,108px)/1.1 var(--cf-display);text-transform:uppercase}.projects-close-link{align-self:end;justify-self:start;padding:16px 0;border-bottom:1px solid var(--cf-light);display:flex;gap:48px;font-size:17px}.projects-close-link span{color:var(--cf-light)}
@keyframes project-trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes project-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.projects-heading{display:block}.projects-heading p{margin-top:26px;max-width:440px}.projects-filter-bar{display:block}.projects-count{text-align:left;margin-top:16px}}
@media(max-width:800px){.projects-intro{padding-top:44px}.projects-filter-bar{top:80px}.projects-heading h1{font-size:clamp(49px,8vw,74px)}.projects-kicker{font-size:9px}.project-filters button{font-size:12px;padding:10px 13px}}
@media(max-width:700px){.projects-heading{padding:30px 0 18px}.projects-intro{padding-top:34px}.projects-kicker span:last-child{display:none}.projects-filter-bar{position:relative;top:auto;padding:16px 0}.projects-count{margin-top:12px}.projects-heading h1{font-size:clamp(42px,8.5vw,59px)}.projects-heading p{font-size:14px;margin-top:22px}.projects-signal{height:30px}.projects-close{grid-template-columns:1fr;margin-top:60px;padding:50px 0;gap:22px}.projects-close h2{font-size:54px}.projects-close-link{font-size:14px;gap:25px}html{scroll-padding-top:100px}}
@media(min-width:801px) and (max-height:800px){.projects-intro{padding-top:36px;padding-bottom:12px}.projects-heading{padding-top:28px;padding-bottom:20px}.projects-heading h1{font-size:clamp(56px,5.6vw,94px)}.projects-signal{height:30px}.projects-filter-bar{padding:18px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}html[data-motion=off] *,html[data-motion=off] *:after{animation:none!important;transition:none!important}

.projects-grid{padding-top:28px;scroll-margin-top:190px}
@media(max-width:700px){.projects-grid{padding-top:15px}}

/* A second, independent dimension without another wall of filter buttons. */
.projects-filter-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:12px 28px;padding:18px 0;top:var(--shell-height,96px)}
.project-filters{grid-column:1/-1}
.project-search-control{display:grid;gap:6px;margin:0;min-width:0;max-width:640px}
.project-search-control label{font:10px/1.5 var(--cf-mono);color:var(--cf-muted)}
.project-search-field{display:flex;align-items:center;min-width:0;border:1px solid var(--cf-line);background:var(--cf-night)}
.project-search-field>svg{flex:none;width:18px;height:18px;margin-left:14px;fill:none;stroke:var(--cf-light);stroke-width:1.5}
.project-search-field input{min-width:0;width:100%;height:46px;padding:10px 12px;border:0;border-radius:0;background:transparent;color:var(--cf-ink);font:400 14px/1.5 var(--cf-body)}
.project-search-field input::placeholder{color:var(--cf-muted);opacity:1}
.project-search-field input::-webkit-search-cancel-button{display:none}
.project-search-field:focus-within{border-color:var(--cf-light);outline:2px solid var(--cf-light);outline-offset:3px}
.project-search-field input:focus-visible{outline:none}
.project-search-clear{flex:none;width:44px;height:46px;border:0;background:none;color:var(--cf-muted);font:300 24px/1 var(--cf-body)}
.project-search-clear:hover{color:var(--cf-light)}
.project-filters button{scroll-margin-top:calc(var(--shell-height,96px) + 20px)}
.project-industry-control{display:grid;gap:6px}.project-industry-control label{font:10px/1.5 var(--cf-mono);color:var(--cf-muted)}
.project-industry-control select{font:400 14px/1.5 var(--cf-body);color:var(--cf-ink);background:var(--cf-night);border:1px solid var(--cf-line);border-radius:0;min-height:44px;padding:10px 32px 10px 12px;width:100%}
.project-industry-control select:focus-visible{outline:2px solid var(--cf-light);outline-offset:3px}
.projects-filter-status{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px}.projects-count{margin:0;text-align:left;line-height:1.6}
.projects-count{min-width:0;flex:1;overflow-wrap:anywhere}
.projects-filter-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 25px}.project-industry-overview{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--cf-light);border-bottom:1px solid var(--cf-line)}
.project-filter-reset{background:none;border:0;border-bottom:1px solid var(--cf-line);min-height:44px;padding:8px 0;color:var(--cf-ink);font-size:13px}
.industry-browser{border-bottom:1px solid var(--cf-line);margin-bottom:25px}.industry-browser summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;min-height:44px;list-style:none;font:500 14px/1.6 var(--cf-body);cursor:pointer;color:var(--cf-ink)}.industry-browser summary::-webkit-details-marker{display:none}.industry-browser summary>span{color:var(--cf-light);font-size:23px}
.industry-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px;padding-bottom:24px}.industry-index a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;min-height:44px;border-top:1px solid var(--cf-line);font-size:14px}.industry-index a>span:last-child{font:11px/1.6 var(--cf-mono);color:var(--cf-muted);white-space:nowrap}.industry-index a>span:last-child>span{font:20px var(--cf-body);color:var(--cf-light);padding-left:12px}.projects-empty{padding:45px 0;color:var(--cf-muted);max-width:55ch}
.projects-empty>p:first-child{font:500 clamp(24px,3vw,34px)/1.3 var(--cf-body);color:var(--cf-ink);margin-bottom:12px}
.projects-empty .project-filter-reset{margin-top:18px;display:inline-flex;gap:25px;align-items:center;color:var(--cf-light)}
@media(max-width:1100px){.projects-filter-bar{grid-template-columns:1fr}.project-industry-control{max-width:360px}.industry-index{grid-template-columns:1fr 1fr}}
@media(min-width:701px) and (max-width:1100px){.projects-filter-bar{grid-template-columns:minmax(0,1fr) minmax(190px,34%)}.project-industry-control{max-width:none}}
@media(max-width:700px){.projects-filter-bar{position:relative;top:auto}.industry-index{grid-template-columns:1fr}.projects-filter-status{align-items:flex-start}.projects-count{max-width:65%;line-height:1.8}.project-filter-reset{white-space:nowrap}.industry-browser summary{font-size:13px}}
@media(max-width:700px){.projects-filter-status{flex-wrap:wrap;gap:8px}.projects-count{max-width:100%;width:100%}}
@media(max-width:700px){.project-search-field input{font-size:16px}.projects-count{flex:auto}}
/* A tall toolbar must not trap the reading area in a short landscape viewport. */
@media(max-height:800px){.projects-filter-bar{position:relative;top:auto}}

/* /cinematic-direction.css */
/* The same manufactured world, optical light and editorial motion on home + every case. */
.kinetic-mask{display:inline-block;overflow:clip;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}
.kinetic-mask>span{display:inline-block;--word-progress:clamp(0,calc(var(--kinetic-progress,1)*1.65 - var(--kinetic-i)*.045),1);transform:translate3d(calc((1 - var(--word-progress))*-.16em),calc((1 - var(--word-progress))*110%),0) rotate(calc((1 - var(--word-progress))*3deg));opacity:var(--word-progress)}
body[data-page=home] .cf-hero-heading{translate:var(--hero-slide,0px) 0;opacity:calc(1 - var(--hero-depart,0)*.75)}
body[data-page=home] .cf-hero-art>.cinematic-portal{inset:-12% -17%;z-index:0;transform:perspective(1600px) rotateX(calc((1 - var(--cinema-enter,1))*8deg)) scale(calc(.96 + var(--cinema-enter,1)*.04));opacity:calc(.75 - var(--hero-depart,0)*.22)}
body[data-page=home] .chapter-bar:before{width:calc(58px + var(--seam-progress,1)*20%)}
body[data-page=home] .cf-story-card{background:radial-gradient(ellipse at 85% 15%,#15354c80,transparent 60%),linear-gradient(135deg,#151e2c,#090e18 70%);box-shadow:inset 0 1px 0 #a9c8ed45,inset 0 -2px 0 color-mix(in srgb, var(--cf-blue) 20.0%, transparent),0 35px 65px -30px #02050dcc}
/* The card is one reflective surface. No lighting rectangle around the model. */
body[data-page=home] .cf-story-art:before,body[data-page=home] .cf-story-art:after{content:none}
body[data-page=home] .cf-story-card-content{position:relative;z-index:1}
body[data-page=home] .cf-story-card:after{z-index:0;background:none;pointer-events:none}
body[data-page=home] .cf-card-light{position:absolute;inset:0;border-radius:inherit;overflow:hidden;z-index:0;pointer-events:none}
body[data-page=home] .cf-card-sheen{position:absolute;inset:-30% -55%;pointer-events:none;
 background:radial-gradient(ellipse at 65% 35%,#67ddff10,transparent 65%),linear-gradient(112deg,transparent 25%,#67ddff18 45%,#bfe9ff10 49%,#8276ff08 55%,transparent 75%);
 transform:translate3d(var(--optic-shift-x,0%),var(--optic-shift-y,0%),0);
 opacity:max(var(--optic-hover,0),var(--optic-scroll-light,0),var(--assembly-light,0));}
html:not([data-story-pointer=on]) body[data-page=home] .cf-card-sheen{display:none}
/* Separate pane layers preserve the authored SVG assembly transforms. */
body[data-page=home] .cf-story-art [data-story-parallax=dark]{transform:translate(calc(var(--story-pointer-art-x,0px)*.32),calc(var(--story-pointer-art-y,0px)*.32))}
body[data-page=home] .cf-story-art [data-story-parallax=light]{transform:translate(var(--story-pointer-art-x,0px),var(--story-pointer-art-y,0px))}
html:not([data-story-pointer=on]) .cf-story-card,
.cf-story-frame.is-story-focused .cf-story-card{--story-pointer-rx:0deg!important;--story-pointer-ry:0deg!important;--story-pointer-art-x:0px!important;--story-pointer-art-y:0px!important}
@media (prefers-reduced-motion:reduce),(hover:none),(pointer:coarse),(forced-colors:active){
 body[data-page=home] .cf-card-sheen{display:none}
 .cf-story-card{--story-pointer-rx:0deg!important;--story-pointer-ry:0deg!important;--story-pointer-art-x:0px!important;--story-pointer-art-y:0px!important}
}
body[data-page=home] .cf-story-art-label{background:#080e18db;color:#c7d9ee;border:1px solid #54728a40;border-bottom-color:color-mix(in srgb, var(--cf-blue) 50.2%, transparent);border-radius:2px;padding:5px 7px;font-size:clamp(8px,.65vw,11px)}
body[data-page=home] .brand{min-height:44px;display:inline-flex;align-items:center}
body[data-page=home] .site-header .talk-link{min-height:44px}

body[data-experience=cinematic]{--night:var(--cf-night);--case-gutter:max(var(--cf-gutter),var(--safe-left,0px),var(--safe-right,0px));--case-width:var(--cf-rail-reading);--case-media-width:var(--cf-rail-media);--case-space:var(--cf-section-space);background:var(--cf-night);color:var(--cf-ink);color-scheme:dark;font-family:var(--cf-body)}
html:has(body[data-experience=cinematic]){background:var(--cf-night);color-scheme:dark}
body[data-experience=cinematic] :is(h1,h2,h3,.cinema-title strong){font-family:var(--cf-body);font-weight:500}
body[data-experience=cinematic] em{font-family:inherit;font-style:normal;color:var(--cf-emphasis)}
body[data-experience=cinematic] :is(.eyebrow,.cinema-title>span,.cinema-note,.scene-caption,.reveal-index,.browser-bar){font-family:var(--cf-mono)}
body[data-experience=cinematic] .gallery-header{background:color-mix(in srgb, var(--cf-night) 90.98%, transparent);border-color:var(--cf-line)}
body[data-experience=cinematic] .gallery-brand{min-height:44px;align-items:center}
body[data-experience=cinematic] .case-cinema{padding-top:140px;position:relative;padding-bottom:40px;overflow:clip;margin-bottom:15px}
body[data-experience=cinematic] .cinema-stage{perspective:1800px;max-width:1500px;padding-top:25px;isolation:isolate}
body[data-experience=cinematic] .cinema-screen{width:min(88%,calc((100svh - 400px)*var(--cinema-ratio,1.77778)));margin:auto;position:relative;border-radius:var(--cf-radius-media);transform:rotateX(calc(var(--cinema-tilt,0)*1deg)) rotateY(calc(var(--cinema-tilt,0)*-.6deg)) scale(var(--cinema-scale,1))!important;transform-origin:center;box-shadow:0 45px 70px -20px #000b,0 0 0 1px color-mix(in srgb, var(--cf-light) 20.78%, transparent),0 0 70px color-mix(in srgb, var(--cf-blue) 4.71%, transparent);opacity:1!important}
body[data-experience=cinematic] .cinema-title{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;margin:24px 6% 0;gap:12px 20px;transform:translateX(calc(var(--cinema-x,0)*1px))!important;opacity:var(--cinema-opacity,1)!important}
body[data-experience=cinematic] .cinema-title>span{grid-column:1/-1}
body[data-experience=cinematic] .cinema-title strong{font-size:clamp(52px,7.2vw,110px);line-height:1.02;color:var(--cf-ink)}
body[data-experience=cinematic] .cinema-title a{align-self:center;font-size:11px}
body[data-experience=cinematic] .cinema-title>span,body[data-experience=cinematic] .cinema-note{color:#8fb4da}
body[data-experience=cinematic] .cinema-title a{color:var(--cf-light);min-height:44px;display:inline-flex;align-items:center}
body[data-experience=cinematic] .cinema-note{margin-left:6%;font-size:9px}
.cinematic-portal{position:absolute;inset:-14% -5% 10%;z-index:-1;pointer-events:none;transform:translateZ(calc((1 - var(--cinema-enter,1))*-180px)) rotateX(calc((1 - var(--cinema-enter,1))*10deg));opacity:.85}
.cinematic-portal svg{width:100%;height:100%;overflow:visible}
.cinematic-portal path{vector-effect:non-scaling-stroke;stroke-width:1}
.portal-back{stroke:#5b83a54d}
.cinematic-portal .portal-energy{vector-effect:none;stroke:var(--cf-blue);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--cinema-enter,1));filter:drop-shadow(0 0 4px var(--cf-light)) drop-shadow(0 0 14px var(--cf-blue))}
.portal-violet{stroke:var(--cf-violet);filter:drop-shadow(0 0 7px var(--cf-violet))}
body[data-experience=cinematic] .case-opening{padding-top:65px;min-height:0;padding-bottom:45px}
body[data-experience=cinematic] .opening-copy h1{font-size:clamp(44px,4.7vw,88px);line-height:1.05}
body[data-experience=cinematic] :is(.opening-bottom p,.section-heading>p,.flow-step p,.delivery-scope p){color:var(--cf-muted)}
body[data-experience=cinematic] .case-brief{background:radial-gradient(ellipse at 100% 0,color-mix(in srgb, var(--cf-blue) 6.27%, transparent),transparent 65%),#101722;color:var(--cf-ink);border:1px solid var(--cf-line)}
body[data-experience=cinematic] .case-delivery{background:linear-gradient(130deg,#141e2c,#0c111b);border-color:var(--cf-line)}
body[data-experience=cinematic] :is(.case-brief em,.brief-scope,.case-brief .eyebrow,.delivery-tech dt,.delivery-tech small,.flow-note,.flow-step small){color:var(--cf-label)}
body[data-experience=cinematic] :is(.case-brief,.case-delivery,.flow-runway):before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cf-light),var(--cf-violet),transparent);transform:scaleX(var(--seam-progress,1));transform-origin:left;pointer-events:none}
body[data-experience=cinematic] .flow-runway{position:relative;border-color:var(--cf-line)}
body[data-experience=cinematic] .flow-step:before{box-shadow:0 0 0 5px var(--cf-night),0 0 18px color-mix(in srgb, var(--cf-blue) 25.1%, transparent)}
body[data-experience=cinematic] .cinematic-surface:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:4;background:radial-gradient(ellipse at var(--optic-x,50%) var(--optic-y,50%),color-mix(in srgb, var(--cf-light) 12.55%, transparent),transparent 55%);opacity:var(--optic-hover,0);mix-blend-mode:screen}
body[data-experience=cinematic] .browser-bar{background:linear-gradient(#222d3b,#111923);color:#9bb2cf}
body[data-experience=cinematic] .case-next{background:#111925;color:var(--cf-ink);border-top:1px solid var(--cf-line)}
body[data-experience=cinematic] .case-next .eyebrow{color:var(--cf-label)}
body[data-experience=cinematic] .case-tools>button{background:#0e1522ec;color:var(--cf-muted);border-color:var(--cf-line)}
body[data-experience=cinematic] .screen-dialog{background:var(--cf-night);border-color:var(--cf-line)}

/* The same shell extends to proof captions, PWA devices and local enquiries. */
body[data-experience=cinematic] :is(.case-brief,.case-delivery){border-radius:var(--cf-radius-panel)}
body[data-experience=cinematic] :is(.gallery-header .back,.project-launch,.screen-dialog form button,.enquiry-actions button[type=submit]){background:var(--cf-ink);color:var(--cf-night);border-color:var(--cf-ink);border-radius:var(--cf-radius-pill)}
body[data-experience=cinematic] .project-launch:hover{background:var(--cf-light);border-color:var(--cf-light)}
body[data-experience=cinematic] :is(.eyebrow,.scene-caption,.flow-note,.flow-step small,.app-showcase-note,.app-showcase-phone figcaption span,.reveal-index){color:var(--cf-label)}
body[data-experience=cinematic] :is(.reveal-heading p,.proof-focus p,.app-showcase-copy p,.app-showcase-features p,.enquiry-context,.enquiry-help){color:var(--cf-muted)}
body[data-experience=cinematic] :is(.proof-focus strong,.app-showcase-features strong,.app-showcase-phone figcaption strong,.enquiry-context strong,.enquiry-form label){color:var(--cf-ink)}
body[data-experience=cinematic] :is(.delivery-tech,.brief-columns>div+div,.delivery-scope>div+div,.delivery-tech dl>div,.flow-step,.case-close,.enquiry-dialog,.enquiry-actions button){border-color:var(--cf-line)}
body[data-experience=cinematic] :is(.chapter-compass,.enquiry-dialog){background:var(--cf-surface);border-color:var(--cf-line)}
body[data-experience=cinematic] .case-tools .chapter-compass a{color:var(--cf-muted)}
body[data-experience=cinematic] .case-tools .chapter-compass a[aria-current]{color:var(--cf-light)}
body[data-experience=cinematic] :is(.enquiry-form textarea,.enquiry-form select,.enquiry-copy){background:var(--cf-night);border-color:var(--cf-line);color:var(--cf-ink)}
body[data-experience=cinematic] :is(.enquiry-close,.enquiry-form textarea::placeholder,.enquiry-form label span){color:var(--cf-label)}
body[data-experience=cinematic] .enquiry-status{color:var(--cf-light)}
body[data-experience=cinematic] .case-handoff{background:var(--cf-surface);color:var(--cf-ink);font-family:var(--cf-display);letter-spacing:-.012em;text-transform:uppercase}
body[data-experience=cinematic] .case-next-meter{background:var(--cf-line)}
body[data-experience=cinematic] :focus-visible{outline-color:var(--cf-light)}

@media(max-width:950px),(max-height:600px){
 body[data-experience=cinematic] .case-cinema{padding-top:130px;padding-bottom:20px}
 body[data-experience=cinematic] .cinema-stage{padding-top:12px}
 body[data-experience=cinematic] .cinema-screen{width:100%;transform:none!important}
 body[data-experience=cinematic] .cinema-title{margin:30px 0 0;grid-template-columns:1fr}
 body[data-experience=cinematic] .cinema-note{margin-left:0}
 .cinematic-portal{inset:-15% -15% 20%;opacity:.5}
 body[data-experience=cinematic] .case-opening{padding-top:30px;padding-bottom:0}
}
@media(max-width:600px){
 body[data-experience=cinematic] .cinema-title strong{font-size:clamp(42px,11vw,66px)}
 body[data-experience=cinematic] .cinema-title>span{font-size:8px;line-height:1.6}
 body[data-experience=cinematic] .case-opening h1{font-size:clamp(38px,10vw,58px)}
 body[data-page=home] .cf-story-art-label{font-size:8px;padding:3px 4px}
}
@media(max-height:600px) and (min-width:700px){
 body[data-experience=cinematic] .case-cinema{padding-top:125px}
 body[data-experience=cinematic] .cinema-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.6fr);gap:18px 5%;align-items:center;padding-top:0}
 body[data-experience=cinematic] .cinema-title{grid-column:2;grid-row:1;grid-template-columns:1fr;margin:0}
 body[data-experience=cinematic] .cinema-title strong{font-size:clamp(38px,4.5vw,72px)}
 body[data-experience=cinematic] .cinema-note{grid-column:2;margin:0}
 .cinematic-portal{inset:-10% -5% 0;opacity:.35}
}
html[data-cinematic-mode=off] .kinetic-mask>span{transform:none;opacity:1}
html[data-cinematic-mode=off] body[data-page=home] .cf-hero-heading{translate:none;opacity:1}
html[data-cinematic-mode=off] .cinematic-portal{transform:none}
html[data-cinematic-mode=off] .cinematic-surface:after{display:none}
html[data-cinematic-mode=off] body[data-page=home] .cf-story-card:after{display:block;background:none}
@media(prefers-reduced-motion:reduce){.kinetic-mask>span{transform:none!important;opacity:1!important}.cinematic-portal{transform:none!important}body[data-page=home] .cf-hero-heading{translate:none!important;opacity:1!important}}

/* Quiet fallbacks keep the artwork and copy fully visible. */
html:is([data-cinematic-mode=quiet],[data-cinematic-mode=off]) body[data-page=home] .cf-hero-art>.cinematic-portal{transform:none;opacity:.4}
html[data-visual-quality=balanced] body[data-page=home] .portal-energy{filter:none}
html[data-visual-quality=lite] body[data-page=home] .portal-energy{filter:none}

/* /closing-chapter.css */
/* The final chapter: one stable native action, with glass architecture behind it. */
body:is([data-page="home"],[data-page="projects"]) .cf-closing.cf-next-chapter {
  --closing-progress:1;--closing-gutter:max(var(--pad,var(--cf-gutter)),calc((100vw - var(--cf-rail-home))/2));
  color:var(--cf-ink);font-family:var(--cf-body);
  position:relative;isolation:isolate;overflow:clip;
  display:block;padding:88px var(--closing-gutter) 64px;
  background:linear-gradient(to bottom,transparent calc(100% - 130px),#0b1420),radial-gradient(ellipse at 79% 42%,#0e416445,transparent 45%),linear-gradient(115deg,#0d1421,#0c1725 70%,#0b1420);
  /* The elastic footer samples this solid colour to continue the bottom fade. */
  background-color:#0b1420;
  border-top:1px solid #314a64;
}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter>:not(.cf-next-architecture) {position:relative;z-index:2}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter>.chapter-bar {
  display:flex;justify-content:space-between;align-items:center;gap:30px;
  padding-top:23px;border-top:1px solid #5873995c;
  font:400 10px/1.5 var(--cf-mono);letter-spacing:.065em;color:var(--cf-label);
}
.cf-next-chapter>.chapter-bar p {margin:0}
.cf-next-chapter>.chapter-bar p:first-child {display:flex;gap:34px}
.cf-next-chapter>.chapter-bar p:first-child>span {color:var(--cf-light)}
.cf-next-chapter>.chapter-bar p:last-child {text-align:right}
.cf-next-chapter>.chapter-bar::before {
  content:"";position:absolute;left:0;top:-1px;height:2px;
  width:calc(58px + var(--seam-progress,1)*20%);background:var(--cf-light);
  box-shadow:0 0 13px color-mix(in srgb,var(--cf-blue) 31.37%,transparent);pointer-events:none;
}
.cf-next-chapter .micro {font-family:var(--cf-mono);font-weight:400}
body[data-page="projects"] .cf-next-chapter {margin-top:90px}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-layout {
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);
  gap:clamp(48px,6.5vw,140px);align-items:center;margin:74px 0 68px;
}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-copy {min-width:0}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter h2 {
  margin:0;font-family:var(--cf-display);font-weight:500;
  font-size:clamp(76px,8vw,154px);line-height:1.11;letter-spacing:-.012em;
  text-transform:uppercase;max-width:100%;text-wrap:initial;
}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter h2 em {color:var(--cf-blue);font-style:normal}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-copy>p {
  max-width:42ch;margin:36px 0 0;color:#b9c8da;
  font-size:clamp(16px,1.15vw,20px);line-height:1.7;
}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-stage {
  position:relative;isolation:isolate;width:100%;max-width:640px;
  padding:52px 32px 0 18px;justify-self:end;perspective:1200px;
}
.cf-next-stage::before {
  content:"";position:absolute;inset:-10% -14% 0;z-index:-2;pointer-events:none;
  background:radial-gradient(ellipse at 50% 45%,#019edb1f,transparent 65%);
}
.cf-next-orbit {
  position:absolute;z-index:-1;pointer-events:none;width:115%;max-width:none;
  height:auto;left:-7%;top:-7%;overflow:visible;
  transform:rotate(-5deg) scale(calc(.94 + var(--closing-progress)*.06));
}
.cf-next-orbit-outer,.cf-next-orbit-inner {stroke:#80b6da;stroke-width:1;opacity:.23}
.cf-next-orbit-inner {opacity:.13}
.cf-next-orbit-trace {
  stroke:#67ddff;stroke-width:1.8;opacity:.8;
  stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--closing-progress));
}
.cf-next-planes {position:absolute;inset:38px 20px 80px 18px;z-index:-1;pointer-events:none;perspective:1200px}
.cf-next-planes>span {
  position:absolute;inset:0;clip-path:polygon(0 0,90% 0,100% 14%,100% 100%,10% 100%,0 86%);
  background:linear-gradient(135deg,#83bfe055,#4c779445);
}
.cf-next-planes>span::before {
  content:"";position:absolute;inset:1px;
  clip-path:polygon(0 0,90% 0,100% 14%,100% 100%,10% 100%,0 86%);
  background:linear-gradient(130deg,#16283a,#0d1c2b);
}
.cf-next-planes>span:first-child {
  transform:translate3d(calc(-38px - (1 - var(--closing-progress))*24px),calc(-28px - (1 - var(--closing-progress))*32px),-25px) rotate(-7deg);
}
.cf-next-planes>span:last-child {
  transform:translate3d(calc(26px + (1 - var(--closing-progress))*24px),calc(-13px - (1 - var(--closing-progress))*18px),-12px) rotate(3deg);
}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-action {
  position:relative;isolation:isolate;display:block;width:100%;aspect-ratio:540/410;
  padding:0;border:0;border-radius:0;background:transparent;color:#173149;
  font-family:var(--cf-body);font-weight:500;text-align:left;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.cf-next-face {position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 28px 26px #02061090);pointer-events:none}
.cf-next-face-depth {fill:#7193ab;stroke:#4d718c;stroke-width:1.5}
.cf-next-face-front {fill:#e2ebf1;stroke:#9cd3eb;stroke-width:1.5;transition:fill .35s}
.cf-next-face-inset {fill:none;stroke:#7698ae;stroke-width:1}
.cf-next-face-light {fill:none;stroke:#67ddff;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--closing-progress));opacity:.9}
.cf-next-action::after {
  content:"";position:absolute;inset:0 3.33% 4.4% 0;z-index:0;pointer-events:none;
  clip-path:polygon(0 0,90% 0,100% 14%,100% 100%,10% 100%,0 86%);
  background:linear-gradient(118deg,transparent 20%,#ffffff65 47%,transparent 68%);
  opacity:0;transform:translateX(-5%);transition:opacity .45s,transform .65s var(--cf-ease);
}
.cf-next-action-cue {
  position:absolute;left:8%;top:9%;z-index:1;
  font-family:var(--cf-mono);font-size:clamp(9px,.75vw,11px);font-weight:400;
  letter-spacing:.025em;color:#466985;
}
.cf-next-chevron {
  position:absolute;left:19%;top:10%;width:62%;height:68%;z-index:1;
  pointer-events:none;
}
.cf-next-chevron::before {content:"";position:absolute;left:27%;right:17%;bottom:11%;height:7%;border-radius:50%;background:#204b6940;filter:blur(8px)}
.cf-next-chevron-fallback,.cf-next-chevron-canvas {position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.cf-next-chevron-canvas {visibility:hidden}
.cf-next-chevron[data-chevron-ready="true"] .cf-next-chevron-canvas {visibility:visible}
.cf-next-chevron[data-chevron-ready="true"] .cf-next-chevron-fallback {visibility:hidden}
.cf-next-action-label {
  position:absolute;left:8%;right:10%;bottom:12%;z-index:1;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  border-top:1px solid #7896ab75;padding-top:22px;
  font-size:clamp(18px,1.65vw,27px);letter-spacing:-.035em;line-height:1.25;
}
.cf-next-action-label>span {font-size:1.25em;font-weight:400;color:#006f99}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-action:focus-visible {outline:2px solid #67ddff;outline-offset:10px}
@media(hover:hover) and (pointer:fine) {
  .cf-next-action:hover .cf-next-face-front {fill:#f2f8fc}
  .cf-next-action:hover::after {opacity:.8;transform:translateX(0)}
}
.cf-next-action:focus-visible .cf-next-face-front {fill:#f2f8fc}
.cf-next-action:focus-visible .cf-next-chevron {translate:0 0}
.cf-next-action:active .cf-next-face-front {fill:#d5e7f0}
body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-note {
  color:#a7b9cd;font-family:var(--cf-body);font-size:13px;line-height:1.6;
  margin:27px 8px 0 8%;max-width:38ch;
}
.cf-next-architecture {position:absolute!important;inset:0;z-index:-1!important;overflow:hidden;pointer-events:none}
.cf-next-architecture>span {
  position:absolute;top:-65%;right:8%;width:50%;height:230%;
  border-left:1px solid #547e9b24;transform:rotate(35deg);
  mask-image:linear-gradient(transparent,#000 35%,#000 60%,transparent);
}
.cf-next-architecture>span:nth-child(2) {right:0;transform:rotate(35deg) translateX(48px);opacity:.6}
.cf-next-architecture>span:nth-child(3) {right:-12%;transform:rotate(35deg) translateX(96px);opacity:.35}
.cf-next-foot {display:flex;align-items:center;gap:36px;border-top:1px solid #34516b55;padding-top:26px}
.cf-next-foot>.micro {font-size:9px;color:#8ca8c4;letter-spacing:.06em}
.cf-next-light-line {height:1px;flex:1;background:linear-gradient(90deg,#019edb,#67ddff55,transparent);max-width:240px;margin-left:auto}
@media(max-width:1100px) {
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-layout {gap:44px;margin:60px 0}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter h2 {font-size:clamp(66px,8vw,90px)}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-stage {padding:38px 16px 0 16px}
  .cf-next-action-label {padding-top:15px;font-size:20px}
}
@media(max-width:900px) {
  body:is([data-page="home"],[data-page="projects"]) .cf-closing.cf-next-chapter {padding-top:64px;padding-bottom:48px}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-layout {grid-template-columns:1fr;gap:40px;margin:48px 0 52px}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter h2 {font-size:clamp(72px,12vw,104px)}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-copy>p {margin-top:24px;max-width:40ch}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-stage {max-width:520px;justify-self:center;padding:40px 20px 0}
  .cf-next-action-label {font-size:25px}
  .cf-next-planes {inset:34px 20px 74px}
}
@media(max-width:650px) {
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter>.chapter-bar {gap:20px;font-size:8px;padding-top:20px;align-items:start}
  .cf-next-chapter>.chapter-bar p:first-child {gap:15px}
  .cf-next-chapter>.chapter-bar p:last-child {max-width:120px}
}
@media(max-width:700px) {body[data-page="projects"] .cf-next-chapter {margin-top:60px}}
@media(max-width:600px) {
  body:is([data-page="home"],[data-page="projects"]) .cf-closing.cf-next-chapter {padding-top:40px;padding-bottom:35px}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter h2 {font-size:clamp(52px,14.5vw,80px);line-height:1.13}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-layout {gap:26px;margin:42px 0 36px}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-copy>p {font-size:16px;max-width:33ch}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-stage {padding:24px 7px 0}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-note {font-size:12px;margin-top:23px;max-width:33ch}
  .cf-next-action-cue {font-size:8px;letter-spacing:0}
  .cf-next-action-label {font-size:clamp(17px,4.5vw,23px);padding-top:14px;gap:8px}
  .cf-next-chevron {top:11%;height:calc(68% - 24px)}
  .cf-next-planes {inset:24px 10px 66px}
  .cf-next-planes>span:first-child {transform:translate(-12px,-8px) rotate(-4deg)}
  .cf-next-planes>span:last-child {transform:translate(12px,-4px) rotate(2deg)}
  .cf-next-orbit {width:109%;left:-4.5%;top:0}
  .cf-next-foot {gap:18px;padding-top:22px}
  .cf-next-foot>.micro {max-width:23ch;font-size:8px;line-height:1.8}
  .cf-next-light-line {max-width:90px}
}
html[data-motion="off"] .cf-next-chapter {--closing-progress:1!important}
html[data-motion="off"] .cf-next-chevron {translate:0 0!important}
@media(prefers-reduced-motion:reduce) {
  .cf-next-chapter {--closing-progress:1!important}
  .cf-next-chevron {translate:0 0!important}
}
@media(forced-colors:active) {
  .cf-next-orbit,.cf-next-planes,.cf-next-architecture,.cf-next-face,.cf-next-chevron,.cf-next-action::after {display:none}
  body:is([data-page="home"],[data-page="projects"]) .cf-next-chapter .cf-next-action {border:2px solid ButtonText;background:ButtonFace;color:ButtonText;aspect-ratio:auto;min-height:100px;padding:24px}
  .cf-next-action-cue {position:static;display:block;color:ButtonText}
  .cf-next-action-label {position:static;color:ButtonText;border:0;padding-top:16px}
}
