:root{--bg: #0b0c10;--bg-2: #14161c;--panel: #1a1c24;--border: #2a2d38;--border-strong: #6b7085;--text: #d7d9e0;--text-dim: #8b8fa3;--text-h: #f5f6fa;--accent: #5eead4;--accent-2: #a78bfa;--danger: #f87171;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html{font-size:112.5%}html,body,#root{height:100%;margin:0}body{font:1rem/1.5 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3{color:var(--text-h);font-weight:600;margin:0}button{font:inherit;cursor:pointer}a{color:var(--accent)}.upload-panel{width:100%;display:flex;flex-direction:column;gap:12px}.upload-zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.upload-zone{border:2px dashed var(--border-strong);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;background:var(--panel)}.upload-zone.drag{border-color:var(--accent);border-style:solid}.upload-zone.disabled .upload-button{background:var(--bg-2);color:var(--text);border:1px solid var(--border-strong);cursor:not-allowed}.upload-title{font-size:1.15rem}.upload-hint{margin:0;color:var(--text)}.upload-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.upload-button{display:inline-block;background:var(--accent);color:#08120f;font-weight:700;border-radius:8px;padding:10px 18px;cursor:pointer}.upload-input:focus-visible+.upload-button,.upload-zone:focus-within .upload-button{outline:3px solid var(--text-h);outline-offset:3px}.upload-current{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px;word-break:break-all}.upload-clear{background:transparent;color:var(--text-h);border:1px solid var(--border-strong);border-radius:6px;padding:4px 10px}.upload-error{margin:0;padding:12px 16px;border:2px solid var(--danger);border-radius:8px;color:var(--text-h);text-align:left}.upload-panel{gap:8px}.upload-zones{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}.upload-zone{flex-direction:row;flex-wrap:wrap;align-items:center;padding:8px 12px;gap:6px 12px;border-width:1px}.upload-title{font-size:1rem;margin:0}.upload-hint{font-size:.85rem;flex-basis:100%;order:5}.upload-button{padding:6px 14px}.upload-current{font-size:.9rem}.upload-zone:has(.upload-current) .upload-hint{display:none}.upload-zones{grid-template-columns:1fr;gap:8px}.upload-zone{border:1px solid var(--border-strong);border-radius:8px;background:transparent}.upload-title{flex:1 1 12rem}.upload-zone{display:grid;grid-template-columns:1fr 14rem;align-items:center;column-gap:16px;row-gap:2px}.upload-zone>.upload-title{grid-column:1;grid-row:1}.upload-zone>.upload-hint{grid-column:1;grid-row:2;flex-basis:auto}.upload-zone>.upload-current{grid-column:1;grid-row:3}.upload-zone>.upload-button{grid-column:2;grid-row:1 / span 3;text-align:center;width:100%;box-sizing:border-box}@media(max-width:560px){.upload-zone{grid-template-columns:1fr}.upload-zone>.upload-button{grid-column:1;grid-row:auto}}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--border)}.app-brand{font-weight:700;color:var(--text-h);letter-spacing:-.02em}main{flex:1;display:flex;justify-content:center;padding:40px 24px 60px}.hero{width:100%;max-width:1400px;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}.hero h1{font-size:clamp(28px,4vw,42px);max-width:760px}.hero-sub{color:var(--text-dim);max-width:560px;margin:0}.intro{max-width:720px;text-align:left}.intro p{margin:0 0 12px}.notice{border-left:4px solid var(--accent-2);padding-left:12px;color:var(--text-h)}.viewer-fallback{color:var(--text-dim);padding:60px 0}.app-footer{text-align:center;padding:20px;color:var(--text-dim);font-size:.9rem;border-top:1px solid var(--border)}.privacy-note{max-width:60rem;margin:.75rem auto 0;color:var(--text);font-size:1rem;line-height:1.5}.hero.loaded{gap:12px}main:has(.hero.loaded){padding:12px 16px 24px}.intro summary,.privacy-note summary{cursor:pointer;font-weight:600;color:var(--text-h);padding:6px 0}.intro,.hero .upload-panel{width:100%;max-width:720px}.privacy-note{font-size:.9rem;text-align:left}.privacy-note p{margin:.4rem 0 0}.app-footer{padding:8px 16px;font-size:.75rem}.app-footer span{color:var(--text-dim);opacity:.45}
