@font-face {
    font-family: 'Pretendard';
    src: url('../fonts/Pretendard-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;

}

/* 3. 긱블말랑이 로컬 설정 */
@font-face {
    font-family: 'GeekbleMalang2';
    src: url('../fonts/GeekbleMalang2.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: block;
}
:root {
    --primary-color: #004D2B;
    --primary-light: #E8F5E9;
    --text-main: #111111;
    --text-sub: #8E8E93;
    --border-color: #E5E5EA;
    --bg-color: #FFFFFF;
    --bg-sub: #F9F9F9;
    --error-color: #FF3B30;
    --error-light: #FFE5E5;
    --success-color: #34C759;
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; margin: 0; padding: 0; }
html { background-color: #FFFFFF; }
body { font-family: 'Pretendard', sans-serif; background-color: #F5F5F7; color: var(--text-main); display: flex; justify-content: center; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
button { font-family: inherit; }
.mobile-container { width: 100%; max-width: 480px; min-height: 100vh; background-color: var(--bg-color); position: relative; display: flex; flex-direction: column; overflow-x: hidden; }

/* 페이지 전환 페이드인 */
@keyframes pageFadeIn { from { opacity: 0; } to { opacity: 1; } }
body { animation: pageFadeIn 0.18s ease; }

/* 로딩 오버레이 */
.loading-overlay { display: none; position: fixed; inset: 0; background: var(--bg-color); z-index: 9999; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
.loading-overlay.visible { display: flex; }
.loading-overlay__logo { height: 20px; width: auto; }
.loading-overlay__text { font-size: 14px; color: var(--text-sub); font-weight: 500; }
.spinner { width: 36px; height: 36px; border: 3px solid var(--border-color); border-top-color: var(--primary-color); border-radius: 50%; animation: spin 0.7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }