html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}#root{min-height:100vh}.welcome-container{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);color:var(--white);text-align:center}.welcome-content{max-width:500px;width:100%}.welcome-icon{font-size:64px;margin-bottom:24px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.welcome-title{font-size:32px;font-weight:800;margin-bottom:16px;line-height:1.2}.welcome-subtitle{font-size:18px;opacity:.9;margin-bottom:40px;line-height:1.6}.features-list{display:flex;flex-direction:column;gap:16px;margin-bottom:40px;text-align:left}.feature{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px;border-radius:12px;display:flex;align-items:center;gap:12px;font-size:16px;font-weight:500}.feature-icon{font-size:24px}.start-button{margin-bottom:16px;background:var(--white);color:#667eea}.start-button:hover{background:#f3f4f6;transform:translateY(-2px)}.checklist-link{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.3);padding:12px 24px;border-radius:12px;font-size:14px;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block;font-weight:500}.checklist-link:hover{background:#ffffff1a;border-color:#fff9}.welcome-footer{margin-top:40px}.footer-text{font-size:14px;opacity:.7}@media(max-width:768px){.welcome-title{font-size:28px}.welcome-subtitle{font-size:16px}.welcome-icon{font-size:48px}}.example-container{min-height:calc(100vh - 60px);display:flex;flex-direction:column;padding:24px}.example-container.bad{background:#fef2f2}.example-header{margin-bottom:32px}.example-header h1{font-size:24px;margin-bottom:8px;color:var(--text-color)}.example-header .description{font-size:16px;color:var(--text-light);line-height:1.5}.example-demo{flex:1;background:var(--white);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow-lg);overflow-y:auto}.bad-harmony{text-align:center}.bad-harmony h2{margin-bottom:16px}.bad-harmony p{margin-bottom:20px}.bad-harmony button{padding:10px 20px;cursor:pointer}.bad-spacing{line-height:1}.bad-spacing h2,.bad-spacing p,.bad-spacing button{margin:0;padding:0;line-height:1.2}.bad-spacing button{margin-top:2px;padding:4px 8px;font-size:12px}.bad-contrast{background:#f5f5f5;padding:20px;border-radius:8px}.bad-contrast button{margin-top:16px;padding:10px 20px;cursor:pointer}.bad-hierarchy p{font-size:14px;margin-bottom:8px;font-weight:400;color:#333}.bad-feedback{text-align:center}.bad-feedback h2{margin-bottom:24px}.no-feedback{display:block;width:100%;margin-bottom:12px;padding:12px;background:#e5e7eb;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:14px}.bad-loading{text-align:center}.bad-loading h2{margin-bottom:20px;color:#666}.frozen-content{opacity:.3}.bad-navigation{height:100%}.bad-navigation .content-area{padding:20px}.bad-navigation h2{margin-bottom:16px}.bad-navigation p{margin-bottom:12px;color:#666}.bad-touch{text-align:center}.bad-touch h2{margin-bottom:24px}.tiny-buttons{display:flex;justify-content:center;gap:4px}.tiny{width:24px;height:24px;padding:2px;font-size:12px;background:#e5e7eb;border:none;border-radius:4px;cursor:pointer}@media(max-width:768px){.example-container{padding:16px}.example-header h1{font-size:20px}.example-demo{padding:16px}}.example-container.good{background:#f0fdf4}.good-harmony{text-align:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.good-harmony h2{color:#1f2937;font-size:28px;font-weight:700;margin-bottom:16px}.good-harmony p{color:#6b7280;font-size:16px;line-height:1.6;margin-bottom:24px}.primary-button{background:#6366f1;color:#fff;border:none;padding:12px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px}.primary-button:hover{background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.good-spacing h2{font-size:24px;font-weight:700;color:#1f2937;margin-bottom:16px}.product-description{font-size:16px;line-height:1.6;color:#6b7280;margin-bottom:24px}.price-section{margin-bottom:24px}.price{font-size:32px;font-weight:700;color:#1f2937}.button-group{display:flex;gap:12px}.button-group button{flex:1;padding:12px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px}.secondary-button{background:#fff;color:#6366f1;border:2px solid #6366f1}.secondary-button:hover{background:#f5f3ff}.good-contrast{background:#fff;padding:24px;border-radius:8px}.good-contrast h2{color:#111827;font-size:24px;font-weight:700;margin-bottom:16px}.good-contrast p{color:#374151;font-size:16px;line-height:1.6;margin-bottom:24px}.high-contrast-button{background:#111827;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px}.high-contrast-button:hover{background:#1f2937;box-shadow:0 4px 12px #00000026}.good-hierarchy{padding:8px}.main-title{font-size:32px;font-weight:800;color:#111827;margin-bottom:12px;line-height:1.2}.subtitle{font-size:20px;font-weight:600;color:#374151;margin-bottom:16px;line-height:1.3}.body-text{font-size:16px;color:#6b7280;line-height:1.6;margin-bottom:12px}.note{font-size:14px;color:#9ca3af;margin-bottom:24px}.cta-button{background:#6366f1;color:#fff;border:none;padding:14px 28px;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;min-height:48px}.cta-button:hover{background:#4f46e5;transform:translateY(-2px);box-shadow:0 8px 16px #6366f14d}.good-feedback{text-align:center}.good-feedback h2{margin-bottom:24px;font-size:24px;font-weight:700;color:#1f2937}.feedback-button{display:block;width:100%;margin-bottom:12px;padding:14px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .15s;min-height:48px}.feedback-button.primary{background:#6366f1;color:#fff}.feedback-button.primary:hover{background:#4f46e5;transform:scale(1.02);box-shadow:0 4px 12px #6366f14d}.feedback-button.primary:active{transform:scale(.98)}.feedback-button.secondary{background:#f3f4f6;color:#374151}.feedback-button.secondary:hover{background:#e5e7eb}.feedback-button.danger{background:#fee2e2;color:#991b1b}.feedback-button.danger:hover{background:#fecaca}.good-loading{padding:24px}.good-loading h2{font-size:20px;font-weight:600;color:#374151;margin-bottom:24px}.skeleton-loader{margin-bottom:24px}.skeleton-line{height:16px;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;margin-bottom:12px}.skeleton-line.short{width:60%}.skeleton-box{height:120px;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:#6366f1;border-radius:4px;animation:progress 2s ease-in-out infinite}@keyframes progress{0%{width:0%}50%{width:70%}to{width:100%}}.good-navigation{height:100%;display:flex;flex-direction:column}.nav-header{background:#f9fafb;padding:16px;border-radius:8px;margin-bottom:16px}.back-button{background:#fff;border:1px solid #e5e7eb;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s;margin-bottom:12px;min-height:44px}.back-button:hover{background:#f9fafb;border-color:#6366f1;color:#6366f1}.breadcrumb{font-size:14px;color:#6b7280}.good-navigation .content-area{flex:1;padding:20px}.good-navigation h2{font-size:24px;font-weight:700;color:#1f2937;margin-bottom:12px}.good-navigation p{color:#6b7280;line-height:1.6}.good-touch{text-align:center}.good-touch h2{font-size:24px;font-weight:700;color:#1f2937;margin-bottom:32px}.touch-buttons{display:flex;flex-direction:column;gap:16px}.touch-button{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .2s;min-height:56px;text-align:left}.touch-button:hover{background:#fff;border-color:#6366f1;transform:translate(4px)}.touch-button:active{transform:scale(.98)}.touch-button .icon{font-size:24px;flex-shrink:0}.touch-button .label{font-size:16px;font-weight:600;color:#1f2937}.explanation-container{min-height:calc(100vh - 60px);display:flex;flex-direction:column;padding:24px;background:#eff6ff}.explanation-header{margin-bottom:32px}.explanation-header h1{font-size:24px;font-weight:700;color:var(--text-color);margin-bottom:8px}.explanation-content{flex:1;background:var(--white);border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow-lg)}.main-explanation{font-size:18px;line-height:1.7;color:var(--text-color);margin-bottom:32px;font-weight:500}.tips-section{background:#f0fdf4;padding:20px;border-radius:12px;border-left:4px solid var(--success-color)}.tips-section h3{font-size:18px;font-weight:700;color:var(--text-color);margin-bottom:16px}.tips-list{list-style:none;margin:0;padding:0}.tips-list li{padding-left:28px;margin-bottom:12px;font-size:16px;line-height:1.6;color:#374151;position:relative}.tips-list li:last-child{margin-bottom:0}.tips-list li:before{content:"✓";position:absolute;left:0;color:var(--success-color);font-weight:700;font-size:18px}.progress-indicator{margin-bottom:16px;text-align:center}.progress-text{display:block;font-size:14px;color:var(--text-light);margin-bottom:12px;font-weight:500}.progress-dots{display:flex;justify-content:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;background:#d1d5db;transition:all .3s}.dot.completed{background:var(--success-color)}.dot.active{background:var(--primary-color);transform:scale(1.5)}@media(max-width:768px){.explanation-container{padding:16px}.explanation-header h1{font-size:20px}.explanation-content{padding:20px}.main-explanation{font-size:16px}.tips-section{padding:16px}.tips-section h3{font-size:16px}.tips-list li{font-size:15px}}.checklist-container{min-height:calc(100vh - 60px);display:flex;flex-direction:column;padding:24px;background:var(--bg-color)}.checklist-header{text-align:center;margin-bottom:32px}.checklist-header h1{font-size:28px;font-weight:800;color:var(--text-color);margin-bottom:8px}.subtitle{font-size:16px;color:var(--text-light);line-height:1.5}.checklist-content{flex:1;margin-bottom:24px}.checklist-category{background:var(--white);border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:var(--shadow)}.category-title{font-size:20px;font-weight:700;color:var(--text-color);margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--border-color)}.checklist-items{list-style:none;margin:0;padding:0}.checklist-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.checklist-item:last-child{border-bottom:none}.checkbox{margin-top:2px;width:20px;height:20px;cursor:pointer;accent-color:var(--primary-color);flex-shrink:0}.checklist-item label{flex:1;font-size:15px;line-height:1.6;color:var(--text-color);cursor:pointer;-webkit-user-select:none;user-select:none}.checklist-item input:checked+label{text-decoration:line-through;color:var(--text-light)}.checklist-footer{margin-top:auto}.info-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:16px;margin-bottom:16px}.info-box p{font-size:14px;line-height:1.6;color:#1e40af;margin:0}.info-box strong{font-weight:700}.restart-button{background:var(--text-color)}.restart-button:hover{background:#374151}@media(max-width:768px){.checklist-container{padding:16px}.checklist-header h1{font-size:24px}.checklist-category{padding:20px 16px}.category-title{font-size:18px}.checklist-item label{font-size:14px}.info-box{padding:12px}.info-box p{font-size:13px}}:root{--primary-color: #6366f1;--primary-hover: #4f46e5;--success-color: #10b981;--danger-color: #ef4444;--text-color: #1f2937;--text-light: #6b7280;--bg-color: #f9fafb;--white: #ffffff;--border-color: #e5e7eb;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-color);color:var(--text-color)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--white);border-bottom:1px solid var(--border-color);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.home-button,.checklist-button{padding:8px 16px;background:transparent;border:1px solid var(--border-color);border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s;font-weight:500;color:var(--text-color)}.home-button:hover,.checklist-button:hover{background:var(--bg-color);border-color:var(--primary-color);color:var(--primary-color)}.home-button:active,.checklist-button:active{transform:scale(.98)}.app-main{flex:1;display:flex;flex-direction:column}button{font-family:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.next-button,.start-button,.restart-button{width:100%;padding:16px 24px;background:var(--primary-color);color:var(--white);border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow);min-height:48px}.next-button:hover,.start-button:hover,.restart-button:hover{background:var(--primary-hover);box-shadow:var(--shadow-lg)}.next-button:active,.start-button:active,.restart-button:active{transform:scale(.98)}.badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:14px;font-weight:600;margin-bottom:16px}.badge-bad{background:#fee2e2;color:#991b1b}.badge-good{background:#d1fae5;color:#065f46}.badge-info{background:#dbeafe;color:#1e40af}@media(max-width:768px){.app-header{padding:10px 12px}.home-button,.checklist-button{padding:6px 12px;font-size:13px}}
