/* ===== YooZee Online Gallery ===== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Noto+Sans+KR:wght@300;400;500&display=swap');

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

body{

    background:#FAF8F2;

    font-family:'Noto Sans KR',sans-serif;

    color:#333;

    min-height:100vh;

}

.container{

    width:95%;

    max-width:1200px;

    margin:auto;

    padding:40px 20px;

    text-align:center;

}

.gallery{

    display:flex;

    justify-content:center;

    gap:30px;

    flex-wrap:wrap;

    margin-bottom:60px;

}

.gallery img{

    width:300px;

    aspect-ratio:3/4;

    object-fit:cover;

    border-radius:12px;

    box-shadow:0 10px 25px rgba(0,0,0,.18);

    transition:.3s;

}

.gallery img:hover{

    transform:scale(1.04);

}

.title{

    font-family:'Cormorant Garamond',serif;

    font-size:clamp(40px,5vw,72px);

    color:#40352B;

    margin-bottom:10px;

}

.subtitle{

    font-family:'Cormorant Garamond',serif;

    font-size:clamp(24px,3vw,38px);

    margin-bottom:50px;

    color:#78644F;

}

.question{

    font-size:22px;

    margin-bottom:25px;

}

.answer-box{

    width:min(420px,90%);

    height:52px;

    border:1px solid #ccc;

    border-radius:10px;

    padding:12px;

    font-size:20px;

}

.enter-button{

    margin-top:25px;

    background:#7E644A;

    color:white;

    border:none;

    border-radius:10px;

    padding:14px 50px;

    font-size:18px;

    cursor:pointer;

    transition:.3s;

}

.enter-button:hover{

    background:#604A36;

}

footer{

    margin-top:100px;

    color:#777;

    font-size:14px;

}

@media (max-width: 768px) {

    .container {
        width: 100%;
        padding: 24px 12px;
    }

    .gallery {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: stretch;
        gap: 8px;
        margin-bottom: 40px;
    }

    .gallery img {
        width: calc((100% - 16px) / 3);
        max-width: none;
        min-width: 0;
        aspect-ratio: 3 / 4;
        border-radius: 7px;
        box-shadow: 0 5px 12px rgba(0, 0, 0, 0.16);
    }

    .gallery img:hover {
        transform: none;
    }

    .site-header {
        margin-bottom: 28px;
        font-size: 18px;
        letter-spacing: 2px;
    }

    .question {
        font-size: 18px;
    }
}



/* ===== Site Header ===== */

.site-header {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    letter-spacing: 3px;
    color: #6B5845;

    padding-bottom: 20px;
    margin-bottom: 45px;

    border-bottom: 1px solid rgba(107, 88, 69, 0.20);
}


/* ===== Entrance Area ===== */

.entrance {
    margin-top: 50px;
}

.form-message {
    width: min(420px, 90%);
    margin: 0 auto 18px;
    padding: 11px 14px;

    border: 1px solid rgba(143, 68, 58, 0.25);
    border-radius: 8px;

    background: #fff4f1;
    color: #8f443a;

    font-size: 15px;
}

/* ========================================
   Main Gallery Page
======================================== */

.main-page {
    min-height: 100vh;
    background: #f8f5ee;
}

.main-layout {
    width: min(1500px, 100%);
    min-height: 100vh;
    margin: 0 auto;
    padding: 20px;
}


/* 상단 영역 */

.main-header {
    min-height: 16vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;

    margin-bottom: 22px;
    padding: 28px 100px;

    border-radius: 14px;
    background: #eee6d8;
}

.main-header h1 {
    margin: 0;

    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(38px, 5vw, 72px);
    font-weight: 600;
    line-height: 1.05;
    text-align: center;

    color: #725337;
}

.logout-button {
    position: absolute;
    top: 20px;
    right: 22px;

    padding: 8px 14px;

    border: 1px solid rgba(91, 70, 50, 0.25);
    border-radius: 7px;

    background: rgba(255, 255, 255, 0.55);
    color: #5c4937;

    cursor: pointer;
}


/* 하단 전체 영역 */

.main-content {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(0, 4fr);
    gap: 22px;
    align-items: start;
}


/* 관리자 영역 */

.admin-panel {
    min-height: 340px;
    padding: 28px 20px;

    border: 1px solid rgba(104, 83, 62, 0.13);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.52);
}

.admin-panel h2 {
    margin-bottom: 10px;

    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    color: #674f39;
}

.admin-description {
    margin-bottom: 22px;
    font-size: 14px;
    color: #796f65;
}

.admin-input-row {
    display: flex;
    align-items: stretch;
    gap: 7px;
}

.admin-input-row input {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 8px 10px;

    border: 1px solid #c9bdae;
    border-radius: 7px;

    background: #fff;
    font-size: 15px;
}

.admin-input-row button {
    flex: 0 0 auto;
    padding: 0 14px;

    border: 0;
    border-radius: 7px;

    background: #7e644a;
    color: #fff;

    cursor: pointer;
}

.admin-input-row button:hover {
    background: #604a36;
}


/* 작품 영역 */

.artwork-area {
    min-width: 0;
}

.artwork-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.artwork-card {
    overflow: hidden;

    border: 1px solid rgba(92, 71, 51, 0.14);
    border-radius: 13px;

    background: #fff;
    box-shadow: 0 8px 22px rgba(65, 51, 39, 0.10);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.artwork-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 13px 30px rgba(65, 51, 39, 0.15);
}

.artwork-image-link {
    display: block;
    overflow: hidden;
    background: #eeeae3;
}

.artwork-image-link img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;

    transition: transform 0.3s ease;
}

.artwork-card:hover .artwork-image-link img {
    transform: scale(1.025);
}

.artwork-info {
    padding: 20px;
    text-align: left;
}

.artwork-info p {
    margin: 0 0 9px;
    line-height: 1.55;
    color: #554d46;
}

.artwork-info strong {
    color: #372f29;
}

.purchase-button {
    display: block;
    width: 100%;

    margin-top: 18px;
    padding: 11px 14px;

    border-radius: 8px;

    background: #7e644a;
    color: #fff;

    text-align: center;
    text-decoration: none;
}

.purchase-button:hover {
    background: #604a36;
}

.empty-gallery {
    padding: 80px 20px;

    border: 1px dashed #c9bdae;
    border-radius: 13px;

    background: rgba(255, 255, 255, 0.45);
    text-align: center;
    color: #766a5e;
}


/* 숨김 라벨 */

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;

    padding: 0;
    margin: -1px;
    overflow: hidden;

    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}


/* 하단 저작권 */

.main-footer {
    margin: 65px 0 12px;
    text-align: center;
    color: #81776e;
    font-size: 13px;
}


/* 태블릿 */

@media (max-width: 1050px) {

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

    .admin-panel {
        min-height: 0;
    }

    .admin-input-row {
        max-width: 420px;
        margin: 0 auto;
    }

    .artwork-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* 모바일 */

@media (max-width: 650px) {

    .main-layout {
        padding: 10px;
    }

    .main-header {
        min-height: 125px;
        padding: 25px 46px 25px 18px;
    }

    .main-header h1 {
        font-size: clamp(33px, 11vw, 48px);
    }

    .logout-button {
        top: 9px;
        right: 9px;
        padding: 6px 9px;
        font-size: 12px;
    }

    .main-content {
        gap: 14px;
    }

    .admin-panel {
        padding: 20px 14px;
    }

    .artwork-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .artwork-card {
        width: min(100%, 420px);
        margin: 0 auto;
    }
}
