.loading-screen[data-v-0a0a1449]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--color-bg);display:flex;justify-content:center;align-items:center;z-index:9999}.spinner[data-v-0a0a1449]{width:50px;height:50px;border:5px solid var(--color-background-soft);border-top-color:var(--color-primary);border-radius:50%;animation:spin-0a0a1449 1s linear infinite}@keyframes spin-0a0a1449{to{transform:rotate(360deg)}}.home-view[data-v-9c14eb0a]{min-height:100vh;padding:2rem 1.5rem;background:var(--color-bg);color:var(--color-text);display:flex;align-items:center;justify-content:center;width:100%}.main-container[data-v-9c14eb0a]{width:100%;max-width:600px;display:flex;flex-direction:column;align-items:center;gap:2rem;text-align:center}.logo-section[data-v-9c14eb0a]{display:flex;flex-direction:column;align-items:center;gap:1rem}.image-logo[data-v-9c14eb0a]{width:15rem;height:15rem;object-fit:contain;border-radius:2.5rem}.animated-logo[data-v-9c14eb0a]{animation:logo-bounce-9c14eb0a 1s infinite ease-in-out}@keyframes logo-bounce-9c14eb0a{0%{transform:translateY(0)}25%{transform:translateY(-20px)}50%{transform:translateY(0)}75%{transform:translateY(7px)}to{transform:translateY(0)}}.text-logo[data-v-9c14eb0a]{width:150px;height:45px;object-fit:contain;margin-bottom:5rem}.logo-subtitle[data-v-9c14eb0a]{font-size:1.1rem;color:var(--color-text-light);max-width:400px}.start-button[data-v-9c14eb0a]{display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;padding:.8rem 2.5rem;border-radius:999px;background:var(--color-primary);color:var(--color-text-inverse);font-size:1.1rem;font-weight:600;text-decoration:none;box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease;flex:1;height:54px;max-width:200px}.start-button[data-v-9c14eb0a]:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.start-button[data-v-9c14eb0a]:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.button-group[data-v-9c14eb0a]{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;width:100%;max-width:420px}.premium-button[data-v-9c14eb0a]{background:none;border:1px solid var(--color-primary);color:var(--color-primary);padding:0 1.2rem;border-radius:999px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;height:54px;flex:1;max-width:200px}.premium-button[data-v-9c14eb0a]:hover{background:color-mix(in srgb,var(--color-primary),transparent 85%);color:var(--color-primary)}.modal-overlay[data-v-9c14eb0a]{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.modal-content[data-v-9c14eb0a]{background:var(--color-bg-white);padding:2rem;border-radius:1.5rem;width:100%;max-width:400px;text-align:center;box-shadow:0 10px 25px #0003}.modal-content h3[data-v-9c14eb0a]{font-size:1.4rem;margin-bottom:.5rem;color:var(--color-text);display:flex;align-items:center;justify-content:center;gap:.5rem}.modal-title-icon[data-v-9c14eb0a]{color:var(--color-primary)}.modal-content p[data-v-9c14eb0a]{color:var(--color-text-light);margin-bottom:1.5rem}.modal-input[data-v-9c14eb0a]{width:100%;padding:.8rem 1rem;border:1px solid var(--color-border);border-radius:999px;font-size:1rem;margin-bottom:1.5rem;background:var(--color-bg);color:var(--color-text)}.modal-input[data-v-9c14eb0a]:disabled{color:var(--color-text-light);background:var(--color-bg);cursor:not-allowed;opacity:.7}.modal-input[data-v-9c14eb0a]:focus{outline:none;border-color:var(--color-primary)}.modal-actions[data-v-9c14eb0a]{display:flex;gap:1rem;justify-content:center}.modal-btn[data-v-9c14eb0a]{padding:.8rem 1.5rem;border-radius:999px;font-weight:600;cursor:pointer;border:none;font-size:1rem;transition:transform .1s}.modal-btn[data-v-9c14eb0a]:active{transform:scale(.95)}.modal-btn.cancel[data-v-9c14eb0a]{background:var(--color-background-soft);color:var(--color-text)}.modal-btn.confirm[data-v-9c14eb0a]{background:var(--color-primary);color:#fff}@media (max-width: 768px){.logo-subtitle[data-v-9c14eb0a]{font-size:1rem}.limage-logo[data-v-9c14eb0a]{width:120px;height:120px}.button-group[data-v-9c14eb0a]{flex-direction:column;gap:.8rem;max-width:280px}.start-button[data-v-9c14eb0a],.premium-button[data-v-9c14eb0a]{width:100%;max-width:100%}}.modal-actions.vertical[data-v-9c14eb0a]{flex-direction:column}.modal-btn.text-only[data-v-9c14eb0a]{background-color:transparent;color:var(--color-text-light);font-weight:500}.modal-btn.full-width[data-v-9c14eb0a]{width:100%}.reset-guidance[data-v-9c14eb0a]{color:var(--color-error);font-size:.95rem;margin-bottom:1rem;line-height:1.4;font-weight:500;background-color:color-mix(in srgb,var(--color-error),transparent 90%);padding:.8rem;border-radius:.5rem}.logo-container[data-v-e8c39db1]{display:flex;align-items:center;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top));padding-left:calc(1rem + env(safe-area-inset-left));padding-right:calc(1rem + env(safe-area-inset-right))}.logo-group[data-v-e8c39db1]{display:flex;align-items:center}.line-logo[data-v-e8c39db1]{height:2rem;margin-right:10px}.text-logo[data-v-e8c39db1]{height:2rem}.modal-overlay[data-v-32e99742]{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1.5rem;animation:fadeIn-32e99742 .2s ease-out}.modal-content[data-v-32e99742]{background:var(--color-bg-white, #ffffff);padding:2rem;border-radius:1.5rem;width:100%;max-width:360px;text-align:center;box-shadow:0 20px 50px #0000004d;border:1px solid var(--color-border, #ddd)}.modal-header[data-v-32e99742]{display:flex;flex-direction:column;align-items:center;gap:.8rem;margin-bottom:.8rem}.modal-title[data-v-32e99742]{font-size:1.35rem;font-weight:700;color:var(--color-text, #333);margin:0}.modal-message[data-v-32e99742]{color:var(--color-text-soft, #666);font-size:1.05rem;line-height:1.6;margin-bottom:2rem;word-break:keep-all}.modal-actions[data-v-32e99742]{display:flex;justify-content:center}.modal-btn[data-v-32e99742]{padding:.85rem 3rem;border-radius:1rem;font-weight:600;cursor:pointer;border:none;font-size:1rem;color:#fff;transition:all .2s;box-shadow:0 4px 12px #00000026}.modal-btn[data-v-32e99742]:hover{transform:translateY(-2px);box-shadow:0 6px 15px #0003;filter:brightness(1.1)}.modal-btn[data-v-32e99742]:active{transform:scale(.96)}@keyframes fadeIn-32e99742{0%{opacity:0}to{opacity:1}}.animate-pop[data-v-32e99742]{animation:popIn-32e99742 .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes popIn-32e99742{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}#app{min-height:-webkit-fill-available;min-height:100dvh;display:flex;flex-direction:column}#app>header{flex:none}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;height:-webkit-fill-available}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);margin:0;padding:0;height:100%;height:-webkit-fill-available;min-height:100vh;min-height:-webkit-fill-available;min-height:100dvh;overflow-x:hidden;transition:background-color .3s ease,color .3s ease}#app{width:100%;height:100%;min-height:100vh;min-height:-webkit-fill-available;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden}button{font-family:inherit;font-size:inherit;cursor:pointer}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}:root{--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--color-gray: #A0A0A0;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px}:root{--color-primary: #FF4500;--color-primary-hover: #E63E00;--color-primary-light: #FF6A2E;--color-primary-dark: #CC3700;--color-secondary: #6C757D;--color-secondary-hover: #5A6268;--color-secondary-light: #A8B0B6;--color-secondary-dark: #545B62;--color-danger: #D32F2F;--color-danger-hover: #B71C1C;--color-danger-light: #E57373;--color-danger-dark: #C62828;--color-text: #212529;--color-text-light: #495057;--color-text-lighter: #6C757D;--color-text-inverse: #F8F9FA;--color-bg: #F8F9FA;--color-bg-white: #FFFFFF;--color-bg-hover: #E9ECEF;--color-bg-active: #DEE2E6;--color-border: #DEE2E6;--color-border-light: #E9ECEF;--color-border-dark: #ADB5BD;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .07);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .08);--shadow-xl: 0 8px 16px rgba(0, 0, 0, .09);--color-highlight-space: #FF6D00;--color-highlight-punctuation: #D50000;--color-highlight-batchim: #2962FF;--color-highlight-green: #00C853;--color-modal-bg: #fcfcfc;--color-modal-text: #212529}@media (prefers-color-scheme: dark){:root{--color-primary: #FF5722;--color-primary-hover: #F4511E;--color-primary-light: #FF7043;--color-primary-dark: #E64A19;--color-secondary: #ADB5BD;--color-secondary-hover: #9FA8B1;--color-secondary-light: #CED4DA;--color-secondary-dark: #868E96;--color-danger: #EF5350;--color-danger-hover: #E57373;--color-danger-light: #E57373;--color-danger-dark: #D32F2F;--color-text: #E9ECEF;--color-text-light: #CED4DA;--color-text-lighter: #ADB5BD;--color-text-inverse: #212529;--color-bg: #121212;--color-bg-white: #1E1E1E;--color-bg-hover: #2C2C2C;--color-bg-active: #3A3A3A;--color-border: #495057;--color-border-light: #343A40;--color-border-dark: #6C757D;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .5);--shadow-xl: 0 8px 16px rgba(0, 0, 0, .6);--color-highlight-space: #FF9100;--color-highlight-punctuation: #FF1744;--color-highlight-batchim: #448AFF;--color-highlight-green: #69F0AE;--color-modal-bg: #fcfcfc;--color-modal-text: #212529}}.text-gray{color:var(--color-gray)}.home-view,.level-select-view,.practice-view,.result-view,.purchase-view{flex:1;display:flex;flex-direction:column;width:100%;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}@media (max-width: 768px){body{font-size:14px}.home-view,.level-select-view,.practice-view,.result-view,.purchase-view{padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-top:max(1rem,env(safe-area-inset-top));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}button{min-height:44px;padding:.75rem 1.5rem;font-size:16px}.camera-capture video{max-width:100%;height:auto}.tts-controls{flex-wrap:wrap}.tts-controls button{flex:1 1 45%;min-width:120px}.level-selector{gap:1.5rem}.level-selector select{font-size:18px;padding:.75rem}}@media (min-width: 769px) and (max-width: 1024px){.home-view,.level-select-view,.practice-view,.result-view,.purchase-view{padding:1.5rem;max-width:800px;margin:0 auto;height:100%}}@media (min-width: 1025px){.home-view,.level-select-view,.practice-view,.result-view,.purchase-view{padding:2rem;max-width:1200px;margin:0 auto;height:100%}}@media (hover: none) and (pointer: coarse){button:hover{opacity:1}button,a,select,input{min-height:44px;min-width:44px}.modal-content{-webkit-overflow-scrolling:touch}}@media (max-width: 768px) and (orientation: landscape){.home-view,.level-select-view,.practice-view,.result-view,.purchase-view{padding:.75rem;max-height:100vh;max-height:100dvh}.camera-capture{flex-direction:row;flex:1;min-height:0}.camera-capture video{max-width:50%;max-height:100%;object-fit:contain}}@media (max-width: 480px) and (orientation: portrait){.home-view,.level-select-view,.practice-view,.result-view,.purchase-view,.settings-view{padding:.75rem;font-size:14px}}@media (max-height: 500px) and (orientation: landscape){.home-view,.level-select-view,.practice-view,.result-view,.purchase-view,.settings-view{padding:.5rem}button{padding:.5rem 1rem;font-size:14px}}#app>*{flex:1;display:flex;flex-direction:column;min-height:0;width:100%}.scrollable-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;min-height:0}.app-header,.app-footer{flex-shrink:0}.app-content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
