.blackjack-page {
  position: relative;
  isolation: isolate;
}

.blackjack-page::before {
  position: fixed;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  content: "";
  opacity: 0.035;
  background-image: radial-gradient(rgba(40, 42, 43, 0.8) 0.55px, transparent 0.7px);
  background-size: 5px 5px;
}

.blackjack-page .section {
  position: relative;
}

.blackjack-hero__grid,
.blackjack-scene__grid,
.blackjack-groups__grid,
.blackjack-faq__layout,
.blackjack-timeline__layout {
  display: grid;
  min-width: 0;
}

.blackjack-hero__grid {
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: center;
}

.blackjack-hero__copy {
  width: 100%;
  max-width: 540px;
  min-width: 0;
  padding: clamp(1.5rem, 4vw, 3rem);
}

.blackjack-hero__copy .eyebrow,
.blackjack-hero__copy h1,
.blackjack-hero__copy p,
.blackjack-scene__copy .eyebrow,
.blackjack-scene__copy h2,
.blackjack-scene__copy p,
.blackjack-closing__card .eyebrow,
.blackjack-closing__card h2,
.blackjack-closing__card p {
  margin: 0;
}

.blackjack-hero__copy,
.blackjack-closing__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.blackjack-hero__lead {
  max-width: 33rem;
  font-size: var(--text-lg);
  line-height: 1.4;
}

.blackjack-hero__actions,
.blackjack-closing__actions {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.blackjack-hero__actions > * {
  min-width: 0;
}

.blackjack-hero__note,
.blackjack-closing__note {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-sm);
  line-height: var(--leading-small);
}

.blackjack-hero__photo {
  position: relative;
  width: calc(100% - 0.75rem);
  min-width: 0;
  margin: 0 0 0 auto;
  transform: rotate(1.5deg);
}

.blackjack-hero__photo img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.blackjack-hero__photo figcaption {
  margin-bottom: 0;
}

.blackjack-hero__tape {
  position: absolute;
  z-index: 1;
  top: -0.5rem;
  left: 12%;
  width: 6rem;
  transform: rotate(-5deg);
}

.blackjack-boundaries__intro {
  width: 50%;
  min-width: 0;
}

.blackjack-boundaries__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-6);
}

.blackjack-boundaries__card {
  position: relative;
  min-width: 0;
}

.blackjack-boundaries__card .stamp {
  margin-bottom: var(--space-3);
}

.blackjack-boundaries__summary {
  width: 100%;
  max-width: 620px;
  margin: var(--space-6) 0 0;
  padding: var(--space-4) var(--space-5);
  border-left: 3px solid var(--color-blue);
  background: rgba(156, 201, 216, 0.34);
}

.blackjack-scene__grid {
  grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: start;
}

.blackjack-scene__copy {
  display: flex;
  width: 100%;
  max-width: 560px;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: clamp(1.5rem, 3vw, 2rem);
}

.blackjack-scene__media {
  position: relative;
  width: 100%;
  min-width: 0;
  padding-bottom: var(--space-8);
}

.blackjack-lightbox-trigger {
  position: relative;
  width: 100%;
  min-width: 0;
  padding: var(--space-2);
  border: var(--border-subtle);
  border-radius: var(--radius-sm);
  background: var(--color-paper-white);
  box-shadow: var(--shadow-card);
  text-align: left;
  transform: rotate(-1.5deg);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.blackjack-lightbox-trigger:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-3px) rotate(-0.7deg);
}

.blackjack-lightbox-trigger img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.blackjack-scene__caption {
  display: block;
  margin-top: var(--space-2);
  color: var(--color-graphite-muted);
  font-size: var(--text-sm);
  line-height: var(--leading-small);
}

.blackjack-scene__note {
  position: absolute;
  right: -0.75rem;
  bottom: 0;
  width: min(16.25rem, 48%);
  min-width: 0;
  padding: var(--space-4);
  border: var(--border-strong);
  background: var(--color-blue);
  box-shadow: var(--shadow-card);
  font-size: var(--text-sm);
  line-height: var(--leading-small);
  transform: rotate(2deg);
}

.blackjack-moments__intro {
  width: 100%;
  max-width: 580px;
}

.blackjack-moments__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-6);
}

.blackjack-moments__card {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.blackjack-moments__number {
  display: block;
  margin-bottom: var(--space-4);
  color: var(--color-blue);
  font-family: var(--font-heading);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1;
}

.blackjack-moments__card--sketch::before {
  position: absolute;
  right: 1rem;
  top: 1rem;
  width: 4rem;
  height: 5rem;
  border: 1px solid rgba(40, 42, 43, 0.14);
  border-radius: var(--radius-sm);
  content: "";
  transform: rotate(9deg);
}

.blackjack-moments__card--yellow::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 0.5rem;
  background: var(--color-yellow);
  content: "";
}

.blackjack-atmosphere__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-6);
}

.blackjack-atmosphere__card {
  width: 100%;
  min-width: 0;
  padding: var(--space-5);
}

.blackjack-atmosphere__card h3,
.blackjack-atmosphere__card p {
  max-width: 17.5rem;
}

.blackjack-atmosphere__card--blue {
  background: var(--color-blue);
}

.blackjack-atmosphere__card--memory {
  background: var(--color-paper-warm);
}

.blackjack-atmosphere__card--memory .stamp {
  margin-bottom: var(--space-3);
}

.blackjack-atmosphere__note {
  width: 100%;
  max-width: 600px;
  margin: var(--space-6) 0 0;
}

.blackjack-notes__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr);
  gap: var(--space-5);
  align-items: start;
  margin-top: var(--space-6);
}

.blackjack-notes__card {
  position: relative;
  width: 100%;
  min-width: 0;
  padding: var(--space-5);
}

.blackjack-notes__card blockquote,
.blackjack-notes__card p {
  margin: 0;
}

.blackjack-notes__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.blackjack-notes__card blockquote {
  padding: 0;
  border: 0;
  background: transparent;
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  line-height: 1.12;
}

.blackjack-notes__card--one {
  transform: rotate(-1.5deg);
}

.blackjack-notes__card--two {
  margin-top: var(--space-7);
  background: var(--color-blue);
  transform: rotate(1.5deg);
}

.blackjack-notes__card--three {
  margin-top: var(--space-4);
  background: var(--color-paper-warm);
  transform: rotate(-0.8deg);
}

.blackjack-notes__tape {
  position: absolute;
  top: -0.55rem;
  left: 35%;
  width: 5rem;
}

.blackjack-notes__editorial {
  width: 100%;
  max-width: 620px;
  margin: var(--space-6) 0 0;
  color: var(--color-graphite-muted);
  font-size: var(--text-sm);
  line-height: var(--leading-small);
}

.blackjack-timeline__layout {
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  gap: var(--space-6);
}

.blackjack-timeline__content {
  width: 100%;
  min-width: 0;
}

.blackjack-timeline__steps {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  width: 100%;
  max-width: 588px;
  margin-top: var(--space-6);
}

.blackjack-timeline__step {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: var(--space-4);
  width: 100%;
  min-width: 0;
  align-items: start;
}

.blackjack-timeline__number {
  display: flex;
  width: 5.5rem;
  min-width: 5.5rem;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  border-right: 2px solid var(--color-blue);
  color: var(--color-graphite);
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: 700;
}

.blackjack-timeline__step-copy {
  width: 100%;
  max-width: 500px;
  min-width: 0;
}

.blackjack-timeline__step-copy .stamp {
  margin-bottom: var(--space-3);
}

.blackjack-timeline__step--highlight .blackjack-timeline__step-copy {
  padding: var(--space-5);
  border: var(--border-strong);
  background: var(--color-paper-warm);
  box-shadow: var(--shadow-card);
}

.blackjack-groups__grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-6);
  align-items: start;
}

.blackjack-groups__main,
.blackjack-groups__side {
  width: 100%;
  min-width: 0;
}

.blackjack-groups__main-card {
  display: flex;
  width: 100%;
  max-width: 580px;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: clamp(1.5rem, 3vw, 2rem);
}

.blackjack-groups__main-card h3,
.blackjack-groups__main-card p,
.blackjack-groups__contact h3,
.blackjack-groups__contact p {
  margin: 0;
}

.blackjack-groups__side {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}

.blackjack-groups__scenario {
  width: 100%;
  min-width: 0;
  padding: var(--space-5);
}

.blackjack-groups__scenario--yellow {
  background: var(--color-paper-warm);
}

.blackjack-groups__contact {
  display: flex;
  width: 100%;
  max-width: 360px;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.blackjack-groups__contact a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  overflow-wrap: anywhere;
}

.blackjack-faq__layout {
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  gap: var(--space-6);
}

.blackjack-faq__content {
  width: 100%;
  min-width: 0;
}

.blackjack-faq__intro {
  width: 100%;
  max-width: 620px;
}

.blackjack-faq__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  width: 100%;
  margin-top: var(--space-6);
}

.blackjack-faq__item {
  width: 100%;
  min-width: 0;
  border: var(--border-subtle);
  border-radius: var(--radius-md);
  background: var(--color-paper-white);
}

.blackjack-faq__item h3 {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  letter-spacing: 0;
}

.blackjack-faq__item button {
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 2.75rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4);
  background: transparent;
  color: var(--color-graphite);
  font-weight: 700;
  text-align: left;
}

.blackjack-faq__item button span {
  flex: 0 0 auto;
  font-size: 1.5rem;
  line-height: 1;
}

.blackjack-faq__item:has(button[aria-expanded="true"]) {
  border-color: var(--color-blue);
  border-width: 2px;
}

.blackjack-faq__panel {
  width: 100%;
  max-width: 700px;
  min-width: 0;
  padding: 0 var(--space-4) var(--space-4);
}

.blackjack-faq__panel p,
.blackjack-faq__panel address {
  margin: 0;
}

.blackjack-faq__panel address {
  margin-top: var(--space-3);
}

.blackjack-closing__card {
  position: relative;
  width: min(100%, 760px);
  min-width: 0;
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 3.5rem);
}

.blackjack-closing__card h2,
.blackjack-closing__card > p:not(.blackjack-closing__note) {
  max-width: 500px;
}

.blackjack-closing__tape {
  position: absolute;
  top: -0.45rem;
  right: 12%;
  width: 5.5rem;
  transform: rotate(4deg);
}

.blackjack-lightbox[hidden] {
  display: none;
}

.blackjack-lightbox {
  position: fixed;
  z-index: 1001;
  inset: 0;
  display: grid;
  min-width: 0;
  place-items: center;
  padding: var(--space-4);
}

.blackjack-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(40, 42, 43, 0.72);
}

.blackjack-lightbox__dialog {
  position: relative;
  z-index: 1;
  display: flex;
  width: min(100%, 52rem);
  max-height: calc(100vh - 2rem);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  overflow: auto;
  padding: var(--space-5);
  border: var(--border-heavy);
  background: var(--color-paper-warm);
  box-shadow: var(--shadow-card-hover);
}

.blackjack-lightbox__dialog h2,
.blackjack-lightbox__dialog p {
  margin: 0;
}

.blackjack-lightbox__dialog img {
  width: 100%;
  min-width: 0;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.blackjack-lightbox__close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  display: inline-flex;
  width: 2.75rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  border: var(--border-heavy);
  border-radius: var(--radius-md);
  background: var(--color-paper-white);
  font-size: 1.75rem;
  line-height: 1;
}

@media (max-width: 61.25rem) {
  .blackjack-hero__grid,
  .blackjack-scene__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .blackjack-hero__copy,
  .blackjack-scene__copy {
    max-width: 100%;
  }

  .blackjack-hero__photo {
    width: 100%;
    margin: 0;
  }

  .blackjack-scene__media {
    padding-bottom: 0;
  }

  .blackjack-scene__note {
    position: static;
    width: 100%;
    margin-top: var(--space-5);
    transform: rotate(0.8deg);
  }
}

@media (max-width: 56.25rem) {
  .blackjack-notes__grid,
  .blackjack-groups__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .blackjack-notes__card--two,
  .blackjack-notes__card--three {
    margin-top: 0;
  }

  .blackjack-groups__side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .blackjack-groups__contact {
    grid-column: 1 / -1;
    max-width: 360px;
  }
}

@media (max-width: 53.125rem) {
  .blackjack-boundaries__cards,
  .blackjack-moments__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .blackjack-boundaries__intro {
    width: 100%;
  }
}

@media (max-width: 50rem) {
  .blackjack-faq__layout,
  .blackjack-timeline__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .blackjack-faq__space,
  .blackjack-timeline__space {
    display: none;
  }
}

@media (max-width: 45rem) {
  .blackjack-atmosphere__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .blackjack-atmosphere__card h3,
  .blackjack-atmosphere__card p {
    max-width: none;
  }
}

@media (max-width: 38.75rem) {
  .blackjack-boundaries__cards,
  .blackjack-moments__cards,
  .blackjack-groups__side {
    grid-template-columns: minmax(0, 1fr);
  }

  .blackjack-groups__contact {
    grid-column: auto;
  }
}

@media (max-width: 47.5rem) {
  .blackjack-hero__copy {
    padding: var(--space-5);
  }

  .blackjack-hero__lead {
    max-width: none;
    font-size: 1.125rem;
    line-height: 1.5;
  }

  .blackjack-hero__photo {
    transform: rotate(0.8deg);
  }

  .blackjack-scene__copy,
  .blackjack-atmosphere__card,
  .blackjack-notes__card,
  .blackjack-groups__main-card,
  .blackjack-groups__scenario {
    padding: var(--space-5);
  }

  .blackjack-lightbox-trigger {
    transform: rotate(-0.8deg);
  }

  .blackjack-notes__card--one,
  .blackjack-notes__card--two,
  .blackjack-notes__card--three {
    transform: rotate(0);
  }

  .blackjack-timeline__step {
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: var(--space-3);
  }

  .blackjack-timeline__number {
    width: 2.75rem;
    min-width: 2.75rem;
    font-size: 1.25rem;
  }

  .blackjack-closing__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .blackjack-closing__actions .button {
    width: 100%;
  }
}

@media (max-width: 30rem) {
  .blackjack-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .blackjack-hero__actions .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .blackjack-hero__photo,
  .blackjack-lightbox-trigger,
  .blackjack-scene__note,
  .blackjack-notes__card {
    transform: none;
  }

  .blackjack-lightbox-trigger:hover {
    transform: none;
  }
}
