.event-hero { position: relative; display: grid; min-height: 100svh; overflow: hidden; color: var(--paper); background: var(--ink); }
.event-hero > img, .event-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.event-hero > img { object-fit: cover; object-position: center 58%; filter: saturate(0.68) contrast(1.04); }
.event-hero__shade { background: oklch(9% 0.012 55 / 0.48); }
.event-hero__copy { position: relative; z-index: 1; align-self: end; max-width: min(53rem, 88vw); padding: 10rem var(--gutter) clamp(10rem, 16vw, 13rem); }
.event-hero__eyebrow { max-width: 24ch; margin: 0; color: oklch(94.5% 0.012 85 / 0.9); font-size: clamp(1.35rem, 2.35vw, 2.85rem); font-weight: 700; letter-spacing: -0.055em; line-height: 0.94; }
.event-hero h1 { margin: 1.5rem 0 1.5rem; font-size: clamp(5.2rem, 13.6vw, 14rem); font-weight: 500; letter-spacing: -0.09em; line-height: 0.72; }
.event-hero h1 span { display: block; }
.event-hero__copy > p:last-child { max-width: 35rem; margin: 0; color: oklch(94.5% 0.012 85 / 0.88); font-size: clamp(1rem, 1.35vw, 1.2rem); }
.event-hero__details { position: absolute; right: var(--gutter); bottom: clamp(1.25rem, 3.4vw, 3.3rem); z-index: 1; display: grid; grid-template-columns: 1fr auto; gap: 0.3rem 1.2rem; min-width: min(22rem, calc(100vw - 2 * var(--gutter))); padding-top: 0.85rem; border-top: 1px solid var(--light-line); }
.event-hero__details strong { font-size: clamp(1.5rem, 2.6vw, 2.5rem); font-weight: 500; letter-spacing: -0.06em; }
.event-hero__details > span { align-self: end; padding-bottom: 0.3rem; color: oklch(94.5% 0.012 85 / 0.78); font-size: 0.69rem; font-weight: 700; letter-spacing: 0.1em; }
.event-hero__details a { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 2.85rem; margin-top: 0.85rem; color: var(--ink); background: var(--paper); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; }
.event-hero__details a span { padding-left: 0.8rem; }
.event-hero__details a b { padding-right: 0.8rem; font-size: 1.2rem; }

.fact-rail { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); }
.fact-rail > div { display: grid; align-content: start; gap: 0.55rem; min-height: 12.5rem; padding: 1.65rem var(--gutter); border-right: 1px solid var(--line); }
.fact-rail > div:last-child { border-right: 0; background: var(--paper-deep); }
.fact-rail small, .event-footer small { color: var(--slate); font-size: 0.66rem; font-weight: 800; letter-spacing: 0.12em; }
.fact-rail strong { font-size: clamp(1.1rem, 1.65vw, 1.6rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1.12; }
.fact-rail span { color: var(--ink-soft); font-size: 0.8rem; line-height: 1.35; }

.editorial-section { display: grid; grid-template-columns: minmax(17rem, 0.62fr) minmax(0, 1.25fr); gap: clamp(3rem, 10vw, 11rem); padding: var(--section) var(--gutter); }
.editorial-section__heading { align-self: start; }
.section-statement { max-width: 62ch; margin: 1rem 0 0; font-size: clamp(1rem, 1.2vw, 1.35rem); font-weight: 500; letter-spacing: -0.02em; line-height: 1.45; }
.editorial-section .kicker, .lodging .kicker, .event-contact .kicker { font-size: clamp(1rem, 1.2vw, 1.35rem); letter-spacing: 0.1em; }
.program { color: var(--paper); background: var(--ink); }
.program .kicker { color: oklch(94.5% 0.012 85 / 0.63); }
.program .editorial-section__heading > p:last-child { color: oklch(94.5% 0.012 85 / 0.68); }
.program__list { margin: 0; padding: 0; border-top: 1px solid var(--light-line); list-style: none; }
.program__list > li { display: grid; grid-template-columns: minmax(10rem, 0.58fr) 1fr; gap: 2rem; padding: clamp(1.7rem, 3vw, 3rem) 0; border-bottom: 1px solid var(--light-line); }
.program-day { display: grid; align-content: start; gap: 0.55rem; }
.program-day span { color: oklch(94.5% 0.012 85 / 0.56); font-size: 0.67rem; font-weight: 800; letter-spacing: 0.11em; }
.program-day strong { font-size: clamp(1.2rem, 2.2vw, 2.1rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1.04; }
.program__list ul { display: grid; gap: 1.15rem; margin: 0; padding: 0; list-style: none; }
.program__list ul li { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1.2rem; align-items: baseline; }
.program__list time { color: oklch(94.5% 0.012 85 / 0.63); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.08em; }
.program__list ul strong { font-size: clamp(1.1rem, 1.7vw, 1.55rem); font-weight: 500; letter-spacing: -0.04em; line-height: 1.12; }

.image-break { position: relative; height: min(42rem, 68vw); overflow: hidden; color: var(--paper); background: var(--ink); }
.image-break img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.65) contrast(1.06); }
.image-break p { position: absolute; right: var(--gutter); bottom: 1.7rem; margin: 0; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.13em; }

.retreat-film { position: relative; display: grid; place-items: center; width: min(100%, var(--stage-max)); height: min(52rem, calc(100svh - 2rem)); margin-inline: auto; overflow: hidden; color: var(--paper); background: var(--ink); }
.retreat-film video { display: block; width: min(29.25rem, calc(56.25svh - 1.125rem)); height: 100%; max-width: 100%; aspect-ratio: 9 / 16; background: var(--ink); object-fit: contain; }
.retreat-film p { position: absolute; bottom: 1.7rem; left: var(--content-edge); margin: 0; color: oklch(94.5% 0.012 85 / 0.74); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.13em; pointer-events: none; }

.registration { background: var(--paper-deep); }
.registration__content { align-self: start; }
.registration table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--ink); }
.registration th, .registration td { padding: 1.2rem 0.4rem; border-bottom: 1px solid var(--line); text-align: left; }
.registration th { color: var(--slate); font-size: 0.66rem; font-weight: 800; letter-spacing: 0.11em; }
.registration th:last-child, .registration td:last-child { width: 6rem; text-align: right; }
.registration td:last-child { font-size: 1.35rem; font-weight: 600; letter-spacing: -0.04em; }
.late-fee { margin: 1.4rem 0 0; color: var(--vermilion); font-size: 0.9rem; font-weight: 700; }
.registration .button, .lodging .text-action, .event-contact .button, .venue-link { min-height: 4.35rem; font-size: clamp(1.15rem, 1.5vw, 1.55rem); letter-spacing: 0.07em; }
.registration .button { margin-top: 2rem; }

.notes { border-top: 1px solid var(--line); }
.notes__list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.notes__list li { display: grid; grid-template-columns: 3.3rem 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line); }
.notes__list span { color: var(--vermilion); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.1em; }
.notes__list p { max-width: 44rem; margin: 0; }

.lodging { color: var(--paper); background: var(--ink); }
.lodging__content { width: min(calc(100% - 2 * var(--gutter)), var(--content-max)); margin-inline: auto; padding-block: var(--section); }
.lodging .kicker { color: oklch(94.5% 0.012 85 / 0.64); }
.hotel-list { margin-top: 3.5rem; border-top: 1px solid var(--light-line); }
.hotel-row { display: grid; grid-template-columns: 2.8rem minmax(10rem, 1fr) minmax(10rem, 0.7fr); gap: 0.9rem; padding: 1.25rem 0; border-bottom: 1px solid var(--light-line); }
.hotel-row > span { color: oklch(94.5% 0.012 85 / 0.57); font-size: 0.7rem; font-weight: 800; }
.hotel-row h3 { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.22; }
.hotel-row p { margin: 0.32rem 0 0; color: oklch(94.5% 0.012 85 / 0.64); font-size: 0.78rem; line-height: 1.35; }
.hotel-row > div:last-child strong { font-size: 0.78rem; line-height: 1.35; }
.lodging__note { margin: 1.4rem 0 0; color: oklch(94.5% 0.012 85 / 0.7); font-size: 0.86rem; }
.lodging .text-action { color: var(--paper); border-color: var(--light-line); }

.event-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(21rem, 0.73fr); gap: clamp(3rem, 10vw, 11rem); align-items: end; padding: var(--section) var(--gutter); }
.event-contact .button { width: auto; min-width: min(100%, 20rem); }
.event-contact__board { padding-top: 1rem; border-top: 1px solid var(--ink); }
.event-contact__board > strong { display: block; max-width: 17rem; font-size: clamp(1.55rem, 2.8vw, 3rem); font-weight: 500; letter-spacing: -0.06em; line-height: 0.98; }
.event-contact dl { margin: 2rem 0 0; }
.event-contact dl div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: 0.9rem 0; border-bottom: 1px solid var(--line); }
.event-contact dt { color: var(--slate); font-size: 0.67rem; font-weight: 800; letter-spacing: 0.1em; }
.event-contact dd { margin: 0; overflow-wrap: anywhere; font-weight: 600; }
.event-contact dd a { text-decoration: underline; text-underline-offset: 0.2rem; }
.venue-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.2rem; border-bottom: 1px solid var(--ink); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.venue-link b { font-size: 1.2rem; }
.event-footer { display: grid; grid-template-columns: 0.62fr 1fr 1fr auto; gap: 2rem; align-items: start; padding: 2.2rem var(--gutter); color: oklch(94.5% 0.012 85 / 0.68); background: var(--ink); font-size: 0.76rem; }
.event-footer .brand { color: var(--paper); }
.event-footer .brand img { filter: none; }
.event-footer p { margin: 0.35rem 0 0; }

@media (max-width: 68rem) {
  .fact-rail { grid-template-columns: repeat(2, 1fr); }
  .fact-rail > div:nth-child(2) { border-right: 0; }
  .fact-rail > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .editorial-section, .event-contact { grid-template-columns: 1fr; }
  .event-footer { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 42rem) {
  .event-hero__eyebrow { max-width: 18ch; font-size: clamp(1.2rem, 6vw, 1.8rem); }
  .event-hero h1 { font-size: clamp(5.1rem, 25vw, 8.6rem); }
  html[lang="ko"] .event-hero h1 { font-size: clamp(4.2rem, 18vw, 6rem); line-height: 0.9; }
  .event-hero__copy { padding-bottom: 13.5rem; }
  .event-hero__details { right: var(--gutter); left: var(--gutter); min-width: 0; }
  .fact-rail { grid-template-columns: 1fr; }
  .fact-rail > div, .fact-rail > div:nth-child(2) { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  html[lang="ko"] .section-statement { line-height: 1.5; word-break: keep-all; }
  .program__list > li { grid-template-columns: 1fr; gap: 1.5rem; }
  .program-day { grid-template-columns: 3rem 1fr; align-items: baseline; }
  .program__list ul li { grid-template-columns: 5.2rem 1fr; gap: 0.8rem; }
  .image-break { height: 28rem; }
  .retreat-film { display: block; height: auto; }
  .retreat-film video { width: 100%; height: auto; max-height: none; aspect-ratio: 9 / 16; }
  .retreat-film p { position: static; padding: 1rem var(--gutter) 1.1rem; }
  .registration th, .registration td { padding: 1rem 0.1rem; }
  .registration th:first-child, .registration td:first-child { padding-right: 1rem; }
  .hotel-row { grid-template-columns: 2.4rem 1fr; }
  .hotel-row > div:last-child { grid-column: 2; }
  .event-contact dl div { grid-template-columns: 1fr; gap: 0.25rem; }
  .event-footer { grid-template-columns: 1fr; }
}

@media (min-width: 68.01rem) {
  .event-hero { min-height: clamp(43rem, 82svh, 64rem); }
  .event-hero__copy {
    max-width: min(48rem, 88vw);
    padding-left: var(--content-edge);
  }
  .event-hero h1 { font-size: clamp(5.2rem, 8vw, 10rem); }
  html[lang="ko"] .event-hero h1 {
    font-size: clamp(4.5rem, 7vw, 8rem);
    line-height: 0.84;
    word-break: keep-all;
  }
  .event-hero__details { right: var(--content-edge); }
  .event-hero__details > span,
  .event-hero__details a { font-size: 0.75rem; }

  .fact-rail,
  .editorial-section,
  .event-contact {
    padding-inline: var(--content-edge);
  }
  .fact-rail > div { padding-inline: clamp(1.5rem, 2vw, 2.5rem); }
  .fact-rail small,
  .registration th,
  .program-day span,
  .notes__list span,
  .event-contact dt { font-size: 0.75rem; }
  .fact-rail span { font-size: 0.9rem; }


  .image-break {
    width: min(100%, var(--stage-max));
    height: clamp(32rem, 45vw, 48rem);
    margin-inline: auto;
  }
  .image-break p {
    right: max(var(--gutter), calc((var(--stage-max) - var(--content-max)) / 2));
    font-size: 0.75rem;
  }

  .retreat-film p { left: max(var(--gutter), calc((var(--stage-max) - var(--content-max)) / 2)); }

  .event-footer { padding-inline: var(--content-edge); }
}
