/* Video opening: an editorial title and an inclined oval cut from a real production. */
/* The title stays in the first viewport; the supporting copy follows the oval down. */
.im-oval-hero{--oval-purple:#8d62a7;--oval-fold-height:clamp(640px,calc(100svh - 105px),1000px);--oval-support-top:max(calc(var(--oval-fold-height) + 24px),calc(100svh - 81px));--oval-width:min(97.2vw,1848px);--oval-height:var(--oval-width);--oval-gutter:clamp(28px,4.2vw,88px);--oval-hidden-top:max(0px,calc(var(--oval-height)*.4833333333 - var(--oval-fold-height)*.5));position:relative;isolation:isolate;overflow:hidden;background:#fcfbfd;color:#2c1e46;height:max(var(--oval-fold-height),calc(var(--oval-fold-height)*.5 + var(--oval-height)*.5 + 32px),calc(var(--oval-support-top) + 240px));box-sizing:border-box}
.im-oval-hero__defs{position:absolute;pointer-events:none}
.im-oval-hero__media{position:absolute;z-index:0;width:var(--oval-width);height:var(--oval-height);right:calc(-13vw - var(--oval-width)/12);top:calc(var(--oval-fold-height)*.5 + var(--oval-height)/60);transform:translateY(-50%);clip-path:url(#video-oval-mask);background:#c4b8cb}
.im-oval-hero__video{position:absolute;top:var(--oval-hidden-top);width:100%;height:calc(100% - var(--oval-hidden-top));object-fit:cover;object-position:var(--clip-x,60%) 50%;display:block;opacity:0;transition:opacity .65s ease;transform:scale(var(--clip-zoom,1));transform-origin:50% 0}
.im-oval-hero__video.is-active{opacity:1;z-index:1}
.im-oval-hero__video.is-outgoing{opacity:1;z-index:0}
.im-oval-hero__copy{position:relative;z-index:2;width:49%;padding:clamp(40px,5svh,72px) 0 68px var(--oval-gutter);box-sizing:border-box;height:var(--oval-fold-height);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.im-oval-hero__title .kinetic-word{margin:0;display:flex;align-items:center;gap:.015em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:clamp(88px,9.5vw,172px);font-weight:700;line-height:.9;letter-spacing:0}
.im-oval-hero__letter{display:block;flex:0 0 auto}
.im-oval-hero__eyebrow{margin:17px 0 30px;font-size:14px;font-weight:500;letter-spacing:.13em}
.im-oval-hero__support{position:absolute;z-index:2;left:var(--oval-gutter);top:var(--oval-support-top);width:44%;max-width:620px}
.wf-page .im-oval-hero h1{font-family:"Shippori Mincho",serif;font-weight:500!important}
.im-oval-hero h1{font-size:clamp(32px,min(3.5vw,6.3svh),62px);font-weight:500;line-height:1.5;letter-spacing:.045em;margin:0}
.im-oval-hero h1>span{display:block;white-space:nowrap}
.im-oval-hero h1 em{color:var(--oval-purple);font-style:normal;font-weight:500}
.im-oval-hero__highlight{position:relative;isolation:isolate;display:inline-block;color:#fff;line-height:1.34;padding:.02em .14em .06em;margin-right:.1em;vertical-align:baseline}
.im-oval-hero__description{font-size:clamp(14px,1.25vw,19px);line-height:2;letter-spacing:.04em;margin:0 0 28px;color:#655c70}
.im-oval-hero__actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.wf-page .im-oval-hero__contact{display:flex;align-items:center;gap:24px;padding:12px 15px 12px 26px;border-radius:99px;background:#2c1e46;color:#fff;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s,transform .2s}
.im-oval-hero__contact>span{display:grid;place-items:center;border:1px solid #ffffff50;border-radius:50%;width:32px;height:32px;font-size:19px;font-weight:400}
.im-oval-hero__contact:hover{background:#76528d;transform:translateY(-2px)}
.im-oval-hero__reel{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;text-decoration:none;border-bottom:1px solid #b6a4c2;padding:10px 0;white-space:nowrap}
.im-oval-hero__foot{position:absolute;z-index:3;bottom:36px;right:var(--oval-gutter);display:flex;align-items:center;gap:14px}
.im-oval-hero__credit{display:flex;flex-direction:column;gap:3px;background:#fffef2e8;border-radius:5px;padding:12px 18px;color:#2c1e46;text-decoration:none;backdrop-filter:blur(8px);font-size:11px;line-height:1.5}
.im-oval-hero__credit>span:first-child{font:500 8px var(--en);letter-spacing:.18em;color:#70617b}
.im-oval-hero__credit b{margin-left:10px;font-size:17px;font-weight:400}
.im-oval-hero__pause{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:10px;border:1px solid #fff;background:#ffffffeb;border-radius:50%;color:#2c1e46;cursor:pointer;backdrop-filter:blur(8px)}
.im-oval-hero__pause[hidden]{display:none}
.im-oval-hero__pause svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.im-oval-hero__pause .play-icon{display:none}
.im-oval-hero__pause[aria-pressed="true"] .play-icon{display:block}
.im-oval-hero__pause[aria-pressed="true"] .pause-icon{display:none}


.im-oval-hero a:focus-visible,.im-oval-hero button:focus-visible{outline:3px solid #9e70b5;outline-offset:5px}
@media(min-width:1101px) and (prefers-reduced-motion:no-preference){.im-oval-hero__copy{animation:oval-copy-in .85s .08s both}@keyframes oval-copy-in{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}}
@media(min-width:1800px){.im-oval-hero__media{right:calc(-190px - var(--oval-width)/12)}.im-oval-hero{--oval-gutter:max(88px,calc((100vw - 1680px)/2))}}
@media(max-width:1100px){.im-oval-hero{--oval-fold-height:max(650px,calc(100svh - 90px));--oval-width:109.2vw;--oval-height:129.6vw;--oval-gutter:32px}.im-oval-hero__media{right:calc(-25vw - var(--oval-width)/12)}.im-oval-hero__copy{width:58%;padding-left:32px}.im-oval-hero h1{font-size:clamp(34px,4.3vw,47px)}.im-oval-hero__support{width:49%}.im-oval-hero__title .kinetic-word{font-size:clamp(88px,10vw,110px)}.im-oval-hero__eyebrow{font-size:10px}.im-oval-hero__actions{gap:15px}.wf-page .im-oval-hero__contact{padding-left:20px;font-size:13px;gap:12px}.im-oval-hero__reel{font-size:11px}}
@media(max-width:700px){.im-oval-hero{height:auto;min-height:0;padding:0 0 32px;display:flex;flex-direction:column}.im-oval-hero__media{position:relative;order:0;width:115%;height:86vw;min-height:300px;max-height:440px;right:auto;left:8%;top:auto;transform:none;clip-path:ellipse(57% 45% at 53% 46%);rotate:-15deg;margin-top:-25px;margin-bottom:-16px}.im-oval-hero__video{position:absolute;top:0;height:100%;rotate:15deg;scale:1.2;object-position:45% 50%}.im-oval-hero__copy{order:1;width:100%;height:auto;min-height:max(0px,calc(100svh - clamp(300px,86vw,440px) - 32px));padding:0 26px;justify-content:start}.im-oval-hero__title .kinetic-word{font-size:clamp(76px,21vw,130px)}.im-oval-hero__support{position:relative;order:2;width:100%;max-width:none;left:auto;top:auto;bottom:auto;box-sizing:border-box;padding:0 26px}.im-oval-hero h1{font-size:clamp(27px,7vw,40px);line-height:1.5;letter-spacing:.025em}.im-oval-hero h1>span{display:block}.im-oval-hero__eyebrow{margin:12px 0 19px;font-size:12px}.im-oval-hero__eyebrow span+span{padding-left:13px}.im-oval-hero__description{font-size:12px;margin:18px 0 22px}.im-oval-hero__actions{gap:20px}.wf-page .im-oval-hero__contact{font-size:12px;padding:10px 12px 10px 20px;gap:13px}.im-oval-hero__contact>span{width:27px;height:27px}.im-oval-hero__reel{font-size:10px}.im-oval-hero__foot{position:relative;order:3;bottom:auto;right:auto;align-self:stretch;justify-content:flex-end;margin:28px 26px 0;gap:8px}.im-oval-hero__credit{font-size:8px;padding:7px 10px}.im-oval-hero__credit>span:first-child{font-size:6px}.im-oval-hero__credit b{font-size:13px;margin-left:3px}.im-oval-hero__pause{width:36px;height:36px;padding:9px}}

/* Reuse the PHOTO page's dot-ink glitch, with its own SVG filter. */
.im-oval-hero__title[data-letter-style="glitch"] .kinetic-word .type-face{--glitch-ink:#2c1e46;--glitch-light:rgba(145,98,168,.85);--glitch-highlight:rgba(181,138,203,.6);display:block;padding-right:0;filter:url('#video-type-glitch')}
.im-oval-hero__title .im-oval-hero__letter:nth-child(2n) .type-face{animation-delay:-.17s}
.im-oval-hero__title[data-ink="brand"] .im-oval-hero__letter:nth-child(2n) .type-face::before{animation-delay:-.17s}
.im-oval-hero__title[data-ink="brand"] .im-oval-hero__letter:nth-child(2n) .type-face::after{animation-delay:-.57s}
.im-oval-hero__title[data-ink="brand"] .im-oval-hero__letter:nth-child(3n) .type-face::before{animation-delay:-.39s}
.im-oval-hero__title[data-ink="brand"] .im-oval-hero__letter:nth-child(3n) .type-face::after{animation-delay:-.82s}
.im-oval-hero:not([data-video-motion="running"]) .type-face{animation:none!important;filter:none!important;translate:none!important}
.im-oval-hero:not([data-video-motion="running"]) .type-face::before,.im-oval-hero:not([data-video-motion="running"]) .type-face::after{display:none}
@media(prefers-reduced-motion:reduce){.im-oval-hero .type-face{animation:none!important;filter:none!important;translate:none!important}.im-oval-hero .type-face::before,.im-oval-hero .type-face::after{display:none}}

/* Match the TOP Japanese headline: stable character metrics, a brief reveal,
   then the same 300 ms signal break every 3.8 seconds. */
#video-hero-title .scramble-letter{position:relative;display:inline-block;white-space:pre;vertical-align:baseline}
#video-hero-title .scramble-metric{visibility:hidden}
#video-hero-title .scramble-unit{display:inline-block;white-space:nowrap}
#video-hero-title .scramble-letter::after{content:attr(data-glyph);position:absolute;inset:0;white-space:pre;color:inherit;pointer-events:none}
#video-hero-title .scramble-letter::before{content:attr(data-glyph);position:absolute;inset:0;z-index:1;white-space:pre;pointer-events:none;color:#f1e5fa;text-shadow:-3px 0 #9162a8,2px 0 #c6a0da;opacity:0}
#video-hero-title[data-scramble-state="revealing"] .scramble-letter::before{animation:video-headline-signal 320ms steps(1,end) infinite}
#video-hero-title[data-scramble-state="revealing"] .scramble-letter::after{animation:video-headline-twitch 320ms steps(1,end) infinite}
#video-hero-title[data-scramble-state="revealing"] .scramble-unit:nth-child(3n) .scramble-letter::before{animation-delay:-80ms}
#video-hero-title[data-scramble-state="complete"] .scramble-letter::before{animation:video-headline-idle-signal 3.8s steps(1,end) infinite}
#video-hero-title[data-scramble-state="complete"] .scramble-letter::after{animation:video-headline-idle-twitch 3.8s steps(1,end) infinite}
@keyframes video-headline-signal{0%,15%,40%,57%,82%,100%{opacity:0;transform:translateX(0)}16%,23%{opacity:.95;transform:translateX(5px);clip-path:inset(19% 0 48% 0)}24%,39%{opacity:.8;transform:translateX(-4px);clip-path:inset(59% 0 19% 0)}58%,68%{opacity:.9;transform:translateX(-5px);clip-path:inset(34% 0 41% 0)}69%,81%{opacity:.75;transform:translateX(3px);clip-path:inset(72% 0 11% 0)}}
@keyframes video-headline-twitch{0%,17%,30%,61%,73%,100%{transform:translateX(0);text-shadow:none}18%,29%{transform:translateX(-2px);text-shadow:2px 0 #9162a8}62%,72%{transform:translateX(2px);text-shadow:-2px 0 #c6a0da}}
@keyframes video-headline-idle-signal{0%,91%,95%,99%,100%{opacity:0;transform:translateX(0)}92%,93%{opacity:.95;transform:translateX(5px);clip-path:inset(19% 0 48% 0)}94%{opacity:.8;transform:translateX(-4px);clip-path:inset(59% 0 19% 0)}96%,97%{opacity:.9;transform:translateX(-5px);clip-path:inset(34% 0 41% 0)}98%{opacity:.75;transform:translateX(3px);clip-path:inset(72% 0 11% 0)}}
@keyframes video-headline-idle-twitch{0%,91%,95%,99%,100%{transform:translateX(0);text-shadow:none}92%,94%{transform:translateX(-2px);text-shadow:2px 0 #9162a8}96%,98%{transform:translateX(2px);text-shadow:-2px 0 #c6a0da}}
.im-oval-hero:not([data-video-motion="running"]) #video-hero-title .scramble-letter::before{display:none}
.im-oval-hero:not([data-video-motion="running"]) #video-hero-title .scramble-letter::after{animation:none}
@media(prefers-reduced-motion:reduce){#video-hero-title .scramble-letter::before{display:none!important}#video-hero-title .scramble-letter::after{animation:none!important}}

/* One offset outline follows the video mask, with the image covering its far edge. */
.im-oval-hero__outline{position:absolute;z-index:0;pointer-events:none;overflow:visible;width:var(--oval-width);height:var(--oval-height);right:calc(-13vw - var(--oval-width)/12);top:calc(var(--oval-fold-height)*.5 + var(--oval-height)/60);transform:translateY(-50%);translate:-34px -22px;fill:none;stroke:#8d62a7;stroke-width:1.5}
.im-oval-hero__outline ellipse{vector-effect:non-scaling-stroke}
.im-oval-hero__outline-mobile{display:none}
@media(min-width:1800px){.im-oval-hero__outline{right:calc(-190px - var(--oval-width)/12)}}
@media(max-width:1100px){.im-oval-hero__outline{right:calc(-25vw - var(--oval-width)/12);translate:-26px -18px}}
@media(max-width:700px){.im-oval-hero__outline{width:115%;height:86vw;min-height:300px;max-height:440px;right:auto;left:8%;top:-25px;transform:none;rotate:-15deg;translate:-12px -12px;stroke-width:1.2}.im-oval-hero__outline-desktop{display:none}.im-oval-hero__outline-mobile{display:block}}

/* Reveal the purple ribbon from the left while the Japanese headline appears. */
.im-oval-hero__highlight::before{content:"";position:absolute;inset:0;z-index:-1;background:#2c1e46;transform-origin:left center}
#video-hero-title[data-scramble-state="revealing"] .im-oval-hero__highlight::before{animation:video-highlight-reveal .72s .2s cubic-bezier(.22,1,.36,1) both}
@keyframes video-highlight-reveal{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.im-oval-hero__highlight::before{animation:none!important;transform:none!important}}

/* Use the PHOTO hero's purple dot ink and offset signal on the WORKS heading. */
.im-video-works__title .kinetic-word{display:flex;align-items:center;gap:.015em;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:clamp(32px,4.4vw,56px);font-weight:700;letter-spacing:0;line-height:1}
.im-video-works__letter{display:block;flex:0 0 auto}
.im-video-works__title[data-letter-style="glitch"] .kinetic-word .type-face{--glitch-ink:#2c1e46;--glitch-light:rgba(145,98,168,.85);--glitch-highlight:rgba(181,138,203,.6);display:block;padding-right:0;filter:url('#video-type-glitch')}
.im-video-works__title .im-video-works__letter:nth-child(2n) .type-face{animation-delay:-.17s}
.im-video-works__title[data-ink="brand"] .im-video-works__letter:nth-child(2n) .type-face::before{animation-delay:-.17s}
.im-video-works__title[data-ink="brand"] .im-video-works__letter:nth-child(2n) .type-face::after{animation-delay:-.57s}
.im-video-works__title[data-ink="brand"] .im-video-works__letter:nth-child(3n) .type-face::before{animation-delay:-.39s}
.im-video-works__title[data-ink="brand"] .im-video-works__letter:nth-child(3n) .type-face::after{animation-delay:-.82s}
@media(prefers-reduced-motion:reduce){.im-video-works__title .type-face{animation:none!important;filter:none!important;translate:none!important}.im-video-works__title .type-face::before,.im-video-works__title .type-face::after{display:none}}
