.line-mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.title-line{display:block;transform-origin:left center}.title-word{display:inline-block;white-space:nowrap}.title-letter{display:inline-block;white-space:pre}.chapter-copy h1{overflow:visible}.experience-tools{position:absolute;z-index:8;right:4.6vw;bottom:77px;display:flex;align-items:center;gap:8px}.experience-tools button{font-family:inherit;font-size:9px;letter-spacing:.025em;padding:11px 13px;background:#ffffffbc;color:var(--ink);border:1px solid #ffffff80;backdrop-filter:blur(12px);display:flex;gap:18px;align-items:center;border-radius:2px}.experience-tools button[aria-pressed=true]{background:var(--ink);color:#fff}.experience-tools .skip-intro{background:transparent;border-color:transparent;font-size:8px;color:var(--muted)}.scene-wrap canvas{touch-action:pan-y}.scene-wrap canvas.dragging{touch-action:none;cursor:grabbing!important}.custom-cursor{position:fixed;z-index:110;pointer-events:none;width:32px;height:32px;border:1px solid #757d7166;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:width .2s,height .2s,border-color .2s;display:grid;place-items:center;mix-blend-mode:multiply}.custom-cursor i{width:4px;height:4px;border-radius:50%;background:var(--accent)}.custom-cursor span{display:none;font-size:13px}.custom-cursor.interactive{width:48px;height:48px;border-color:var(--accent);background:#ffffff7a}.custom-cursor.interactive span{display:block}.custom-cursor.interactive i{display:none}.cinema-bars{position:absolute;inset:0;z-index:9;pointer-events:none;--cinema:0}.cinema-bars i{position:absolute;left:0;right:0;height:max(0px,calc((100svh - 100vw / 2.39) / 2));background:#071518;transform:scaleY(var(--cinema));transition:transform .35s}.cinema-bars i:first-child{top:0;transform-origin:top}.cinema-bars i:last-child{bottom:0;transform-origin:bottom}.trailer-title{position:absolute;inset:0;z-index:10;display:grid;place-items:center;text-align:center;padding:8vw;font-size:clamp(35px,6vw,110px);font-weight:700;letter-spacing:-.06em;line-height:1.05;color:#fff;text-shadow:0 3px 25px #071a2aaa;background:#07191dcc;opacity:0;pointer-events:none;transform:scale(1.14);filter:blur(8px);transition:opacity .18s,transform .45s cubic-bezier(.18,.8,.25,1),filter .4s}.trailer-title.visible{opacity:1;transform:scale(1);filter:blur(0)}.cinema-flash{position:absolute;inset:0;z-index:11;background:#e2f2f0;opacity:0;pointer-events:none}.speed-lines{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;background:repeating-conic-gradient(from 15deg at 80% 56%,transparent 0deg 14deg,#ffffff70 14.05deg 14.15deg,transparent 14.3deg 27deg);mask-image:radial-gradient(ellipse,transparent 30%,#000 100%)}.brand-marquee{padding:25px 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}.brand-marquee>div{display:flex;gap:60px;width:max-content;animation:marquee 40s linear infinite}.brand-marquee span{font-size:11px;letter-spacing:.17em;white-space:nowrap}.brand-marquee i{font-size:20px;color:var(--accent);font-style:normal}.service-card{transform-origin:85% 80%;animation:card-in .45s cubic-bezier(.15,.8,.2,1)}.night .chapter-copy,.night .scene-label,.night .story-bottom{color:#e5e9e4}.night .chapter-copy p,.night .partner-stat>span,.night .scene-label,.night .story-signature,.night .scroll-cue{color:#c2cdc9}.night .chapter-copy em{color:#ff7250}.night .stage{background:#0b2029!important}.night .stage-grain{opacity:.3}.night .chapter-nav button.active{color:#fff}.night .header{background:#0b2029e8;color:#fff}.night .header-contact{border-color:#afbab5}.night .menu-toggle i{background:#fff}.night .experience-tools button{background:#0c2631a8;color:#fff;border-color:#b6d4db25}.night .brand img{filter:brightness(0) invert(1)}.final-cta{position:absolute;inset:0;z-index:13;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px;background:#08191eea;color:#fff;padding:8vw;text-align:center;opacity:0;visibility:hidden;transform:translateY(20px);transition:opacity 1s,transform 1s,visibility 1s;pointer-events:none}.final-cta.visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.final-cta .cta-caption{font-size:9px;letter-spacing:.15em;color:#b8cac8}.final-cta h2{font:400 clamp(32px,4.5vw,76px)/1.15 var(--sans);letter-spacing:-.05em;max-width:900px}.final-cta .cta-phone{font-size:clamp(25px,3.5vw,56px);color:white;padding:18px 30px;background:var(--accent);border:1px solid #fff2;animation:cta-breathe 3s ease-in-out infinite}.final-cta .cta-email{font-size:13px;color:#b5ccba}.final-cta .cta-back{background:transparent;border:1px solid #aac5c04a;color:#aac5c0;padding:10px 17px;font-size:10px}.preloader svg{max-width:260px;height:auto;overflow:visible}.preloader svg path{stroke:currentColor;stroke-width:1;stroke-dasharray:1400;stroke-dashoffset:1400;animation:logo-draw 2.4s ease forwards}.preloader.done svg{transform:perspective(500px) rotateY(-20deg) translateZ(100px);transition:transform .6s}.page-wipe{position:fixed;inset:0;z-index:200;background:#243931;transform:translateY(100%);pointer-events:none;transition:transform .65s cubic-bezier(.76,0,.24,1)}.page-wipe.active{transform:translateY(0)}
@keyframes card-in{from{opacity:0;transform:perspective(600px) rotateX(12deg) rotateY(-10deg) translateY(30px)}to{opacity:1;transform:perspective(600px) rotateX(0) rotateY(0) translateY(0)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes cta-breathe{50%{box-shadow:0 0 0 12px #ffffff05,0 0 40px #ffffff10;transform:scale(1.025)}}@keyframes logo-draw{0%{stroke-dashoffset:1400;fill-opacity:0}70%{stroke-dashoffset:0;fill-opacity:0}100%{stroke-dashoffset:0;fill-opacity:1}}
@media(max-width:700px){.experience-tools{bottom:75px;left:24px;right:24px;gap:5px;justify-content:end}.experience-tools button{padding:8px 9px;font-size:8px;gap:8px}.experience-tools .skip-intro{font-size:7px;padding:7px 4px}.cinema-bars i{height:35px}.custom-cursor{display:none}.brand-marquee{padding:20px 0}.brand-marquee span{font-size:9px}.final-cta{padding:28px;gap:23px}.final-cta h2{font-size:36px}.final-cta .cta-phone{font-size:25px;padding:15px 20px}.line-mask{max-width:100%}.night .chapter-copy em{color:#ff9475}}
@media(prefers-reduced-motion:reduce){.trailer-title,.cinema-flash,.speed-lines,.cinema-bars,.custom-cursor{display:none}.experience-tools .explore-button{display:none}.brand-marquee>div{animation:none}.final-cta{display:none}.preloader svg path{animation:none;stroke:none}.line-mask{overflow:visible}.title-letter{transform:none!important;opacity:1!important}.service-card{animation:none}}

.preloader svg{width:230px;max-height:170px}.preloader svg path{stroke-width:.6}.precision-clock{position:absolute;right:4.6vw;top:155px;font-variant-numeric:tabular-nums;font-size:10px;letter-spacing:.16em;color:#719189;z-index:3}.lens-flare{position:absolute;z-index:4;pointer-events:none;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#fffdeeee 0%,#ffbd7270 3%,#ffccab16 13%,transparent 45%);mix-blend-mode:screen;opacity:0;transform:translate(-50%,-50%)}@media(max-width:700px){.precision-clock{top:auto;bottom:215px;right:24px;font-size:8px}}

.final-active .header{opacity:0;pointer-events:none;transition:opacity .6s}.final-cta{background:#08191ef5}.final-active .scene-label,.final-active .experience-tools,.final-active .chapter-copy,.final-active .story-bottom{opacity:0;pointer-events:none}
/* Round 3: readable timed beats and local-media transitions. */
.trailer-title{transition:opacity .36s ease,transform .36s cubic-bezier(.18,.8,.25,1),filter .36s ease;background:#07191ded;font-size:clamp(34px,5.3vw,90px);max-height:100svh}.trailer-title.visible{opacity:1;transform:scale(1);filter:blur(0)}.grok-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:7;opacity:0;pointer-events:none;transition:opacity .5s;background:#07191d}.grok-video.visible{opacity:1}.media-playing .chapter-copy,.media-playing .scene-label,.media-playing .hotspots{opacity:0;pointer-events:none}.scene-wrap{transition:opacity .3s,filter .3s}.media-swap .scene-wrap{opacity:.12;filter:blur(5px)}.night .cinema-bars i{background:#020b10}.night .stage-grain{opacity:.18}.night .brand img{filter:none}.night .button.secondary{color:#dbe7e8;border-color:#a4c1c65a}.night .header-contact{color:#e7f0eb}.night .chapter-copy p{color:#c5d5db}.night .hotspot{background:#102d3dc9;border-color:#afd3dd4a}.night .stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#081d2870,transparent 55%);z-index:1}.story{height:960svh}.cloud-haze{background-position:center;transition:opacity .6s}
@media(max-width:700px){.story{height:1000svh}.trailer-title{font-size:clamp(29px,8.3vw,44px);padding:28px}.cinema-bars i{height:30px}.grok-video{object-position:center}.night .stage:after{background:linear-gradient(#081d2866,transparent 60%)}}
@media(prefers-reduced-motion:reduce){.story{height:100svh!important}.grok-video{display:none}.media-swap .scene-wrap{opacity:1;filter:none}.scene-wrap,.cloud-haze{transition:none}}

@media(max-width:700px){.grok-video[data-portrait=false]{object-fit:contain}}
/* R4: one luminous miniature language, an autonomous film and persistent transport controls. */
.story{height:100svh!important;min-height:680px}.stage{position:relative;height:100svh;min-height:680px;overflow:hidden}.scroll-anchor{display:none}.scene-wrap{opacity:1!important;filter:none!important}.cinema-bars,.cinema-flash,.speed-lines,.trailer-title,.lens-flare{display:none!important}.stage-grain{opacity:.035}.cloud-haze{background-image:none!important}.experience-tools{z-index:21;bottom:102px;gap:8px}.experience-tools button{backdrop-filter:blur(14px);background:#ffffffd9;border:1px solid #30303017;color:var(--ink);font-size:10px;letter-spacing:.025em}.experience-tools .pause-button{min-width:87px;background:var(--ink);color:#fff;border-color:var(--ink)}.experience-tools .replay-button{border-color:var(--accent);color:var(--accent)}.film-progress{position:absolute;left:4.6vw;right:4.6vw;bottom:82px;z-index:21;display:flex;align-items:center;gap:16px}.film-timeline{height:18px;flex:1;padding:7px 0;background:transparent;cursor:pointer;border:0}.film-timeline:before{content:'';display:block;height:2px;background:#30303018}.film-timeline i{display:block;height:2px;background:var(--accent);margin-top:-2px;transform-origin:left;pointer-events:none}.film-time{font-size:9px;letter-spacing:.07em;color:var(--muted);font-variant-numeric:tabular-nums}.scroll-cue .scroll-mouse{display:none}.final-cta{z-index:14;background:linear-gradient(110deg,#f6f5f0fa 0%,#f6f5f0e8 55%,#f6f5f0b3 100%);color:var(--ink);padding-bottom:140px;gap:24px}.final-cta h2{font-size:clamp(36px,4.5vw,68px);max-width:900px;letter-spacing:-.04em}.final-cta .cta-phone{background:var(--accent);color:#fff;border:0;animation:none}.final-cta .cta-logo{width:240px;height:auto;max-height:85px;object-fit:contain;margin-bottom:12px}.final-cta button{padding:10px 24px;border:1px solid #30303022;border-radius:999px;background:#fff;color:var(--ink);font-size:12px}.final-cta .cta-caption{color:var(--muted)}.final-cta .cta-email{color:var(--ink)}.final-active .header{opacity:1;pointer-events:auto}.final-active .experience-tools{opacity:1;pointer-events:auto}.final-active .chapter-copy,.final-active .story-bottom,.final-active .scene-label{opacity:0;pointer-events:none}.brand-word img{width:185px}.preloader svg{width:260px;max-height:150px}.grok-video{z-index:6;background:#f0f0e7;transition:opacity .4s;object-fit:cover}.media-playing .header{background:transparent}.media-playing .stage-grain{opacity:0}.chapter-copy{transition:opacity .4s}.story-bottom{z-index:20}.precision-clock{z-index:3}.media-playing .temperature-chip,.media-playing .alert-chip,.media-playing .precision-clock{opacity:0}
@media(max-width:700px){.story,.stage{min-height:740px}.experience-tools{left:22px;right:22px;bottom:103px;flex-wrap:wrap;justify-content:flex-end;gap:5px}.experience-tools button{font-size:8px;padding:8px 10px}.experience-tools .skip-intro{font-size:8px;padding:8px}.experience-tools .pause-button{min-width:74px}.film-progress{left:24px;right:24px;bottom:80px;gap:10px}.film-time{font-size:8px}.final-cta{padding:90px 24px 170px;gap:17px}.final-cta .cta-logo{width:190px}.final-cta h2{font-size:32px}.final-cta .cta-phone{font-size:22px;padding:14px 18px}.final-cta .cta-caption{font-size:9px}.final-cta .cta-email{font-size:14px}.final-cta button{font-size:10px;padding:8px 18px}.grok-video[data-portrait=false]{object-fit:cover}.scene-label{bottom:182px}.temperature-chip{bottom:184px}.precision-clock{bottom:244px}.chapter-copy{top:110px}.story-bottom{bottom:29px}}
@media(prefers-reduced-motion:reduce){.final-cta.visible{display:flex}.grok-video{display:none}.film-progress{display:flex}.film-timeline i{transition:none}.preloader svg{transform:none!important}}
.scene-wrap{left:0;right:0;top:0;width:100%;height:100%;mask-image:none}.stage:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f5f4f0ed 0%,#f5f4f0e5 26%,#f5f4f0a1 36%,transparent 54%);z-index:1;pointer-events:none}.media-playing .stage:before{opacity:0}.medical .grok-video{filter:saturate(.82) contrast(.96)}
@media(max-width:700px){.scene-wrap{top:300px;height:calc(100% - 300px);width:100%;mask-image:none}.stage:before{background:linear-gradient(#f5f4f0 0%,#f5f4f0 34%,transparent 49%)}.media-playing .scene-wrap{top:0;height:100%}.chapter-copy{z-index:2}.grok-video{filter:saturate(.85) contrast(.96)}}
@media(max-width:700px){.scene-wrap,.media-playing .scene-wrap{top:0;height:100%;width:100%}.scene-label{bottom:182px}.chapter-copy{pointer-events:none}.chapter-copy a{pointer-events:auto}.stage:before{background:linear-gradient(#f5f4f0f0 0%,#f5f4f0e3 27%,#f5f4f073 42%,transparent 58%)}.final-active .stage:before{opacity:0}}
/* R5: the copy stays readable during fast camera motion; cinematic cuts are deliberately brief. */
.stage:before{background:linear-gradient(90deg,#f5f4f0fa 0%,#f5f4f0f0 27%,#f5f4f09c 40%,transparent 38%)}
.grok-video{filter:saturate(.78) contrast(.96) brightness(1.06);object-fit:cover}
.medical .grok-video{filter:saturate(.72) contrast(.98) brightness(1.06)}
.media-playing .header{background:#f5f4f0e6}.alert-chip.controlled{color:#00b050;background:#edf7ed}
.final-cta .cta-phone{animation:cta-breathe 3s ease-in-out infinite}
@media(max-width:700px){.stage:before{background:linear-gradient(#f5f4f0fa 0%,#f5f4f0e3 29%,#f5f4f03d 46%,transparent 59%)}.experience-tools{gap:4px}.experience-tools button{padding:9px 8px}.grok-video[data-portrait=false]{object-fit:cover;object-position:56% center}}
@media(prefers-reduced-motion:reduce){.final-cta .cta-phone{animation:none}.grok-video{filter:none}}
.media-playing .cinema-bars{display:block!important;z-index:7}.media-playing .cinema-bars i{transform:scaleY(1);height:5.5vh;background:#101c1b}
.scene-wrap{filter:blur(calc(var(--whip,0)*4px))!important}.tx-active .scene-wrap{filter:blur(calc(var(--whip,0)*4px + var(--tx-blur,0px)))!important;transform:scale(var(--tx-scale,1));transform-origin:50% 50%}
@media(prefers-reduced-motion:reduce){.scene-wrap{filter:none!important}.media-playing .cinema-bars{display:none!important}}
/* A continuous night palette keeps typography and controls readable. */
.stage:before{z-index:2}.chapter-copy{z-index:5}
.stage:before{transition:opacity .4s}
.film-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:5;opacity:0;pointer-events:none;transition:opacity .3s;filter:saturate(.78) contrast(.96) brightness(1.06)}.medical .film-poster{filter:saturate(.72) contrast(.98) brightness(1.06)}
.night .stage:before{background:linear-gradient(90deg,#0b2029fa 0%,#0b2029d9 22%,#0b202959 30%,transparent 38%)}
.night .film-time{color:#c9dce4}.night .chapter-nav button{color:#b4cbd5}.night.media-playing .header{background:#0b2029e6}
@media(max-width:700px){.night .stage:before{background:linear-gradient(#0b2029fa 0%,#0b2029e3 29%,#0b20293d 46%,transparent 59%)}}

/* R7: gradients cannot animate between backgrounds. Their RGB follows the film clock. */
.stage:before,.night .stage:before{background:linear-gradient(90deg,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.88) 0%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.81) 22%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.35) 30%,transparent 38%)}
.header,.night .header{background:rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.94)}
@media(max-width:700px){.stage:before,.night .stage:before{background:linear-gradient(rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.93) 0%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.83) 26%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.36) 34%,transparent 43%)}}

/* R8: CTA starts below the persistent header, even on short desktop viewports. */
.final-cta{padding-top:max(110px,14svh);padding-bottom:135px;gap:clamp(10px,1.8svh,20px)}
.final-cta .cta-logo{flex-shrink:0;max-height:66px;margin-bottom:0}
.final-cta h2{font-size:clamp(28px,4.2vw,60px)}
@media(max-width:700px){.final-cta{padding:110px 24px 155px;gap:13px}.final-cta h2{font-size:28px}.final-cta .cta-logo{max-height:46px;width:175px}.final-cta .cta-phone{font-size:21px;padding:12px 16px}}

.boot-video{z-index:7!important;opacity:1!important}.boot-controls{position:absolute;right:4.6vw;bottom:102px;z-index:24;display:flex;gap:16px;align-items:center;color:white;font-size:11px}.boot-controls button{border:1px solid #ffffff50;border-radius:20px;background:#14293290;color:white;padding:11px 18px}.boot-active .chapter-copy,.boot-active .scene-label{opacity:0}.asset-status{position:absolute;right:4.6vw;bottom:144px;z-index:23;background:#142a32b0;color:white;padding:8px 12px;border-radius:20px;font:10px var(--sans);pointer-events:none;backdrop-filter:blur(8px)}.asset-status[data-complete=true]{opacity:.45}

/* Evidence-only drone view also exposes the complete road network without the text scrim. */
.reference-render .header,.reference-render .chapter-copy,.reference-render .story-bottom,.reference-render .experience-tools,.reference-render .film-progress,.reference-render .hotspot,.reference-render .scene-label,.reference-render .temperature-chip,.reference-render .precision-clock,.reference-render .alert-chip{visibility:hidden!important}
.reference-render .stage:before{opacity:0!important}

/* R9: opacity is driven by one film clock, without a second CSS interpolation. */
.grok-video,.film-poster{transition:none!important}
.stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#081d2870,transparent 55%);z-index:1;opacity:var(--ui-night,0)}
.night .stage:after{opacity:var(--ui-night,0)}

/* R13: medical canvas has its own 3D fog; legacy alpha edge duplicated the text scrim. */
.medical .scene-wrap canvas{mask-image:none}

/* R16: the more specific cinema-night selector must inherit the continuous film palette. */
.media-playing .header,.night.media-playing .header{background:rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.94)}
/* The bright CTA rises from the held final frame gradually, without an exposure flash. */
.final-cta{transition:opacity 2s linear,transform 1s ease,visibility 1s}

/* R20: text occupies its own left third; the hero keeps the original scene contrast. */
@media(min-width:701px){.chapter-copy{width:32%;max-width:510px}.medical .chapter-copy h1{font-size:clamp(34px,3.5vw,64px)}}

/* R20: the final LW header retains the night background; its mark and navigation stay legible. */
.final-active:not(.medical) .header{color:#e5e9e4}
.final-active:not(.medical) .header .brand img{filter:brightness(0) invert(1)}
.final-active:not(.medical) .header-contact{color:#e5e9e4;border-color:#afbab5}

.final-active:not(.medical) .header .menu-toggle i{background:#e5e9e4}

/* r28: V06's last map frame carries the existing LP02 headline. Film-clock opacity
   is deterministic during playback and paused audits; no restart of split text. */
.medical.intro-caption-active.media-playing .chapter-copy{opacity:var(--intro-copy,0);transition:none;z-index:8}
.medical.intro-caption-active.media-playing .stage:before{opacity:var(--intro-copy,0);transition:none;z-index:7}

/* r38: one final card owns the screen. Keep the stage clock/media intact. */
.experience-tools button[hidden]{display:none}
.final-active .experience-tools,.final-active .film-progress,.final-active .temperature-chip,.final-active .alert-chip,.final-active .precision-clock,.final-active .hotspot{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.final-cta{background:radial-gradient(ellipse at 70% 10%,#20343d 0%,#0a1a22 55%,#061118 100%);color:#f3f5f4;padding:110px 6vw 70px;gap:clamp(12px,2.4svh,26px);transition:opacity 1.2s ease,transform 1.2s ease,visibility 1.2s}
.final-cta .cta-caption{max-width:38em;color:#a9babd;line-height:1.7;letter-spacing:.12em}
.final-cta .cta-logo{width:clamp(210px,23vw,330px);max-height:84px;object-fit:contain;flex-shrink:0}
.final-cta h2{font-size:clamp(32px,4vw,62px);max-width:820px}
.final-cta .cta-phone{font-size:clamp(26px,3.7vw,55px);padding:18px 30px;box-shadow:0 10px 35px #030b0f66;border-radius:3px;animation:none}
.final-cta button{border-color:#a3b7ba55;background:#ffffff08;color:#d6e2e4;min-height:42px}
.final-cta button:focus-visible,.final-cta a:focus-visible{outline:3px solid #90d048;outline-offset:5px}
.medical .final-cta{background:radial-gradient(ellipse at 70% 15%,#fff 0%,#e6efec 80%);color:#183934}
.medical .final-cta .cta-caption{color:#506e65}
.medical .final-cta button{background:#ffffff80;color:#214f42;border-color:#769d9166}
.medical .final-cta .cta-email{color:#18593f}
@media(max-width:700px){.final-cta{padding:100px 22px 50px;gap:16px}.final-cta .cta-logo{width:230px;max-height:67px}.final-cta h2{font-size:31px}.medical .final-cta h2{font-size:27px}.final-cta .cta-phone{font-size:24px;padding:15px 17px}.final-cta .cta-caption{font-size:9px}.final-cta button{min-height:40px;padding:9px 20px}.final-cta .cta-email{font-size:14px}}
@media(prefers-reduced-motion:reduce){.final-cta{transition:none}}

/* r39: held local cinema, restrained motion; one content surface owns all UI. */
.final-cta{overflow:hidden;isolation:isolate;background:#071a23;padding:95px 4vw 50px}
.cta-cinema{position:absolute;inset:0;z-index:-2;opacity:0;transition:opacity 1.2s ease;pointer-events:none}
.cta-cinema.decoded{opacity:1}.cta-cinema-frame{width:100%;height:100%;object-fit:cover;object-position:64% center;filter:blur(5px) brightness(.78) saturate(.80);transform:scale(1.045);will-change:auto}
.final-cta.visible .cta-cinema-frame{animation:cta-cinema-drift 24s ease-in-out infinite alternate;will-change:transform}
.cta-cinema:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#04151c75,#07182028),radial-gradient(ellipse at 50% 45%,#0a1b2340 0%,#030e16b8 100%)}
.cta-cinema-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 78% 58%,#d8faff33 0,transparent 14%),radial-gradient(ellipse at 20% 27%,#f9c08024 0,transparent 12%);filter:blur(12px)}
.final-cta.visible .cta-cinema-glow{animation:cta-cinema-glow 9s ease-in-out infinite alternate}
.cta-content{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:clamp(12px,2.4svh,26px);padding:38px 44px 28px;max-width:min(940px,94vw);border:1px solid #b4cad21a;background:#071a23d9;box-shadow:0 24px 90px #01081052;border-radius:5px}
.medical .final-cta{background:#e9f0ef}.medical .cta-cinema-frame{object-position:62% 58%;filter:url(#r19-medical-white) blur(4px) saturate(.58) brightness(1.08)}
.medical .cta-cinema:after{background:linear-gradient(90deg,#e3edef38,#a8d7d31a),radial-gradient(ellipse at 50% 45%,#eff7f520 0%,#c0d6d752 100%)}
.medical .cta-content{background:#f4faf7ed;border-color:#557f6f20;box-shadow:0 25px 85px #092c332e}
.medical .final-cta .cta-phone{background:#008543}.final-cta .cta-caption{color:#b9cacc}.medical .final-cta .cta-caption{color:#3b5d53}
.final-cta .cta-back,.final-cta .cta-replay{color:#d6e2e4;background:#102a33;border-color:#94acb75c}
.medical .final-cta .cta-back,.medical .final-cta .cta-replay{color:#214f42;background:#f4faf7;border-color:#769d9166}
@keyframes cta-cinema-drift{from{transform:scale(1.045) translate3d(-.45%,0,0)}to{transform:scale(1.085) translate3d(.45%,-.35%,0)}}
@keyframes cta-cinema-glow{from{opacity:.3}to{opacity:.6}}
.partner-stat.stat-emphasis strong{text-shadow:0 0 24px #ff6a3526}
@media(max-width:700px){.final-cta{padding:80px 16px 35px}.cta-content{padding:28px 18px;gap:16px;max-width:100%}.cta-cinema-frame{object-position:59% center}.medical .cta-cinema-frame{object-position:58% center}.cta-content .cta-caption{max-width:29em}}
@media(prefers-reduced-motion:reduce){.final-cta.visible .cta-cinema-frame,.final-cta.visible .cta-cinema-glow{animation:none;will-change:auto}.cta-cinema{transition:none}}

.medical .final-cta h2{font-size:clamp(28px,3.1vw,46px);max-width:780px}
@media(max-width:700px){.medical .final-cta h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.final-cta{display:flex}}

/* Actual boot phases are separate from download-byte percentages. */
.opening-stage{display:block;margin-top:20px;max-width:32em;color:#54636a;font:500 13px/1.5 sans-serif;letter-spacing:.03em}
.preloader:not(.done) .opening-stage{animation:none}

/* r44: local K01 poster from first paint, readable preparation instead of white. */
.preloader.opening-poster{background:linear-gradient(0deg,#03111ad9,#03111a80),url('../assets/films/K01-start.webp') 58% center/cover;color:#ecf3f4}
.preloader.opening-poster svg path[fill="#303030"],.preloader.opening-poster svg path[fill="#111"]{fill:#edf3f4}
.preloader.opening-poster .opening-stage,.preloader.opening-poster .load-number{color:#d9e6e9}
.stage:before,.night .stage:before{background:linear-gradient(90deg,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),calc(.88 - .20*var(--hq-scrim,0))) 0%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),calc(.81 - .34*var(--hq-scrim,0))) 22%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),calc(.35 - .22*var(--hq-scrim,0))) 30%,transparent 38%)}
@media(max-width:700px){.stage:before,.night .stage:before{background:linear-gradient(rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.93) 0%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.83) 26%,rgba(var(--scrim-r,245),var(--scrim-g,244),var(--scrim-b,240),.36) 34%,transparent 43%)}}

/* r45: held cinematic headlights with city bokeh and wet vertical reflections.
   The central opaque scrim supplies contrast independently of the photo. */
body:not(.medical) .cta-cinema-frame{filter:blur(2.5px) brightness(1.13) saturate(1.10)}
body:not(.medical) .cta-cinema:after{background:linear-gradient(90deg,#04151c4d,#0718200a),radial-gradient(ellipse at 50% 45%,#071b2320 0%,#030e1675 100%)}
body:not(.medical) .cta-cinema:before{content:"";position:absolute;inset:55% 0 0;z-index:1;background:radial-gradient(ellipse 1.9% 80% at 77% 15%,#badce67a 0%,#72a2b632 45%,transparent 80%),radial-gradient(ellipse 1.2% 75% at 24% 18%,#ffd5a67d 0%,#c79f6833 48%,transparent 82%),radial-gradient(ellipse 1% 66% at 90% 8%,#acd1eb66 0%,transparent 82%);filter:blur(5px);opacity:.70;pointer-events:none}
body:not(.medical) .cta-cinema-glow{background:radial-gradient(circle at 77% 34%,#ffedce93 0%,#e9b8785c .8%,transparent 3.2%),radial-gradient(circle at 24% 29%,#f4c58f9c 0%,#edc27d4f .7%,transparent 2.5%),radial-gradient(circle at 90% 36%,#b7eaff8f 0%,#6babc147 1.1%,transparent 3.7%),radial-gradient(ellipse at 74% 64%,#e0f7ff7a 0%,transparent 11%),radial-gradient(circle at 14% 39%,#7eb7ca80 0%,transparent 2.5%),radial-gradient(circle at 85% 29%,#fbe2b568 0%,transparent 1.7%);filter:blur(9px)}
body:not(.medical) .cta-content{background:#041820e4;border-color:#b2d6df38;box-shadow:0 30px 100px #00000066}

/* r47: keep the branded vehicle frame clear, status has one quiet lower-left home. */
.preloader.opening-poster{align-items:flex-start;justify-content:flex-end;padding:0 0 7vh 5vw;gap:12px;background:linear-gradient(0deg,#03111ade 0%,#03111a45 28%,#03111a08 65%),url('../assets/films/K01-start.webp') 58% center/cover}
.preloader.opening-poster svg{width:155px;max-height:40px;transform:none}
.preloader.opening-poster .opening-stage{margin:0;font-size:11px;letter-spacing:.045em}
.preloader.opening-poster .load-track{width:min(230px,38vw);height:1px;margin:0;background:#edf3f42d}
.preloader.opening-poster .load-track i{height:1px;background:#edf3f4}
.preloader.opening-poster .load-number{font-size:9px;opacity:.7;margin:0}
@media(max-width:700px){.preloader.opening-poster{padding:0 0 8vh 24px;background-position:58% center}.preloader.opening-poster svg{width:130px}.preloader.opening-poster .load-track{width:180px}}

/* r49: own fleet remains legible; contrast comes from the copy panel only. */
body:not(.medical) .final-cta{align-items:flex-start;padding-left:5vw}
body:not(.medical) .cta-content{width:min(470px,40vw);padding:32px 30px;box-sizing:border-box;background:#061820eb}
body:not(.medical) .cta-content h2{font-size:clamp(32px,3.7vw,56px)}
body:not(.medical) .cta-content .cta-phone{font-size:clamp(24px,2.5vw,38px);white-space:nowrap;padding:16px 18px}
body:not(.medical) .cta-cinema-frame{filter:blur(.35px) brightness(1.06) saturate(1.02);object-position:center}
body:not(.medical) .cta-cinema:after{background:linear-gradient(90deg,#04151c45,transparent 45%),linear-gradient(0deg,#030d1650,transparent 45%)}
@media(max-width:700px){body:not(.medical) .final-cta{justify-content:flex-end;align-items:center;padding:75px 16px 24px}body:not(.medical) .cta-content{width:100%;padding:20px 18px;gap:10px}body:not(.medical) .cta-content .cta-logo{width:190px;max-height:42px}body:not(.medical) .cta-content h2{font-size:28px}body:not(.medical) .cta-content .cta-caption{font-size:8px}body:not(.medical) .cta-content .cta-phone{font-size:23px}body:not(.medical) .cta-cinema-frame{object-position:50% 0%}}

/* r50: approved stacked artwork; keep original aspect in the compact masthead. */
body:not(.medical) .header .brand img{width:100px;height:58px;object-fit:contain}body:not(.medical) .preloader svg{width:180px;max-height:116px}body:not(.medical) .cta-content .cta-logo{width:160px;max-height:100px;height:auto;object-fit:contain}
@media(max-width:700px){body:not(.medical) .header .brand img{width:80px;height:50px}body:not(.medical) .cta-content .cta-logo{width:112px;max-height:70px}}

/* r50: CTA must not tear off the bright medical text scrim in one frame. */
.medical .stage:before{transition:opacity 1.2s linear}
@media(prefers-reduced-motion:reduce){.medical .stage:before{transition:none}}

/* Medical preparation shows the decoded, graded V06 first frame behind this scrim. */
.medical .preloader.opening-poster{background:linear-gradient(0deg,#03111ade 0%,#03111a45 28%,#03111a08 65%)}

/* r55: film typography is one clock, one accent and a clear optical hierarchy.
   No blur/flash/fullscreen layer; the photographed hero keeps the right 2/3. */
.r55-type .chapter-copy{width:32%;max-width:470px}
.r55-type .chapter-copy .eyebrow{font-size:10px;letter-spacing:.13em;line-height:1.5;font-weight:600;max-width:32em}
.r55-type .chapter-copy .eyebrow:before{content:"";width:25px;height:2px;background:var(--accent);flex-shrink:0}
.r55-type .chapter-copy .eyebrow .live-dot{display:none}
.r55-type .chapter-copy h1{font-family:var(--sans);font-weight:600;font-size:clamp(40px,4.25vw,65px);letter-spacing:-.055em;line-height:1.025;margin:24px 0 21px;text-wrap:balance}
.r55-type .chapter-copy h1 em{font-style:normal;font-weight:400}
.r55-type .chapter-copy .line-mask{padding-bottom:.12em;margin-bottom:-.12em}
.r55-type .chapter-copy .title-line{transform-origin:0 100%;will-change:auto}
.r55-type .chapter-copy .title-letter{transform:none!important;opacity:1!important}
.r55-type .chapter-copy p{font-size:13px;line-height:1.65;max-width:26em;margin-bottom:24px}
.r55-type .chapter-copy .feature-row{display:none}
.r55-type .chapter-copy .button{padding:10px 0;background:transparent;border:0;border-bottom:1px solid currentColor;color:inherit;border-radius:0;gap:30px;font-size:11px}
.r55-type .chapter-copy .button:hover{color:var(--accent);transform:translateX(3px)}
.r55-type.medical .chapter-copy h1{font-size:clamp(36px,3.8vw,57px);font-weight:500}
.r55-type.medical .chapter-copy h1 em{color:#008643}
.r55-type.medical.film-copy-cinema .chapter-copy{opacity:var(--copy-cinema);z-index:8;transition:none}
.r55-type.medical.film-copy-cinema .stage:before{opacity:var(--copy-cinema);z-index:7;transition:none}
/* A typographic end signature, with the real fleet visible beside it. */
.r55-type:not(.medical) .final-cta{padding:100px 5vw 40px;align-items:flex-start}
.r55-type .final-cta .cta-content{align-items:flex-start;text-align:left;border:0;border-radius:0;box-shadow:none;gap:20px;padding:30px 0;background:transparent}
.r55-type:not(.medical) .cta-content{width:min(590px,45vw);background:transparent;box-shadow:none}
.r55-type .final-cta .cta-logo{width:220px;max-height:65px;object-position:left center}
.r55-type .cta-caption{font-size:10px!important;letter-spacing:.13em!important;line-height:1.7;max-width:33em!important}
.r55-type:not(.medical) .cta-content h2{font-size:clamp(65px,7.2vw,108px);font-weight:600;letter-spacing:-.065em;line-height:1;margin:12px 0 6px}
.r55-type .final-cta .cta-phone{font-weight:500;font-size:clamp(25px,2.8vw,42px);letter-spacing:-.035em;padding:17px 22px;border:1px solid #ffffff20;border-radius:0;box-shadow:0 12px 36px #0002;animation:none;white-space:nowrap}
.r55-type .cta-hours{font-size:13px;letter-spacing:.015em;opacity:.85}
.r55-type .cta-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.r55-type .final-cta .cta-actions button{min-height:44px;border:0;border-bottom:1px solid #8ea5ae77;border-radius:0;background:transparent;padding:8px 0;margin-right:16px;font-size:11px;box-shadow:none}
.r55-type:not(.medical) .cta-cinema:after{background:linear-gradient(90deg,#04121bf0 0%,#04121bdf 28%,#04121b66 49%,transparent 72%),linear-gradient(0deg,#04121b55,transparent 55%)}
.r55-type:not(.medical) .cta-cinema:before{opacity:.28}
.r55-type:not(.medical) .cta-cinema-glow{opacity:.18;animation:none}
.r55-type .final-cta a:focus-visible,.r55-type .final-cta button:focus-visible{outline:3px solid #90d048;outline-offset:6px}
.r55-type.medical .final-cta{align-items:flex-start;padding:100px 6vw 40px;background:#f7f9f8}
.r55-type.medical .cta-content{max-width:650px;width:48%;background:transparent}
.r55-type.medical .cta-content h2{font-size:clamp(32px,3.5vw,51px);font-weight:500;line-height:1.12;letter-spacing:-.045em;max-width:13em;margin:8px 0}
.r55-type.medical .cta-caption{color:#386350}
.r55-type.medical .cta-cinema-frame{filter:saturate(.85) brightness(1.02);object-position:70% center}
.r55-type.medical .cta-cinema:after{background:linear-gradient(90deg,#f7f9f8fa 0%,#f7f9f8ee 32%,#f7f9f890 52%,transparent 80%)}
.r55-type.medical .cta-cinema-glow{display:none}
.r55-type.medical .final-cta .cta-actions button{border-color:#38635088}
@media(max-width:700px){
 .r55-type .chapter-copy{width:85%;max-width:none;left:24px}
 .r55-type .chapter-copy h1,.r55-type.medical .chapter-copy h1{font-size:clamp(32px,8.7vw,42px);line-height:1.015;margin:17px 0 12px;max-width:10.5em}
 .r55-type .chapter-copy .eyebrow{font-size:8px;letter-spacing:.11em;max-width:38em}
 .r55-type .chapter-copy p{font-size:11px;line-height:1.5;max-width:27em;margin-bottom:12px}
 .r55-type .chapter-copy .button{padding:6px 0;font-size:10px;gap:25px}
 .r55-type .chapter-copy .button span{font-size:15px}
 .r55-type:not(.medical) .final-cta,.r55-type.medical .final-cta{justify-content:flex-end;align-items:flex-start;padding:85px 24px 30px}
 .r55-type .final-cta .cta-content,.r55-type.medical .final-cta .cta-content{width:100%;max-width:none;padding:25px 0 0;gap:15px}
 .r55-type .final-cta .cta-logo{width:178px;max-height:50px}
 .r55-type:not(.medical) .cta-content h2{font-size:68px;line-height:1.02;margin:3px 0}
 .r55-type.medical .cta-content h2{font-size:31px;line-height:1.14;max-width:11em}
 .r55-type .final-cta .cta-caption{font-size:8px!important;max-width:31em!important}
 .r55-type .final-cta .cta-phone{font-size:27px;padding:15px 18px;max-width:100%}
 .r55-type .final-cta .cta-email{font-size:13px}
 .r55-type .cta-actions{margin-top:4px;gap:10px}
 .r55-type .final-cta .cta-actions button{font-size:10px;margin-right:13px}
 .r55-type:not(.medical) .cta-cinema:after{background:linear-gradient(0deg,#04121bfa 0%,#04121be0 29%,#04121b45 68%,transparent 85%)}
 .r55-type.medical .cta-cinema:after{background:linear-gradient(0deg,#f7f9f8ff 0%,#f7f9f8eb 48%,#f7f9f830 78%,transparent)}
}
@media(prefers-reduced-motion:reduce){.r55-type .title-line{transform:none!important;translate:none!important;opacity:1!important}.r55-type .chapter-copy .button{transition:none}.r55-type .final-cta{transition:none}}

.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] .line-mask:first-child{font-size:clamp(100px,10vw,155px);line-height:.88;letter-spacing:-.075em;margin-bottom:8px;padding-bottom:10px}
.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] .partner-stat{visibility:hidden}
.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] h1{font-size:clamp(38px,3.7vw,57px)}
@media(max-width:700px){.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] .line-mask:first-child{font-size:87px;margin-bottom:2px;padding-bottom:5px}.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] h1{font-size:33px;line-height:1}}

.r55-type:not(.medical).film-copy-cinema .chapter-copy{opacity:var(--copy-cinema);z-index:8;transition:none}
.r55-type:not(.medical).film-copy-cinema .stage:before{opacity:var(--copy-cinema);z-index:7;transition:none}

/* The map table is deliberately dark: use its navy/mint pair, not daytime ink
   over a night-interpolated grey scrim. The exterior/GDP grading is untouched. */
.r55-type.medical .chapter-copy:is([data-film-chapter="0"],[data-film-chapter="3"]){color:#eef5f6}
.r55-type.medical .chapter-copy:is([data-film-chapter="0"],[data-film-chapter="3"]) h1{color:#eef5f6}
.r55-type.medical .chapter-copy:is([data-film-chapter="0"],[data-film-chapter="3"]) h1 em{color:#9cda67}
.r55-type.medical .chapter-copy:is([data-film-chapter="0"],[data-film-chapter="3"]) p{color:#d1e0e3}
.r55-type.medical:has(.chapter-copy:is([data-film-chapter="0"],[data-film-chapter="3"])) .stage{--scrim-r:7;--scrim-g:30;--scrim-b:42}


/* The final live pass has one message. Detail/offer links return on replay;
   contact remains in the masthead and the immediately following full CTA. */
.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] p,.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] .hero-actions,.r55-type:not(.medical) .chapter-copy[data-film-chapter="5"] .partner-stat{display:none}

/* r56 — a medical end signature: ink, white, emerald; the film's colour stays natural. */
.r55-type.medical .chapter-copy[data-film-chapter="4"] h1{font-size:clamp(58px,6vw,90px);line-height:.98;letter-spacing:-.06em;margin:22px 0}
.r55-type.medical .chapter-copy[data-film-chapter="4"] h1 em{font-weight:500;color:#00854c}
.r55-type.medical .chapter-copy[data-film-chapter="4"] p{max-width:23em}
.r55-type.medical .final-cta{color:#0f1d27;background:#f6f9fb}
.r55-type.medical .cta-content{width:min(660px,50vw);gap:14px;padding-top:20px}
.r55-type.medical .cta-content h2{font-size:clamp(66px,6.6vw,100px);line-height:.97;letter-spacing:-.065em;font-weight:600;margin:8px 0 4px}
.r55-type.medical .cta-content h2 em{font-style:normal;color:#00854c;font-weight:500}
.r55-type.medical .cta-content .cta-promise{font-size:15px;line-height:1.55;letter-spacing:-.015em;max-width:27em;margin:2px 0 10px;color:#304956}
.r55-type.medical .final-cta .cta-phone{background:#0f1d27;color:#fff;font-size:clamp(28px,3vw,44px);padding:18px 23px;border:0;border-bottom:3px solid #00b050;box-shadow:none}
.r55-type.medical .final-cta .cta-phone:hover{background:#005c40;color:#fff}
.r55-type.medical .cta-email{font-size:14px;color:#203c48;text-decoration-thickness:1px;text-underline-offset:4px}
.r55-type.medical .cta-cinema:after{background:linear-gradient(90deg,#f6f9fbff 0%,#f6f9fbf5 27%,#f6f9fba0 48%,transparent 76%)}
@media(max-width:700px){
 .r55-type.medical .chapter-copy[data-film-chapter="4"] h1{font-size:50px;line-height:.99;margin:18px 0 16px}
 .r55-type.medical .final-cta{padding:76px 24px 24px}
 .r55-type.medical .cta-content{width:100%;gap:12px;padding-top:10px}
 .r55-type.medical .cta-content h2{font-size:63px;line-height:.98;max-width:none;margin:5px 0}
 .r55-type.medical .cta-content .cta-promise{font-size:12px;line-height:1.5;max-width:27em;margin:0 0 7px}
 .r55-type.medical .final-cta .cta-phone{font-size:26px;padding:16px 18px}
 .r55-type.medical .cta-email{font-size:12px}
 .r55-type.medical .cta-cinema:after{background:linear-gradient(0deg,#f6f9fbff 0%,#f6f9fbf7 47%,#f6f9fb55 77%,transparent)}
}

/* r62B: the whole Lass subject sits outside the shared PL/DE/EN reading area. */
@media(min-width:701px){
 .r55-type.medical .chapter-copy{width:36%;max-width:520px}
 .r55-type.medical .chapter-copy[data-film-chapter="4"] h1{font-size:clamp(42px,4.5vw,67px);line-height:1.02;letter-spacing:-.045em}
}
@media(max-width:700px){
 .r55-type.medical .chapter-copy:is([data-film-chapter="2"],[data-film-chapter="4"]) h1{font-size:30px;line-height:1.05;letter-spacing:-.04em;margin:12px 0 10px}
 .r55-type.medical .chapter-copy:is([data-film-chapter="2"],[data-film-chapter="4"]) p{font-size:10px;line-height:1.45;margin-bottom:8px}
}

.medical .stage:has(.chapter-copy:is([data-film-chapter="0"],[data-film-chapter="3"])) .temperature-chip{display:none}

/* The opening photograph is opaque from the first CTA frame; only copy fades.
   Otherwise the old live court remains visible through the van's windscreen. */
.r55-type:not(.medical) .final-cta{transition:visibility 0s;transform:none}
.r55-type:not(.medical) .final-cta .cta-content{opacity:0;transition:opacity .7s}
.r55-type:not(.medical) .final-cta.visible .cta-content{opacity:1}
@media(prefers-reduced-motion:reduce){.r55-type:not(.medical) .final-cta .cta-content{transition:none}}

/* B10: full-continent exhibits; the caption is above the illuminated network. */
.r55-type.medical[data-map-exhibit]:not([data-map-exhibit=""]) .chapter-copy{top:15%;transform:none;width:75%;max-width:1000px}
.r55-type.medical[data-map-exhibit]:not([data-map-exhibit=""]) .chapter-copy h1{font-size:clamp(32px,3vw,45px);line-height:1.01;margin:14px 0 12px;max-width:none}
.r55-type.medical[data-map-exhibit]:not([data-map-exhibit=""]) .chapter-copy p{font-size:12px;max-width:40em;margin-bottom:0}
.r55-type.medical[data-map-exhibit]:not([data-map-exhibit=""]) .chapter-copy :is(.hero-actions,.button){display:none}
.medical[data-map-exhibit]:not([data-map-exhibit=""]) .stage:before{background:linear-gradient(180deg,#061c29 0%,#061c29fa 28%,#061c2970 36%,transparent 43%)!important;opacity:1;transition:none}
.r55-type.medical[data-map-exhibit="gps"] .stage .temperature-chip{display:flex;top:22%;bottom:auto;right:5%;background:#0a283be6;color:#e7f7ee;border-color:#b0dbb52b;box-shadow:none}
.medical[data-map-exhibit="gps"] .temperature-chip small{color:#b1d7b9;font-size:10px;letter-spacing:.04em;line-height:1.3}.medical[data-map-exhibit]:not([data-map-exhibit=""]) .temperature-chip .live-dot{display:none}
.medical[data-map-exhibit="map"] .temperature-chip{display:none}
.medical[data-map-exhibit]:not([data-map-exhibit=""]) .scene-label{display:none}
.r55-type.medical .final-cta{transition:visibility 0s;transform:none}
.r55-type.medical .final-cta .cta-content{opacity:0;transition:opacity .7s}
.r55-type.medical .final-cta.visible .cta-content{opacity:1}
@media(max-width:700px){
 .r55-type.medical[data-map-exhibit]:not([data-map-exhibit=""]) .chapter-copy{top:13%;left:24px;width:calc(100% - 48px)}
 .r55-type.medical[data-map-exhibit]:not([data-map-exhibit=""]) .chapter-copy h1{font-size:30px;line-height:1.03;margin:12px 0 10px}
 .r55-type.medical[data-map-exhibit]:not([data-map-exhibit=""]) .chapter-copy p{font-size:10px;line-height:1.45;max-width:32em}
 .medical[data-map-exhibit]:not([data-map-exhibit=""]) .stage:before{background:linear-gradient(180deg,#061c29 0%,#061c29fa 39%,#061c2970 45%,transparent 50%)!important}
 .r55-type.medical[data-map-exhibit="gps"] .stage .temperature-chip{top:34%;left:24px;right:auto;padding:10px 14px}
 .medical[data-map-exhibit="gps"] .temperature-chip strong{font-size:22px}
}
@media(prefers-reduced-motion:reduce){.r55-type.medical .final-cta .cta-content{transition:none}}

/* B11/G1: live GDP approach reserves the left copy; K03 keeps its approved
   reading time in the sky above the photographed cab, with no montage change. */
@media(min-width:701px){
 .r55-type.medical .chapter-copy[data-film-chapter="1"]{width:34%;max-width:490px}
 .r55-type.medical .chapter-copy[data-film-chapter="1"] h1{font-size:clamp(32px,2.9vw,44px)}
 .r55-type.medical.film-copy-cinema .chapter-copy[data-film-chapter="1"]{top:11.5%;transform:none;width:90%;max-width:1250px}
 .r55-type.medical.film-copy-cinema .chapter-copy[data-film-chapter="1"] h1{font-size:clamp(26px,2.2vw,33px);line-height:1.1;margin:8px 0 0;display:flex;gap:.28em;flex-wrap:wrap}
 .r55-type.medical.film-copy-cinema .chapter-copy[data-film-chapter="1"] :is(.line-mask,.title-line){display:inline;overflow:visible}
 .r55-type.medical.film-copy-cinema .chapter-copy[data-film-chapter="1"] :is(p,.hero-actions){display:none}
 .r55-type.medical.film-copy-cinema .stage:has(.chapter-copy[data-film-chapter="1"]):before{background:linear-gradient(180deg,#edf4f5a8 8%,#edf4f56b 17%,transparent 24%)!important}
}

/* B11/G2: the copy shares the cool yard grade; no white fog bank beside asphalt. */
.r55-type.medical[data-vehicle-frame="cold"] .stage:before{background:linear-gradient(90deg,#21373ddb 0%,#21373da8 24%,#21373d35 39%,transparent 48%)!important}
.r55-type.medical[data-vehicle-frame="cold"] .chapter-copy{color:#edf4f4}
.r55-type.medical[data-vehicle-frame="cold"] .chapter-copy h1{color:#edf4f4}
.r55-type.medical[data-vehicle-frame="cold"] .chapter-copy h1 em{color:#99d99a}
.r55-type.medical[data-vehicle-frame="cold"] .chapter-copy p{color:#cfdcdd}
@media(min-width:701px){
 .r55-type.medical[data-vehicle-frame="cold"] .chapter-copy{width:33%;max-width:475px}
 .r55-type.medical[data-vehicle-frame="cold"] .chapter-copy h1{font-size:clamp(34px,3.2vw,48px)}
 .r55-type:not(.medical)[data-vehicle-frame="express"] .chapter-copy{width:31%;max-width:445px}
 .r55-type:not(.medical)[data-vehicle-frame="express"] .chapter-copy h1{font-size:clamp(38px,3.5vw,52px)}
}
@media(max-width:700px){
 .r55-type.medical[data-vehicle-frame="cold"] .stage:before{background:linear-gradient(180deg,#21373de6 10%,#21373db3 29%,#21373d24 43%,transparent 49%)!important}
}

/* B11/G8: the approved medical end photograph is a still surface. Keep its
   grade and source; cache the filtered image instead of animating its pixels. */
.medical.final-active .final-cta .cta-cinema-frame{animation:none!important;transform:scale(1.045) translate3d(-.45%,0,0);will-change:auto}
.medical.final-active .final-cta .cta-cinema-glow{animation:none!important;opacity:.3;will-change:auto}

/* GDP phone: the range stays between copy and van, away from its grille. */
/* B12/K12: GDP only, between the longest phone copy and the real roof. */
@media(max-width:700px){
 .r55-type.medical .stage:has(.chapter-copy[data-film-chapter="1"]) .temperature-chip{top:36.5%;bottom:auto;padding:9px 12px}
 .r55-type.medical[data-vehicle-frame="gdp"] .stage:before{background:linear-gradient(180deg,#edf4f5ed 0%,#edf4f5ed 31%,#edf4f59c 36%,transparent 43%)!important}
 .r55-type.medical .chapter-copy[data-film-chapter="1"] p{color:#354b51}
 .r55-type:not(.medical).night:has(.chapter-copy[data-film-chapter="1"]) .stage:before{background:linear-gradient(180deg,#0b2029e6 0%,#0b2029c7 28%,#0b202957 36%,transparent 46%)!important}
 /* A shorter, lighter wash retains warehouse detail under the phone copy. */
 .r55-type:not(.medical):not(.night):has(.chapter-copy[data-film-chapter="1"]) .stage:before{background:linear-gradient(180deg,#f3f3eed6 0%,#f3f3eebd 24%,#f3f3ee50 33%,transparent 40%)!important}
 .r55-type:not(.medical):not(.night) .chapter-copy[data-film-chapter="1"] p{color:#36433e}
 .r55-type:not(.medical):not(.night) .chapter-copy[data-film-chapter="1"] .partner-stat{color:#263a37}
 .r55-type:not(.medical):not(.night) .chapter-copy[data-film-chapter="1"] .partner-stat>span{color:#36433e}
}
.cut-shot{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transform-origin:50% 50%;display:block}
.cut-dip{position:absolute;inset:0;pointer-events:none;opacity:0;background:#02070a}
/* 17.10: final CTA reveal — the opacity transition never ran (0→1 in one frame); an animation runs regardless of display changes */
.final-cta.visible{animation:cta-reveal 1.15s cubic-bezier(.22,.7,.2,1) both}
@keyframes cta-reveal{0%{opacity:0;filter:blur(14px);transform:scale(1.035)}55%{filter:blur(2px)}100%{opacity:1;filter:none;transform:none}}
@media(prefers-reduced-motion:reduce){.final-cta.visible{animation:none}}
/* 19.10 Lass: scrim fades around uncovered 3D cuts (premium.js scrimCuts) instead of switching colour in one frame */
.medical .stage:before{filter:opacity(calc(var(--scrim-fade,1)*var(--copy-scrim,1)))}
/* 20.10 m80 LW and Lass: the text scrim fades with the chapter copy (film-typography --copy-scrim) — no milky band over a shot without text.
   Captions on their own clock keep it: intro caption, map exhibit, film cinema captions and the final screen. */
.r55-type:not(.medical) .stage:before{filter:opacity(var(--copy-scrim,1))}
.final-active .stage:before,.film-copy-cinema .stage:before,.medical.intro-caption-active .stage:before,.medical[data-map-exhibit]:not([data-map-exhibit=""]) .stage:before{--copy-scrim:1}
/* 19.10 LW and Lass: title, labels, chips and scrim fade with the clip coverage (film-deck --ui-cover) instead of popping at 2 % */
.media-playing:not(.final-active) :is(.chapter-copy,.scene-label,.hotspots,.temperature-chip,.alert-chip,.precision-clock){opacity:calc(1 - var(--ui-cover,1))}
.media-playing:not(.final-active) .stage:before{opacity:calc(1 - var(--ui-cover,1));transition:none}
/* 19.10 LW and Lass: the whole chapter copy fades with its title (film-typography --copy-block) — no one-frame text swap at a chapter change, no headless block after a film */
.r55-type .chapter-copy{filter:opacity(var(--copy-block,1))}
.r55-type .chapter-copy.copy-hidden,.r55-type .chapter-copy.copy-hidden a{pointer-events:none}
/* 20.10 m80 Lass K03 (desktop): the accent wraps under the claim, left of the refrigeration unit — on one line it ran over the dark grille */
@media(min-width:701px){.r55-type.medical.film-copy-cinema .chapter-copy[data-film-chapter="1"] h1{max-width:11em}.r55-type.medical.film-copy-cinema .chapter-copy[data-film-chapter="1"] h1 em{color:#006d37}}
/* 30.10 m81: light streak on the wipe edge (scene/wipe.js) — above the films, below the tools and the CTA; LW warm, Lass cool. */
.tx-sweep{position:absolute;top:-10%;bottom:-10%;left:-60%;right:-60%;z-index:9;pointer-events:none;opacity:0;mix-blend-mode:screen;will-change:transform,opacity;background:linear-gradient(105deg,transparent 45.5%,rgba(255,232,206,.14) 47.6%,rgba(255,249,240,.8) 50%,rgba(255,232,206,.14) 52.4%,transparent 54.5%)}
.medical .tx-sweep{background:linear-gradient(105deg,transparent 45.5%,rgba(206,255,236,.14) 47.6%,rgba(242,255,250,.8) 50%,rgba(206,255,236,.14) 52.4%,transparent 54.5%)}
@media(prefers-reduced-motion:reduce){.tx-sweep{display:none}}
/* m89: the 3D end card (premium.js) has the kino layout — e-mail button, phone as the second line; 3D pages do not load kino.css (same rules as kino.css:37–39). */
.final-cta .cta-email.cta-tel{display:inline-block;margin-top:14px;font-size:clamp(15px,1.1vw,18px);font-weight:600;color:#ffffffe6;text-decoration:none;border-bottom:1px solid #ffffff59;padding-bottom:3px}
.final-cta .cta-email.cta-tel:hover{color:#fff;border-bottom-color:#fff}
.final-cta .cta-tel .cta-alt{font-weight:500;color:#ffffffb3}
/* m89 (Codex review): Lass end cards are light (.medical), so its phone line is dark green there, in the kino and in 3D; 4 classes beat the white rule here and in kino.css:37–39. */
.medical .final-cta .cta-email.cta-tel{color:#18593f;border-bottom-color:#18593f59}
.medical .final-cta .cta-email.cta-tel:hover{color:#0b3d2a;border-bottom-color:#0b3d2a}
.medical .final-cta .cta-tel .cta-alt{color:#3b5d53}
