/* Shared motion + polish layer */
html.js .rv{opacity:0;transform:translate3d(0,28px,0);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s);will-change:opacity,transform}
html.js .rv.rv-l{transform:translate3d(-40px,0,0)}
html.js .rv.rv-r{transform:translate3d(40px,0,0)}
html.js .rv.rv-s{transform:scale(.92)}
html.js .rv.on{opacity:1;transform:none}
@keyframes flt{0%,100%{translate:0 0}50%{translate:0 -12px}}
@keyframes flt2{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -8px;rotate:1.5deg}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes marq{to{transform:translateX(-50%)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}70%{box-shadow:0 0 0 18px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
@keyframes shine{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(220%) skewX(-18deg)}}
.float{animation:flt 6s ease-in-out infinite}
.float.d2{animation-duration:7.5s;animation-delay:-2s}
.float.d3{animation-duration:8.5s;animation-delay:-4s}
.fab{animation:pulse 2.6s infinite}
.prog{position:fixed;left:0;top:0;height:4px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--pc,#D22027);z-index:100;pointer-events:none}
.mp>[data-depth]{transition:transform .25s ease-out;will-change:transform}
[data-tilt]{transform-style:preserve-3d;transition:transform .25s ease-out,box-shadow .25s}
[data-tilt].tilting{transition:transform .08s linear}
.marq{overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq .track{display:inline-flex;gap:clamp(28px,4vw,56px);align-items:center;animation:marq 38s linear infinite;padding-right:clamp(28px,4vw,56px)}
.marq:hover .track{animation-play-state:paused}
.btn{transition:background .2s,color .2s,transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.18)}
.shine{position:relative;overflow:hidden}
.shine:after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shine 3.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){
 html.js .rv{opacity:1;transform:none;transition:none}
 .float,.fab,.marq .track,.shine:after{animation:none!important}
 [data-tilt],.mp>[data-depth]{transition:none;transform:none!important}
}
.mp>[data-depth]{transform:translate3d(var(--mx,0px),var(--my,0px),0)}
[data-par]{transform:translate3d(0,var(--py,0px),0)}
@media(max-width:900px){html.js .rv.rv-l,html.js .rv.rv-r{transform:translate3d(0,28px,0)}}
html,body{overflow-x:clip}

/* brand nav icons */
.brandbar a{display:flex!important;align-items:center;gap:9px}
.brandbar .bi{height:22px;width:auto;flex:none;opacity:.7;transition:opacity .25s,transform .35s cubic-bezier(.2,.7,.2,1)}
.brandbar svg.bi{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.brandbar a:hover .bi,.brandbar a[aria-current] .bi{opacity:1;transform:translateY(-1px) scale(1.1)}
@media(max-width:700px){.brandbar a{gap:6px!important}.brandbar .bi{height:17px}.brandbar svg.bi{width:16px;height:16px}.brandbar a.x span{display:none}}
@media(max-width:430px){.brandbar svg.bi{display:none}}
.brandbar img.bi{filter:brightness(0) invert(1)}

/* UX polish */
html{scroll-behavior:smooth;scroll-padding-top:84px}
:where(a,button,summary,[role=tab]):focus-visible{outline:3px solid currentColor;outline-offset:3px;border-radius:6px}
footer a{display:inline-block;padding:11px 0;min-height:44px;box-sizing:border-box}
.more{min-height:44px}
@media (hover:none){footer a{padding:13px 0}}
video{max-width:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* mobile */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media(max-width:900px){.ret .in{gap:32px}.ret .tag{margin-top:6px}}
@media(max-width:560px){body{overflow-x:hidden}.wa,.wafab,.float-wa{bottom:max(16px,env(safe-area-inset-bottom))}}

/* typography: no lonely last words */
h1,h2,h3,h4,.lead,figcaption,.tag,.btn{text-wrap:balance}
p,li,small,dd,blockquote{text-wrap:pretty}
.lead,.band p,.cl-cap{text-wrap:balance}
.hero p{text-wrap:pretty}
