/* Base for rebuilt brand studies (v2). Every study renders inside .sv2.sv2-NNN and scopes its own CSS to that class. */
.sv2{position:relative;width:100%;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-family:'Pretendard',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',system-ui,sans-serif;word-break:keep-all;overflow-wrap:break-word;font-kerning:normal}
.sv2 *,.sv2 *::before,.sv2 *::after{box-sizing:border-box}
.sv2 :where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote){margin:0;padding:0}
.sv2 :where(ul,ol){list-style:none}
.sv2 :where(h1,h2,h3,h4){text-wrap:balance;font-weight:inherit}
.sv2 :where(p,li,dd){text-wrap:pretty}
.sv2 :where(img,picture,video,canvas,svg){display:block;max-width:100%}
.sv2 :where(img){height:auto}
.sv2 :where(a){color:inherit;text-decoration:none}
.sv2 :where(button,input,select,textarea){font:inherit;color:inherit;letter-spacing:inherit}
.sv2 :where(button){margin:0;border:0;padding:0;background:none;cursor:pointer;text-align:inherit}
.sv2 :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid currentColor;outline-offset:3px}
.sv2 .sv2-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Hero frame used for gallery thumbnails: exactly 16:10 at 1440px wide, viewport-bound elsewhere. */
.sv2 .sv2-hero{position:relative;overflow:hidden;height:clamp(560px,calc(100svh - 44px),62.5vw)}
@media (max-width:1024px){.sv2 .sv2-hero{height:auto;min-height:min(calc(100svh - 44px),980px)}}
/* Reveal motion, enabled only when the runtime adds .sv2-motion (no reduced motion, no capture mode). */
.sv2-motion .sv2 [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.sv2-motion .sv2 [data-reveal="fade"]{transform:none}
.sv2-motion .sv2 [data-reveal="mask"]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1);transition-delay:var(--reveal-delay,0ms)}
.sv2-motion .sv2 [data-reveal].is-in{opacity:1;transform:none}
.sv2-motion .sv2 [data-reveal="mask"].is-in{clip-path:inset(0 0 0 0)}
