:root{--bg-base: #121212;--bg-elevated: #1a1a1a;--bg-card: #242424;--bg-card-hover: #2c2c2c;--border: #333333;--border-strong: #444444;--primary: #e63946;--primary-deep: #d32f2f;--primary-glow: rgba(230, 57, 70, .45);--accent: #ff9f1c;--accent-soft: rgba(255, 159, 28, .18);--accent-glow: rgba(255, 159, 28, .55);--text: #f5f5f5;--text-sub: #b0b0b0;--text-mute: #777777;--success: #2ecc71;--danger: #ff5c5c;--radius-sm: 6px;--radius: 12px;--radius-lg: 18px;--shadow-card: 0 6px 24px rgba(0, 0, 0, .45);--shadow-pop: 0 10px 40px rgba(0, 0, 0, .6);--font-sans: "Noto Sans JP", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--bg-base);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button{font-family:inherit;cursor:pointer;border:none;outline:none}button:disabled{cursor:not-allowed;opacity:.5}textarea,input,select{font-family:inherit;font-size:14px;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}textarea:focus,input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.app{min-height:100%;background:radial-gradient(circle at 10% -10%,rgba(230,57,70,.12),transparent 40%),radial-gradient(circle at 90% 110%,rgba(255,159,28,.08),transparent 45%),var(--bg-base)}.container{max-width:960px;margin:0 auto;padding:24px 20px 80px}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);display:grid;place-items:center;font-size:20px;box-shadow:0 4px 16px var(--primary-glow)}.brand-title{font-weight:900;letter-spacing:.08em;font-size:18px}.brand-sub{color:var(--text-sub);font-size:11px;letter-spacing:.2em;text-transform:uppercase}.predictor{background:linear-gradient(180deg,#1f1f1f,#1a1a1a);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 22px 18px;box-shadow:var(--shadow-card);margin-bottom:28px;position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.predictor-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px}.predictor-title{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-sub);font-weight:700}.predictor-rank{font-weight:900;font-size:28px;letter-spacing:.06em;background:linear-gradient(135deg,var(--accent) 0%,var(--primary) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.predictor-score{color:var(--text);font-weight:700;font-size:14px}.predictor-score b{color:var(--accent);font-size:18px;margin-right:4px}.predictor-track{position:relative;height:14px;background:#0e0e0e;border:1px solid var(--border);border-radius:999px;overflow:hidden}.predictor-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--primary-deep) 0%,var(--primary) 50%,var(--accent) 100%);border-radius:999px;transition:width .8s cubic-bezier(.22,1,.36,1);box-shadow:0 0 16px var(--accent-glow)}.predictor-marks{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;color:var(--text-mute);letter-spacing:.12em}.predictor-marks span.active{color:var(--accent);font-weight:700}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-card);margin-bottom:22px}.card-title{margin:0 0 4px;font-size:18px;font-weight:800;letter-spacing:.02em}.card-sub{color:var(--text-sub);font-size:13px;margin-bottom:16px}.breakthrough-wrap{display:grid;place-items:center;padding:14px 0 8px}.breakthrough-btn{position:relative;display:inline-flex;align-items:center;gap:14px;padding:22px 38px;border-radius:999px;font-size:18px;font-weight:900;letter-spacing:.08em;color:#1a1a1a;background:linear-gradient(135deg,#ffb13a 0%,var(--accent) 60%,#f08a00 100%);box-shadow:0 0 #ff9f1c73,0 18px 40px -10px #ff9f1c8c,inset 0 -3px #0000002e;transition:transform .15s ease,box-shadow .3s ease;animation:pulse 2.4s ease-in-out infinite}.breakthrough-btn:hover{transform:translateY(-2px) scale(1.02)}.breakthrough-btn:active{transform:translateY(0) scale(.99)}.breakthrough-btn .bolt{font-size:26px;filter:drop-shadow(0 0 6px rgba(255,255,255,.7))}.breakthrough-caption{margin-top:14px;color:var(--text-sub);font-size:12px;letter-spacing:.18em;text-transform:uppercase}@keyframes pulse{0%,to{box-shadow:0 0 #ff9f1c8c,0 18px 40px -10px #ff9f1c8c,inset 0 -3px #0000002e}50%{box-shadow:0 0 0 14px #ff9f1c00,0 22px 50px -10px #ff9f1cb3,inset 0 -3px #0000002e}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:700;letter-spacing:.04em;transition:transform .12s ease,background .15s ease,box-shadow .15s ease}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 18px -6px var(--primary-glow)}.btn-primary:hover:not(:disabled){background:var(--primary-deep);transform:translateY(-1px)}.btn-accent{background:var(--accent);color:#1a1a1a}.btn-accent:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--bg-card-hover)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:grid;place-items:center;z-index:100;animation:fadeIn .18s ease;padding:16px}.modal{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius);padding:26px;width:100%;max-width:460px;box-shadow:var(--shadow-pop);animation:popIn .22s cubic-bezier(.22,1,.36,1)}.modal h3{margin:0 0 4px;font-size:20px;font-weight:900}.modal-sub{color:var(--text-sub);font-size:13px;margin-bottom:18px}.field{display:block;margin-bottom:14px}.field-label{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-sub);margin-bottom:6px;font-weight:700}.field select,.field textarea,.field input{width:100%}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,#ff9f1cd9,#ff9f1c66 40%,#ff9f1c00 70%);opacity:0;z-index:200;animation:flashAnim 1.1s ease-out forwards;mix-blend-mode:screen}@keyframes flashAnim{0%{opacity:0;transform:scale(.8)}20%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1.4)}}.rankup{position:fixed;top:24px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:#1a1a1a;padding:14px 26px;border-radius:999px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;z-index:300;box-shadow:0 12px 40px var(--accent-glow);animation:rankSlide 2.2s ease forwards}@keyframes rankSlide{0%{opacity:0;transform:translate(-50%,-20px)}10%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-20px)}}.steps{display:grid;gap:16px}.step{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start;padding:16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.step-num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:900;font-size:15px;box-shadow:0 0 0 4px #e639462e}.step-title{margin:0 0 6px;font-size:15px;font-weight:800}.step-body{color:var(--text-sub);font-size:13px}.scenario-picker{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}.chip{padding:8px 14px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-sub);font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:all .15s ease}.chip:hover{border-color:var(--accent);color:var(--text)}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 14px -4px var(--primary-glow)}.killer-phrase{background:#1a1a1a;border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:12px 14px;margin-top:10px;font-style:italic;color:var(--text);font-size:14px;line-height:1.7}.killer-label{display:block;font-style:normal;font-size:10px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;font-weight:700;margin-bottom:6px}.banner{margin-top:12px;padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;border:1px solid var(--border)}.banner.success{background:#2ecc711a;border-color:#2ecc7166;color:#b6f0cd}.banner.error{background:#ff5c5c1a;border-color:#ff5c5c66;color:#ffc8c8}.banner.info{background:#ff9f1c14;border-color:#ff9f1c4d;color:#ffd89e}.history-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:280px;overflow-y:auto}.history-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px}.history-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px}.history-icon.bt{background:var(--accent-soft)}.history-icon.rp{background:#e639462e}.history-meta{color:var(--text-sub);font-size:11px;letter-spacing:.06em}.history-pts{color:var(--accent);font-weight:800;font-size:13px}.empty{text-align:center;color:var(--text-mute);font-size:13px;padding:14px}.footer{text-align:center;color:var(--text-mute);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-top:30px}.reset-btn{margin-top:12px;background:transparent;color:var(--text-mute);font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:1px dashed var(--border);padding:6px 12px;border-radius:999px}.reset-btn:hover{color:var(--danger);border-color:var(--danger)}@media (max-width: 600px){.container{padding:16px 14px 80px}.predictor-rank{font-size:22px}.breakthrough-btn{padding:18px 26px;font-size:15px}.card{padding:18px}}
