/* Scroll-driven print reveal, with a physical roll and measurement frame. */
.p-impression-grand-format .unroll { isolation:isolate; }
.p-impression-grand-format .unroll__pin { background:radial-gradient(ellipse at 50% 42%,#dceff570,transparent 65%) !important; }
.p-impression-grand-format .unroll__sheet { filter:drop-shadow(0 28px 30px #102e3926); }
.p-impression-grand-format .unroll__roll { background:linear-gradient(180deg,#3c5663 0%,#a5bac4 12%,#fff 29%,#d9e6eb 43%,#7f9aa7 74%,#263f4c 100%) !important; box-shadow:0 16px 24px -9px #142f4d66,inset 0 1px 0 #fff; }
.p-impression-grand-format .unroll__cap .kicker { color:#087ba7; }
.p-impression-grand-format .unroll__cap p { color:#18232d !important; }
.p-impression-grand-format .unroll__cap--3 .unroll__big { font-size:clamp(26px,3.7vw,60px) !important; max-width:22ch !important; }
@media(prefers-reduced-motion:no-preference) and (min-width:1000px) {
 .js .p-impression-grand-format .unroll { height:300svh; --u:clamp(.1,calc(.1 + var(--p,0)*1.9),1); --x:clamp(0,calc((var(--p,0) - .56)/.35),1); }
 .js .p-impression-grand-format .unroll__stage { transform:rotateX(calc((1 - var(--u))*32deg)) rotateY(calc((1 - var(--u))*-14deg)) rotateZ(calc((1 - var(--u))*-9deg)) translate3d(0,calc((1 - var(--u))*-5vh),0); }
 .js .p-impression-grand-format .unroll__sheet { height:66svh; transform:scale(calc(.82 + var(--u)*.18 + var(--x)*.55)) translate3d(0,calc(var(--x)*-3vh),0); }
 .js .p-impression-grand-format .unroll__type { font-size:18vw; -webkit-text-stroke:1px #087ba72b; transform:translate3d(calc(5vw - var(--p,0)*32vw),-50%,0); }
 .js .p-impression-grand-format .unroll__print::after { content:""; position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,#ffffff55 45%,transparent 64%);background-size:250% 100%;background-position:calc(var(--p,0)*140%) 0;mix-blend-mode:screen; }
 .js .p-impression-grand-format .unroll__stage::before { content:"";position:absolute;left:50%;top:50%;width:calc(66svh*1417/1890 + 28px);height:calc(66svh + 28px);translate:-50% -50%;border:1px solid #087ba73b;pointer-events:none;opacity:clamp(0,calc((var(--p,0) - .12)*5),.75);transform:scale(calc(.82 + var(--u)*.18 + var(--x)*.55)); }
 .js .p-impression-grand-format .unroll__cap--1,.js .p-impression-grand-format .unroll__cap--2 { padding:20px 24px;border-left:2px solid #229ad6;background:#ffffffd9;backdrop-filter:blur(12px);box-shadow:0 12px 35px #1232450a;max-width:24vw; }
 .js .p-impression-grand-format .unroll__cap--3 { z-index:3;bottom:7vh; }
 .js .p-impression-grand-format .unroll__shade { background:linear-gradient(0deg,#f2f2eff5,transparent 68%); }
}
@media(max-width:999px) { .p-impression-grand-format .unroll__cap p { color:#18232d; } }

/* Giant typography printed behind the sheet as the visitor scrolls. */
@media(prefers-reduced-motion:no-preference) and (min-width:1000px) {
 .js .p-impression-grand-format .unroll__type {
  --ink-progress:clamp(0,calc((var(--p,0) - .08)/.42),1);
  --scan-x:calc(var(--ink-progress)*100%);
  z-index:0;pointer-events:none;line-height:1.1;letter-spacing:-.055em;
  font-size:19vw;font-stretch:112%;padding:.1em .08em;
  color:transparent;-webkit-text-stroke:1px #087ba749;
  background-image:linear-gradient(105deg,#182d3b 0%,#087ba7 45%,#30b9df 70%,#087ba7 100%);
  background-repeat:no-repeat;background-size:var(--scan-x) 100%;
  background-clip:text;-webkit-background-clip:text;
  opacity:calc(.12 + var(--ink-progress)*.22 - var(--x)*.2);
  transform:perspective(1400px) translate3d(calc(4vw - var(--p,0)*27vw),-50%,calc(var(--p,0)*-110px)) rotateY(calc(9deg - var(--p,0)*15deg));
  transform-origin:50% 50%;filter:drop-shadow(0 10px 25px #087ba70d);
 }
 .js .p-impression-grand-format .unroll__type::after {
  content:"";position:absolute;left:var(--scan-x);top:12%;bottom:12%;width:2px;
  background:linear-gradient(transparent,#54ccef,#087ba7,transparent);
  box-shadow:0 0 18px #229ad660,0 0 55px #229ad625;
  opacity:calc(clamp(0,calc(var(--ink-progress)*8),1)*clamp(0,calc((1 - var(--ink-progress))*8),1));
 }
 .js .p-impression-grand-format .unroll__stage { z-index:1; }
 .js .p-impression-grand-format .unroll__caps { z-index:3; }
 .js .p-impression-grand-format .unroll__shade { z-index:2; }
}
@media(prefers-reduced-motion:reduce) {
 .p-impression-grand-format .unroll__type { color:transparent;-webkit-text-stroke:1px #087ba730; }
}
