        @font-face {
            font-family: 'S-CoreDream';
            src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-3Light.woff') format('woff');
            font-weight: 300;
            font-display: swap;
        }
        @font-face {
            font-family: 'S-CoreDream';
            src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-4Regular.woff') format('woff');
            font-weight: 400;
            font-display: swap;
        }
        @font-face {
            font-family: 'S-CoreDream';
            src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-6Bold.woff') format('woff');
            font-weight: 600;
            font-display: swap;
        }
        @font-face {
            font-family: 'S-CoreDream';
            src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-9Black.woff') format('woff');
            font-weight: 900;
            font-display: swap;
        }
        
        body { 
            background-color: #F2F4F6; 
            color: #191F28; 
            -webkit-font-smoothing: antialiased;
            font-family: 'S-CoreDream', -apple-system, BlinkMacSystemFont, sans-serif;
        }
        
        /* 화면 전환 처리 (SPA) */
        .page { display: none; width: 100%; height: 100%; flex-direction: column; }
        .page.active { display: flex; animation: fadeIn 0.3s ease-out; }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* 공통 UI 컴포넌트 */
        .input-field {
            width: 100%; padding: 16px; border-radius: 12px; background: #F9FAFB;
            border: 1px solid transparent; outline: none; transition: all 0.2s; font-size: 16px;
        }
        .input-field:focus { background: white; border-color: #3182F6; box-shadow: 0 0 0 2px rgba(49, 130, 246, 0.1); }
        
        .btn-primary {
            width: 100%; padding: 16px; border-radius: 14px; background: #3182F6; color: white;
            font-weight: 600; font-size: 16px; cursor: pointer; border: none; transition: transform 0.1s;
        }
        .btn-primary:active { transform: scale(0.98); background: #1B64DA; }

        .card { background: white; border-radius: 20px; box-shadow: 0 4px 20px rgba(0,0,0,0.05); overflow: hidden; }

        /* 스크롤바 숨김 */
        .hide-scroll::-webkit-scrollbar { display: none; }

        /* 텍스트 줄 제한 */
        .line-clamp-2 {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        /* Toast 메시지 */
        .toast {
            position: fixed;
            bottom: 100px;
            left: 50%;
            transform: translateX(-50%);
            background: rgba(25, 31, 40, 0.95);
            color: white;
            padding: 16px 24px;
            border-radius: 12px;
            font-size: 14px;
            font-weight: 500;
            z-index: 9999;
            animation: toastSlideUp 0.3s ease-out;
            box-shadow: 0 8px 24px rgba(0,0,0,0.2);
            max-width: 90%;
        }

        @keyframes toastSlideUp {
            from { opacity: 0; transform: translate(-50%, 20px); }
            to { opacity: 1; transform: translate(-50%, 0); }
        }

        @keyframes fadeOut {
            from { opacity: 1; }
            to { opacity: 0; }
        }

        /* 모달 */
        .modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 9998;
            display: flex;
            align-items: center;
            justify-content: center;
            animation: fadeIn 0.2s ease-out;
        }

        .modal-content {
            background: white;
            border-radius: 20px;
            padding: 24px;
            width: 90%;
            max-width: 400px;
            animation: modalSlideUp 0.3s ease-out;
        }

        @keyframes modalSlideUp {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }