main.svelte-1yv3n3k{max-width:1200px;margin:0 auto;padding:2rem}.back-link.svelte-1yv3n3k{display:inline-block;color:#666;text-decoration:none;margin-bottom:2rem;font-size:.9rem}.back-link.svelte-1yv3n3k:hover{color:#333}.product-layout.svelte-1yv3n3k{display:grid;grid-template-columns:1fr 1fr;gap:4rem}@media(max-width:768px){.product-layout.svelte-1yv3n3k{grid-template-columns:1fr;gap:2rem}}.gallery.svelte-1yv3n3k{position:sticky;top:2rem;align-self:start}.main-image.svelte-1yv3n3k{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;min-height:300px}.main-image.svelte-1yv3n3k img:where(.svelte-1yv3n3k){width:100%;height:auto;object-fit:contain;max-height:80vh;transition:opacity .2s}.main-image.svelte-1yv3n3k img.loading:where(.svelte-1yv3n3k){opacity:.3}.image-loader.svelte-1yv3n3k{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5}.spinner.svelte-1yv3n3k{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#333;border-radius:50%;animation:svelte-1yv3n3k-spin .8s linear infinite}@keyframes svelte-1yv3n3k-spin{to{transform:rotate(360deg)}}.nav-button.svelte-1yv3n3k{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:none;border-radius:50%;background:#ffffffe6;color:#333;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,background .2s;z-index:10;box-shadow:0 2px 8px #00000026}.main-image.svelte-1yv3n3k:hover .nav-button:where(.svelte-1yv3n3k):not(:disabled){opacity:1}.nav-button.svelte-1yv3n3k:hover:not(:disabled){background:#fff}.nav-button.svelte-1yv3n3k:disabled{opacity:0!important;cursor:default}.nav-button.prev.svelte-1yv3n3k{left:12px}.nav-button.next.svelte-1yv3n3k{right:12px}.main-image.svelte-1yv3n3k .placeholder:where(.svelte-1yv3n3k){width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#999}.thumbnails.svelte-1yv3n3k{display:flex;gap:.5rem;margin-top:1rem;overflow-x:auto}.thumbnail.svelte-1yv3n3k{width:64px;height:64px;border-radius:8px;overflow:hidden;border:2px solid transparent;cursor:pointer;padding:0;background:#fff;flex-shrink:0}.thumbnail.active.svelte-1yv3n3k{border-color:#333}.thumbnail.svelte-1yv3n3k img:where(.svelte-1yv3n3k){width:100%;height:100%;object-fit:cover}.details.svelte-1yv3n3k h1:where(.svelte-1yv3n3k){font-size:2rem;margin:0 0 1rem;font-weight:600}.price.svelte-1yv3n3k{font-size:1.75rem;font-weight:700;color:#000;margin:.5rem 0 1rem}.description-wrapper.svelte-1yv3n3k{position:relative;max-height:30vh;overflow:hidden;margin-bottom:.5rem}.description-wrapper.expanded.svelte-1yv3n3k{max-height:none}.description.svelte-1yv3n3k{color:#666;line-height:1.6}.description-fade.svelte-1yv3n3k{position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,transparent,white);pointer-events:none}.expand-button.svelte-1yv3n3k{background:none;border:none;color:#7c3aed;font-size:.9rem;font-weight:500;cursor:pointer;padding:.5rem 0;margin-bottom:1.5rem}.expand-button.svelte-1yv3n3k:hover{text-decoration:underline}.description.svelte-1yv3n3k p{margin:0;white-space:pre-line}.purchase-controls.svelte-1yv3n3k{background:#fafafa;border:1px solid #eee;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.variant-selector.svelte-1yv3n3k,.quantity-selector.svelte-1yv3n3k{margin-bottom:1rem}.variant-selector.svelte-1yv3n3k label:where(.svelte-1yv3n3k),.quantity-selector.svelte-1yv3n3k label:where(.svelte-1yv3n3k){display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem;color:#333}.variant-selector.svelte-1yv3n3k select:where(.svelte-1yv3n3k){width:100%;padding:.75rem 1rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;background:#fff;cursor:pointer}.quantity-controls.svelte-1yv3n3k{display:flex;align-items:center;gap:0}.quantity-controls.svelte-1yv3n3k button:where(.svelte-1yv3n3k){width:40px;height:40px;border:1px solid #ddd;background:#fff;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.quantity-controls.svelte-1yv3n3k button:where(.svelte-1yv3n3k):first-child{border-radius:8px 0 0 8px}.quantity-controls.svelte-1yv3n3k button:where(.svelte-1yv3n3k):last-child{border-radius:0 8px 8px 0}.quantity-controls.svelte-1yv3n3k button:where(.svelte-1yv3n3k):disabled{opacity:.5;cursor:not-allowed}.quantity-controls.svelte-1yv3n3k input:where(.svelte-1yv3n3k){width:60px;height:40px;border:1px solid #ddd;border-left:none;border-right:none;text-align:center;font-size:1rem;appearance:textfield;-moz-appearance:textfield}.quantity-controls.svelte-1yv3n3k input:where(.svelte-1yv3n3k)::-webkit-outer-spin-button,.quantity-controls.svelte-1yv3n3k input:where(.svelte-1yv3n3k)::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.add-to-cart.svelte-1yv3n3k{width:100%;padding:1rem 2rem;background:#333;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s;margin-top:.5rem}.add-to-cart.svelte-1yv3n3k:hover:not(:disabled){background:#000}.add-to-cart.svelte-1yv3n3k:disabled{opacity:.7;cursor:not-allowed}.meta.svelte-1yv3n3k{color:#666;font-size:.9rem;margin-bottom:1rem}.meta.svelte-1yv3n3k p:where(.svelte-1yv3n3k){margin:.25rem 0}.meta-link.svelte-1yv3n3k{color:#7c3aed;text-decoration:none}.meta-link.svelte-1yv3n3k:hover{text-decoration:underline}.tags.svelte-1yv3n3k{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tag.svelte-1yv3n3k{display:inline-block;padding:.25rem .75rem;background:#f0f0f0;border-radius:100px;font-size:.85rem;color:#666;text-decoration:none;transition:background .2s,color .2s}.tag.svelte-1yv3n3k:hover{background:#e0e0e0;color:#333}
