/* The desktop header and original photo frames follow the gallery PSD. */
.mig-voting-page { max-width: none; font-size: 18px; }
.mig-voting-page .mig-inner { width: 1170px; max-width: calc(100% - 48px); }
.mig-voting-hero { height: 405px; }
.mig-voting-page .mig-voting-hero .mig-media { left: 50%; width: max(1920px, 100%); transform: translateX(-50%); }
.mig-voting-page .mig-voting-hero .mig-ai-badge { top: 62px; right: 3.90625%; width: 110px; height: 21px; }
.mig-voting-brand { position: absolute; top: 64px; left: 15px; }
.mig-voting-plane { position: absolute; top: 8px; left: 242px; }
.mig-voting-hero h1 {
  position: absolute;
  top: 213px;
  left: 117px;
  font-size: 63.9px;
  font-weight: 900;
  font-style: italic;
  line-height: .765;
  text-transform: uppercase;
  transform: rotate(-7.6deg);
  transform-origin: left top;
}
.mig-voting-hero h1 span { display: inline-block; margin-top: 10px; color: var(--mig-pink); font-size: 76.7px; }
.mig-voting-page .mig-voting-join { position: absolute; top: 281px; left: 848px; width: 336px; height: 53px; padding: 0 28px; font-size: 22.2px; letter-spacing: 1.66px; }
.mig-voting-join > span { transform: translate(-9px, -.08em); }
.mig-voting-page .mig-voting-join .mig-button-arrow { position: absolute; top: 50%; right: 17px; width: 28px; height: 28px; transform: translateY(-50%); }

.mig-voting-gallery { padding: 94px 0 48px; }
.mig-voting-page .mig-voting-grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 50px 24px; height: auto; }
.mig-voting-card {
  position: relative;
  flex: 0 1 calc(25% - 18px);
  max-width: calc((100% - 48px) / 3);
  min-width: 0;
  aspect-ratio: 374 / 470;
  container-type: inline-size;
  scroll-margin-top: 185px;
}
.mig-voting-photo-open { position: absolute; top: 5.615cqw; left: 5.08%; width: 89.04%; height: 94.652cqw; padding: 0; border: 0; background: #eef0f2; cursor: zoom-in; }
.mig-voting-photo-open:focus-visible { outline: 2px solid var(--mig-pink); outline-offset: 3px; }
.mig-voting-photo { display: block; width: 100%; height: 100%; object-fit: contain; background: #eef0f2; }
.mig-voting-zoom { position: fixed; z-index: 1040; box-sizing: border-box; overflow: hidden; border: 2px solid #fff; border-radius: 10px; background: #eef0f2; box-shadow: 0 0 0 1px rgb(237 28 104 / 35%), 0 12px 36px rgb(3 23 64 / 24%); pointer-events: none; }
.mig-voting-zoom[hidden] { display: none !important; }
.mig-voting-zoom img { display: block; width: 100%; height: 100%; object-fit: contain; }
.mig-photo-open { overflow: hidden; }
.mig-photo-dialog { position: fixed; inset: 0; box-sizing: border-box; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: calc(72px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) calc(16px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); border: 0; border-radius: 0; overflow: hidden; background: #081526; }
.mig-photo-dialog[open] { display: flex; }
.mig-photo-dialog::backdrop { background: #081526; }
.mig-photo-view { width: 100%; height: 100%; min-height: 0; }
.mig-photo-view img { display: block; width: 100%; height: 100%; object-fit: contain; }
.mig-photo-close { position: absolute; top: calc(12px + env(safe-area-inset-top, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; color: #081526; background: #fff; font: 36px/1 Arial, sans-serif; cursor: pointer; }
.mig-photo-close:focus-visible { outline: 3px solid #ed1c68; outline-offset: 3px; }
.mig-voting-placeholder { display: grid; place-items: center; padding: 16px; color: #747c88; background: #eef0f2; font-size: max(16px, 6cqw); line-height: 1.3; text-align: center; }
.mig-voting-frame { position: absolute; top: -8.556cqw; left: -7.487%; width: 113.37%; height: 140.375cqw; pointer-events: none; }
.mig-voting-meta { position: absolute; top: 100.267cqw; left: 5.08%; right: 5.89%; display: grid; grid-template-columns: max(44px, 12.567cqw) minmax(0, 1fr) max(44px, 12.567cqw); gap: 3px; align-items: start; }
.mig-voting-page .mig-voting-meta h2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; max-height: 2.2em; margin-top: 7.5cqw; font-size: max(16px, 6.873cqw); font-weight: 700; line-height: 1.1; letter-spacing: .025em; text-align: center; overflow-wrap: anywhere; }
.mig-voting-vote,
.mig-voting-share { display: flex; align-items: center; flex-direction: column; justify-content: flex-start; width: 100%; min-height: 44px; padding: 0; border: 0; border-radius: 50%; color: #ff4081; background: transparent; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.mig-voting-vote:disabled,
.mig-voting-share:disabled { opacity: 1; cursor: default; }
.mig-voting-heart { position: relative; display: block; width: 12.567cqw; height: 12.567cqw; }
.mig-voting-heart img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity 180ms ease, transform 180ms ease; }
.mig-voting-heart-selected { opacity: 0; transform: scale(.85); }
.mig-voting-vote[aria-pressed="true"] .mig-voting-heart-available { opacity: 0; }
.mig-voting-vote[aria-pressed="true"] .mig-voting-heart-selected { opacity: 1; transform: scale(1); }
.mig-voting-count { display: block; font-size: max(16px, 6.873cqw); font-weight: 700; line-height: 1; letter-spacing: .025em; }
.mig-voting-share { padding-top: .8cqw; }
.mig-voting-share img { width: 12.033cqw; height: 11.765cqw; }
.mig-voting-vote:hover .mig-voting-heart,
.mig-voting-share:hover img { filter: brightness(.87); }
.mig-voting-vote:focus-visible,
.mig-voting-share:focus-visible { outline: 2px solid var(--mig-ink); outline-offset: 3px; }
.mig-voting-card:target { outline: 2px solid var(--mig-pink); outline-offset: 8px; }
.mig-voting-card.is-shared { outline: 2px solid var(--mig-pink); outline-offset: 8px; }
.mig-voting-status, .mig-voting-empty { max-width: 1000px; margin: 0 auto 32px; padding: 0 20px; text-align: center; font-size: 20px; }
.mig-voting-status:empty { display: none; }
.mig-voting-vote[aria-disabled="true"] { cursor: default; }
.mig-voting-vote[aria-disabled="true"][aria-pressed="false"] .mig-voting-heart { opacity: .5; }
.mig-voting-page .mig-voting-more { display: flex; width: 280px; min-height: 44px; margin: 36px auto 0; font-size: 18px; }
.mig-voting-more[hidden] { display: none !important; }
.mig-share-platforms { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.mig-share-platforms a { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 16px; }
.mig-share-platforms img { object-fit: contain; }
.mig-voting-page .mig-share-copy { display: flex; width: 180px; min-height: 44px; margin: 16px auto; font-size: 18px; }
.mig-voting-page .mig-voting-notice { position: fixed; z-index: 1050; bottom: 24px; left: 50%; width: max-content; max-width: calc(100% - 32px); margin: 0; padding: 14px 20px; border-radius: 8px; color: #fff; background: var(--mig-ink); box-shadow: 0 4px 20px rgb(0 0 0 / 18%); font-size: 18px; line-height: 1.3; text-align: center; transform: translateX(-50%); }
.mig-voting-share-dialog { width: 440px; max-width: calc(100% - 32px); padding: 28px; border: 0; border-radius: 12px; color: var(--mig-ink); font-family: inherit; }
.mig-voting-share-dialog::backdrop { background: rgb(3 23 64 / 55%); }
.mig-voting-share-dialog h2 { margin-bottom: 22px; font-size: 26px; }
.mig-voting-share-dialog label { display: block; margin-bottom: 8px; font-size: 18px; }
.mig-voting-share-dialog input { width: 100%; min-height: 44px; padding: 10px; border: 1px solid #b9bdc5; border-radius: 4px; color: var(--mig-ink); background: #fff; font: 16px/1.3 sans-serif; }
.mig-voting-share-dialog p { margin-top: 12px; font-size: 18px; }
.mig-voting-page .mig-voting-share-close { display: flex; width: 180px; height: 44px; margin: 24px auto 0; font-size: 18px; letter-spacing: 1px; }
.mig-voting-notice[hidden],
.mig-voting-share-dialog:not([open]) { display: none; }

@media (max-width: 1199px) {
  /* Original 768 px mobile header, with room for a readable, tappable button. */
  .mig-voting-hero { width: 100%; max-width: 768px; height: max(calc(682 * var(--mig-unit)), calc(628 * var(--mig-unit) + max(40px, 53 * var(--mig-unit)))); margin: 0 auto; }
  .mig-voting-page .mig-voting-hero .mig-inner { width: 100%; max-width: none; }
  .mig-voting-page .mig-voting-hero .mig-media { left: 0; width: 100%; height: 100%; object-fit: cover; transform: none; }
  .mig-voting-page .mig-voting-hero .mig-ai-badge { top: calc(62 * var(--mig-unit)); right: auto; left: calc(636 * var(--mig-unit)); width: calc(110 * var(--mig-unit)); height: calc(21 * var(--mig-unit)); }
  .mig-voting-brand { top: calc(71 * var(--mig-unit)); left: calc(201 * var(--mig-unit)); }
  .mig-voting-wordmark { width: calc(349 * var(--mig-unit)); height: calc(190 * var(--mig-unit)); }
  .mig-voting-plane { top: calc(10 * var(--mig-unit)); left: calc(309 * var(--mig-unit)); width: calc(59 * var(--mig-unit)); height: calc(53 * var(--mig-unit)); }
  .mig-voting-hero h1 { top: calc(419 * var(--mig-unit)); left: calc(147 * var(--mig-unit)); font-size: calc(63.9 * var(--mig-unit)); }
  .mig-voting-hero h1 span { margin-top: calc(10 * var(--mig-unit)); font-size: calc(76.7 * var(--mig-unit)); }
  .mig-voting-page .mig-voting-join { top: calc(598 * var(--mig-unit)); left: calc(205 * var(--mig-unit)); width: calc(336 * var(--mig-unit)); height: max(40px, calc(53 * var(--mig-unit))); padding-inline: calc(28 * var(--mig-unit)); font-size: max(12px, calc(22.2 * var(--mig-unit))); letter-spacing: calc(1.66 * var(--mig-unit)); }
  .mig-voting-join > span { transform: translate(calc(-9 * var(--mig-unit)), -.08em); }
  .mig-voting-page .mig-voting-join .mig-button-arrow { right: calc(17 * var(--mig-unit)); width: calc(28 * var(--mig-unit)); height: calc(28 * var(--mig-unit)); }
  .mig-voting-card { flex-basis: calc(33.333333% - 16px); }
}
@media (max-width: 1023px) and (min-width: 768px) {
  .mig-voting-card { flex-basis: calc(50% - 12px); max-width: calc(50% - 12px); }
}
@media (max-width: 767px) {
  .mig-voting-page .mig-voting-notice { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .mig-voting-page .mig-inner { max-width: calc(100% - 40px); }
  .mig-voting-gallery { padding: 38px 0 36px; }
  .mig-voting-page .mig-voting-grid { gap: 36px; }
  .mig-voting-card { flex: 0 1 100%; max-width: 374px; scroll-margin-top: 145px; }
  .mig-voting-share-dialog { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .mig-voting-heart img { transition: none; }
}
