@tailwind base;@tailwind components;@tailwind utilities;:root{--primary-color:#4f46e5;--secondary-color:#6b7280;--success-color:#10b981;--warning-color:#f59e0b;--danger-color:#ef4444;--light-bg:#f8fafc;--dark-text:#1f2937;--border-color:#e5e7eb}*{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}body{background-color:var(--light-bg);color:var(--dark-text);margin:0;padding:0}.btn-base{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-weight:500;justify-content:center;outline:none;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease-in-out}.btn-base:focus{ring:2px;ring-color:var(--primary-color);ring-opacity:.5}.btn-base:disabled{cursor:not-allowed;opacity:.6}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-fadeIn{animation:fadeIn .3s ease-out}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.container{margin:0 auto;max-width:1200px;padding:0 1rem;width:100%}.hidden{display:none}@media (min-width:640px){.sm\:block{display:block}.sm\:hidden{display:none}}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.kage-canvas{background:#fff;border:2px solid var(--border-color);border-radius:8px}.stroke-trace{stroke:var(--primary-color);stroke-width:2;fill:none;opacity:.7}.stroke-complete{stroke:var(--success-color);stroke-width:3;fill:none}.stroke-target{stroke:var(--border-color);stroke-width:1;fill:none;stroke-dasharray:5,5}@media print{.no-print{display:none!important}}.nazorigaki-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);font-family:Hiragino Sans,ヒラギノ角ゴシック,Yu Gothic,メイリオ,sans-serif;min-height:100vh}.header{align-items:center;background:#fff;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem;position:sticky;top:0;z-index:100}.title{color:#2d3748;font-size:1.8rem;font-weight:700;margin:0}.controls{display:flex;gap:1rem}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-weight:500;gap:.5rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.btn-primary{background:#4f46e5;color:#fff}.btn-primary:hover{background:#4338ca;transform:translateY(-1px)}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#374151;transform:translateY(-1px)}.btn-outline{background:transparent;border:2px solid #4f46e5;color:#4f46e5}.btn-outline:hover{background:#4f46e5;color:#fff}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:disabled,.btn:disabled:hover{transform:none}.completed-state,.loading-state,.ready-state{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 100px);padding:2rem;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#4f46e5;height:40px;margin-bottom:1rem;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.completion-message h2,.welcome-message h2{color:#1f2937;font-size:2rem;margin-bottom:1rem}.completion-message p,.welcome-message p{color:#6b7280;font-size:1.1rem;margin-bottom:2rem}.completion-icon{font-size:4rem;margin-bottom:1rem}.completion-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.practicing-state{padding:2rem}.main-content{display:grid;gap:2rem;grid-template-columns:2fr 1fr;margin:0 auto;max-width:1400px}.left-panel{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;overflow:hidden}.right-panel{display:flex;flex-direction:column;gap:1rem}.canvas-section{align-items:center;background:#fafbfc;border-bottom:1px solid #e5e7eb;display:flex;justify-content:center;min-height:400px;position:relative}.controls-section{background:#fff;padding:1.5rem}.font-selection{margin-bottom:1.5rem}.font-label{color:#374151;display:block;font-weight:600;margin-bottom:.5rem}.font-options{display:flex;gap:1rem}.radio-label{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:.5rem;padding:.5rem;transition:background-color .2s}.radio-label:hover{background:#f3f4f6}.radio-label input[type=radio]{margin:0}.navigation-buttons{display:flex;gap:.5rem;justify-content:center}.completion-section,.progress-section{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem}.completion-section h3,.progress-section h3{color:#1f2937;font-size:1.2rem;font-weight:600;margin:0 0 1rem;text-align:center}@media (max-width:1024px){.main-content{gap:1rem;grid-template-columns:1fr}.header{flex-direction:column;gap:1rem;padding:1rem}.title{font-size:1.5rem}.practicing-state{padding:1rem}}@media (max-width:640px){.controls{flex-direction:column;width:100%}.btn{justify-content:center}.completion-actions,.font-options,.navigation-buttons{flex-direction:column}.completion-actions{width:100%}}.practicing-state{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#canvas-container{height:400px;position:relative;width:100%}#completion-image{min-height:200px}#progress-bar{min-height:100px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}
