.product-page .gallery-slide-arrow{background:transparent;border:0}.product-page .gallery-slide-arrow:before{content:"";position:absolute;inset:4px;border:1px solid #dfe2e4b3;border-radius:50%;background:#ffffffe0;transition:background-color .18s,border-color .18s}.product-page .gallery-slide-arrow svg{position:relative;width:18px;height:18px}@media(hover:hover) and (pointer:fine){.product-page .gallery-slide-arrow:hover:before{background:#ffb800b3;border-color:#ffb80099}}.product-page .gallery-slide-arrow:active:before{background:#ffb80080}.gallery-open{overflow:hidden}.gallery-dialog{position:fixed;inset:0;margin:auto;width:calc(100% - 64px);max-width:1280px;height:calc(100vh - 64px);height:min(860px,calc(100dvh - 64px));max-height:none;padding:0;border:0;border-radius:8px;background:#fff;color:var(--text-primary);box-shadow:0 20px 80px #0003;overflow:hidden;overscroll-behavior:contain}.gallery-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;animation:viewer-enter .16s ease-out}.gallery-dialog::backdrop{background:#0b0c0d99}.lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:6px 16px 6px 24px;border-bottom:1px solid var(--border-light)}.lightbox-title{min-width:0;font-size:14px;line-height:1.4;overflow-wrap:anywhere}.lightbox-title span{color:var(--text-secondary)}.gallery-dialog button{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;padding:0;border:0;border-radius:6px;color:var(--text-primary);background:#fff;touch-action:manipulation;transition:background-color .15s}.gallery-dialog button svg{width:22px;height:22px}.lightbox-stage{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:12px 72px;overflow:hidden;touch-action:pan-y pinch-zoom}.lightbox-picture{position:relative;min-width:0;min-height:0;width:100%;height:100%}.lightbox-image{display:block;width:100%;height:100%;object-fit:contain}.lightbox-outgoing{position:absolute;left:50%;top:50%;translate:-50% -50%;pointer-events:none}.lightbox-picture.is-framed{width:min(100%,calc(var(--lightbox-stage-height,0px) * var(--photo-ratio)));height:auto;aspect-ratio:var(--photo-ratio);overflow:hidden}.lightbox-picture.is-framed>.lightbox-image{position:absolute;width:var(--photo-width);max-width:none;height:auto;left:var(--photo-left);top:var(--photo-top)}.lightbox-stage.is-error .lightbox-image{opacity:0}.lightbox-loading{display:none;position:absolute;z-index:3;width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--text-primary);border-radius:50%;animation:viewer-spin .7s linear infinite;pointer-events:none}.is-loading>.lightbox-loading{display:block}.lightbox-error{position:absolute;max-width:300px;padding:20px;text-align:center;font-size:13px;line-height:1.6;background:#fff}.lightbox-error p{color:var(--text-secondary)}.lightbox-error button{width:auto;padding:0 12px;margin:12px auto 0;background:var(--surface-secondary);font-size:13px}.lightbox-footer{display:flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:2px 24px 10px}.lightbox-status{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums;letter-spacing:.04em;line-height:1.5}.lightbox-prev,.lightbox-next{position:absolute;top:calc(50% - 22px);z-index:2}.lightbox-prev{left:16px}.lightbox-prev svg{rotate:180deg}.lightbox-next{right:16px}@media(hover:hover) and (pointer:fine){.gallery-dialog button:hover{background:var(--surface-secondary)}}@media(max-width:780px),(hover:none) and (pointer:coarse){.gallery-dialog{width:100%;max-width:none;height:100vh;height:100dvh;border-radius:0;box-shadow:none}.lightbox-header{min-height:56px;gap:12px;padding:max(6px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left))}.lightbox-stage{padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left))}.lightbox-footer{min-height:60px;gap:28px;padding:4px max(16px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.lightbox-prev,.lightbox-next{position:static}.lightbox-status{min-width:64px;text-align:center}}@keyframes viewer-enter{from{opacity:0}to{opacity:1}}@keyframes viewer-spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.gallery-dialog[open],.lightbox-loading{animation:none}.lightbox-image,.gallery-dialog button{transition:none}}