.ns-section{--ns-bg:#f8f6f1;--ns-stage:#eeede6;--ns-panel:#fff;--ns-ink:#1e1e1c;--ns-muted:#6c6b66;--ns-line:#dad7ce;--ns-line-strong:#bdbab0;--ns-water:#3e7bbf;--ns-water-fill:#d7e5f5;--ns-mold:#4f8a5b;--ns-mold-fill:#ddebdd;--ns-dust:#d9773e;--ns-dust-fill:#f7e1d2;--ns-air:#5b7fa6;--ns-air-fill:#dee8f2;--ns-soil:#8a6a44;--ns-soil-fill:#ede2d4;--ns-allergen:#7a6ba8;--ns-allergen-fill:#e6e1f2;--ns-serif:Newsreader,Georgia,"Times New Roman",serif;--ns-sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--ns-model-height:580px;--ns-radius:20px;box-sizing:border-box;max-width:1160px;margin:0 auto;padding:64px 20px 80px;font-family:var(--ns-sans);font-size:14px;line-height:1.5;color:var(--ns-ink);-webkit-font-smoothing:antialiased}.ns-section *,.ns-section :after,.ns-section :before{box-sizing:inherit}.ns-hero{text-align:center;max-width:720px;margin:0 auto 34px}.ns-title{font-family:var(--ns-serif);font-weight:400;font-size:clamp(30px,4.2vw,42px);line-height:1.12;letter-spacing:-.01em;margin:0 0 12px}.ns-sub{color:var(--ns-muted);font-size:13.5px;max-width:520px;margin:0 auto 12px}.ns-link{color:var(--ns-ink);font-weight:500;font-size:13px;text-decoration:underline;text-underline-offset:3px}.ns-stage{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:stretch}.ns-model{position:relative;height:var(--ns-model-height);border:1px solid var(--ns-line);border-radius:var(--ns-radius);background:var(--ns-stage);overflow:hidden}.ns-canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}.ns-canvas.is-room{cursor:pointer}.ns-canvas.is-dragging{cursor:grabbing}.ns-hint{position:absolute;left:16px;bottom:14px;font-size:12px;color:var(--ns-muted);pointer-events:none}.ns-no-webgl .ns-canvas{display:none}.ns-no-webgl .ns-hint{top:50%;left:50%;bottom:auto;transform:translate(-50%,-50%)}.ns-toggle{position:absolute;left:12px;top:12px;z-index:2;display:inline-grid;grid-template-columns:1fr 1fr;background:var(--ns-stage);border:1px solid var(--ns-line);border-radius:999px;padding:3px}.ns-toggle-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);background:var(--ns-panel);border:1px solid var(--ns-line-strong);border-radius:999px;transition:transform .28s cubic-bezier(.4,0,.2,1)}.ns-toggle[data-state=expanded] .ns-toggle-thumb{transform:translateX(100%)}.ns-toggle button{position:relative;z-index:1;font:inherit;font-weight:500;font-size:12.5px;color:var(--ns-muted);background:transparent;border:0;border-radius:999px;padding:6px 16px;cursor:pointer;transition:color .2s}.ns-toggle button[aria-pressed=true]{color:var(--ns-ink)}.ns-toggle button:focus-visible{outline:2px solid var(--ns-mold);outline-offset:2px}.ns-key{position:absolute;right:16px;top:16px;list-style:none;padding:0;margin:0;display:flex;gap:16px;pointer-events:none}.ns-key li{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.ns-key i{width:14px;height:14px;border-radius:50%;border:1.5px solid}.ns-key .ns-water{color:var(--ns-water)}.ns-key .ns-water i{background:var(--ns-water-fill)}.ns-key .ns-mold{color:var(--ns-mold)}.ns-key .ns-mold i{background:var(--ns-mold-fill)}.ns-key .ns-dust{color:var(--ns-dust)}.ns-key .ns-dust i{background:var(--ns-dust-fill)}.ns-key .ns-air{color:var(--ns-air)}.ns-key .ns-air i{background:var(--ns-air-fill)}.ns-key .ns-soil{color:var(--ns-soil)}.ns-key .ns-soil i{background:var(--ns-soil-fill)}.ns-key .ns-allergen{color:var(--ns-allergen)}.ns-key .ns-allergen i{background:var(--ns-allergen-fill)}.ns-panel{background:var(--ns-panel);border:1px solid var(--ns-line);border-radius:var(--ns-radius);padding:18px 18px 12px;display:flex;flex-direction:column;min-height:0}.ns-panel-head{min-height:118px;padding-bottom:14px;border-bottom:1px solid var(--ns-line);margin-bottom:8px}.ns-eyebrow{font-size:12px;color:var(--ns-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px;min-height:18px}.ns-eyebrow .ns-sep{margin:0 4px}.ns-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:2px}.ns-dot.ns-water{background:var(--ns-water)}.ns-dot.ns-mold{background:var(--ns-mold)}.ns-dot.ns-dust{background:var(--ns-dust)}.ns-dot.ns-air{background:var(--ns-air)}.ns-dot.ns-soil{background:var(--ns-soil)}.ns-dot.ns-allergen{background:var(--ns-allergen)}.ns-panel-title{font-family:var(--ns-serif);font-weight:400;font-size:24px;line-height:1.15;margin:0 0 8px;letter-spacing:-.01em}.ns-kit{display:flex;gap:10px;align-items:flex-start;margin-top:8px}.ns-kit strong{display:block;font-weight:600;font-size:13px}.ns-kit span{display:block;color:var(--ns-muted);font-size:12.5px}.ns-samples{list-style:none;margin:0;padding:0;overflow:auto}.ns-sample{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:7px 8px;border:0;border-radius:10px;background:transparent;font:inherit;color:inherit;cursor:pointer;transition:background .12s}.ns-sample.is-active,.ns-sample:hover{background:var(--ns-stage)}.ns-sample:focus-visible{outline:2px solid var(--ns-mold);outline-offset:-2px}.ns-sample.is-active .ns-sample-room{font-weight:600}.ns-sample-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}.ns-sample-room{font-size:13px}.ns-sample-where{font-size:12px;color:var(--ns-muted)}.ns-badge{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.ns-badge.ns-water{color:var(--ns-water);background:var(--ns-water-fill);border-color:var(--ns-water)}.ns-badge.ns-mold{color:var(--ns-mold);background:var(--ns-mold-fill);border-color:var(--ns-mold)}.ns-badge.ns-dust{color:var(--ns-dust);background:var(--ns-dust-fill);border-color:var(--ns-dust)}.ns-badge.ns-air{color:var(--ns-air);background:var(--ns-air-fill);border-color:var(--ns-air)}.ns-badge.ns-soil{color:var(--ns-soil);background:var(--ns-soil-fill);border-color:var(--ns-soil)}.ns-badge.ns-allergen{color:var(--ns-allergen);background:var(--ns-allergen-fill);border-color:var(--ns-allergen)}@media (max-width:860px){.ns-section{padding:40px 14px 56px;--ns-model-height:440px}.ns-stage{grid-template-columns:1fr}.ns-panel-head{min-height:0}.ns-key{flex-direction:column;align-items:flex-end;gap:6px;right:14px;top:14px}}@media (prefers-reduced-motion:reduce){.ns-sample,.ns-toggle button,.ns-toggle-thumb{transition:none}}