:root{
    --bg:#050505;
    --card:#0b0b0b;
    --gold:#d4af37;
    --border:rgba(212,175,55,0.15);
    --text:#ffffff;
    --muted:#777;
}

/* RESET */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

/* BODY */
body{
    background:var(--bg);
    color:var(--text);
    font-family:Arial,sans-serif;
    overflow-x:hidden;
}

/* CONTAINER */
.container{
    max-width:550px;
    margin:auto;
    padding:20px;
}

/* HEADER */
header{
    text-align:center;
    margin-bottom:35px;
}

.logo-text{
    font-size:42px;
    font-weight:bold;
    color:var(--gold);
    margin-bottom:8px;
}

.subtitle{
    font-size:12px;
    color:#777;
    letter-spacing:4px;
}

/* CARD */
.card{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:24px;
    padding:20px;
    margin-bottom:22px;
}

/* LABEL */
.label-group{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:14px;
}

.label{
    font-size:13px;
    font-weight:bold;
    color:white;
}

.label-hint{
    font-size:11px;
    color:var(--muted);
}

/* ===================================
   9:16 UPLOAD BOX FINAL
=================================== */

.upload-box{

    position:relative;

    width:100%;

    max-width:260px;

    margin:auto;

    aspect-ratio:9/16;

    max-height:420px;

    background:black;

    border:2px dashed rgba(212,175,55,0.2);

    border-radius:20px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    overflow:hidden;

    cursor:pointer;

    transition:0.3s;
}

.upload-box:hover{

    border-color:var(--gold);
}

/* ICON */
.upload-icon{

    font-size:34px;

    color:var(--gold);

    margin-bottom:10px;

    z-index:2;
}

/* TEXT */
.upload-text{

    font-size:13px;

    color:#888;

    z-index:2;
}

/* ===================================
   PREVIEW CONTAINER
=================================== */

.preview-container{

    position:absolute;

    inset:0;

    display:none;

    align-items:center;

    justify-content:center;

    overflow:hidden;

    background:black;
}

/* ===================================
   IMAGE + VIDEO FIX
=================================== */

.preview-container img,
.preview-container video{

    width:100%;

    height:100%;

    object-fit:contain;

    border-radius:18px;

    background:black;
}

/* TEXTAREA */
textarea{

    width:100%;

    min-height:120px;

    background:black;

    border:1px solid rgba(212,175,55,0.2);

    border-radius:16px;

    padding:15px;

    color:white;

    resize:none;

    margin-top:10px;
}

/* SELECT */
select{

    width:100%;

    background:black;

    border:1px solid rgba(212,175,55,0.2);

    border-radius:14px;

    padding:14px;

    color:white;

    margin-top:10px;
}

/* RANGE */
input[type="range"]{

    width:100%;

    margin-top:15px;

    accent-color:var(--gold);
}

/* BUTTON */
.btn-generate{

    width:100%;

    padding:18px;

    border:none;

    border-radius:18px;

    background:linear-gradient(
        to right,
        #d4af37,
        #f4d97c
    );

    color:black;

    font-size:18px;

    font-weight:bold;

    cursor:pointer;

    transition:0.3s;
}

.btn-generate:hover{

    transform:scale(1.02);
}

/* RESULT */
.result-viewer{

    margin-top:20px;
}

.json-box{

    background:black;

    padding:16px;

    border-radius:14px;

    overflow:auto;

    color:#00ff99;

    font-size:12px;

    border:1px solid rgba(212,175,55,0.15);
}

/* BUTTON COPY */
.btn-copy{

    flex:1;

    border:none;

    padding:12px;

    border-radius:12px;

    background:#151515;

    color:white;

    cursor:pointer;
}

/* FOOTER */
footer{

    text-align:center;

    margin-top:35px;

    color:var(--gold);

    font-size:13px;
}

/* NOTIFICATION */
.notif{

    position:fixed;

    top:20px;

    left:50%;

    transform:translateX(-50%);

    background:#111;

    padding:14px 20px;

    border-radius:14px;

    z-index:9999;

    display:none;
}

/* MOBILE */
@media(max-width:480px){

    .container{

        padding:15px;
    }

    .logo-text{

        font-size:34px;
    }

    .upload-box{

        max-width:230px;
    }
}