/* /blur-image/ page styles. Built from /assets/polyatic.css tokens only (no new colours or fonts). */
.nojs{margin:1.25rem 0 0;padding:0.875rem 1rem;border:1px solid var(--line);border-left:0.25rem solid var(--accent);border-radius:0.625rem;background:var(--surface);color:var(--ink);font-size:0.9375rem;line-height:1.6}

/* the photo gets the width on desktop; the effect and download panels sit beside it */
@media(min-width:920px){.bi-duo{grid-template-columns:minmax(0,1.7fr) minmax(18rem,.8fr)}}
.bi-side{display:grid;gap:1rem;align-content:start}
@media(min-width:920px){.bi-side{position:sticky;top:1rem}}

/* drop zone (same component as the other polyatic file tools) */
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.5rem;text-align:center;min-height:11rem;padding:1.5rem 1.25rem;border:2px dashed var(--line-2);border-radius:0.875rem;background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s}
.drop:hover,.drop:focus-visible,.drop.drag{border-color:var(--accent);background:var(--accent-soft)}
.drop b{font-size:1.0625rem}
.drop small{color:var(--muted);max-width:34ch}
/* icon: a photo frame with a pixelated patch */
.bi-drop-icon{width:3.25rem;height:2.5rem;position:relative;border:2px solid var(--ink);border-radius:0.375rem;background:var(--surface)}
.bi-drop-icon::before{content:"";position:absolute;left:0.75rem;top:0.4375rem;width:0.5rem;height:0.5rem;background:var(--accent);box-shadow:0.5rem 0.5rem 0 var(--accent),1rem 0 0 var(--accent),0 1rem 0 var(--signal),1rem 1rem 0 var(--signal)}
.has-photo .drop{display:none}

.hint{font-size:0.8125rem;color:var(--muted);margin:0.75rem 0.125rem 0;min-height:1.125rem}
.hint.bad{color:var(--bad);font-weight:600}
.has-photo .hint{margin-top:0}

.bi-work[hidden]{display:none}
.bi-bar{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;margin:0.5rem 0 0.625rem}
.bi-tools{margin:0;flex:1 1 17rem}
.bi-tools button{padding:0.5rem 0.375rem}
.bi-acts{display:flex;flex-wrap:wrap;gap:0.375rem;align-items:center}
.bi-acts .chip{min-width:2.5rem;padding:0.4375rem 0.625rem}
.bi-acts .chip:disabled{opacity:.45;cursor:default}
.bi-acts .chip:disabled:hover{border-color:var(--line-2);color:var(--ink-2)}
.bi-zoom{display:inline-flex;gap:0.25rem;margin-left:auto}
@media(max-width:480px){.bi-hide-s{display:none}}
.chip:focus-visible,.modes button:focus-visible,.drop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.bi-brush{margin:0 0 0.625rem}
.bi-brush[hidden]{display:none}

/* the canvas viewport: scrolls when zoomed in; drawing gestures never scroll the page */
.bi-stage{position:relative;max-height:min(70vh,46rem);overflow:auto;border:1px solid var(--line);border-radius:0.5rem;background:var(--surface-2);background-image:linear-gradient(45deg,var(--line) 25%,transparent 25%,transparent 75%,var(--line) 75%),linear-gradient(45deg,var(--line) 25%,transparent 25%,transparent 75%,var(--line) 75%);background-size:1rem 1rem;background-position:0 0,0.5rem 0.5rem;overscroll-behavior:contain}
@media(max-width:600px){.bi-stage{max-height:58vh}}
.bi-sheet{position:relative;margin:0 auto;touch-action:none;cursor:crosshair}
.bi-sheet.tool-select{cursor:default}
.bi-sheet.tool-select.over{cursor:move}
.bi-sheet canvas{display:block;width:100%;height:100%}
.bi-ovl{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.bi-ovl .o-area{fill:none;stroke:var(--signal);stroke-width:1.5px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.bi-ovl .o-area.sel{stroke:var(--accent);stroke-width:2px;stroke-dasharray:none}
.bi-ovl .o-halo{fill:none;stroke:var(--mark-cell);stroke-width:3.5px;vector-effect:non-scaling-stroke;opacity:.55}
.bi-ovl .o-brush{fill:none;stroke:var(--signal);stroke-linecap:round;stroke-linejoin:round;opacity:.5}
.bi-ovl .o-h{fill:var(--surface);stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}

.bi-legend{display:flex;flex-wrap:wrap;gap:0.375rem 0.875rem;align-items:baseline;margin:0.5rem 0.125rem 0;font-size:0.8125rem;color:var(--muted)}
.bi-dims{font-family:var(--mono);font-size:0.75rem}
.bi-link{border:0;background:none;padding:0.25rem 0;margin-left:auto;color:var(--muted);font:inherit;font-size:0.8125rem;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.bi-link:hover{color:var(--accent)}

/* side panels */
.bi-panel .sec{font-size:0.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0 0 0.625rem}
.bi-for{font-weight:500;text-transform:none;letter-spacing:0;color:var(--accent);margin-left:0.25rem}
.bi-panel .modes{margin-bottom:0.875rem}
.bi-panel .field+.field{margin-top:0.75rem}
.bi-panel .field[hidden]{display:none}
.bi-fill input[type=color]{width:100%;height:2.5rem;padding:0.125rem;border:1px solid var(--line-2);border-radius:0.5rem;background:var(--surface);cursor:pointer}
.note{font-size:0.8125rem;color:var(--muted);margin:0.875rem 0.125rem 0;line-height:1.5}
.note b{color:var(--ink)}
.bi-safe{padding:0.625rem 0.75rem;border-left:0.1875rem solid var(--warn);background:var(--surface-2);border-radius:0.375rem;margin-left:0;margin-right:0}
.bi-dl{width:100%;margin-top:1rem}
.bi-dl:disabled{opacity:.5;cursor:default;filter:none}

.explainer .bi-steps,.explainer .bi-cannot{color:var(--muted);font-size:0.9375rem;margin:0 0 0.75rem;padding-left:1.25rem}
.explainer .bi-steps li,.explainer .bi-cannot li{margin:0 0 0.5rem}
.explainer .bi-steps b,.explainer .bi-cannot b{color:var(--ink)}
.explainer table{max-width:none}

@media (prefers-reduced-motion:reduce){.drop{transition:none}}
