.visualizer-intro{padding-top:48px;padding-bottom:32px}
.visualizer-intro h1{max-width:820px}
.visualizer-intro>p:last-child{font-size:18px;max-width:820px;line-height:1.6;margin:18px 0 0}
.visualizer-workspace{display:grid;grid-template-columns:minmax(320px,410px) minmax(0,1fr);gap:28px;align-items:start;padding-bottom:76px}
.visualizer-panel,.visualizer-preview{background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.visualizer-step{padding:27px 28px 31px;border-bottom:1px solid var(--line)}
.visualizer-step-label{font-size:12px;letter-spacing:.12em;color:var(--accent);font-weight:700;margin:0 0 13px}
.visualizer-step h2{font-size:29px;margin-bottom:20px}
.visualizer-modes{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.visualizer-mode{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:3px;min-height:72px;padding:10px;text-align:left;font-size:15px;line-height:1.35}
.visualizer-mode.active{border-color:var(--ink);background:#e9eee7;box-shadow:inset 0 0 0 1px var(--ink)}
.visualizer-step .small{margin:15px 0 0}
.visualizer-drop{margin-top:18px;padding:18px;border:1px dashed #849287;background:#f8f9f5;text-align:center;cursor:pointer}
.visualizer-drop strong,.visualizer-drop span{display:block}
.visualizer-drop span{font-size:13px;color:var(--muted);margin-top:3px}
.visualizer-drop input{margin:10px 0 0;width:100%;min-height:0;padding:6px;font-size:13px;border:0;background:transparent}
.visualizer-search-label{font-size:14px;font-weight:600}
.visualizer-search-label input{margin-top:8px}
.visualizer-filters{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}
.visualizer-filters button{border:1px solid var(--line);background:var(--paper);padding:6px 10px;border-radius:30px;color:var(--ink);font-size:13px}
.visualizer-filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
#stone-count{margin:18px 0 10px}
.visualizer-stones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:274px;overflow-y:auto;padding-right:4px}
.visualizer-stone{display:flex;align-items:center;gap:10px;text-align:left;width:100%;min-width:0;border:1px solid var(--line);border-radius:3px;background:var(--paper);padding:6px;color:var(--ink)}
.visualizer-stone.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.visualizer-stone img{width:49px;height:49px;object-fit:cover;flex:0 0 auto}
.visualizer-stone span{font-size:13px;line-height:1.3;overflow-wrap:anywhere}
.visualizer-submit{padding:24px 28px 20px}
.visualizer-submit .button{width:100%;justify-content:space-between}
.visualizer-submit p{margin:13px 0 0}
.visualizer-preview-top{padding:28px 30px 21px;display:flex;align-items:end;justify-content:space-between;gap:20px}
.visualizer-preview-top .eyebrow{margin-bottom:9px}
.visualizer-preview-top h2{font-size:clamp(25px,2.6vw,36px)}
#preview-badge{font-size:12px;background:var(--soft);border-radius:30px;padding:7px 10px;white-space:nowrap;color:var(--ink)}
.visualizer-canvas{position:relative;background:#e9e5dd;aspect-ratio:3/2;overflow:hidden}
.visualizer-canvas img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.visualizer-canvas img[hidden]{display:none}
.visualizer-canvas.comparing #visualizer-after{clip-path:inset(0 calc(100% - var(--reveal,50%)) 0 0)}
.visualizer-canvas.comparing:after{content:'';position:absolute;top:0;bottom:0;left:var(--reveal,50%);width:2px;background:white;box-shadow:0 0 0 1px #3334;pointer-events:none}
.visualizer-canvas-label{position:absolute;left:18px;bottom:17px;background:#fffefaeb;color:var(--ink);padding:6px 11px;font-size:13px;border-radius:2px;pointer-events:none}
.visualizer-compare{padding:17px 30px 2px;display:flex;align-items:center;gap:20px}
.visualizer-compare label{flex-shrink:0}
.visualizer-compare input{min-height:0;margin:0;accent-color:var(--ink)}
.visualizer-status{margin:16px 30px 0;font-size:14px;min-height:24px}
.visualizer-preview-actions{padding:10px 30px 24px;display:flex;align-items:center;gap:22px}
.visualizer-preview-actions .text-link{font-size:14px;text-decoration:underline;text-underline-offset:4px}
.visualizer-next{background:var(--soft);padding:28px 30px 32px}
.visualizer-next .eyebrow{margin:0 0 10px}
.visualizer-next h3{font-family:Georgia,'Times New Roman',serif;font-size:29px}
.visualizer-next p:not(.eyebrow){font-size:15px;margin:10px 0 18px}
.visualizer-next .actions{gap:10px}
.visualizer-next .button{font-size:13px;min-height:44px;padding:10px 14px}
@media(max-width:1100px){.visualizer-workspace{grid-template-columns:minmax(300px,355px) minmax(0,1fr)}.visualizer-stones{grid-template-columns:1fr}}
@media(max-width:850px){.visualizer-workspace{grid-template-columns:1fr}.visualizer-stones{grid-template-columns:repeat(3,minmax(0,1fr));max-height:280px}}
@media(max-width:600px){.visualizer-intro{padding-top:32px}.visualizer-intro h1{font-size:40px}.visualizer-intro>p:last-child{font-size:16px}.visualizer-workspace{width:100%;gap:16px}.visualizer-panel,.visualizer-preview{border-radius:0;border-left:0;border-right:0}.visualizer-step{padding:23px 5.5%}.visualizer-stones{grid-template-columns:repeat(2,minmax(0,1fr))}.visualizer-submit{padding:22px 5.5%}.visualizer-preview-top{padding:25px 5.5% 18px;align-items:start;flex-direction:column;gap:10px}.visualizer-preview-top h2{font-size:30px}.visualizer-canvas{aspect-ratio:4/3}.visualizer-compare{padding-inline:5.5%;display:block}.visualizer-compare input{margin-top:5px}.visualizer-status{margin-inline:5.5%}.visualizer-preview-actions{padding-inline:5.5%}.visualizer-next{padding:26px 5.5%}.visualizer-next .actions{flex-wrap:wrap}.visualizer-next .button{width:100%;justify-content:space-between}}
