.vpre, .vpre * { box-sizing: border-box; }
.vpre {
position: absolute;
inset: 0;
display: block;
border-radius: 6px;
overflow: hidden;
background: #fff;
box-shadow: inset 0 0 0 1px rgba(43, 41, 45, .1);
font-family: 'Montserrat', 'Montserrat Fb', 'Montserrat Fb A', sans-serif;
}
.vpre-app {
position: absolute; z-index: 1; inset: 0; display: block;
transition: opacity .35s ease, transform .35s ease;
}
.vpre-desk {
position: absolute; top: 0; bottom: 0; left: 0; width: 34%;
display: block; background: rgba(43, 41, 45, .028);
border-right: 1px solid rgba(43, 41, 45, .07);
}
.vpre-tile {
position: absolute; top: 48%; width: 17%; height: 30.222%;
display: block; border-radius: 3px; background: rgba(43, 41, 45, .055);
box-shadow: inset 0 0 0 1px rgba(43, 41, 45, .07);
}
.vpre-tile--1 { left: 37%; }
.vpre-tile--2 { left: 57.75%; }
.vpre-tile--3 { left: 78.5%; }
.vpre-play {
position: absolute; top: 50%; left: 50%; display: block; width: 0; height: 0;
margin: -4px 0 0 -3px;
border-style: solid; border-width: 4px 0 4px 6.5px;
border-color: transparent transparent transparent rgba(43, 41, 45, .26);
}
.vpre-drop {
position: absolute; z-index: 2; top: 20%; right: 4.5%; left: 37%; height: 20%;
display: flex; align-items: center; justify-content: center; gap: 6%;
border: 1px dashed rgba(43, 41, 45, .26); border-radius: 4px;
background: rgba(43, 41, 45, .03);
transition: opacity .35s ease, border-color .35s ease, background-color .35s ease;
}
.vpre-arrow { position: relative; flex: 0 0 auto; display: block; width: 9px; height: 11px; }
.vpre-arrow:before {
content: ""; position: absolute; top: 4px; left: 3.5px; display: block;
width: 2px; height: 7px; border-radius: 1px; background: rgba(43, 41, 45, .34);
}
.vpre-arrow:after {
content: ""; position: absolute; top: 0; left: 0; display: block; width: 0; height: 0;
border-style: solid; border-width: 0 4.5px 5px 4.5px;
border-color: transparent transparent rgba(43, 41, 45, .34) transparent;
}
.vpre-hint { flex: 0 0 auto; display: block; width: 26%; height: 5px; border-radius: 3px; background: rgba(43, 41, 45, .16); }
.vpre-row1 {
position: absolute; z-index: 2; top: 20%; right: 4.5%; left: 37%; height: 20%;
display: block; border-radius: 4px; background: #fff; opacity: 0;
box-shadow: 0 1px 3px rgba(43, 41, 45, .07), inset 0 0 0 1px rgba(43, 41, 45, .1);
transition: opacity .35s ease;
}
.vpre-rmeta {
position: absolute; z-index: 3; top: 30%; right: 6.5%; left: 53.9%;
display: flex; flex-direction: column; gap: 5px;
transform: translateY(-50%);
opacity: 0; transition: opacity .35s ease;
}
.vpre-rtop  { display: flex; align-items: center; gap: 5px; }
.vpre-fname { flex: 1 1 auto; display: block; height: 5px; border-radius: 3px; background: rgba(43, 41, 45, .5); }
.vpre-pct {
flex: 0 0 auto; display: block; width: 24px; height: 1.3em; overflow: hidden;
font-size: 7.5px; font-weight: 700; line-height: 1.3em; letter-spacing: 0;
text-align: right; color: rgba(43, 41, 45, .72);
}
.vpre-pctroll { display: block; transform: translateY(0); }
.vpre-pct-n   { display: block; height: 1.3em; }
.vpre-track { display: block; width: 100%; height: 4px; overflow: hidden; border-radius: 2px; background: rgba(43, 41, 45, .1); }
.vpre-fill  { display: block; width: 0; height: 100%; border-radius: 2px; background: #00ffff; transition: width .35s ease; }
.vpre-file {
position: absolute; z-index: 4; top: 30%; left: 3%; width: 29%;
display: block; padding: 2%; border-radius: 4px; background: #fff;
box-shadow: 0 2px 7px rgba(43, 41, 45, .13), inset 0 0 0 1px rgba(43, 41, 45, .1);
transition: top .4s ease, left .4s ease, opacity .35s ease,
transform .35s ease, box-shadow .35s ease;
}
.vpre-slot { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 3px; background: rgba(43, 41, 45, .08); }
.vpre-name {
display: block; margin-top: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
font-size: 8.5px; font-weight: 700; line-height: 1.2; color: #2B292D;
}
.vpre-meta {
display: block; margin-top: 3px; white-space: nowrap;
font-size: 7.5px; font-weight: 600; line-height: 1.2; color: rgba(43, 41, 45, .5);
}
.vpre-shot {
position: absolute; z-index: 5; top: 33.5556%; left: 5%; width: 25%; height: 25%;
display: block; overflow: hidden; border-radius: 3px; background: rgba(43, 41, 45, .07);
transition: top .4s ease, left .4s ease, width .4s ease, height .4s ease,
opacity .4s ease, border-radius .4s ease, transform .4s ease;
}
.vpre-shot > img,
.vpre-shot > video {
position: absolute; inset: 0;
display: block; width: 100%; height: 100%; object-fit: cover;
}
.vpre-kind {
position: absolute; bottom: 4px; left: 4px; display: block;
padding: 2px 3.5px; border-radius: 2px; background: rgba(43, 41, 45, .82);
color: #fff; font-size: 7px; font-weight: 700; line-height: 1; letter-spacing: .04em;
transition: opacity .35s ease;
}
.vpre-cursor {
position: absolute; z-index: 8; top: 104%; left: -8%; display: block; width: 12px; height: 17px;
opacity: 0; transform-origin: 0 0;
transition: opacity .3s ease;
filter: drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff)
drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff)
drop-shadow(0 1px 2.5px rgba(43, 41, 45, .5));
}
.vpre-cursor:before {
content: ""; position: absolute; inset: 0; display: block; background: #2B292D;
clip-path: polygon(0 0, 0 78%, 24% 60%, 39% 97%, 60% 88%, 45% 53%, 73% 53%);
}
.vpre .dw-live {
top: 8.8889%; left: 5%; z-index: 9;
opacity: 0; transform: translateY(6px) scale(.92);
transition: opacity .35s ease, transform .35s ease;
}
.vpre .dw-cm {
z-index: 9; left: 5%; bottom: 8.8889%;
max-width: 56%;
transition: opacity .35s ease, transform .35s ease;
}
.vpre-bar {
position: absolute; z-index: 9; right: 0; bottom: 0; left: 0;
display: block; height: 4px; overflow: hidden; background: rgba(43, 41, 45, .5); opacity: 0;
transition: opacity .35s ease;
}
.vpre-barfill { display: block; width: 0; height: 100%; background: #00ffff; transition: width .35s ease; }
@keyframes vpre-shot {
0%, 10%     { top: 33.5556%; left: 5%;     width: 25%;     height: 25%;     border-radius: 3px; opacity: 1; transform: none;
animation-timing-function: cubic-bezier(.3, 0, .5, 1); }
12%         { top: 31%;      left: 6.5%;   width: 25%;     height: 25%;     border-radius: 3px; opacity: 1; transform: rotate(-2.2deg) scale(1.03);
animation-timing-function: cubic-bezier(.55, 0, .75, .5); }
17.5%       { top: 20.5%;    left: 28%;    width: 25%;     height: 25%;     border-radius: 3px; opacity: 1; transform: rotate(-2.2deg) scale(1.03);
animation-timing-function: cubic-bezier(.2, .65, .25, 1); }
24%         { top: 17.5%;    left: 53.75%; width: 25%;     height: 25%;     border-radius: 3px; opacity: 1; transform: rotate(-1.1deg) scale(1.03);
animation-timing-function: cubic-bezier(.3, .8, .4, 1); }
25%         { top: 17.5%;    left: 53.75%; width: 25%;     height: 25%;     border-radius: 3px; opacity: 1; transform: none;
animation-timing-function: cubic-bezier(.3, .85, .35, 1); }
29%, 42%    { top: 23.5556%; left: 39%;    width: 12.889%; height: 12.889%; border-radius: 2px; opacity: 1; transform: none;
animation-timing-function: cubic-bezier(.55, 0, .15, 1); }
50%         { top: 0;        left: 0;      width: 100%;    height: 100%;    border-radius: 6px; opacity: 1; transform: none;
animation-timing-function: linear; }
91%         { top: 0;        left: 0;      width: 100%;    height: 100%;    border-radius: 6px; opacity: 1; transform: scale(1.04);
animation-timing-function: ease-out; }
93.4%       { top: 0;        left: 0;      width: 100%;    height: 100%;    border-radius: 6px; opacity: 0; transform: scale(1.09); }
93.6%       { top: 33.5556%; left: 5%;     width: 25%;     height: 25%;     border-radius: 3px; opacity: 0; transform: translateY(5px);
animation-timing-function: cubic-bezier(.22, .72, .24, 1); }
97.5%, 100% { top: 33.5556%; left: 5%;     width: 25%;     height: 25%;     border-radius: 3px; opacity: 1; transform: none; }
}
@keyframes vpre-file {
0%, 10%     { top: 30%;      left: 3%;     opacity: 1; transform: none;
box-shadow: 0 2px 7px rgba(43, 41, 45, .13), inset 0 0 0 1px rgba(43, 41, 45, .1);
animation-timing-function: cubic-bezier(.3, 0, .5, 1); }
12%         { top: 27.4444%; left: 4.5%;   opacity: 1; transform: rotate(-2.2deg) scale(1.03);
box-shadow: 0 11px 22px rgba(43, 41, 45, .2), inset 0 0 0 1px rgba(43, 41, 45, .1);
animation-timing-function: cubic-bezier(.55, 0, .75, .5); }
17.5%       { top: 16.9444%; left: 26%;    opacity: 1; transform: rotate(-2.2deg) scale(1.03);
box-shadow: 0 11px 22px rgba(43, 41, 45, .2), inset 0 0 0 1px rgba(43, 41, 45, .1);
animation-timing-function: cubic-bezier(.2, .65, .25, 1); }
24%         { top: 13.9444%; left: 51.75%; opacity: 1; transform: rotate(-1.1deg) scale(1.03);
box-shadow: 0 11px 22px rgba(43, 41, 45, .2), inset 0 0 0 1px rgba(43, 41, 45, .1);
animation-timing-function: cubic-bezier(.3, .8, .4, 1); }
25%         { top: 13.9444%; left: 51.75%; opacity: 1; transform: none;
box-shadow: 0 2px 7px rgba(43, 41, 45, .13), inset 0 0 0 1px rgba(43, 41, 45, .1);
animation-timing-function: ease-out; }
27%, 64%    { top: 13.9444%; left: 51.75%; opacity: 0; transform: scale(.94);
box-shadow: 0 2px 7px rgba(43, 41, 45, 0), inset 0 0 0 1px rgba(43, 41, 45, .1); }
66%, 100%   { top: 30%;      left: 3%;     opacity: 1; transform: none;
box-shadow: 0 2px 7px rgba(43, 41, 45, .13), inset 0 0 0 1px rgba(43, 41, 45, .1); }
}
@keyframes vpre-cursor {
0%, 3%      { top: 104%;     left: -8%;    opacity: 0; transform: scale(1);
animation-timing-function: cubic-bezier(.2, .7, .3, 1); }
6%          { opacity: 1; }
8%          { top: 46.0556%; left: 17.5%;  opacity: 1; transform: scale(1); }
9%          { transform: scale(.82); }
10%         { top: 46.0556%; left: 17.5%;  opacity: 1; transform: scale(1);
animation-timing-function: cubic-bezier(.3, 0, .5, 1); }
12%         { top: 43.5%;    left: 19%;    animation-timing-function: cubic-bezier(.55, 0, .75, .5); }
17.5%       { top: 33%;      left: 40.5%;  animation-timing-function: cubic-bezier(.2, .65, .25, 1); }
24%         { top: 30%;      left: 66.25%; opacity: 1; transform: scale(1); }
25%         { transform: scale(.82); }
26%         { top: 30%;      left: 66.25%; opacity: 1; transform: scale(1);
animation-timing-function: cubic-bezier(.4, 0, .6, 1); }
30%         { top: 78%;      left: 95%;    opacity: 0; transform: scale(1); }
32%, 100%   { top: 104%;     left: -8%;    opacity: 0; transform: scale(1); }
}
@keyframes vpre-app {
0%, 51%     { opacity: 1; transform: none; }
53%, 93.6%  { opacity: 0; transform: translateY(5px); }
97.5%, 100% { opacity: 1; transform: none; }
}
@keyframes vpre-drop {
0%, 21%     { opacity: 1; border-color: rgba(43, 41, 45, .26); background: rgba(43, 41, 45, .03); }
23.5%, 25%  { opacity: 1; border-color: rgba(0, 255, 255, 1);  background: rgba(0, 255, 255, .24); }
27%, 64%    { opacity: 0; border-color: rgba(0, 255, 255, 1);  background: rgba(0, 255, 255, .24); }
66%, 100%   { opacity: 1; border-color: rgba(43, 41, 45, .26); background: rgba(43, 41, 45, .03); }
}
@keyframes vpre-row1 {
0%, 26%     { opacity: 0; }
29%, 40%    { opacity: 1; }
42%, 100%   { opacity: 0; }
}
@keyframes vpre-fill {
0%, 29%     { width: 0; }
38%, 64%    { width: 100%; }
66%, 100%   { width: 0; }
}
@keyframes vpre-kind {
0%, 24%     { opacity: 1; }
26%, 93.4%  { opacity: 0; }
93.6%, 100% { opacity: 1; }
}
@keyframes vpre-live {
0%, 49%     { opacity: 0; transform: translateY(6px) scale(.92); }
54%, 89%    { opacity: 1; transform: translateY(0)   scale(1); }
92%, 100%   { opacity: 0; transform: translateY(6px) scale(.92); }
}
@keyframes vpre-bar {
0%, 49%     { opacity: 0; }
53%, 89%    { opacity: 1; }
92%, 100%   { opacity: 0; }
}
@keyframes vpre-barfill {
0%, 51%     { width: 0; }
89%, 92%    { width: 58%; }
93%, 100%   { width: 0; }
}
@keyframes vpre-pct {
0%,    31.4% { transform: translateY(0); }
32.1%, 34.7% { transform: translateY(-1.3em); }
35.4%, 37.1% { transform: translateY(-2.6em); }
37.8%, 64%   { transform: translateY(-3.9em); }
66%,   100%  { transform: translateY(0); }
}
@keyframes vpre-count {
0%,    55%   { transform: translateY(0); }
57.4%, 60%   { transform: translateY(-12.5%); }
62.4%, 65%   { transform: translateY(-25%); }
67.4%, 70%   { transform: translateY(-37.5%); }
72.4%, 75%   { transform: translateY(-50%); }
77.4%, 80%   { transform: translateY(-62.5%); }
82.4%, 85%   { transform: translateY(-75%); }
87.4%, 92%   { transform: translateY(-87.5%); }
92.1%, 100%  { transform: translateY(0); }
}
@keyframes vpre-cm1 {
0%,  56%     { opacity: 0; transform: translateY(var(--dw-cm-wait)); }
60%, 66%     { opacity: 1; transform: translateY(0); }
70%, 76%     { opacity: 1; transform: translateY(var(--dw-cm-step)); }
80%, 91%     { opacity: 1; transform: translateY(calc(var(--dw-cm-step) * 2)); }
93.2%        { opacity: 0; transform: translateY(calc(var(--dw-cm-step) * 2)); }
93.6%, 100%  { opacity: 0; transform: translateY(var(--dw-cm-wait)); }
}
@keyframes vpre-cm2 {
0%,  66%     { opacity: 0; transform: translateY(var(--dw-cm-wait)); }
70%, 76%     { opacity: 1; transform: translateY(0); }
80%, 91%     { opacity: 1; transform: translateY(var(--dw-cm-step)); }
93.2%        { opacity: 0; transform: translateY(var(--dw-cm-step)); }
93.6%, 100%  { opacity: 0; transform: translateY(var(--dw-cm-wait)); }
}
@keyframes vpre-cm3 {
0%,  76%     { opacity: 0; transform: translateY(var(--dw-cm-wait)); }
80%, 91%     { opacity: 1; transform: translateY(0); }
93.2%        { opacity: 0; transform: translateY(0); }
93.6%, 100%  { opacity: 0; transform: translateY(var(--dw-cm-wait)); }
}
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-app { animation: vpre-app     9.5s cubic-bezier(.22, .72, .24, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-file { animation: vpre-file    9.5s cubic-bezier(.65, 0, .35, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-shot { animation: vpre-shot    9.5s cubic-bezier(.65, 0, .35, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-kind { animation: vpre-kind    9.5s ease-out infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-cursor { animation: vpre-cursor  9.5s cubic-bezier(.65, 0, .35, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-drop { animation: vpre-drop    9.5s ease-out infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-row1 { animation: vpre-row1    9.5s ease-out infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-rmeta { animation: vpre-row1    9.5s ease-out infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-fill { animation: vpre-fill    9.5s linear infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre .dw-live { animation: vpre-live    9.5s cubic-bezier(.22, .72, .24, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-bar { animation: vpre-bar     9.5s ease-out infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-barfill { animation: vpre-barfill 9.5s linear infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre .dw-live .dw-live-dot { animation: dw-pulse    1.9s ease-in-out infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre .dw-live .dw-count-roll { animation: vpre-count  9.5s var(--dw-count-ease) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-pctroll { animation: vpre-pct    9.5s cubic-bezier(.45, 0, .15, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-cm--1 { animation: vpre-cm1    9.5s cubic-bezier(.22, .72, .24, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-cm--2 { animation: vpre-cm2    9.5s cubic-bezier(.22, .72, .24, 1) infinite; }
.ways-card:is(:hover, :focus-visible, .is-playing) .vpre-cm--3 { animation: vpre-cm3    9.5s cubic-bezier(.22, .72, .24, 1) infinite; }
@media (prefers-reduced-motion: reduce) {
.vpre, .vpre *,
.ways-card:hover .vpre * {
animation: none !important;
transition: none !important;
}
}
