.drop-zone{border:2px dashed var(--color-rule);border-radius:var(--radius-card);padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-ink-2);cursor:pointer;background:var(--color-paper-2);transition:border-color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out)}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--color-accent);background:var(--color-accent-tint)}.drop-zone>p{margin-bottom:var(--space-sm);font-size:var(--text-md)}.drop-zone .drop-icon{margin:0 auto var(--space-xs)}.drop-alt{margin-top:var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-3)}.drop-zone .drop-alt{margin-bottom:0}.link-button{background:none;border:0;padding:0;font:inherit;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent-ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link-button:hover{background:none;color:var(--color-ink)}.hint{font-size:var(--text-sm);line-height:1.5;color:var(--color-ink-2);margin:calc(var(--space-2xs) * -1) 0 var(--space-sm);max-width:52ch}.preview-wrap{width:100%}.scale-paper{position:relative;width:fit-content;background:var(--color-accent-tint);margin-bottom:var(--space-md)}.scale-paper:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1.5px dashed var(--color-accent);pointer-events:none;z-index:1}.scale-paper .paper-tag{position:absolute;top:100%;right:0;margin-top:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;color:var(--color-ink-2)}.preview-stage{position:relative;width:fit-content}#previewCanvas{display:block;max-width:none;height:auto;background:#fff;box-shadow:var(--shadow-preview)}#partOverlays{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.part-remove{position:absolute;bottom:var(--space-3xs);transform:translate(-50%);pointer-events:auto;display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid var(--color-rule);border-radius:50%;background:var(--color-scrim);color:var(--color-ink-2)}.part-remove svg{width:15px;height:15px}.part-remove:hover{background:var(--color-paper-2);color:var(--color-ink);border-color:var(--color-ink-3)}.size-line{margin-top:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-md);font-variant-numeric:tabular-nums;color:var(--color-ink)}.size-line .size-parts{color:var(--color-ink-2);font-size:var(--text-xs)}.ratio-note{margin-top:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;color:var(--color-ink-2)}.ratio-note.changed{color:var(--color-warn)}.row button{display:inline-flex;align-items:center;gap:var(--space-2xs)}.row button svg{width:17px;height:17px}.parts-picker{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink-2)}.parts-picker div{display:flex;gap:var(--space-2xs)}.parts-picker button{width:2.4rem;height:2.4rem;padding:0;border-radius:50%;font-size:var(--text-md);letter-spacing:0;background:var(--color-paper-3);color:var(--color-ink);border:1px solid transparent}.parts-picker button:hover{background:var(--color-paper-2);border-color:var(--color-rule)}.parts-picker button.active{background:var(--color-accent);color:var(--color-on-accent)}.parts-picker button.active:hover{background:var(--color-accent);border-color:transparent}@media (max-width: 480px){.controls{grid-template-columns:1fr}}
