.screen {
    min-height: 100vh;
    min-height: calc(var(--vh, 1vh) * 100);
    display: flex;
    flex-direction: column;
}
.screen .container {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.screen .container > .row {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

body {
    background: url(../img/bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.container {
    margin-left: auto;
    margin-right: auto;
    width: 600px;
    max-width: calc(100%  - 2rem);
    padding-left: 0;
    padding-right: 0;
}
.row ,
.row > * {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
}

section {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.link {
    /* margin-top: auto; */
    width: 100%;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
}
.link a {
    width: 100%;
    border-radius: 1rem;
    background: #ffdd57;
    border: 1px solid #ffdd57;
    font-weight: bold;
    font-size: 1.5rem;
    line-height: 1;
    min-height: 56px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.link a:hover {
    background: #ffe16b;
    border: 1px solid #ffe16b;
    color: #422973;
}

.text-white {
    color: white;
}
.text-yellow {
    color: #ffdd57;
}
.text-purple {
    color: #422973;
}
.text-shadow {
    text-shadow:
        2px 2px 1px #000,
        -2px 2px 1px #000,
        2px -2px 1px #000,
        -2px -2px 1px #000;
}

.profile {
    margin: 0.75rem auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
.profile img {
    width: 100%;
    max-width: 400px;
    border-radius: 0.35rem;
    aspect-ratio: 20/27;
}

.massage {
    margin: 0.75rem auto 1.5rem;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    max-width: 400px;
}
.message-img {
    width: 52px;
    min-width: 52px;
    margin-right: 1rem;
}
.message-img img {
    width: 100%;
    margin-top: -8px;
    margin-bottom: -8px;
    border-radius: 1000px;
}
.message-text {
    background: white;
    padding: 0.5rem;
    border-radius: 0.35rem;
    text-align: left;
    position: relative;
}
.message-text p {
    margin-bottom: 0;
    font-size: 1rem;
}
.message-text:after {
	content: '';
	position: absolute;
	left: 0;
	width: 0;
	height: 0;
    top: 50%;
	border: 12px solid transparent;
	border-right-color: #FFF;
	border-left: 0;
    margin-left: -12px;
    transform: translateY(-50%);
}

@media screen and (max-width: 767px){
    .profile img {
        width: 100%;
        max-width: 285px;
    }
    .link {
        max-width: 285px;
    }
}

@media screen and (min-width: 400px) and (max-width: 767px){
    .profile img {
        width: 100%;
        max-width: 300px;
    }
    .link {
        max-width: 300px;
    }
}




.styles_arrow__9SbMn {
    width: 32px;
    height: 32px;
    margin-left: 18px;
    transform: rotate(-90deg)
}

.styles_arrow__9SbMn span {
    display: block;
    width: 16px;
    height: 16px;
    border-bottom: 3px solid #422973;
    border-right: 3px solid #422973;
    transform: rotate(45deg);
    animation: styles_animate__pHXpz 2s infinite;
    margin-top: -8px;
    margin-left: 8px
}

.styles_arrow__9SbMn span:nth-child(2) {
    animation-delay: -.2s
}

.styles_arrow__9SbMn span:nth-child(3) {
    animation-delay: -.4s
}

@keyframes styles_animate__pHXpz {
    0% {
        opacity: 0;
        transform: rotate(45deg) translate(-10px, -10px)
    }
    50% {
        opacity: 1
    }
    to {
        opacity: 0;
        transform: rotate(45deg) translate(10px, 10px)
    }
}




/* Voice message bubble (Telegram-like) */
.voice-msg{
  display:flex; align-items:center; gap:12px;
  background:var(--bubble); color:var(--ink);
  border-radius:12px;
  width:100%;
  max-width:360px;
}

/* Play / Pause */
.vm-play{
  width:36px; height:36px; border-radius:50%; border:0; cursor:pointer;
  background:var(--accent); position:relative; flex:0 0 36px;
  box-shadow:0 2px 6px rgba(0,0,0,.25);
}
.vm-play:before{
  content:""; position:absolute; left:13px; top:9px;
  border-style:solid; border-width:9px 0 9px 14px;
  border-color:transparent transparent transparent #000;
}
.is-playing .vm-play:before{
  content:""; width:4px; height:18px; background:#000; left:10px; top:9px; border:none;
}
.is-playing .vm-play:after{
  content:""; position:absolute; width:4px; height:18px; background:#000; left:20px; top:9px;
}

/* Waveform (дві доріжки: назад і “програна” поверх) */
.vm-wave{ position:relative; height:34px; flex:1 1 auto; cursor:pointer; min-width:140px; }
.vm-wave-track{ position:absolute; inset:0; display:flex; align-items:center; gap:2px; padding:6px 0; }
.vm-wave-track span{ display:block; width:2px; border-radius:2px; background:#999; opacity:.85; }

/* Програна частина обрізається маскою по відсотку --played */
.vm-wave-front{ 
  mask:linear-gradient(90deg,#000 0 var(--played,0%), transparent var(--played,0%));
  -webkit-mask:linear-gradient(90deg,#000 0 var(--played,0%), transparent var(--played,0%));
}
.vm-wave-front span{ background:#ffdd57; }

/* Метадані справа */
.vm-meta{ margin-left:8px; display:flex; gap:10px; font-size:12px; opacity:.95; white-space:nowrap; }
.vm-time::before{ content:""; }