.circular-carousel{--cc-fade:#000;--cc-radius:12px;--cc-inner:.4;position:relative;width:100%;height:100%;overflow:hidden;outline:none;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.circular-carousel[data-axis=x]{touch-action:pan-x}.circular-carousel[data-draggable]{cursor:grab}.circular-carousel[data-dragging]{cursor:grabbing}.circular-carousel:focus-visible{box-shadow:inset 0 0 0 2px #80808c8c}.circular-carousel__view{position:absolute;inset:0}.circular-carousel[data-shape=wheel] .circular-carousel__view{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}.circular-carousel[data-shape=panorama] .circular-carousel__view{-webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent)}.circular-carousel__stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .45s ease}.circular-carousel[data-ready] .circular-carousel__stage{opacity:1}.circular-carousel__camera,.circular-carousel__ring,.circular-carousel__card{width:0;height:0;transform-style:preserve-3d}.circular-carousel__camera{position:relative}.circular-carousel__ring,.circular-carousel__card{position:absolute;left:0;top:0}.circular-carousel__tile{position:absolute;outline:1px solid transparent;backface-visibility:hidden;-webkit-backface-visibility:hidden}.circular-carousel__frame{position:absolute;left:0;top:0;width:100%;overflow:hidden}.circular-carousel__photo{position:absolute;display:block;max-width:none;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-drag:none}.circular-carousel__photo--leaving{animation:circular-carousel-leave .7s cubic-bezier(.33,1,.68,1) both}.circular-carousel__shade,.circular-carousel__inner{position:absolute;inset:0;pointer-events:none}.circular-carousel__shade{background:var(--cc-fade);opacity:var(--cc-depth,0)}.circular-carousel__inner{background:#000;opacity:var(--cc-inner)}.circular-carousel__caption{position:absolute;left:0;right:0;bottom:22px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;color:inherit;text-align:center;pointer-events:none;animation:circular-carousel-reveal .9s ease both}.circular-carousel__title{display:flex;max-width:100%;flex-direction:column;align-items:center;font-size:15px;font-weight:500;line-height:1.35;animation:circular-carousel-title .52s cubic-bezier(.22,1,.36,1)}.circular-carousel__subtitle{font-weight:400;opacity:.6}.circular-carousel__count{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-variant-numeric:tabular-nums;line-height:1;opacity:.5}.circular-carousel__slash{opacity:.6}.circular-carousel__digits{display:inline-flex}.circular-carousel__digit{display:inline-block;height:1em;overflow:hidden}.circular-carousel__reel{display:flex;flex-direction:column;transition:transform .6s cubic-bezier(.22,1,.36,1)}.circular-carousel__reel>span{height:1em}.circular-carousel__live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes circular-carousel-title{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes circular-carousel-leave{0%{opacity:1}to{opacity:0}}@keyframes circular-carousel-reveal{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.circular-carousel__stage,.circular-carousel__reel{transition:none}.circular-carousel__caption,.circular-carousel__title{animation:none}}.flex-carousel{position:relative;width:100%;height:100%;overflow:hidden;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:contain;outline:none}.flex-carousel[data-hover=open]{cursor:zoom-in}.flex-carousel[data-hover=close]{cursor:zoom-out}.flex-carousel[data-dragging]{cursor:grabbing}.flex-carousel:focus-visible{box-shadow:inset 0 0 0 2px #80808c8c}.flex-carousel__caption{position:absolute;left:0;right:0;top:calc(50% + var(--flex-carousel-half)*var(--flex-carousel-lift,1) + 22px);display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 16px;pointer-events:none;text-align:center;animation:flex-carousel-reveal .9s ease both}.flex-carousel__title{display:flex;flex-direction:column;align-items:center;max-width:100%;font-size:15px;font-weight:500;line-height:1.35;animation:flex-carousel-title .52s cubic-bezier(.22,1,.36,1)}.flex-carousel__subtitle{font-weight:400;opacity:.6}.flex-carousel__count{display:inline-flex;align-items:center;gap:3px;font-size:12px;line-height:1;font-variant-numeric:tabular-nums;opacity:.5;transition:opacity .4s ease}.flex-carousel__count[data-hidden]{opacity:0}.flex-carousel__digits{display:inline-flex}.flex-carousel__digit{display:inline-block;height:1em;overflow:hidden}.flex-carousel__reel{display:flex;flex-direction:column;transition:transform .6s cubic-bezier(.22,1,.36,1)}.flex-carousel__reel span{height:1em}.flex-carousel__slash{opacity:.6}.flex-carousel__live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes flex-carousel-title{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes flex-carousel-reveal{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.flex-carousel__caption,.flex-carousel__title{animation:none}.flex-carousel__reel{transition:none}}.grid-scan{position:relative;width:100%;height:100%;overflow:hidden}.grid-scan-canvas{position:absolute;inset:0;display:block;width:100%;height:100%}.grid-scan-preview{position:absolute;right:12px;bottom:12px;width:168px;aspect-ratio:4/3;overflow:hidden;border-radius:14px;background:#0b0b0e;box-shadow:0 0 0 1px #ffffff14,0 8px 24px #0006;pointer-events:none}.grid-scan-video{display:block;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.grid-scan-status{position:absolute;left:8px;bottom:8px;padding:3px 8px;border-radius:8px;background:#0a0a0c99;color:#fff;font:500 11px/1.4 system-ui,sans-serif;backdrop-filter:blur(8px)}.grid-scan-hidden{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
