:root{--font-body:"Noto Sans KR", "Inter", system-ui, sans-serif;--bg-base:#0a0a12;--bg-surface:#12121e;--bg-card:#1e1e2e;--primary:#6366f1;--primary-hover:#4f46e5;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--border:#334155;--accent-gradient:linear-gradient(135deg, #6366f1 0%, #a855f7 100%);--cell-size:42px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-base);color:var(--text-main);-webkit-font-smoothing:antialiased;justify-content:center;min-height:100vh;line-height:1.6;display:flex}#app{width:100%;max-width:1200px;padding:2rem}.game-container{flex-direction:column;gap:2rem;display:flex}.game-header{text-align:center;margin-bottom:1rem}.logo{justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.logo h1{letter-spacing:-.02em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2.5rem;font-weight:900}.subtitle{color:var(--text-muted);font-size:1.1rem}.controls-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;padding:1.25rem 2rem;display:flex;box-shadow:0 10px 25px -5px #0000004d}.control-group{align-items:center;gap:.75rem;display:flex}.control-group label{color:var(--text-muted);font-size:.9rem;font-weight:600}.control-divider{background-color:var(--border);width:1px;height:24px}.control-group-row{align-items:center;gap:1.5rem;display:flex}select,input[type=number]{background:var(--bg-card);border:1px solid var(--border);color:var(--text-main);border-radius:8px;padding:.5rem .75rem;font-family:inherit;font-size:.95rem;transition:all .2s}select:focus,input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #6366f133}.game-layout{grid-template-columns:1fr 350px;align-items:start;gap:2rem;display:grid}@media (width<=900px){.game-layout{grid-template-columns:1fr}}.grid-section{flex-direction:column;gap:1.5rem;display:flex}.grid-wrapper{background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:400px;padding:2rem;display:flex;position:relative}.crossword-grid{background-color:var(--border);border:4px solid var(--border);border-radius:8px;gap:4px;padding:4px;display:grid;box-shadow:0 20px 50px #00000080}.cell-wrapper{width:var(--cell-size);height:var(--cell-size);transition:all .2s;position:relative}.cell-wrapper.wall{background-color:#000}.cell-wrapper.cell{background-color:#fff}.cell-wrapper input{text-align:center;text-transform:uppercase;color:#1e293b;cursor:pointer;width:100%;height:100%;caret-color:var(--primary);background:0 0;border:none;font-size:1.4rem;font-weight:800}.cell-wrapper input:focus{outline:none}.cell-number{color:#64748b;z-index:1;pointer-events:none;font-size:.65rem;font-weight:700;position:absolute;top:2px;left:3px}.cell-wrapper.active{background-color:#fef08a!important}.cell-wrapper.highlight{background-color:#e0f2fe!important}.cell-wrapper.correct{background-color:#d1fae5!important}.cell-wrapper.wrong{background-color:#fee2e2!important}.cell-wrapper.correct input{color:#065f46}.cell-wrapper.wrong input{color:#991b1b}.clue-section{flex-direction:column;gap:1.5rem;display:flex}.clue-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;max-height:400px;padding:1.5rem;display:flex}.clue-card h3{color:var(--primary);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.1rem;display:flex}.clue-list{padding-right:.5rem;list-style:none;overflow-y:auto}.clue-list::-webkit-scrollbar{width:6px}.clue-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.clue-list li{cursor:pointer;color:var(--text-muted);border:1px solid #0000;border-radius:8px;margin-bottom:.5rem;padding:.75rem;font-size:.95rem;transition:all .2s}.clue-list li:hover{background:var(--bg-card);color:var(--text-main)}.clue-list li.active{background:var(--primary);color:#fff;border-color:var(--primary)}.difficulty-tag{vertical-align:middle;background:#ffffff1a;border-radius:4px;margin-left:.5rem;padding:2px 6px;font-size:.7rem}.progress-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:1rem 1.5rem}.progress-info{justify-content:space-between;margin-bottom:.5rem;font-size:.9rem;font-weight:600;display:flex}.progress-track{background:var(--bg-card);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:var(--accent-gradient);height:100%;transition:width .3s}.action-buttons{justify-content:center;gap:1rem;display:flex}.btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-weight:700;transition:all .2s;display:flex}.btn-primary{background:var(--accent-gradient);color:#fff}.btn-outline{border:2px solid var(--border);color:var(--text-muted);background:0 0}.btn-success{background:var(--success);color:#fff}.btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.hidden{display:none!important}.loading-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a12e6;flex-direction:column;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.loading-overlay.visible{display:flex}.loader{border:5px solid var(--text-muted);border-bottom-color:var(--primary);border-radius:50%;width:48px;height:48px;margin-bottom:1rem;animation:1s linear infinite rotation}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal{opacity:0;visibility:hidden;z-index:200;background:#000c;justify-content:center;align-items:center;transition:all .3s;display:flex;position:fixed;inset:0}.modal.visible{opacity:1;visibility:visible}.modal-content{background:var(--bg-card);text-align:center;border:1px solid var(--border);border-radius:24px;width:90%;max-width:450px;padding:3rem}.modal-emoji{margin-bottom:1rem;font-size:4rem}.modal-score{color:var(--primary);margin:1rem 0;font-size:1.5rem;font-weight:800}.modal-actions{justify-content:center;gap:1rem;margin-top:2rem;display:flex}.empty-state{text-align:center;background:var(--bg-surface);border:1px dashed var(--border);border-radius:20px;padding:3rem}.empty-icon{opacity:.5;margin-bottom:1rem;font-size:4rem}.empty-state h3{color:var(--text-main);margin-bottom:.5rem;font-size:1.5rem}.empty-state p{color:var(--text-muted)}
