:root{--paper:oklch(96.5% .012 85);--paper-deep:oklch(91% .016 80);--ink:oklch(22% .02 60);--ink-soft:oklch(45% .02 60);--signal:oklch(62% .19 35);--signal-ink:oklch(99% .005 85);--line:oklch(82% .02 75);--check:oklch(88% .01 80);--font-display:"Instrument Serif", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--gutter:clamp(1rem, 4vw, 3rem);--ease-out:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root{--paper:oklch(19% .012 60);--paper-deep:oklch(24% .014 60);--ink:oklch(94% .012 85);--ink-soft:oklch(72% .015 80);--line:oklch(35% .015 60);--check:oklch(28% .01 60)}}*{box-sizing:border-box}body{background:radial-gradient(120% 80% at 50% 0%, var(--paper) 40%, var(--paper-deep));min-height:100dvh;color:var(--ink);font:400 1rem/1.5 var(--font-body);grid-template-rows:auto 1fr auto;margin:0;display:grid}.masthead{padding:var(--gutter) var(--gutter) 0;width:100%;max-width:72rem;margin:0 auto}.wordmark{font:500 .85rem var(--font-mono);letter-spacing:.2em;text-transform:uppercase;margin:0}.wordmark span{color:var(--signal)}h1{font:400 clamp(2.4rem, 1.2rem + 5vw, 5.2rem) / .95 var(--font-display);letter-spacing:-.02em;max-width:14ch;margin:.6em 0 0}h1 em{color:var(--signal)}main{width:100%;max-width:72rem;padding:clamp(1.5rem, 4vw, 3rem) var(--gutter);margin:0 auto}.drop{border:1.5px dashed var(--line);cursor:pointer;text-align:center;min-height:16rem;transition:border-color .2s var(--ease-out), background-color .2s var(--ease-out), min-height .4s var(--ease-out);border-radius:2px 2px 40% 40%/2px 2px 12% 12%;place-items:center;gap:.25rem;padding:2rem;display:grid}.drop:hover,.drop.over{border-color:var(--signal);background:color-mix(in oklch, var(--signal) 6%, transparent)}.drop:focus-within{outline:2px solid var(--signal);outline-offset:4px}.drop.compact{min-height:5rem}.drop input{opacity:0;width:1px;height:1px;position:absolute}.drop-title{font:400 1.8rem var(--font-display)}.drop-hint{color:var(--ink-soft);font-size:.9rem}.status{font:400 .85rem var(--font-mono);color:var(--ink-soft);min-height:1.5em;margin:1rem 0}.stage{animation:rise .5s var(--ease-out);gap:1rem;display:grid}.sweep{background:repeating-conic-gradient(var(--check) 0 25%, transparent 0 50%) 0 0 / 20px 20px;border:1px solid var(--line);place-items:center;padding:clamp(.5rem,2vw,1.5rem);display:grid;box-shadow:0 30px 60px -30px oklch(20% .02 60/.35)}.sweep canvas{max-width:100%;height:auto;max-height:70dvh;display:block}.actions{flex-wrap:wrap;gap:.5rem;display:flex}button{font:500 .9rem var(--font-body);color:var(--ink);border:1px solid var(--ink);cursor:pointer;transition:transform .15s var(--ease-out), background-color .15s var(--ease-out);background:0 0;border-radius:999px;padding:.7rem 1.1rem}button:hover{transform:translateY(-1px)}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--signal);outline-offset:3px}button.primary{background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}button.ghost{color:var(--ink-soft);border-color:#0000}.telemetry{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));margin:2rem 0 0;display:grid}.telemetry div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.75rem 1rem}.telemetry dt{font:500 .7rem var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.telemetry dd{font:400 1rem var(--font-mono);margin:.2rem 0 0}.colophon{padding:1.5rem var(--gutter);color:var(--ink-soft);text-align:center;font-size:.8rem}.colophon a{color:inherit}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
