
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{
    --bg:#faf9f9;
    --card:#ffffff;
    --border:#1d1d1d;
    --text:#111111;
    --muted:#6b6b6b;
}

body{
    font-family:"Montserrat",sans-serif;
    background:var(--bg);
    color:var(--text);
    min-height:100vh;

    display:flex;
    flex-direction:column;
}

/* =========================
   TOP BAR
========================= */

.top{
    background:var(--bg);

    border-bottom:1px solid #dcdcdc;

    padding:15px;
}

.top h2{
    text-align:center;

    color:#666;
}

/* =========================
   CONTAINER
========================= */

.app{
    width:min(1100px,92%);
    margin:40px auto;
    flex:1;
}

/* =========================
   HEADER
========================= */

.header{

    background:var(--card);

    border:2px solid var(--border);

    border-radius:28px;

    padding:40px;

    text-align:center;

    margin-bottom:25px;
}

.header h1{

    font-size:clamp(2rem,5vw,4rem);

    font-weight:900;

    text-transform:uppercase;

    line-height:1;

    margin-bottom:15px;
}

.header p{

    color:var(--muted);

    font-size:16px;
}

.header a{

    color:var(--text);

    text-decoration:none;

    font-weight:700;
}

.top h2{
    text-align:center;

     color:var(--muted);

     font-weight: 400;

    font-size:16px;

    color:#666;
}

/* =========================
   FORM CARD
========================= */

.card{

    background:white;

    border:2px solid var(--border);

    border-radius:28px;

    padding:35px;

    margin-bottom:25px;
}

.grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:20px;
}

.field{

    display:flex;
    flex-direction:column;
}

label{

    margin-bottom:10px;

    font-weight:700;

    font-size:14px;

    text-transform:uppercase;
}

select{

    width:100%;

    padding:16px;

    border:2px solid #d9d9d9;

    border-radius:18px;

    background:white;

    font-family:"Montserrat",sans-serif;

    font-size:15px;

    font-weight:600;
}

select:focus{

    outline:none;

    border-color:black;
}

/* =========================
   BUTTON
========================= */

.btn{

    display:block;

    margin:30px auto 0;

    width:320px;

    max-width:100%;

    padding:18px;

    border:none;

    border-radius:18px;

    background:black;

    color:white;

    font-family:"Montserrat",sans-serif;

    font-weight:800;

    font-size:16px;

    cursor:pointer;

    transition:.2s;
}

.btn:hover{

    transform:translateY(-2px);
}

/* =========================
   RESULT
========================= */

.result{

    background:white;

    border:2px solid var(--border);

    border-radius:28px;

    padding:45px;

    text-align:center;
}

#word{

    display:block;

    font-size:clamp(2rem,5vw,4rem);

    font-weight:900;

    text-transform:uppercase;

    letter-spacing:-1px;
}

/* =========================
   FOOTER
========================= */

.footer{

    padding:30px;

    display:flex;

    justify-content:center;

    gap:15px;

    border-top:1px solid #dcdcdc;
}

.footer a{

    width:55px;
    height:55px;

    border-radius:50%;

    border:2px solid black;

    color:black;

    text-decoration:none;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:22px;

    transition:.2s;
}

.footer a:hover{

    background:black;

    color:white;
}

/* =========================
   RESPONSIVE
========================= */

@media(max-width:768px){

    .grid{
        grid-template-columns:1fr;
    }

    .header,
    .card,
    .result{
        padding:25px;
    }

    .btn{
        width:100%;
    }

    .header h1{
        font-size:2rem;
    }

    #word{
        font-size:2rem;
    }
}