.canim, .canim * { box-sizing: border-box; }
.pillar-preview:has(.canim) {
background: #fff;
}
.canim {
position: absolute;
inset: 0;
overflow: hidden;
background: #fff;
container-type: inline-size;
font-family: 'Montserrat', 'Montserrat Fb', 'Montserrat Fb A', sans-serif;
}
.canim-board {
position: absolute;
inset: 7.3% 4.1%;
display: flex;
align-items: center;
font-size: 8.5px;
font-size: calc(5.4px + .82cqw);
color: #2B292D;
--sp-1: .5em;
--sp-2: .9em;
--sp-3: 1.5em;
}
.canim-band {
display: flex;
align-items: stretch;
width: 100%;
gap: 3.5%;
}
.canim-side {
flex: 0 0 auto;
display: flex;
flex-direction: column;
padding: .85em .9em;
border-radius: .3em;
box-shadow: inset 0 0 0 1px rgba(43, 41, 45, .14);
}
.canim-list {
flex: 1 1 auto;
display: flex;
flex-direction: column;
margin-top: var(--sp-1);
}
.canim-row {
flex: 1 1 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--sp-1);
min-height: 1.9em;
}
.canim-row + .canim-row { border-top: 1px solid rgba(43, 41, 45, .08); }
.canim-name {
font-size: .92em;
font-weight: 700;
line-height: 1.2;
white-space: nowrap;
}
.canim-row--scr .canim-name { opacity: .45; }
.canim-tg {
position: relative;
flex: 0 0 auto;
width: 1.85em;
height: 1.1em;
border-radius: .55em;
background: rgba(43, 41, 45, .12);
}
.canim-knob {
position: absolute;
top: 50%;
left: .2em;
width: .7em;
height: .7em;
border-radius: 50%;
background: rgba(43, 41, 45, .32);
transform: translate(0, -50%);
}
.canim-tg--on { background: #00ffff; }
.canim-tg--on .canim-knob { background: #2B292D; transform: translate(.75em, -50%); }
.canim-stage {
position: relative;
flex: 1 1 0;
min-width: 0;
aspect-ratio: 16 / 9;
overflow: hidden;
border-radius: .3em;
background: rgba(43, 41, 45, .06);
}
.canim-cam {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 100%;
z-index: 1;
overflow: hidden;
border-radius: .3em;
background: rgba(43, 41, 45, .1);
}
.canim-pic {
position: absolute;
inset: 0;
display: block;
width: 100%;
height: 100%;
object-fit: cover;
object-position: 50% 50%;
}
.canim-share {
position: absolute;
top: 0;
bottom: 0;
left: 50.75%;
width: 49.25%;
z-index: 2;
display: flex;
flex-direction: column;
padding: .8em .9em;
border-radius: .3em;
background: #fff;
box-shadow: inset 0 0 0 1px rgba(43, 41, 45, .14);
transform: translateX(120%);
}
.canim-slide-title {
display: block;
flex: 0 0 auto;
font-size: 1em;
font-weight: 700;
line-height: 1.2;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.canim-chart {
flex: 1 1 auto;
min-height: 0;
display: flex;
align-items: flex-end;
gap: .4em;
margin-top: var(--sp-2);
border-bottom: 1px solid rgba(43, 41, 45, .16);
}
.canim-bar {
display: block;
flex: 1 1 0;
height: 42%;
border-radius: .15em .15em 0 0;
background: rgba(43, 41, 45, .14);
}
.canim-bar--2 { height: 66%; }
.canim-bar--on { height: 100%; background: #00ffff; }
.canim-meter {
position: absolute;
left: 5%;
bottom: 8.9%;
z-index: 3;
display: flex;
align-items: flex-end;
gap: .22em;
padding: .32em .45em;
border-radius: .35em;
background: rgba(43, 41, 45, .82);
}
.canim-vu {
display: block;
width: .3em;
border-radius: .1em;
background: #fff;
transform-origin: 50% 100%;
}
.canim-vu--1 { height: .55em; }
.canim-vu--2 { height: .9em; }
.canim-vu--3 { height: 1.15em; }
.canim-vu--4 { height: .7em; }
.canim .dw-live { top: 8.9%; left: 5%; z-index: 3; font-size: .9em; }
.canim-row--scr .canim-tg    { animation: canim-tg   10s cubic-bezier(.4, 0, .2, 1) infinite; }
.canim-row--scr .canim-knob  { animation: canim-knob 10s cubic-bezier(.4, 0, .2, 1) infinite; }
.canim-row--scr .canim-name  { animation: canim-name 10s cubic-bezier(.4, 0, .2, 1) infinite; }
.canim-cam                   { animation: canim-cam   10s cubic-bezier(.65, 0, .35, 1) infinite; }
.canim-share                 { animation: canim-share 10s cubic-bezier(.65, 0, .35, 1) infinite; }
.canim-vu--1 { animation: canim-vu-1 1.25s ease-in-out infinite; }
.canim-vu--2 { animation: canim-vu-2 1.25s ease-in-out infinite; }
.canim-vu--3 { animation: canim-vu-3 1.25s ease-in-out infinite; }
.canim-vu--4 { animation: canim-vu-4 1.25s ease-in-out infinite; }
@keyframes canim-tg {
0%, 22%   { background: rgba(43, 41, 45, .12); }
26%, 64%  { background: #00ffff; }
68%, 100% { background: rgba(43, 41, 45, .12); }
}
@keyframes canim-knob {
0%, 22%   { background: rgba(43, 41, 45, .32); transform: translate(0, -50%); }
26%, 64%  { background: #2B292D;               transform: translate(.75em, -50%); }
68%, 100% { background: rgba(43, 41, 45, .32); transform: translate(0, -50%); }
}
@keyframes canim-name {
0%, 22%   { opacity: .45; }
26%, 64%  { opacity: 1; }
68%, 100% { opacity: .45; }
}
@keyframes canim-cam {
0%, 27%   { width: 100%; }
35%, 69%  { width: 49.25%; }
77%, 100% { width: 100%; }
}
@keyframes canim-share {
0%, 27%   { transform: translateX(120%); }
35%, 69%  { transform: translateX(0); }
77%, 100% { transform: translateX(120%); }
}
@keyframes canim-vu-1 {
0%, 100% { transform: scaleY(1); }
30%      { transform: scaleY(.45); }
65%      { transform: scaleY(.8); }
}
@keyframes canim-vu-2 {
0%, 100% { transform: scaleY(1); }
20%      { transform: scaleY(.7); }
50%      { transform: scaleY(.35); }
80%      { transform: scaleY(.9); }
}
@keyframes canim-vu-3 {
0%, 100% { transform: scaleY(1); }
40%      { transform: scaleY(.55); }
70%      { transform: scaleY(.85); }
}
@keyframes canim-vu-4 {
0%, 100% { transform: scaleY(1); }
25%      { transform: scaleY(.5); }
60%      { transform: scaleY(.3); }
85%      { transform: scaleY(.75); }
}
.pillar-panel:not(.is-active) .canim,
.pillar-panel:not(.is-active) .canim * {
animation-play-state: paused;
}
@media (prefers-reduced-motion: reduce) {
.canim *, .canim *:before, .canim *:after { animation: none !important; }
}
