:root{color-scheme:light;font-family:Space Grotesk,Segoe UI,sans-serif;line-height:1.5;font-weight:400;background:radial-gradient(circle at top,rgba(65,141,120,.18),transparent 36%),linear-gradient(180deg,#f4f1e8,#e6efe8);color:#10201c;--surface: rgba(255, 252, 247, .82);--surface-strong: rgba(255, 255, 255, .94);--border: rgba(16, 32, 28, .1);--accent: #17352f;--accent-soft: #2c6257;--success: #0f7b55;--error: #aa3d2c;--shadow: 0 24px 80px rgba(23, 53, 47, .14)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,select,textarea{font:inherit}.app-shell{width:min(1120px,calc(100vw - 32px));margin:0 auto;padding:32px 0 40px}.hero{max-width:720px;margin-bottom:24px}.eyebrow,.panel-label{margin:0 0 8px;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:#10201cb3}.hero h1{margin:0;font-size:clamp(2.2rem,4vw,4.6rem);line-height:.98;letter-spacing:-.05em}.lede{max-width:54ch;margin:12px 0 0;font-size:1.06rem;color:#10201cc7}.layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.9fr);gap:24px}.scanner-card,.info-card{background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow)}.scanner-card{padding:18px}.video-wrap{position:relative;aspect-ratio:3 / 4;overflow:hidden;border-radius:24px;background:linear-gradient(180deg,#0a141233,#0a141270),#0e1b18}#preview{width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;inset:50% auto auto 50%;width:min(68vw,280px);max-width:70%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.84);border-radius:24px;box-shadow:0 0 0 999px #040a083d}.scan-frame span{position:absolute;inset:0;overflow:hidden;border-radius:inherit}.scan-frame span:after{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:4px;background:linear-gradient(90deg,transparent,#d0ff63,transparent);animation:sweep 2.3s ease-in-out infinite}@keyframes sweep{0%,to{transform:translateY(0)}50%{transform:translateY(calc(min(68vw,280px) - 20px))}}.controls{display:grid;gap:14px;padding-top:18px}.field{display:grid;gap:8px}.field span{font-size:.92rem;color:#10201cb8}select,textarea,button{border:1px solid transparent;border-radius:18px}select,textarea{width:100%;background:var(--surface-strong);border-color:#10201c14}select{min-height:52px;padding:0 16px}.buttons{display:flex;gap:12px}button{min-height:52px;padding:0 18px;cursor:pointer;transition:transform .14s ease,opacity .14s ease,background .14s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.54;cursor:not-allowed}#startButton,#copyButton{background:var(--accent);color:#f7f8ee}#stopButton{background:#17352f14;color:var(--accent)}.info-card{display:grid;gap:18px;padding:22px;align-content:start}.status-panel,.result-panel,.notes{background:#ffffff94;border:1px solid rgba(16,32,28,.08);border-radius:22px;padding:18px}.status-text{margin:0;font-size:1rem}.status-text[data-tone=success]{color:var(--success)}.status-text[data-tone=error]{color:var(--error)}.result-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.result-head .panel-label{margin-bottom:0}textarea{min-height:180px;margin-top:12px;padding:16px;resize:vertical}.notes ul{margin:0;padding-left:18px;color:#10201cc7}@media(max-width:920px){.layout{grid-template-columns:1fr}.video-wrap{aspect-ratio:10 / 13}}@media(max-width:640px){.app-shell{width:min(100vw - 20px,1120px);padding-top:20px}.hero h1{font-size:clamp(2rem,12vw,3.1rem)}.scanner-card,.info-card{border-radius:24px}.buttons{flex-direction:column}.scan-frame{width:min(72vw,280px)}}
