.filigrane-hero{max-width:980px}
.filigrane-privacy-callout{display:grid;gap:4px;margin-top:22px;padding:15px 17px;border:1px solid color-mix(in srgb,var(--mint) 36%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,var(--mint) 8%)}
.filigrane-privacy-callout strong{font-size:.92rem}.filigrane-privacy-callout span{color:var(--muted);font-size:.88rem;line-height:1.5}
.filigrane-lab{margin:28px 0 40px}.filigrane-drop{display:grid;justify-items:center;text-align:center;gap:9px;padding:34px 22px;border:1.5px dashed color-mix(in srgb,var(--cyan) 48%,var(--line));border-radius:24px;background:color-mix(in srgb,var(--surface) 94%,var(--cyan) 6%);cursor:pointer}
.filigrane-drop:focus-visible{outline:3px solid color-mix(in srgb,var(--cyan) 65%,transparent);outline-offset:4px}.filigrane-drop.is-dragging{border-style:solid;background:color-mix(in srgb,var(--surface) 84%,var(--cyan) 16%)}
.filigrane-drop-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:color-mix(in srgb,var(--cyan) 16%,var(--surface));font-size:1.65rem;color:var(--cyan)}
.filigrane-drop h2{margin:.15rem 0 0}.filigrane-drop p{margin:0;color:var(--muted)}.filigrane-drop small{color:var(--muted);font-weight:700}.filigrane-local-note{font-size:.78rem!important}
.filigrane-status{margin:14px 0;padding:11px 14px;border-left:3px solid var(--cyan);background:var(--surface);border-radius:0 12px 12px 0;color:var(--muted);font-size:.88rem}
.filigrane-stage{display:grid;gap:20px;margin-top:18px}.filigrane-stage-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.filigrane-stage-head h2{margin:.25rem 0 .4rem}.filigrane-stage-head p{margin:0;color:var(--muted);max-width:820px}
.filigrane-page-nav{display:flex;align-items:center;gap:10px;white-space:nowrap}.filigrane-page-nav .button{min-width:42px;padding-inline:12px}.filigrane-page-nav span{font-size:.86rem;color:var(--muted)}
.filigrane-workbench{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:18px;align-items:start}.filigrane-canvas-card,.filigrane-controls,.filigrane-comparison{border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.filigrane-canvas-card{padding:12px}.filigrane-canvas-wrap{display:grid;place-items:center;overflow:auto;min-height:340px;max-height:76vh;border-radius:14px;background:repeating-conic-gradient(color-mix(in srgb,var(--surface-2) 90%,transparent) 0 25%,transparent 0 50%) 50%/18px 18px}
.filigrane-canvas-wrap canvas{grid-area:1/1;display:block;max-width:100%;height:auto}.filigrane-canvas-wrap [data-lab-source]{z-index:1}.filigrane-canvas-wrap [data-lab-mask]{z-index:2;touch-action:none;cursor:crosshair}.filigrane-canvas-meta{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:var(--muted);font-size:.78rem}
.filigrane-controls{display:grid;gap:16px;padding:16px;position:sticky;top:86px}.filigrane-controls fieldset{display:grid;gap:10px;margin:0;padding:0 0 15px;border:0;border-bottom:1px solid var(--line)}.filigrane-controls legend{font-weight:800;margin-bottom:8px}.filigrane-controls label{display:flex;justify-content:space-between;gap:12px;font-size:.84rem;font-weight:700}.filigrane-controls input[type="range"]{width:100%;accent-color:var(--cyan)}.control-help{margin:0;color:var(--muted);font-size:.77rem;line-height:1.45}
.filigrane-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.filigrane-mode-grid .is-active{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan) inset}.filigrane-coverage{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-radius:13px;background:var(--surface-2)}.filigrane-coverage span{font-size:.82rem;color:var(--muted)}.filigrane-primary-actions{display:grid;gap:8px}
.filigrane-comparison{padding:18px}.filigrane-result-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.5fr);gap:18px}.filigrane-result-grid figure{margin:0}.filigrane-result-grid canvas{display:block;max-width:100%;height:auto;margin:auto;border:1px solid var(--line);border-radius:12px}.filigrane-result-grid figcaption{margin-top:8px;color:var(--muted);font-size:.82rem;text-align:center}.filigrane-metrics{display:grid;gap:10px;align-content:start}.filigrane-metrics article{padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}.filigrane-metrics article span{display:block;color:var(--muted);font-size:.76rem}.filigrane-metrics article strong{display:block;margin-top:4px;font-size:1.25rem}.filigrane-metrics p{color:var(--muted);font-size:.8rem;line-height:1.45}.filigrane-warning{margin-top:14px}.filigrane-reinforce ul{display:grid;gap:8px;padding-left:1.2rem}
@media(max-width:980px){.filigrane-workbench{grid-template-columns:1fr}.filigrane-controls{position:static}.filigrane-result-grid{grid-template-columns:1fr}.filigrane-stage-head{align-items:start;flex-direction:column}}
@media(max-width:620px){.filigrane-drop{padding:26px 16px}.filigrane-canvas-wrap{min-height:240px;max-height:70vh}.filigrane-page-nav{width:100%;justify-content:space-between}.filigrane-mode-grid{grid-template-columns:1fr}.filigrane-controls{padding:13px}.filigrane-comparison{padding:13px}}

.filigrane-status[data-tone="error"]{border-left-color:#d33;color:var(--text)}.filigrane-status[data-tone="good"]{border-left-color:var(--mint)}
.filigrane-scope-note{max-width:760px;padding:10px 12px;border-radius:12px;background:var(--surface-2);font-size:.76rem!important;line-height:1.5}

/* 2.3.1 interaction and comparison hotfix */
.filigrane-reference-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--cyan) 24%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--surface) 96%,var(--cyan) 4%)}
.filigrane-reference-copy{display:grid;gap:5px;min-width:0}.filigrane-reference-copy strong{font-size:.94rem}.filigrane-reference-copy p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.45;max-width:760px}.filigrane-reference-copy span{color:var(--cyan);font-size:.74rem;font-weight:800;overflow-wrap:anywhere}
.filigrane-reference-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.filigrane-controls{position:static;top:auto}
.filigrane-controls .button.is-active,[data-lab-sample].is-active{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 12%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--cyan) 16%,transparent) inset;color:var(--text)}
.filigrane-canvas-wrap [data-lab-mask].is-sampling{cursor:copy}
.button:disabled{cursor:not-allowed;opacity:.48;filter:saturate(.5)}
.filigrane-primary-actions{grid-template-columns:1fr}.filigrane-primary-actions .button{width:100%}
.filigrane-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filigrane-result-grid figure[data-lab-reference-figure]{grid-column:1/-1;max-width:min(720px,100%);justify-self:center;width:100%}
.filigrane-comparison>.filigrane-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.filigrane-comparison>.filigrane-metrics p,.filigrane-comparison>.filigrane-metrics .button{grid-column:1/-1}.filigrane-comparison>.filigrane-metrics .button{justify-self:start}
@media(max-width:980px){.filigrane-reference-card{align-items:stretch;flex-direction:column}.filigrane-reference-actions{justify-content:flex-start}.filigrane-result-grid{grid-template-columns:1fr}.filigrane-result-grid figure[data-lab-reference-figure]{grid-column:auto}.filigrane-comparison>.filigrane-metrics{grid-template-columns:1fr}}
@media(max-width:620px){.filigrane-reference-actions{display:grid;grid-template-columns:1fr}.filigrane-reference-actions .button{width:100%}.filigrane-comparison>.filigrane-metrics .button{width:100%}}
