/* ==========================================================
   DAFTAR HADIR RAPAT DPH
   Material Design 3
   ========================================================== */

:root{

    --primary:#234A8C;
    --primary-dark:#18396F;

    --secondary:#D4AF37;

    --surface:rgba(255,255,255,.82);

    --background:#EEF3FA;

    --text:#24303F;

    --text-light:#6B7280;

    --border:rgba(255,255,255,.45);

    --shadow:
        0 18px 45px rgba(0,0,0,.18);

    --radius:32px;

    --transition:.30s;

}

*{

    margin:0;
    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:"Poppins",sans-serif;

    color:var(--text);

    background:var(--background);

    min-height:100vh;

    overflow-x:hidden;

}

/* ==========================================================
   BACKGROUND
   ========================================================== */

.background{

    position:fixed;

    inset:0;

    background-image:url("../assets/Gereja St Anna.webp");

    background-size:cover;

    background-position:center;

    filter:blur(10px);

    transform:scale(1.08);

    z-index:-3;

}

.overlay{

    position:fixed;

    inset:0;

    background:

        linear-gradient(

            rgba(14,31,56,.55),

            rgba(14,31,56,.45)

        );

    z-index:-2;

}

/* ==========================================================
   CONTAINER
   ========================================================== */

.container{

    width:100%;

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:30px;

}

/* ==========================================================
   CARD
   ========================================================== */

.card{

    width:min(92vw,470px);

    padding:48px;

    border-radius:var(--radius);

    background:var(--surface);

    backdrop-filter:blur(22px);

    -webkit-backdrop-filter:blur(22px);

    border:1px solid var(--border);

    box-shadow:var(--shadow);

    text-align:center;

    display:flex;

    flex-direction:column;

    align-items:center;

    animation:fadeUp .8s ease;

}

/* ==========================================================
   FADE
   ========================================================== */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:

            translateY(40px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

/* ==========================================================
   LOGO
   ========================================================== */

.logo-frame{

    width:140px;

    height:140px;

    border-radius:50%;

    background:#FFFFFF;

    padding:10px;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:28px;

    box-shadow:
        0 12px 35px rgba(0,0,0,.18);

    transition:all .35s ease;

}

.logo-frame:hover{

    transform:translateY(-4px) scale(1.03);

    box-shadow:
        0 18px 40px rgba(0,0,0,.24);

}

.logo{

    width:108px;

    height:108px;

    object-fit:cover;

    border-radius:50%;

    border:4px solid #F3F4F6;

}

/* ==========================================================
   TITLE
   ========================================================== */

h1{

    font-size:2rem;

    font-weight:700;

    color:var(--primary);

    line-height:1.25;

    margin-bottom:10px;

    letter-spacing:.3px;

}

h2{

    font-size:1.15rem;

    font-weight:500;

    color:var(--text);

    margin-bottom:26px;

}

/* ==========================================================
   DATE
   ========================================================== */

.meeting-date{

    width:100%;

    margin-bottom:34px;

    padding:18px 22px;

    border-radius:20px;

    background:rgba(35,74,140,.07);

    border:1px solid rgba(35,74,140,.10);

}

#hari{

    font-size:1.05rem;

    font-weight:600;

    color:var(--primary);

    margin-bottom:6px;

}

#tanggal{

    font-size:1.35rem;

    font-weight:700;

    color:var(--text);

}

/* ==========================================================
   DIVIDER
   ========================================================== */

.meeting-date::after{

    content:"";

    display:block;

    width:60px;

    height:4px;

    margin:16px auto 0;

    border-radius:99px;

    background:var(--secondary);

}

/* ==========================================================
   BUTTON GROUP
   ========================================================== */

.button-group{

    width:100%;

    display:flex;

    flex-direction:column;

    gap:16px;

    margin-top:8px;

}

/* ==========================================================
   BUTTON
   ========================================================== */

.button-group button{

    width:100%;

    height:58px;

    border:none;

    border-radius:18px;

    background:var(--primary);

    color:#FFFFFF;

    cursor:pointer;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:12px;

    font-size:1rem;

    font-weight:600;

    font-family:inherit;

    transition:all .28s ease;

    box-shadow:
        0 6px 18px rgba(35,74,140,.22);

}

.button-group button:hover{

    background:var(--primary-dark);

    transform:translateY(-2px);

    box-shadow:
        0 12px 28px rgba(35,74,140,.28);

}

.button-group button:active{

    transform:scale(.98);

}

.button-group button:focus{

    outline:none;

}

/* ==========================================================
   ICON
   ========================================================== */

.button-group .material-symbols-rounded{

    font-size:24px;

    font-variation-settings:
        'FILL' 1,
        'wght' 500,
        'GRAD' 0,
        'opsz' 24;

}

/* ==========================================================
   RIPPLE EFFECT
   ========================================================== */

.button-group button{

    position:relative;

    overflow:hidden;

}

.button-group button::after{

    content:"";

    position:absolute;

    inset:0;

    background:rgba(255,255,255,.10);

    opacity:0;

    transition:.25s;

}

.button-group button:hover::after{

    opacity:1;

}

/* ==========================================================
   CARD HOVER
   ========================================================== */

.card{

    transition:
        transform .35s ease,
        box-shadow .35s ease;

}

.card:hover{

    transform:translateY(-4px);

    box-shadow:
        0 26px 60px rgba(0,0,0,.22);

}

/* ==========================================================
   FOOTER
   ========================================================== */

footer{

    margin-top:34px;

    font-size:.88rem;

    color:var(--text-light);

    line-height:1.8;

}

footer p{

    margin:0;

}

/* ==========================================================
   LOADING
   ========================================================== */

#loading{

    position:fixed;

    inset:0;

    background:rgba(255,255,255,.88);

    backdrop-filter:blur(6px);

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:9999;

    transition:opacity .35s ease;

}

#loading.hide{

    opacity:0;

    pointer-events:none;

}

/* ==========================================================
   SPINNER
   ========================================================== */

.spinner{

    width:54px;

    height:54px;

    border:5px solid rgba(35,74,140,.15);

    border-top:5px solid var(--primary);

    border-radius:50%;

    animation:spin .9s linear infinite;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}

/* ==========================================================
   ANIMATION
   ========================================================== */

.logo-frame{

    animation:fadeDown .7s ease;

}

h1{

    animation:fadeUp .9s ease;

}

h2{

    animation:fadeUp 1.05s ease;

}

.meeting-date{

    animation:fadeUp 1.2s ease;

}

.button-group{

    animation:fadeUp 1.35s ease;

}

footer{

    animation:fadeUp 1.5s ease;

}

@keyframes fadeDown{

    from{

        opacity:0;

        transform:translateY(-24px);

    }

    to{

        opacity:1;

        transform:none;

    }

}
