:root{--highlight-copy-gap:15px}
/* Existing shared primitives, followed by the approved direction. */
    :root{
      --color-bg:#e8e5df;
      --color-surface:#f4f1eb;
      --color-text:#171612;
      --color-text-muted:rgba(23,22,18,.6);
      --color-text-inverse:#fff;
      --color-text-muted-inverse:rgba(255,255,255,.68);
      --color-border:rgba(23,22,18,.15);
      --color-accent-volvo:#f5a020;
      --color-accent-spotify:#1db954;
      --color-accent-nike:#c4471a;
      --color-accent-volvo-ink:#a85a00;
      --color-accent-spotify-ink:#087c34;
      --font-display:Archivo;
      --font-body:Inter,sans-serif;
      --type-body:400 16px/1.72 var(--font-body);
      --type-label-size:11px;
      --type-label-weight:600;
      --type-label-tracking:.11em;
      --space-xs:8px;
      --space-sm:16px;
      --space-md:24px;
      --space-lg:48px;
      --space-xl:72px;
      --space-section:88px;
      --space-section-wide:96px;
      --radius-media:28px;
      --content-max:1200px;
      --page-gutter:20px;
      --ease:cubic-bezier(.2,.75,.25,1);
      --transition-link:.2s;
    }
    *{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--color-bg)}[id]{scroll-margin-top:68px}body{margin:0;color:var(--color-text);background:var(--color-bg);font:var(--type-body);-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit}.shell{width:min(var(--content-max),calc(100vw - 2 * var(--page-gutter)));margin-inline:auto}.display{font-family:var(--font-display),sans-serif;letter-spacing:-.052em}.eyebrow,.meta{margin:0;font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);text-transform:uppercase}.muted{color:var(--color-text-muted)}
    .skip{position:fixed;z-index:100;left:16px;top:12px;padding:10px 14px;background:var(--color-text-inverse);transform:translateY(-160%)}.skip:focus{transform:none}.nav-wrap{position:fixed;z-index:50;inset:0 0 auto}.nav{width:100%;min-height:58px;display:flex;align-items:center;justify-content:space-between;padding:10px var(--page-gutter);border:0;border-bottom:1px solid var(--color-border);color:var(--color-text);background:var(--color-text-inverse);box-shadow:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:background-color .25s var(--ease),box-shadow .25s var(--ease)}.nav-wrap.is-scrolled .nav{background:rgba(255,255,255,.5);box-shadow:0 8px 32px rgba(23,22,18,.08)}.brand{font:500 15px var(--font-display),sans-serif;text-decoration:none}.nav-list{display:flex;gap:2px;margin:0;padding:0;list-style:none}.nav-list a,.menu{display:block;padding:10px 13px;border:0;background:transparent;color:inherit;font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}.nav-list a:hover,.nav-list a:focus-visible,.nav-list a[aria-current="page"],.menu:hover{color:var(--color-accent-volvo)}.menu{display:none}.view[hidden]{display:none!important}.view{min-height:100svh}.route-head{padding:150px 0 var(--space-xl);border-bottom:1px solid var(--color-border)}.route-head.dark{color:var(--color-text-inverse);background:var(--color-text)}.crumbs{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:40px;color:var(--color-text-muted);font-size:var(--type-label-size);letter-spacing:.09em;text-transform:uppercase}.dark .crumbs{color:var(--color-text-muted-inverse)}.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}.route-title{max-width:1020px;margin:14px 0 28px;font-size:clamp(52px,9vw,118px);font-weight:600;line-height:.9}.route-lede{max-width:780px;margin:0;color:var(--color-text-muted);font:300 clamp(21px,3vw,34px)/1.25 var(--font-display);letter-spacing:-.025em}.dark .route-lede{color:var(--color-text-muted-inverse)}.metadata{display:flex;flex-wrap:wrap;margin-top:36px}.metadata span{padding:0 12px;border-left:1px solid currentColor;font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:.09em;text-transform:uppercase}.metadata span:first-child{padding-left:0;border-left:0}.private-note{margin-top:32px;padding-top:18px;border-top:1px solid currentColor;font-size:12px}.section{padding:var(--space-section) 0;border-bottom:1px solid var(--color-border)}.section.dark{color:var(--color-text-inverse);background:var(--color-text);border-color:#ffffff22}.two-col{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,2fr);gap:var(--space-xl)}.section-title{max-width:760px;margin:0 0 28px;font-size:clamp(34px,5.5vw,66px);font-weight:300;line-height:1.02}.copy{max-width:760px}.copy p{margin:0 0 22px}.copy p:last-child{margin-bottom:0}.copy .lead{font:300 clamp(22px,3vw,34px)/1.3 var(--font-display);letter-spacing:-.025em}.dark .copy{color:var(--color-text-muted-inverse)}.dark .copy .lead{color:var(--color-text-inverse)}.editorial-link{display:inline-flex;align-items:center;gap:9px;margin-top:28px;padding:3px 0;border-bottom:1px solid currentColor;font-size:12px;font-weight:var(--type-label-weight);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:color var(--transition-link)}.editorial-link span{transition:transform var(--transition-link)}.editorial-link:hover,.editorial-link:focus-visible{color:var(--color-accent-volvo)}.editorial-link:hover span,.editorial-link:focus-visible span{transform:translateX(5px)}
    .hero{position:relative;isolation:isolate;min-height:700px;min-height:clamp(700px,100svh,1080px);display:grid;align-items:end;overflow:hidden;color:var(--color-text-inverse);background:#000}.hero:after{content:'';position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.4);pointer-events:none}.hero-shader{position:absolute;inset:0;z-index:0;overflow:hidden;background:#000 url("images/optimised/home-portrait-monochrome.webp") center / cover no-repeat}.hero-shader canvas{z-index:0!important}.hero-inner{position:relative;z-index:2;padding:clamp(136px,18svh,190px) 0 clamp(72px,11svh,120px)}.hero .eyebrow{color:#ffab1a}.hero-bottom{display:block}.hero-intro{max-width:950px;margin:var(--space-md) 0 0;color:var(--color-text-inverse);font:500 clamp(28px,4vw,52px)/1.14 var(--font-display),sans-serif;letter-spacing:-.035em;text-wrap:balance}.postures{margin-top:32px;font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:.1em;text-transform:uppercase}.postures span+span:before{content:' · ';margin:0 .6em;color:currentColor;opacity:.45}.home-intro{padding:var(--space-section-wide) 0}.home-intro h2{max-width:850px;margin:0;font-size:clamp(36px,5.5vw,70px);font-weight:300;line-height:1.06}.home-intro h2 span{color:var(--color-accent-nike)}#ai-builds{color:var(--color-text-inverse);background:var(--color-accent-nike)}
    .entry-point .section-title{margin-bottom:var(--space-md);color:inherit;text-wrap:balance}
    .entry-point .copy p{margin-bottom:var(--space-md);text-wrap:pretty}
    .entry-point .editorial-link{margin-top:0;min-height:var(--space-lg)}
    .entry-point .editorial-link:focus-visible{outline:2px solid currentColor;outline-offset:var(--space-xs)}
    #about .editorial-link:hover,#about .editorial-link:focus-visible{color:var(--color-accent-volvo-ink)}
    #ai-builds .editorial-link:hover,#ai-builds .editorial-link:focus-visible{color:var(--color-text-inverse)}
    .entry-point.dark .section-title,.entry-point.dark .editorial-link{color:var(--color-text-inverse)}
    .entry-point.dark .editorial-link:hover,.entry-point.dark .editorial-link:focus-visible{color:var(--color-accent-volvo)}
    .chapter-list{padding-bottom:var(--space-section-wide)}.chapter{--accent:var(--color-accent-volvo);padding:70px 0 110px;border-top:1px solid var(--color-border)}.chapter.spotify{--accent:var(--color-accent-spotify)}.chapter.nike{--accent:var(--color-accent-nike)}.chapter-head{display:flex;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.chapter-head .eyebrow:first-child{color:var(--accent)}.art{position:relative;isolation:isolate;min-height:clamp(380px,60vw,670px);overflow:hidden;border-radius:var(--radius-media);background:#26241f;box-shadow:0 24px 70px #17161221}.art:after{content:'';position:absolute;inset:0;z-index:4;border:1px solid #ffffff26;border-radius:inherit}.art-label{position:absolute;z-index:5;right:22px;bottom:18px;color:#ffffffa0;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.art-volvo{background:linear-gradient(145deg,#f6ad2d,#d96114)}.road{position:absolute;width:112%;height:36%;left:-6%;bottom:-12%;background:#161616;transform:rotate(-5deg);border-radius:50% 50% 0 0}.screen{position:absolute;z-index:2;width:min(42%,330px);aspect-ratio:.54;left:50%;top:48%;transform:translate(-50%,-50%) rotate(5deg);border:9px solid #181818;border-radius:48px;background:#f1eee6;box-shadow:0 28px 50px #0005}.screen:before{content:'VOLVO';position:absolute;top:8%;left:10%;font:600 12px var(--font-display);letter-spacing:.16em}.screen:after{content:'Ready when you are';position:absolute;left:10%;right:10%;bottom:12%;font:500 clamp(18px,2.6vw,30px) var(--font-display);line-height:1}.orbit{position:absolute;border:1px solid #ffffff73;border-radius:50%}.o1{width:60%;aspect-ratio:1;right:-12%;top:-34%}.o2{width:40%;aspect-ratio:1;left:-8%;bottom:-18%}.art-spotify{background:#0d2518}.wave{position:absolute;inset:auto -10% 16%;height:54%;background:var(--color-accent-spotify);border-radius:50% 45% 0 0;transform:rotate(-7deg)}.album{position:absolute;z-index:2;width:30%;aspect-ratio:1;left:14%;top:15%;background:linear-gradient(135deg,#f6a62d 0 50%,#d84e27 50%);box-shadow:30px 30px 0 #ffffff14;transform:rotate(-8deg)}.player{position:absolute;z-index:3;width:43%;right:8%;bottom:12%;padding:24px;border-radius:24px;background:#f2efe8;box-shadow:0 24px 50px #0005}.player small{display:block;letter-spacing:.1em;text-transform:uppercase}.player strong{display:block;margin-top:30px;font:600 clamp(20px,3vw,38px) var(--font-display)}.progress{height:4px;margin-top:20px;background:#0002}.progress:before{content:'';display:block;width:64%;height:100%;background:#111}.art-nike{background:linear-gradient(145deg,#da5f27,#8e270d)}.rings{position:absolute;width:66%;aspect-ratio:1;left:17%;top:-12%;border:clamp(42px,8vw,92px) solid #fffffff0;border-radius:50%}.rings:after{content:'';position:absolute;inset:18%;border:2px solid #c4471a8c;border-radius:50%}.pace{position:absolute;z-index:3;left:8%;bottom:8%;font:700 clamp(72px,15vw,190px)/.8 var(--font-display);letter-spacing:-.08em}.chapter-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:var(--space-xl);margin-top:44px}.chapter-title{margin:0;color:var(--accent);font-size:clamp(56px,8vw,104px);font-weight:600;line-height:.87}.chapter-copy .lead{margin:0 0 26px;font:300 clamp(24px,3vw,38px)/1.22 var(--font-display);letter-spacing:-.03em}.chapter-copy p{max-width:680px}.chapter-copy .editorial-link:hover{color:var(--accent)}
    .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.story-card{display:flex;min-height:370px;flex-direction:column;justify-content:space-between;padding:28px;border-top:4px solid var(--color-accent-volvo);background:var(--color-surface);text-decoration:none}.story-card:hover,.story-card:focus-visible{background:var(--color-text-inverse)}.story-card h2{margin:28px 0 var(--space-sm);font:500 clamp(30px,3.4vw,46px)/1 var(--font-display);letter-spacing:-.04em}.story-card p{margin:0;color:var(--color-text-muted)}.story-card .arrow{align-self:flex-end;margin-top:28px;font-size:26px;transition:transform var(--transition-link)}.story-card:hover .arrow{transform:translateX(5px)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:var(--space-lg);background:var(--color-border)}.stat{min-height:180px;padding:28px;background:var(--color-bg)}.stat strong{display:block;color:var(--color-accent-volvo);font:700 clamp(38px,5vw,64px)/1 var(--font-display)}.stat span{display:block;max-width:220px;margin-top:12px;color:var(--color-text-muted);font-size:13px}.dark .stats{background:#ffffff24}.dark .stat{background:var(--color-text)}
    .media{min-height:clamp(340px,55vw,650px);display:grid;place-items:center;padding:28px;overflow:hidden;border-radius:var(--radius-media);background:linear-gradient(140deg,#dcd6ca,#f7f3eb);border:1px solid var(--color-border);text-align:center}.media.dark-media{color:var(--color-text-inverse);background:linear-gradient(145deg,#25231d,#111)}.media.amber{background:linear-gradient(145deg,#f6b13d,#d96817)}.media-copy{max-width:430px}.media-copy strong{display:block;font:500 clamp(28px,4vw,48px)/1.05 var(--font-display);letter-spacing:-.035em}.media-copy span{display:block;margin-top:14px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.62}.caption{max-width:760px;margin:14px 0 0;color:var(--color-text-muted);font-size:12px}.dark .caption{color:var(--color-text-muted-inverse)}.contents{position:sticky;top:94px}.contents ul{margin:20px 0 0;padding:0;list-style:none;border-top:1px solid var(--color-border)}.contents a{display:block;padding:12px 0;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:12px;text-decoration:none}.contents a:hover,.contents a:focus-visible{color:var(--color-text)}.quote{max-width:900px;margin:0;font:300 clamp(30px,5vw,60px)/1.08 var(--font-display);letter-spacing:-.04em}.quote strong{color:var(--color-accent-volvo);font-weight:500}.attribution{padding:28px;border-left:3px solid var(--color-accent-volvo);background:rgba(255,255,255,.36)}.attribution h3{margin:0 0 12px;font:500 20px var(--font-display)}.attribution p{margin:0;color:var(--color-text-muted)}.next-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--color-border)}.next-link{min-height:250px;padding:34px;background:var(--color-surface);text-decoration:none}.next-link:hover{background:var(--color-text-inverse)}.next-link span{display:block;color:var(--color-text-muted);font-size:var(--type-label-size);text-transform:uppercase;letter-spacing:.1em}.next-link strong{display:block;max-width:470px;margin-top:46px;font:500 clamp(28px,4vw,48px)/1.05 var(--font-display);letter-spacing:-.04em}
    .build-list{border-top:1px solid var(--color-text)}.build-row{display:grid;grid-template-columns:70px 1fr minmax(130px,auto);gap:28px;padding:30px 0;border-bottom:1px solid var(--color-border)}.build-row h3{margin:0;font:500 clamp(24px,3vw,36px)/1.1 var(--font-display);letter-spacing:-.035em}.build-row p{max-width:680px;margin:10px 0 0;color:var(--color-text-muted)}.build-status{color:var(--color-text-muted);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:.09em;text-transform:uppercase}.principles{border-top:1px solid var(--color-border)}.principle{display:grid;grid-template-columns:60px 1fr;gap:var(--space-md);padding:30px 0;border-bottom:1px solid var(--color-border)}.principle b{color:var(--color-accent-volvo);font:500 24px var(--font-display)}.principle h3{margin:0 0 var(--space-xs);font:500 clamp(22px,3vw,34px) var(--font-display);letter-spacing:-.025em}.principle p{max-width:680px;margin:0;color:var(--color-text-muted)}.dark .principles,.dark .principle{border-color:#ffffff24}.dark .principle p{color:var(--color-text-muted-inverse)}.contact{padding:100px 0 42px;color:var(--color-text-inverse);background:var(--color-text)}.contact h2{max-width:930px;margin:20px 0 var(--space-lg);font-size:clamp(48px,8vw,102px);font-weight:600;line-height:.9}.contact h2 span{color:var(--color-accent-volvo)}.contact-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);padding-top:26px;border-top:1px solid #ffffff28}.contact-links{display:flex;flex-wrap:wrap}.contact-links a{padding:0 14px;border-left:1px solid #ffffff3d;text-decoration:none;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.contact-links a:first-child{padding-left:0;border-left:0}.contact-links a:hover{color:var(--color-accent-volvo)}.copyright{color:#ffffff73;font-size:12px}.noscript{margin:100px auto 0;padding:var(--space-sm);background:var(--color-text-inverse);color:#111;text-align:center}
    @media(max-width:960px){:root{--page-gutter:16px;--space-section:68px}.nav{padding-inline:var(--page-gutter)}.nav-list{display:none;position:absolute;top:100%;left:0;right:0;padding:10px var(--space-sm) var(--space-sm);border-top:1px solid var(--color-border);background:rgba(255,255,255,.96);box-shadow:0 18px 36px rgba(23,22,18,.1)}.nav.open .nav-list{display:grid}.menu{display:block}.hero{min-height:560px;min-height:clamp(560px,78svh,760px)}.hero-inner{padding:clamp(108px,16svh,144px) 0 clamp(44px,8svh,72px)}.hero-bottom,.two-col,.chapter-grid{grid-template-columns:1fr;gap:30px}.home-intro,.section{padding:var(--space-section) 0}.chapter{padding:52px 0 78px}.art{min-height:430px}.screen{width:56%}.album{width:42%}.player{width:68%}.cards,.stats{grid-template-columns:1fr}.story-card{min-height:300px}.contents{position:static}.build-row{grid-template-columns:44px 1fr}.build-status{grid-column:2}.next-grid{grid-template-columns:1fr}.route-head{padding:126px 0 54px}.route-title{font-size:clamp(48px,15vw,76px)}.metadata span{margin-bottom:var(--space-xs)}.contact{padding-top:76px}}
    @media(max-width:600px){.hero{min-height:500px;min-height:clamp(500px,72svh,620px)}.hero-inner{padding:clamp(96px,14svh,124px) 0 clamp(36px,6svh,52px)}.hero-intro{font-size:clamp(20px,5vw,23px);line-height:1.2;letter-spacing:-.025em}.art{min-height:clamp(340px,112vw,430px)}}
    @media(min-width:961px) and (max-height:720px){.hero{min-height:560px;min-height:clamp(560px,100svh,720px)}.hero-inner{padding:110px 0 56px}.hero-intro{font-size:clamp(30px,4vw,46px)}}
    .chapter-title + .meta{display:block;margin-top:var(--space-md)}.video-media{min-height:0;aspect-ratio:16/9;padding:0;background:#000}.video-media iframe{width:100%;height:100%;border:0}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.editorial-link,.editorial-link span,.story-card .arrow{transition:none}}
    .accent-volvo{color:var(--color-accent-volvo)}.accent-volvo-ink{color:var(--color-accent-volvo-ink)}.accent-spotify{color:var(--color-accent-spotify)}.accent-spotify-ink{color:var(--color-accent-spotify-ink)}.accent-nike{color:var(--color-accent-nike)}
    .story-card.spotify{border-color:var(--color-accent-spotify)}.story-card.neutral{border-color:var(--color-border)}
    .nike-carousel{background:var(--color-text-inverse)}.nike-carousel:after{pointer-events:none}.nike-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .65s ease,visibility .65s}.nike-slide.is-active{opacity:1;visibility:visible}.nike-slide img{width:100%;height:100%;object-fit:contain}.nike-slide img.nike-slide-tall{object-fit:cover;object-position:center top}.nike-carousel:has(.nike-controls:not([hidden])) .nike-slide{bottom:60px}.nike-controls{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);z-index:6;display:flex;align-items:center;background:rgba(255,255,255,.2);max-width:100%;color:#111}.nike-controls[hidden]{display:none}.nike-controls button{border:0;background:transparent;color:inherit;min-width:44px;min-height:44px;padding:var(--space-xs);font:500 12px var(--font-body);cursor:pointer}.nike-controls button:focus-visible{outline:2px solid var(--color-accent-nike);outline-offset:-3px}.nike-dots{display:flex}.nike-dots button{min-width:28px;padding:6px}.nike-dots span{display:block;width:6px;height:6px;border-radius:50%;background:#999;margin:auto}.nike-dots [aria-current=true] span{background:var(--color-accent-nike);transform:scale(1.4)}.nike-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
    @media(prefers-reduced-motion:reduce){.nike-slide{transition:none}}

    .nike-slide:has(.nike-composition){container-type:size;display:grid;place-items:center;background:#b3d492}
    .nike-composition{position:relative;overflow:hidden;width:min(100cqw,var(--composition-width));aspect-ratio:var(--composition-ratio);flex:none}
    .nike-composition img.nike-framed-image{display:block;width:100%;height:auto;object-fit:initial}
    .nike-slide:has(.nike-composition-commerce){background:#eda88a}

    /* Keep the original hero dimensions; frame the portrait around the face. */
    .hero-shader{background-position:58% 25%;transform:scale(1.2);transform-origin:58% 25%}

    /* Editorial case study: shared tokens, scoped composition. */
    .case-study .eyebrow,.case-study .crumbs,.case-study .next-link span{text-transform:none;letter-spacing:0}
    .case-study .route-title{max-width:1100px;font-size:clamp(44px,7.5vw,96px);line-height:1.02;text-wrap:balance;margin-block:var(--space-md) var(--space-lg)}
    .case-study .route-lede{max-width:800px;line-height:1.35}
    .case-study .case-dates{margin-bottom:var(--space-md)}
    .case-study .stats.case-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
    .case-study .case-overview-stats strong{color:var(--color-text)}
    .case-study .case-overview-stats .stat span{color:var(--color-text);max-width:34ch}
    @media(max-width:600px){.case-study .stats.case-overview-stats{grid-template-columns:1fr}}
    .case-study .hero-note{max-width:68ch;margin:var(--space-md) 0 0;color:var(--color-text-muted-inverse)}
    .case-study .section{padding-block:var(--space-lg)}
    .case-study .section-title{font-size:clamp(32px,4.5vw,56px);text-wrap:balance;margin-bottom:var(--space-md);line-height:1.1}
    .case-study .copy{max-width:66ch}.case-study .copy p{margin-bottom:var(--space-md)}
    .case-study .copy p:last-child{margin-bottom:0}.case-study .copy li+li{margin-top:var(--space-xs)}
    .case-study .copy ul{padding-left:var(--space-md);margin-block:var(--space-md)}
    .case-study .contents{position:static}.case-study .contents ul{display:flex;flex-wrap:wrap;gap:0 var(--space-md);margin-top:var(--space-md)}
    .case-study .contents a{padding-block:var(--space-sm);color:var(--color-text);font-size:14px;border:0}
    .case-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md) var(--space-lg);margin:0}
    .case-facts div{border-top:1px solid var(--color-border);padding-top:var(--space-sm)}
    .case-facts dt{font-weight:600}.case-facts dd{margin:var(--space-xs) 0 0}.case-facts .case-wide{grid-column:1/-1}
    .case-study .chapter-index{color:var(--color-accent-volvo-ink)}
    .case-study .change{margin-top:var(--space-lg);padding-left:var(--space-md);border-left:2px solid var(--color-accent-volvo-ink)}
    .case-study h3{font:500 22px/1.3 var(--font-display),sans-serif;margin:0 0 var(--space-sm)}
    .case-study .stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-block:var(--space-lg) var(--space-md)}
    .case-study .stat{min-height:0;padding:var(--space-md)}.case-study .stat span{color:var(--color-text-muted-inverse);font-size:14px;max-width:25ch}
    .case-study .stat strong{font-size:clamp(38px,4.5vw,60px)}
    .case-study .evidence-note{max-width:74ch;color:var(--color-text-muted-inverse);margin:var(--space-md) 0 0}
    .case-study figure{margin:var(--space-lg) auto 0;max-width:960px}
    .case-study .case-media{aspect-ratio:16/9;min-height:0;background:var(--color-surface);padding:var(--space-md)}
    .case-study .case-media .media-copy span{text-transform:none;letter-spacing:0;opacity:1;color:var(--color-text-muted)}
    .case-study .case-media img{width:100%;height:100%;object-fit:contain}.case-study .case-media:has(img){padding:0}
    .case-study [tabindex="-1"]:focus{outline:none}
    .case-study a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
    @media(max-width:960px){.case-study .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study .two-col{gap:var(--space-md)}}
    @media(max-width:600px){.case-facts{grid-template-columns:1fr}.case-study .case-media{aspect-ratio:4/3}.case-study .stat{padding:var(--space-sm)}.case-study .stats{gap:1px}.case-study .route-title{font-size:clamp(40px,10vw,60px)}}

    /* Story galleries share R/GA controls; every slide owns its image and caption. */
    .case-carousel{position:relative;container-type:inline-size;margin:var(--space-lg) auto 0;max-width:960px;color:var(--color-text)}
    .case-study .case-carousel figure{position:relative;inset:auto;margin:0;max-width:none;display:none;opacity:1;visibility:visible}
    .case-study .case-carousel figure.is-active{display:block}
    .case-image-slot{aspect-ratio:16/9;border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);text-align:center;overflow:hidden}
    .case-image-slot span{font-size:12px}.case-image-slot strong{font:500 clamp(24px,4vw,40px)/1.1 var(--font-display),sans-serif}
    .case-image-slot:has(img){padding:0}.case-image-slot img{display:block;width:100%;height:100%;object-fit:contain}
    .case-carousel figcaption{margin-top:var(--space-sm);font-size:12px;text-align:center;color:var(--color-text)}
    .dark .case-carousel figcaption{color:var(--color-text-muted-inverse)}
    .case-carousel .nike-dots [aria-current=true] span{background:var(--color-accent-volvo-ink)}
    .case-carousel .nike-controls{top:calc(100cqw * 9 / 16 - 52px);bottom:auto}
    .case-carousel .nike-controls button:focus-visible{outline-color:var(--color-accent-volvo-ink)}
    @media(max-width:600px){.case-image-slot{aspect-ratio:4/3}.case-carousel .nike-controls{top:calc(100cqw * 3 / 4 - 52px)}}

    .case-study .contents{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}
    .case-study .contents ul{border-top:0;margin-top:var(--space-xs);gap:var(--space-xs) var(--space-md)}
    .case-study .contents a{display:inline-flex;align-items:baseline;gap:var(--space-xs);min-height:44px;padding-block:var(--space-xs);color:var(--color-accent-volvo-ink)}
    .case-study .contents a span:first-child{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
    .case-study .contents a:hover,.case-study .contents a:focus-visible{color:var(--color-text)}

/* Approved September 2026 direction: company index and editorial stories. */
:root{--color-work:#000;--color-story-label:#ffe000;--color-contact:#ffa600;--radius-media:0px;--type-label-size:12px;--content-max:1280px;--page-gutter:48px}
html{background:var(--color-work)}
body{line-height:1.65}
.shell{width:min(var(--content-max),calc(100% - 2 * var(--page-gutter)))}
.nav{min-height:58px;padding-inline:20px}.nav-list a{min-height:44px;display:flex;align-items:center}.nav-list a:hover,.nav-list a[aria-current=page]{color:var(--color-accent-volvo-ink)}
a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.hero{min-height:0;display:block;padding-top:58px;background:#111}
.hero-shader{transform:none;background-position:center 35%;filter:grayscale(1)}
.hero:after{background:linear-gradient(90deg,rgba(0,0,0,.6),rgba(0,0,0,.22)),linear-gradient(0deg,rgba(0,0,0,.45),transparent 80%)}
.hero-inner{padding:clamp(180px,23vw,330px) 0 72px}
.hero-intro{max-width:960px;font-size:clamp(30px,3.65vw,52px);font-weight:500;line-height:1.15;text-wrap:pretty}
.hero-impact{position:relative;z-index:2;background:rgba(0,0,0,.6);padding:64px 0}
.impact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.impact-item strong{display:block;font:600 clamp(30px,3.8vw,56px)/1.1 var(--font-display),sans-serif;letter-spacing:-.035em}
.impact-item span{display:block;margin-top:var(--highlight-copy-gap);font-size:14px;line-height:1.5;max-width:28ch;color:inherit;opacity:.78}
.chapter-list{padding:0;background:var(--color-work);color:#fff}
.company{scroll-margin-top:58px}
.wide-media{width:100%;aspect-ratio:16/9;overflow:hidden;background:#dceaf0}
.wide-media img{display:block;width:100%;height:100%;object-fit:cover}
.company-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:72px;padding-block:88px 104px}
.company-title{margin:0;font:500 clamp(52px,7.3vw,104px)/1 var(--font-display),sans-serif;letter-spacing:-.055em}
.company-dates{margin:24px 0 0;color:#bdbdbd;font-size:14px}
.work-story{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:24px 0;border-bottom:1px solid #ffffff65;text-decoration:none}
.work-story:first-child{padding-top:0}
.work-story strong{display:block;font:500 clamp(24px,2.6vw,36px)/1.22 var(--font-display),sans-serif;letter-spacing:-.035em}
.work-story small{display:block;color:var(--color-story-label);margin-top:20px;font-size:16px;line-height:1.4}
:root{--navigation-arrow-size:16px}
.work-story>.story-arrow{align-self:flex-end}.story-arrow{font-size:var(--navigation-arrow-size);transition:transform .2s;flex:none}
.work-story:hover .story-arrow{transform:translateX(6px)}.work-story:hover strong{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.company>.nike-carousel{border-radius:0;box-shadow:none;min-height:0;height:auto;aspect-ratio:16/9}.company>.art:after{display:none}
.route-head{padding:160px 0 80px;background:var(--color-text);color:#fff}
.back-link{display:inline-flex;align-items:center;justify-content:center;width:56px;min-height:56px;font:400 var(--navigation-arrow-size)/1 var(--font-body),sans-serif;text-decoration:none;margin-bottom:40px}
.route-title,.case-study .route-title{font-size:clamp(42px,5.7vw,82px);line-height:1.12;max-width:1080px;letter-spacing:-.055em;text-wrap:pretty;margin:0 0 72px}
.route-head .eyebrow{color:var(--color-story-label)}
.case-study .hero-note{font-size:14px;line-height:1.55;max-width:1100px;margin-top:32px;color:#bdbdb9}
.narrative-panel{background:var(--color-bg);padding:96px 0}
.narrative-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.85fr);gap:88px;align-items:start}

.narrative-grid .copy{max-width:850px}
.case-study .section-title{font:300 clamp(32px,3.5vw,50px)/1.12 var(--font-display),sans-serif;letter-spacing:-.045em;margin:0 0 24px;text-wrap:pretty}
.supporting-evidence{display:grid;gap:32px}.supporting-evidence .impact-item strong{font-size:clamp(28px,3.5vw,48px);font-weight:300}
.supporting-evidence .impact-item span{opacity:1;color:#53534c}
.related-stories{padding:80px 0;background:#000;color:#fff}.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.related-grid .work-story{padding-top:0}.related-grid .work-story strong{font-size:clamp(24px,2.5vw,34px)}
.contact{background:var(--color-contact);color:#171612;padding:100px 0 96px}.contact h2{color:#171612;font-size:clamp(56px,7vw,104px);line-height:1;margin:0 0 48px}.contact-row{border-color:#17161250}.contact-links a{font-size:14px;min-height:44px;display:flex;align-items:center;border-color:#17161250}.contact-links a:hover{color:#171612;text-decoration:underline}.copyright{color:#433009}
.next-grid{background:#000;color:#fff;padding:48px max(var(--page-gutter),calc((100% - var(--content-max))/2));gap:32px}.next-link{background:#000;min-height:0;padding:24px 0;border-bottom:1px solid #ffffff65}.next-link:hover{background:#000}.next-link strong{font-size:32px;margin-top:24px}.next-link span{color:var(--color-story-label)}
.media{border-radius:0}.entry-point .section-title{font-size:clamp(34px,4vw,56px);font-weight:500}#talks{background:#000}
.route-head .metadata span{font-size:13px}.route-head .accent-volvo-ink{color:var(--color-story-label)}
@media(max-width:960px){:root{--page-gutter:32px}.hero-inner{padding:220px 0 56px}.hero-intro{max-width:700px;font-size:clamp(30px,4.5vw,44px)}.hero-impact{padding:40px 0}.impact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.company-grid{grid-template-columns:1fr;gap:32px;padding-block:48px}.company-title{font-size:clamp(48px,7vw,72px)}.narrative-grid{gap:40px;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.route-head{padding:126px 0 64px}.route-title,.case-study .route-title{margin-bottom:48px}.narrative-panel{padding:64px 0}.next-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){:root{--page-gutter:24px}.nav{padding-inline:16px}.brand{font-size:14px}.hero-inner{padding:var(--space-md) 0 40px}.hero-shader{background-position:62% top}.hero:after{background:linear-gradient(0deg,rgba(0,0,0,.85),rgba(0,0,0,.3))}.hero-intro{font-size:28px;line-height:1.19}.hero .eyebrow{font-size:12px}.hero-impact{padding:32px 0}.impact-grid{gap:28px 20px}.impact-item strong{font-size:32px}.impact-item span{font-size:13px}.company-grid{grid-template-columns:1fr;gap:36px;padding-block:48px 64px}.company-title{font-size:56px}.company-dates{margin-top:16px}.wide-media,.company>.nike-carousel{aspect-ratio:4/3}.work-story strong{font-size:26px}.work-story small{font-size:14px;margin-top:14px}.route-title,.case-study .route-title{font-size:42px;line-height:1.08}.back-link{margin-bottom:32px}.narrative-grid,.related-grid,.next-grid{grid-template-columns:1fr;gap:32px}.narrative-panel{padding:48px 0}.supporting-evidence{padding-top:24px;border-top:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.supporting-evidence .impact-item strong{font-size:30px}.related-stories{padding:48px 0}.related-grid .work-story{padding-top:0}.contact{padding:64px 0}.contact h2{font-size:58px}.contact-row{gap:20px}.copyright{margin:0}.route-head .metadata{gap:12px}.route-head .metadata span{border:0;padding:0}.section-title{overflow-wrap:break-word}}
@media(max-width:359px){:root{--page-gutter:20px}.hero-intro{font-size:26px}.impact-grid{grid-template-columns:1fr}.route-title,.case-study .route-title{font-size:38px}.company-title{font-size:48px}.supporting-evidence{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Route focus moves the reading position without a decorative heading outline. */
[data-view] h1[tabindex="-1"]:focus{outline:none}

/* One chapter pairs full-width media with its narrative; all work stories share it. */
.story-chapter{margin:0;padding:0}
.story-media img{width:100%;height:100%;object-fit:cover}
.story-media.project-media{background:#f4f1eb}
.story-media.project-media img{object-fit:contain}
.story-video{aspect-ratio:16/9;background:#000}
.story-video iframe{display:block;width:100%;height:100%;border:0}
.story-facts .impact-item strong{font-size:clamp(26px,3.2vw,46px);overflow-wrap:break-word}
.story-anchor{display:block;height:0;scroll-margin-top:68px}
@media(max-width:600px){.story-facts .impact-item strong{font-size:28px}.story-video{aspect-ratio:16/9}}

/* The highlight layout responds to its own available width, not the navigation breakpoint. */
.nike-static{background:#fff}.nike-static img{display:block;width:100%;height:100%;object-fit:contain}
.hero-impact{container:career-band / inline-size}
.career-highlights{grid-template-columns:minmax(0,1fr);column-gap:32px;row-gap:24px}
.career-highlights .impact-item{display:grid;grid-template-rows:subgrid;grid-row:span 2;row-gap:var(--highlight-copy-gap);min-width:0;align-content:start;text-align:left}
.career-highlights .impact-item strong{font-size:clamp(1.75rem,2.2cqw,1.875rem);line-height:1.15;align-self:start;text-wrap:balance}
.career-highlights .impact-item span{margin-top:0;max-width:38ch;align-self:start;text-wrap:pretty}
@container career-band (min-width:42rem){.career-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container career-band (min-width:84rem){
  .career-highlights{grid-template-columns:repeat(4,minmax(0,1fr))}
  .career-highlights .impact-item strong{font-size:1.5rem;white-space:normal;text-wrap:balance}
}

/* Shared typography roles across every portfolio view. */
:root{--tracking-display:-.025em;--tracking-heading:-.015em;--weight-heading:500;--heading-leading:1.12;--copy-measure:68ch}

[data-view] :is(h1,h2,h3,.work-story strong,.impact-item strong,.route-lede,.lead,.quote){font-kerning:normal;font-variant-ligatures:common-ligatures;word-spacing:normal}
[data-view] :is(.hero-intro,.route-title,.company-title),.contact h2{letter-spacing:var(--tracking-display)}
[data-view] :is(.section-title,.work-story strong,.impact-item strong,.build-row h3,.principle h3,.route-lede,.lead,.quote){letter-spacing:var(--tracking-heading)}
[data-view] .section-title{font-weight:var(--weight-heading);line-height:var(--heading-leading)}
[data-view] :is(.build-row h3,.principle h3){font-weight:var(--weight-heading)}
[data-view] .supporting-evidence .impact-item strong{font-weight:500}
[data-view] .copy{max-width:min(100%,var(--copy-measure))}
[data-view] .copy p{text-wrap:pretty}
[data-view] .copy p+p{margin-top:24px}
[data-view] :is(.narrative-grid,.two-col,.related-grid)>*{min-width:0}

/* Story opening facts adapt independently from numeric metrics and navigation. */
.route-head{container:story-opening / inline-size}
.route-head .impact-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;row-gap:24px}
.route-head .impact-item{display:grid;grid-template-rows:subgrid;grid-row:span 2;row-gap:var(--highlight-copy-gap);min-width:0;align-content:start}
.route-head .impact-item span{margin-top:0;align-self:start}
.route-head .impact-item strong{align-self:start}
.route-head .story-facts{grid-template-columns:minmax(0,1fr)}
.route-head .story-facts .impact-item strong{font-size:clamp(1.75rem,2.2cqw,1.875rem);overflow-wrap:normal;text-wrap:balance}
@container story-opening (min-width:42rem){.route-head .story-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container story-opening (min-width:66rem){.route-head .impact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.route-head .story-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container story-opening (max-width:23rem){.route-head .impact-grid{grid-template-columns:minmax(0,1fr)}}

/* Repeatable presentation notes accompany each Volvo narrative section. */
.talking-points ul{list-style:none;margin:0;padding:0;display:grid;gap:24px}
.talking-points li{margin:0;padding:0}
[data-view] .talking-points h3{font:500 clamp(22px,2vw,28px)/1.2 var(--font-display),sans-serif;letter-spacing:var(--tracking-heading);font-kerning:normal;margin:0 0 8px;text-wrap:pretty}
.talking-points p{font-size:14px;line-height:1.55;color:#53534c;margin:0;max-width:36ch;text-wrap:pretty}
@media(max-width:600px){.talking-points{border-top:1px solid var(--color-border);padding-top:24px}.talking-points p{max-width:none}}

/* Volvo opening: highlighted attribution and matching home arrow typography. */
#app-glance .hero-note,#premium-glance .hero-note{color:#e6c037}
#app-glance .back-link{font-family:var(--font-body),sans-serif}

/* Text-only chapters retain a clear boundary until project imagery is added. */
.company + .company{border-top:1px solid #ffffff40}
.story-chapter + .story-chapter{border-top:1px solid var(--color-border)}

/* Volvo App hero: image and overlay share the existing responsive opening. */
#app-glance{--case-hero-image:url("images/volvo-app-in-use.jpg")}
#innovation-glance{--case-hero-image:url("images/volvo-innovation-unknowns.jpg")}
#premium-glance{--case-hero-image:url("images/spotify-premium-hero.jpg")}
#app-glance,#innovation-glance,#premium-glance{
  background-image:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.6)),var(--case-hero-image);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* Preserve the complete Spotify campaign screenshot at every width. */
#company-spotify .spotify-static{aspect-ratio:1807/965}
#company-spotify .spotify-static img{object-fit:contain}

/* Homepage phone typography and portrait breathing room. */
@media(max-width:600px){
  .nav .brand>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .hero .hero-inner{min-height:calc(100svh - 58px);display:flex;flex-direction:column;padding-top:24px;padding-bottom:48px;gap:96px}
  .hero .hero-bottom{margin-top:auto}
  .hero .hero-intro{font-size:20px;margin-top:0;width:100%;max-width:415px}
  .career-highlights .impact-item strong{font-size:24px}
}
#company-spotify .spotify-static img{content:url("images/spotify-premium-website-2015-top.jpg")}

/* Decorative Paper image over the AI section’s red surface. */
#ai-builds{position:relative;isolation:isolate}
#ai-builds::before{content:"";position:absolute;inset:0;z-index:-1;background:url("images/ai-builds-overlay.png") center / cover no-repeat;opacity:.5;pointer-events:none}

#about{background-image:url("images/about-background.png");background-position:center;background-size:cover;background-repeat:no-repeat}

.contact-heading{display:flex;align-items:stretch;gap:24px;margin-bottom:48px}
.contact-heading h2{margin:0;min-width:0}
.contact-signature{position:relative;flex:none;width:clamp(56px,7vw,104px);overflow:hidden}
.contact-signature img{position:absolute;width:252.4%;height:147.1%;max-width:none;left:-76.4%;top:-23.4%}


@media(max-width:600px){.contact-signature{width:120px}}

/* Company dates sit across the media edge and settles as it enters view. */
.company .company-date-marker{position:relative;height:0;z-index:1;margin-left:var(--page-gutter)}
.company .company-date-marker .company-dates{position:absolute;left:0;bottom:-18px;margin:0;color:white;font:300 clamp(24px,3vw,36px)/1 Inter,sans-serif;white-space:nowrap;transform-origin:left bottom;transform:translateY(var(--date-shift,0px)) rotate(-90deg) translateY(100%)}

@media(max-width:600px){.hero .hero-inner>.eyebrow{display:none}}

/* Wide openings balance portrait space against the available screen height. */
@media(min-width:961px){
  .hero{min-height:100svh;display:flex;flex-direction:column;align-items:stretch}
  .hero-inner{padding-top:clamp(48px,10svh,160px);padding-bottom:32px;flex:1;display:flex;flex-direction:column;justify-content:flex-end}
  .hero-intro{font-size:clamp(30px,4.6svh,52px);max-width:1080px}
  .hero-impact{padding:24px 0 48px}
}

/* Shared typography: Archivo for hierarchy and labels, Inter for reading. */
body{font-optical-sizing:auto}
:is(h1,h2,h3,h4,h5,h6,.eyebrow,.meta,.metadata,.nav-list,.menu,.editorial-link,.contact-links,.build-status,.impact-item strong){font-family:var(--font-display),sans-serif}
:is(.copy p,.route-lede,.lead,.quote){font-family:var(--font-body)}

.company .company-date-marker .company-dates{font-family:var(--font-display),sans-serif;font-weight:300}
/* Invert the Spotify date over the light banner, matching its company mark. */
#company-spotify .company-dates{mix-blend-mode:difference}
:is(.talking-points p,.impact-item span,.hero-note,.scope-note){font-family:var(--font-body);font-weight:400}
:is(.work-story small,.company-dates,.crumbs,.postures,.next-link span,.nike-controls button){font-family:var(--font-display),sans-serif}
[data-view] .copy p,[data-view] .talking-points p,[data-view] .impact-item span{font-family:var(--font-body)}

.hero-shader{background-image:url("images/optimised/home-portrait-monochrome.webp");background-position:center;filter:none}
.hero:after{background:rgba(0,0,0,.5)}
@media(min-width:961px){
  .hero:after{background:rgba(0,0,0,.6)}
  .hero-impact{background:rgba(0,0,0,.9)}
}

/* Keep the speaker visible as the hero changes shape. */
.hero-shader{background-size:auto 135%;background-position:right 62%}
@media(max-width:960px){.hero-shader{background-size:cover;background-position:68% 60%}}
@media(max-width:600px){.hero-shader{height:100svh;bottom:auto;background-size:cover;background-position:68% 60%}}

/* Preserve the complete team photograph at every width. */
.story-media.team-photo{aspect-ratio:3/2}
.story-media.team-photo img{object-fit:contain}

.story-media.quality-slide{aspect-ratio:1934/1080;background:#fff}
.story-media.quality-slide img{object-fit:contain}

.story-media.journey-map{aspect-ratio:7146/2578;background:#fff}
.story-media.journey-map img{object-fit:contain}

.story-media.ex90-screens{aspect-ratio:16/9;background:#f4f4f4}
.story-media.ex90-screens img{object-fit:contain}

.story-media.vision-image{aspect-ratio:16/9}
.story-media.vision-image img{object-fit:contain}

.story-media.mobile-core-poster{aspect-ratio:5652/4198;background:#fafafa}

.story-media.vision-video{aspect-ratio:auto;background:#000}
.vision-video video{display:block;width:100%;height:auto;max-width:100%}

/* Reusable evidence placeholders for case studies awaiting final media. */
.media-placeholder{margin:0;display:grid;place-items:center;aspect-ratio:16/9;min-height:240px;padding:var(--page-gutter);background:var(--color-surface);border-block:1px solid var(--color-border);text-align:center}
.media-placeholder figcaption{max-width:var(--content-max)}
.media-placeholder figcaption>p{font-family:var(--font-display);margin:0}
.media-placeholder .eyebrow{color:var(--color-text-muted)}
.story-reflection .narrative-panel{background:var(--color-surface)}
.placeholder-comparison{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);text-align:left;margin-top:var(--space-md)}
.placeholder-comparison h3{font-family:var(--font-display)}
@media(max-width:600px){.placeholder-comparison{grid-template-columns:1fr}.media-placeholder{aspect-ratio:auto;min-height:240px}}

.route-head .copy + .story-facts{margin-top:var(--space-xl)}

/* Keep the delivery-box interaction in focus as the hero crops on narrow screens. */
#innovation-glance{background-position:82% center}

.story-media.innovation-slide{aspect-ratio:16/9;background:#fff}

.story-media.innovation-playbook-map{aspect-ratio:3244/1232;background:#fff}

.story-media.innovation-electrification{aspect-ratio:5863/3302;background:#fff}

/* Four story highlights share one row when the opening has enough space. */
@container story-opening (min-width:66rem){.route-head .story-facts:has(> .impact-item:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Return to the story entry below the fixed navigation. */
[id^="return-"]{scroll-margin-top:100px}


.story-media.innovation-superpowers{aspect-ratio:2848/1524;background:#fff}

.story-media.innovation-service-concept{aspect-ratio:16/9;background:var(--color-bg)}

/* Preserve the complete proportions of source work in case-study media. */
.story-media.natural-media{aspect-ratio:auto}
.story-media.natural-media img{display:block;height:auto}

#definitions-glance{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("images/optimised/experience-strategy-mountain-v2.webp");background-size:cover;background-position:center;background-repeat:no-repeat}

/* One introductory text role for case-study heroes. */
.case-study > .route-head > .shell > .copy > p{font-size:clamp(16px,calc(12px + .833333vw),20px);font-weight:500;line-height:1.5}

#premium-glance{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),var(--case-hero-image)}

/* Captions belong to the light story surface, separate from dark hero notes. */
.case-study .story-caption{margin:0;padding:var(--space-sm) 0 var(--space-md);max-width:68ch;font-size:14px;line-height:1.55;color:#53534c}
/* Standalone chapter titles use the grid gap, without adding a second margin. */
.case-study .narrative-grid > .section-title,
.case-study .narrative-grid > :first-child > .section-title:last-child{margin-bottom:0}
@media(max-width:600px){
  .case-study .narrative-grid:has(> .section-title),
  .case-study .narrative-grid:has(> :first-child > .section-title:last-child){row-gap:var(--space-md)}
}
/* Chapter labels sit consistently above their headings, even inside copy blocks. */
.case-study .narrative-panel .eyebrow:has(+ .section-title){margin:0 0 var(--space-xs)}

/* Nike+ follows the shared image-led case opening. */
[data-view="nike-fuelband"] > .route-head{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("images/nike/nike-move-archive-2.png");background-size:cover;background-position:center;background-repeat:no-repeat}

[data-view="nike-brand"] > .route-head{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("images/nike-brand-hero.png");background-size:cover;background-position:center;background-repeat:no-repeat}

[data-view="nike-com"] > .route-head{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("images/nike/one-overview.png");background-size:cover;background-position:center;background-repeat:no-repeat}

/* Closing statements share the editorial heading scale. */
.case-study .story-takeaway{font:500 clamp(32px,3.5vw,50px)/1.12 var(--font-display),sans-serif;letter-spacing:var(--tracking-heading);text-wrap:pretty;margin:0;max-width:32ch}
.case-study .story-takeaway + .story-takeaway{margin-top:var(--space-md)}

.case-study .narrative-panel.orbit-takeaway{position:relative;isolation:isolate;overflow:hidden;background:#000;color:#fff}
.takeaway-orbit{position:absolute;inset:0;z-index:-2;background:#000;pointer-events:none}
.orbit-takeaway::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.4);pointer-events:none}

/* Takeaway module: full content width, with page-owned shader colors. */
.case-study .orbit-takeaway > .shell.copy{max-width:var(--content-max)}
.case-study .orbit-takeaway .story-takeaway{max-width:none}
.orbit-takeaway{--takeaway-dot-1:#FFC96B;--takeaway-dot-2:#CE9400;--takeaway-dot-3:#3E390E;--takeaway-dot-4:#421100;--takeaway-dot-5:#1A0000}
[data-view="volvo-ux-innovation"] .orbit-takeaway{--takeaway-dot-1:#8DB2DF;--takeaway-dot-2:#D1EB38;--takeaway-dot-3:#537CAD;--takeaway-dot-4:#566323;--takeaway-dot-5:#182536}
[data-view="spotify-premium"] .orbit-takeaway{--takeaway-dot-1:#1DB954;--takeaway-dot-2:#C9FF68;--takeaway-dot-3:#4260CD;--takeaway-dot-4:#D75CA0;--takeaway-dot-5:#102A1C}
[data-view="volvo-principal"] .orbit-takeaway{--takeaway-dot-1:#A4B7CC;--takeaway-dot-2:#D1CF87;--takeaway-dot-3:#122CEC;--takeaway-dot-4:#4E5966;--takeaway-dot-5:#252729}
[data-view="nike-com"] .orbit-takeaway{--takeaway-dot-1:#EDA88A;--takeaway-dot-2:#C4471A;--takeaway-dot-3:#B3D492;--takeaway-dot-4:#664334;--takeaway-dot-5:#241913}
[data-view="nike-brand"] .orbit-takeaway{--takeaway-dot-1:#98CEDA;--takeaway-dot-2:#1988B6;--takeaway-dot-3:#D7E9EC;--takeaway-dot-4:#315E71;--takeaway-dot-5:#13242C}
[data-view="nike-fuelband"] .orbit-takeaway{--takeaway-dot-1:#00A8E5;--takeaway-dot-2:#B4EA00;--takeaway-dot-3:#FF582C;--takeaway-dot-4:#145793;--takeaway-dot-5:#071D35}

/* Shared conclusion composition, including endings with an introductory title. */
.case-study .orbit-takeaway > .shell{max-width:var(--content-max)}
.case-study .orbit-takeaway .narrative-grid{display:block}
.case-study .orbit-takeaway .copy{max-width:none}
.case-study .orbit-takeaway .section-title{margin-bottom:var(--space-md)}
.case-study .orbit-takeaway .eyebrow{color:var(--takeaway-dot-1)}

/* An introductory paragraph needs its own rhythm before the hero metrics. */
#premium-glance .route-title{margin-bottom:var(--space-md)}
#premium-glance .copy + .impact-grid{margin-top:var(--space-md)}
#premium-glance .copy p{font-kerning:normal;font-variant-ligatures:common-ligatures;letter-spacing:normal;word-spacing:normal}

#premium-glance .copy{color:var(--color-text-inverse)}

/* The Team Has Changed: editorial artifacts and the approved comparison table. */
#ai-builds .team-entry + .ai-experiment-entry{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid currentColor}
.team-case h3{font:500 clamp(20px,2vw,28px)/1.3 var(--font-display);margin:var(--space-md) 0}
.team-case em{font-style:normal;font-weight:600}
.team-case .route-head .copy{color:#fff;margin-bottom:var(--space-xl)}
.team-case .team-quote{margin:0;padding:var(--space-md) 0;border-top:1px solid var(--color-border);font:500 clamp(24px,3vw,34px)/1.3 var(--font-display)}
.team-case .team-quote p{margin:0}
.team-case .team-placeholder{margin:0;padding:var(--space-xl) 0;min-height:280px;display:flex;align-items:center;background:var(--color-text);color:var(--color-text-inverse);border-block:1px dashed var(--color-story-label)}
.team-placeholder .eyebrow{color:var(--color-story-label)}
.team-placeholder figcaption{max-width:68ch;overflow-wrap:anywhere}
.team-case .team-comparison{width:100%;overflow-x:auto}
.team-case .shell:has(.team-comparison)>.copy{max-width:none}
.team-comparison table{width:100%;border-collapse:collapse;text-align:left;font:inherit}
.team-comparison th,.team-comparison td{width:50%;padding:var(--space-md);vertical-align:top;border-bottom:1px solid var(--color-border);font-weight:400;min-width:0}
.team-comparison thead th{background:var(--color-text);color:var(--color-story-label);font-family:var(--font-display);font-weight:500}
.team-comparison th:first-child,.team-comparison td:first-child{padding-left:0}
.team-comparison thead th:first-child{padding-left:var(--space-md)}

/* Team case-study hero follows the shared image-led opening treatment. */
[data-view="the-team-has-changed"] > .route-head{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("images/optimised/team-agent-network-hero.webp");background-size:cover;background-position:center;background-repeat:no-repeat}

/* Navigation monogram shares the existing home link. */
.nav .brand{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.nav .brand-icon{display:block;width:36px;height:36px;object-fit:contain;flex:none}

/* Logos share the date offset, outside its rotated stacking context so blending reaches the photograph. */
#company-volvo{--mark-width:64px;--mark-height:36px}
#company-spotify{--mark-width:36px;--mark-height:36px}
#company-nike{--mark-width:64px;--mark-height:48px}
.company .company-date-marker{z-index:auto}
:is(#company-volvo,#company-spotify,#company-nike) .company-dates{display:flex;align-items:center;gap:16px}
.company-logo-space{display:block;flex:none;width:var(--mark-width);height:var(--mark-height)}
.company-date-marker>img{position:absolute;z-index:1;display:block;width:var(--mark-width);height:var(--mark-height);left:calc((max(var(--mark-height),clamp(24px,3vw,36px)) - var(--mark-width))/2);bottom:calc(-18px + (var(--mark-width) - var(--mark-height))/2);margin:0;opacity:1;transform:translateY(var(--date-shift,0px));mix-blend-mode:difference;pointer-events:none}


/* Shared three-column comparison; each row stacks at the narrative breakpoint. */
.team-case .team-comparison-copy{max-width:none}
.team-comparison-head,.team-editorial-comparison>li{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(0,1.2fr);gap:40px}
.team-comparison-head{margin-top:var(--space-lg);padding-bottom:var(--space-sm)}
.team-editorial-comparison{list-style:none;margin:0 0 var(--space-xl);padding:0}
.team-editorial-comparison>li{padding:var(--space-md) 0;border-top:1px solid var(--color-border)}
.team-case .team-editorial-comparison h3{font:500 clamp(24px,2.4vw,32px)/1.12 var(--font-display),sans-serif;letter-spacing:-.035em;margin:0 0 var(--space-sm)}
.team-editorial-comparison p:last-child{max-width:48ch;margin-bottom:0}
.team-state-icons{display:flex;align-items:center;gap:var(--space-sm);height:32px}
.team-state-icons img{display:block;height:32px;width:auto}
.team-column-label,.team-state-icons.team-column-label{display:none}
.team-case .team-comparison-conclusion{font:500 clamp(28px,3.5vw,44px)/1.12 var(--font-display),sans-serif;letter-spacing:-.035em}
.team-case .team-comparison-conclusion strong{font:inherit;letter-spacing:inherit}
@media(max-width:960px){
 .team-comparison-head{display:none}
 .team-editorial-comparison{margin-top:var(--space-lg)}
 .team-editorial-comparison>li{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
 .team-editorial-comparison .team-column-label{display:block;margin:0 0 12px}
 .team-editorial-comparison .team-state-icons.team-column-label{display:flex;margin-bottom:var(--space-sm)}
 .team-editorial-comparison p:last-child{max-width:none}
}
@media(max-width:600px){.team-case .team-comparison-conclusion{font-size:28px}}

#talks{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("images/conference-talks-background.webp");background-position:center;background-size:cover;background-repeat:no-repeat}

.talk-recordings{display:grid;gap:var(--space-lg);margin-top:var(--space-lg)}
.talk-recording{margin:0}
.talk-player{width:100%;aspect-ratio:16/9;background:#000}
.talk-player iframe{display:block;width:100%;height:100%;border:0}
.talk-recording figcaption{padding-top:var(--space-sm);font-size:14px}

/* About photographs supplied for the header and personal background. */
[data-view="about"] > .about-photo-head{background-image:linear-gradient(rgba(0,0,0,.65),rgba(0,0,0,.65)),url("images/about-ramen-talk.jpg");background-size:cover;background-position:center;background-repeat:no-repeat}
[data-view="about"] > .about-photo-head .route-lede{color:#fff}
.about-portrait{margin-top:48px}
.about-portrait img{display:block;width:100%;height:auto}
:root{--motion-fast:180ms;--motion-medium:560ms;--motion-slow:760ms;--ease-editorial:cubic-bezier(.22,.61,.36,1);--ease-settle:cubic-bezier(.16,1,.3,1);--motion-distance:16px}

html[data-motion="enabled"] [data-reveal]{opacity:0;transform:translateY(var(--motion-distance));transition:opacity var(--motion-medium) var(--ease-editorial),transform var(--motion-slow) var(--ease-settle);will-change:opacity,transform}
html[data-motion="enabled"] [data-reveal].is-revealed{opacity:1;transform:none;will-change:auto}
html[data-motion="enabled"] [data-reveal] [data-reveal-step]{opacity:0;transform:translateY(8px);transition:opacity var(--motion-medium) var(--ease-editorial),transform var(--motion-medium) var(--ease-settle);transition-delay:calc(var(--motion-stagger,0) * 1ms)}
html[data-motion="enabled"] [data-reveal].is-revealed [data-reveal-step]{opacity:1;transform:none}
html[data-motion="enabled"] .motion-media{overflow:hidden}
html[data-motion="enabled"] .motion-media img{transform:scale(1.03);transition:transform var(--motion-slow) var(--ease-settle);will-change:transform}
html[data-motion="enabled"] .motion-media.is-revealed img{transform:scale(1);will-change:auto}
.work-story,.editorial-link,.nav-list a,.contact-links a{transition:color var(--motion-fast) var(--ease-editorial),text-decoration-color var(--motion-fast) var(--ease-editorial)}
.work-story .story-arrow{transition:transform var(--motion-fast) var(--ease-settle)}
.work-story:hover .story-arrow,.work-story:focus-visible .story-arrow{transform:translateX(5px)}
@media(prefers-reduced-motion:reduce){html[data-motion="enabled"] [data-reveal],html[data-motion="enabled"] [data-reveal] [data-reveal-step],html[data-motion="enabled"] .motion-media img{opacity:1;transform:none;transition:none}}
/* First paint matches the enhanced portrait, without flashing fallback copy. */
.hero-booting [data-view="home"]>.hero{height:100svh;min-height:100svh}
.hero-booting [data-view="home"]>.hero .hero-inner,
.hero-booting [data-view="home"]>.hero .hero-impact,
.hero-booting [data-view="home"]>.hero:after{visibility:hidden}
.hero-booting [data-view="home"]>.hero .hero-shader{background:linear-gradient(90deg,#000 40%,rgba(0,0,0,.92) 54%,rgba(0,0,0,.38) 72%,rgba(0,0,0,0) 92%),url("images/optimised/home-portrait-monochrome.webp") right 62% / auto 150% no-repeat,#000;-webkit-mask-image:linear-gradient(90deg,transparent 36%,#000 62%);mask-image:linear-gradient(90deg,transparent 36%,#000 62%)}
@media(max-width:600px){.hero-booting [data-view="home"]>.hero .hero-shader{background:linear-gradient(0deg,#000 0%,rgba(0,0,0,.6) 32%,rgba(0,0,0,.25) 68%,rgba(0,0,0,.35)),url("images/optimised/home-portrait-monochrome.webp") 64% 58% / cover no-repeat,#000}}
/* Responsive story: native scrolling, timed arrivals and quiet holds. */
.hero-story-skip{position:absolute;right:16px;bottom:24px;z-index:5;color:inherit;font:400 12px/1.5 var(--font-body),sans-serif;text-decoration:underline;text-underline-offset:4px;opacity:.7}
.hero-story-skip:hover,.hero-story-skip:focus-visible{opacity:1}
.hero-story{display:none}
.has-hero-story>.hero{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.has-hero-story>.hero-story{display:block;position:relative;height:680svh}
.hero-story-stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;background:#000;color:var(--color-text-inverse);transition:background-color 550ms ease,color 550ms ease}
.hero-story-photo{position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(90deg,rgba(0,0,0,.5) 40%,rgba(0,0,0,.42) 54%,rgba(0,0,0,0) 92%),url("images/optimised/home-portrait-monochrome.webp") right 62% / auto 150% no-repeat,#000;-webkit-mask-image:linear-gradient(90deg,transparent 36%,#000 62%);mask-image:linear-gradient(90deg,transparent 36%,#000 62%);opacity:.12;transition:opacity 800ms ease;pointer-events:none}
.hero-story-introduction-photo{position:absolute;inset:-6%;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(90deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.14) 42%,rgba(0,0,0,0) 78%),url("images/hero-introduction-speaking.jpg") 70% 44% / cover no-repeat;opacity:0;transform:translate3d(0,12%,0) scale(1.06);transition:opacity 680ms ease,transform 1100ms cubic-bezier(.16,1,.3,1);pointer-events:none;will-change:transform,opacity}
.hero-story-drive-direction-photo{position:absolute;inset:-6%;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(90deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.14) 42%,rgba(0,0,0,0) 78%),url("images/hero-drive-direction.jpg") 56% center / cover no-repeat;opacity:0;transform:translate3d(0,12%,0) scale(1.06);transition:opacity 680ms ease,transform 1100ms cubic-bezier(.16,1,.3,1);pointer-events:none;will-change:transform,opacity}
.hero-story-build-teams-photo{position:absolute;inset:-6%;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(90deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.12) 42%,rgba(0,0,0,0) 78%),url("images/hero-build-teams-leaders.jpg") 56% center / cover no-repeat;opacity:0;transform:translate3d(0,12%,0) scale(1.06);transition:opacity 680ms ease,transform 1100ms cubic-bezier(.16,1,.3,1);pointer-events:none;will-change:transform,opacity}
.hero-story-connect-design-photo{position:absolute;inset:-6%;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(90deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.12) 42%,rgba(0,0,0,0) 78%),url("images/hero-connect-design.jpg") 56% center / cover no-repeat;opacity:0;transform:translate3d(0,12%,0) scale(1.06);transition:opacity 680ms ease,transform 1100ms cubic-bezier(.16,1,.3,1);pointer-events:none;will-change:transform,opacity}
.hero-story-eye-on-craft-photo{position:absolute;inset:-6%;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(90deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.12) 42%,rgba(0,0,0,0) 78%),url("images/hero-eye-on-craft.jpg") 60% center / cover no-repeat;opacity:0;transform:translate3d(0,12%,0) scale(1.06);transition:opacity 680ms ease,transform 1100ms cubic-bezier(.16,1,.3,1);pointer-events:none;will-change:transform,opacity}
.hero-story-photo,.hero-story-introduction-photo,.hero-story-drive-direction-photo,.hero-story-build-teams-photo,.hero-story-connect-design-photo,.hero-story-eye-on-craft-photo{filter:saturate(.2)}
.hero-story-stage[data-chapter="0"] .hero-story-photo{opacity:1;animation:portrait-settle 1200ms ease-out both}
.hero-story-stage[data-chapter="1"] .hero-story-photo{opacity:0}
.hero-story-stage[data-chapter="1"] .hero-story-introduction-photo{opacity:1;transform:translate3d(0,var(--introduction-parallax,0px),0) scale(1.06)}
.hero-story-stage[data-chapter="2"] .hero-story-drive-direction-photo{opacity:1;transform:translate3d(0,var(--drive-direction-parallax,0px),0) scale(1.06)}
.hero-story-stage[data-chapter="3"] .hero-story-build-teams-photo{opacity:1;transform:translate3d(0,var(--build-teams-parallax,0px),0) scale(1.06)}
.hero-story-stage[data-chapter="4"] .hero-story-connect-design-photo{opacity:1;transform:translate3d(0,var(--connect-design-parallax,0px),0) scale(1.06)}
.hero-story-stage[data-chapter="5"] .hero-story-eye-on-craft-photo{opacity:1;transform:translate3d(0,var(--eye-on-craft-parallax,0px),0) scale(1.06)}
@keyframes portrait-settle{from{filter:brightness(1.6) saturate(.2)}to{filter:brightness(1) saturate(.2)}}
.hero-story-panel{position:absolute;inset:0;display:flex;align-items:center;gap:clamp(32px,5vw,80px);padding:100px 64px 64px 0;visibility:hidden;opacity:0;pointer-events:none}
.hero-story-panel.is-active{visibility:visible;opacity:1}
.hero-story-panel.is-transitioning{visibility:visible;opacity:1;pointer-events:none}
.hero-story-panel.is-active.is-leaving .hero-story-title,.hero-story-panel.is-active.is-leaving .hero-story-detail,.hero-story-panel.is-active.is-leaving .hero-story-marker{animation:story-depart 420ms cubic-bezier(.4,0,.6,1) both}
.hero-story-panel.is-active.is-leaving .hero-story-icon,.hero-story-panel.is-active.is-leaving .hero-story-logo{animation:story-depart 440ms 180ms cubic-bezier(.4,0,.6,1) both}
@keyframes story-depart{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(calc(var(--exit-direction,-1) * clamp(24px,4svh,40px)))}}
.hero-story-copy{flex:1;min-width:0}
.hero-story-title{max-width:1000px;font-family:var(--font-display),sans-serif;font-weight:500;font-size:clamp(36px,4.4vw,64px);line-height:1.14;letter-spacing:var(--tracking-display);text-wrap:balance}
.hero-story-title,.hero-story-detail,.hero-story-marker,.hero-story-icon{opacity:0;transform:translateY(14px)}
.is-active .hero-story-title{animation:story-arrive 720ms 180ms cubic-bezier(.16,1,.3,1) both}
.is-active .hero-story-detail{animation:story-arrive 650ms 390ms cubic-bezier(.16,1,.3,1) both}
.is-active .hero-story-marker{animation:story-arrive 500ms 650ms cubic-bezier(.16,1,.3,1) both}
.is-active .hero-story-icon{animation:story-arrive 750ms 300ms cubic-bezier(.16,1,.3,1) both}
@keyframes story-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.hero-story-logo{display:block;width:clamp(140px,24svh,260px);color:var(--color-story-label);margin-bottom:clamp(16px,3svh,32px)}
.hero-story-logo>svg{display:block;width:100%;overflow:visible}
.arrival .hero-story-copy{container-type:inline-size}
.arrival .hero-story-title{max-width:none;letter-spacing:var(--tracking-display);line-height:1.02;font-size:clamp(48px,7vw,112px)}
.arrival .hero-story-title span{display:block;white-space:nowrap}
.arrival-name{font-size:10.2cqw}
.arrival-role{font-family:var(--font-body);font-weight:200;font-size:4.1cqw;margin-top:.12em;color:var(--color-story-label)}
.arrival.is-active .hero-story-title{animation:none;opacity:1;transform:none}
.arrival.is-active .hero-story-logo{animation:story-arrive 900ms 450ms cubic-bezier(.16,1,.3,1) both}
.arrival.is-active .arrival-name{animation:story-arrive 800ms 1900ms cubic-bezier(.16,1,.3,1) both}
.arrival .hero-story-title .arrival-word{display:inline-block}
.arrival.is-active .arrival-word{animation:story-arrive 650ms calc(2450ms + var(--word-index) * 350ms) cubic-bezier(.16,1,.3,1) both}
.hero-story-logo{position:relative}
.monogram-band{transform-origin:384px 384px}
.is-active .monogram-band-r{animation:monogram-turn-r 1500ms 450ms cubic-bezier(.22,1,.36,1) both}
.is-active .monogram-band-s{animation:monogram-turn-s 1500ms 450ms cubic-bezier(.22,1,.36,1) both}
@keyframes monogram-turn-r{from{opacity:0;transform:rotate(28deg)}25%{opacity:1}to{opacity:1;transform:rotate(0)}}
@keyframes monogram-turn-s{from{opacity:0;transform:rotate(-28deg)}25%{opacity:1}to{opacity:1;transform:rotate(0)}}
.is-active .monogram-orbits{animation:monogram-orbit 1450ms 500ms ease-out both;transform-origin:100px 100px}
@keyframes monogram-orbit{from{opacity:0;transform:rotate(-12deg)}to{opacity:.65;transform:rotate(0)}}
.is-active .monogram-nodes{animation:sigil-illuminate 500ms 1450ms ease both}
.leadership .hero-story-title{font-size:clamp(42px,5vw,76px);max-width:900px}
.hero-story-detail{max-width:42ch;font:400 clamp(18px,1.65vw,24px)/1.5 var(--font-body);margin:24px 0 0;text-wrap:pretty}
.hero-story-brands{display:flex;align-items:center;gap:26px;margin-top:42px;opacity:0;transform:translateY(14px)}
.hero-story-brands img{display:block;width:54px;height:54px;object-fit:contain;opacity:1}
.hero-story-brands img:first-child{transform:scale(1.85)}
.is-active .hero-story-brands{animation:story-arrive 600ms 520ms cubic-bezier(.16,1,.3,1) both}
.hero-story-marker{font:500 12px var(--font-display);letter-spacing:.15em;margin:28px 0 0;color:var(--color-story-label)}
.hero-story-icon{width:clamp(130px,17vw,240px);flex:none;color:var(--color-story-label)}
.hero-story-icon svg{display:block;width:100%;overflow:visible}
.hero-story-icon.icon-1 [fill="var(--color-surface)"]{fill:#000}
.hero-story-stage.is-final-chapter{background:var(--color-work)}
.hero-story-stage.is-final-chapter .hero-story-photo{opacity:.25}
.hero-story-indicator{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:grid;z-index:3}
.hero-story-indicator[hidden]{display:none}
.hero-story-indicator button{display:grid;place-items:center;width:44px;height:24px;padding:0;border:0;background:none;color:inherit;cursor:pointer}
.hero-story-indicator button::before{content:"";width:6px;height:6px;border:1px solid currentColor;border-radius:8px;transition:height 300ms ease,background 300ms ease}
.hero-story-indicator button[aria-current]::before{height:16px;background:currentColor}
/* Chapter ornaments: one illuminated gesture, then stillness. No perpetual loops. */
.hero-story-icon .sigil-lit{filter:drop-shadow(0 0 1px currentColor)}
.hero-story-icon .north-needle{transform-origin:60px 60px}
.is-active .north-needle{animation:find-north 2400ms 450ms cubic-bezier(.22,1,.36,1) both}
@keyframes find-north{0%{transform:rotate(-65deg)}35%{transform:rotate(24deg)}65%{transform:rotate(-9deg)}85%{transform:rotate(2deg)}100%{transform:rotate(0)}}
.is-active .north-star{animation:sigil-illuminate 1200ms 2150ms ease both}
@keyframes sigil-illuminate{0%{opacity:.35;filter:drop-shadow(0 0 0 currentColor)}50%{opacity:1;filter:drop-shadow(0 0 3px currentColor)}100%{opacity:1;filter:drop-shadow(0 0 1px currentColor)}}
.is-active .sigil-petal{animation:petal-connect 1100ms calc(400ms + var(--petal)*110ms) ease both}
@keyframes petal-connect{from{opacity:0}to{opacity:.65}}
.sigil-link,.diamond-facets,.craft-hands path{stroke-dasharray:1;stroke-dashoffset:0}
.is-active .sigil-link{animation:sigil-draw 1600ms 650ms ease both}
.is-active .sigil-node{animation:sigil-illuminate 850ms calc(650ms + var(--node)*160ms) ease both}
.is-active .team-core{animation:sigil-illuminate 1000ms 1800ms ease both}
@keyframes sigil-draw{from{stroke-dashoffset:1;opacity:.2}to{stroke-dashoffset:0;opacity:1}}
/* Matching cubic segments preserve a continuous outline from heart to diamond.
   Browsers without CSS path interpolation retain the final diamond SVG path. */
.is-active .heart-diamond{animation:heart-to-diamond 2800ms 500ms cubic-bezier(.65,0,.25,1) both}
@keyframes heart-to-diamond{
  0%,30%{d:path('M60 43 C42 9 10 34 28 60 C36 72 50 84 60 96 C70 84 84 72 92 60 C110 34 78 9 60 43Z')}
  85%,100%{d:path('M60 26 C50 37 36 50 28 60 C36 69 50 84 60 96 C70 84 84 69 92 60 C84 50 70 37 60 26Z')}
}
.is-active .diamond-facets{animation:sigil-draw 1000ms 2300ms ease both}
.is-active .value-sparks{animation:sigil-illuminate 1000ms 2600ms ease both}
.is-active .craft-hands path{animation:sigil-draw 1700ms 450ms ease both}
.hero-story-icon .craft-eye{transform-origin:60px 70px}
.is-active .craft-eye{animation:craft-attention 1600ms 650ms cubic-bezier(.16,1,.3,1) both}
@keyframes craft-attention{0%{transform:scaleY(.1);opacity:0}100%{transform:scaleY(1);opacity:1}}
.is-active .craft-pupil{animation:craft-focus 1700ms 750ms ease both}
@keyframes craft-focus{0%,30%{transform:translateX(-3px)}65%{transform:translateX(2px)}100%{transform:translateX(0)}}
@media(max-height:740px){.hero-story-panel{padding-top:92px;padding-bottom:40px}.leadership .hero-story-title{font-size:clamp(40px,4.4vw,62px)}.hero-story-detail{font-size:18px}}
/* Tablets retain the side-by-side story; touch targets grow without spreading the dots. */
@media(max-width:960px){
  .has-hero-story>.hero-story{height:580svh}
  .hero-story-panel{gap:28px;padding-right:40px}
  .hero-story-title{font-size:clamp(32px,5vw,48px)}
  .leadership .hero-story-title{font-size:clamp(34px,5vw,48px)}
  .hero-story-icon{width:clamp(110px,18vw,170px)}
  .hero-story-indicator{right:4px}
  .hero-story-skip{right:4px}
}
/* Phones: one vertical composition, compact controls below navigation at the upper right. */
@media(max-width:600px){
  .has-hero-story{overflow-x:clip}
  .has-hero-story>.hero-story{height:540svh}
  .hero-story-panel{flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;padding:96px 0 calc(76px + env(safe-area-inset-bottom,0px))}
  .hero-story-copy{flex:0 0 auto;width:100%}
  .hero-story-title{font-size:clamp(28px,7.6vw,44px);line-height:1.16}
  .leadership .hero-story-title{font-size:clamp(30px,8.2vw,44px);line-height:1.08}
  .hero-story-detail{font-size:clamp(16px,4.2vw,19px);line-height:1.45;margin-top:16px;max-width:34ch}
  .proposition .hero-story-title{font-size:clamp(26px,6.6vw,34px);line-height:1.12}
  .proposition .hero-story-detail{max-width:1000px;margin-top:22px;font:500 clamp(22px,5.5vw,30px)/1.16 var(--font-display);letter-spacing:var(--tracking-display)}
  .hero-story-skip{right:max(12px,env(safe-area-inset-right,0px))}
  .hero-story-marker{display:none}
  .leadership.is-active{transition:none}
  .leadership.is-active .hero-story-icon{animation:story-arrive 700ms cubic-bezier(.16,1,.3,1) both}
  .leadership.is-active .hero-story-title{animation:story-arrive 720ms 220ms cubic-bezier(.16,1,.3,1) both}
  .leadership.is-active .hero-story-detail{animation:story-arrive 680ms 400ms cubic-bezier(.16,1,.3,1) both}
  .hero-story-icon{width:clamp(88px,16svh,140px)}
  .hero-story-logo{width:clamp(130px,23svh,190px);margin-bottom:28px}
  .arrival .hero-story-title{line-height:1.1}
  .hero-story-panel.arrival{padding-top:clamp(100px,13svh,140px);padding-bottom:clamp(64px,10svh,100px)}
  .arrival .hero-story-copy{height:100%;display:flex;flex-direction:column;justify-content:space-between}
  .arrival.is-active .arrival-name,.arrival.is-active .arrival-word{animation-name:mobile-title-settle}
  @keyframes mobile-title-settle{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
  .arrival-name{font-size:10.2cqw}
  .arrival-role{font-size:4.1cqw}
  .hero-story-photo{background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(0deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.1) 68%),url("images/optimised/home-portrait-monochrome.webp") 64% 58% / cover no-repeat,#000}
  .hero-story-introduction-photo{inset:-10%;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(0deg,rgba(0,0,0,.36) 0%,rgba(0,0,0,0) 48%),url("images/hero-introduction-speaking.jpg") 62% center / cover no-repeat}
  .hero-story-drive-direction-photo{inset:-10%;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(0deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,0) 48%),url("images/hero-drive-direction.jpg") 58% center / cover no-repeat}
  .hero-story-build-teams-photo{inset:-10%;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(0deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,0) 48%),url("images/hero-build-teams-leaders.jpg") 58% center / cover no-repeat}
  .hero-story-connect-design-photo{inset:-10%;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(0deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,0) 48%),url("images/hero-connect-design.jpg") 58% center / cover no-repeat}
  .hero-story-eye-on-craft-photo{inset:-10%;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),linear-gradient(0deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,0) 48%),url("images/hero-eye-on-craft.jpg") 60% center / cover no-repeat}
  .hero-story-indicator{left:auto;right:max(12px,env(safe-area-inset-right,0px));top:104px;bottom:auto;transform:none;display:grid}
  .hero-story-indicator button{width:44px;height:24px}
  .hero-story-indicator button[aria-current]::before{height:14px;width:6px}
  .hero-story-indicator{opacity:.28;transition:opacity 650ms ease}
  .is-scrolling .hero-story-indicator,.hero-story-indicator:focus-within,.hero-story-indicator:active{opacity:1;transition-duration:180ms}
  .hero-story-motion-control:not([hidden]){display:block;position:fixed;z-index:20;right:max(12px,env(safe-area-inset-right,0px));top:max(16px,env(safe-area-inset-top,0px));min-height:28px;padding:0 8px;border:1px solid color-mix(in srgb,var(--color-story-label) 60%,transparent);border-radius:999px;background:rgba(0,0,0,.56);color:var(--color-story-label);font:500 9px/1 var(--font-body);letter-spacing:.07em;text-transform:uppercase}
  .hero-story-icon{transform-style:preserve-3d;transition:transform 260ms cubic-bezier(.16,1,.3,1)}
  .hero-story-icon .north-needle,.hero-story-icon .hover-team,.hero-story-icon .craft-pupil{transition:transform 260ms cubic-bezier(.16,1,.3,1)}
  .hero-story-icon .hover-team{transform-origin:60px 60px;transform:rotate(var(--team-angle,0deg))}
  .hero-story-icon .sigil-node{transition:fill 220ms cubic-bezier(.16,1,.3,1)}
  .hero-story-icon.is-motion-active{transform:perspective(360px) rotateX(var(--motion-tilt-x,0deg)) rotateY(var(--motion-tilt-y,0deg)) scale(1.05)}
  .hero-story-icon.is-interactive .north-needle{animation:none;transform:rotate(var(--needle-angle,0deg))}
  .hero-story-icon.is-interactive .craft-pupil{animation:none;transform:translate(var(--eye-x,0px),var(--eye-y,0px))}
  .hero-story-icon.is-interactive .heart-diamond{animation:none;d:var(--heart-form);transition:d 260ms ease,filter 260ms ease}
  .hero-story-icon.is-hovered .sigil-lit{filter:drop-shadow(0 0 4px currentColor)}
}
@media(max-width:600px) and (max-height:650px){
  .hero-story-panel{gap:12px;padding-top:82px;padding-bottom:64px}
  .hero-story-icon{width:84px}
  .hero-story-logo{width:120px;margin-bottom:20px}
  .hero-story-detail{margin-top:12px;font-size:16px;line-height:1.4}
  .hero-story-marker{margin-top:12px}
}
@media(min-width:601px) and (hover:hover) and (pointer:fine){
  .nav .brand-icon{transition:transform 250ms ease,opacity 250ms ease}
  .nav .brand:hover .brand-icon,.nav .brand:focus-visible .brand-icon{transform:translateY(-2px) scale(1.06)}
  .nav .brand:active .brand-icon{transform:scale(.94);opacity:.7}
  .hero-story-panel.is-active .hero-story-icon{pointer-events:auto}
  .hero-story-icon .north-needle,.hero-story-icon .hover-team,.hero-story-icon .craft-pupil{transition:transform 500ms cubic-bezier(.16,1,.3,1)}
  .hero-story-icon .hover-team{transform-origin:60px 60px;transform:rotate(var(--team-angle,0deg))}
  .hero-story-icon .sigil-node{transition:fill 400ms cubic-bezier(.16,1,.3,1)}
  .hero-story-icon.is-interactive .north-needle{animation:none;transform:rotate(var(--needle-angle,0deg))}
  .hero-story-icon.is-interactive .craft-pupil{animation:none;transform:translate(var(--eye-x,0px),var(--eye-y,0px))}
  .hero-story-icon.is-interactive .heart-diamond{animation:none;d:var(--heart-form);transition:d 450ms ease,filter 450ms ease}
  .hero-story-icon.is-hovered .sigil-lit{filter:drop-shadow(0 0 2.5px currentColor)}
  .nav .brand>span{opacity:0;transform:translateX(-6px);transition:opacity 300ms ease,transform 400ms cubic-bezier(.16,1,.3,1)}
  .nav .brand:hover>span,.nav .brand:focus-visible>span{opacity:1;transform:translateX(0)}
}
.scroll-driven .hero-story-panel.is-active .hero-story-title,.scroll-driven .hero-story-panel.is-active .hero-story-detail,.scroll-driven .hero-story-panel.is-active .hero-story-brands,.scroll-driven .hero-story-panel.is-active .hero-story-marker,.scroll-driven .hero-story-panel.is-active .hero-story-icon,.scroll-driven .hero-story-panel.is-active .hero-story-logo{animation:none;opacity:var(--scroll-opacity,0);transform:translate3d(0,var(--scroll-y,16px),0);transition:none}
/* Scroll already supplies easing; a second CSS transition creates trailing
   frames that get clipped at chapter boundaries. Ornament builds run once. */
.scroll-driven .is-revisited .hero-story-icon *,.scroll-driven .is-revisited .hero-story-logo *,.scroll-driven .is-revisited .arrival-name,.scroll-driven .is-revisited .arrival-word{animation:none!important}
@media(prefers-reduced-motion:reduce){.hero-story *{animation:none!important;transition:none!important}.hero-story-icon>svg,.hero-story-logo>svg{transform:none!important}.nav .brand>span,.nav .brand-icon{transition:none;transform:none!important}}


/* Dark navigation: fade the surface, never its text or controls. */
.nav{color:var(--color-text-inverse);background:var(--color-work);border-bottom-color:rgba(255,255,255,.15)}
.nav-wrap.is-scrolled .nav{background:rgba(0,0,0,.5)}
.nav .brand-icon{filter:brightness(0) invert(1)}
.nav-list a{transition:color var(--motion-fast) var(--ease)}
.nav-list a:hover,.menu:hover{color:inherit}
.nav-list a[aria-current="page"],.nav-list a:focus-visible,.nav .brand:focus-visible,.menu:focus-visible{color:var(--color-accent-volvo)}
.nav a:focus-visible,.nav button:focus-visible{outline-color:var(--color-accent-volvo)}
@media(hover:hover) and (pointer:fine){
  .nav-list a:hover,.nav .brand:hover,.menu:hover{color:var(--color-accent-volvo)}
}
@media(max-width:960px){
  .nav-list{background:var(--color-work);border-top-color:rgba(255,255,255,.15)}
}
@media(prefers-reduced-motion:reduce){.nav,.nav-list a{transition:none}}


/* One identity mark moves between the opening and shared navigation. */
.nav{border-bottom:0}
.nav-wrap{transition:background-color 560ms var(--ease-settle)}
.nav-wrap .nav-list,.nav-wrap .menu{transition:opacity 560ms var(--ease-settle),transform 560ms var(--ease-settle),visibility 560ms}
.hero-booting .nav-wrap{visibility:hidden}
.nav-wrap[data-story-nav="arrival"] .nav,.nav-wrap[data-story-nav="logo-only"] .nav{background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav-wrap[data-story-nav="arrival"],.nav-wrap[data-story-nav="logo-only"]{pointer-events:none}
.nav-wrap[data-story-nav="arrival"] .nav-list,.nav-wrap[data-story-nav="arrival"] .menu,
.nav-wrap[data-story-nav="logo-only"] .nav-list,.nav-wrap[data-story-nav="logo-only"] .menu{opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none}
.nav-wrap .nav{transition:background-color 560ms var(--ease-settle),box-shadow 560ms var(--ease-settle)}
.nav-wrap.has-story-logo .brand{visibility:hidden}
.nav-wrap.nav-instant *{transition:none!important}
.logo-slot{aspect-ratio:1;visibility:hidden}
.story-logo-flight{position:fixed;left:0;top:0;width:200px;height:200px;z-index:51;transform-origin:0 0;color:var(--color-story-label);text-decoration:none;display:block}
.story-logo-flight[hidden]{display:none}
.story-logo-flight{transition:color 760ms var(--ease-settle)}
.story-logo-flight.is-docked{color:var(--color-text-inverse)}
.story-logo-flight.is-docked .hero-story-logo{color:var(--color-text-inverse)}
.story-logo-flight .hero-story-logo{width:200px;height:200px;margin:0;animation:none;opacity:1;transform:none}
.story-logo-flight.is-active .hero-story-logo{animation:story-arrive 900ms 450ms var(--ease-settle) both}
.story-logo-flight .monogram-orbits,.story-logo-flight .monogram-nodes{transition:opacity 560ms var(--ease-settle)}
.story-logo-flight.is-docked .monogram-orbits,.story-logo-flight.is-docked .monogram-nodes{opacity:0;animation:none}
.story-logo-flight.is-flying{pointer-events:none}
.story-logo-flight.is-docked::before{content:"";position:absolute;inset:-23px}
.story-logo-flight:focus-visible{outline:8px solid var(--color-accent-volvo);outline-offset:8px;border-radius:12px}
.story-logo-flight .hero-story-logo>svg{transform-origin:center;transition:transform 500ms var(--ease-settle)}
.story-logo-flight.can-unfurl .hero-story-logo>svg{transform:rotate(var(--logo-rotation,0deg))}
@media(hover:hover) and (pointer:fine){
  .story-logo-flight.is-docked .hero-story-logo{transition:transform 250ms var(--ease-settle)}
  .story-logo-flight.is-docked:hover .hero-story-logo{transform:translateY(-8px) scale(1.06)}
  .story-logo-flight.is-docked:active .hero-story-logo{transform:scale(.94)}
}
.hero-story-skip{display:grid;place-items:center;min-width:44px;min-height:44px;text-decoration:none;bottom:max(20px,env(safe-area-inset-bottom,0px));background:var(--color-story-label);color:#000;opacity:var(--skip-opacity,.7);transform:translateY(calc(var(--skip-progress,0) * 24px));transition:opacity 600ms var(--ease-settle),transform 600ms var(--ease-settle),visibility 0s}
.hero-story-stage:not(.has-skip-cue) .hero-story-skip{visibility:hidden;pointer-events:none}
.hero-story-skip .story-arrow{display:block;transform:rotate(90deg);line-height:1}
.hero-story-stage.has-skip-cue .hero-story-skip .story-arrow{animation:scroll-cue-bounce 900ms 500ms cubic-bezier(.16,1,.3,1) 2 both}
@keyframes scroll-cue-bounce{0%,100%{transform:rotate(90deg) translateX(0)}45%{transform:rotate(90deg) translateX(6px)}}
.hero-story-motion-control{display:none}
.hero-story-stage.is-work-visible .hero-story-skip{visibility:hidden;opacity:0;pointer-events:none;transition-delay:0s,0s,600ms}.hero-story-stage.is-work-visible .hero-story-indicator{visibility:hidden;pointer-events:none}
.has-hero-story>.hero-story{height:597.143svh}
.proposition .hero-story-copy{max-width:1000px}
.proposition .hero-story-title{color:var(--color-story-label)}
.proposition .hero-story-detail{max-width:60ch}
@media(max-width:960px){.has-hero-story>.hero-story{height:511.429svh}}
@media(max-width:600px){
  .has-hero-story>.hero-story{height:477.143svh}
  .proposition{padding-right:36px;padding-top:76px;padding-bottom:64px}
  .proposition .hero-story-title{text-wrap:pretty}
}
@media(prefers-reduced-motion:reduce){.nav-wrap,.nav-wrap *,.story-logo-flight,.story-logo-flight *{transition:none!important;animation:none!important}}


/* Supplied Alice Design / Noun Project polygon, rotated rather than redrawn. */
.story-arrow,.transit-arrow,.back-link::before{display:inline-block;width:var(--navigation-arrow-size);height:var(--navigation-arrow-size);flex:none;background:currentColor;-webkit-mask:url("images/noun-arrow.svg") center / contain no-repeat;mask:url("images/noun-arrow.svg") center / contain no-repeat;font-size:0;vertical-align:middle}
.back-link{font-size:0}
.back-link::before{content:"";transform:rotate(180deg)}
.back-link .story-arrow{display:none}
.editorial-link .transit-arrow{width:.5em;height:.5em;margin-left:.35em;font-size:inherit;background:currentColor}
.hero-story-skip .story-arrow{font-size:0}
