{"version":3,"file":"carousel.module.mjs","names":[],"sources":["../../../../package/common/carousel/carousel.module.pcss"],"sourcesContent":[".carousel {\n  position: relative;\n  overflow: hidden;\n  border-radius: var(--default-border-radius);\n\n  &-adaptive {\n    transition: height 0.4s ease;\n  }\n\n  /* One slide wide, with every slide in the same cell, moved along by its own position. Side by side\n     at 1/n of a track n slides wide, each width was rounded to the layout's 1/64px, and the error\n     added up to an image 15px off centre by the thousandth slide. The cell still takes the tallest\n     slide's height. */\n  &-track {\n    display: grid;\n    grid-template-columns: 100%;\n    align-items: stretch;\n    transition: transform 0.4s ease;\n    touch-action: pan-y;\n    user-select: none;\n  }\n\n  &-trackAdaptive {\n    align-items: start;\n  }\n\n  &-slide {\n    grid-area: 1 / 1;\n    box-sizing: border-box;\n  }\n\n  /* Two classes, to outrank Button's radius and ActionIcon's box whichever stylesheet loads\n     first. */\n  & &-prevButton,\n  & &-nextButton {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 1;\n    width: 36px;\n    height: 36px;\n    border-radius: 50%;\n    box-shadow: var(--card-shadow);\n    transition: opacity 0.15s;\n  }\n\n  &-buttonDisabled {\n    opacity: 0.35;\n    pointer-events: none;\n  }\n\n  &-prevButton {\n    left: 12px;\n  }\n\n  &-nextButton {\n    right: 12px;\n  }\n\n  /* A scroll strip rather than a row that shrinks, so the dots keep their size at any slide count.\n     The padding holds the outer dots clear of the fade until the strip has somewhere to scroll. */\n  &-dots {\n    position: absolute;\n    bottom: 4px;\n    left: 50%;\n    transform: translateX(-50%);\n    z-index: 1;\n    display: flex;\n    box-sizing: border-box;\n    width: max-content;\n    max-width: 100%;\n    padding-inline: 16px;\n    overflow-x: auto;\n    overscroll-behavior-x: contain;\n    scroll-behavior: smooth;\n\n    /* Matches the strip's own `padding-inline`, so the first and last dot start out clear of the\n       fade. The shared sheet's private length, not `--scroll-fade-length`, which would inherit. */\n    --custom-scroll-fade-length: 16px;\n\n    scrollbar-width: none;\n\n    &::-webkit-scrollbar {\n      display: none;\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      scroll-behavior: auto;\n    }\n  }\n\n  /* The dot stays 8px, its padding carries the hit area out to the 24px minimum. */\n  &-dot {\n    box-sizing: content-box;\n\n    /* The strip is width-capped, and shrinking would pull the content box, the only part\n       `background-clip` paints, down to nothing. */\n    flex-shrink: 0;\n    width: 8px;\n    height: 8px;\n    padding: 8px;\n    border-radius: 2000px;\n    background: var(--background-accent);\n    background-clip: content-box;\n    opacity: 0.6;\n    cursor: pointer;\n    -webkit-tap-highlight-color: transparent;\n    transition:\n      opacity 0.15s,\n      background 0.15s,\n      width 0.15s;\n\n    &:hover {\n      opacity: 0.85;\n    }\n\n    &:focus-visible {\n      outline: none;\n      box-shadow: 0 0 0 2px var(--primary-lighter);\n    }\n\n    &-active {\n      background: var(--primary-color);\n      background-clip: content-box;\n      opacity: 1;\n      width: 20px;\n    }\n  }\n}\n"],"mappings":""}