main{max-width:720px;margin:0 auto;padding:2rem 1.5rem}.hero{text-align:center;margin-bottom:2rem}.hero h2{font-family:var(--font-display);font-size:1.5rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.01em}.hero p{color:var(--text-muted);font-size:.95rem}.upload-slots{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.upload-slot{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.25rem;box-shadow:var(--shadow-sm)}.slot-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;margin-bottom:.6rem;color:var(--text-base)}.slot-label .required{font-size:.7rem;font-weight:500;color:var(--color-ng);background:var(--color-ng-bg);border:1px solid var(--color-ng-border);padding:.1rem .4rem;border-radius:var(--radius-sm)}.slot-label .optional{font-size:.7rem;font-weight:500;color:var(--text-dim);background:var(--bg-alt);border:1px solid var(--border);padding:.1rem .4rem;border-radius:var(--radius-sm)}.slot-dropzone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:1rem;text-align:center;cursor:pointer;transition:border-color .3s,background .3s}.slot-dropzone:hover,.slot-dropzone.dragover{border-color:var(--accent);background:#6c5ce70f}.slot-dropzone.has-file{border-style:solid;border-color:var(--color-ok-border);background:var(--color-ok-bg);cursor:default}.slot-placeholder{color:var(--text-dim);font-size:.85rem}.slot-file{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.slot-filename{font-size:.88rem;font-weight:500;color:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-remove,.slot-delete-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;line-height:1;border-radius:var(--radius-sm);transition:color .2s,background .2s}.slot-remove:hover,.slot-delete-btn:hover{color:var(--color-ng)}.slot-remove{font-size:1rem;padding:.2rem .4rem}.slot-remove:hover{background:var(--color-ng-bg)}.slot-delete-btn{font-size:.85rem;padding:.1rem .3rem;margin-left:auto}.add-harmony-btn{background:none;border:1px dashed var(--border);border-radius:var(--radius-md);padding:.7rem 1rem;color:var(--text-muted);font-size:.88rem;font-weight:500;cursor:pointer;transition:border-color .2s,color .2s,background .2s;font-family:inherit;width:100%}.add-harmony-btn:hover{border-color:var(--accent);color:var(--accent);background:#6c5ce70a}.trust-badge{display:flex;align-items:flex-start;gap:.85rem;background:linear-gradient(135deg,#00b8940f,#00b89405);border:1px solid rgba(0,184,148,.18);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1.5rem}.trust-icon{width:28px;height:28px;flex-shrink:0;color:var(--color-ok);margin-top:.1rem}.trust-text{display:flex;flex-direction:column;gap:.2rem}.trust-headline{font-size:.88rem;font-weight:600;color:var(--text)}.trust-detail{font-size:.8rem;color:var(--text-muted);line-height:1.5}.start-bar{display:none;justify-content:center;margin-bottom:2rem}.start-bar.visible{display:flex}.start-btn{padding:.85rem 3rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:1.05rem;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s,background .2s;width:100%;max-width:400px;font-family:inherit}.start-btn:hover{background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 6px 24px #6c5ce74d}.results{display:none}.results.visible{display:block}.result-banner{border-radius:14px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;text-align:center}.result-banner.all-ok{background:var(--color-ok-bg);border:1px solid var(--color-ok-border)}.result-banner.has-issues{background:var(--color-ng-bg);border:1px solid var(--color-ng-border)}.result-banner h3{font-size:1.15rem;font-weight:700;margin-bottom:.25rem}.result-banner.all-ok h3{color:var(--color-ok)}.result-banner.has-issues h3{color:var(--color-ng)}.result-banner p{font-size:.88rem;color:var(--text-muted)}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot.ok{background:var(--color-ok)}.dot.caution{background:var(--color-caution)}.dot.ng{background:var(--color-ng)}.file-result{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-bottom:1rem;overflow:hidden;box-shadow:var(--shadow-sm)}.file-result summary{padding:.85rem 1.25rem;display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:.92rem;cursor:pointer;transition:background .2s;list-style:none}.file-result summary::-webkit-details-marker{display:none}.file-result summary:hover{background:#00000005}.file-result summary .arrow{color:var(--text-dim);font-size:.7rem;transition:transform .2s;margin-left:auto}.file-result[open] summary .arrow{transform:rotate(90deg)}.file-result-body{padding:0 1.25rem 1rem}.check-item{padding:.75rem 0;border-bottom:1px solid var(--border)}.check-item:last-child{border-bottom:none}.check-item .check-top{display:flex;align-items:center;gap:.6rem}.check-item .check-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0;font-weight:700}.check-icon.ok{background:var(--color-ok-bg);color:var(--color-ok);border:1px solid var(--color-ok-border)}.check-icon.ng{background:var(--color-ng-bg);color:var(--color-ng);border:1px solid var(--color-ng-border)}.check-icon.caution{background:var(--color-caution-bg);color:var(--color-caution);border:1px solid var(--color-caution-border)}.check-icon.info{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.25)}.check-item .check-name{font-size:.9rem;font-weight:500}.check-item .check-detail{font-size:.8rem;color:var(--text-dim);margin-left:auto;white-space:nowrap}.check-item .advice{margin-top:.4rem;margin-left:2rem;font-size:.82rem;color:var(--text-muted);background:var(--color-ng-bg);border-left:2px solid var(--color-ng);padding:.5rem .75rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.check-item .advice.warn-advice{background:var(--color-caution-bg);border-left-color:var(--color-caution)}.check-item .advice.info-advice{background:#3b82f614;border-left-color:#3b82f6}.waveform{background:var(--bg-alt);border-radius:var(--radius-sm);padding:.75rem;margin-top:.5rem;height:60px;display:flex;align-items:center;justify-content:center;gap:1px}.waveform .bar{width:2px;background:var(--accent);border-radius:1px;opacity:.45}.loading-overlay{display:none;position:fixed;inset:0;background:#2d2a2699;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;justify-content:center;align-items:center;flex-direction:column;gap:1.25rem}.loading-overlay.visible{display:flex}.loading-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:2rem 2.5rem;box-shadow:0 8px 32px #2d2a2626;display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{color:var(--text-muted);font-size:.9rem}@media(max-width:600px){main{padding:1.5rem 1rem}.hero h2{font-size:1.25rem}}.share-bar{position:relative;margin-top:1.5rem;padding:1.4rem 1.25rem 1.25rem;border-radius:16px;overflow:hidden;animation:shareBarReveal .7s cubic-bezier(.16,1,.3,1) .35s both}.share-bar--clear{background:linear-gradient(135deg,#00b8940f,#6c5ce70a);border:1px solid rgba(0,184,148,.18)}.share-bar--issues{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.share-bar-sparkle{position:absolute;inset:0;pointer-events:none;overflow:hidden}.share-bar-sparkle:before,.share-bar-sparkle:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:var(--color-ok);opacity:0}.share-bar-sparkle:before{top:12px;right:18%;animation:sparkle 2.4s ease-in-out .8s infinite}.share-bar-sparkle:after{bottom:14px;left:12%;animation:sparkle 2.4s ease-in-out 1.6s infinite}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:.5;transform:scale(1)}}@keyframes shareBarReveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.share-bar-label{font-size:.85rem;font-weight:600;color:var(--text-muted);margin-bottom:.85rem;text-align:center;letter-spacing:.01em}.share-bar--clear .share-bar-label{color:var(--color-ok)}.share-bar-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem}.share-bar-social{display:flex;gap:.5rem;justify-content:center}.share-bar-util{display:flex;gap:.4rem;justify-content:center}.share-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .2s,color .2s,transform .12s,box-shadow .2s}.share-btn:active{transform:scale(.96)}.share-btn svg{flex-shrink:0}.share-btn--x,.share-btn--line,.share-btn--discord{padding:.6rem 1.3rem;border-radius:999px;font-size:.82rem;font-weight:600;letter-spacing:.01em;color:#fff}.share-btn--x{background:#0f1419}.share-btn--x:hover{background:#272d33;transform:translateY(-1px);box-shadow:0 4px 12px #0f141933}.share-btn--line{background:#06c755}.share-btn--line:hover{background:#05b34c;transform:translateY(-1px);box-shadow:0 4px 12px #06c75540}.share-btn--discord{background:#5865f2}.share-btn--discord:hover{background:#4752c4;transform:translateY(-1px);box-shadow:0 4px 12px #5865f240}.share-btn--sub{padding:.45rem .85rem;background:transparent;color:var(--text-dim);border-radius:var(--radius-sm);font-size:.78rem;font-weight:500}.share-btn--sub:hover{color:var(--accent);background:#6c5ce70f}.share-toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:.6rem 1.2rem;border-radius:999px;font-size:.82rem;font-weight:500;box-shadow:0 8px 32px #2d2a2640;opacity:0;transition:opacity .3s,transform .3s cubic-bezier(.16,1,.3,1);z-index:200;pointer-events:none;letter-spacing:.01em}.share-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:600px){.share-bar-social{width:100%}.share-btn--x,.share-btn--line,.share-btn--discord{flex:1;padding:.6rem .5rem;font-size:.78rem}.share-btn--sub span{display:none}.share-bar-util{gap:.25rem}.share-btn--sub{padding:.5rem .7rem}}.start-btn:disabled{opacity:.6;cursor:not-allowed;background:var(--text-dim)}.start-btn:disabled:hover{transform:none;box-shadow:none}
