:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-bg-light:#f8fafc;--color-text-dark:#1f2937;--color-white:#fff;--color-yellow:#d97706;--color-success:#16a34a;--color-error:#dc2626;--color-border:#e2e8f0;--font-family:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", Meiryo, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg-light);color:var(--color-text-dark);min-height:100vh;font-size:18px;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}.app-container{background-color:var(--color-white);flex-direction:column;flex:1;width:100%;max-width:960px;min-height:100vh;margin:0 auto;display:flex;position:relative;box-shadow:0 4px 20px #0000000d}.main-content{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;padding:24px 16px;display:flex}.screen{flex-direction:column;flex:1;align-items:center;width:100%;display:flex}.screen-header{border-bottom:2px solid var(--color-border);align-items:center;width:100%;margin-bottom:24px;padding-bottom:12px;display:flex}.btn-back{border:2px solid var(--color-primary);color:var(--color-primary);cursor:pointer;background:0 0;border-radius:8px;margin-right:16px;padding:8px 16px;font-size:20px;font-weight:700;transition:all .2s}.btn-back:hover{background-color:var(--color-primary);color:var(--color-white)}.screen-title{color:var(--color-text-dark);font-size:28px;font-weight:900}.btn{font-family:var(--font-family);cursor:pointer;touch-action:manipulation;border:none;border-radius:12px;justify-content:center;align-items:center;min-height:56px;padding:14px 28px;font-size:22px;font-weight:700;text-decoration:none;transition:transform .1s,background-color .2s,box-shadow .2s;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:var(--color-white);box-shadow:0 4px 6px #2563eb33}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-primary:active{transform:scale(.97)}.btn-secondary{background-color:var(--color-white);color:var(--color-primary);border:3px solid var(--color-primary)}.btn-secondary:hover{background-color:#eff6ff}.btn-secondary:active{transform:scale(.97)}.btn-danger{background-color:var(--color-error);color:var(--color-white);box-shadow:0 4px 6px #dc262633}.btn-danger:hover{background-color:#b91c1c}.btn-large{border-radius:16px;width:100%;max-width:320px;padding:18px 36px;font-size:26px}button:focus-visible,a:focus-visible{outline:4px solid var(--color-primary);outline-offset:4px}.top-screen{justify-content:space-between}.top-header{text-align:center;margin-top:32px}.app-title{color:var(--color-primary);letter-spacing:2px;margin-bottom:8px;font-size:54px;font-weight:900}.app-tagline{color:var(--color-text-dark);font-size:20px;font-weight:700}.top-menu{flex-direction:column;align-items:center;gap:16px;width:100%;margin:32px 0;display:flex}.button-group-row{gap:16px;width:100%;max-width:320px;display:flex}.button-group-row .btn{flex:1}.records-board{text-align:center;background-color:#f1f5f9;border-radius:16px;width:100%;max-width:480px;padding:16px;box-shadow:inset 0 2px 4px #0000000d}.records-title{margin-bottom:12px;font-size:20px;font-weight:700}.records-grid{gap:12px;display:flex}.record-card{background-color:var(--color-white);border-radius:12px;flex-direction:column;flex:1;align-items:center;padding:12px;display:flex;box-shadow:0 2px 4px #00000008}.record-label{color:#64748b;margin-bottom:4px;font-size:14px}.record-value{color:var(--color-primary);font-size:24px;font-weight:900}.consecutive-text{color:var(--color-text-dark);margin-top:12px;font-size:16px}.modes-container{box-sizing:border-box;flex-direction:column;gap:28px;width:100%;max-width:600px;margin-bottom:24px;display:flex}.mode-section{box-sizing:border-box;flex-direction:column;gap:12px;width:100%;display:flex}.section-title{color:var(--color-text-dark);text-align:left;border-left:5px solid var(--color-primary);margin:0;padding-left:10px;font-size:22px;font-weight:800}.section-subtitle{color:#6b7280;text-align:left;margin:-4px 0 4px;font-size:15px}.beginner-modes-list{box-sizing:border-box;flex-direction:column;gap:16px;width:100%;display:flex}.mode-card-btn{background-color:var(--color-white);border:3px solid var(--color-border);text-align:left;cursor:pointer;box-sizing:border-box;border-radius:16px;width:100%;padding:18px;transition:all .2s}.mode-card-btn:hover{border-color:var(--color-primary);background-color:#eff6ff;transform:translateY(-2px)}.mode-card-mix{border:4px solid var(--color-primary);background-color:#f8fafc;box-shadow:0 4px 12px #2563eb14}.mode-card-mix:hover{border-color:var(--color-primary);background-color:#eff6ff}.badge-recommend{background-color:var(--color-error);margin-left:auto}.mode-play-guide{color:var(--color-primary);background-color:#eff6ff;border-radius:8px;margin-top:8px;padding:8px 16px;font-size:16px;font-weight:700;display:inline-block}.mode-card-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.mode-icon{font-size:28px}.mode-card-title{color:var(--color-text-dark);font-size:22px;font-weight:800}.mode-card-desc{color:#4b5563;margin-bottom:8px;font-size:16px}.mode-example{color:#6b7280;background-color:#f3f4f6;border-radius:6px;padding:6px 12px;font-size:14px;display:inline-block}.mode-rules-summary{gap:8px;margin-top:8px;display:flex}.badge{color:var(--color-white);border-radius:20px;padding:4px 10px;font-size:14px;font-weight:700}.badge-blue{background-color:var(--color-primary)}.badge-yellow{background-color:var(--color-yellow)}.start-guide-text{color:#4b5563;text-align:center;max-width:90%;margin:12px 0 24px;font-size:16px;line-height:1.5}.settings-list{flex-direction:column;gap:24px;width:100%;max-width:540px;margin-bottom:32px;display:flex}.setting-item{flex-direction:column;gap:8px;display:flex}.setting-label{font-size:20px;font-weight:700}.setting-options{gap:12px;display:flex}.option-btn{background-color:var(--color-white);border:2px solid var(--color-border);color:var(--color-text-dark);cursor:pointer;touch-action:manipulation;border-radius:10px;flex:1;min-height:48px;padding:12px;font-size:18px;font-weight:700;transition:all .2s}.option-btn:hover{border-color:var(--color-primary)}.option-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.settings-danger-zone{border-top:2px dashed var(--color-border);text-align:center;margin-top:24px;padding-top:24px}.how-to-content{flex-direction:column;gap:24px;width:100%;max-width:600px;margin-bottom:24px;display:flex}.step-card,.rules-card,.warning-card{background-color:var(--color-white);border:2px solid var(--color-border);border-radius:16px;padding:20px}.step-title,.rules-title,.warning-title{margin-bottom:16px;font-size:22px;font-weight:700}.step-list{flex-direction:column;gap:16px;list-style:none;display:flex}.step-list li{align-items:flex-start;gap:16px;display:flex}.step-num{background-color:var(--color-primary);color:var(--color-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;font-weight:700;display:flex}.step-text{color:var(--color-text-dark);font-size:18px}.rules-list{flex-direction:column;gap:12px;display:flex}.rule-item p{color:#4b5563;font-size:16px}.warning-card{background-color:#fffbeb;border-color:#fcd34d}.warning-title{color:var(--color-yellow)}.warning-text{color:#78350f;margin-bottom:8px;font-size:16px}.game-screen-layout{flex-direction:column;flex:1;width:100%;display:flex}.game-status-bar{background-color:#f1f5f9;border-radius:12px;grid-template-columns:repeat(3,1fr) auto;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:12px 16px;display:grid}.status-item{flex-direction:column;align-items:center;display:flex}.status-label{color:#475569;font-size:14px}.status-value{font-size:22px;font-weight:700}.timer-text{color:var(--color-error)}.status-controls{gap:8px;display:flex}.control-btn{background-color:var(--color-white);border:1px solid var(--color-border);cursor:pointer;border-radius:8px;padding:8px 12px;font-size:16px;font-weight:700}.control-btn:hover{background-color:#e2e8f0}.game-rule-banner{text-align:center;color:var(--color-primary);background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:16px;padding:6px;font-size:16px}.game-main-area{border:3px solid var(--color-border);background-color:var(--color-white);border-radius:20px;flex:1;justify-content:center;align-items:center;min-height:240px;margin-bottom:24px;display:flex;position:relative}.countdown-display{color:var(--color-primary);justify-content:center;align-items:center;font-size:72px;font-weight:900;display:flex}.countdown-start{color:var(--color-yellow)}.question-content{flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.question-symbol{font-size:80px;line-height:1}.question-text{font-size:64px;font-weight:900;line-height:1.2}.color-blue{color:var(--color-primary)}.color-yellow{color:var(--color-yellow)}.feedback-display{flex-direction:column;justify-content:center;align-items:center;gap:12px;animation:.3s cubic-bezier(.175,.885,.32,1.275) feedback-pop;display:flex}.feedback-icon{font-size:64px}.feedback-text{font-size:32px;font-weight:700}.feedback-correct{color:var(--color-success)}.feedback-incorrect{color:var(--color-yellow)}@keyframes feedback-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.game-action-buttons{gap:24px;width:100%;display:flex}.touch-btn{border:4px solid var(--color-border);background-color:var(--color-white);min-height:140px;color:var(--color-text-dark);cursor:pointer;box-shadow:0 6px 0 var(--color-border);touch-action:manipulation;border-radius:20px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:32px;font-weight:900;transition:all .1s;display:flex;position:relative}.touch-btn-left{border-color:#cbd5e1;box-shadow:0 6px #94a3b8}.touch-btn-left.active,.touch-btn-left:active{box-shadow:none;background-color:#f1f5f9;transform:translateY(6px)}.touch-btn-right{border-color:#cbd5e1;box-shadow:0 6px #94a3b8}.touch-btn-right.active,.touch-btn-right:active{box-shadow:none;background-color:#f1f5f9;transform:translateY(6px)}.touch-btn .btn-arrow{font-size:28px}.touch-btn .btn-text{font-size:36px}.keyboard-hint{color:#64748b;margin-top:4px;font-size:14px;font-weight:400}.pause-screen-overlay{z-index:1000;background-color:#0f172ad9;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.pause-card{background-color:var(--color-white);text-align:center;border-radius:24px;width:90%;max-width:400px;padding:32px;box-shadow:0 10px 25px #0003}.pause-title{margin-bottom:12px;font-size:32px;font-weight:900}.pause-desc{color:#475569;margin-bottom:24px;font-size:18px}.pause-menu{flex-direction:column;gap:16px;display:flex}.pause-menu .btn{width:100%}.result-screen{justify-content:center}.result-header{text-align:center;margin-bottom:20px}.result-title{color:var(--color-primary);font-size:36px;font-weight:900}.result-subtitle{color:#475569;font-size:20px;font-weight:700}.new-record-badge{color:#d97706;background-color:#fef3c7;border:2px solid #fcd34d;border-radius:20px;margin-bottom:20px;padding:8px 24px;font-size:22px;font-weight:900;animation:1s infinite alternate bounce}.result-stats{width:100%;max-width:480px;margin-bottom:24px}.stat-row{background-color:#eff6ff;border:2px solid #bfdbfe;border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:16px 24px;display:flex}.stat-row .stat-label{font-size:22px;font-weight:700}.stat-row .stat-val{color:var(--color-primary);font-size:40px;font-weight:900}.stat-row .stat-val small{font-size:20px}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-card{border:1px solid var(--color-border);background-color:#f8fafc;border-radius:12px;flex-direction:column;align-items:center;padding:12px;display:flex}.stat-card-label{color:#64748b;margin-bottom:4px;font-size:14px}.stat-card-val{font-size:22px;font-weight:700}.result-actions{flex-direction:column;gap:16px;width:100%;max-width:360px;margin-bottom:32px;display:flex}.btn-share{color:var(--color-white);background-color:#059669}.btn-share:hover{background-color:#047857}.footer{border-top:1px solid var(--color-border);text-align:center;width:100%;margin-top:auto;padding:24px 0 12px}.footer-links{flex-wrap:wrap;justify-content:center;gap:16px;margin-bottom:12px;display:flex}.footer-link-btn{color:#4b5563;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:16px;text-decoration:underline}.footer-link-btn:hover{color:var(--color-primary)}.footer-copy{color:#9ca3af;font-size:13px}.modal-overlay{z-index:2000;background-color:#0f172a99;justify-content:center;align-items:center;width:100vw;height:100vh;padding:16px;display:flex;position:fixed;top:0;left:0}.modal-content{background-color:var(--color-white);border-radius:20px;flex-direction:column;width:100%;max-width:500px;max-height:80vh;padding:24px;display:flex;overflow-y:auto;box-shadow:0 10px 25px #00000026}.modal-title{border-bottom:2px solid var(--color-primary);margin-bottom:16px;padding-bottom:8px;font-size:24px;font-weight:700}.modal-body{color:#374151;text-align:left;margin-bottom:20px;font-size:16px;line-height:1.8;overflow-y:auto}.modal-body p{margin-bottom:12px}.modal-close-btn{align-self:center;width:100%;max-width:200px}.danger-modal .modal-title{border-bottom-color:var(--color-error);color:var(--color-error)}.modal-desc{color:var(--color-text-dark);margin-bottom:24px;font-size:18px}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.pulse-animation{animation:2s infinite pulse}@keyframes pulse{0%{transform:scale(1);box-shadow:0 4px 6px #2563eb33}50%{transform:scale(1.03);box-shadow:0 8px 16px #2563eb66}to{transform:scale(1);box-shadow:0 4px 6px #2563eb33}}@media (prefers-reduced-motion:reduce){.pulse-animation,.new-record-badge,.feedback-display{animation:none!important;transform:none!important}}@media (width>=768px){.beginner-modes-list{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.setting-options{gap:16px}.game-status-bar{padding:16px 24px}.touch-btn{min-height:160px}}
