:root{--bg-main:#f6f2e9;--bg-gradient-1:#dff3df;--bg-gradient-2:#f3e8c9;--ink-1:#17391f;--ink-2:#35553e;--card-bg:#ffffffc7;--card-border:#17391f1f;--accent:#2f7a38;--accent-hover:#225e2a;--danger:#b0292e}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink-1);background:radial-gradient(circle at 18% 20%, var(--bg-gradient-1), transparent 36%), radial-gradient(circle at 82% 8%, var(--bg-gradient-2), transparent 34%), var(--bg-main);margin:0;font-family:IBM Plex Sans,sans-serif}.page-wrap{min-height:100vh;position:relative;overflow:hidden}.grain{pointer-events:none;opacity:.08;background-image:linear-gradient(45deg,#000 25%,#0000 25%),linear-gradient(-45deg,#000 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#000 75%),linear-gradient(-45deg,#0000 75%,#000 75%);background-size:4px 4px;position:absolute;inset:0}.container{z-index:1;width:min(900px,92vw);margin:0 auto;padding:2.2rem 0 3rem;animation:.7s ease-out both enter;position:relative}.hero h1,.card h2{font-family:Space Grotesk,sans-serif}.hero{margin-bottom:1.2rem}.eyebrow{border:1px solid var(--card-border);letter-spacing:.02em;background:#fff9;border-radius:999px;margin:0 0 .5rem;padding:.2rem .62rem;font-size:.8rem;font-weight:600;display:inline-block}.hero h1{margin:0;font-size:clamp(2rem,3vw,2.8rem)}.hero p{max-width:62ch;color:var(--ink-2);margin-top:.7rem}.card{background:var(--card-bg);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border:1px solid var(--card-border);border-radius:8px;margin-top:1rem;padding:1.1rem 1rem;box-shadow:0 12px 30px #16271117}form{gap:.8rem;display:grid}.mode-control{border:1px solid var(--card-border);background:#17391f12;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));width:min(320px,100%);padding:3px;display:grid}.mode-option{width:100%;color:var(--ink-2);background:0 0;border-radius:6px;padding:.5rem .7rem}.mode-option:hover{color:var(--ink-1);background:#ffffff8c;transform:none}.mode-option.active{color:var(--ink-1);background:#fff;box-shadow:0 1px 5px #1627111f}.upload-input-label{font-weight:600}input[type=file]{background:#fff;border:1px solid #00000026;border-radius:8px;padding:.65rem}button{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:999px;width:fit-content;padding:.7rem 1.2rem;font-size:.95rem;font-weight:600;transition:transform .15s,background .2s}button:hover{background:var(--accent-hover);transform:translateY(-1px)}button:disabled{opacity:.66;cursor:not-allowed;transform:none}.preview-wrap{margin-top:.8rem}.preview{object-fit:cover;border:1px solid var(--card-border);border-radius:8px;width:min(350px,100%);max-height:260px}.error{color:var(--danger);margin-top:.8rem}.lead{margin-top:.2rem}.result-meta{color:var(--ink-2);margin:-.2rem 0 0;font-size:.9rem}.topk{gap:.4rem;margin-top:.8rem;display:grid}.topk-row{border:1px solid var(--card-border);background:#fff9;border-radius:8px;justify-content:space-between;padding:.55rem .7rem;display:flex}.timing-band{border-top:1px solid var(--card-border);border-bottom:1px solid var(--card-border);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:.6rem 1.2rem;margin-top:1rem;padding:.75rem 0;font-size:.9rem;display:flex}.timing-band strong{color:var(--ink-1)}.wiki-card a{color:#124c7a;margin-top:.5rem;font-weight:600;text-decoration:none;display:inline-block}.wiki-card a:hover{text-decoration:underline}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.container{padding-top:1.5rem}.card{padding:.9rem}}
