*{
    margin:0;
    padding:0;
    box-sizing:border-box;

    -webkit-tap-highlight-color:transparent;
    -webkit-touch-callout:none;
}

html,
body{
    width:100%;
    height:100%;
    overflow:hidden;
    -webkit-text-size-adjust:100%;
}

body{
    font-family:Arial,Helvetica,sans-serif;
    background:#000000;
    color:#222;

    user-select:none;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
}

img,
button,
a,
div{
    -webkit-tap-highlight-color:transparent;
    outline:none;
}

/* ==========================
   CONTAINER
========================== */

.container{

    position:fixed;
    inset:0;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    padding:20px;
    padding-bottom:80px;

}

/* ==========================
   TITLE
========================== */

.title{

    width:100%;
    max-width:760px;

    text-align:center;

    font-size:clamp(24px,3vw,42px);

    font-weight:700;
    color:#ffffff;
    line-height:1.3;

    margin-bottom:22px;

}

/* ==========================
   VIDEO CARD
========================== */

.video-card{

    position:relative;

    width:min(92vw,560px);

    aspect-ratio:1/1;

    border-radius:18px;

    overflow:hidden;

    background-color:#ddd;

    background-position:center;

    background-repeat:no-repeat;

    background-size:cover;

    cursor:pointer;

    box-shadow:
        0 15px 40px rgba(0,0,0,.18);

}

/* ==========================
   PLAY BUTTON
========================== */

.play-button{

    position:absolute;

    top:50%;
    left:50%;

    transform:translate(-50%,-50%);

    width:84px;
    height:84px;

    border:none;

    border-radius:50%;

    background:#0d6efd;

    display:flex;
    justify-content:center;
    align-items:center;

    cursor:pointer;

    z-index:3;

    box-shadow:
        0 10px 25px rgba(13,110,253,.35);

    transition:
        transform .25s,
        background .25s,
        box-shadow .25s;

    animation:pulse 1.8s ease-in-out infinite;

}

/* Segitiga Play */

.play-button::before{

    content:"";

    width:0;
    height:0;

    margin-left:8px;

    border-top:18px solid transparent;
    border-bottom:18px solid transparent;
    border-left:30px solid #ff2b2b;

}

.play-button:hover{

    background:#0b5ed7;

    transform:translate(-50%,-50%) scale(1.08);

    box-shadow:
        0 14px 35px rgba(13,110,253,.45);

}

.play-button:active{

    transform:translate(-50%,-50%) scale(.96);

}

.play-button:focus{

    outline:none;

}

/* ==========================
   VIDEO INFO
========================== */

.video-info{

    position:absolute;

    left:0;
    right:0;
    bottom:0;

    padding:16px 18px;

    background:linear-gradient(to top,
        rgba(0,0,0,.85),
        rgba(0,0,0,.45),
        transparent);

    z-index:2;

}

.video-progress{

    width:100%;
    height:5px;

    background:rgba(255,255,255,.25);

    border-radius:50px;

    overflow:hidden;

}

.video-progress span{

    display:block;

    width:0%;

    height:100%;

    background:#ff2b2b;

    border-radius:50px;

}

.video-time{

    display:flex;
    justify-content:space-between;
    align-items:center;

    margin-top:10px;

    font-size:14px;
    font-weight:600;

    color:#fff;

}

.video-time .duration{

    opacity:.85;

}

/* ==========================
   SIMPLE PULSE
========================== */

@keyframes pulse{

    0%{

        transform:translate(-50%,-50%) scale(1);

        box-shadow:
            0 10px 25px rgba(13,110,253,.35);

    }

    50%{

        transform:translate(-50%,-50%) scale(1.06);

        box-shadow:
            0 14px 35px rgba(13,110,253,.50);

    }

    100%{

        transform:translate(-50%,-50%) scale(1);

        box-shadow:
            0 10px 25px rgba(13,110,253,.35);

    }

}

/* ==========================
   NOTE TITLE
========================== */

.note strong{

    display:block;

    margin-bottom:6px;

    font-size:17px;

    font-weight:800;

}

.note strong span{

    background:linear-gradient(
        180deg,
        #ffe58a 0%,
        #ffc84a 35%,
        #ff9800 70%,
        #ff6a00 100%
    );

    -webkit-background-clip:text;
    background-clip:text;

    -webkit-text-fill-color:transparent;

    text-shadow:
        0 0 2px rgba(80,255,120,.35),
        0 0 6px rgba(80,255,120,.20);

}

.note{

    width:100%;
    max-width:560px;

    margin-top:18px;

    padding:16px 18px;

    border-radius:14px;

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.12);

    backdrop-filter:blur(10px);

    color:#fff;

    text-align:center;

    font-size:15px;
    font-weight:800;
    line-height:1.7;

}


/* ==========================
   FOOTER
========================== */

.footer{

    position:fixed;

    left:0;
    right:0;
    bottom:0;

    width:100%;

    background:#111;

    color:#fff;

    text-align:center;

    padding:18px 15px;

    font-size:14px;

    z-index:999;

}

/* ============================================
   RESPONSIVE
============================================ */

/* ==========================
   HP KECIL (≤360px)
========================== */

@media (max-width:360px){

    .container{

        padding:15px;
        padding-bottom:95px;

    }

    .title{

        font-size:22px;

        margin-bottom:18px;

    }

    .video-card{

        width:92vw;

    }

    .note{

        width:92vw;

        margin-top:8px;
        margin-bottom:2px;

        padding:10px 12px;

        font-size:13px;

        line-height:1.4;

    }

    .note strong{

        margin-bottom:3px;

        font-size:15px;

    }

    .footer{

        padding:15px;

        font-size:12px;

    }

}

/* ==========================
   HP NORMAL (361px-420px)
========================== */

@media (min-width:361px) and (max-width:420px){

    .container{

        padding:18px;
        padding-bottom:95px;

    }

    .video-card{

        width:92vw;

    }

    .note{

        width:92vw;

        margin-top:8px;
        margin-bottom:2px;

        padding:10px 14px;

        font-size:14px;

        line-height:1.45;

    }

    .note strong{

        margin-bottom:3px;

    }

}

/* ==========================
   HP BESAR (421px-480px)
========================== */

@media (min-width:421px) and (max-width:480px){

    .container{

        padding-bottom:95px;

    }

    .video-card{

        width:90vw;
        max-width:430px;

    }

    .note{

        width:90vw;
        max-width:430px;

        margin-top:8px;
        margin-bottom:2px;

        padding:11px 15px;

        font-size:14px;

        line-height:1.45;

    }

    .note strong{

        margin-bottom:3px;

    }

}

/* ==========================
   TABLET (481px-820px)
========================== */

@media (min-width:481px) and (max-width:820px){

    .container{

        padding-bottom:100px;

    }

    .video-card{

        width:88vw;
        max-width:560px;

    }

    .note{

        width:88vw;
        max-width:560px;

        margin-top:10px;
        margin-bottom:2px;

        padding:12px 16px;

        font-size:15px;

        line-height:1.5;

    }

    .note strong{

        margin-bottom:4px;

    }

}

/* ==========================
   DESKTOP (821px-1439px)
   Layout sama seperti HP
========================== */

@media (min-width:821px) and (max-width:1439px){

    .container{

        padding:20px;
        padding-bottom:72px; /* note lebih dekat ke footer */

    }

    .video-card{

        width:640px;

        height:720px;

        aspect-ratio:auto;

    }

    .note{

        width:640px;

        margin-top:8px;
        margin-bottom:0;

        padding:10px 14px;

        font-size:15px;

        line-height:1.4;

        text-align:center;

    }

    .note strong{

        margin-bottom:3px;

    }

}

/* ==========================
   DESKTOP BESAR (≥1440px)
========================== */

@media (min-width:1440px){

    .container{

        padding:24px;
        padding-bottom:72px; /* note lebih dekat ke footer */

    }

    .video-card{

        width:700px;

        height:790px;

        aspect-ratio:auto;

    }

    .note{

        width:700px;

        margin-top:8px;
        margin-bottom:0;

        padding:10px 14px;

        font-size:16px;

        line-height:1.4;

        text-align:center;

    }

    .note strong{

        margin-bottom:3px;

        font-size:18px;

    }

}