:root{--sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, Consolas, monospace}body{margin:0;padding:0;font-family:var(--sans);background-color:#f8fafc;color:#0f172a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}#root{min-height:100vh;display:flex;flex-direction:column}.app-container{max-width:1000px;margin:0 auto;padding:4rem 2rem;width:100%}.header{text-align:center;margin-bottom:3rem;animation:fadeInDown .5s ease-out}.title{font-size:3.5rem;font-weight:800;color:#4f46e5;margin:0 0 .5rem;letter-spacing:-.025em;text-shadow:0 2px 4px rgba(79,70,229,.1)}.subtitle{font-size:1.1rem;color:#64748b;margin:0;font-weight:500}.input-section{background:#fff;padding:1.5rem;border-radius:20px;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000003;border:1px solid #f1f5f9;margin-bottom:2rem;transition:transform .2s,box-shadow .2s}.input-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.input-hint{font-size:.9rem;color:#64748b;font-weight:500}.btn{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s;border:none}.btn-clear{background:#fee2e2;color:#ef4444}.btn-clear:hover:not(:disabled){background:#fca5a5;color:#991b1b}.btn-clear:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9;color:#94a3b8}.input-section:focus-within{box-shadow:0 20px 25px -5px #4f46e51a,0 8px 10px -6px #4f46e50d;transform:translateY(-2px)}.text-input{width:100%;font-size:1.15rem;padding:1.5rem;border-radius:12px;border:2px solid transparent;background-color:#f8fafc;color:#1e293b;transition:all .3s ease;resize:vertical;font-family:var(--sans);min-height:250px;line-height:1.8}.tutorial-box{background:#eff6ff;border-left:4px solid #3b82f6;padding:1.25rem 1.5rem;margin-bottom:2rem;border-radius:0 12px 12px 0;color:#1e293b;font-size:.95rem;line-height:1.6;animation:fadeInDown .6s ease-out}.tutorial-box h3{margin-top:0;margin-bottom:.5rem;color:#1d4ed8;font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.tutorial-box p{margin:0 0 .5rem}.tutorial-box ul{margin:0;padding-left:1.5rem;color:#334155}.tutorial-box li{margin-bottom:.25rem}.text-input::placeholder{color:#94a3b8}.text-input:focus{outline:none;border-color:#818cf8;background-color:#fff;box-shadow:0 0 0 4px #4f46e51a}.results-grid{display:flex;flex-direction:column;gap:2rem;animation:fadeIn .6s ease-out}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background:#fff;padding:1.5rem;border-radius:16px;border:1px solid #f1f5f9;box-shadow:0 4px 6px -1px #0000000d;display:flex;flex-direction:column;align-items:center;justify-content:center}.stat-label{font-size:.9rem;color:#64748b;font-weight:600;margin-bottom:.5rem}.stat-value{font-size:2rem;font-weight:800;color:#1e293b}.stat-value small{font-size:1rem;color:#94a3b8;font-weight:600}.progress-bar{width:100%;height:6px;background:#f1f5f9;border-radius:3px;margin-top:1rem;overflow:hidden}.progress-fill{height:100%;border-radius:3px;transition:width .5s ease-out}.progress-fill.left{background:#3b82f6}.progress-fill.right{background:#10b981}.card{background:#fff;padding:2.5rem;border-radius:20px;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000003;border:1px solid #f1f5f9;overflow:hidden;display:flex;flex-direction:column;align-items:center}.card h2{margin-top:0;margin-bottom:2rem;font-size:1.5rem;font-weight:700;color:#1e293b;text-align:center;position:relative;padding-bottom:1rem;width:100%}.card h2:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60px;height:4px;background:linear-gradient(90deg,#4f46e5,#818cf8);border-radius:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.keyboard-container{display:flex;flex-direction:column;align-items:flex-start;margin:0 auto;gap:8px;background-color:#f8fafc;padding:2rem;border-radius:16px;border:1px solid #e2e8f0;box-shadow:inset 0 2px 4px #00000005;width:max-content}.keyboard-row{display:flex;gap:8px}.row-0{margin-left:0}.row-1{margin-left:40px}.row-2{margin-left:50px}.row-3{margin-left:0}.row-4{margin-left:0;justify-content:center;width:100%;margin-top:4px}.keyboard-key{position:relative;width:52px;height:52px;background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 4px #cbd5e1,0 4px 6px #0000000d;display:flex;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;color:#334155;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;cursor:default}.keyboard-key:active{transform:translateY(4px);box-shadow:0 0 #cbd5e1,0 1px 2px #0000000d}.key-Shift{width:120px;font-size:.9rem}.key-Space{width:320px;font-size:.9rem}.key-Enter{width:104px;font-size:.9rem}.key-hangul{position:absolute;bottom:6px;right:8px}.key-Shift .key-hangul,.key-Space .key-hangul,.key-Enter .key-hangul{position:static;font-size:.95rem}.key-hangul-shift{position:absolute;top:6px;right:8px;font-size:.8rem;color:#94a3b8}.key-en{position:absolute;top:6px;left:8px;font-size:.75rem;color:#94a3b8}.key-count-badge{position:absolute;top:-6px;right:-6px;background-color:#ef4444;color:#fff;font-size:.75rem;font-weight:800;padding:2px 6px;border-radius:12px;box-shadow:0 2px 4px #0003;z-index:10;animation:popIn .3s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.keyboard-key[style*="color: rgb(255, 255, 255)"] .key-en,.keyboard-key[style*="color: rgb(255, 255, 255)"] .key-hangul-shift,.keyboard-key[style*="color: rgb(255, 255, 255)"] .key-hangul{color:#fffc}.keyboard-key[style*="color: rgb(255, 255, 255)"] .key-hangul{color:#fff}
