/* Input-first editor: complete after preview, compact controls, one processing surface. */
body[data-tool=noise] .breadcrumb{display:none}
.noise-editor.hero{padding:28px 20px 20px;max-width:1160px}
.noise-editor.hero h1{margin:0 0 12px}
.noise-editor.hero .hero-description{font-size:16px;max-width:760px;margin:0 auto 24px}
.noise-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px;align-items:start}
.noise-canvas-column,.noise-sidebar{min-width:0}
.noise-editor .comparison{width:100%;height:384px;aspect-ratio:auto;border-radius:24px;cursor:pointer;outline-offset:4px}
.noise-editor .comparison .demo-photo,.noise-editor .processed canvas,.noise-editor .processed img{width:100%;height:100%;object-fit:contain;display:block;image-rendering:auto}
.noise-editor .processed{clip-path:none}
.noise-editor .tag-before{display:none}
.noise-editor .original-held .tag-before{display:block}
.noise-upload-hint{position:absolute;bottom:16px;left:16px;right:16px;margin:auto;padding:10px 16px;width:fit-content;max-width:calc(100% - 32px);background:rgba(255,255,255,.95);border:1px dashed var(--line);border-radius:16px;text-align:center;font:600 14px/1.5 var(--fh);color:var(--ink)}
.noise-upload-hint small{display:block;font:400 12px/1.5 var(--fp);color:var(--sub)}
.noise-editor.has-upload .noise-upload-hint{display:none}
.noise-editor .comparison.dragging{outline:3px dashed var(--pink)}
.noise-input-note{font:13px/1.7 var(--fp);color:var(--sub);margin:12px 0 4px}
.noise-canvas-tools{display:flex;gap:16px;flex-wrap:wrap}
.noise-canvas-tools button,.noise-small-actions button{background:none;border:0;color:var(--ink);font:600 12px/1.4 var(--fh);min-height:36px;padding:4px 0;text-decoration:underline;text-underline-offset:4px}
.noise-sidebar{padding:20px;background:var(--soft);border-radius:24px;display:flex;flex-direction:column;gap:14px}
.noise-preset-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.noise-preset-strip button{display:flex;flex-direction:column;align-items:center;gap:5px;border:1.5px solid transparent;border-radius:12px;background:transparent;padding:3px;color:var(--ink);font:600 10px/1.3 var(--fh);min-width:0}
.noise-preset-strip button[aria-pressed=true]{border-color:var(--pink);background:#fff}
.noise-preset-strip img{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:8px}
.noise-preset-strip span{min-height:26px;display:grid;place-items:center}
.noise-field{display:block;font:600 13px/1.5 var(--fh)}
.noise-field output{float:right;font-weight:400;font-variant-numeric:tabular-nums}
.noise-field input[type=range]{display:block;width:100%;height:24px;margin:0;accent-color:var(--pink)}
.noise-type{border:0;padding:0;margin:0;display:flex;gap:12px;flex-wrap:wrap}
.noise-type legend{font:600 13px/1.5 var(--fh);margin-bottom:4px}
.noise-type label{font:400 12px/1.5 var(--fp);min-height:32px;display:flex;align-items:center;gap:4px}
.noise-type input{accent-color:var(--pink);margin:0;width:16px;height:16px}
.noise-advanced summary{font:600 12px/1.6 var(--fh);cursor:pointer;min-height:24px}
.noise-advanced .noise-field{margin-top:12px}
.noise-export-options{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px}
.noise-export-options label{font:600 12px/1.5 var(--fh);min-width:0}
.noise-export-options select{display:block;width:100%;min-width:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;margin-top:4px;font:400 13px/1.5 var(--fp)}
.noise-save{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
.noise-save button{border:1px solid var(--line);border-radius:999px;background:#fff;min-height:44px;padding:10px;font:600 13px/1.3 var(--fh);color:var(--ink)}
.noise-save .download{background:linear-gradient(90deg,var(--pink),var(--pink2));color:#fff;border:0;box-shadow:var(--sh)}
.noise-save #holdButton{touch-action:none;user-select:none;-webkit-user-select:none}
.noise-small-actions{display:flex;justify-content:space-between;gap:8px}
.noise-small-actions button{min-height:28px}
.noise-editor .status-line{margin:0;min-height:20px;font:12px/1.5 var(--fp);gap:8px;flex-wrap:wrap}
.noise-processing-note{font:12px/1.7 var(--fp);color:var(--sub);margin:12px 0 0}
@media(max-width:860px){
 .noise-editor.hero{padding:24px 16px 100px}
 .noise-workspace{grid-template-columns:1fr;gap:16px}
 .noise-editor .comparison{height:auto;aspect-ratio:3/2}
 .noise-editor.hero h1{font-size:32px}
 .noise-editor.hero .hero-description{font-size:14px;margin-bottom:20px}
 .noise-sidebar{padding:16px;gap:16px}
 .noise-type label,.noise-canvas-tools button,.noise-small-actions button,.noise-advanced summary{min-height:44px}
 .noise-export-options select{font-size:16px;min-height:44px}
 .noise-field input[type=range]{height:32px}
 .noise-editor.is-editor-visible .noise-save{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px max(16px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:#fff;border-top:1px solid var(--line)}
 .noise-save{min-height:48px}
 .noise-save button{min-height:48px}
 .noise-editor{scroll-margin-bottom:100px}
}
@media(max-width:860px) and (max-height:500px){.noise-editor.is-editor-visible .noise-save{position:static;padding:0;background:transparent;border:0}}
