body.modal-open{overflow:hidden}

.product-modal{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:16px}
.product-modal[hidden]{display:none}
.product-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.product-modal-panel{position:relative;display:flex;flex-direction:column;width:100%;max-width:960px;max-height:92vh;background:#fff;border-radius:24px;box-shadow:0 25px 50px -12px rgba(15,23,42,.35);overflow:hidden}
.modal-close{position:absolute;top:16px;right:16px;z-index:10;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:#fff;color:#64748b;box-shadow:0 2px 8px rgba(15,23,42,.1);cursor:pointer;transition:background .15s,color .15s}
.modal-close:hover{background:#f8fafc;color:#0f172a}
.modal-close svg{width:20px;height:20px}

.product-modal-body{display:grid;grid-template-columns:1fr;max-height:92vh;overflow:hidden}
@media(min-width:900px){
  .product-modal-body{grid-template-columns:1.05fr .95fr}
}

.modal-gallery{background:linear-gradient(135deg,#f1f5f9,#f8fafc 50%,#e2e8f0);padding:24px;overflow-y:auto}
.modal-main-image{position:relative;display:flex;align-items:center;justify-content:center;min-height:240px;padding:16px;border-radius:16px;background:rgba(255,255,255,.4)}
.modal-main-image img{max-height:340px;width:100%;max-width:420px;object-fit:contain}
.verified-badge{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.95);box-shadow:0 2px 8px rgba(15,23,42,.08);text-align:center}
.verified-icon{width:28px;height:28px;color:#1a7fd4}
.verified-badge span{margin-top:2px;font-size:7px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#475569;line-height:1}

.modal-thumbs{display:flex;gap:8px;margin-top:16px;overflow-x:auto;padding-bottom:4px}
.modal-thumb{flex:0 0 64px;width:64px;height:64px;padding:4px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.modal-thumb img{width:100%;height:100%;object-fit:contain}
.modal-thumb.active,.modal-thumb:hover{border-color:#1a7fd4}
.modal-thumb.active{box-shadow:0 0 0 2px rgba(26,127,212,.25)}

.modal-details{padding:28px 24px 32px;overflow-y:auto}
.modal-category{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#1a7fd4}
.modal-category .dot{width:8px;height:8px;border-radius:50%;background:#1a7fd4}
.modal-title{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:800;letter-spacing:-.03em;color:#0f172a;line-height:1.1}
.modal-subtitle{margin-top:4px;font-size:.8125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#94a3b8}
.modal-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.tag-pill{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;font-size:.75rem;font-weight:700}
.tag-teal{background:#ccfbf1;color:#0f766e}
.tag-blue{background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe}
.modal-description{margin-top:20px;font-size:.875rem;line-height:1.75;color:#475569}
.modal-specs{margin-top:24px;border:1px solid #f1f5f9;border-radius:16px;background:rgba(248,250,252,.7);overflow:hidden}
.modal-spec-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;padding:14px 16px;border-bottom:1px solid #f1f5f9}
.modal-spec-row:last-child{border-bottom:none}
.modal-spec-row dt{font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#94a3b8}
.modal-spec-row dd{font-size:.875rem;font-weight:600;color:#1e293b}

.modal-verify-note{display:flex;align-items:flex-start;gap:12px;margin-top:24px;padding:14px 16px;border-radius:16px;background:#ecfdf5;color:#0f766e;font-size:.875rem;line-height:1.5}
.modal-verify-note svg{flex-shrink:0;width:20px;height:20px;margin-top:2px}

.launch-card{transition:transform .2s,box-shadow .2s}
.launch-image-btn.launch-image{margin-bottom:16px;cursor:pointer}
.launch-image-btn.launch-image img{pointer-events:none}
.launch-btn{cursor:pointer;font-family:inherit}
.product-preview:hover .product-card-inner{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,40,70,.1)}
.product-card-inner{background:#fff;border:1px solid #e8eef4;border-radius:16px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.product-card-inner img{width:100%;aspect-ratio:4/3;object-fit:cover}
.product-card-inner h3{padding:16px 16px 16px;font-size:1.05rem;font-weight:700;color:#0f172a}
