:root{--bg-deep: #0a0a12;--bg-surface: #111119;--bg-panel: #161620;--bg-panel-hover: #1c1c2a;--border-panel: #252535;--border-glow: rgba(255, 107, 53, .25);--text-primary: #ede9e3;--text-secondary: #9a968e;--text-muted: #5e5c55;--accent-fire: #ff6b35;--accent-ember: #ff9a4d;--accent-spark: #ffd666;--accent-fuse: #ff4444;--accent-success: #34d399;--accent-error: #f87171;--accent-info: #60a5fa;font-family:Noto Sans JP,Hiragino Sans,Yu Gothic,system-ui,sans-serif;color:var(--text-primary);background-color:var(--bg-deep);line-height:1.6;-webkit-font-smoothing:antialiased}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-deep);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.sparks{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.spark{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--accent-spark);opacity:0;animation:spark-float 8s ease-in-out infinite}.spark:nth-child(1){left:10%;animation-delay:0s;animation-duration:7s}.spark:nth-child(2){left:25%;animation-delay:1.2s;animation-duration:9s}.spark:nth-child(3){left:45%;animation-delay:2.5s;animation-duration:6s}.spark:nth-child(4){left:65%;animation-delay:.8s;animation-duration:10s}.spark:nth-child(5){left:80%;animation-delay:3.2s;animation-duration:8s}.spark:nth-child(6){left:92%;animation-delay:1.8s;animation-duration:7.5s}@keyframes spark-float{0%{bottom:-5%;opacity:0;transform:translate(0) scale(.5)}15%{opacity:.8}50%{opacity:.4;transform:translate(20px) scale(1)}85%{opacity:.6}to{bottom:105%;opacity:0;transform:translate(-10px) scale(.3)}}.explosion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;opacity:0;background:radial-gradient(circle at center,rgba(255,154,77,.6) 0%,rgba(255,107,53,.3) 30%,transparent 70%)}.explosion-overlay.is-active{animation:explosion-flash .6s ease-out forwards}@keyframes explosion-flash{0%{opacity:1;transform:scale(.8)}30%{opacity:.8;transform:scale(1.1)}to{opacity:0;transform:scale(1.4)}}.container{position:relative;z-index:1;max-width:820px;margin:0 auto;padding:0 20px 60px}.hero{text-align:center;padding:56px 16px 44px;position:relative}.bomb-icon{margin:0 auto 4px;width:120px;height:168px;filter:drop-shadow(0 8px 32px rgba(0,0,0,.5));animation:bomb-hover 4s ease-in-out infinite;overflow:visible}.bomb-icon svg{overflow:visible}@keyframes bomb-hover{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.bomb-spark{animation:spark-flicker .8s ease-in-out infinite alternate;transform-origin:62px 0px}.bomb-spark-core{animation:spark-core-pulse .5s ease-in-out infinite alternate;transform-origin:62px 0px}@keyframes spark-flicker{0%{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}to{opacity:.7;transform:scale(1)}}@keyframes spark-core-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:1;transform:scale(1.4)}}.hero h1{font-size:3rem;font-weight:900;letter-spacing:.04em;line-height:1.1}.title-bom{background:linear-gradient(135deg,var(--accent-spark) 0%,var(--accent-ember) 50%,var(--accent-fire) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 12px rgba(255,107,53,.4))}.title-ber{color:var(--text-primary);text-shadow:0 2px 12px rgba(255,255,255,.08)}.hero-subtitle{margin-top:12px;color:var(--text-secondary);font-size:.95rem;max-width:480px;margin-left:auto;margin-right:auto;line-height:1.7}.panel{margin-top:24px;padding:24px;border:1px solid var(--border-panel);border-radius:16px;background:var(--bg-panel);transition:border-color .4s ease,box-shadow .4s ease,transform .3s ease}.panel:hover{border-color:var(--border-glow);box-shadow:0 0 40px #ff6b350f,0 8px 32px #0003}.panel-main{border-color:#ff6b3526;background:radial-gradient(ellipse at top center,rgba(255,107,53,.03) 0%,transparent 60%),var(--bg-panel)}.panel h2{font-size:1rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:10px;margin-bottom:16px}.panel h2 .icon{color:var(--accent-ember);flex-shrink:0}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--accent-fire);color:#fff;font-size:.75rem;font-weight:700;line-height:1}.badge:empty{display:none}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-height:160px;padding:28px 16px;border:2px dashed var(--border-panel);border-radius:14px;cursor:pointer;text-align:center;background:var(--bg-surface);position:relative;overflow:hidden;transition:all .35s ease}.drop-zone:before,.drop-zone:after{content:"";position:absolute;border-radius:50%;border:1px solid transparent;pointer-events:none;transition:all .5s ease}.drop-zone:before{width:220px;height:220px}.drop-zone:after{width:130px;height:130px}.drop-zone:hover{border-color:var(--accent-fire);background:radial-gradient(circle at center,rgba(255,107,53,.06) 0%,transparent 65%),var(--bg-surface)}.drop-zone:hover:before{border-color:#ff6b351f;transform:scale(1.1)}.drop-zone:hover:after{border-color:#ff6b3514;transform:scale(1.15)}.drop-zone.is-dragging{border-color:var(--accent-ember);border-style:solid;background:radial-gradient(circle at center,rgba(255,154,77,.1) 0%,transparent 50%),var(--bg-surface);box-shadow:0 0 60px #ff6b351f,inset 0 0 60px #ff6b350a;animation:drop-pulse 1s ease-in-out infinite alternate}.drop-zone.is-dragging:before{border-color:#ff6b3533;animation:ring-expand 1.5s ease-in-out infinite}.drop-zone.is-dragging:after{border-color:#ff6b3526;animation:ring-expand 1.5s ease-in-out infinite .3s}@keyframes drop-pulse{0%{box-shadow:0 0 60px #ff6b351f,inset 0 0 60px #ff6b350a}to{box-shadow:0 0 80px #ff6b3533,inset 0 0 80px #ff6b3512}}@keyframes ring-expand{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.08);opacity:1}}.drop-zone.is-disabled{opacity:.4;pointer-events:none;filter:grayscale(.4)}#file-input{display:none}.drop-icon{color:var(--text-muted);transition:color .3s ease,transform .3s ease}.drop-zone:hover .drop-icon{color:var(--accent-fire);transform:translateY(-2px)}.drop-title{font-weight:700;font-size:1rem;color:var(--text-primary)}.drop-subtitle{color:var(--text-muted);font-size:.85rem}.fuse-track{position:relative;height:6px;margin-top:18px;border-radius:3px;background:var(--border-panel);overflow:visible;opacity:0;transition:opacity .3s ease}.fuse-track.is-active{opacity:1}.fuse-fill{height:100%;width:0%;border-radius:3px;background:linear-gradient(90deg,var(--accent-fuse) 0%,var(--accent-fire) 40%,var(--accent-ember) 70%,var(--accent-spark) 100%);box-shadow:0 0 12px var(--accent-fire),0 0 4px var(--accent-ember);transition:width .3s ease}.fuse-spark-tip{position:absolute;top:50%;left:0%;width:12px;height:12px;border-radius:50%;background:var(--accent-spark);box-shadow:0 0 16px var(--accent-spark),0 0 32px var(--accent-fire),0 0 6px #fff;transform:translate(-50%,-50%);opacity:0;transition:left .3s ease}.fuse-track.is-active .fuse-spark-tip{opacity:1;animation:spark-tip-flicker .3s ease-in-out infinite alternate}@keyframes spark-tip-flicker{0%{transform:translate(-50%,-50%) scale(.8);box-shadow:0 0 12px var(--accent-spark),0 0 24px var(--accent-fire)}to{transform:translate(-50%,-50%) scale(1.2);box-shadow:0 0 20px var(--accent-spark),0 0 40px var(--accent-fire),0 0 8px #fff}}.actions{margin-top:18px;display:flex;gap:10px}button{position:relative;display:inline-flex;align-items:center;gap:8px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--accent-fire) 0%,#d04a18 100%);color:#fff;font-weight:800;font-size:.92rem;padding:12px 22px;cursor:pointer;letter-spacing:.02em;overflow:hidden;transition:transform .15s ease,box-shadow .3s ease,filter .2s ease;box-shadow:0 4px 20px #ff6b354d}.btn-icon{flex-shrink:0}button:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);transition:left .6s ease}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px #ff6b3566,0 0 50px #ff6b3526;filter:brightness(1.1)}button:hover:not(:disabled):after{left:100%}button:active:not(:disabled){transform:translateY(0) scale(.97);box-shadow:0 2px 10px #ff6b354d}button:disabled{opacity:.3;cursor:not-allowed;filter:grayscale(.5);box-shadow:none}button.is-converting{background:linear-gradient(135deg,#b84515,#8a3010);pointer-events:none;animation:btn-pulse 1.2s ease-in-out infinite}@keyframes btn-pulse{0%,to{box-shadow:0 4px 20px #ff6b3533}50%{box-shadow:0 4px 30px #ff6b3580}}.status{margin:14px 0 0;color:var(--text-secondary);font-size:.9rem;transition:color .3s ease}.status.is-success{color:var(--accent-success)}.status.is-error{color:var(--accent-error)}.status.is-busy{color:var(--accent-ember)}.file-list{list-style:none;display:flex;flex-direction:column;gap:4px}.file-list li{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:10px;font-size:.9rem;color:var(--text-secondary);transition:background .2s ease,transform .2s ease;animation:file-slide-in .3s ease-out backwards}.file-list li:hover:not(.file-list-empty){background:#ff6b350f}.file-bomb-icon{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#555,#222);box-shadow:inset 0 -2px 4px #0006,0 1px 4px #0000004d;position:relative}.file-bomb-icon:after{content:"";position:absolute;top:-3px;right:1px;width:2px;height:6px;background:linear-gradient(to top,#666,var(--accent-spark));border-radius:1px;box-shadow:0 -2px 4px var(--accent-spark)}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:var(--text-muted);font-size:.82rem;font-variant-numeric:tabular-nums;white-space:nowrap}.file-remove{flex-shrink:0;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.1rem;line-height:1;transition:color .2s ease,background .2s ease;box-shadow:none}.file-remove:hover{color:var(--accent-error);background:#f871711a;transform:none;box-shadow:none;filter:none}.file-remove:disabled{display:none}@keyframes file-slide-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.file-list-empty{color:var(--text-muted);font-style:italic}.file-list.empty{color:var(--text-muted)}.result-table-wrap{overflow-x:auto;border-radius:10px}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px 12px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:2px solid var(--border-panel);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.03);font-size:.9rem;color:var(--text-secondary);white-space:nowrap}.empty-cell{color:var(--text-muted);font-style:italic}tbody tr{transition:background .2s ease}tbody tr:hover{background:#ff6b350a}tbody tr.status-converted td:nth-child(2),tbody tr.status-already_bom td:nth-child(2){color:var(--accent-success);font-weight:700}tbody tr.status-error td:nth-child(2){color:var(--accent-error);font-weight:700}tbody tr.is-new{animation:row-appear .4s ease-out backwards}@keyframes row-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel-mcp{border-color:var(--border-panel)}.mcp-status{color:var(--text-muted);font-size:.88rem}.footer{margin-top:40px;padding:20px;text-align:center;color:var(--text-muted);font-size:.82rem;border-top:1px solid var(--border-panel)}code{padding:2px 8px;border-radius:5px;background:#ffffff0f;color:var(--accent-ember);font-size:.88em}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--border-panel);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.shake{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-4px)}30%{transform:translate(4px)}45%{transform:translate(-3px)}60%{transform:translate(3px)}75%{transform:translate(-1px)}}.bomb-icon[role=button]{cursor:pointer;position:relative;user-select:none;-webkit-user-select:none}.bomb-click-counter{position:absolute;top:-8px;right:-16px;min-width:26px;height:26px;padding:0 7px;border-radius:13px;background:var(--accent-fuse);color:#fff;font-size:.75rem;font-weight:800;line-height:26px;text-align:center;opacity:0;transform:scale(0);transition:opacity .2s ease,transform .2s ease;pointer-events:none;z-index:2}.bomb-click-counter.is-visible{opacity:1;transform:scale(1)}.bomb-click-counter.is-near{background:var(--accent-fire);animation:counter-pulse .4s ease-in-out infinite alternate}@keyframes counter-pulse{0%{transform:scale(1)}to{transform:scale(1.15)}}.bomb-icon.is-clicked{animation:bomb-click-bump .15s ease-out}@keyframes bomb-click-bump{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.08)}to{transform:translateY(0) scale(1)}}.mega-explosion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;pointer-events:none;opacity:0;visibility:hidden}.mega-explosion-overlay.is-active{opacity:1;visibility:visible;pointer-events:auto}.mega-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,#fff 0%,rgba(255,214,102,.95) 15%,rgba(255,154,77,.8) 35%,rgba(255,107,53,.5) 55%,rgba(255,68,68,.2) 75%,transparent 100%);opacity:0}.mega-explosion-overlay.is-active .mega-flash{animation:mega-flash-anim 1.8s ease-out forwards}@keyframes mega-flash-anim{0%{opacity:1;transform:scale(.3)}15%{opacity:1;transform:scale(1.2)}40%{opacity:.7;transform:scale(1.5)}to{opacity:0;transform:scale(2)}}.mega-ring{position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;border-radius:50%;border:3px solid var(--accent-spark);opacity:0}.mega-explosion-overlay.is-active .mega-ring-1{animation:mega-ring-expand 1.2s .1s ease-out forwards}.mega-explosion-overlay.is-active .mega-ring-2{animation:mega-ring-expand 1.4s .25s ease-out forwards;border-color:var(--accent-ember)}.mega-explosion-overlay.is-active .mega-ring-3{animation:mega-ring-expand 1.6s .4s ease-out forwards;border-color:var(--accent-fire)}@keyframes mega-ring-expand{0%{opacity:.8;transform:scale(0)}40%{opacity:.5}to{opacity:0;transform:scale(20)}}.mega-debris{position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background:var(--accent-spark);opacity:0}.mega-explosion-overlay.is-active .mega-debris{animation:mega-debris-fly var(--debris-duration, 1.2s) var(--debris-delay, 0s) ease-out forwards}@keyframes mega-debris-fly{0%{opacity:1;transform:translate(0) scale(1)}20%{opacity:1}to{opacity:0;transform:translate(var(--dx, 100px),var(--dy, -200px)) scale(.2)}}.mega-shake{animation:mega-shake .8s ease-in-out}@keyframes mega-shake{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(-8px,-4px) rotate(-.5deg)}20%{transform:translate(8px,2px) rotate(.5deg)}30%{transform:translate(-6px,4px) rotate(-.3deg)}40%{transform:translate(6px,-2px) rotate(.3deg)}50%{transform:translate(-4px,2px) rotate(-.2deg)}60%{transform:translate(4px,-4px) rotate(.2deg)}70%{transform:translate(-2px,2px) rotate(-.1deg)}80%{transform:translate(2px,-2px) rotate(.1deg)}90%{transform:translate(-1px,1px)}}.bomb-icon.is-shattered svg{animation:bomb-shatter .6s ease-out forwards}@keyframes bomb-shatter{0%{transform:scale(1);opacity:1;filter:brightness(1)}20%{transform:scale(1.3);opacity:1;filter:brightness(3)}50%{transform:scale(1.6);opacity:.6;filter:brightness(5)}to{transform:scale(2);opacity:0;filter:brightness(8)}}.bomb-icon.is-recovering svg{animation:bomb-recover 1s .5s ease-out forwards;opacity:0;transform:scale(0)}@keyframes bomb-recover{0%{opacity:0;transform:scale(0) rotate(-20deg)}50%{opacity:.8;transform:scale(1.1) rotate(5deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media (max-width: 600px){.hero h1{font-size:2rem}.bomb-icon{width:90px;height:126px}.container{padding:0 14px 40px}.panel{padding:16px;border-radius:12px}.drop-zone{min-height:120px;padding:20px 12px}th,td{padding:8px;font-size:.82rem}.file-list li{padding:6px 10px}button{padding:10px 16px;font-size:.88rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
