:root{--paper:#f8f7f4;--ink:#262624;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:12px/1.35 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{opacity:.6}a:focus-visible{outline:1px solid;outline-offset:6px}header{position:fixed;inset:0 0 auto;z-index:5;display:grid;grid-template-columns:28% 28% 28% auto;align-items:start;padding:20px 16px;background:linear-gradient(var(--paper) 60%,transparent);padding-bottom:30px;font-size:12px}header .name{text-transform:uppercase}header>span{text-align:right}.case-intro{display:grid;grid-template-columns:56% 44%;padding:60px 16px 0;gap:0}.case-title{position:sticky;top:0;height:calc(100svh - 60px);align-self:start;display:flex;flex-direction:column;justify-content:flex-end;padding:45px 35px 25px 0}h1{font-size:clamp(68px,8.2vw,145px);line-height:.92;font-weight:400;letter-spacing:-.065em;overflow-wrap:anywhere;margin:0 0 55px;max-width:100%}.metadata{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:11px;text-transform:uppercase}.metadata p{margin:0}.hero{margin:0;height:calc(100svh - 76px)}.hero img{width:100%;height:100%;object-fit:cover}.overview{padding:100px 0 120px}.overview h2{font-size:clamp(25px,2.8vw,45px);font-weight:400;line-height:1.16;letter-spacing:-.03em;margin:0 0 35px}.overview>p{font-size:18px;line-height:1.5;margin:0 0 60px;max-width:550px}dl{margin:0}dl>div{display:grid;grid-template-columns:1fr 2fr;gap:20px;padding:12px 0;border-top:1px solid #deded7}dt{color:#81817b}dd{margin:0}.work-section{padding:0 16px}.section-label{display:flex;justify-content:space-between;gap:20px;padding:25px 0 15px;text-transform:uppercase;font-size:11px}.section-label h2{font:inherit;margin:0}.section-label>span{color:#83837a}.interface{margin:0;background:#efefec;padding:8vw 7vw;display:flex;align-items:center;justify-content:center;min-height:75svh}.interface img{display:block;width:100%;max-height:100svh;object-fit:contain}.closing{display:grid;grid-template-columns:28% 44% 28%;padding:110px 16px 140px;gap:0}.closing>span{font-size:11px;text-transform:uppercase}.closing p{margin:0;padding-right:40px;font-size:20px;line-height:1.5}.closing .note{font-size:11px;color:#85857e;padding-left:30px;padding-right:0;align-self:end;max-width:290px}.next-case{display:grid;grid-template-columns:56% 44%;padding:0 16px;min-height:70svh}.next-case>div{display:flex;flex-direction:column;justify-content:flex-end;padding:50px 35px 30px 0}.next-case>div>span{text-transform:uppercase;font-size:11px}.next-case h2{font-size:clamp(50px,7vw,120px);line-height:1;font-weight:400;letter-spacing:-.06em;margin:30px 0;overflow-wrap:anywhere}.next-case h2 span{font-size:.6em}.next-case p{margin:0;font-size:11px}.next-case img{width:100%;height:70svh;object-fit:cover}footer{display:flex;justify-content:space-between;gap:20px;padding:45px 16px 22px;font-size:11px}.skip{position:fixed;top:-100px;z-index:10;background:var(--paper);padding:12px}.skip:focus{top:0}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}@media(max-width:700px){header{grid-template-columns:1fr 1fr auto;padding:20px;font-size:11px}header>span{display:none}.case-intro{grid-template-columns:1fr;padding:110px 20px 0}.case-title{position:static;height:auto;padding:40px 0}.case-title h1{font-size:clamp(60px,16vw,110px);margin-bottom:40px}.metadata{font-size:10px}.hero{height:65svh}.overview{padding:50px 0 65px}.overview>p{font-size:16px}.work-section{padding:0 20px}.interface{min-height:0;padding:35px 10px}.section-label{font-size:9px}.closing{grid-template-columns:1fr;padding:60px 20px 80px;gap:25px}.closing p{font-size:18px;padding:0}.closing .note{padding:0;max-width:none}.next-case{grid-template-columns:1fr;padding:0 20px}.next-case>div{padding:25px 0}.next-case h2{font-size:60px}.next-case img{height:55svh}footer{flex-wrap:wrap;padding:40px 20px 25px;font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.bprep-phones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4%;padding:65px 5%;background:#e7e7e2}.bprep-phones figure{margin:0;min-width:0}.bprep-phones img{display:block;width:100%;height:auto;box-shadow:0 10px 35px #00000012}.bprep-phones figcaption{padding-top:18px;color:#70706b;font-size:10px}.bprep-caption{display:grid;grid-template-columns:56% 44%;padding:80px 16px 100px}.bprep-caption>span{text-transform:uppercase;font-size:11px}.bprep-caption p{font-size:24px;line-height:1.4;margin:0;max-width:560px;letter-spacing:-.4px}.bprep-desktop{padding:6vw 8vw}.bprep-desktop img{max-height:none;height:auto}.bprep-landing-section{margin-top:100px}.bprep-landing{padding:5vw 14vw;align-items:start}.bprep-landing img{max-height:none;height:auto;width:100%}@media(max-width:700px){.bprep-phones{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 6%;padding:35px 6%}.bprep-caption{grid-template-columns:1fr;gap:25px;padding:50px 20px 65px}.bprep-caption p{font-size:20px}.bprep-desktop{padding:25px 10px}.bprep-landing{padding:20px 10px}.bprep-landing-section{margin-top:60px}}
/* Bprep: smaller interface presentations with generous surrounding space. */
.bprep-phones{grid-template-columns:repeat(4,minmax(0,200px));justify-content:center;gap:clamp(20px,3vw,48px);padding:75px 8%}.bprep-phones img{max-width:200px;margin-inline:auto}.bprep-phones figcaption{max-width:200px;margin-inline:auto}.bprep-desktop{padding:75px 8vw}.bprep-desktop img{width:min(100%,900px);margin-inline:auto}.bprep-landing{padding:75px 8vw}.bprep-landing img{width:min(100%,720px);margin-inline:auto}@media(max-width:700px){.bprep-phones{grid-template-columns:repeat(2,minmax(0,160px));gap:28px 22px;padding:40px 8%}.bprep-phones img{max-width:160px}.bprep-phones figcaption{max-width:160px}.bprep-desktop{padding:40px 9%}.bprep-landing{padding:40px 12%}}
/* Screen walkthroughs use original design exports, with explicit playback controls. */
.walkthrough{margin:0 16px 90px;background:#e9e9e3;padding:65px 7%;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.walkthrough-copy{max-width:370px}.walkthrough-kicker{font-size:10px;text-transform:uppercase;color:#77786f}.walkthrough h2{font-size:32px;font-weight:400;letter-spacing:-1px;margin:25px 0 15px}.walkthrough-copy>p{line-height:1.6;color:#66685e;font-size:13px}.walkthrough-steps{display:grid;gap:0;margin:30px 0}.walkthrough-step{font:11px/1.5 Arial,sans-serif;display:flex;gap:15px;align-items:center;padding:11px 0;border:0;border-bottom:1px solid #d2d3c9;background:none;text-align:left;color:#818277;cursor:pointer}.walkthrough-step[aria-current="step"]{color:#242720}.walkthrough-step span:first-child{font-size:9px;min-width:16px}.walkthrough-controls{display:flex;gap:24px;align-items:center;margin-top:25px}.walkthrough-controls button{font:11px Arial,sans-serif;border:0;border-bottom:1px solid #888b7c;padding:5px 0;background:none;cursor:pointer}.walkthrough-progress{height:1px;background:#c9cbbf;margin-top:25px;overflow:hidden}.walkthrough-progress>span{display:block;width:0;height:100%;background:#363c2d}.walkthrough-stage{position:relative;width:200px;aspect-ratio:390/844;justify-self:center;background:#fff;box-shadow:0 15px 45px #22281b18;overflow:hidden}.walkthrough-stage img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.walkthrough-stage .incoming{animation:screen-enter 420ms cubic-bezier(.2,.7,.2,1) both}.demo-pointer{position:absolute;z-index:2;width:17px;height:17px;border:1px solid #fff;border-radius:50%;background:#242a26aa;box-shadow:0 0 0 5px #ffffff40;opacity:0;pointer-events:none;transition:left .7s ease,top .7s ease}.demo-pointer.tap{animation:demo-tap .75s ease both}.walkthrough-note{font-size:10px!important;margin-top:25px!important;color:#888b80!important}@keyframes screen-enter{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}@keyframes demo-tap{0%{opacity:0;scale:1.2}35%{opacity:1;scale:1}65%{opacity:1;scale:.7}100%{opacity:0;scale:1.5}}@media(max-width:700px){.walkthrough{margin:0 20px 60px;grid-template-columns:1fr;padding:40px 9%;gap:35px}.walkthrough-stage{width:180px;grid-row:1}.walkthrough h2{font-size:27px}.walkthrough-steps{margin:20px 0}}@media(prefers-reduced-motion:reduce){.walkthrough-stage .incoming,.demo-pointer.tap{animation:none}.demo-pointer{transition:none}}
.case-bprep .bprep-phones img{border-radius:9.23% / 4.27%;filter:drop-shadow(0 10px 18px #00000012);box-shadow:none}.case-bprep .walkthrough:not(.walkthrough-desktop) .walkthrough-stage{border-radius:9.23% / 4.27%;background:transparent}.bprep-web-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:55px 45px;padding:65px max(5%,25px);background:#e9e9e4;margin-bottom:65px}.bprep-web-flow figure{margin:0;display:flex;flex-direction:column;align-items:center;min-width:0}.bprep-web-flow img{display:block;width:100%;max-width:580px;max-height:650px;object-fit:contain;object-position:top}.bprep-web-flow figcaption{width:100%;max-width:580px;font-size:10px;color:#74756c;padding-top:18px}.walkthrough-desktop{grid-template-columns:minmax(220px,.75fr) minmax(0,1.8fr);gap:45px}.walkthrough-desktop .walkthrough-stage{width:100%;max-width:700px;aspect-ratio:1.22;background:#f7f7f5;box-shadow:none}.walkthrough-desktop .walkthrough-stage img{object-fit:contain}.walkthrough-desktop .walkthrough-steps{margin:20px 0}.walkthrough-desktop h2{font-size:27px}.walkthrough-desktop .walkthrough-step{padding:8px 0}@media(max-width:700px){.bprep-web-flow{grid-template-columns:1fr;gap:40px;padding:35px 8%;margin-bottom:40px}.bprep-web-flow img{max-width:460px;max-height:580px}.walkthrough-desktop{grid-template-columns:1fr;gap:30px}.walkthrough-desktop .walkthrough-stage{max-width:460px}}
/* Bprep: one concise explanation and one grouped selection of key screens. */
.bprep-selected{padding:0 16px 100px}.bprep-summary{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;padding:25px 0 45px}.bprep-summary p{font-size:clamp(18px,2vw,28px);line-height:1.4;letter-spacing:-.5px;max-width:750px;margin:0}.bprep-summary a{font-size:11px;white-space:nowrap;padding-bottom:5px;border-bottom:1px solid #aaa}.bprep-key-screens{background:#e8e8e1;padding:55px 6%}.bprep-key-web{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:start}.bprep-key-screens figure{margin:0;min-width:0}.bprep-key-web img{display:block;width:100%;height:clamp(220px,31vw,460px);object-fit:contain;object-position:top}.bprep-key-screens figcaption{font-size:10px;color:#73766b;padding-top:15px}.bprep-key-mobile{display:grid;grid-template-columns:repeat(4,minmax(0,160px));justify-content:center;gap:35px;margin-top:55px}.bprep-key-mobile img{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 15px #00000010)}.bprep-selection-note{font-size:10px;color:#86877d;margin:18px 0 0}@media(max-width:700px){.bprep-selected{padding:0 20px 65px}.bprep-summary{display:block;padding:20px 0 30px}.bprep-summary p{font-size:19px;letter-spacing:-.3px}.bprep-summary a{display:inline-block;margin-top:25px}.bprep-key-screens{padding:30px 6%}.bprep-key-web{gap:20px}.bprep-key-web img{height:180px}.bprep-key-screens figcaption{font-size:9px;line-height:1.4}.bprep-key-mobile{grid-template-columns:repeat(2,minmax(0,135px));gap:28px 24px;margin-top:35px}}
.merlin-key-screens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;padding:55px 6%;background:#e8e8e1;align-items:start}.merlin-key-screens figure{margin:0;min-width:0}.merlin-screen{height:clamp(260px,33vw,480px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;background:#111}.merlin-screen img{display:block;width:100%;height:auto}.merlin-key-screens figcaption{font-size:10px;color:#73766b;padding-top:15px;display:flex;justify-content:space-between}.merlin-key-screens a:hover{opacity:1}.merlin-key-screens a:hover figcaption{color:#222}@media(max-width:700px){.merlin-key-screens{grid-template-columns:1fr;padding:30px 7%;gap:30px}.merlin-screen{height:350px}}
.windesco-key-screens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 35px;padding:50px 6%;background:#e8e8e1;align-items:start}.windesco-key-screens figure{margin:0;min-width:0}.windesco-key-screens img{display:block;width:100%;height:clamp(260px,34vw,490px);object-fit:contain;object-position:top}.windesco-key-screens figcaption{font-size:10px;color:#73766b;padding-top:15px;display:flex;justify-content:space-between}.windesco-key-screens a:hover{opacity:.8}@media(max-width:700px){.windesco-key-screens{grid-template-columns:1fr;padding:30px 7%;gap:30px}.windesco-key-screens img{height:auto;max-height:520px}}

.case-aurea .hero{background:#000}.case-aurea .hero img{object-fit:contain}.aurea-full-landing{margin:0;background:#000;padding:45px 5%;text-align:center}.aurea-full-landing img{display:block;width:100%;max-width:1120px;height:auto;margin:auto}.aurea-full-landing a:hover{opacity:1}@media(max-width:700px){.aurea-full-landing{padding:12px 0}}

.case-boxbuddy .hero{background:#f6f7f8}.case-boxbuddy .hero img{object-fit:contain}

.case-boxbuddy .hero img{object-fit:cover}

/* Project titles without the former metadata block. */
.case-title h1{margin-bottom:0}

/* Concise case-study context, separate from the title and image selection. */
.case-context{padding:0 16px 70px}.case-context>.section-label{border-top:1px solid #8884;padding-top:24px}.case-context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;padding-top:18px}.case-context h3{font-size:18px;font-weight:400;line-height:1.25;letter-spacing:-.3px;margin:0 0 16px}.case-context p{font-size:15px;line-height:1.65;margin:0;max-width:460px}.case-outcome{display:grid;grid-template-columns:1fr 2fr;gap:40px;border-top:1px solid #8884;margin-top:35px;padding-top:25px}.case-outcome p{max-width:720px}@media(max-width:700px){.case-context{padding:0 20px 40px}.case-context-grid{grid-template-columns:1fr;gap:26px}.case-context h3{margin-bottom:10px}.case-context p{font-size:15px}.case-outcome{grid-template-columns:1fr;gap:0}.case-context>.section-label{font-size:10px}.case-context>.section-label>span{display:none}}

/* Project explanation alongside the full-height cover. */
.case-title .overview{padding:30px 0 0;max-width:560px}
.case-title .overview h2{font-size:clamp(22px,2.2vw,32px);margin:0 0 18px}
.case-title .overview>p{font-size:16px;line-height:1.5;margin:0 0 24px}
.case-title .overview dl{font-size:11px}
@media(max-width:700px){.case-title .overview{padding-top:25px}.case-title .overview h2{font-size:25px}.case-title .overview>p{font-size:16px}}

/* Two highlights, pinned while vertical scrolling moves the image track. */
@media(min-width:701px){.case-intro:has(.hero-carousel){min-height:calc(100svh + var(--hero-travel,44vw));align-items:start}.case-intro:has(.hero-carousel) .case-story{position:sticky;top:60px;align-self:start}.case-intro:has(.hero-carousel) .case-title{position:sticky;top:60px}}
.hero-carousel{position:relative;overflow:hidden;background:var(--paper)}
.hero-track{display:flex;height:100%;width:100%;will-change:transform}
.hero-track>img{display:block;flex:0 0 100%;width:100%;min-width:100%;height:100%;object-fit:cover}
.hero-track>img.hero-product-screen{object-fit:contain;background:var(--paper);padding:24px}
.hero-carousel-controls{position:absolute;bottom:16px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;z-index:2;pointer-events:none}
.hero-slide-count,.hero-carousel-controls>div{background:var(--paper);color:var(--ink);padding:9px 12px;font:11px/1 Arial,Helvetica,sans-serif}
.hero-carousel-controls>div{display:flex;gap:20px;pointer-events:auto}
.hero-carousel-controls button{border:0;background:none;color:inherit;cursor:pointer;font:18px/1 Arial,Helvetica,sans-serif;padding:0}
.hero-carousel-controls button:disabled{opacity:.3;cursor:default}
@media(max-width:700px){.hero-carousel{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.hero-track>img{scroll-snap-align:start}.hero-carousel-controls{position:sticky;left:16px;bottom:16px;margin-top:-35px;width:calc(100% - 32px)}.hero-track>img.hero-product-screen{padding:14px}}

/* Clean project facts: label above value, without separators. */
.overview dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 30px}
.overview dl>div{display:flex;flex-direction:column;gap:7px;border:0;padding:0}
.overview dt{font-size:11px;line-height:1.3}
.overview dd{font-size:13px;line-height:1.5}
@media(max-width:420px){.overview dl{column-gap:20px}}

/* White stage for project highlights in either theme. */
.hero-carousel,.hero-carousel .hero-track,.hero-carousel .hero-product-screen{background:#fff}

/* Project facts belong to the detail content, below the introduction. */
.case-facts{padding:45px 16px 60px}
.case-facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 35px;margin:0}
.case-facts dl>div{display:flex;flex-direction:column;gap:9px;border:0;padding:0}
.case-facts dt{font-size:11px;line-height:1.3}
.case-facts dd{font-size:14px;line-height:1.5;margin:0}
@media(max-width:700px){.case-facts{padding:30px 20px 40px}.case-facts dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}}

/* Two reading columns: project facts on the left, narrative on the right. */
.case-detail-columns{display:grid;grid-template-columns:minmax(180px,28%) minmax(0,1fr);column-gap:7%;align-items:start;padding:65px 26px 80px}
.case-detail-columns .case-facts{padding:0;position:sticky;top:115px}
.case-detail-columns .case-facts dl{display:flex;flex-direction:column;gap:28px;max-width:280px}
.case-detail-columns .case-facts dd{font-size:14px;line-height:1.6}
.case-detail-columns .case-context{padding:0;min-width:0;max-width:850px}
.case-detail-columns .case-context>.section-label{padding:0 0 30px;border:0;display:block}
.case-detail-columns .section-label h2{font-size:clamp(24px,2.5vw,36px);line-height:1.2;text-transform:none;letter-spacing:-.6px}
.case-detail-columns .section-label>span{display:none}
.case-detail-columns .case-context-grid{display:flex;flex-direction:column;gap:30px;padding:0}
.case-detail-columns .case-context h3{font-size:17px;margin-bottom:10px}
.case-detail-columns .case-context p{font-size:16px;line-height:1.65;max-width:680px}
.case-detail-columns .case-outcome{display:block;border:0;padding:0;margin-top:30px}
@media(max-width:700px){.case-detail-columns{grid-template-columns:1fr;gap:45px;padding:35px 20px 55px}.case-detail-columns .case-facts{position:static}.case-detail-columns .case-facts dl{display:grid;grid-template-columns:1fr 1fr;max-width:none;gap:24px}.case-detail-columns .section-label h2{font-size:26px}.case-detail-columns .case-context p{font-size:15px}}

/* Reveal the actual interface over its editorial cover as the intro scrolls. */
.hero-carousel .hero-track{position:relative;display:block;transform:none!important}
.hero-carousel .hero-track>img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-carousel .hero-track::after{content:'';position:absolute;inset:0;background:#000;opacity:calc(var(--screen-reveal,0)*.25);pointer-events:none;z-index:1}
.hero-carousel .hero-track>img.hero-product-screen{position:absolute;z-index:2;inset:12% 7%;width:86%;min-width:0;height:76%;padding:0;object-fit:contain;background:transparent;opacity:0;transform:translateY(55px) scale(.88);filter:drop-shadow(0 15px 25px #0004);will-change:transform,opacity}
.hero-carousel-controls{z-index:3}
@media(max-width:700px){.hero-carousel{overflow:hidden;scroll-snap-type:none}.hero-carousel .hero-track>img.hero-product-screen{inset:14% 7%;height:72%;opacity:1;transform:none}.hero-carousel-controls{position:absolute;bottom:16px;margin:0}.hero-carousel-controls>div{display:none}}
@media(prefers-reduced-motion:reduce){.hero-carousel .hero-track>img.hero-product-screen{transform:none!important;will-change:auto}}

/* Original app screens, clipped to a phone silhouette over the cover. */
.hero-carousel .hero-track>video.hero-mobile-video{position:absolute;z-index:2;top:12%;left:50%;translate:-50% 0;width:auto;min-width:0;height:76%;max-width:84%;aspect-ratio:390/844;object-fit:cover;padding:0;background:#f6f6f3;border-radius:28px;box-shadow:0 18px 45px #0005;opacity:0;transform:translateY(55px) scale(.88);will-change:transform,opacity}
@media(max-width:700px){.hero-carousel .hero-track>video.hero-mobile-video{top:10%;height:80%;border-radius:22px}}
@media(prefers-reduced-motion:reduce){.hero-carousel .hero-track>video.hero-mobile-video{transform:none!important;will-change:auto}}

/* Landscape HMI walkthrough over the Supernova cover. */
.hero-carousel .hero-track>video.hero-hmi-video{position:absolute;z-index:2;left:12%;top:50%;translate:0 -50%;width:76%;height:auto;aspect-ratio:1000/586;object-fit:contain;background:#f1f1f1;border-radius:10px;box-shadow:0 18px 45px #0005;opacity:0;transform:translateY(55px) scale(.88);will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){.hero-carousel .hero-track>video.hero-hmi-video{transform:none!important;will-change:auto}}

/* Product screens are visible on entry, without a pinned reveal interval. */
.case-intro:has(.hero-carousel){min-height:100svh}
.hero-carousel .hero-track>.hero-product-screen{opacity:1;transform:none!important;will-change:auto}
.hero-carousel .hero-track{--screen-reveal:1}
.hero-carousel-controls[hidden]{display:none}

.hero-carousel .hero-track>video.hero-cover-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}

/* Keep cover exposure consistent during the shared-image handoff. */
.hero-carousel .hero-track::after{display:none}

.hero-carousel .hero-track>video.hero-pos-video{position:absolute;z-index:2;left:5%;top:50%;translate:0 -50%;width:90%;height:auto;aspect-ratio:1194/834;object-fit:contain;background:#fff;border-radius:12px;box-shadow:0 18px 45px #0005;opacity:1;transform:none}

.hero-carousel .hero-track>video.hero-shop-video{position:absolute;z-index:2;left:5%;top:50%;translate:0 -50%;width:90%;height:auto;aspect-ratio:1200/800;object-fit:contain;background:#fff;border-radius:10px;box-shadow:0 18px 45px #0005;opacity:1;transform:none}

/* DeVidres: the three key screens together on the existing grey stage. */
.interface.devidres-key-screens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:24px;padding:55px 4vw;min-height:0}
.devidres-key-screens figure{margin:0;min-width:0}
.devidres-key-screens a,.devidres-key-screens .devidres-product-crop{display:block;overflow:hidden;background:#fff}
.devidres-key-screens img{display:block;width:100%;height:auto;max-height:none;object-fit:initial}
.devidres-key-screens .devidres-product-crop img{width:119.31%;max-width:none}
.devidres-key-screens figcaption{margin-top:14px;font-size:12px;color:#666}
@media(max-width:700px){.interface.devidres-key-screens{grid-template-columns:1fr;gap:35px;padding:28px 20px}.devidres-key-screens figure{width:100%;max-width:440px;margin:0 auto}}

.devidres-key-screens .devidres-search-screen{grid-column:1/-1;width:100%;max-width:1000px;justify-self:center;margin-top:20px}

/* Bidirectional navigation at the end of every project. */
.case-pagination{display:flex;justify-content:space-between;gap:30px;margin:45px 16px 0;padding:28px 0;border-top:1px solid #8884}
.case-pagination a{display:flex;flex-direction:column;gap:9px;min-width:0}
.case-pagination a:last-child{text-align:right;align-items:flex-end}
.case-pagination span{font-size:12px;color:var(--ink)}
.case-pagination strong{font-size:clamp(20px,2.5vw,32px);font-weight:400;line-height:1.2;letter-spacing:-.5px}
@media(max-width:700px){.case-pagination{margin:30px 20px 0;gap:20px}.case-pagination strong{font-size:20px}.case-pagination span{font-size:11px}}

/* Explain each design decision beside its corresponding screen. */
.devidres-key-screens figcaption{margin:0 0 22px;color:var(--ink)}
.devidres-key-screens figcaption>span{font-size:11px;color:#777;text-transform:uppercase}
.devidres-key-screens figcaption h3{font-size:21px;font-weight:400;line-height:1.2;letter-spacing:-.4px;margin:10px 0 12px}
.devidres-key-screens figcaption p{font-size:14px;line-height:1.6;margin:0;max-width:550px}
.devidres-key-screens .devidres-search-screen figcaption{max-width:650px}

/* One shared row for all actions at the end of a case study. */
.case-actions{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:55px 16px 0;padding:30px 0;font-size:14px}
.case-actions a{white-space:nowrap}
@media(max-width:700px){.case-actions{margin:35px 20px 0;gap:24px;overflow-x:auto;justify-content:flex-start;padding:25px 0;font-size:12px}}

/* DeVidres editorial copy: fewer levels, shorter measures and more breathing room. */
.case-devidres .case-detail-columns{padding-top:80px;padding-bottom:85px}
.case-devidres .case-context{max-width:650px}
.case-devidres .case-context>.section-label{padding-bottom:24px}
.case-devidres .case-context p{max-width:580px;line-height:1.75}
.case-devidres .case-context p+p{margin-top:22px}
.case-devidres .case-facts dl{gap:22px}
.case-devidres .case-facts dt{font-size:11px}
.case-devidres .case-facts dd{font-size:13px;max-width:240px}
.case-devidres .devidres-key-screens{gap:40px 28px;padding-top:45px}
.case-devidres .devidres-key-screens figcaption{min-height:155px;margin-bottom:25px}
.case-devidres .devidres-key-screens figcaption h3{font-size:20px;line-height:1.3;margin:12px 0}
.case-devidres .devidres-key-screens figcaption p{font-size:13px;line-height:1.65;max-width:350px}
.case-devidres .devidres-search-screen figcaption{min-height:0;max-width:520px}
.case-devidres .devidres-search-screen figcaption p{max-width:520px}
@media(max-width:700px){.case-devidres .case-detail-columns{padding-top:40px;padding-bottom:45px}.case-devidres .devidres-key-screens figcaption{min-height:0}.case-devidres .case-context p{font-size:15px}}

.case-devidres .devidres-key-screens .devidres-brand-screen{grid-column:1/-1;width:65%;max-width:720px;justify-self:center;margin:0 0 20px}.devidres-brand-screen img{width:100%;height:auto;max-height:none}

.interface.wallbox-key-screens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;align-items:start;padding:50px 4vw;min-height:0}.wallbox-key-screens figure{margin:0;min-width:0}.wallbox-key-screens img{width:100%;height:auto;max-height:none;display:block}.wallbox-key-screens figure:last-child{grid-column:1/-1;width:calc(50% - 17.5px);justify-self:center}@media(max-width:700px){.interface.wallbox-key-screens{grid-template-columns:1fr;gap:25px;padding:30px 20px}.wallbox-key-screens figure:last-child{width:100%}}

.wallbox-key-screens figure:last-child{grid-column:auto;width:100%}.wallbox-key-screens .wallbox-metrics{max-width:210px;justify-self:center}@media(max-width:700px){.wallbox-key-screens .wallbox-metrics{max-width:230px}}

/* Concise release: a short introduction and visual evidence. */
.case-detail-columns .case-context p+p{margin-top:20px}.case-detail-columns .case-context{max-width:720px}.case-detail-columns .case-facts dl{gap:24px}

/* Six original screens per case, with short labels and no image links. */
.interface.curated-screens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 32px;align-items:start;padding:45px 4vw;min-height:0}
.curated-screens .curated-screen{margin:0;min-width:0;width:100%;grid-column:auto;max-width:none}
.curated-screens .screen-window{position:relative;display:flex;justify-content:center;overflow:hidden}
.curated-screens img{display:block;width:100%;height:auto;max-height:680px;object-fit:contain;object-position:top}
.curated-screens figcaption{margin:14px 0 0;font:12px/1.4 Arial,Helvetica,sans-serif;color:#777;min-height:0}
.curated-screens .mobile .screen-window{max-width:220px;margin:auto;border-radius:24px;overflow:hidden}
.curated-screens .mobile figcaption{text-align:center}
.curated-screens .curated-brand{grid-column:1/-1;width:65%;max-width:720px;margin:0 auto 15px}
.curated-screens .devidres-crop .screen-window{aspect-ratio:1440/2756}
.curated-screens .devidres-crop img{position:absolute;left:0;top:0;width:119.31%;max-width:none;max-height:none}
.curated-screens.mixed-screens{grid-template-columns:repeat(6,minmax(0,1fr))}
.mixed-screens .desktop{grid-column:span 3}.mixed-screens .mobile{grid-column:span 2}
.curated-screens.mobile-screens{grid-template-columns:repeat(3,minmax(0,1fr))}
.curated-screens .sheet .screen-window{aspect-ratio:1194/834;display:block;border-radius:8px}
.curated-screens .sheet img.sheet-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.curated-screens .sheet-dimmer{position:absolute;inset:0;background:#0008}
.curated-screens .sheet img.sheet-panel{position:absolute;bottom:0;left:0;width:100%;height:auto;max-height:none;border-radius:12px 12px 0 0}
@media(max-width:700px){.interface.curated-screens{grid-template-columns:1fr;gap:30px;padding:30px 20px}.curated-screens.mixed-screens{grid-template-columns:repeat(2,minmax(0,1fr))}.mixed-screens .desktop{grid-column:1/-1}.mixed-screens .mobile{grid-column:auto}.curated-screens.mobile-screens{grid-template-columns:repeat(2,minmax(0,1fr))}.curated-screens img{max-height:none}.curated-screens .mobile .screen-window{border-radius:18px}.curated-screens .curated-brand{width:85%}}

/* Consistent screen viewports: equal footprints without stretching the UI. */
.curated-screens .curated-screen .screen-window{width:100%;aspect-ratio:3/2;height:auto;align-items:flex-start;background:#fff;border-radius:8px}
.curated-screens .curated-screen .screen-window>img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:left top}
.curated-screens .curated-screen.mobile .screen-window{aspect-ratio:390/844;max-width:220px;border-radius:24px}
.curated-screens .curated-screen.devidres-crop .screen-window{aspect-ratio:3/2}
.curated-screens .curated-screen.devidres-crop img{width:119.31%;height:auto;max-width:none;position:absolute;inset:0 auto auto 0}
.curated-screens .curated-screen.sheet .screen-window{aspect-ratio:3/2}
.curated-screens .curated-screen.sheet img.sheet-panel{height:auto;top:auto;bottom:0;object-fit:contain}
.curated-screens .curated-screen figcaption{min-height:17px;margin-top:14px}
@media(max-width:700px){.curated-screens .curated-screen.mobile .screen-window{border-radius:18px}}

/* One summary on entry; project facts sit directly beneath the main image. */
.case-intro .case-story{position:static!important;min-width:0}
.case-title .overview{max-width:580px;padding-top:0}
.case-title .overview>p{font-size:16px;line-height:1.6;margin:0;max-width:550px}
.case-story .case-facts{position:static;padding:24px 0 35px}
.case-story .case-facts dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;max-width:none}
.case-story .case-facts dl>div{display:flex;flex-direction:column;gap:7px;border:0;padding:0}
.case-story .case-facts dt{font-size:11px}
.case-story .case-facts dd{font-size:13px;line-height:1.5;max-width:none}
@media(max-width:700px){.case-title .overview>p{font-size:15px;line-height:1.6}.case-story .case-facts{padding:24px 0 35px}.case-story .case-facts dl{gap:20px}.case-intro{padding-bottom:0}}

/* The opening view holds the name and image; the story starts below the fold. */
.case-intro .case-title{position:static;justify-content:flex-end;padding-bottom:25px}
.case-intro .case-title h1{margin-bottom:0}
.case-intro .case-summary{grid-column:1;grid-row:2;padding:80px 45px 65px 0}
.case-summary .overview{padding:0;max-width:580px}
.case-summary .overview h2{font-size:clamp(22px,2.2vw,32px);font-weight:400;line-height:1.2;letter-spacing:-.03em;margin:0 0 24px}
.case-summary .overview>p{font-size:16px;line-height:1.65;max-width:550px;margin:0}
.case-intro>.case-facts{grid-column:2;grid-row:2;padding:80px 0 65px;position:static}
.case-intro>.case-facts dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.case-intro>.case-facts dl>div{display:flex;flex-direction:column;gap:8px;border:0;padding:0}
.case-intro>.case-facts dd{font-size:13px;line-height:1.5;max-width:none}
@media(max-width:700px){.case-intro .case-title{height:auto;padding:40px 0}.case-intro .case-summary{grid-column:1;grid-row:auto;padding:60px 0 35px}.case-intro>.case-facts{grid-column:1;grid-row:auto;padding:0 0 45px}.case-summary .overview h2{font-size:25px}.case-summary .overview>p{font-size:15px}}

/* Project titles scroll naturally with the following summary. */
.case-intro:has(.hero-carousel) .case-title,.case-intro .case-title{position:relative!important;top:auto!important;align-self:start}

/* Visible product subtitle, moving with the title in a restrained parallax. */
.case-heading{will-change:transform}
.case-intro .case-title .case-heading h1{margin:0 0 24px}
.case-subtitle{font-size:clamp(22px,2.2vw,32px);font-weight:400;line-height:1.2;letter-spacing:-.03em;max-width:540px;margin:0}
@media(max-width:700px){.case-subtitle{font-size:25px}.case-heading{will-change:auto}.case-intro .case-title .case-heading h1{margin-bottom:22px}}
@media(prefers-reduced-motion:reduce){.case-heading{transform:none!important;will-change:auto}}

/* Product types use the same typographic language as the shared wordmark. */
.case-product-type{font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:400;line-height:1.2;letter-spacing:0;text-transform:uppercase;margin:0}
.case-summary .overview h2{margin-bottom:24px}
@media(max-width:700px){.case-product-type{font-size:15px}}

/* Facts follow the project title; the narrative follows the main image. */
.case-intro>.case-facts{grid-column:1;grid-row:2;padding:80px 45px 65px 0}
.case-intro>.case-summary{grid-column:2;grid-row:2;padding:80px 0 65px}
.case-intro>.case-summary .overview{max-width:none}
@media(max-width:700px){.case-intro>.case-facts{grid-column:1;grid-row:auto;padding:35px 0}.case-intro>.case-summary{grid-column:1;grid-row:auto;padding:45px 0}}

/* Keep the title alongside the cover and narrative, then release it at the gallery. */
@media(min-width:701px){
 .case-intro:has(.hero-carousel) .case-title,.case-intro .case-title{position:sticky!important;top:60px!important;grid-column:1;grid-row:1/span 2;height:calc(100svh - 60px);align-self:start}
 .case-intro .case-story{grid-column:2;grid-row:1}
 .case-intro>.case-summary{grid-column:2;grid-row:2;padding:70px 0 65px}
}
.case-summary .case-facts{padding:32px 0 0;position:static}
.case-summary .case-facts dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}
.case-summary .case-facts dl>div{display:flex;flex-direction:column;gap:7px;border:0;padding:0}
.case-summary .case-facts dd{font-size:13px;line-height:1.5;max-width:none}
@media(max-width:700px){.case-intro .case-title{position:relative!important;top:auto!important;grid-column:auto;grid-row:auto;height:auto}.case-intro>.case-summary{padding:45px 0}.case-summary .case-facts{padding-top:28px}}

/* Double the breathing room before the project screen gallery. */
.case-intro>.case-summary{padding-bottom:130px}
@media(max-width:700px){.case-intro>.case-summary{padding-bottom:90px}}

/* Anura uses its original POS canvas so controls are never cropped. */
.case-anura .curated-screens .curated-screen .screen-window,
.case-anura .curated-screens .curated-screen.sheet .screen-window{aspect-ratio:1194/834}
.case-anura .curated-screens .curated-screen .screen-window>img{object-fit:contain;object-position:center;width:100%;height:100%}
.case-anura .curated-screens .curated-screen.sheet img.sheet-background{object-fit:contain}
.case-anura .curated-screens .curated-screen.sheet img.sheet-panel{width:100%;height:auto;max-height:none;object-fit:contain;bottom:0;top:auto}

/* Bprep: all six app screens share one desktop row. */
@media(min-width:701px){.case-bprep .curated-screens.mixed-screens{column-gap:clamp(10px,1.5vw,24px)}.case-bprep .mixed-screens .curated-screen.mobile{grid-column:span 1;min-width:0}.case-bprep .curated-screen.mobile .screen-window{width:100%;border-radius:clamp(10px,1.5vw,24px)}.case-bprep .curated-screen.mobile figcaption{font-size:12px;line-height:1.4}}

/* Show complete Yamp screens within equal gallery frames. */
.case-yamp .curated-screens .curated-screen .screen-window>img{object-fit:contain;object-position:center}

/* One line of navigation between all case studies. */
.case-actions.case-project-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:30px;padding:75px 0 45px;border:0}
.case-project-nav>a{display:flex;flex-direction:column;gap:12px;min-width:0}
.case-project-nav>a>span{font-size:12px;color:var(--ink);opacity:.6}
.case-project-nav>a>strong{font-size:clamp(24px,3.3vw,46px);font-weight:400;line-height:1.1;letter-spacing:-.04em;overflow-wrap:anywhere}
.case-project-nav .previous-project{text-align:left;align-items:flex-start}
.case-project-nav .following-project{text-align:right;align-items:flex-end}
.case-project-nav .back-to-top{font-size:12px;text-align:center;white-space:nowrap}
@media(max-width:650px){.case-actions.case-project-nav{gap:12px;padding:55px 0 30px}.case-project-nav>a>strong{font-size:clamp(18px,4.5vw,26px)}.case-project-nav>a>span,.case-project-nav .back-to-top{font-size:10px}}

/* Mobile: keep project titles whole; wrap only between words. */
@media(max-width:650px){.case-actions.case-project-nav{grid-template-columns:1fr 1fr;gap:28px 16px}.case-project-nav>a>strong{overflow-wrap:normal;word-break:normal;hyphens:none;font-size:clamp(17px,5vw,24px)}.case-project-nav .back-to-top{grid-column:1/-1;grid-row:2;text-align:center}.case-project-nav .previous-project{grid-column:1;grid-row:1}.case-project-nav .following-project{grid-column:2;grid-row:1}}

/* Mobile: long project names stay on one line and end in an ellipsis. */
@media(max-width:650px){.case-project-nav>a{min-width:0;max-width:100%}.case-project-nav>a>strong{display:block;max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* Mobile: full-width screen viewer. */
@media(max-width:650px){.curated-screen img{cursor:zoom-in}}
.screen-lightbox{position:fixed;inset:0;z-index:100;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#000}
.screen-lightbox>img{display:block;width:100%;max-width:none;height:auto;margin:0}
.screen-lightbox-close{position:sticky;top:0;z-index:101;display:flex;align-items:center;justify-content:flex-end;gap:8px;width:100%;padding:20px;border:0;background:#000;color:#fff;font:15px/1.25 Arial,Helvetica,sans-serif;cursor:pointer}.screen-lightbox-close svg{display:block}.screen-lightbox-close:focus,.screen-lightbox-close:focus-visible{outline:none}
.screen-lightbox-open{overflow:hidden}
