.home-page {
  overflow: hidden;
}

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

.home-page .home-text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  color: var(--color-blanc-froid);
  font-size: var(--text-small);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.home-page .home-text-link:hover {
  color: var(--color-violet-sorcier);
}

.home-hero {
  position: relative;
  min-height: clamp(45rem, 70vw, 51rem);
  isolation: isolate;
  background: var(--color-fond-encre);
}

.home-hero__media,
.home-hero__veil {
  position: absolute;
  inset: 0;
}

.home-hero__media {
  z-index: -2;
}

.home-hero__media img {
  width: 100%;
  height: 100%;
  object-position: 68% center;
}

.home-hero__veil {
  z-index: -1;
  background: linear-gradient(90deg, rgba(10, 7, 16, 0.98) 0%, rgba(10, 7, 16, 0.88) 35%, rgba(18, 13, 25, 0.52) 59%, rgba(10, 7, 16, 0.14) 100%);
}

.home-hero__grid {
  display: grid;
  min-height: inherit;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  column-gap: var(--space-6);
}

.home-hero__copy {
  display: flex;
  grid-column: 1 / span 7;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding-block: var(--space-10);
}

.home-hero__copy > * {
  min-width: 0;
  margin: 0;
}

.home-hero__copy h1 {
  max-width: 11ch;
}

.home-hero__intro {
  max-width: 30.625rem;
}

.home-hero__actions {
  width: 100%;
}

.home-sigil {
  display: flex;
  width: 4px;
  min-width: 4px;
  flex-direction: column;
  align-items: center;
  background: linear-gradient(var(--color-violet-sorcier), transparent);
  color: var(--color-violet-sorcier);
}

.home-sigil span {
  display: block;
  width: 3.75rem;
  height: 3.75rem;
  min-width: 3.75rem;
  border: 1px solid currentColor;
  transform: rotate(45deg);
}

.home-sigil i {
  display: block;
  width: 0.55rem;
  height: 0.55rem;
  min-width: 0.55rem;
  margin-top: var(--space-4);
  border: 1px solid currentColor;
  border-radius: 50%;
}

.home-hero__sigil {
  grid-column: 7 / span 1;
  justify-self: center;
  height: 55%;
  opacity: 0.68;
}

.home-page.is-sigil-active .home-hero__sigil {
  animation: home-sigil-pulse 3.5s ease-in-out infinite alternate;
}

@keyframes home-sigil-pulse {
  from { box-shadow: 0 0 8px rgba(169, 107, 255, 0.08); opacity: 0.52; }
  to { box-shadow: 0 0 24px rgba(169, 107, 255, 0.34); opacity: 0.8; }
}

.home-evening__header {
  max-width: 47.5rem;
  margin-inline: auto;
  text-align: center;
}

.home-evening__header .intro {
  max-width: 47.5rem;
  margin-inline: auto;
}

.home-evening__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: var(--space-8);
}

.home-evening__step {
  min-width: 0;
  padding: 0 var(--space-6);
  border-left: var(--border-subtle);
}

.home-evening__step:first-child {
  padding-left: 0;
  border-left: 0;
}

.home-evening__index,
.home-request__index {
  color: var(--color-violet-sorcier);
  font-family: var(--font-heading);
  font-size: 2.25rem;
  line-height: 1;
}

.home-cuisine__grid,
.home-poker__grid,
.home-room__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-7);
  align-items: center;
}

.home-photo-frame {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: var(--border-subtle);
  border-radius: var(--radius-none);
  background: var(--color-fond-encre);
}

.home-photo-frame::before,
.home-photo-frame::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  border: 0 solid transparent;
  content: "";
  pointer-events: none;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.home-photo-frame.is-glitching::before {
  border-top: 1px solid rgba(169, 107, 255, 0.9);
  border-right: 2px solid rgba(215, 131, 88, 0.65);
  transform: translate(1px, -1px);
}

.home-photo-frame.is-glitching::after {
  border-bottom: 1px solid rgba(169, 107, 255, 0.9);
  border-left: 2px solid rgba(215, 131, 88, 0.65);
  transform: translate(-1px, 1px);
}

.home-photo-frame img {
  width: 100%;
  height: 100%;
}

.home-cuisine__figure {
  grid-column: 1 / span 7;
  aspect-ratio: 3 / 2;
}

.home-cuisine__figure img {
  object-position: center center;
}

.home-cuisine__copy {
  display: flex;
  grid-column: 8 / span 5;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-cuisine__copy > * {
  min-width: 0;
  margin: 0;
}

.home-cuisine__copy > p {
  max-width: 35rem;
}

.home-cuisine__detail {
  max-width: 26.25rem;
}

.home-cuisine__cta {
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: 35rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-cuisine__cta > * { margin: 0; }

.home-room {
  background: var(--color-fond-encre);
}

.home-room::before {
  position: absolute;
  width: 34rem;
  height: 34rem;
  top: 0;
  left: 15%;
  border: 1px solid rgba(169, 107, 255, 0.12);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(110, 53, 168, 0.14), transparent 65%);
  content: "";
  pointer-events: none;
}

.home-room__grid { position: relative; }

.home-room__intro {
  grid-column: 1 / span 7;
  min-width: 0;
}

.home-room__intro h2 { max-width: 38.75rem; }
.home-room__intro .intro { max-width: 40rem; }

.home-room__observation {
  grid-column: 9 / span 4;
  min-width: 0;
  margin-top: var(--space-8);
  padding-left: var(--space-5);
  border-left: 1px solid var(--color-ligne-fumee);
}

.home-room__observation p { max-width: 26.25rem; }

.home-poker__grid { position: relative; }

.home-poker__copy {
  grid-column: 1 / span 5;
  min-width: 0;
}

.home-poker__copy > p { max-width: 31.875rem; }

.home-poker__figure {
  grid-column: 6 / span 7;
  aspect-ratio: 3 / 2;
}

.home-poker__figure img { object-position: center center; }

.home-poker__sigil {
  position: absolute;
  top: 16%;
  bottom: 20%;
  left: 43%;
  height: auto;
  opacity: 0.42;
}

.home-poker__links {
  display: flex;
  grid-column: 1 / span 5;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.home-principles__header {
  max-width: 45rem;
  margin-inline: auto;
  text-align: center;
}

.home-principles__header .intro { max-width: 45rem; margin-inline: auto; }

.home-principles__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-8);
}

.home-principles__item {
  position: relative;
  min-width: 0;
  padding-top: var(--space-6);
  border-top: var(--border-subtle);
}

.home-principles__item > span {
  position: absolute;
  top: var(--space-3);
  right: 0;
  color: rgba(169, 107, 255, 0.25);
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1;
}

.home-principles__item p { max-width: 17.8125rem; }

.home-address__panel {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  overflow: hidden;
}

.home-address__copy {
  grid-column: 1 / span 7;
  min-width: 0;
}

.home-address__copy > p:not(.eyebrow) { max-width: 35rem; }

.home-address__location {
  color: var(--color-blanc-froid);
  font-size: var(--text-intro);
  line-height: var(--line-intro);
}

.home-address__actions {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}

.home-address__mark {
  display: flex;
  grid-column: 9 / span 4;
  min-width: 0;
  align-items: center;
  justify-content: center;
  border-left: 2px solid var(--color-orange-oranger);
  color: var(--color-violet-sorcier);
  font-size: 5rem;
  opacity: 0.6;
}

.home-address__mark span {
  width: 5rem;
  height: 5rem;
  border: 1px solid currentColor;
  transform: rotate(45deg);
}

.home-address__mark i {
  position: absolute;
  font-style: normal;
}

.home-request__panel {
  padding: clamp(var(--space-6), 5vw, var(--space-8));
}

.home-request__header {
  width: 100%;
  max-width: 38.75rem;
}

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

.home-request__points article {
  min-width: 0;
  padding-top: var(--space-4);
  border-top: var(--border-subtle);
}

.home-request__points article p:not(.home-request__index) { max-width: 23.75rem; }
.home-request__button { margin-top: var(--space-7); }

.home-doors__header {
  max-width: 42rem;
  margin-bottom: var(--space-7);
}

.home-doors__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.home-door {
  display: flex;
  min-width: 0;
  min-height: 21rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding: clamp(var(--space-5), 4vw, var(--space-7));
  border: var(--border-subtle);
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.home-door > * { min-width: 0; margin: 0; }
.home-door p { max-width: 26.25rem; }
.home-door .button { margin-top: auto; }
.home-door--menu { background: var(--color-prune-surface); }
.home-door--contact { border-color: var(--color-violet-profond); background: var(--color-fond-encre); }
.home-door:hover { border-color: var(--color-violet-sorcier); transform: translateY(-2px); }

.home-closing {
  padding-top: var(--space-10);
  background: var(--color-fond-encre);
}

.home-closing__copy {
  position: relative;
  display: flex;
  width: calc((100% / 12) * 8);
  min-width: 0;
  margin-left: calc(100% / 12);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-6);
}

.home-closing__copy::before {
  position: absolute;
  top: -1rem;
  right: -4rem;
  width: 4rem;
  height: 4rem;
  border: 1px solid rgba(169, 107, 255, 0.2);
  content: "";
  transform: rotate(45deg);
}

.home-closing__copy > * { min-width: 0; margin: 0; }
.home-closing__copy h2 { max-width: 47.5rem; font-size: clamp(2.5rem, 5vw, 4.8rem); }

@media (max-width: 65.625rem) {
  .home-principles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-principles__item p { max-width: 22rem; }
}

@media (max-width: 61.25rem) {
  .home-hero { min-height: 44rem; }
  .home-hero__copy h1 { max-width: 12ch; }
}

@media (max-width: 57.5rem) {
  .home-evening__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
  .home-evening__step { padding: 0 0 0 var(--space-5); }
  .home-evening__step:first-child { padding-left: 0; }
  .home-evening__step:last-child { grid-column: 1 / span 1; padding-left: 0; border-left: 0; }
  .home-cuisine__grid,
  .home-poker__grid { gap: var(--space-5); }
  .home-cuisine__figure { grid-column: 1 / span 6; }
  .home-cuisine__copy { grid-column: 7 / span 6; }
  .home-poker__copy { grid-column: 1 / span 6; }
  .home-poker__figure { grid-column: 7 / span 6; }
  .home-poker__sigil { display: none; }
  .home-poker__links { grid-column: 1 / span 6; }
  .home-request__points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 52.5rem) {
  .home-room__grid { gap: var(--space-6); }
  .home-room__intro { grid-column: 1 / span 8; }
  .home-room__observation { grid-column: 5 / span 8; margin-top: 0; }
  .home-address__copy { grid-column: 1 / span 8; }
  .home-address__mark { grid-column: 10 / span 3; }
  .home-closing__copy { width: 100%; margin-left: 0; }
}

@media (max-width: 48.75rem) {
  .home-doors__grid { grid-template-columns: 1fr; }
  .home-door { min-height: 0; }
}

@media (max-width: 47.5rem) {
  .home-hero { min-height: 0; padding-block: var(--space-8) 0; }
  .home-hero__media,
  .home-hero__veil { position: relative; inset: auto; }
  .home-hero__media { width: calc(100% - 2.5rem); aspect-ratio: 4 / 5; margin: var(--space-7) auto 0; }
  .home-hero__media img { object-position: 68% center; }
  .home-hero__veil { display: none; }
  .home-hero__grid { display: block; min-height: 0; }
  .home-hero__copy { width: 100%; padding-block: 0; }
  .home-hero__copy h1 { max-width: 100%; font-size: clamp(3rem, 14vw, 4.7rem); }
  .home-hero__intro { max-width: 100%; }
  .home-hero__actions { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-4); }
  .home-hero__actions > * { width: 100%; min-width: 0; }
  .home-hero__sigil { width: 2px; height: 3rem; margin: var(--space-6) auto 0; }
  .home-hero__sigil span { display: none; }
  .home-hero__sigil i { margin-top: auto; }

  .home-evening__steps,
  .home-cuisine__grid,
  .home-poker__grid,
  .home-room__grid,
  .home-address__panel,
  .home-request__points,
  .home-principles__grid { grid-template-columns: 1fr; }

  .home-evening__steps { margin-top: var(--space-7); gap: var(--space-6); }
  .home-evening__step,
  .home-evening__step:first-child,
  .home-evening__step:last-child { grid-column: auto; padding: 0 0 0 var(--space-5); border-left: var(--border-subtle); }

  .home-cuisine__figure,
  .home-cuisine__copy,
  .home-poker__copy,
  .home-poker__figure,
  .home-poker__links,
  .home-room__intro,
  .home-room__observation,
  .home-address__copy,
  .home-address__mark { grid-column: auto; }

  .home-cuisine__grid { gap: var(--space-6); }
  .home-cuisine__copy { order: -1; padding: var(--space-5); }
  .home-cuisine__figure,
  .home-poker__figure { aspect-ratio: 4 / 5; }
  .home-cuisine__figure img { object-position: center center; }
  .home-poker__figure img { object-position: 60% center; }
  .home-room::before { width: 22rem; height: 22rem; left: 35%; }
  .home-room__observation { padding-left: var(--space-5); border-left: 1px solid var(--color-ligne-fumee); }
  .home-poker__grid { gap: var(--space-6); }
  .home-poker__links { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
  .home-principles__grid { margin-top: var(--space-7); gap: var(--space-5); }
  .home-principles__item p { max-width: 100%; }
  .home-address__panel { gap: var(--space-5); padding: var(--space-5); }
  .home-address__mark { display: none; }
  .home-address__actions { flex-direction: column; align-items: stretch; }
  .home-address__actions .button { width: 100%; }
  .home-request__panel { padding: var(--space-5); }
  .home-request__points { gap: var(--space-5); margin-top: var(--space-6); }
  .home-request__button { width: 100%; margin-top: var(--space-6); }
  .home-closing { padding-top: var(--space-8); }
  .home-closing__copy::before { display: none; }
  .home-closing__copy h2 { font-size: clamp(2.25rem, 10vw, 3.25rem); }
}

@media (prefers-reduced-motion: reduce) {
  .home-page *,
  .home-page *::before,
  .home-page *::after { animation: none !important; transition: none !important; }
}

@media (prefers-contrast: more) {
  .home-room::before { display: none; }
  .home-page .home-photo-frame::before,
  .home-page .home-photo-frame::after { display: none; }
}
